This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/contrib/!lang/csharp/packages.el

82 lines
3.4 KiB
EmacsLisp

;;; packages.el --- csharp Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2014 Sylvain Benner
;; Copyright (c) 2014-2015 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(setq csharp-packages
'(
company
omnisharp
))
(defun csharp/init-omnisharp ()
;; Load omnisharp-mode with csharp-mode, this should start the omnisharp server automatically
(add-hook 'csharp-mode-hook 'omnisharp-mode)
(use-package omnisharp
:defer t
:init
(progn
(when (configuration-layer/package-usedp 'company)
;; needed to avoid an error when fetching doc using company
;; Note: if you are using a roslyn based omnisharp server you can
;; set back this variable to t.
(setq omnisharp-auto-complete-want-documentation nil))
(push 'company-omnisharp company-backends-csharp-mode))
:config
(progn
(spacemacs/declare-prefix-for-mode 'csharp-mode "mc" "compile")
(spacemacs/declare-prefix-for-mode 'csharp-mode "mf" "file")
(spacemacs/declare-prefix-for-mode 'csharp-mode "mg" "navigation")
(spacemacs/declare-prefix-for-mode 'csharp-mode "mh" "documentation")
(spacemacs/declare-prefix-for-mode 'csharp-mode "mr" "refactoring")
(spacemacs/declare-prefix-for-mode 'csharp-mode "ms" "server")
(spacemacs/declare-prefix-for-mode 'csharp-mode "mt" "tests")
(evil-leader/set-key-for-mode 'csharp-mode
;; Compile
"mcc" 'omnisharp-build-in-emacs ;; Only one compile command so use top-level
;; Solution/project manipulation
"mfa" 'omnisharp-add-to-solution-current-file
"mfA" 'omnisharp-add-to-solution-dired-selected-files
"mfr" 'omnisharp-remove-from-project-current-file
"mfR" 'omnisharp-remove-from-project-dired-selected-files
"mpl" 'omnisharp-add-reference
;; Navigation
"mgg" 'omnisharp-go-to-definition
"mgG" 'omnisharp-go-to-definition-other-window
"mgu" 'omnisharp-helm-find-usages
"mgs" 'omnisharp-helm-find-symbols
"mgi" 'omnisharp-find-implementations
"mgr" 'omnisharp-navigate-to-region
"mgm" 'omnisharp-navigate-to-solution-member
"mgM" 'omnisharp-navigate-to-solution-member-other-window
"mgf" 'omnisharp-navigate-to-solution-file
"mgF" 'omnisharp-navigate-to-solution-file-then-file-member
;; Help, documentation, info
"mht" 'omnisharp-current-type-information
"mhT" 'omnisharp-current-type-information-to-kill-ring
;; Refactoring
"mrm" 'omnisharp-rename
"mrr" 'omnisharp-run-code-action-refactoring
;; Server manipulation, inspired spacemacs REPL bindings since C# does not provice a REPL
"mss" 'omnisharp-start-omnisharp-server
"msS" 'omnisharp-stop-server
"msr" 'omnisharp-reload-solution
;; Tests
"mta" 'omnisharp-unit-test-all
"mtb" 'omnisharp-unit-test-fixture
"mtt" 'omnisharp-unit-test-single
;; Code manipulation
"mu" 'omnisharp-auto-complete-overrides
"mi" 'omnisharp-fix-usings
"m=" 'omnisharp-code-format))))
(when (configuration-layer/layer-usedp 'auto-completion)
(defun csharp/post-init-company ()
(spacemacs|add-company-hook csharp-mode)))