mirror of
https://github.com/NotAShelf/nvf.git
synced 2026-01-16 23:35:13 +00:00
Compare commits
No commits in common. "e2b3daa6f839ce246978cd6607e88d01d8f3ecd3" and "5a3ac8993a29ce676ba63365850656cc4789f98c" have entirely different histories.
e2b3daa6f8
...
5a3ac8993a
14 changed files with 61 additions and 174 deletions
|
|
@ -25,6 +25,7 @@ isMaximal: {
|
|||
trouble.enable = true;
|
||||
lspSignature.enable = true;
|
||||
otter-nvim.enable = isMaximal;
|
||||
lsplines.enable = isMaximal;
|
||||
nvim-docs-view.enable = isMaximal;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -87,10 +87,6 @@
|
|||
- Add [oil.nvim] as an alternative file explorer. It will be available under
|
||||
`vim.utility.oil-nvim`.
|
||||
|
||||
- Add `vim.diagnostics` to interact with Neovim's diagnostics module. Available
|
||||
options for `vim.diagnostic.config()` can now be customized through the
|
||||
[](#opt-vim.diagnostics.config) in nvf.
|
||||
|
||||
[amadaluzia](https://github.com/amadaluzia):
|
||||
|
||||
[haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim
|
||||
|
|
@ -257,8 +253,8 @@
|
|||
[friendly-snippets](https://github.com/rafamadriz/friendly-snippets) so
|
||||
blink.cmp can source snippets from it.
|
||||
- Fix [blink.cmp] breaking when built-in sources were modified.
|
||||
- Fix [conform.nvim] not allowing disabling formatting on and after save. Use
|
||||
`null` value to disable them if conform is enabled.
|
||||
- Fix [conform.nvim] not allowing disabling formatting on and after save.
|
||||
Use `null` value to disable them if conform is enabled.
|
||||
|
||||
[TheColorman](https://github.com/TheColorman):
|
||||
|
||||
|
|
@ -299,8 +295,6 @@
|
|||
- Add catppuccin integration for Bufferline, Lspsaga.
|
||||
- Add neo-tree integration for Bufferline.
|
||||
- Add more applicable filetypes to illuminate denylist.
|
||||
- Disable mini.indentscope for applicable filetypes.
|
||||
- Enable inlay hints support - `config.vim.lsp.inlayHints`.
|
||||
|
||||
[tebuevd](https://github.com/tebuevd):
|
||||
|
||||
|
|
|
|||
|
|
@ -104,13 +104,6 @@ in {
|
|||
their behaviour was abstract, and confusing. Please use 'vim.options' or 'vim.luaConfigRC'
|
||||
to replicate previous behaviour.
|
||||
'')
|
||||
|
||||
# 2025-04-04
|
||||
(mkRemovedOptionModule ["vim" "lsp" "lsplines"] ''
|
||||
lsplines module has been removed from nvf, as its functionality is now built into Neovim
|
||||
under the diagnostics module. Please consider using one of 'vim.diagnostics.config' or
|
||||
'vim.luaConfigRC' to configure LSP lines for Neovim through its own diagnostics API.
|
||||
'')
|
||||
]
|
||||
|
||||
# Migrated via batchRenameOptions. Further batch renames must be below this line.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
./autocmds.nix
|
||||
./basic.nix
|
||||
./debug.nix
|
||||
./diagnostics.nix
|
||||
./highlight.nix
|
||||
./spellcheck.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,109 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.options) mkOption mkEnableOption literalExpression;
|
||||
inherit (lib.types) attrsOf anything oneOf bool submodule;
|
||||
inherit (lib.nvim.dag) entryAfter;
|
||||
inherit (lib.nvim.types) luaInline;
|
||||
inherit (lib.nvim.lua) toLuaObject;
|
||||
|
||||
cfg = config.vim.diagnostics;
|
||||
|
||||
# Takes a boolean, a table, or a Lua list ({key = value}). We
|
||||
# would like to allow all of those types, while clearly expressing
|
||||
# them in the option's type. As such, this type is what it is.
|
||||
diagnosticType = oneOf [(attrsOf anything) bool luaInline];
|
||||
diagnosticsSubmodule = submodule {
|
||||
# The table might need to be extended, so let's allow that case
|
||||
# with a freeform type of what is supported by diagnostics opts.
|
||||
freeformType = attrsOf diagnosticType;
|
||||
options = {
|
||||
underline = mkOption {
|
||||
type = diagnosticType;
|
||||
default = true;
|
||||
description = "Use underline for diagnostics.";
|
||||
};
|
||||
|
||||
virtual_text = mkOption {
|
||||
type = diagnosticType;
|
||||
default = false;
|
||||
example = literalExpression ''
|
||||
{
|
||||
format = lib.generators.mkLuaInline '''
|
||||
function(diagnostic)
|
||||
return string.format("%s (%s)", diagnostic.message, diagnostic.source)
|
||||
end
|
||||
''';
|
||||
}
|
||||
'';
|
||||
|
||||
description = ''
|
||||
Use virtual text for diagnostics. If multiple diagnostics are set for a namespace,
|
||||
one prefix per diagnostic + the last diagnostic message are shown.
|
||||
'';
|
||||
};
|
||||
|
||||
virtual_lines = mkOption {
|
||||
type = diagnosticType;
|
||||
default = false;
|
||||
description = ''
|
||||
Use virtual lines for diagnostics.
|
||||
'';
|
||||
};
|
||||
|
||||
signs = mkOption {
|
||||
type = diagnosticType;
|
||||
default = false;
|
||||
example = {
|
||||
signs.text = {
|
||||
"vim.diagnostic.severity.ERROR" = " ";
|
||||
"vim.diagnostic.severity.WARN" = " ";
|
||||
};
|
||||
};
|
||||
description = ''
|
||||
Use signs for diagnostics. See {command}`:help diagnostic-signs`.
|
||||
'';
|
||||
};
|
||||
|
||||
update_in_insert = mkOption {
|
||||
type = bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Update diagnostics in Insert mode. If `false`, diagnostics will
|
||||
be updated on InsertLeave ({command}`:help InsertLeave`).
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
in {
|
||||
options.vim = {
|
||||
diagnostics = {
|
||||
enable = mkEnableOption "diagostics module for Neovim";
|
||||
config = mkOption {
|
||||
type = diagnosticsSubmodule;
|
||||
default = {};
|
||||
description = ''
|
||||
Values that will be passed to `vim.diagnostic.config` after being converted
|
||||
to a Lua table. Possible values for each key can be found in the help text
|
||||
for `vim.diagnostics.Opts`. You may find more about the diagnostics API of
|
||||
Neovim in {command}`:help diagnostic-api`.
|
||||
|
||||
:::{.note}
|
||||
This option is freeform. You may set values that are not present in nvf
|
||||
documentation, but those values will not be fully type checked. Please
|
||||
refer to the help text for `vim.diagnostic.Opts` for appropriate values.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config.vim = mkIf cfg.enable {
|
||||
luaConfigRC.diagnostics = entryAfter ["basic"] ''
|
||||
vim.diagnostic.config(${toLuaObject cfg.config})
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -4,7 +4,6 @@
|
|||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.generators) mkLuaInline;
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.strings) optionalString;
|
||||
inherit (lib.trivial) boolToString;
|
||||
|
|
@ -29,25 +28,6 @@ in {
|
|||
sourcePlugins = ["cmp-nvim-lsp"];
|
||||
};
|
||||
|
||||
autocmds =
|
||||
if cfg.inlayHints.enable
|
||||
then [
|
||||
{
|
||||
callback = mkLuaInline ''
|
||||
function(event)
|
||||
local bufnr = event.buf
|
||||
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then
|
||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }), { bufnr = bufnr })
|
||||
end
|
||||
end
|
||||
'';
|
||||
desc = "LSP on-attach enable inlay hints autocmd";
|
||||
event = ["LspAttach"];
|
||||
}
|
||||
]
|
||||
else [];
|
||||
|
||||
pluginRC.lsp-setup = ''
|
||||
vim.g.formatsave = ${boolToString cfg.formatOnSave};
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
./lightbulb
|
||||
./otter
|
||||
./lspkind
|
||||
./lsplines
|
||||
./nvim-docs-view
|
||||
];
|
||||
}
|
||||
|
|
|
|||
21
modules/plugins/lsp/lsplines/config.nix
Normal file
21
modules/plugins/lsp/lsplines/config.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.nvim.dag) entryAfter;
|
||||
|
||||
cfg = config.vim.lsp;
|
||||
in {
|
||||
config = mkIf (cfg.enable && cfg.lsplines.enable) {
|
||||
vim.startPlugins = ["lsp-lines"];
|
||||
vim.pluginRC.lsplines = entryAfter ["lspconfig"] ''
|
||||
require("lsp_lines").setup()
|
||||
|
||||
vim.diagnostic.config({
|
||||
virtual_text = false,
|
||||
})
|
||||
'';
|
||||
};
|
||||
}
|
||||
6
modules/plugins/lsp/lsplines/default.nix
Normal file
6
modules/plugins/lsp/lsplines/default.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./config.nix
|
||||
./lsplines.nix
|
||||
];
|
||||
}
|
||||
11
modules/plugins/lsp/lsplines/lsplines.nix
Normal file
11
modules/plugins/lsp/lsplines/lsplines.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.options) mkEnableOption;
|
||||
in {
|
||||
options.vim.lsp = {
|
||||
lsplines = {
|
||||
enable = mkEnableOption ''
|
||||
diagnostics using virtual lines on top of the real line of code. [lsp_lines]
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -5,9 +5,6 @@ in {
|
|||
options.vim.lsp = {
|
||||
enable = mkEnableOption "LSP, also enabled automatically through null-ls and lspconfig options";
|
||||
formatOnSave = mkEnableOption "format on save";
|
||||
inlayHints = {
|
||||
enable = mkEnableOption "inlay hints";
|
||||
};
|
||||
mappings = {
|
||||
goToDefinition =
|
||||
mkMappingOption "Go to definition"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.generators) mkLuaInline;
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.nvim.dag) entryAnywhere;
|
||||
inherit (lib.nvim.lua) toLuaObject;
|
||||
|
|
@ -11,21 +10,6 @@
|
|||
cfg = config.vim.mini.indentscope;
|
||||
in {
|
||||
vim = mkIf cfg.enable {
|
||||
autocmds = [
|
||||
{
|
||||
callback = mkLuaInline ''
|
||||
function()
|
||||
local ignore_filetypes = ${toLuaObject cfg.setupOpts.ignore_filetypes}
|
||||
if vim.tbl_contains(ignore_filetypes, vim.bo.filetype) then
|
||||
vim.b.miniindentscope_disable = true
|
||||
end
|
||||
end
|
||||
'';
|
||||
desc = "Disable indentscope for certain filetypes";
|
||||
event = ["FileType"];
|
||||
}
|
||||
];
|
||||
|
||||
startPlugins = ["mini-indentscope"];
|
||||
|
||||
pluginRC.mini-indentscope = entryAnywhere ''
|
||||
|
|
|
|||
|
|
@ -1,16 +1,13 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.options) mkOption mkEnableOption;
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.options) mkEnableOption;
|
||||
inherit (lib.nvim.types) mkPluginSetupOption;
|
||||
inherit (lib.types) str listOf;
|
||||
in {
|
||||
options.vim.mini.indentscope = {
|
||||
enable = mkEnableOption "mini.indentscope";
|
||||
setupOpts = mkPluginSetupOption "mini.indentscope" {
|
||||
ignore_filetypes = mkOption {
|
||||
type = listOf str;
|
||||
default = ["help" "neo-tree" "notify" "NvimTree" "TelescopePrompt"];
|
||||
description = "File types to ignore for illuminate";
|
||||
};
|
||||
};
|
||||
setupOpts = mkPluginSetupOption "mini.indentscope" {};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -747,6 +747,18 @@
|
|||
"url": "https://github.com/kawre/leetcode.nvim/archive/db7e1cd6b9191b34b4c1f2f96e4e3949cde9f951.tar.gz",
|
||||
"hash": "1d3lb7625b2qdzqm74mzrac66rxqc0qgjd3mb37l4v8wqyiyv6pp"
|
||||
},
|
||||
"lsp-lines": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "Git",
|
||||
"url": "https://git.sr.ht/~whynothugo/lsp_lines.nvim"
|
||||
},
|
||||
"branch": "main",
|
||||
"submodules": false,
|
||||
"revision": "a92c755f182b89ea91bd8a6a2227208026f27b4d",
|
||||
"url": null,
|
||||
"hash": "14ym4d8vgvw2vhsaxik8612wyvszd895q69n9h100yd7x5jqhy4c"
|
||||
},
|
||||
"lsp-signature-nvim": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue