Commit Graph
256 Commits
Author SHA1 Message Date
Austin Horstman 52c68b4da4 plugins/claude-code: add claude-code dependency 2025-05-08 10:35:31 +02:00
Matt Sturgeon a45b5f372f modules/lsp: add onAttach option
Similar to `plugins.lsp.onAttach`, implement a "global" equivalent to
the per-server `on_attach` callback.

This is implemented using a `LspAttach` autoCmd.
2025-05-06 14:08:03 +01:00
Matt Sturgeon 5308425718 modules/lsp/servers: move to dedicated file/dir
Move the code related to the `lsp.servers` option into a dedicated module,
cleaning up `modules/lsp/default.nix`.
2025-05-05 23:43:30 +01:00
Matt Sturgeon 552dec0e55 modules/lsp/keymaps: init
Initial LSP keymaps option, inspired by `keymapsOnEvent` and
`plugins.lsp.keymaps`.

Users can define `lspBufAction` instead of `action` if they wish to use
a `vim.lsp.buf.<action>` callback.
2025-05-03 22:50:28 +01:00
Matt Sturgeon 90eb4e681c modules/lsp/servers: move the * server to its own module
Introduce a bespoke `global-server.nix` module. This is less DRY, but
much simpler.

The `lsp.servers."*"` options are different enough from the other
`lsp.servers.<name>` options that it is simpler to just declare them
separately.

Now that we have a dedicated `global-server.nix` module, we no longer
need to split the normal server module into `server.nix`+`server-base.nix`

This partially reverts f2e96b67a3
2025-05-03 20:20:19 +01:00
Matt Sturgeon a072e3c3a7 modules/lsp: enable servers."*" by default 2025-05-01 00:36:41 +01:00
Matt Sturgeon b6e2016b7f modules/lsp: check if server settings is empty
Avoid unnecessary lua lines by checking if `server.settings` is empty
before writing `vim.lsp.config()` to `init.lua`.
2025-05-01 00:36:16 +01:00
Matt Sturgeon f2e96b67a3 modules/lsp: declare a stripped down servers."*" option
`"*"` is effectively a meta server, where shared config/defaults can be
set.

It shouldn't have options like `activate` or `package` which relate to
"real" servers. Therefore, we'll use `server-base.nix` directly, instead
of the full `server.nix` module.
2025-05-01 00:12:39 +01:00
Johan Larsson eeae362038 modules/lsp: add enable = true to wildcard config section 2025-04-30 20:55:26 +01:00
Johan Larsson 2d65c66a1a modules/lsp: don't enable wildcard server
The wildcard server ("*") should have its config set, but not be enabled
through `vim.lsp.enable()`.
2025-04-30 20:55:26 +01:00
Matt Sturgeon 1df98b6636 modules/diagnostic: rename diagnostic.config -> diagnostic.settings
Follow up to #3226, in line with the decisions made in #3254.
2025-04-30 18:31:17 +01:00
Matt Sturgeon 21688b1d2a modules/lsp/server: rename config -> settings
`config` is a loaded term within modules and options.

`settings` is the name usually used for freeform config in nixvim and
most other module configurations.
2025-04-30 17:35:46 +01:00
Matt Sturgeon e34eaf8395 modules/lsp/server: declare package defaults
Convert the `attrsOf (servers.nix)` option to a freeform submodule.

Declare a `servers.nix` option for each lsp server listed in
`lsp-packages.nix` that has a known nixpkgs package.
2025-04-30 16:53:55 +01:00
Matt Sturgeon 29aa22c41a modules/lsp: use relative link to plugins.lspconfig 2025-04-28 18:54:05 +01:00
Matt Sturgeon 5c67a96a86 modules/lsp: get nvim-lspconfig link from plugins.lspconfig.package 2025-04-28 18:54:04 +01:00
Matt Sturgeon 812b2b0903 modules/lsp: update wording for plugins.lspconfig recommendation 2025-04-28 18:54:04 +01:00
Matt Sturgeon 556eb29548 plugins/lspconfig: init
A simplified replacement for `plugins.lsp`.

Eventually, once the `lsp` and `plugins.lspconfig` modules are mature,
`plugins.lsp` will be deprecated and/or aliased.
2025-04-28 18:54:04 +01:00
Matt Sturgeon 29aa60b43a modules/lsp: add per-server name option
This allows users to override the name used for a given `lsp.servers.*`
entry. The default is still the attr-name.

