.emacs.d/elisp/init-cc.el

84 lines
2.7 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: mar. janv. 14 10:20:42 2020 (+0100)
;; By: Mikaël Capelle
;; 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