Files
dotfiles/work/.config/emacs/dev-settings.el
2026-04-29 14:21:17 -04:00

63 lines
1.6 KiB
EmacsLisp

;;; dev-settings.el --- Work development environment (C#, TypeScript, JavaScript, CSS, HTML)
;;; C#
;; LSP server: dotnet tool install -g csharp-ls
(use-package csharp-ts-mode
:ensure nil
:mode "\\.cs\\'"
:hook (csharp-ts-mode . eglot-ensure))
;;; TypeScript / TSX
(use-package typescript-ts-mode
:ensure nil
:mode (("\\.ts\\'" . typescript-ts-mode)
("\\.tsx\\'" . tsx-ts-mode))
:hook ((typescript-ts-mode . eglot-ensure)
(tsx-ts-mode . eglot-ensure)))
;;; JavaScript / JSX
;; typescript-language-server handles JS too; install via: npm i -g typescript-language-server typescript
(use-package js-ts-mode
:ensure nil
:mode (("\\.js\\'" . js-ts-mode)
("\\.mjs\\'" . js-ts-mode)
("\\.cjs\\'" . js-ts-mode)
("\\.jsx\\'" . js-ts-mode))
:hook (js-ts-mode . eglot-ensure)
:config
(setq js-indent-level 2))
;;; CSS
;; LSP server: npm i -g vscode-langservers-extracted
(use-package css-ts-mode
:ensure nil
:mode "\\.css\\'"
:hook (css-ts-mode . eglot-ensure)
:config
(setq css-indent-offset 2))
;;; HTML
;; LSP server: npm i -g vscode-langservers-extracted
(use-package html-ts-mode
:ensure nil
:mode (("\\.html\\'" . html-ts-mode)
("\\.htm\\'" . html-ts-mode))
:hook (html-ts-mode . eglot-ensure))
;;; Prettier (formatting for JS/TS/CSS/HTML)
(use-package prettier
:hook ((typescript-ts-mode . prettier-mode)
(tsx-ts-mode . prettier-mode)
(js-ts-mode . prettier-mode)
(css-ts-mode . prettier-mode)
(html-ts-mode . prettier-mode)))
(provide 'dev-settings)
;;; dev-settings.el ends here