;;; AutocompletionCubes --- The completion related cubes for FG42 -*- lexical-binding: t; -*- ;; ;; Copyright (c) 2010-2021 Sameer Rahmani & Contributors ;; ;; Author: Sameer Rahmani ;; URL: https://gitlab.com/FG42/FG42 ;; Version: 3.0.0 ;; ;; 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 this program. If not, see . ;; ;;; Commentary: ;;; Code: (require 'fpkg) (require 'fg42/cube) (defcube fg42/flycheck-cube (:docs "cubes/fg42/flycheck-cube.org" :flag flycheck) (fpkg/use flycheck :defer () :init (global-flycheck-mode))) (defcube fg42/yaml-cube (:docs "cubes/fg42/prog-cubes.org" :no-flag t) (fpkg/use yaml-mode)) (defcube fg42/lsp-cube (:docs "cubes/fg42/lsp-cube.org" :flag lsp) (fpkg/use lsp-mode :commands lsp :init (setq lsp-headerline-breadcrumb-enable nil)) ;; TODO: Create a flag for lsp-ui or move it ;; to a new cube (fpkg/use lsp-ui :config (add-hook 'lsp-mode-hook 'lsp-ui-mode))) (defcube fg42/c++-cube (:docs "cubes/fg42/cpp-cube.org" :no-flag t) (add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode)) (add-hook 'c++-mode-hook (lambda () (lsp) (require 'company-capf) (require 'company-box) (setq company-backends '((company-capf company-keywords)))))) (defcube fg42/company-cube (:docs "cubes/fg42/company-cube.org" :flag company) (fpkg/use company :init (global-company-mode) :config (progn ;; Use Company for completion (bind-key [remap completion-at-point] #'company-complete company-mode-map) (setq company-tooltip-align-annotations t) (setq company-dabbrev-downcase nil))) ;; TODO: Move company box to a new cube (fpkg/use company-box :after company :config (add-hook 'company-mode-hook 'company-box-mode))) (provide 'cubes/autocompletion) ;;; autocompletion.el ends here