11 Commits
Author SHA1 Message Date
Jason Ross fb4571a464 feat(elixir): add Expert, Treesitter and credo support
Use Expert, the official Elixir language server, with the elixir, heex
and eex parsers, markdown highlighting for Livebook files, and credo
linting in projects that have a .credo.exs.

This stands in for LazyVim's elixir extra. Its nvim-lint opts assign
linters_by_ft outright, which drops every linter configured before it;
enabling it removed the dockerfile and fish linters. Register the
Livebook language from an opts function, since lazy.nvim keeps only the
last init for a plugin and xaml.lua already sets one.
2026-09-27 20:03:45 -05:00
Jason Ross 071d1033ed feat(erlang): add ELP and Treesitter support
LazyVim's erlang extra still enables erlangls, but erlang_ls was
archived and nvim-lspconfig has dropped its config in favour of ELP
(LazyVim/LazyVim#7249). Configure ELP, which Mason installs, and the
erlang Treesitter parser directly.
2026-09-27 20:03:45 -05:00
Jason Ross a23aa4d884 fix(ruby): run ruby-lsp on the project's Ruby via rbenv
Mason's ruby-lsp is a gem bound to whichever Ruby installed it. In a
project that pins a different Ruby, loading the project bundle fails
with Bundler::RubyVersionMismatch and the server exits, which is what
kept producing the client-quit warning. ruby-lsp's editor docs advise
against Mason for this reason and recommend the version manager's
shim.

Turn Mason off for ruby_lsp and launch ~/.rbenv/shims/ruby-lsp from
the project root, since rbenv resolves .ruby-version from the working
directory and Neovim otherwise starts servers in its own cwd. Machines
without rbenv fall back to ruby-lsp on PATH.
2026-09-27 16:21:08 -05:00
Jason Ross 95bc4ffd5a feat(swift): add Swift highlighting, sourcekit-lsp and formatting
LazyVim has no Swift extra, so configure the pieces swift.org's Neovim
guide uses: the Treesitter swift parser and sourcekit-lsp from the
installed toolchain rather than Mason. lspconfig also assigns
sourcekit C, C++ and Objective-C, which would put a second server
beside clangd on those files, so limit it to Swift.

Format on save with conform's swift formatter, which runs the
toolchain's `swift format`; the standalone swift-format binary isn't
on PATH.
2026-09-27 15:58:04 -05:00
Jason Ross baa7030a5a feat(html,css): add HTML and CSS language servers
HTML and CSS were formatted by Prettier but had no language server
apart from Tailwind's. Add vscode-html-language-server and
vscode-css-language-server, which also covers SCSS and Less, plus the
SCSS Treesitter parser.
2026-09-27 15:58:04 -05:00
Jason Ross c90f046c11 feat(clangd): enable the LazyVim clangd extra
C and C++ only had Treesitter highlighting. The extra adds clangd,
clangd_extensions.nvim, the cpp parser and a codelldb debug config;
lazy-lock.json pins clangd_extensions.nvim.
2026-09-27 15:58:04 -05:00
Jason Ross 8a324b7a80 feat(bazel): add Bazel plugins and completion
Add vim-bazel (with its vim-maktaba dependency) and bazel.nvim for
running Bazel from the editor, with an errorformat that sends Bazel
build and test failures to the quickfix list. cmp-bazel supplies a
Bazel completion source, wired into blink.cmp through blink.compat.
lazy-lock.json pins the five new plugins.
2026-09-27 15:41:30 -05:00
Jason Ross 22adb837ed feat(javascript) add ejs syntax highlighting and npm package version info 2026-09-22 09:50:14 -05:00
Jason Ross 96623fe417 Merge branch 'main' of github.com:JMR-dev/nvim-config 2026-06-12 19:35:16 -05:00
Jason Ross 37db416d2c enable line wrapping 2026-06-12 19:34:42 -05:00
Jason Ross 99c48580f7 add git blame plugin 2026-06-03 10:22:16 -05:00