From f2af90654a131626050494b923c6e72ba6ba3741 Mon Sep 17 00:00:00 2001 From: dish Date: Fri, 1 May 2026 16:40:18 -0400 Subject: [PATCH] lsp/presets/qml-language-server: init Depends on https://github.com/NixOS/nixpkgs/pull/515608 --- docs/manual/release-notes/rl-0.9.md | 3 ++ modules/plugins/languages/qml.nix | 5 +++- modules/plugins/lsp/presets/default.nix | 1 + .../lsp/presets/qml-language-server.nix | 28 +++++++++++++++++++ 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 modules/plugins/lsp/presets/qml-language-server.nix diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 3d1fef06..80a22088 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -275,6 +275,9 @@ - Added support for neovim 0.12's `ui2` feature via `vim.ui.ui2` +- Added support for the `qml-language-server` package in `languages.qml` and the + new LSP preset for it + [Machshev](https://github.com/machshev): - Added `ruff` and `ty` LSP support for Python under `programs.python`. diff --git a/modules/plugins/languages/qml.nix b/modules/plugins/languages/qml.nix index fbba602a..6526cd2a 100644 --- a/modules/plugins/languages/qml.nix +++ b/modules/plugins/languages/qml.nix @@ -17,7 +17,10 @@ qmlPackage = pkgs.kdePackages.qtdeclarative; defaultServers = ["qmlls"]; - servers = ["qmlls"]; + servers = [ + "qml-language-server" + "qmlls" + ]; defaultFormat = ["qmlformat"]; formats = { diff --git a/modules/plugins/lsp/presets/default.nix b/modules/plugins/lsp/presets/default.nix index 8118f4c5..3ec38d8b 100644 --- a/modules/plugins/lsp/presets/default.nix +++ b/modules/plugins/lsp/presets/default.nix @@ -47,6 +47,7 @@ ./pyrefly.nix ./pyright.nix ./python-lsp-server.nix + ./qml-language-server.nix ./qmlls.nix ./r-languageserver.nix ./roslyn-ls.nix diff --git a/modules/plugins/lsp/presets/qml-language-server.nix b/modules/plugins/lsp/presets/qml-language-server.nix new file mode 100644 index 00000000..f35761cc --- /dev/null +++ b/modules/plugins/lsp/presets/qml-language-server.nix @@ -0,0 +1,28 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib.meta) getExe; + inherit (lib.modules) mkIf; + inherit (lib.nvim.types) mkLspPresetEnableOption; + + cfg = config.vim.lsp.presets.qmlls; +in { + options.vim.lsp.presets.qml-language-server = { + enable = mkLspPresetEnableOption "qml-language-server" "QML" []; + }; + + config = mkIf cfg.enable { + vim.lsp.servers.qml-language-server = { + enable = true; + cmd = [(getExe pkgs.qml-language-server)]; + root_markers = [ + ".git" + "qmldir" + "shell.qml" + ]; + }; + }; +}