83 lines
2.6 KiB
EmacsLisp
83 lines
2.6 KiB
EmacsLisp
;;; init-cc.el --- -*- lexical-binding: t -*-
|
|
;;
|
|
;; Filename: init-cc.el
|
|
;; Description: Initialize C family languages
|
|
;; Author: Mingde (Matthew) Zeng
|
|
;; Copyright (C) 2019 Mingde (Matthew) Zeng
|
|
;; Created: Fri Mar 15 10:58:29 2019 (-0400)
|
|
;; Version: 2.0.0
|
|
;; Last-Updated: Thu Dec 26 02:07:34 2019 (-0500)
|
|
;; By: Mingde (Matthew) Zeng
|
|
;; URL: https://github.com/MatthewZMD/.emacs.d
|
|
;; Keywords: M-EMACS .emacs.d c c++ go ccls
|
|
;; Compatibility: emacs-version >= 26.1
|
|
;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;;; Commentary:
|
|
;;
|
|
;; This initialize ccls modern-cpp-font-lock go-mode
|
|
;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;; This program is free software: you can redistribute it and/or modify
|
|
;; it under the terms of the GNU General Public License as published by
|
|
;; the Free Software Foundation, either version 3 of the License, or (at
|
|
;; your option) any later version.
|
|
;;
|
|
;; This program is distributed in the hope that it will be useful, but
|
|
;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
;; General Public License for more details.
|
|
;;
|
|
;; You should have received a copy of the GNU General Public License
|
|
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
|
;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;;; Code:
|
|
|
|
(eval-when-compile
|
|
(require 'init-const))
|
|
|
|
;; CCLSPac
|
|
(use-package ccls
|
|
:defer t
|
|
:if (not *sys/win32*)
|
|
:hook ((c-mode c++-mode objc-mode) .
|
|
(lambda () (require 'ccls) (lsp)))
|
|
:custom
|
|
(ccls-executable (executable-find "ccls")) ; Add ccls to path if you haven't done so
|
|
(ccls-sem-highlight-method 'font-lock)
|
|
(ccls-enable-skipped-ranges nil)
|
|
:config
|
|
(lsp-register-client
|
|
(make-lsp-client
|
|
:new-connection (lsp-tramp-connection (cons ccls-executable ccls-args))
|
|
:major-modes '(c-mode c++-mode cuda-mode objc-mode)
|
|
:server-id 'ccls-remote
|
|
:multi-root nil
|
|
:remote? t
|
|
:notification-handlers
|
|
(lsp-ht ("$ccls/publishSkippedRanges" #'ccls--publish-skipped-ranges)
|
|
("$ccls/publishSemanticHighlight" #'ccls--publish-semantic-highlight))
|
|
:initialization-options (lambda () ccls-initialization-options)
|
|
:library-folders-fn nil)))
|
|
;; -CCLSPac
|
|
|
|
;; CPPFontLockPac
|
|
(use-package modern-cpp-font-lock
|
|
:diminish t
|
|
:init (modern-c++-font-lock-global-mode t))
|
|
;; -CPPFontLockPac
|
|
|
|
;; GoPac
|
|
(use-package go-mode
|
|
:mode "\\.go\\'"
|
|
:hook (before-save . gofmt-before-save))
|
|
;; -GoPac
|
|
|
|
(provide 'init-cc)
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;; init-cc.el ends here
|