From 571766e6bafe37f7d8b38911a2740cd658ea85fb Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 31 Aug 2025 14:47:03 +0200 Subject: [PATCH] fix(qt): eglot support Also refactor module out of autoload.el into config.el (now that it's non-trivial). Ref: doomemacs/community#24 --- modules/lang/qt/autoload.el | 14 -------------- modules/lang/qt/config.el | 27 +++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 14 deletions(-) delete mode 100644 modules/lang/qt/autoload.el create mode 100644 modules/lang/qt/config.el diff --git a/modules/lang/qt/autoload.el b/modules/lang/qt/autoload.el deleted file mode 100644 index 805be65b1..000000000 --- a/modules/lang/qt/autoload.el +++ /dev/null @@ -1,14 +0,0 @@ -;;; lang/qt/autoload.el -*- lexical-binding: t; -*- - -;;;###autoload -(add-to-list 'auto-mode-alist '("\\.pr[io]\\'" . qt-pro-mode)) - -;;;###autoload -(when (modulep! +tree-sitter) - (set-tree-sitter! 'qml-mode 'qml-ts-mode - '((qmljs :url "https://github.com/yuja/tree-sitter-qmljs")))) - -;;;###autoload -(when (modulep! +lsp) - (add-hook 'qml-mode-local-vars-hook #'lsp! 'append) - (add-hook 'qml-ts-mode-local-vars-hook #'lsp! 'append)) diff --git a/modules/lang/qt/config.el b/modules/lang/qt/config.el new file mode 100644 index 000000000..afcd94357 --- /dev/null +++ b/modules/lang/qt/config.el @@ -0,0 +1,27 @@ +;;; lang/qt/config.el -*- lexical-binding: t; -*- + +(defun +qt-common-config (mode) + (when (modulep! +lsp) + (set-eglot-client! mode '("qmlls")) + (add-hook (intern (format "%s-local-vars-hook" mode)) #'lsp! 'append))) + + +(use-package! qml-mode + :defer t + :config + (+qt-common-config 'qml-mode)) + + +(use-package! qml-ts-mode + :when (modulep! +tree-sitter) + :when (fboundp 'treesit-available-p) + :defer t + :init + (set-tree-sitter! 'qml-mode 'qml-ts-mode + '((qmljs :url "https://github.com/yuja/tree-sitter-qmljs"))) + :config + (+qt-common-config 'qml-ts-mode)) + + +(use-package! qt-pro-mode + :mode "\\.pr[io]\\'")