|
20 | 20 | (require-package 'flycheck-gometalinter)
|
21 | 21 | (require-package 'go-dlv)
|
22 | 22 | (require-package 'gorepl-mode)
|
| 23 | +(require-package 'exec-path-from-shell) |
| 24 | +(require-package 'lsp-mode) |
| 25 | +(require-package 'lsp-ivy) |
| 26 | +(require-package 'lsp-treemacs) |
| 27 | +(require-package 'dap-mode) |
| 28 | +(require-package 'helm-lsp) |
| 29 | +(require-package 'company) |
| 30 | +(require-package 'yasnippet) |
23 | 31 |
|
24 | 32 | (ac-config-default)
|
25 | 33 | (when (memq window-system '(mac ns x))
|
26 | 34 | (exec-path-from-shell-initialize))
|
27 | 35 |
|
28 | 36 | (global-flycheck-mode)
|
| 37 | +(with-eval-after-load 'go-mode |
| 38 | + (autoload 'flycheck-get-checker-for-buffer "golint") |
| 39 | + (autoload 'flycheck-get-checker-for-buffer "govet") |
| 40 | + (autoload 'flycheck-get-checker-for-buffer "flycheck")) |
29 | 41 |
|
30 | 42 | (setq flycheck-golangci-lint-config "~/.emacs.d/conf/.golangci.yml")
|
31 | 43 | (setq flycheck-golangci-lint-deadline "10m")
|
|
62 | 74 | (setq go-tag-args (list "-transform" "snakecase"))
|
63 | 75 |
|
64 | 76 | (defun alison-go-tag-add (n)
|
65 |
| - "Pelase select type for TRANSFORM." |
| 77 | + "Please select type for TRANSFORM." |
66 | 78 | (interactive "xSelect transform 1->base_domain 2->baseDomain 3->base-domain 4->BaseDomain:")
|
67 | 79 | (setq selectForm (pcase n
|
68 | 80 | (1 "snakecase")
|
69 | 81 | (2 "camelcase")
|
70 | 82 | (3 "lispcase")
|
71 |
| - (4 "keep") |
72 |
| - )) |
| 83 | + (4 "keep"))) |
73 | 84 | (setq go-tag-args (list "-transform" selectForm)))
|
74 | 85 |
|
| 86 | +(with-eval-after-load 'go-mode |
| 87 | + (define-key go-mode-map (kbd "C-c t") #'go-tag-add) |
| 88 | + (define-key go-mode-map (kbd "C-c s") #'alison-go-tag-add) |
| 89 | + (define-key go-mode-map (kbd "C-c T") #'go-tag-remove)) |
| 90 | + |
| 91 | +(defun close-other-gopls-sessions () |
| 92 | + "Close all gopls sessions except for the current buffer." |
| 93 | + (interactive) |
| 94 | + (dolist (workspace (lsp-workspaces)) |
| 95 | + (when (string-equal (lsp--workspace-server-id workspace) 'gopls) |
| 96 | + (unless (eq workspace (lsp-find-workspace 'gopls (buffer-file-name))) |
| 97 | + (lsp-workspace-shutdown workspace))))) |
| 98 | + |
| 99 | +(add-hook 'go-mode-hook |
| 100 | + (lambda () |
| 101 | + (close-other-gopls-sessions) |
| 102 | + (lsp-deferred) |
| 103 | + (yas-minor-mode))) |
| 104 | + |
| 105 | +(setq gc-cons-threshold (* 100 1024 1024) |
| 106 | + read-process-output-max (* 1024 1024) |
| 107 | + company-idle-delay 0.0 |
| 108 | + company-minimum-prefix-length 1 |
| 109 | + lsp-idle-delay 0.1) |
| 110 | + |
| 111 | +(with-eval-after-load 'lsp-mode |
| 112 | + (add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration) |
| 113 | + (require 'dap-cpptools) |
| 114 | + (yas-global-mode)) |
| 115 | + |
| 116 | +(lsp-treemacs-sync-mode 1) |
| 117 | + |
| 118 | +(setq lsp-auto-guess-root t) |
| 119 | +(setq lsp-enable-text-document-color t) |
| 120 | + |
| 121 | +(defun company-yasnippet/disable-after-dot (fun command &optional arg &rest _ignore) |
| 122 | + (if (eq command 'prefix) |
| 123 | + (let ((prefix (funcall fun 'prefix))) |
| 124 | + (when (and prefix (not (eq (char-before (- (point) (length prefix))) ?.))) |
| 125 | + prefix)) |
| 126 | + (funcall fun command arg))) |
| 127 | + |
| 128 | +(advice-add #'company-yasnippet :around #'company-yasnippet/disable-after-dot) |
| 129 | + |
75 | 130 | (provide 'init-golang-local)
|
| 131 | +(provide 'init-lsp-mode-local) |
76 | 132 | ;;; init-golang-local.el ends here
|
| 133 | +;;; init-lsp-mode-local.el ends here |
0 commit comments