eglot
consult
Our great sponsors
eglot | consult | |
---|---|---|
66 | 91 | |
2,167 | 1,101 | |
- | - | |
3.4 | 9.1 | |
about 1 month ago | about 14 hours ago | |
Emacs Lisp | Emacs Lisp | |
GNU General Public License v3.0 only | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
eglot
-
LSP could have been better
Recently I stumbled upon this issue:
https://github.com/joaotavora/eglot/discussions/1127
I don't know enough about emacs and LSP to see the full picture, but it seems that both eglot's and corfu's maintainers, assumably very competent programmers, can't find a solution for this.
I only skimmed the thread. My understanding is that LSP dumps a long list of completion candidates at once and they can't decide a cache strategy that works well with existing code...?
-
Spurious errors with Eglot / pylsp
It could be. There are unfixed issues with eglot and corfu, and sadly not a lot of willingness to investigate.
-
Using Quarto with Emacs
Eglot errors when I add new Python code blocks. The error disappears when I reconnect the language server, but the same happens again when I add a new code block. My "workaround" now is that before I start working on the .qmd file, I just add a bunch of Python code blocks (for which I also have a function) and then reconnect the language server again. This way I can start working for a while until I need to add more code blocks again.
-
Looking for help in improving Typescript Eglot, Corfu, Orderless performance
This discussion has helped with some performance issues: https://github.com/joaotavora/eglot/discussions/993.
-
Typescript highlighting in emacs incomplete (compared to VSCode) even after using treesitter?
I guess eglot doesn't support it yet: https://github.com/joaotavora/eglot/pull/839
-
joaotavora/breadcrumb: Emacs headerline indication of where you are in a large project
This is not by pure chance, João is the developer of the Eglot LSP client and the breadcrumbs from LSP-mode had been requested as a feature, but as far as I remember João thought rightfully that this could be an independent package, see https://github.com/joaotavora/eglot/discussions/988
-
Returning emacs user - what packages are common now?
A substantial section of the community is using corfu instead of company, but I wouldn't say company is out of date by any means. In emacs 29 eglot will be a built in, which might act as a replacement for lsp-mode depending on what functionality you need.
-
Eglot upgrade strategy
I am currently running emacs 29 (built from emacs-29 branch) which – according to https://github.com/joaotavora/eglot – should contain the latest eglot.
-
916 Days of Emacs
Yep. You can use flymake or flycheck for that in combination with eglot or lsp-mode.
-
Eglot, eldoc and golang
(I have reported this (that is, ElDoc missing docs for callable things at point, when Eglot is enabled) as an issue recently: First on GitHub-discussions https://github.com/joaotavora/eglot/discussions/1200, then on Debbugs https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62687. But the threads are very long, so I don't recommend reading them.)
consult
-
Emacs Advent Calendar 9: devdocs, code-cells, dREPL, etc.
BTW, as an alternative to swiper, you can check out consult-line and related commands from consult.
-
Project grep search with folded results, navigable file preview, search term and results window retention?
Consult is what you are looking for: https://github.com/minad/consult In particular try consult-ripgrep
-
Emacs 29.1 Released
Emacs has code peek.
With lsp-mode it has that little window: https://emacs-lsp.github.io/lsp-ui/#lsp-ui-peek
Personally I use eglot with consult which temporarily switches the entire buffer to do the "peek" functionality rather than popping up a tiny window: https://github.com/minad/consult
-
Highlight multiple lines in consult-line
Thanks for working on this! I just added a consult--maybe-recenter function in a recent commit. This is a nice idea since it can reduce the jumpiness of Consult preview quite a bit.
-
Returning emacs user - what packages are common now?
An example relevant to your list would be some changes many people are taking with their completion framework - using package that leverage core emacs functionality rather than replacing it with a complete package that 'overrides' it. Consult, vertico, orderless and associate packages come to mind here. If you do a bit of a search you'll find plenty of info. Here is a video from Prot on the subject, but there are many others as well. I think Prot actually went on to write his own completion system to overlay native emacs functionality as well.
-
What's that email client doing here?
For the "lauch workspaces", I use burly which just uses simple bookmarks. Then with consult, I just use C-x b, then m to narrow to bookmarks and I have all the workspaces available (remote as well).
-
What is wrong with this face definition??? (error "Invalid face" bookmark-menu-heading)
Debugger entered--Lisp error: (error "Invalid face" bookmark-menu-heading) internal-set-lisp-face-attribute(bookmark-menu-heading :family unspecified 0) set-face-attribute(bookmark-menu-heading nil :foreground unspecified :background unspecified :family unspecified :slant unspecified :weight unspecified :height unspecified :underline unspecified :overline unspecified :box unspecified :inherit nano-face-strong) set-face(bookmark-menu-heading nano-face-strong) #() eval-after-load-helper("/usr/local/share/emacs/29.0.90/lisp/bookmark.elc") run-hook-with-args(eval-after-load-helper "/usr/local/share/emacs/29.0.90/lisp/bookmark.elc") do-after-load-evaluation("/usr/local/share/emacs/29.0.90/lisp/bookmark.elc") require(bookmark) byte-code("\300\301!\210\300\302!\210\303\304\305\306\307\310\307\311\307\312\313\314\313\315\313\316\317\320&\21\210\321\322\323\324\325DD\326\327\330%\210\321\331\323\324\332DD\333\327..." [require compat bookmark custom-declare-group consult nil "Consulting `completing-read'." :link (info-link :tag "Info Manual" "(consult)") (url-link :tag "Homepage" "https://github.com/minad/consult") (emacs-library-link :tag "Library Source" "consult.el") :group files outlines minibuffer :prefix "consult-" custom-declare-variable consult-narrow-key funcall function #f(compiled-function () #) "Prefix key for narrowing during completion.\n\nGood ..." :type (choice key (const nil)) consult-widen-key #f(compiled-function () #) "Key used for widening during completion.\n\nIf this ..." (choice key (const nil)) consult-project-function #f(compiled-function () #) "Function which returns project root directory.\nThe..." (choice function (const nil)) consult-async-refresh-delay #f(compiled-function () #) "Refreshing delay of the completion UI for asynchro..." float consult-async-input-throttle #f(compiled-function () #) "Input throttle for asynchronous commands.\n\nThe asy..." consult-async-input-debounce #f(compiled-function () #) "Input debounce for asynchronous commands.\n\nThe asy..." consult-async-min-input #f(compiled-function () #) "Minimum number of letters needed, before asynchron..." natnum consult-async-split-style #f(compiled-function () #) "Async splitting style, see `consult-async-split-st..." ...] 18) require(consult) byte-code("\300\301!\210\302\303\304\305#\210\306\211\203,\0\211@\303\1N\203%\0\304\1N\204%\0\307\304\2\303\4N#\210\1A\266\202\202\13\0\210\310\303\304\311#..." [require consult defvaralias consult-notes-sources consult-notes-file-dir-sources nil (saved-value saved-variable-comment) put make-obsolete-variable "0.6" consult-notes--all-sources consult-notes-all-sources custom-declare-group consult-notes "Search notes with consult." :group convenience custom-declare-variable consult-notes-category funcall function #f(compiled-function () #) "Category symbol for the notes in this package." :type symbol #f(compiled-function () #) "Sources for `consult-notes'." (repeat symbol) #f(compiled-function () #) "Directories of files for searching with `consult-n..." (list string key string) consult-notes-file-dir-annotate-function #f(compiled-function () #) "Function to call for annotations of file note dire..." consult-notes-use-rg #f(compiled-function () #) "Whether to use ripgrep or just grep for text searc..." boolean consult-notes-ripgrep-args #f(compiled-function () #) "Arguments for `ripgrep' and `consult-notes-search-..." string consult-notes-grep-args #f(compiled-function () #) "Arguments for `grep' and `consult-notes-search-in-..." consult-notes-default-format #f(compiled-function () #) "Default format for `consult-notes' open function." sexp consult-notes-max-relative-age ...] 8) (consult-notes-org-headings-mode) eval-buffer() ; Reading at buffer position 2730 funcall-interactively(eval-buffer) call-interactively(eval-buffer record nil) command-execute(eval-buffer record) execute-extended-command(nil "eval-buffer" "eval-bu") funcall-interactively(execute-extended-command nil "eval-buffer" "eval-bu") call-interactively(execute-extended-command nil nil) command-execute(execute-extended-command)
-
Why does elpaca make emacs startup so much faster?
Wow, interesting that my response is getting down voted. It seems not enough that I give away my work for free. Nevertheless I appreciate support from the community, as other Emacs package developers. The support is actually helpful. To clarify, publishing my configuration would translate into quite a bit of work, requiring separation of private and public bits.
-
Which package manager should I use?
They're still coming in. This one is from yesterday: https://github.com/minad/consult/issues/793
-
Alternative keyboard layouts
If you like meow-visit also try imenu it is built into Emacs and can be very useful either by itself or as part of consult. consult also has a consult-mark function that can be helpful, meow kind of breaks it since it makes a lot of marks.
What are some alternatives?
lsp-mode - Emacs client/library for the Language Server Protocol
helm - Emacs incremental completion and selection narrowing framework
dap-mode - Emacs :heart: Debug Adapter Protocol
consult-projectile
clangd - clangd language server
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
rust-analyzer - A Rust compiler front-end for IDEs [Moved to: https://github.com/rust-lang/rust-analyzer]
vertico - :dizzy: vertico.el - VERTical Interactive COmpletion
web-mode - web template editing mode for emacs
swiper - Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!
company-mode - Modular in-buffer completion framework for Emacs
selectrum - 🔔 Better solution for incremental narrowing in Emacs.