neovim 0.10 introduces experimental support for hyperlinks using
OSC 8 sequence. By default, this is used in Markdown for links of
the form [example](https://example.com). If terminal supports the
OSC 8 escape sequence, then the text example in the neovim buffer
will contain a hyperlink that can be clicked and it will open in
web browser.
This means markdown files with conceallevel=2 look much closer to
the rendered output.
We want file path being shown in winbar to be relative to the current
directory or in our case frequently the git root. For whatever reason,
only the first opened leftmost split would show the file path relative
to current git root while any files opened later would show the full
path starting from `HOME`/~ directory. So something around how '%f%m%r'
actually works or how it is being used to set winbar has been a problem.
checkProject if set to true, type checks the entire project on initial
load. If activated by default which it is, can lead to bad performance
in large projects.
Though Ruff is not an LSP in the LSP sense but using it this way
gives us formatting and linting via code actions. All other Python
LSP servers are garbage anyway.
All Python LSP servers are garbage. Jedi was being horribly slow.
We only care about Python for GStreamer/GObject work where Python
GObject's missing type annotations prevent us from using something
like Pyright or similar. Just drop all this crap. Fuck Python!.
We had dropped these in commit f349a32 since these are now included
upstream but it seems when using neovim build from source, upstream
bundled parsers do not get updated at the same cadence as treesitter
plugin. This results in breaking syntax highlighting and we have
faced this now for python and bash. Bash is still broken.
The call to highlight_terminal was redundant since we were passing
just {}. Also remove cterm related settings. Upstream has diverged
significantly, so we need not care about upstream any more.
Dynamic capabilities were introduced in neovim with commit ddd92a7.
With dynamic registration of LSP capabilities, a client's `server_capabilities`
is no longer a sufficient indicator to see if a server supports a feature. We
instead need to use `client.supports_method(<method>)` which considers both
the dynamic capabilities and static `server_capabilities`.