Added context plugins that keep block-starting lines at the top of the
editing window, to have some context of where is located the code one is
editing.
Removed the first-line a warning/error occurs, info from the status-line
for both, Neovim's LSP server and Vim's CoC. That information can be
obtained when going through the quickfix list of diagnostics, instead of
seeing only the first and then the second, if the first gets fixed.
Also, as a bonus, enabled the global-status-line setting in Neovim.
If using the Symbols Only version of the NerdFonts, prioritize that
fontface in order for it's glyphs to appear prior other fonts using the
same codes.
This patch still relies on an unpatched fontface for monospaced fonts,
but adds immediately, as a second option, the fontface of symbols from
NerdFont.
Some movements, selection, etc. from Vim, usually don't work properly
when trying to detect the start/end of functions/classes scope and other
languages symbols when, for instance, language blocks are not
curly-bracket-based.
This Tree-sitter plugin aims to solve those issues using the AST of the
source file.
Although it is nice to see the corresponding GNU/Linux distro logo in
the status bar; there is no relation between Debian, Fedora, Arch, etc,
and the file having UNIX line endings.
This patch anonymizes that by making the status bar show just a Tux then
the file has UNIX line-ending terminations.
Vim's plugin auto-pairs has been unmaintained for several years now. A
new project has risen as a fork of the original one.
This patch uses the new fork and sets some defaults existing in the
previous plugin.
indentLine has had support dropped since mid-2023. There is no
replacement that works on both Neovim and Vim; but almost the same
behavior can be achieved with `listchars` and some autocmd magic.
So the plugin is getting removed as dependency from this repo.
indentLine is archived since last year and with that, there are no
further updates. But the project's GitHub states that the same behavior
can be achieved with Vim's listchars, so this patch does that.
The override in place for Python classes highlighting wasn't having
effect. The issue is that now user queries need to explicitly extend,
with the keyword `;extend` the scheme rules they are overriding.
Changed the hard-coded virtual environment directory name used to look
for Python related binaries to whatever directory is defined in the
`VIRTUAL_ENV` environment variable. That variable's value is more
reliable, even more when Python virtual environments are located in a
central location, not near the repository.
Test for new executables, for different checkers, for Python LSP only if
the virtual environment directory has been found.
The previous behavior could have found executables for such linters on
different places, as they could have been appearing outside a virtual
environment directory (if the `venv_dir` variable tested as an empty
string). Such behavior could lead to undefined behaviors.
On most Linux distros python3 is the default, even more, there is no
Python version 2 to be installed anyways, hence there is no need to
distinguish which python version to load anymore.
The default python executable has come to be `python` even though the
Python version is 3.x. Furthermore, on all virtual environments
`python` exists and is linked to point to a Python 3.x executable.
Third-party installed plugins are enabled by default, hence there is no
need to explicitly enable it.
Ruff plugin doesn't come with standard PyLSP, and is one (along with
pylsp-mypy) of the manually added plugins.
When possible, for pre-commit hooks, instead of receiving arguments via
command line, make them read their config from a configuration file to
achieve the same behavior as invoking the corresponding tool outside
pre-commit.
Some of the arguments in the pip-tools hook were for an older version of
the hook, which didn't work with pyproject.toml files.
Since Python 3.6 is long deprecated now, the template is being bumped at
least to the 3.7 version.
For the pre-commit-config.yaml added the Ruff hook and, as Ruff is being
configured via TOML file instead of inline command line arguments, also
added the toml checker.
Although the block of code moved is programmatic configuration taking
place before the actual on/off of settings (which could be interpreted
as metadata config), the block of code in question had nothing to do
with the setting of other LSPs than PyLSP.
The whole block is for pre-installing plugins for PyLSP server, or its
plugins'.
As the `--pretty` flat for Mypy provides nicer output, the soft word
wrap it uses makes editors receive part of the message. Hence the
setting has to be overridden inside editors (the flag is kept on
because invoking Mypy from terminal benefits from the extra output
information).
Some Pylint settings that are more probable to occur on medium-big
projects were move to the pyproject.toml template, in order to have it
near when a new project is started.
On the other hand, those checks were never going to be on for regular
Python programming.
The deleted line was already commented out. There is no need for the
line anyways as the mccabe plugin comes already disabled by default.
Furthermore the option is a duplication, enabling the plugin and setting
a value to the `threshold` has the same effect as setting the
`maxComplexity` value on Flake8's plugin.
The only distinction is McCabe came, when enabled, with a default preset
value of 15 for `threshold`, which Flake8 hasn't for `maxComplexity`.
In order to make Ruff report, the best way possible, mimicking the
reports provided by both Flake8 and Pylint, disable some of the checks
that the latter linters don't have turned on by default.
Previously used syntax for adding Melpa's repository to Emacs was taken
from Melpa's site itself. But some of those commands have become
standard Emacs that load on Emacs startup. This changes are to make use
of newer techniques for incorporating 3rd party repos into Emacs.
Eglot's configuration for LSP servers does not have a “false” literal in
Lisp. Furthermore, the previously used `nil` value was being mapped to
JSON's `null` value instead of `false`; making the LSP server to load
defaults for those settings instead of setting those settings to false.
Changed mypy configuration INI format. Python's configparser checks
boolean values in a case-insensitive manner, so it doesn't matter if
values start in Title-case or lower-case. This way, the configuration
is easily translated to TOML format for writing a pyproject.toml file;
with the exception of string values which will have to be enclosed in
quotes anyways.
Similar to a plugin manager, Emacs has Elpa and Melpa repos. Here,
Melpa repository is being added and then some packages (themes and
languages' modes) provided by that repo.