spacemacs/contrib/lang/csharp/packages.el
syl20bnr 318bd23dc4 Add pre and post init functions support to configuration-layers
Now in addition to the <layer>/init-<pkg> function there are
- <layer>/pre-init-<pkg> (executed before <layer>/init-<pkg>)
- <layer>/post-init-<pkg> (executed after <layer>/init-<pkg>)

The init function is mandatory, if it is not present then the
package is ignored and not installed.

This mechanism allows soft (implicit) cross layers dependencies
between packages (see company for more info).

It is now possible to remove flycheck from spacemacs layer and
move it to its own syntax-checking layer.
2015-04-03 17:12:56 -04:00

69 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-declaredp 'auto-completion)
(defun csharp/post-init-company ()
(spacemacs|enable-company csharp-mode)))