neovim: Use mesonlsp instead of muon

This commit is contained in:
traxys 2024-03-11 22:38:20 +01:00
parent a2ca7b7802
commit 1e1501215b
2 changed files with 58 additions and 50 deletions

View file

@ -306,20 +306,23 @@
}
// (nixpkgs.legacyPackages."${system}".callPackage ./_sources/generated.nix {});
pkgList = system: callPackage:
(import ./pkgs/default.nix {
inherit callPackage;
sources = sources system;
naersk = inputs.naersk.lib."${system}";
})
// {
glaurung = inputs.glaurung.defaultPackage."${system}";
raclette = inputs.raclette.defaultPackage."${system}";
roaming_proxy = inputs.roaming_proxy.defaultPackage."${system}";
pkgList = system: callPackage: let
packages =
(import ./pkgs/default.nix {
inherit callPackage;
sources = sources system;
naersk = inputs.naersk.lib."${system}";
})
// {
glaurung = inputs.glaurung.defaultPackage."${system}";
raclette = inputs.raclette.defaultPackage."${system}";
roaming_proxy = inputs.roaming_proxy.defaultPackage."${system}";
inherit (nixpkgs-traxys.legacyPackages."${system}") groovy-language-server;
inherit (inputs.mujmap.packages."${system}") mujmap;
}
inherit (nixpkgs-traxys.legacyPackages."${system}") groovy-language-server;
inherit (inputs.mujmap.packages."${system}") mujmap;
};
in
packages
// (
let
inputsMatching = with builtins;
@ -334,25 +337,27 @@
(name: _: (match "${prefix}:.*" name) != null)
inputs);
neovimPlugins = final: prev: {
vimPlugins = prev.vimPlugins.extend (final': prev':
(nixpkgs.lib.mapAttrs (
pname: src:
prev'."${pname}".overrideAttrs (old: {
version = src.shortRev;
inherit src;
})
) (inputsMatching "plugin"))
// (
nixpkgs.lib.mapAttrs (
neovimPlugins = final: prev:
{
vimPlugins = prev.vimPlugins.extend (final': prev':
(nixpkgs.lib.mapAttrs (
pname: src:
prev.vimUtils.buildVimPlugin {
inherit pname src;
prev'."${pname}".overrideAttrs (old: {
version = src.shortRev;
}
) (inputsMatching "new-plugin")
));
};
inherit src;
})
) (inputsMatching "plugin"))
// (
nixpkgs.lib.mapAttrs (
pname: src:
prev.vimUtils.buildVimPlugin {
inherit pname src;
version = src.shortRev;
}
) (inputsMatching "new-plugin")
));
}
// packages;
nixvim' = inputs.nixvim.legacyPackages."${system}";
neovimNightly = inputs.neovim-flake.packages."${system}".neovim;

View file

@ -21,6 +21,29 @@
autoGroups.BigFileOptimizer = {};
autoCmd = [
{
event = ["BufNewFile" "BufRead"];
pattern = ["meson.build" "meson_options.txt" "meson.options"];
callback = let
settings = {
};
in
helpers.mkRaw ''
function(args)
local match = vim.fs.find(
{"meson_options.txt", "meson.options", ".git"},
{path = args.file, upward = true}
)[1]
local root_dir = match and vim.fn.fnamemodify(match, ":p:h") or nil
vim.lsp.start({
name = "mesonlsp",
cmd = {"${lib.getExe pkgs.mesonlsp}", "--lsp"},
root_dir = root_dir,
settings = ${helpers.toLuaObject settings},
})
end
'';
}
{
event = "BufReadPost";
pattern = [
@ -492,26 +515,6 @@
};
settings = {
logLevel = 1;
languages.meson = [
(helpers.mkRaw (helpers.toLuaObject {
prefix = "muon-fmt";
formatCommand = "muon fmt -";
formatStdin = true;
}))
(helpers.mkRaw (helpers.toLuaObject {
prefix = "muon-analyze";
lintSource = "efm/muon-analyze";
lintCommand = "muon analyze -l";
lintWorkspace = true;
lintStdin = false;
LintIgnoreExitCode = true;
rootMarkers = ["meson_options.txt" ".git"];
lintFormats = [
"%f:%l:%c: %trror %m"
"%f:%l:%c: %tarning %m"
];
}))
];
};
};
taplo.enable = true;