diff options
author | Thanos Apollo <[email protected]> | 2023-09-27 02:10:25 +0300 |
---|---|---|
committer | Thanos Apollo <[email protected]> | 2023-09-27 02:10:25 +0300 |
commit | 47b73144d1b30514df003560851de3bd06e88b81 (patch) | |
tree | 27b0b2e914c6867d90f6ce456b123606803a8a09 /.config/nyxt/ace.lisp | |
parent | 696a16039e28e5844a164d69f60006b9c11a0067 (diff) |
[New] Add nyxt, slightly modified config from aartaka
Diffstat (limited to '.config/nyxt/ace.lisp')
-rw-r--r-- | .config/nyxt/ace.lisp | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/.config/nyxt/ace.lisp b/.config/nyxt/ace.lisp new file mode 100644 index 0000000..2fe3a62 --- /dev/null +++ b/.config/nyxt/ace.lisp @@ -0,0 +1,154 @@ +(in-package #:nyxt-user) + +;;;; This is a configuration for the Ace editor Nyxt integration +;;;; (https://github.com/atlas-engineer/nx-ace). + +(define-configuration nx-ace:ace-mode + ((nx-ace:extensions + (mapcar + (lambda (name) + (quri:merge-uris (quri:uri name) + (quri:uri "https://cdnjs.cloudflare.com/ajax/libs/ace/1.9.6/"))) + '("keybinding-emacs.min.js" + ;; Themes + "theme-twilight.min.js" + "theme-github.min.js" + ;; Language modes + "mode-c_cpp.min.js" + "mode-asciidoc.min.js" + "mode-clojure.min.js" + "mode-csharp.min.js" + "mode-css.min.js" + "mode-diff.min.js" + "mode-dot.min.js" + "mode-forth.min.js" + "mode-fsharp.min.js" + "mode-gitignore.min.js" + "mode-glsl.min.js" + "mode-golang.min.js" + "mode-haskell.min.js" + "mode-html.min.js" + "mode-ini.min.js" + "mode-java.min.js" + "mode-javascript.min.js" + "mode-json.min.js" + "mode-jsx.min.js" + "mode-julia.min.js" + "mode-kotlin.min.js" + "mode-latex.min.js" + "mode-lisp.min.js" + "mode-lua.min.js" + "mode-makefile.min.js" + "mode-markdown.min.js" + "mode-mediawiki.min.js" + "mode-nix.min.js" + "mode-objectivec.min.js" + "mode-perl.min.js" + "mode-plain_text.min.js" + "mode-python.min.js" + "mode-r.min.js" + "mode-robot.min.js" + "mode-ruby.min.js" + "mode-rust.min.js" + "mode-scala.min.js" + "mode-scheme.min.js" + "mode-sh.min.js" + "mode-snippets.min.js" + "mode-sql.min.js" + "mode-svg.min.js" + "mode-tex.min.js" + "mode-text.min.js" + "mode-tsx.min.js" + "mode-typescript.min.js" + "mode-xml.min.js" + "mode-yaml.min.js" + ;; Snippets + "snippets/c_cpp.min.js" + "snippets/css.min.js" + "snippets/html.min.js" + "snippets/javascript.min.js" + "snippets/json.min.js" + "snippets/latex.min.js" + "snippets/lisp.min.js" + "snippets/makefile.min.js" + "snippets/markdown.min.js" + "snippets/plain_text.min.js" + "snippets/python.min.js" + "snippets/scheme.min.js" + "snippets/snippets.min.js" + "snippets/tex.min.js" + "snippets/text.min.js" + "snippets/yaml.min.js" + ;; Language Workers + "worker-base.min.js" + "worker-css.min.js" + "worker-html.min.js" + "worker-javascript.min.js" + "worker-json.min.js" + "worker-xml.min.js" + "worker-yaml.min.js" + ;; Extensions + "ext-language_tools.min.js" + "ext-emmet.min.js" + "ext-keybinding_menu.min.js" + "ext-modelist.min.js" + "ext-searchbox.min.js" + "ext-settings_menu.min.js" + "ext-themelist.min.js" + "ext-beautify.min.js" + "ext-prompt.min.js" + "ext-split.min.js" + "ext-whitespace.min.js" + "ext-statusbar.min.js"))))) + +(define-configuration nx-ace:ace-mode + ((nx-ace::theme "ace/theme/twilight") + (nx-ace::keybindings "ace/keyboard/emacs"))) + +(define-configuration nx-ace:ace-mode + ((nx-ace:epilogue + (str:concat + (ps:ps + (flet ((req (ext) + (ps:chain ace (require ext))) + (bind (key command) + (ps:chain editor commands (bind-key key command)))) + (req "ace/ext/searchbox") + (req "ace/ext/split") + (req "ace/ext/themelist") + (req "ace/ext/emmet") + (req "ace/ext/language_tools") + (req "ace/worker/javascript") + (ps:chain editor (set-option "fontSize" 18)) + (ps:chain editor (set-option "enableBasicAutocompletion" t)) + (ps:chain editor (set-option "enableSnippets" t)) + (ps:chain editor session + (set-mode (ps:chain (req "ace/ext/modelist") + (get-mode-for-path (ps:@ window location href)) mode))) + (bind "Shift-space" "setMark") + (bind "Ctrl-\\" "toggleFoldWidget") + (bind "Ctrl-c ;" "toggleComment") + (bind "Ctrl-Alt-b" "jumptomatching") + (bind "Ctrl-Alt-f" "jumptomatching") + (bind "Alt-space" "expandToMatching") + (bind "Alt-%" "replace") + (req "ace/ext/split") + (ps:chain (req "ace/ext/settings_menu") (init editor)) + (ps:chain (req "ace/ext/keybinding_menu") (init editor)) + (bind "Ctrl-h m" (lambda (editor) + (ps:chain editor (show-keyboard-shortcuts)))) + (bind "C-i" "indent") + (ps:chain editor commands + (add-command (ps:chain ace (require "ace/ext/beautify") commands 0))))))))) + +(define-configuration nx-ace:ace-mode + ((style (str:concat + %slot-value% + (theme:themed-css (theme *browser*) + `("#kbshortcutmenu" + :background-color ,theme:background + :color ,theme:on-background)))) + (nx-ace::keybindings "ace/keyboard/emacs"))) + +(define-configuration :editor-buffer + ((default-modes `(nx-ace:ace-mode ,@%slot-value%)))) |