politza / tablist Goto Github PK
View Code? Open in Web Editor NEWExtended tabulated-list-mode
License: GNU General Public License v3.0
Extended tabulated-list-mode
License: GNU General Public License v3.0
tablist-minor-mode
I created a tutorial for tablist-minor-mode
. See How I shortlist add-ons for my Emacs: Introducing tablist
– Emacs Notes.
See the above article (and the gif within it) for the sequence of operations that would trigger the error below.
Error in post-comand-hook (package-menu--post-refresh): (void-function nil)
Export to CSV doesn't create a comma-separated list. It creates a semicolon-separated list instead.
Using tablist
on Emacs 27.0.90 on a Macintosh, I'm finding if I try to edit a filter in a tablist (/ e
) an error occurs:
replace-regexp-in-string: Wrong type argument: arrayp, nil
and I've traced the source of that error to tablist-filter-parser-init
which calls, effectively
(wisent-compile-grammar tablist-filter-wisent-grammar)
If you open Emacs 27.0.90 and evaluate the following in *scratch*
you should be able to reproduce the error:
(require 'semantic/wisent/comp)
(require 'semantic/wisent/wisent)
(defvar tablist-filter-wisent-grammar
'(
;; terminals
;; Use lowercase for better looking error messages.
(operand unary-operator binary-operator or and not)
;; terminal associativity & precedence
((left binary-operator)
(left unary-operator)
(left or)
(left and)
(left not))
;; rules
(filter-or-empty
((nil))
((?\( ?\)) nil)
((filter) $1))
(filter
((operand) $1) ;;Named filter
((operand binary-operator operand) `(,(intern $2) ,$1 ,$3))
((unary-operator operand) `(,(intern $1) ,$2))
((not filter) `(not ,$2))
((filter and filter) `(and ,$1 ,$3))
((filter or filter) `(or ,$1 ,$3))
((?\( filter ?\)) $2))))
(wisent-compile-grammar tablist-filter-wisent-grammar)
Here: https://github.com/politza/tablist/blob/master/tablist.el#L312 it is assumed that
all elements in mode-line-misc-info
are lists (due to :key 'car
), but that doesn't need to be the case: there can be symbols or strings as elements. When a package adds to mode-line-misc-info
an entry that is not a list, tablist-init throws an error and cannot be used. Using :key 'car-safe
instead fixes the problem, i think.
Thanks!
If this repository is or has been in a stable state, it'd be great to get a tagged release for MELPA Stable and Homebrew! 😻
Sorry if I do it the wrong way, but documentation isn't clear here.
What I'm trying to do is to add multiple filters interactively
tablist-edit-filter
, put something like name == tmp
thereqaz
with tablist-name-current-filter
tablist-named-filter
is ((navigel-tablist-mode ("qaz" == "name" "tmp")))
so everything looks fine, and (tablist-filter-names)
returns ("qaz")
now I'm trying to add another filter
tablist-edit-filter
, put something like name == opt
therewsx
with tablist-name-current-filter
expected result:
(tablist-filter-names)
returns ("qaz wsx")
actual result
(tablist-filter-names)
returns ("wsx")
non-interactive tablist-put-named-filter
works the same way - it stores the last filter only
I use tablist-20200427.2205
from MELPA.
The package has code like this:
(defvar tablist-mode-map
(let ((kmap (copy-keymap tablist-minor-mode-map)))
(set-keymap-parent kmap tabulated-list-mode-map)
As far as I understand, this means that if the user adds his bindings to tablist-minor-mode-map
, they won't be added to tablist-mode-map
. If you consider that a problem, you could rewrite your code that way (untested):
(defvar tablist-mode-map
(let ((kmap (make-sparse-keymap)))
(set-keymap-parent kmap (make-composed-keymap tablist-minor-mode-map tabulated-list-mode-map))
I'm not an expert so please double-check :-).
Thank you very much. The tablist package is really great. I made it the cornerstone of navigel.
In other parts of Emacs, Dired for example, I can type % m RET
to mark all files.
However, when I try to do the same on a package using tablist
, for example Silex/docker.el
: entering M-x docker-containers RET % m RET
results in an error message: No regexp given
.
Please consider altering the behavior to make the user experience consistent to that of default Emacs and select all entries when no regexp is given.
It appears that tablist-do-rename
is a non-existent command.
Line 197 in 41a9612
Hi,
with latest tablist
from MELPA (installed as a dependency of pdf-tools
), I get this message in *Messages*
:
Loading ‘tablist-filter’: unescaped character literals `?(', `?)' detected!
I don't see a backtrace if I enable debug-on-error
, so I can't give you more details on that message.
This is some info about my environment, in case you need it:
GNU Emacs 27.0.50 (build 17, x86_64-debian-linux-gnu, GTK+ Version 3.22.30)
of 2019-01-29
Repository revision: 137b65a9b0a4118adda50f34375b4960701542e9
Configured using:
--host=x86_64-debian-linux-gnu --with-modules
Emacs uptime: 3 minutes, 42 seconds
Default font: Source Code Pro
Colour theme: sanityinc-tomorrow-night
Operating system: Ubuntu 18.04.1 LTS
Window system: x11
Desktop environment: GNOME Shell 3.28.3
Everytime i try to create a filter with.... Edit Filter (press / e)... in the Emacs Packages buffer i get this in the messages....
tablist-filter-eval: Invalid function: (feval (filter) (pcase filter ((` (not , (and operand (guard (not (cdr operand)))))) (not (feval (car operand)))) ((` (and , (and operands (guard (= 2 (length operands)))))) (and (feval (nth 0 operands)) (feval (nth 1 operands)))) ((` (or , (and operands (guard (= 2 (length operands)))))) (or (feval (nth 0 operands)) (feval (nth 1 operands)))) ((` ((, op) , (and operands (guard (= (length operands) 1))))) (let ((fn (assq op tablist-filter-unary-operator))) (unless fn (error "Undefined unary operator: %s" op)) (funcall fn id entry (car operands)))) ((` ((, op) , (and operands (guard (= (length operands) 2))))) (let ((fn (cdr (assq op tablist-filter-binary-operator)))) (unless fn (error "Undefined binary operator: %s" op)) (funcall fn id entry (car operands) (cadr operands)))) ((guard (stringp filter)) (let ((fn (cdr (assoc filter named-alist)))) (unless fn (error "Undefined named filter: %s" filter)) (if (functionp fn) (funcall fn id entry)) (feval (if (stringp fn) (tablist-filter-unparse fn) fn)))) ((` nil) t) (_ (error "Invalid filter: %s" filter))))
Hello,
I just found out about this package today.
I wrote https://github.com/Silex/tabulated-list-extensions and today I realised I essentially reinvented this package.
The only thing maybe worth adding to your package is the tle-auto-resize-column
functions.
So, would you be ok with me making a PR to this package with the thing I thing would be worth it?
Basically, the first thing I'd do is massively improve your README
Hi,
would be great if there's such a hook, so I can setup certain things only needed in tablist minor mode.
best / Thanks!,
Tom
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.