Skip to content

Commit

Permalink
Update init-golang-local.el
Browse files Browse the repository at this point in the history
  • Loading branch information
alisonjoe committed May 25, 2024
1 parent 42f49f0 commit 5eb4b59
Showing 1 changed file with 60 additions and 3 deletions.
63 changes: 60 additions & 3 deletions lisp/init-golang-local.el
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,24 @@
(require-package 'flycheck-gometalinter)
(require-package 'go-dlv)
(require-package 'gorepl-mode)
(require-package 'exec-path-from-shell)
(require-package 'lsp-mode)
(require-package 'lsp-ivy)
(require-package 'lsp-treemacs)
(require-package 'dap-mode)
(require-package 'helm-lsp)
(require-package 'company)
(require-package 'yasnippet)

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

(global-flycheck-mode)
(with-eval-after-load 'go-mode
(autoload 'flycheck-get-checker-for-buffer "golint")
(autoload 'flycheck-get-checker-for-buffer "govet")
(autoload 'flycheck-get-checker-for-buffer "flycheck"))

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

(defun alison-go-tag-add (n)
"Pelase select type for TRANSFORM."
"Please select type for TRANSFORM."
(interactive "xSelect transform 1->base_domain 2->baseDomain 3->base-domain 4->BaseDomain:")
(setq selectForm (pcase n
(1 "snakecase")
(2 "camelcase")
(3 "lispcase")
(4 "keep")
))
(4 "keep")))
(setq go-tag-args (list "-transform" selectForm)))

(with-eval-after-load 'go-mode
(define-key go-mode-map (kbd "C-c t") #'go-tag-add)
(define-key go-mode-map (kbd "C-c s") #'alison-go-tag-add)
(define-key go-mode-map (kbd "C-c T") #'go-tag-remove))

(defun close-other-gopls-sessions ()
"Close all gopls sessions except for the current buffer."
(interactive)
(dolist (workspace (lsp-workspaces))
(when (string-equal (lsp--workspace-server-id workspace) 'gopls)
(unless (eq workspace (lsp-find-workspace 'gopls (buffer-file-name)))
(lsp-workspace-shutdown workspace)))))

(add-hook 'go-mode-hook
(lambda ()
(close-other-gopls-sessions)
(lsp-deferred)
(yas-minor-mode)))

(setq gc-cons-threshold (* 100 1024 1024)
read-process-output-max (* 1024 1024)
company-idle-delay 0.0
company-minimum-prefix-length 1
lsp-idle-delay 0.1)

(with-eval-after-load 'lsp-mode
(add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration)
(require 'dap-cpptools)
(yas-global-mode))

(lsp-treemacs-sync-mode 1)

(setq lsp-auto-guess-root t)
(setq lsp-enable-text-document-color t)

(defun company-yasnippet/disable-after-dot (fun command &optional arg &rest _ignore)
(if (eq command 'prefix)
(let ((prefix (funcall fun 'prefix)))
(when (and prefix (not (eq (char-before (- (point) (length prefix))) ?.)))
prefix))
(funcall fun command arg)))

(advice-add #'company-yasnippet :around #'company-yasnippet/disable-after-dot)

(provide 'init-golang-local)
(provide 'init-lsp-mode-local)
;;; init-golang-local.el ends here
;;; init-lsp-mode-local.el ends here

0 comments on commit 5eb4b59

Please sign in to comment.