;;; CPPCubes --- The C/C++ cubes for FG42 -*- lexical-binding: t; -*- ;; ;; Copyright (c) 2010-2023 Sameer Rahmani & Contributors ;; ;; Author: Sameer Rahmani ;; URL: https://devheroes.codes/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) (require 'fg42/utils) (defcube fg42/cmake-cube "This cube enables CMake integration with FG42" :title "CMake cube" :flag-default t :flag cmake (fpkg/use cmake-mode) (fpkg/use eldoc-cmake)) (defcube fg42/ninja-cube "This cube enables Ninja integration with FG42. For more info checkout: https://github.com/ninja-build/ninja/blob/master/misc/ninja-mode.el" :title "Ninja cube" :flag-default t :flag ninja (fpkg/use ninja-mode)) (defcube fg42/c++-cube "C++ cube" :title "C++ cube" :no-flag t (fg42/cmake-cube) (fg42/ninja-cube) (add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode)) (add-hook 'c++-mode-hook (lambda () (lsp) (require 'company-capf) (require 'company-box) (add-hook 'before-save-hook (lambda () (when (and lsp-mode (eq major-mode 'c++-mode)) (lsp-format-buffer)))) (setq company-backends '((company-capf company-keywords)))))) (provide 'cubes/cpp) ;;; cpp.el ends here