4 ms·
I'm sick of managing 5-6 different installs of language server protocol servers. A couple are installed with my package manager (clangd), some are installed wit
by nickysielicki 7y ago
I'm sick of managing 5-6 different installs of language server protocol servers. A couple are installed with my package manager (clangd), some are installed with pip (pyls), some I just have symlinked into ~/.local/bin (microsoft/python-language-server). It's overly difficult to get right.
If anyone is aware of a better way, especially for emacs users, I'd appreciate it. Is this something where docker or snapd might fit in well?
- fluffything 7y agoI just use spacemacs and it handles that for me.
- rhabarba 7y agoSpacemacs is disturbingly slow.
- samvher 7y agoI don't know if you find spacemacs disturbingly slow while editing or just when it starts. I was disturbed by the latter and have emacs set up to run in daemon mode and have the following in my .bashrc: function em() { emacsclient -nw "$@" } so that I can call "em" with any necessary arguments and start an emacs session without having to wait. Works for me (though depending on the language I might still prefer vim).
- rhabarba 7y agoThe emacs "daemon mode" works just well to solve the latter, indeed. But the general lack of asynchronous processing can be annoying, although async.el already exists.
- didibus 7y agoJust choose Ivy over Helm. I thought the same, but after switching to Ivy everything got fast again.
- rhabarba 7y agoHaven't tried that in a while... Thank you.
- jcranberry 7y agoSpacemacs abstracts the client side away but you still have to manage the servers yourself.
- dragonsh 7y agoFor python just use Elpy [1] or anaconda-mode. Microsoft Language Server is nice but use it for things you can not find a package in elpa or melpa. Obviously you can use emacs-prelude [2] or spacemacs [3] in the beginning and as you get familiar write your own init.el or packages to make it work the way you want. I have yet to see anything like tramp allowing seemless work on file over ssh, org-mode, ledger-mode, ERC in any other editor except may be some in vi. Indeed magit is better than any tool you will find for managing git repository. I can go on and on. You have to give it a try to see it for yourself, it pays for its learning curve over the time you use it. Initially those parentheses looks awkward, but once you get around it with understanding lisp, you will not want to go back. [1] https://github.com/jorgenschaefer/elpy https://github.com/jorgenschaefer/elpy [2] https://github.com/bbatsov/prelude https://github.com/bbatsov/prelude [3] https://github.com/syl20bnr/spacemacs https://github.com/syl20bnr/spacemacs
- nickysielicki 7y agoI have my configs where I want them, packages installed with straight.el, managed with use-package, I'm not confused on how to set up the emacs side of things. I just want a unified mechanism to install dependencies. > Microsoft Language Server is nice but use it for things you can not find a package in elpa or melpa. That's overly restrictive. I use company as my capf provider and hook company into lsp, it's a nice unified interface and it never gets in my way. What I'm looking for is a mechanism to manage the dependencies of extensions. For example, the elpy readme clearly says, "pip install jedi rope flake8 autopep8 yapf black".
- jimmyvalmer 7y agoAsk yourself the number of ways packages might get installed on a given system (apt, chocolatey, homebrew, pip, pacman, nix, guix), and recalibrate how smart you want humble emacs to be.
- m463 7y agotramp is the best and well worth knowing. It is basically emacs over ssh (although there are more possibilities) You can install emacs on one machine, then use tramp for all the rest. It's also great for machines that can't run emacs, for example you can edit config files on iot devices. Other interesting things: picture mode, artist mode, pong, fireplace. my tip for the day: (global-set-key "\M-+" 'text-scale-increase) (global-set-key "\M--" 'text-scale-decrease) (global-set-key "\M-=" (lambda () (interactive) (text-scale-set 0)))
- jcranberry 7y agosnap seems to be more about bundling dependencies with packages to make dependency management trivial. sounds your problem is more fragmentation rather than too many servers. Adding another package manager/virtual environment manager on top of that might just be more headaches.
- opan 7y agoGuix or Nix should be able to handle a problem like this. They can handle normal OS packages, emacs packages, python packages, etc. Hard to say which one you should try. Maybe search the package lists on both sites to see if they have everything you need packaged already. Nix has more total packages, but Guix has a lot of emacs users.