;;; 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 "This cube adds the `flycheck' support to fg42." (:title "Flycheck cube" :flag flycheck) (fpkg/use flycheck :defer () :init (global-flycheck-mode))) (defcube fg42/yaml-cube "Yaml Support" (:title "Yaml Support" :no-flag t) (fpkg/use yaml-mode)) (defcube fg42/lsp-cube "LSP cube" (:title "LSP cube" :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 :init (progn (setq lsp-ui-doc-enable t lsp-ui-doc-show-with-cursor t)) :config (add-hook 'lsp-mode-hook 'lsp-ui-mode))) (defcube fg42/company-cube "Auto complete using company mode" (:title "Company cube" :flag company) (fpkg/use company :bind (:map company-active-map ("M-n" . company-select-next) ("M-p" . company-select-previous) ("TAB" . company-complete-common-or-cycle) ("M-d" . company-show-doc-buffer)) :config (progn ;; Use Company for completion (bind-key [remap completion-at-point] #'company-complete company-mode-map) (setq company-show-numbers t) (setq company-idle-delay 0) (setq company-tooltip-limit 20) (setq company-echo-delay 0) (setq company-tooltip-align-annotations t) (setq company-dabbrev-downcase nil) (global-company-mode))) ;; 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