Improve ctags and company configuration
Set ctags command based on major mode Set different company backends based on major mode Completely abandon robe in favour of ctags for Ruby Set up Erlang configuration
This commit is contained in:
parent
4d3683eb4a
commit
d3c2c17ff9
10 changed files with 141 additions and 57 deletions
|
|
@ -23,62 +23,26 @@
|
|||
(global-company-mode 1)
|
||||
(yas-global-mode 1)
|
||||
|
||||
(setq-default company-backends '(company-tern ;; Javascript
|
||||
(company-yasnippet ;; Snippets for all programming languages
|
||||
company-etags) ;; Ctags for any language
|
||||
company-elisp ; Emacs Lisp
|
||||
company-clang company-cmake ;; C
|
||||
company-lsp ;; Language server protocol
|
||||
company-ansible ;; Ansible
|
||||
alchemist-company ;; Elixir
|
||||
company-racer ;; Rust
|
||||
company-web-html ;; HTML
|
||||
(company-dabbrev-code company-dabbrev company-abbrev) ;; abbrev
|
||||
company-capf ;; Backend for default complete-at-point function
|
||||
company-keywords ;; Keywords for all languages
|
||||
company-files ; files & directory
|
||||
))
|
||||
;; Absolute defaults for company mode
|
||||
(setq-default company-backends
|
||||
'((company-files ; files & directory
|
||||
company-keywords ; keywords
|
||||
company-capf
|
||||
)
|
||||
(company-dabbrev company-abbrev)
|
||||
))
|
||||
|
||||
|
||||
(setq-default company-lsp-cache-candidates 1 ;; Cache LSP results
|
||||
company-lsp-async 1 ;; Fetch LSP results asynchronously
|
||||
(setq-default
|
||||
company-lsp-cache-candidates 1 ;; Cache LSP results
|
||||
company-lsp-async 1 ;; Fetch LSP results asynchronously
|
||||
)
|
||||
|
||||
;;; Yasnippet configuration
|
||||
(define-key prog-mode-map (kbd "C-c y") 'company-yasnippet)
|
||||
(define-key prog-mode-map (kbd "<f13>") 'company-yasnippet)
|
||||
(define-key prog-mode-map (kbd "<f13>") 'company-indent-or-complete-common)
|
||||
(define-key prog-mode-map (kbd "TAB") 'company-yasnippet)
|
||||
|
||||
(define-key text-mode-map (kbd "C-c y") 'company-yasnippet)
|
||||
(define-key text-mode-map (kbd "<f13>") 'company-yasnippet)
|
||||
|
||||
;; Sentinel function for capturing ctags
|
||||
(defun ctags-process-callback (process event)
|
||||
"Show status of asynchronous ctags-process after it finishes."
|
||||
(cond
|
||||
((string-equal event "finished\n")
|
||||
(message "Creating tag files...completed")
|
||||
(kill-buffer (get-buffer "*ctags*"))
|
||||
(visit-tags-table (format "%sTAGS" (projectile-project-root))))
|
||||
(t
|
||||
(message "Creating tags file...failed")
|
||||
(pop-to-buffer (get-buffer "*ctags*"))
|
||||
)))
|
||||
|
||||
;; (setq ctags-commands
|
||||
;; '(("emacs-lisp-mode" . "Some string"))
|
||||
;; ("enh-ruby-mode" . "Some other string")
|
||||
;; )
|
||||
|
||||
;; (defun buffer-mode-as-string (&optional-buffer)
|
||||
;; "Get current mode from &OPTIONAL-BUFFER or current buffer."
|
||||
;; (when option)
|
||||
|
||||
;; (message "%s"
|
||||
;; (cdr
|
||||
;; (assoc
|
||||
;; (format "%s" (buffer-local-value 'major-mode
|
||||
;; (current-buffer))) ctags-commands)))
|
||||
|
||||
;; (message (format "%s" (buffer-local-value 'major-mode (current-buffer))))
|
||||
|
||||
;; (message ())
|
||||
(define-key text-mode-map (kbd "<f13>") 'company-indent-or-complete-common)
|
||||
(define-key text-mode-map (kbd "TAB") 'company-indent-or-complete-common)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue