;;; 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 . ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;; 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