Skip to content

Commit 5eb4b59

Browse files
committed
Update init-golang-local.el
1 parent 42f49f0 commit 5eb4b59

File tree

1 file changed

+60
-3
lines changed

1 file changed

+60
-3
lines changed

lisp/init-golang-local.el

Lines changed: 60 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,24 @@
2020
(require-package 'flycheck-gometalinter)
2121
(require-package 'go-dlv)
2222
(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)
2331

2432
(ac-config-default)
2533
(when (memq window-system '(mac ns x))
2634
(exec-path-from-shell-initialize))
2735

2836
(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"))
2941

3042
(setq flycheck-golangci-lint-config "~/.emacs.d/conf/.golangci.yml")
3143
(setq flycheck-golangci-lint-deadline "10m")
@@ -62,15 +74,60 @@
6274
(setq go-tag-args (list "-transform" "snakecase"))
6375

6476
(defun alison-go-tag-add (n)
65-
"Pelase select type for TRANSFORM."
77+
"Please select type for TRANSFORM."
6678
(interactive "xSelect transform 1->base_domain 2->baseDomain 3->base-domain 4->BaseDomain:")
6779
(setq selectForm (pcase n
6880
(1 "snakecase")
6981
(2 "camelcase")
7082
(3 "lispcase")
71-
(4 "keep")
72-
))
83+
(4 "keep")))
7384
(setq go-tag-args (list "-transform" selectForm)))
7485

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+
75130
(provide 'init-golang-local)
131+
(provide 'init-lsp-mode-local)
76132
;;; init-golang-local.el ends here
133+
;;; init-lsp-mode-local.el ends here

0 commit comments

Comments
 (0)