Guest User

Untitled

a guest
Jul 2nd, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 5.50 KB | None | 0 0
  1. ;;;; COMPANY MODE
  2. (use-package company
  3.   ;; :bind
  4.   ;; (:map company-active-map
  5.   ;;       ([tab] . smarter-yas-expand-next-field-complete)
  6.   ;;       ;; ("TAB" . smarter-yas-expand-next-field-complete)
  7.   ;;       )
  8.   :config
  9.     (global-company-mode t)
  10.     (setq
  11.       ;; allow to search same keyword everywhere, same or difference major mode, or buffer
  12.       company-dabbrev-code-other-buffers 'all
  13.       ;; allow to complete in comment
  14.       company-dabbrev-code-everywhere t
  15.       company-dabbrev-code-ignore-case t
  16.     )
  17.   (setq company-backends '(
  18.                            company-lsp
  19.                            company-elisp
  20.                            company-css
  21.                            ;; company-restclient
  22.                            ;; company-php
  23.                            company-semantic
  24.                            company-files
  25.                            company-keywords
  26.                            company-css-cache
  27.                            company-capf
  28.                            ;;;; gtags might not use for now or later
  29.                            ;; company-gtags ;; > etags
  30.                            ;; company-yasnippet
  31.                            ;;;; Company-web-html must below yasnippet
  32.                            ;; company-web-html
  33.                            ;; company-ispell
  34.                            ;; esh-autosuggest
  35.  
  36.                            ;; company-dabbrev must stay on the bottom or no completion
  37.                            ;; company-dabbrev is the backend that will complete any word you have
  38.                            company-dabbrev-code
  39.                            company-dabbrev
  40.                            ))
  41.  
  42.  
  43.   (setq company-tooltip-limit 20                      ; bigger popup window
  44.         company-idle-delay 0.4                          ; decrease delay before autocompletion popup shows
  45.         company-minimum-prefix-length 1
  46.         company-tooltip-flip-when-above t
  47.         company-selection-wrap-around t
  48.         company-require-match nil
  49.         company-show-numbers t
  50.         company-auto-complete-chars nil               ; Stop Company when you press . <SPC> ... and only Enter is valid
  51.         company-begin-commands '(self-insert-command) ; start autocompletion only after typing
  52.     )
  53.  
  54.  
  55.   ;; https://emacs.stackexchange.com/questions/15246/how-add-company-dabbrev-to-the-company-completion-popup
  56.   ;; (add-to-list 'company-backends '(company-capf :with company-dabbrev))
  57.   )
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66. ;; Fuzzy Search
  67. (use-package company-flx
  68.   :hook (company-mode . company-flx-mode)
  69.   :defer t
  70.   :config
  71.   (company-flx-mode +1))
  72.  
  73.  
  74. ;; Rank candidates the next time you have to choose
  75. (use-package company-statistics
  76.   :hook (company-mode . company-statistics-mode)
  77.   :config
  78.   (progn
  79.     (setq company-statistics-size 128
  80.           company-statistics-file  (concat user-emacs-directory ".appdata/.company-statistics-cache.el"))))
  81.  
  82.  
  83. ;; (use-package company-box
  84. ;;   :defer t
  85. ;;  :hook (company-mode . company-box-mode))
  86.  
  87.  
  88. ;; Use tab key to cycle through suggestions.
  89. ;; ('tng' means 'tab and go')
  90. ;; NOTE: using this might be hard because you cannot use SPC and when SPC is press, it will insert line instead of complete
  91. (company-tng-configure-default)
  92. (let ((keymap company-active-map))
  93.   (define-key keymap [return] 'company-complete-selection)
  94.   (define-key keymap (kbd "RET") 'company-complete-selection)
  95.   )
  96.  
  97.  
  98.  
  99.  
  100. ;;;;;;;; LSP MODE
  101. (use-package yasnippet :config (yas-global-mode))
  102. (use-package lsp-mode :hook ((lsp-mode . lsp-enable-which-key-integration))
  103.   :config (setq lsp-completion-enable-additional-text-edit nil))
  104. (use-package lsp-ui)
  105.  
  106.  
  107.  
  108. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  109. ;;;;;;;;;;;;;;;;;;;;;;;;;;; LOMBOK ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  110. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  111. ;; (setq lombok-dir (concat user-init-file ".d/.appdata/lombok.jar"))
  112. ;; (defun download-lombok-file()
  113. ;;   (setq url "https://projectlombok.org/downloads/lombok.jar")
  114. ;;   (if (not (file-exists-p  lombok-dir))
  115. ;;       (url-copy-file url lombok-dir)))
  116. ;; (download-lombok-file)
  117.  
  118.  
  119.  
  120.  
  121. (use-package lsp-java
  122.   :config
  123.   (add-hook 'java-mode-hook 'lsp)
  124.     (setq
  125.      lsp-java-server-install-dir "~/.emacs.d/.appdata/.lsp-java-jtd"
  126.      lsp-java-format-comments-enabled nil
  127.      lsp-java-references-code-lens-enabled t
  128.      lsp-java-implementations-code-lens-enabled t
  129.      lsp-java-save-actions-organize-imports t
  130.      lsp-java-max-concurrent-builds 2
  131.  
  132.      ;; add args to emacs when launch the java file
  133.      ;; lsp-java-vmargs (list
  134.      ;;                 (concat "-javaagent:" lombok-dir )
  135.      ;;                 )
  136.      ;;
  137.      ;; ;; "-agentpath:/opt/jrebel/lib/libjrebel64.so" ;; this one is add to launch.json file not here
  138.  
  139.  
  140.      ;; Debug Server
  141.      ;; lsp-java-trace-server t
  142.      ;; lsp-java-progress-report t
  143.      )
  144.   )
  145.  
  146.  
  147. (use-package dap-mode)  
  148.  
  149.  
  150. (use-package dap-mode
  151.   :after
  152.     lsp-mode
  153.   :config
  154.    (dap-auto-configure-mode)
  155.   :bind
  156.   (
  157.    ("<f4>" . java-run)
  158.    ("<f5>" . dap-step-in)
  159.    ("<f6>" . dap-next)
  160.    ("<f7>" . dap-step-out)
  161.    ("<f8>" . dap-continue)
  162.    ("<f9>" . dap-breakpoint-toggle)
  163.    ("C-c l c" . dap-ui-repl)
  164.    ;; (:map company-mode-map ("M-/" . java-help))
  165.    ;; ([remap company-complete] . java-complete-me)
  166.    )
  167.   )
  168.  
  169. (use-package dap-java :ensure nil)
  170.  
  171.  
  172.  
  173. (require 'lsp-java-boot)
  174. ;; to enable the lenses
  175. (add-hook 'lsp-mode-hook #'lsp-lens-mode)
  176. (add-hook 'java-mode-hook #'lsp-java-boot-lens-mode)
Advertisement
Add Comment
Please, Sign In to add comment