That seems like a weird dichotomy between ruff and Jedi. One does linting & formatting, the other code completion, goto-definition, refactoring. With pylsp you can have both: it uses Jedi (in the default config), and has a plugin to call ruff for linting and formatting (according to the doc; I don't actually use ruff).
I'm using pylsp (python-language-server). My reason being a process of elimination. I also use mypy for type-checking, so even without considering the danger of allowing MS to entrench itself into my tooling, it didn't make much sense to use a tool built around pyright.
The ruff-lsp seems to only do the things that ruff is good at: linting, code formatting, auto-fix of certain issues, and I wanted more.
Since I saw that pylsp uses Jedi under the hood, and offered a mypy plugin, I felt that pylsp offer a superset of the features that the Jedi LSP has. In the end I'm happy with pylsp, and never tried Jedi LSP.
However: with the mypy plugin for pylsp, the memory usage kept growing to ridiculous amounts and getting killed, so I ended up disabling it. I had a look in their bug tracker Instead, I'm using flymake that triggers mypy on save, and that seems to work well. (I have a few changes on top of com4/flymake-mypy.el, because it leaves behind plenty of temporary files.)
That offers me:
- jump to definition (using Jedi under the hood)
- rename symbol (and then Jedi goes and rename uses of that symbol)
- smart completion (eg. offers only variables in scope, or after a
.
only the instance members, etc.) - short documentation on hover
- squiggly lines for errors found by flake8 or mypy
- and a few more that I don't really notice
One thing I struggled with: where do you install the LSP? Using pipx for a user installation, or in a per-project venv? I did the latter, which works for me because I work on a small number of projects. That also means that mypy finds all the relevant third-party libraries in that venv. I wrote a bit of elisp that allow emacs to find the right mypy binary to check code.
That was silly and clever, I enjoyed reading that :)
CVS is the authoritative repository of code, and they recommend to users to use that or reposync (built atop of CVS) to keep their system updated.
There is also a GitHub mirror , and got is an OpenBSD project, and I suspect a number of devs use one of those for local work until it's time to push the changes to the authoritative tree.
Justification I've heard is that if one part of the couple is managing the other, or is promoted after the relationship started, then:
- there is a power imbalance in the couple, possibly one is coercing the other (« I can't leave him/her, they'll make my worklife hell / get me fired »);
- there is a risk the manager will promote their partner even if their job performance doesn't warrant it
Companies will want to both avoid this sort of things, and avoid being seen to enable this sort of things. They might want to move one of the parties to a different department so that the higher up one doesn't make promotion decisions for the other.
I've once worked at a company that wanted to know about relationships between their employees and suppliers/customers' employees, again because that might enable situations where a supplier / customer is treater favourably because of personal relationships
And Fabrice Bellard, the original author of ffmpeg, went on to create qemu which pretty much made open-source virtualization possible. Also TCC (even if I don't think that one is widely used), he established a world record for computing decimals of Pi using a single machine that had ~2000× less FLOPS than the previous record, and so much more...
I think it has more to do with the fact Mother Nature is really inefficient and allocated much more DNA storage than necessary.
Thank you for the pointers @e0qdk@reddthat.com
My use case certainly fall into that described by ESR, I only really need to understand markup that falls in the ASCII range and pass the rest unmodified
Hi, you've given me the impetus to try out ASK instead of SwifyKey, I'm now using ASK :) The one touch language shift is what I want, the mixing of several languages in suggestions is a terrible design I feel.
On Linux, by default they're not. getcpu(2) says: