0c6682cbd1
It is important to define the buffer local backend variables in a config.el otherwise it is not available in the layer configuration if the auto-completion layer is removed. There were also some issues by hiding the explicit configuration of company inside a macro, for instance helm-spacemacs is unable to display the company package configured in a given layer if the auto-completion layer is removed.
70 lines
2.9 KiB
EmacsLisp
70 lines
2.9 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
|
|
|
|
(defvar csharp-packages
|
|
'(
|
|
company
|
|
omnisharp
|
|
))
|
|
|
|
(defvar csharp-excluded-packages '()
|
|
"List of packages to exclude.")
|
|
|
|
(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 (push '(company-omnisharp :with company-yasnippet)
|
|
company-backends-csharp-mode)
|
|
:config (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)))
|