forked from FG42/FG42
Refactor the configuration and replace all the cubes with the editor meta cube
This commit is contained in:
parent
8d67672291
commit
6e5ab5d150
2
build.el
2
build.el
|
@ -81,7 +81,7 @@ PARAMS:
|
||||||
((string= commad "compile")
|
((string= commad "compile")
|
||||||
(do-command
|
(do-command
|
||||||
(native-compile-async fg42/CORE_DIR 'recursively)
|
(native-compile-async fg42/CORE_DIR 'recursively)
|
||||||
(native-compile-async "~/.fg42.v3.el")
|
(native-compile-async "~/.fg42.el")
|
||||||
|
|
||||||
(print "Compiling FG42 files ...")
|
(print "Compiling FG42 files ...")
|
||||||
(while (or comp-files-queue
|
(while (or comp-files-queue
|
||||||
|
|
|
@ -1,29 +1,6 @@
|
||||||
;;; FG42 --- The mighty editor for the emacsians -*- lexical-binding: t; -*-
|
;;; FG42 --- The mighty editor for the emacsians -*- lexical-binding: t; -*-
|
||||||
;;
|
;;
|
||||||
;; Copyright (c) 2010-2020 Sameer Rahmani <lxsameer@gnu.org>
|
;; Copyright (c) 2010-2023 Sameer Rahmani <lxsameer@gnu.org>
|
||||||
;;
|
|
||||||
;; Author: Sameer Rahmani <lxsameer@gnu.org>
|
|
||||||
;; 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 <http://www.gnu.org/licenses/>.
|
|
||||||
;;
|
|
||||||
;;; Commentary:
|
|
||||||
;;; Code:
|
|
||||||
;;; FG42 --- The mighty editor for the emacsians -*- lexical-binding: t; -*-
|
|
||||||
;;
|
|
||||||
;; Copyright (c) 2010-2020 Sameer Rahmani <lxsameer@gnu.org>
|
|
||||||
;;
|
;;
|
||||||
;; Author: Sameer Rahmani <lxsameer@gnu.org>
|
;; Author: Sameer Rahmani <lxsameer@gnu.org>
|
||||||
;; URL: https://gitlab.com/FG42/FG42
|
;; URL: https://gitlab.com/FG42/FG42
|
||||||
|
@ -49,49 +26,13 @@
|
||||||
;; (setq debug-on-error t)
|
;; (setq debug-on-error t)
|
||||||
|
|
||||||
(require 'fg42/flags)
|
(require 'fg42/flags)
|
||||||
(require 'cubes/editor)
|
(require 'cubes/fg42)
|
||||||
(require 'cubes/org)
|
|
||||||
(require 'cubes/elisp)
|
|
||||||
(require 'cubes/region-expansion)
|
|
||||||
(require 'cubes/wm)
|
|
||||||
(require 'cubes/modeline)
|
|
||||||
(require 'cubes/autocompletion)
|
|
||||||
(require 'cubes/golang)
|
|
||||||
(require 'cubes/project)
|
|
||||||
(require 'cubes/irc)
|
|
||||||
(require 'cubes/terminal)
|
|
||||||
(require 'cubes/java)
|
|
||||||
(require 'cubes/python)
|
|
||||||
(require 'cubes/cpp)
|
|
||||||
(require 'cubes/snippets)
|
|
||||||
|
|
||||||
(require 'cubes/git)
|
|
||||||
(require 'cubes/bookmark)
|
|
||||||
(require 'cubes/terraform)
|
|
||||||
(require 'cubes/graph)
|
|
||||||
(require 'cubes/clojure)
|
|
||||||
|
|
||||||
|
|
||||||
(defvar global-font-size 12)
|
(defvar global-font-size 12)
|
||||||
|
|
||||||
(custom-set-faces
|
|
||||||
'(mini-modeline-mode-line
|
|
||||||
((((background light))
|
|
||||||
:background "#aa0000" :height 0.1 :box nil)
|
|
||||||
(t
|
|
||||||
:background "#bd93f9" :height 0.1 :box nil))))
|
|
||||||
|
|
||||||
|
|
||||||
(use-flags
|
(use-flags
|
||||||
(fg42/merge-with-default-flags
|
(fg42/merge-with-default-flags
|
||||||
wm
|
wm
|
||||||
python
|
|
||||||
golang
|
|
||||||
rcirc
|
|
||||||
vterm
|
|
||||||
company
|
|
||||||
lsp
|
|
||||||
flycheck
|
|
||||||
fg42/region-expansion-cube))
|
fg42/region-expansion-cube))
|
||||||
|
|
||||||
|
|
||||||
|
@ -106,39 +47,22 @@
|
||||||
:background "#6272a4" :height 0.1 :box nil))))
|
:background "#6272a4" :height 0.1 :box nil))))
|
||||||
(fg42/wm-cube :number-of-workspaces 9)
|
(fg42/wm-cube :number-of-workspaces 9)
|
||||||
|
|
||||||
|
;; Uncomment the following section if need a easy way to control the resolution
|
||||||
;; Change the resolution and monitors to your need
|
;; Change the resolution and monitors to your need
|
||||||
(defvar monitors
|
;; (require 'fg42/x)
|
||||||
'(:hdmi-only
|
;; (setq fg42/monitors
|
||||||
("--output HDMI-1 --primary"
|
;; '(:hdmi-only
|
||||||
"--output eDP-1 --off")
|
;; ("--output HDMI-1 --primary"
|
||||||
:hdmi-main
|
;; "--output eDP-1 --off")
|
||||||
("--output HDMI-1 --primary"
|
;; :hdmi-main
|
||||||
"--output eDP-1 --mode 1920x1080 --left-of HDMI-1")
|
;; ("--output HDMI-1 --primary"
|
||||||
:edp-only
|
;; "--output eDP-1 --mode 1920x1080 --left-of HDMI-1")
|
||||||
("--output eDP-1 --mode 1920x1080"
|
;; :edp-only
|
||||||
"--output HDMI-1 --off")))
|
;; ("--output eDP-1 --mode 1920x1080"
|
||||||
|
;; "--output HDMI-1 --off")))
|
||||||
(require 'seq)
|
;; (comment
|
||||||
(defun monitor-profiles ()
|
;; ;; how to run it via elisp or just `M-x monitor'
|
||||||
(mapcar
|
;; (monitor :hdmi-only))
|
||||||
#'car
|
|
||||||
(seq-partition monitors 2)))
|
|
||||||
|
|
||||||
(defun monitor (mon)
|
|
||||||
(interactive
|
|
||||||
(list (completing-read
|
|
||||||
"Monitor Profole: "
|
|
||||||
(monitor-profiles))))
|
|
||||||
|
|
||||||
(let ((cmd (mapconcat (lambda (x) (format "xrandr %s" x))
|
|
||||||
(plist-get monitors (intern (format "%s" mon)))
|
|
||||||
" && ")))
|
|
||||||
(message "Setting monitor profile: %s" cmd)
|
|
||||||
(async-shell-command cmd "*xrandr*")))
|
|
||||||
|
|
||||||
(comment
|
|
||||||
;; how to run it via elisp
|
|
||||||
(monitor :hdmi-only))
|
|
||||||
|
|
||||||
|
|
||||||
(use-flags
|
(use-flags
|
||||||
|
@ -155,45 +79,12 @@
|
||||||
fg42/region-expansion-cube)))
|
fg42/region-expansion-cube)))
|
||||||
|
|
||||||
|
|
||||||
;; Both are part of the editor cube but we want to override
|
(fg42/editor
|
||||||
;; their behavior
|
:fg42/cursor-cube '(:type 'bar :color "#bd93f9")
|
||||||
|
:fg42/font-cube '(:font-name "Fira code" :font-size global-font-size))
|
||||||
(fg42/org-cube)
|
|
||||||
(fg42/cursor-cube :type 'bar :color "#bd93f9")
|
|
||||||
(fg42/font-cube :font-name "Fira code" :font-size global-font-size)
|
|
||||||
(fg42/editor-cube)
|
|
||||||
|
|
||||||
;;(fg42/imenu-cube)
|
|
||||||
(fg42/elisp-cube)
|
|
||||||
(fg42/region-expansion-cube)
|
|
||||||
(fg42/graphviz-cube)
|
|
||||||
(fg42/company-cube)
|
|
||||||
(fg42/lsp-cube)
|
|
||||||
(fg42/c++-cube)
|
|
||||||
(fg42/python-cube)
|
|
||||||
(fg42/yaml-cube)
|
|
||||||
(fg42/flycheck-cube)
|
|
||||||
|
|
||||||
(fg42/golang-cube)
|
|
||||||
(fg42/clojure-cube)
|
|
||||||
(fg42/projectile-cube)
|
|
||||||
|
|
||||||
(fg42/vterm-cube)
|
|
||||||
(fg42/git-cube)
|
|
||||||
(fg42/alert-cube)
|
|
||||||
(fg42/bookmark-cube)
|
|
||||||
(fg42/terraform-cube)
|
|
||||||
(fg42/java-cube)
|
|
||||||
(fg42/yasnippet-cube)
|
|
||||||
|
|
||||||
;; Themes should be the last cube and anything that wants to manipulate a face
|
|
||||||
;; has to use either `fg42/before-initializing-theme-hook' or
|
|
||||||
;; `fg42/after-initializing-theme-hook' hooks.
|
|
||||||
(fg42/dracula-theme-cube)
|
|
||||||
(set-face-attribute 'region nil :background "#888")
|
|
||||||
|
|
||||||
(when (file-exists-p "~/.fg42.user.el")
|
(when (file-exists-p "~/.fg42.user.el")
|
||||||
(load "~/.fg42.user.el"))
|
(load "~/.fg42.user.el"))
|
||||||
|
|
||||||
(provide 'fg42.user)
|
(provide '.fg42)
|
||||||
;;; fg42.user.el ends here
|
;;; .fg42.el ends here
|
||||||
|
|
|
@ -27,7 +27,8 @@
|
||||||
(defcube fg42/flycheck-cube
|
(defcube fg42/flycheck-cube
|
||||||
"This cube adds the `flycheck' support to fg42."
|
"This cube adds the `flycheck' support to fg42."
|
||||||
(:title "Flycheck cube"
|
(:title "Flycheck cube"
|
||||||
:flag flycheck)
|
:flag flycheck
|
||||||
|
:flag-default t)
|
||||||
(fpkg/use flycheck
|
(fpkg/use flycheck
|
||||||
:defer ()
|
:defer ()
|
||||||
:init
|
:init
|
||||||
|
@ -44,7 +45,8 @@
|
||||||
(defcube fg42/lsp-cube
|
(defcube fg42/lsp-cube
|
||||||
"LSP cube"
|
"LSP cube"
|
||||||
(:title "LSP cube"
|
(:title "LSP cube"
|
||||||
:flag lsp)
|
:flag lsp
|
||||||
|
:flag-default t)
|
||||||
|
|
||||||
(fpkg/use lsp-mode
|
(fpkg/use lsp-mode
|
||||||
:commands lsp
|
:commands lsp
|
||||||
|
@ -65,7 +67,8 @@
|
||||||
(defcube fg42/company-cube
|
(defcube fg42/company-cube
|
||||||
"Auto complete using company mode"
|
"Auto complete using company mode"
|
||||||
(:title "Company cube"
|
(:title "Company cube"
|
||||||
:flag company)
|
:flag company
|
||||||
|
:flag-default t)
|
||||||
|
|
||||||
(fpkg/use company
|
(fpkg/use company
|
||||||
:bind (:map company-active-map
|
:bind (:map company-active-map
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
(require 'fg42/utils)
|
(require 'fg42/utils)
|
||||||
(require 'fg42/modeline)
|
(require 'fg42/modeline)
|
||||||
(require 'cubes/modeline)
|
(require 'cubes/modeline)
|
||||||
|
(require 'fg42/themes)
|
||||||
|
|
||||||
(defflag font-icons
|
(defflag font-icons
|
||||||
"Enable the support for font icones in FG42." t)
|
"Enable the support for font icones in FG42." t)
|
||||||
|
@ -184,7 +185,6 @@ data. The typical example of this would be Lisp or Scheme source code."
|
||||||
(:title "Font Cube"
|
(:title "Font Cube"
|
||||||
:no-flag t
|
:no-flag t
|
||||||
:flag-default t)
|
:flag-default t)
|
||||||
|
|
||||||
(let ((font (or (plist-get fg42/font-cube-params :font-name)
|
(let ((font (or (plist-get fg42/font-cube-params :font-name)
|
||||||
"Fira Mono"))
|
"Fira Mono"))
|
||||||
(size (or (plist-get fg42/font-cube-params :font-size)
|
(size (or (plist-get fg42/font-cube-params :font-size)
|
||||||
|
@ -202,8 +202,6 @@ data. The typical example of this would be Lisp or Scheme source code."
|
||||||
"Replace this with a theme cube"
|
"Replace this with a theme cube"
|
||||||
(:title "Dracula theme"
|
(:title "Dracula theme"
|
||||||
:no-flag t)
|
:no-flag t)
|
||||||
(require 'fg42/themes)
|
|
||||||
|
|
||||||
|
|
||||||
(fpkg/use dracula-theme
|
(fpkg/use dracula-theme
|
||||||
:init
|
:init
|
||||||
|
@ -216,7 +214,8 @@ data. The typical example of this would be Lisp or Scheme source code."
|
||||||
'(all-the-icons-faicon ((t (:background "#bd93f9"))))
|
'(all-the-icons-faicon ((t (:background "#bd93f9"))))
|
||||||
'(font-lock-comment-face ((t (:foreground "#8B9298"))))
|
'(font-lock-comment-face ((t (:foreground "#8B9298"))))
|
||||||
'(font-lock-comment-delimiter-face ((t (:foreground "#5B6268")))))
|
'(font-lock-comment-delimiter-face ((t (:foreground "#5B6268")))))
|
||||||
(enable-theme 'dracula))))
|
(enable-theme 'dracula)
|
||||||
|
(set-face-attribute 'region nil :background "#888"))))
|
||||||
|
|
||||||
(defcube fg42/badwolf-theme-cube
|
(defcube fg42/badwolf-theme-cube
|
||||||
"Badwolf theme cube. An Emacs port of Bad Wolf theme for Vim.
|
"Badwolf theme cube. An Emacs port of Bad Wolf theme for Vim.
|
||||||
|
@ -326,19 +325,7 @@ https://emacsthemes.com/themes/badwolf-theme.html"
|
||||||
#'fg42/default-modeline)))
|
#'fg42/default-modeline)))
|
||||||
;;(fg42/statusbar-cube)
|
;;(fg42/statusbar-cube)
|
||||||
(fg42/modeline-cube)
|
(fg42/modeline-cube)
|
||||||
(fg42/setup-modeline-format mline))
|
(fg42/setup-modeline-format mline)))
|
||||||
|
|
||||||
(fg42/emojify-cube)
|
|
||||||
(fg42/discover-cube)
|
|
||||||
(fg42/folding-cube)
|
|
||||||
(fg42/font-cube)
|
|
||||||
(fg42/pinentry-cube)
|
|
||||||
(fg42/exec-path-cube)
|
|
||||||
(fg42/buffer-navigation-cube)
|
|
||||||
(fg42/window-navigation-cube)
|
|
||||||
(fg42/selectrum-cube)
|
|
||||||
(fg42/cursor-cube)
|
|
||||||
(fg42/hl-cube))
|
|
||||||
|
|
||||||
|
|
||||||
(provide 'cubes/editor)
|
(provide 'cubes/editor)
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
;;; FG42Cube --- The meta cube for FG42 -*- lexical-binding: t; -*-
|
||||||
|
;;
|
||||||
|
;; Copyright (c) 2010-2023 Sameer Rahmani & Contributors
|
||||||
|
;;
|
||||||
|
;; Author: Sameer Rahmani <lxsameer@gnu.org>
|
||||||
|
;; URL: https://ziglab.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 <http://www.gnu.org/licenses/>.
|
||||||
|
;;
|
||||||
|
;;; Commentary:
|
||||||
|
;;; Code:
|
||||||
|
(require 'fg42/cube)
|
||||||
|
(require 'fg42/utils)
|
||||||
|
|
||||||
|
(require 'cubes/editor)
|
||||||
|
(require 'cubes/org)
|
||||||
|
(require 'cubes/elisp)
|
||||||
|
(require 'cubes/region-expansion)
|
||||||
|
(require 'cubes/wm)
|
||||||
|
(require 'cubes/modeline)
|
||||||
|
(require 'cubes/autocompletion)
|
||||||
|
(require 'cubes/golang)
|
||||||
|
(require 'cubes/project)
|
||||||
|
(require 'cubes/irc)
|
||||||
|
(require 'cubes/terminal)
|
||||||
|
(require 'cubes/java)
|
||||||
|
(require 'cubes/python)
|
||||||
|
(require 'cubes/cpp)
|
||||||
|
(require 'cubes/snippets)
|
||||||
|
(require 'cubes/rust)
|
||||||
|
(require 'cubes/mastodon)
|
||||||
|
(require 'cubes/git)
|
||||||
|
(require 'cubes/bookmark)
|
||||||
|
(require 'cubes/terraform)
|
||||||
|
(require 'cubes/graph)
|
||||||
|
(require 'cubes/clojure)
|
||||||
|
(require 'cubes/scheme)
|
||||||
|
(require 'cubes/meson)
|
||||||
|
(require 'cubes/godot3d)
|
||||||
|
(require 'cubes/meissa)
|
||||||
|
(require 'cubes/proof)
|
||||||
|
(require 'cubes/agda)
|
||||||
|
(require 'cubes/notifications)
|
||||||
|
|
||||||
|
|
||||||
|
(defcube fg42/editor
|
||||||
|
"A meta cube that contains all the cubes in the system. Calling
|
||||||
|
This cube is enough to load everything and control what cube to execute
|
||||||
|
via flags."
|
||||||
|
(:title "Editor cube"
|
||||||
|
:flag-default t
|
||||||
|
:flag fg42-editor-cube)
|
||||||
|
|
||||||
|
(mapc
|
||||||
|
(lambda (cube)
|
||||||
|
(let ((params (plist-get fg42/editor-params
|
||||||
|
(intern (concat ":" (symbol-name cube))))))
|
||||||
|
(eval `(funcall #',cube ,@params))))
|
||||||
|
fg42/available-cubes))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'cubes/fg42)
|
||||||
|
;;; fg42.el ends here
|
|
@ -29,7 +29,8 @@
|
||||||
|
|
||||||
(defcube fg42/golang-cube
|
(defcube fg42/golang-cube
|
||||||
"Golang support cube for fg42."
|
"Golang support cube for fg42."
|
||||||
(:title "Golang cube" :flag golang)
|
(:title "Golang cube" :flag golang
|
||||||
|
:flag-default t)
|
||||||
|
|
||||||
(fpkg/use go-mode
|
(fpkg/use go-mode
|
||||||
:defer t
|
:defer t
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
(require 'fg42/cube)
|
(require 'fg42/cube)
|
||||||
(require 'fg42/utils)
|
(require 'fg42/utils)
|
||||||
|
|
||||||
|
|
||||||
(defcube fg42/groovy-cube
|
(defcube fg42/groovy-cube
|
||||||
"Groovy support for FG42."
|
"Groovy support for FG42."
|
||||||
(:title "Groovy cube"
|
(:title "Groovy cube"
|
||||||
|
|
|
@ -41,7 +41,7 @@ For more info on check out [[https://codeberg.org/martianh/mastodon.el]]"
|
||||||
|
|
||||||
(:title "Mastodone Cube"
|
(:title "Mastodone Cube"
|
||||||
:flag mastodon
|
:flag mastodon
|
||||||
:flag-default t)
|
:flag-default nil)
|
||||||
|
|
||||||
(let ((url (or (plist-get fg42/mastodon-cube-params :instance-url)
|
(let ((url (or (plist-get fg42/mastodon-cube-params :instance-url)
|
||||||
(error "Instance url is empty set the `:instance-url' key")))
|
(error "Instance url is empty set the `:instance-url' key")))
|
||||||
|
|
|
@ -79,7 +79,15 @@
|
||||||
(setq fg42/modeline-setter #'fg42/mini-modeline-setter))
|
(setq fg42/modeline-setter #'fg42/mini-modeline-setter))
|
||||||
:defer nil
|
:defer nil
|
||||||
:config
|
:config
|
||||||
(add-hook 'fg42-after-init-hook #'mini-modeline-mode)))
|
(add-hook 'fg42-after-init-hook #'mini-modeline-mode)
|
||||||
|
(add-hook 'fg42/after-initializing-theme-hook
|
||||||
|
(lambda ()
|
||||||
|
(custom-set-faces
|
||||||
|
'(mini-modeline-mode-line
|
||||||
|
((((background light))
|
||||||
|
:background "#aa0000" :height 0.1 :box nil)
|
||||||
|
(t
|
||||||
|
:background "#bd93f9" :height 0.1 :box nil))))))))
|
||||||
|
|
||||||
|
|
||||||
(defcube fg42/statusbar-cube
|
(defcube fg42/statusbar-cube
|
||||||
|
@ -89,7 +97,7 @@ valuable information."
|
||||||
(:title "Status bar cube"
|
(:title "Status bar cube"
|
||||||
:flag status-bar
|
:flag status-bar
|
||||||
:group modeline
|
:group modeline
|
||||||
:flag-default t)
|
:flag-default nil)
|
||||||
|
|
||||||
|
|
||||||
(fg42/all-the-icons-cube)
|
(fg42/all-the-icons-cube)
|
||||||
|
|
|
@ -69,7 +69,8 @@ interactive `pyvenv-workon' function before `lsp'"
|
||||||
(defcube fg42/python-cube-pyls
|
(defcube fg42/python-cube-pyls
|
||||||
"Python language server using pyls"
|
"Python language server using pyls"
|
||||||
(:title "Python lang server via pyls"
|
(:title "Python lang server via pyls"
|
||||||
:flag python-pyls)
|
:flag python-pyls
|
||||||
|
:flag-default nil)
|
||||||
|
|
||||||
(when-flag lsp
|
(when-flag lsp
|
||||||
(with-eval-after-load "lsp"
|
(with-eval-after-load "lsp"
|
||||||
|
@ -85,7 +86,8 @@ interactive `pyvenv-workon' function before `lsp'"
|
||||||
(defcube fg42/python-cube-pyright
|
(defcube fg42/python-cube-pyright
|
||||||
"Python language server using pyright."
|
"Python language server using pyright."
|
||||||
(:title "Python lang server via pyright"
|
(:title "Python lang server via pyright"
|
||||||
:flag python-pyright)
|
:flag python-pyright
|
||||||
|
:flag-default t)
|
||||||
|
|
||||||
(fpkg/use lsp-pyright
|
(fpkg/use lsp-pyright
|
||||||
:ensure t
|
:ensure t
|
||||||
|
@ -112,7 +114,8 @@ interactive `pyvenv-workon' function before `lsp'"
|
||||||
(defcube fg42/python-cube
|
(defcube fg42/python-cube
|
||||||
"Python support cube."
|
"Python support cube."
|
||||||
(:title "Python cube"
|
(:title "Python cube"
|
||||||
:flag python)
|
:flag python
|
||||||
|
:flag-default t)
|
||||||
|
|
||||||
(fpkg/use pyvenv
|
(fpkg/use pyvenv
|
||||||
:defer t
|
:defer t
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
(defvar fg42/after-cubes-setup-hook nil
|
(defvar fg42/after-cubes-setup-hook nil
|
||||||
"A hook that will be run after all the active cubes got setup.
|
"A hook that will be run after all the active cubes got setup.
|
||||||
This hook is dedicated for the codes that needs to do stuff based on other cubes
|
This hook is dedicated for the codes that need to do stuff based on other cubes
|
||||||
presence. With this hook we eliminate the need for cube ordering.
|
presence. With this hook we eliminate the need for cube ordering.
|
||||||
|
|
||||||
It will be called in the `fg42-config' and the proper way to use
|
It will be called in the `fg42-config' and the proper way to use
|
||||||
|
@ -88,7 +88,7 @@ it is to use `fg42/after-cubes' macro.")
|
||||||
;; * Hooks
|
;; * Hooks
|
||||||
|
|
||||||
;; This hook can be used by others to run code just before running that
|
;; This hook can be used by others to run code just before running that
|
||||||
;; code body
|
;; cube's body
|
||||||
(defvar ,pre-init-hook nil
|
(defvar ,pre-init-hook nil
|
||||||
,(format "The hook that runs befor the '%s' cube initialization." cube-name))
|
,(format "The hook that runs befor the '%s' cube initialization." cube-name))
|
||||||
|
|
||||||
|
@ -98,7 +98,6 @@ it is to use `fg42/after-cubes' macro.")
|
||||||
(defvar ,post-init-hook nil
|
(defvar ,post-init-hook nil
|
||||||
,(format "The hook that runs after the '%s' cube initialization." cube-name))
|
,(format "The hook that runs after the '%s' cube initialization." cube-name))
|
||||||
|
|
||||||
|
|
||||||
;; TODO: Move language server related hooks to lang-server
|
;; TODO: Move language server related hooks to lang-server
|
||||||
;; TODO: Provide a way to let different parts of the
|
;; TODO: Provide a way to let different parts of the
|
||||||
;; codebase to create cube hooks
|
;; codebase to create cube hooks
|
||||||
|
|
|
@ -37,9 +37,9 @@
|
||||||
(defmacro fg42/setup-theme (&rest body)
|
(defmacro fg42/setup-theme (&rest body)
|
||||||
"Run the BODY inside the FG42 theme setup context."
|
"Run the BODY inside the FG42 theme setup context."
|
||||||
`(progn
|
`(progn
|
||||||
|
;; TODO: This is a bad practice. Find a better solution
|
||||||
(run-hooks 'fg42/before-initializing-theme-hook)
|
(run-hooks 'fg42/before-initializing-theme-hook)
|
||||||
,@body
|
,@body))
|
||||||
(run-hooks 'fg42/after-initializing-theme-hook)))
|
|
||||||
|
|
||||||
|
|
||||||
(provide 'fg42/themes)
|
(provide 'fg42/themes)
|
||||||
|
|
|
@ -60,5 +60,6 @@
|
||||||
(load bootstrap-file nil 'nomessage)
|
(load bootstrap-file nil 'nomessage)
|
||||||
(fpkg/install-and-load-use-package)))
|
(fpkg/install-and-load-use-package)))
|
||||||
|
|
||||||
|
|
||||||
(provide 'fpkg/core)
|
(provide 'fpkg/core)
|
||||||
;;; core.el ends here
|
;;; core.el ends here
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
(getenv "HOME")))
|
(getenv "HOME")))
|
||||||
|
|
||||||
|
|
||||||
;; Load the custom ization file. In FG42 it is different than
|
;; Load the customization file. In FG42 it is different than
|
||||||
;; the default `user-init-file'
|
;; the default `user-init-file'
|
||||||
(if (file-exists-p custom-file)
|
(if (file-exists-p custom-file)
|
||||||
(load custom-file))
|
(load custom-file))
|
||||||
|
@ -50,6 +50,7 @@
|
||||||
|
|
||||||
(run-hooks 'fg42/after-cubes-setup-hook)
|
(run-hooks 'fg42/after-cubes-setup-hook)
|
||||||
(run-hooks 'fg42-after-init-hook)
|
(run-hooks 'fg42-after-init-hook)
|
||||||
|
(run-hooks 'fg42/after-initializing-theme-hook)
|
||||||
|
|
||||||
(provide 'fg42-config)
|
(provide 'fg42-config)
|
||||||
;;; fg42-config.el ends here
|
;;; fg42-config.el ends here
|
||||||
|
|
Loading…
Reference in New Issue