;;; module-csharp.el --- -*- no-byte-compile: t; -*- (use-package csharp-mode :mode "\\.cs$" :init (add-hook 'csharp-mode-hook 'flycheck-mode)) (use-package shader-mode :mode "\\.shader$") ; unity shaders (use-package omnisharp :commands (omnisharp-mode) :preface (setq omnisharp-auto-complete-want-documentation nil omnisharp-server-executable-path (concat doom-ext-dir "/OmniSharp.exe")) :when (file-exists-p omnisharp-server-executable-path) :init (add-hook! csharp-mode '(eldoc-mode omnisharp-mode)) :config (def-company-backend! csharp-mode (omnisharp)) (map! :map omnisharp-mode-map "gd" 'omnisharp-go-to-definition (:localleader "tr" (λ! (omnisharp-unit-test "fixture")) "ts" (λ! (omnisharp-unit-test "single")) "ta" (λ! (omnisharp-unit-test "all")))) ;; Map all refactor commands (see emr) (mapc (lambda (x) (let ((command-name (car x)) (title (cadr x))) (emr-declare-command (intern (format "omnisharp-%s" (symbol-name command-name))) :title title :modes 'omnisharp-mode))) '((find-usages "find usages") (find-implementations "find implementations") (fix-code-issue-at-point "fix code issue at point") (fix-usings "fix usings") (rename "rename") (current-type-information "current type information") (current-type-documentation "current type documentation") (navigate-to-current-file-member "navigate to current file member") (navigate-to-solution-member "navigate to solution member") (navigate-to-solution-file-then-file-member "navigate to solution file then member") (navigate-to-solution-file "navigate to solution file") (navigate-to-region "navigate to region") (show-last-auto-complete-result "last auto complete result") (show-overloads-at-point "show overloads at point") (recompile "recompile")))) (provide 'module-csharp) ;;; module-csharp.el ends here