This may be useful to inject raw lua, or to configure the same server in
different ways via different attrs.
2025-04-28 18:23:49 +01:00
Matt Sturgeon 3722f88c5d modules/lsp: move server module to dedicated file 2025-04-28 18:04:11 +01:00
Matt Sturgeon 74368bcfc1 modules/lsp: move to dedicated directory 2025-04-28 17:59:05 +01:00
Gaetan LepageandMatt Sturgeon 70c9b3b890 modules/lsp: init
Co-authored-by: Matt Sturgeon <matt@sturgeon.me.uk>
2025-04-28 18:11:39 +02:00
Stanislav Asunkin f28d384ab5 modules/performance/combine-plugins: propagate lua dependencies
Plugins from luarocks (e.g. telescope-nvim) have dependencies specified
in propagatedBuildInputs. These dependencies are not added as plugins in
Nvim runtime. They are added to LUA_PATH env var for wrapped neovim.
This commit collects all propagatedBuildInputs from input plugin list
and puts them in the combined plugin.
Note that such dependencies are never combined, because they are not
plugins.
2025-04-28 17:26:13 +03:00
Stanislav Asunkin 7bb135b091 Revert "modules/performance: temporary add plenary to extraPlugins to fix tests"
This reverts commit 5a491f4b2b.
2025-04-28 17:26:13 +03:00
Matt Sturgeon 6c73350557 modules/diagnostic: rename diagnostics -> diagnostic.config
Currently we represent `vim.diagnostic.config()` as a top-level
`diagnostics` option. This means we have no clear namespace for
(e.g.) `vim.diagnostic.<action>` keymap functions.
2025-04-26 20:09:23 +01:00
Matt Sturgeon 47f44488ae modules/performance: document pathsToLink default
We set the default with "normal" priority, so explicitly list it as
`defaultText`.
2025-04-26 19:55:38 +01:00
Matt Sturgeon 6418cf3414 modules/performance: update runtimepath pathsToLink 2025-04-26 19:55:38 +01:00
Wyatt Avilla d86fe3df56 modules/diagnostics: fix virtual_lines example
The setting is named `current_line`, not `only_current_line`.

See https://neovim.io/doc/user/diagnostic.html#vim.diagnostic.Opts.VirtualLines
2025-04-24 16:50:32 -07:00
Matt Sturgeon 55ad604d44 modules/dependencies: restore literal expression example support 2025-04-21 09:06:28 +01:00
Matt Sturgeon fb80e0d0b5 modules/dependencies: coerce __depPackages attr-paths to list 2025-04-21 09:05:52 +01:00
Matt Sturgeon 1164b39963 modules/dependencies: add __depPackages example 2025-04-21 09:04:39 +01:00
Matt Sturgeon af2f4266e2 modules/dependencies: add description to __depPackages 2025-04-21 08:40:40 +01:00
Gaetan Lepage 6c4e2d9279 modules/dependencies: introduce top-level (internal) __depPackages option 2025-04-20 22:57:52 +02:00
Gaetan Lepage 15919567bb modules/dependencies: add codeium, coreutils, gzip and util-linux 2025-04-14 01:23:52 +02:00
Matt Sturgeon 16879e3034 modules/dependencies: refactor all-examples test
Embed the original `path` as an attr in the literal expression, so that
we don't need to convert back from human readable paths in the test.
2025-04-13 18:23:06 +01:00
Gaetan Lepage 9bc29e6a9b modules/dependencies: add rust-analyzer 2025-04-11 08:51:45 +10:00
Gaetan Lepage e7c9cc7133 modules/dependencies: add godot 2025-04-11 08:51:45 +10:00
Gaetan Lepage 06acf3f103 modules/dependencies: add flutter 2025-04-11 08:51:45 +10:00
Gaetan Lepage 55ec7c4187 modules/dependencies: add xxd 2025-04-11 08:51:45 +10:00
Gaetan Lepage 0a78c93e7a modules/dependencies: add llm-ls 2025-04-11 08:51:45 +10:00
Gaetan Lepage 75d2125e01 modules/dependencies: add tmux 2025-04-11 08:51:45 +10:00
Gaetan Lepage 5ad022e151 modules/dependencies: add glow 2025-04-11 08:51:45 +10:00
Gaetan Lepage 68c806bd60 modules/dependencies: add wezterm 2025-04-11 08:51:45 +10:00
Gaetan Lepage 1e3fe17dd7 modules/dependencies: add yq 2025-04-11 08:51:45 +10:00
Gaetan Lepage 1144fa8698 modules/dependencies: add zk 2025-04-11 08:51:45 +10:00
Gaetan Lepage 800bee29df modules/dependencies: add lazygit 2025-04-11 08:51:45 +10:00
Gaetan Lepage e866ddf5ce modules/dependencies: add cornelis 2025-04-11 08:51:45 +10:00
Gaetan Lepage 96ebd63330 modules/dependencies: add fzf 2025-04-11 08:51:45 +10:00
Gaetan Lepage ee60083622 modules/dependencies: add bat 2025-04-11 08:51:45 +10:00
Gaetan Lepage 7d7dd1d21e modules/dependencies: add plantuml 2025-04-11 08:51:45 +10:00
Gaetan Lepage a79c872893 modules/dependencies: add sd and sed 2025-04-11 08:51:45 +10:00