diff --git a/config.org b/config.org index bbb0844..810d67d 100644 --- a/config.org +++ b/config.org @@ -85,6 +85,7 @@ - [[#language-support][Language support]] - [[#nix][Nix]] - [[#glsl][GLSL]] + - [[#qml][QML]] - [[#rmlui][RmlUi]] - [[#cmake][CMake]] - [[#global-treesitter][Global treesitter]] @@ -1574,6 +1575,21 @@ Emacs has built-in programming language modes for Lisp, Scheme, DSSSL, Ada, ASM, (use-package glsl-mode :ensure t) #+end_src +** QML +#+begin_src emacs-lisp + (use-package qml-ts-mode + :after lsp-mode + :config + (add-to-list 'lsp-language-id-configuration '(qml-ts-mode . "qml-ts")) + (add-to-list 'auto-mode-alist '("\\.qml\\'" . qml-ts-mode)) + (lsp-register-client + (make-lsp-client :new-connection (lsp-stdio-connection '("qmlls")) + :activation-fn (lsp-activate-on "qml-ts") + :server-id 'qmlls)) + (add-hook 'qml-ts-mode-hook (lambda () + (setq-local electric-indent-chars '(?\n ?\( ?\) ?{ ?} ?\[ ?\] ?\; ?,)) + (lsp-deferred)))) +#+end_src ** RmlUi #+begin_src emacs-lisp (add-to-list 'auto-mode-alist '("\\.rml\\'" . html-ts-mode)) diff --git a/flake.lock b/flake.lock index 216fc91..c1daad1 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ ] }, "locked": { - "lastModified": 1754876903, - "narHash": "sha256-LOGFgg9as4+jCteUJQLSX+hApdRBM9bJYhS0DrmLmrA=", + "lastModified": 1755451755, + "narHash": "sha256-FNEjy32IrutBDnIs1NzFpvDNMudzmnJbFTkcoeNwDSM=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "c9f73717ad385de42dc6b64b5a2de6f5a9916a10", + "rev": "5d7b6b2d78415c0bcc19e3e651b0ec997a9acbad", "type": "github" }, "original": { @@ -92,11 +92,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1754767907, - "narHash": "sha256-8OnUzRQZkqtUol9vuUuQC30hzpMreKptNyET2T9lB6g=", + "lastModified": 1755274400, + "narHash": "sha256-rTInmnp/xYrfcMZyFMH3kc8oko5zYfxsowaLv1LVobY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c5f08b62ed75415439d48152c2a784e36909b1bc", + "rev": "ad7196ae55c295f53a7d1ec39e4a06d922f3b899", "type": "github" }, "original": { @@ -106,11 +106,45 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1730531603, + "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "qml-nix": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1730724501, + "narHash": "sha256-zvNdomPM86fUf0iAwJV1RQC8yAqDCKbCDJKIs4iIPy0=", + "ref": "refs/heads/master", + "rev": "8f897ffb4a1575252c536c63db8be72f22b6a494", + "revCount": 1, + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/nix-qml-support" + }, + "original": { + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/nix-qml-support" + } + }, "root": { "inputs": { "emacs-overlay": "emacs-overlay", "nix-org-babel": "nix-org-babel", "nixpkgs": "nixpkgs", + "qml-nix": "qml-nix", "snowfall-lib": "snowfall-lib" } }, diff --git a/flake.nix b/flake.nix index 0ec7853..5f76c3f 100644 --- a/flake.nix +++ b/flake.nix @@ -11,6 +11,7 @@ emacs-overlay.inputs.nixpkgs.follows = "nixpkgs"; emacs-overlay.inputs.nixpkgs-stable.follows = "nixpkgs"; nix-org-babel.url = "github:emacs-twist/org-babel"; + qml-nix.url = "git+https://git.outfoxxed.me/outfoxxed/nix-qml-support"; snowfall-lib = { url = "github:KyleKrein/snowfall-lib"; #"git+file:///home/kylekrein/Git/snowfall-lib"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/packages/nixmacs/default.nix b/packages/nixmacs/default.nix index ecd2155..57f359c 100644 --- a/packages/nixmacs/default.nix +++ b/packages/nixmacs/default.nix @@ -1,5 +1,6 @@ { pkgs, + inputs, withLsps ? false, native ? false, ... @@ -89,6 +90,8 @@ ++ (with epkgs; [ tree-sitter tree-sitter-langs + inputs.qml-nix.packages.${pkgs.system}.tree-sitter-qmljs + inputs.qml-nix.packages.${pkgs.system}.qml-ts-mode treesit-grammars.with-all-grammars el-easydraw ])