Files
emacs/dev-settings-work.el
2025-11-25 12:08:33 -05:00

97 lines
2.4 KiB
EmacsLisp

;;; dev-settings-work.el --- Work-specific development configuration (Windows)
;;; C# Configuration
(use-package csharp-mode
:defer t
:hook (csharp-mode . eglot-ensure)
:config
;; C# LSP server configuration
;; Install via: dotnet tool install --global csharp-ls
(add-to-list 'eglot-server-programs
'(csharp-mode . ("csharp-ls")))
(add-to-list 'auto-mode-alist '("\\.cs\\'" . csharp-mode)))
;; DAP for .NET debugging
(with-eval-after-load 'dap-mode
(require 'dap-netcore)
(setq dap-netcore-install-dir (expand-file-name "~/.emacs.d/.extension/vscode/ms-dotnettools.csharp")))
;;; Python Configuration
(use-package python-ts-mode
:ensure nil ; Built-in with tree-sitter
:mode "\\.py\\'"
:hook (python-ts-mode . eglot-ensure)
:config
(setq python-shell-interpreter "python3"))
;; Python debugging configuration
(with-eval-after-load 'dap-mode
(require 'dap-python)
(setq dap-python-debugger 'debugpy))
;; Python virtual environment support
(use-package pyvenv
:defer t
:commands (pyvenv-activate pyvenv-workon))
;;; JavaScript/TypeScript Configuration
;; Use built-in js-mode with eglot (no js2-mode needed)
(use-package js-mode
:ensure nil ; Built-in
:mode "\\.js\\'"
:hook (js-mode . eglot-ensure)
:config
(setq js-indent-level 2))
;; TypeScript with tree-sitter
(use-package typescript-ts-mode
:ensure nil ; Built-in with tree-sitter
:mode (("\\.ts\\'" . typescript-ts-mode)
("\\.tsx\\'" . tsx-ts-mode))
:hook ((typescript-ts-mode . eglot-ensure)
(tsx-ts-mode . eglot-ensure))
:config
(setq typescript-ts-mode-indent-offset 2))
;;; Node.js Configuration
;; Node.js REPL
(use-package nodejs-repl
:defer t
:commands nodejs-repl)
;; JSON support
(use-package json-ts-mode
:ensure nil ; Built-in with tree-sitter
:mode "\\.json\\'")
;;; Additional Web Development Tools
;; Web mode for HTML/JSX/template files
(use-package web-mode
:defer t
:mode ("\\.html\\'"
"\\.vue\\'")
:config
(setq web-mode-markup-indent-offset 2
web-mode-css-indent-offset 2
web-mode-code-indent-offset 2))
;; CSS with tree-sitter
(use-package css-ts-mode
:ensure nil ; Built-in with tree-sitter
:mode "\\.css\\'"
:config
(setq css-indent-offset 2))
;; REST client for API testing
(use-package restclient
:defer t
:mode ("\\.http\\'" . restclient-mode))
(provide 'dev-settings-work)
;;; dev-settings-work.el ends here