Update emacs web-mode configuration.
This commit is contained in:
parent
2be7df22bc
commit
c5eb628248
1 changed files with 49 additions and 15 deletions
|
@ -6,11 +6,22 @@ mkIf (elem "emacs::web-mode" config.machine.pkgs) {
|
|||
programs.emacs.init.usePackage = {
|
||||
web-mode = {
|
||||
enable = true;
|
||||
init = "(require 'sgml-mode)";
|
||||
hook = [
|
||||
"(web-mode . (lambda () (sgml-electric-tag-pair-mode)))"
|
||||
''
|
||||
(web-mode . (lambda ()
|
||||
(when (and (buffer-file-name)
|
||||
(equal (file-name-extension (buffer-file-name)) "svelte"))
|
||||
(lsp))))
|
||||
''
|
||||
];
|
||||
# bind = {};
|
||||
mode = [
|
||||
''("\\.html\\'" . web-mode)''
|
||||
''("\\.css\\'" . web-mode)''
|
||||
''("\\.html?\\'" . web-mode)''
|
||||
''("\\.svelte\\'" . web-mode)''
|
||||
''("\\.phtml\\'" . web-mode)''
|
||||
''("\\.tpl\\.php\\'" . web-mode)''
|
||||
''("\\.[agj]sp\\'" . web-mode)''
|
||||
|
@ -20,6 +31,21 @@ mkIf (elem "emacs::web-mode" config.machine.pkgs) {
|
|||
''("\\.djhtml\\'" . web-mode)''
|
||||
];
|
||||
config = ''
|
||||
(setq web-mode-markup-indent-offset 2)
|
||||
(setq web-mode-css-indent-offset 2)
|
||||
(setq web-mode-code-indent-offset 2)
|
||||
(setq web-mode-sql-indent-offset 2)
|
||||
(setq web-mode-script-padding 2)
|
||||
(setq web-mode-style-padding 2)
|
||||
(setq web-mode-part-padding 2)
|
||||
(setq web-mode-block-padding 2)
|
||||
(setq web-mode-enable-comment-annotation 't)
|
||||
|
||||
(setq web-mode-enable-current-element-highlight 't)
|
||||
|
||||
(setq web-mode-enable-sql-detection 't)
|
||||
(setq web-mode-auto-close-style 2)
|
||||
|
||||
(setq web-mode-engines-alist
|
||||
'(("php" . "\\.phtml\\'")
|
||||
("blade" . "\\.blade\\."))
|
||||
|
@ -34,26 +60,34 @@ mkIf (elem "emacs::web-mode" config.machine.pkgs) {
|
|||
};
|
||||
typescript-mode = {
|
||||
enable = true;
|
||||
hook = lib.optional (elem "emacs::lsp" config.machine.pkgs)
|
||||
hook = [ "(typescript-mode . (lambda () (subword-mode)))" ]
|
||||
++ lib.optional (elem "emacs::lsp" config.machine.pkgs)
|
||||
''(typescript-mode . (lambda () (lsp)))'';
|
||||
mode = [
|
||||
''("\\.ts\\'" . typescript-mode)''
|
||||
''("\\.tsx?\\'" . typescript-tsx-mode)''
|
||||
];
|
||||
init = ''
|
||||
(define-derived-mode typescript-tsx-mode typescript-mode "tsx")
|
||||
'';
|
||||
config = ''
|
||||
(setq typescript-indent-level 2)
|
||||
'';
|
||||
};
|
||||
# https://github.com/NixOS/nixpkgs/pull/150239
|
||||
tree-sitter = {
|
||||
enable = true;
|
||||
package = (epkgs: [ epkgs.tree-sitter (epkgs.tree-sitter-langs.withPlugins(p: epkgs.tree-sitter-langs.plugins ++ [ p.tree-sitter-markdown p.tree-sitter-tsx ]))]);
|
||||
hook = [
|
||||
"(typescript-mode . tree-sitter-hl-mode)"
|
||||
"(typescript-tsx-mode . tree-sitter-hl-mode)"
|
||||
];
|
||||
config = ''
|
||||
(tree-sitter-require 'tsx)
|
||||
(add-to-list 'tree-sitter-major-mode-language-alist '(typescript-tsx-mode . tsx))
|
||||
'';
|
||||
|
||||
};
|
||||
# tide = {
|
||||
# enable = true;
|
||||
# after = [ "typescript-mode" "company" "flycheck" ];
|
||||
# hook = [
|
||||
# "(typescript-mode . tide-setup)"
|
||||
# "(typescript-mode . tide-hl-identifier-mode)"
|
||||
# "(before-save . tide-format-before-save)"
|
||||
# ];
|
||||
# config = ''
|
||||
# (flycheck-mode +1)
|
||||
# (setq flycheck-check-syntax-automatically '(save mode-enabled))
|
||||
# (setq company-tooltip-align-annotations t)
|
||||
# '';
|
||||
# };
|
||||
impatient-mode = {
|
||||
enable = true;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue