move company and lsp support to common section and fix rustic indentation
rustic: change to 4 spaces indentation
This commit is contained in:
parent
fc430f9135
commit
523e18fac3
123
init.el
123
init.el
@ -332,15 +332,42 @@ of the key binding used to execute this command."
|
|||||||
;;; ---------------------
|
;;; ---------------------
|
||||||
|
|
||||||
|
|
||||||
;;; ### Global bindings for programming modes ###
|
;;; ### Common settings for programming modes ###
|
||||||
|
|
||||||
(global-set-key (kbd "C-c d") #'lsp-describe-thing-at-point)
|
;;; For modes using [company](https://company-mode.github.io/) for tab
|
||||||
(global-set-key (kbd "C-c e n") #'flymake-goto-next-error)
|
;;; completion add
|
||||||
(global-set-key (kbd "C-c e p") #'flymake-goto-prev-error)
|
|
||||||
(global-set-key (kbd "C-c e r") #'lsp-find-references)
|
(use-package company
|
||||||
(global-set-key (kbd "C-c e R") #'lsp-rename)
|
:init
|
||||||
(global-set-key (kbd "C-c e i") #'lsp-find-implementation)
|
(setq company-idle-delay nil ; avoid auto completion popup, use TAB
|
||||||
(global-set-key (kbd "C-c e t") #'lsp-find-type-definition)
|
; to show it
|
||||||
|
company-tooltip-align-annotations t)
|
||||||
|
:hook (after-init . global-company-mode)
|
||||||
|
:bind
|
||||||
|
(:map prog-mode-map
|
||||||
|
("C-i" . company-indent-or-complete-common)
|
||||||
|
("C-M-i" . completion-at-point)))
|
||||||
|
|
||||||
|
;;; For modes that also use Language Server Protocol from
|
||||||
|
;;; [lsp-mode](https://github.com/emacs-lsp/lsp-mode) add
|
||||||
|
|
||||||
|
(use-package company-lsp
|
||||||
|
:defer)
|
||||||
|
|
||||||
|
(use-package lsp-mode
|
||||||
|
:commands lsp
|
||||||
|
;; reformat code and add missing (or remove old) imports
|
||||||
|
:hook ((before-save . lsp-format-buffer)
|
||||||
|
(before-save . lsp-organize-imports))
|
||||||
|
:bind (("C-c d" . lsp-describe-thing-at-point)
|
||||||
|
("C-c e n" . flymake-goto-next-error)
|
||||||
|
("C-c e p" . flymake-goto-prev-error)
|
||||||
|
("C-c e r" . lsp-find-references)
|
||||||
|
("C-c e R" . lsp-rename)
|
||||||
|
("C-c e i" . lsp-find-implementation)
|
||||||
|
("C-c e t" . lsp-find-type-definition)))
|
||||||
|
|
||||||
|
;;; [my common settings for programming modes]: #common-settings-for-programming-modes
|
||||||
|
|
||||||
|
|
||||||
;;; ### C and C++ ###
|
;;; ### C and C++ ###
|
||||||
@ -509,6 +536,9 @@ of the key binding used to execute this command."
|
|||||||
|
|
||||||
;;; [go-mode]: https://github.com/dominikh/go-mode.el
|
;;; [go-mode]: https://github.com/dominikh/go-mode.el
|
||||||
|
|
||||||
|
;;; For **tab completion** and **lsp** support also add [my common
|
||||||
|
;;; settings for programming modes].
|
||||||
|
|
||||||
(defun my-go-electric-brace ()
|
(defun my-go-electric-brace ()
|
||||||
"Insert an opening brace may be with the closing one.
|
"Insert an opening brace may be with the closing one.
|
||||||
If there is a space before the brace also adds new line with
|
If there is a space before the brace also adds new line with
|
||||||
@ -532,40 +562,20 @@ inserted between the braces between the braces."
|
|||||||
:candidates (go-packages))
|
:candidates (go-packages))
|
||||||
:buffer "*godoc packages*")))
|
:buffer "*godoc packages*")))
|
||||||
|
|
||||||
(use-package lsp-mode
|
|
||||||
:commands lsp)
|
|
||||||
|
|
||||||
(use-package company-lsp
|
|
||||||
:defer)
|
|
||||||
|
|
||||||
(use-package go-guru
|
(use-package go-guru
|
||||||
:defer)
|
:after go-mode)
|
||||||
|
|
||||||
(use-package company
|
|
||||||
:defer)
|
|
||||||
|
|
||||||
(use-package go-mode
|
(use-package go-mode
|
||||||
:init
|
:init
|
||||||
(setq go-fontify-function-calls nil ; fontifing names of called
|
(setq go-fontify-function-calls nil) ; fontifing names of called
|
||||||
; functions is too much for me
|
; functions is too much for me
|
||||||
company-idle-delay nil) ; avoid auto completion popup, use TAB
|
|
||||||
; to show it
|
|
||||||
:bind
|
:bind
|
||||||
(:map go-mode-map
|
(:map go-mode-map
|
||||||
("C-c d" . lsp-describe-thing-at-point)
|
("C-c e g" . godoc)
|
||||||
("C-c g" . godoc)
|
|
||||||
("C-c P" . my-godoc-package)
|
("C-c P" . my-godoc-package)
|
||||||
("{" . my-go-electric-brace)
|
("{" . my-go-electric-brace))
|
||||||
("C-i" . company-indent-or-complete-common)
|
:hook ((go-mode . lsp)
|
||||||
("C-M-i" . company-indent-or-complete-common)
|
(go-mode . smartparens-mode)))
|
||||||
)
|
|
||||||
:config
|
|
||||||
(require 'go-guru)
|
|
||||||
(add-hook 'go-mode-hook #'lsp)
|
|
||||||
(add-hook 'go-mode-hook #'smartparens-mode)
|
|
||||||
;; reformat code and add missing (or remove old) imports
|
|
||||||
(add-hook 'before-save-hook #'lsp-format-buffer)
|
|
||||||
(add-hook 'before-save-hook #'lsp-organize-imports))
|
|
||||||
|
|
||||||
;; Go/speedbar integration
|
;; Go/speedbar integration
|
||||||
|
|
||||||
@ -671,20 +681,17 @@ inserted between the braces between the braces."
|
|||||||
;;; $ rustup component add rls
|
;;; $ rustup component add rls
|
||||||
;;; ```
|
;;; ```
|
||||||
;;;
|
;;;
|
||||||
;;; and then add
|
;;; For **tab completion** and **lsp** support add [my common settings
|
||||||
|
;;; for programming modes] and then add
|
||||||
|
|
||||||
(use-package lsp-mode
|
(defun my-rustic-mode-hook-fn ()
|
||||||
:if (>= emacs-major-version 26)
|
"needed for lsp-format-buffer to indent with 4 spaces"
|
||||||
:commands lsp)
|
(setq tab-width 4
|
||||||
|
indent-tabs-mode nil))
|
||||||
|
|
||||||
(use-package rustic
|
(use-package rustic
|
||||||
:if (>= emacs-major-version 26)
|
:if (>= emacs-major-version 26)
|
||||||
:init
|
:hook (rustic-mode . my-rustic-mode-hook-fn))
|
||||||
(setq company-tooltip-align-annotations t
|
|
||||||
rustic-format-on-save t)
|
|
||||||
:bind
|
|
||||||
(:map rustic-mode-map
|
|
||||||
("C-i" . company-indent-or-complete-common)))
|
|
||||||
|
|
||||||
;;; But if you have Emacs older than 26 than you should install
|
;;; But if you have Emacs older than 26 than you should install
|
||||||
;;; [racer](https://github.com/racer-rust/racer) and add
|
;;; [racer](https://github.com/racer-rust/racer) and add
|
||||||
@ -700,16 +707,12 @@ inserted between the braces between the braces."
|
|||||||
(use-package rust-mode
|
(use-package rust-mode
|
||||||
:if (< emacs-major-version 26)
|
:if (< emacs-major-version 26)
|
||||||
:init
|
:init
|
||||||
(setq company-tooltip-align-annotations t
|
(setq rust-format-on-save t)
|
||||||
rust-format-on-save t)
|
|
||||||
:config
|
:config
|
||||||
(add-hook 'rust-mode-hook #'company-mode)
|
(add-hook 'rust-mode-hook #'company-mode)
|
||||||
(add-hook 'rust-mode-hook #'cargo-minor-mode)
|
(add-hook 'rust-mode-hook #'cargo-minor-mode)
|
||||||
(add-hook 'rust-mode-hook #'racer-mode)
|
(add-hook 'rust-mode-hook #'racer-mode)
|
||||||
(add-hook 'racer-mode-hook #'eldoc-mode)
|
(add-hook 'racer-mode-hook #'eldoc-mode))
|
||||||
:bind
|
|
||||||
(:map rust-mode-map
|
|
||||||
("C-i" . company-indent-or-complete-common)))
|
|
||||||
|
|
||||||
|
|
||||||
;;; ### Language server with Vala support ###
|
;;; ### Language server with Vala support ###
|
||||||
@ -760,22 +763,14 @@ inserted between the braces between the braces."
|
|||||||
;;; NOTE: `pub` and `dart` must be in PATH for lsp to start in
|
;;; NOTE: `pub` and `dart` must be in PATH for lsp to start in
|
||||||
;;; dart-mode.
|
;;; dart-mode.
|
||||||
|
|
||||||
|
;;; For **tab completion** and **lsp** support also add [my common
|
||||||
|
;;; settings for programming modes].
|
||||||
|
|
||||||
(use-package dart-mode
|
(use-package dart-mode
|
||||||
:init
|
:init
|
||||||
(setq lsp-dart-analysis-sdk-dir "~/local/flutter/bin/cache/dart-sdk/")
|
(setq lsp-dart-analysis-sdk-dir "~/local/flutter/bin/cache/dart-sdk/")
|
||||||
:bind
|
:hook ((dart-mode . smartparens-mode)
|
||||||
(:map dart-mode-map
|
(dart-mode . lsp)))
|
||||||
("C-i" . company-indent-or-complete-common)
|
|
||||||
("C-M-i" . company-indent-or-complete-common))
|
|
||||||
:config
|
|
||||||
(defun my-dart-mode-hook-fn ()
|
|
||||||
(smartparens-mode 1)
|
|
||||||
(flycheck-mode 1)
|
|
||||||
(company-mode 1)
|
|
||||||
(lsp))
|
|
||||||
(add-hook 'dart-mode-hook #'my-dart-mode-hook-fn)
|
|
||||||
(add-hook 'before-save-hook #'lsp-format-buffer)
|
|
||||||
(add-hook 'before-save-hook #'lsp-organize-imports))
|
|
||||||
|
|
||||||
(use-package flutter
|
(use-package flutter
|
||||||
:after dart-mode
|
:after dart-mode
|
||||||
|
Loading…
x
Reference in New Issue
Block a user