From 506cbd4fadc11abcd1a1fbb4891c03a5567fc32d Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 15:55:08 +0800 Subject: [PATCH 01/51] Move everything to .emacs.d --- .emacs.d/.jcs-custom.el | 21 -- .emacs.d/.mc-lists.el | 265 ------------------ .../snippets/actionscript-mode/jcs-header | 13 - .emacs.d/snippets/ada-mode/jcs-header | 14 - .emacs.d/snippets/agda-mode/jcs-header | 14 - .emacs.d/snippets/basic-mode/jcs-header | 13 - .emacs.d/snippets/bat-mode/jcs-header | 13 - .emacs.d/snippets/c++-mode/.yas-parents | 2 - .emacs.d/snippets/c-mode/.yas-parents | 2 - .emacs.d/snippets/cc-mode/jcs-header | 13 - .emacs.d/snippets/clojure-mode/jcs-header | 13 - .emacs.d/snippets/cmake-mode/jcs-header | 13 - .emacs.d/snippets/cobol-mode/jcs-header | 13 - .emacs.d/snippets/csharp-mode/jcs-header | 13 - .emacs.d/snippets/csharp-mode/jcs-unity-awake | 8 - .emacs.d/snippets/csharp-mode/jcs-unity-class | 8 - .emacs.d/snippets/csharp-mode/jcs-unity-ha | 5 - .emacs.d/snippets/csharp-mode/jcs-unity-hiia | 5 - .emacs.d/snippets/csharp-mode/jcs-unity-ns | 7 - .emacs.d/snippets/csharp-mode/jcs-unity-rca | 5 - .emacs.d/snippets/csharp-mode/jcs-unity-rga | 5 - .emacs.d/snippets/csharp-mode/jcs-unity-sfa | 5 - .emacs.d/snippets/csharp-mode/jcs-unity-start | 8 - .emacs.d/snippets/csharp-mode/jcs-unity-tta | 5 - .../snippets/csharp-mode/jcs-unity-update | 8 - .emacs.d/snippets/css-mode/jcs-header | 13 - .emacs.d/snippets/dart-mode/jcs-header | 13 - .emacs.d/snippets/elixir-mode/jcs-header | 13 - .emacs.d/snippets/emacs-lisp-mode/jcs-elpa | 41 --- .emacs.d/snippets/emacs-lisp-mode/jcs-header | 13 - .../snippets/emacs-lisp-mode/jcs-marmalade | 43 --- .emacs.d/snippets/emacs-lisp-mode/jcs-melpa | 42 --- .emacs.d/snippets/erlang-mode/jcs-header | 13 - .emacs.d/snippets/ess-r-mode/jcs-header | 13 - .emacs.d/snippets/fountain-mode/jcs-header | 14 - .emacs.d/snippets/gdscript-mode/jcs-header | 13 - .emacs.d/snippets/glsl-mode/jcs-header | 13 - .emacs.d/snippets/go-mode/jcs-header | 13 - .emacs.d/snippets/groovy-mode/jcs-header | 13 - .emacs.d/snippets/haskell-mode/jcs-header | 13 - .emacs.d/snippets/haxe-mode/jcs-header | 13 - .emacs.d/snippets/html-mode/.yas-parents | 1 - .emacs.d/snippets/html-mode/jcs-angular-js | 5 - .emacs.d/snippets/html-mode/jcs-animate-css | 5 - .emacs.d/snippets/html-mode/jcs-bootstrap-css | 5 - .emacs.d/snippets/html-mode/jcs-bootstrap-js | 7 - .emacs.d/snippets/html-mode/jcs-fabric-js | 5 - .emacs.d/snippets/html-mode/jcs-ion-sound-js | 5 - .emacs.d/snippets/html-mode/jcs-jquery-js | 8 - .emacs.d/snippets/html-mode/jcs-normalize-css | 5 - .emacs.d/snippets/html-mode/jcs-p5-js | 5 - .emacs.d/snippets/html-mode/jcs-phaser-js | 5 - .emacs.d/snippets/html-mode/jcs-react-js | 6 - .emacs.d/snippets/html-mode/jcs-reset-css | 5 - .emacs.d/snippets/html-mode/jcs-shake-css | 5 - .emacs.d/snippets/html-mode/jcs-three-js | 5 - .emacs.d/snippets/html-mode/jcs-tween-js | 5 - .emacs.d/snippets/html-mode/jcs-vue-js | 5 - .emacs.d/snippets/java-mode/jcs-header | 13 - .emacs.d/snippets/jayces-mode/jcs-header | 13 - .emacs.d/snippets/js-mode/jcs-header | 13 - .emacs.d/snippets/js-mode/jcs-ion-sound | 7 - .emacs.d/snippets/js-mode/jcs-jquery | 7 - .emacs.d/snippets/js-mode/jcs-vue | 7 - .emacs.d/snippets/js2-mode/.yas-parents | 1 - .emacs.d/snippets/js3-mode/.yas-parents | 1 - .emacs.d/snippets/lisp-mode/jcs-header | 13 - .emacs.d/snippets/lua-mode/jcs-header | 14 - .emacs.d/snippets/makefile-mode/jcs-header | 13 - .emacs.d/snippets/markdown-mode/.yas-parents | 1 - .emacs.d/snippets/markdown-mode/jcs-header | 11 - .emacs.d/snippets/markdown-mode/jcs-melpa | 17 -- .emacs.d/snippets/nasm-mode/jcs-header | 13 - .emacs.d/snippets/nix-mode/jcs-header | 13 - .emacs.d/snippets/nxml-mode/jcs-header | 13 - .emacs.d/snippets/objc-mode/jcs-header | 13 - .emacs.d/snippets/opascal-mode/jcs-header | 13 - .emacs.d/snippets/org-mode/jcs-header | 13 - .emacs.d/snippets/pascal-mode/jcs-header | 13 - .emacs.d/snippets/perl-mode/.yas-parents | 1 - .emacs.d/snippets/powershell-mode/jcs-header | 13 - .../snippets/prog-mode/jcs-header-d-colon | 13 - .emacs.d/snippets/prog-mode/jcs-header-d-dash | 13 - .../snippets/prog-mode/jcs-header-d-quote | 13 - .../snippets/prog-mode/jcs-header-d-semicolon | 13 - .../snippets/prog-mode/jcs-header-d-slash | 13 - .emacs.d/snippets/prog-mode/jcs-header-global | 13 - .../snippets/prog-mode/jcs-header-semicolon | 13 - .emacs.d/snippets/prog-mode/jcs-header-sharp | 13 - .../snippets/prog-mode/jcs-header-singlequote | 13 - .emacs.d/snippets/prog-mode/jcs-header-tag | 13 - .emacs.d/snippets/python-mode/jcs-cls | 40 --- .emacs.d/snippets/python-mode/jcs-header | 13 - .emacs.d/snippets/rjsx-mode/.yas-parents | 1 - .emacs.d/snippets/ruby-mode/jcs-header | 13 - .emacs.d/snippets/rust-mode/jcs-header | 13 - .emacs.d/snippets/scala-mode/jcs-header | 13 - .emacs.d/snippets/sh-mode/jcs-header | 13 - .emacs.d/snippets/shader-mode/jcs-header | 13 - .emacs.d/snippets/snippet-mode/jcs-header | 9 - .emacs.d/snippets/sql-mode/jcs-header | 19 -- .emacs.d/snippets/swift-mode/jcs-header | 13 - .emacs.d/snippets/text-mode/.yas-parents | 1 - .../snippets/typescript-mode/.yas-parents | 1 - .emacs.d/snippets/vimrc-mode/jcs-header | 13 - .emacs.d/snippets/web-mode/.yas-parents | 1 - .emacs.d/snippets/yaml-mode/jcs-header | 13 - .emacs.jcs/scripts/all.bat | 16 -- .emacs.jcs/scripts/all.sh | 13 - .emacs.jcs/scripts/clean.bat | 14 - .emacs.jcs/scripts/clean.sh | 14 - .emacs.jcs/scripts/compile.bat | 14 - .emacs.jcs/scripts/compile.sh | 14 - .gitignore | 112 ++++++-- {.emacs.jcs/banner => banners}/logo.png | Bin {.emacs.jcs/banner => banners}/sink.txt | 0 {.emacs.jcs/banner => banners}/sink_black.png | Bin {.emacs.jcs/banner => banners}/sink_white.png | Bin {scripts => bin}/copy_config.bat | 0 {scripts => bin}/copy_config.sh | 0 {scripts => bin}/install.bat | 0 {scripts => bin}/install.sh | 0 {scripts => bin}/open_emacs.bat | 0 {scripts => bin}/open_emacs.sh | 0 {.emacs.jcs => core}/func/jcs-buffer-menu.el | 0 {.emacs.jcs => core}/func/jcs-comment.el | 0 {.emacs.jcs => core}/func/jcs-company.el | 0 {.emacs.jcs => core}/func/jcs-dashboard.el | 0 {.emacs.jcs => core}/func/jcs-edit.el | 0 {.emacs.jcs => core}/func/jcs-frame.el | 0 {.emacs.jcs => core}/func/jcs-ivy.el | 0 {.emacs.jcs => core}/func/jcs-lsp.el | 0 {.emacs.jcs => core}/func/jcs-minibuf.el | 0 {.emacs.jcs => core}/func/jcs-mode-line.el | 0 {.emacs.jcs => core}/func/jcs-nav.el | 0 {.emacs.jcs => core}/func/jcs-revbuf.el | 0 {.emacs.jcs => core}/func/jcs-savbuf.el | 0 {.emacs.jcs => core}/func/jcs-shell.el | 0 {.emacs.jcs => core}/func/jcs-undo.el | 0 {.emacs.jcs => core}/func/jcs-util.el | 0 {.emacs.jcs => core}/func/jcs-vs.el | 0 {.emacs.jcs => core}/func/jcs-web.el | 0 {.emacs.jcs => core}/func/jcs-window.el | 0 {.emacs.jcs => core}/jcs-config.el | 0 {.emacs.jcs => core}/jcs-dev.el | 0 {.emacs.jcs => core}/jcs-env.el | 0 {.emacs.jcs => core}/jcs-face.el | 0 {.emacs.jcs => core}/jcs-file.el | 0 {.emacs.jcs => core}/jcs-function.el | 0 {.emacs.jcs => core}/jcs-hook.el | 0 {.emacs.jcs => core}/jcs-key.el | 0 {.emacs.jcs => core}/jcs-log.el | 0 {.emacs.jcs => core}/jcs-mode.el | 0 {.emacs.jcs => core}/jcs-package.el | 0 {.emacs.jcs => core}/jcs-plugin.el | 0 {.emacs.jcs => core}/jcs-project.el | 0 {.emacs.jcs => core}/jcs-template.el | 0 {.emacs.jcs => core}/jcs-theme.el | 0 .../mode/jcs-actionscript-mode.el | 0 {.emacs.jcs => core}/mode/jcs-ada-mode.el | 0 {.emacs.jcs => core}/mode/jcs-agda-mode.el | 0 .../mode/jcs-applescript-mode.el | 0 {.emacs.jcs => core}/mode/jcs-asm-mode.el | 0 {.emacs.jcs => core}/mode/jcs-basic-mode.el | 0 {.emacs.jcs => core}/mode/jcs-batch-mode.el | 0 {.emacs.jcs => core}/mode/jcs-c++-mode.el | 0 {.emacs.jcs => core}/mode/jcs-c-mode.el | 0 {.emacs.jcs => core}/mode/jcs-cc-mode.el | 0 {.emacs.jcs => core}/mode/jcs-clojure-mode.el | 0 {.emacs.jcs => core}/mode/jcs-cmake-mode.el | 0 {.emacs.jcs => core}/mode/jcs-cobol-mode.el | 0 {.emacs.jcs => core}/mode/jcs-csharp-mode.el | 0 {.emacs.jcs => core}/mode/jcs-css-mode.el | 0 {.emacs.jcs => core}/mode/jcs-dart-mode.el | 0 .../mode/jcs-dockerfile-mode.el | 0 {.emacs.jcs => core}/mode/jcs-elixir-mode.el | 0 {.emacs.jcs => core}/mode/jcs-elm-mode.el | 0 {.emacs.jcs => core}/mode/jcs-erlang-mode.el | 0 .../mode/jcs-fountain-mode.el | 0 {.emacs.jcs => core}/mode/jcs-fsharp-mode.el | 0 .../mode/jcs-gdscript-mode.el | 0 {.emacs.jcs => core}/mode/jcs-git-mode.el | 0 {.emacs.jcs => core}/mode/jcs-go-mode.el | 0 {.emacs.jcs => core}/mode/jcs-groovy-mode.el | 0 {.emacs.jcs => core}/mode/jcs-haskell-mode.el | 0 {.emacs.jcs => core}/mode/jcs-haxe-mode.el | 0 {.emacs.jcs => core}/mode/jcs-ini-mode.el | 0 {.emacs.jcs => core}/mode/jcs-java-mode.el | 0 {.emacs.jcs => core}/mode/jcs-jayces-mode.el | 0 .../mode/jcs-jenkinsfile-mode.el | 0 {.emacs.jcs => core}/mode/jcs-js-mode.el | 0 {.emacs.jcs => core}/mode/jcs-json-mode.el | 0 {.emacs.jcs => core}/mode/jcs-jsx-mode.el | 0 {.emacs.jcs => core}/mode/jcs-kotlin-mode.el | 0 .../mode/jcs-less-css-mode.el | 0 {.emacs.jcs => core}/mode/jcs-lua-mode.el | 0 {.emacs.jcs => core}/mode/jcs-make-mode.el | 0 .../mode/jcs-markdown-mode.el | 0 {.emacs.jcs => core}/mode/jcs-message-mode.el | 0 {.emacs.jcs => core}/mode/jcs-nginx-mode.el | 0 {.emacs.jcs => core}/mode/jcs-nix-mode.el | 0 {.emacs.jcs => core}/mode/jcs-objc-mode.el | 0 {.emacs.jcs => core}/mode/jcs-opascal-mode.el | 0 {.emacs.jcs => core}/mode/jcs-org-mode.el | 0 {.emacs.jcs => core}/mode/jcs-pascal-mode.el | 0 {.emacs.jcs => core}/mode/jcs-perl-mode.el | 0 .../mode/jcs-powershell-mode.el | 0 .../mode/jcs-processing-mode.el | 0 .../mode/jcs-properties-mode.el | 0 {.emacs.jcs => core}/mode/jcs-python-mode.el | 0 {.emacs.jcs => core}/mode/jcs-r-mode.el | 0 .../mode/jcs-re-builder-mode.el | 0 {.emacs.jcs => core}/mode/jcs-ruby-mode.el | 0 {.emacs.jcs => core}/mode/jcs-rust-mode.el | 0 {.emacs.jcs => core}/mode/jcs-sass-mode.el | 0 {.emacs.jcs => core}/mode/jcs-scala-mode.el | 0 {.emacs.jcs => core}/mode/jcs-scss-mode.el | 0 {.emacs.jcs => core}/mode/jcs-sh-mode.el | 0 {.emacs.jcs => core}/mode/jcs-shader-mode.el | 0 {.emacs.jcs => core}/mode/jcs-shell-mode.el | 0 {.emacs.jcs => core}/mode/jcs-snippet-mode.el | 0 {.emacs.jcs => core}/mode/jcs-sql-mode.el | 0 {.emacs.jcs => core}/mode/jcs-swift-mode.el | 0 .../mode/jcs-typescript-mode.el | 0 {.emacs.jcs => core}/mode/jcs-verilog-mode.el | 0 .../mode/jcs-vimscript-mode.el | 0 {.emacs.jcs => core}/mode/jcs-vue-mode.el | 0 {.emacs.jcs => core}/mode/jcs-web-mode.el | 0 {.emacs.jcs => core}/mode/jcs-xml-mode.el | 0 {.emacs.jcs => core}/mode/jcs-yaml-mode.el | 0 .../algorithm/Array Sorting Algorithms.png | Bin .../algorithm/Big-O Complexity Chart.png | Bin .../Common Data Structure Operations.png | Bin .../data => data}/algorithm/cheat-sheet.html | 0 .../data => data}/charset/alt-code.txt | 0 {.emacs.jcs/data => data}/charset/ascii.txt | 0 .../data-structure/cheat-sheet.txt | 0 .emacs.d/early-init.el => early-init.el | 0 {.emacs.jcs/fonts => fonts}/UbuntuMono-R.ttf | Bin {.emacs.jcs/fonts => fonts}/clacon.ttf | Bin .../__changelog/keepachangelog.txt | 0 .../__header/d_colon.txt | 0 .../template => template}/__header/d_dash.txt | 0 .../__header/d_quote.txt | 0 .../__header/d_semicolon.txt | 0 .../__header/d_slash.txt | 0 .../template => template}/__header/global.txt | 0 .../__header/semicolon.txt | 0 .../template => template}/__header/sharp.txt | 0 .../__header/singlequote.txt | 0 .../__header/t_slash.txt | 0 .../template => template}/__header/tag.txt | 0 .../actionscript/default.txt | 0 .../template => template}/ada/default.txt | 0 .../template => template}/agda/default.txt | 0 .../applescript/default.txt | 0 .../template => template}/assembly/masm.txt | 0 .../template => template}/assembly/nasm.txt | 0 .../template => template}/basic/default.txt | 0 .../template => template}/batch/default.txt | 0 .../template => template}/c++/header.txt | 0 .../template => template}/c++/source.txt | 0 .../c++/unreal/actor-component/header.txt | 0 .../c++/unreal/actor-component/source.txt | 0 .../c++/unreal/actor/header.txt | 0 .../c++/unreal/actor/source.txt | 0 .../template => template}/c/header.txt | 0 .../template => template}/c/source.txt | 0 .../template => template}/clojure/default.txt | 0 .../template => template}/cmake/default.txt | 0 .../template => template}/cobol/default.txt | 0 .../template => template}/csharp/default.txt | 0 .../template => template}/csharp/unity.txt | 0 .../template => template}/css/default.txt | 0 .../template => template}/dart/default.txt | 0 .../template => template}/elisp/default.txt | 0 .../template => template}/elixir/default.txt | 0 .../template => template}/elm/default.txt | 0 .../template => template}/erlang/default.txt | 0 .../fountain/default.txt | 0 .../template => template}/fsharp/default.txt | 0 .../gdscript/default.txt | 0 .../template => template}/go/default.txt | 0 .../template => template}/groovy/default.txt | 0 .../template => template}/haskell/default.txt | 0 .../template => template}/haxe/default.txt | 0 .../template => template}/java/default.txt | 0 .../template => template}/jayces/default.txt | 0 .../template => template}/jenkins/default.txt | 0 .../template => template}/js/default.txt | 0 .../template => template}/jsx/default.txt | 0 .../template => template}/jsx/react/js.txt | 0 .../jsx/react/native.txt | 0 .../template => template}/kotlin/default.txt | 0 .../template => template}/less/default.txt | 0 .../template => template}/lisp/default.txt | 0 .../template => template}/lua/default.txt | 0 .../template => template}/makefile/cc/app.txt | 0 .../template => template}/makefile/cc/lib.txt | 0 .../makefile/java/app.txt | 0 .../makefile/java/lib.txt | 0 .../makefile/python/app.txt | 0 .../makefile/python/lib.txt | 0 .../markdown/default.txt | 0 .../template => template}/nginx/default.txt | 0 .../template => template}/nix/default.txt | 0 .../template => template}/objc/header.txt | 0 .../template => template}/objc/source.txt | 0 .../template => template}/opascal/default.txt | 0 .../template => template}/pascal/default.txt | 0 .../template => template}/perl/default.txt | 0 .../powershell/default.txt | 0 .../processing/default.txt | 0 .../template => template}/python/class.txt | 0 .../template => template}/python/default.txt | 0 .../template => template}/r/default.txt | 0 .../template => template}/ruby/default.txt | 0 .../template => template}/rust/default.txt | 0 .../template => template}/sass/default.txt | 0 .../template => template}/scala/default.txt | 0 .../template => template}/scss/default.txt | 0 .../template => template}/sh/default.txt | 0 .../shader/default_glsl.txt | 0 .../shader/default_shader.txt | 0 .../template => template}/sql/default.txt | 0 .../template => template}/swift/default.txt | 0 .../template_config.properties | 0 .../template => template}/text/default.txt | 0 .../typescript/cocos_creator.txt | 0 .../typescript/default.txt | 0 .../verilog/verilog_template.txt | 0 .../vimscript/default.txt | 0 .../template => template}/vue/default.txt | 0 .../web/default_html.txt | 0 .../template => template}/web/default_php.txt | 0 .../template => template}/xml/default.txt | 0 .../template => template}/yaml/default.txt | 0 337 files changed, 82 insertions(+), 1544 deletions(-) delete mode 100644 .emacs.d/.jcs-custom.el delete mode 100644 .emacs.d/.mc-lists.el delete mode 100644 .emacs.d/snippets/actionscript-mode/jcs-header delete mode 100644 .emacs.d/snippets/ada-mode/jcs-header delete mode 100644 .emacs.d/snippets/agda-mode/jcs-header delete mode 100644 .emacs.d/snippets/basic-mode/jcs-header delete mode 100644 .emacs.d/snippets/bat-mode/jcs-header delete mode 100644 .emacs.d/snippets/c++-mode/.yas-parents delete mode 100644 .emacs.d/snippets/c-mode/.yas-parents delete mode 100644 .emacs.d/snippets/cc-mode/jcs-header delete mode 100644 .emacs.d/snippets/clojure-mode/jcs-header delete mode 100644 .emacs.d/snippets/cmake-mode/jcs-header delete mode 100644 .emacs.d/snippets/cobol-mode/jcs-header delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-header delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-unity-awake delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-unity-class delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-unity-ha delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-unity-hiia delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-unity-ns delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-unity-rca delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-unity-rga delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-unity-sfa delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-unity-start delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-unity-tta delete mode 100644 .emacs.d/snippets/csharp-mode/jcs-unity-update delete mode 100644 .emacs.d/snippets/css-mode/jcs-header delete mode 100644 .emacs.d/snippets/dart-mode/jcs-header delete mode 100644 .emacs.d/snippets/elixir-mode/jcs-header delete mode 100644 .emacs.d/snippets/emacs-lisp-mode/jcs-elpa delete mode 100644 .emacs.d/snippets/emacs-lisp-mode/jcs-header delete mode 100644 .emacs.d/snippets/emacs-lisp-mode/jcs-marmalade delete mode 100644 .emacs.d/snippets/emacs-lisp-mode/jcs-melpa delete mode 100644 .emacs.d/snippets/erlang-mode/jcs-header delete mode 100644 .emacs.d/snippets/ess-r-mode/jcs-header delete mode 100644 .emacs.d/snippets/fountain-mode/jcs-header delete mode 100644 .emacs.d/snippets/gdscript-mode/jcs-header delete mode 100644 .emacs.d/snippets/glsl-mode/jcs-header delete mode 100644 .emacs.d/snippets/go-mode/jcs-header delete mode 100644 .emacs.d/snippets/groovy-mode/jcs-header delete mode 100644 .emacs.d/snippets/haskell-mode/jcs-header delete mode 100644 .emacs.d/snippets/haxe-mode/jcs-header delete mode 100644 .emacs.d/snippets/html-mode/.yas-parents delete mode 100644 .emacs.d/snippets/html-mode/jcs-angular-js delete mode 100644 .emacs.d/snippets/html-mode/jcs-animate-css delete mode 100644 .emacs.d/snippets/html-mode/jcs-bootstrap-css delete mode 100644 .emacs.d/snippets/html-mode/jcs-bootstrap-js delete mode 100644 .emacs.d/snippets/html-mode/jcs-fabric-js delete mode 100644 .emacs.d/snippets/html-mode/jcs-ion-sound-js delete mode 100644 .emacs.d/snippets/html-mode/jcs-jquery-js delete mode 100644 .emacs.d/snippets/html-mode/jcs-normalize-css delete mode 100644 .emacs.d/snippets/html-mode/jcs-p5-js delete mode 100644 .emacs.d/snippets/html-mode/jcs-phaser-js delete mode 100644 .emacs.d/snippets/html-mode/jcs-react-js delete mode 100644 .emacs.d/snippets/html-mode/jcs-reset-css delete mode 100644 .emacs.d/snippets/html-mode/jcs-shake-css delete mode 100644 .emacs.d/snippets/html-mode/jcs-three-js delete mode 100644 .emacs.d/snippets/html-mode/jcs-tween-js delete mode 100644 .emacs.d/snippets/html-mode/jcs-vue-js delete mode 100644 .emacs.d/snippets/java-mode/jcs-header delete mode 100644 .emacs.d/snippets/jayces-mode/jcs-header delete mode 100644 .emacs.d/snippets/js-mode/jcs-header delete mode 100644 .emacs.d/snippets/js-mode/jcs-ion-sound delete mode 100644 .emacs.d/snippets/js-mode/jcs-jquery delete mode 100644 .emacs.d/snippets/js-mode/jcs-vue delete mode 100644 .emacs.d/snippets/js2-mode/.yas-parents delete mode 100644 .emacs.d/snippets/js3-mode/.yas-parents delete mode 100644 .emacs.d/snippets/lisp-mode/jcs-header delete mode 100644 .emacs.d/snippets/lua-mode/jcs-header delete mode 100644 .emacs.d/snippets/makefile-mode/jcs-header delete mode 100644 .emacs.d/snippets/markdown-mode/.yas-parents delete mode 100644 .emacs.d/snippets/markdown-mode/jcs-header delete mode 100644 .emacs.d/snippets/markdown-mode/jcs-melpa delete mode 100644 .emacs.d/snippets/nasm-mode/jcs-header delete mode 100644 .emacs.d/snippets/nix-mode/jcs-header delete mode 100644 .emacs.d/snippets/nxml-mode/jcs-header delete mode 100644 .emacs.d/snippets/objc-mode/jcs-header delete mode 100644 .emacs.d/snippets/opascal-mode/jcs-header delete mode 100644 .emacs.d/snippets/org-mode/jcs-header delete mode 100644 .emacs.d/snippets/pascal-mode/jcs-header delete mode 100644 .emacs.d/snippets/perl-mode/.yas-parents delete mode 100644 .emacs.d/snippets/powershell-mode/jcs-header delete mode 100644 .emacs.d/snippets/prog-mode/jcs-header-d-colon delete mode 100644 .emacs.d/snippets/prog-mode/jcs-header-d-dash delete mode 100644 .emacs.d/snippets/prog-mode/jcs-header-d-quote delete mode 100644 .emacs.d/snippets/prog-mode/jcs-header-d-semicolon delete mode 100644 .emacs.d/snippets/prog-mode/jcs-header-d-slash delete mode 100644 .emacs.d/snippets/prog-mode/jcs-header-global delete mode 100644 .emacs.d/snippets/prog-mode/jcs-header-semicolon delete mode 100644 .emacs.d/snippets/prog-mode/jcs-header-sharp delete mode 100644 .emacs.d/snippets/prog-mode/jcs-header-singlequote delete mode 100644 .emacs.d/snippets/prog-mode/jcs-header-tag delete mode 100644 .emacs.d/snippets/python-mode/jcs-cls delete mode 100644 .emacs.d/snippets/python-mode/jcs-header delete mode 100644 .emacs.d/snippets/rjsx-mode/.yas-parents delete mode 100644 .emacs.d/snippets/ruby-mode/jcs-header delete mode 100644 .emacs.d/snippets/rust-mode/jcs-header delete mode 100644 .emacs.d/snippets/scala-mode/jcs-header delete mode 100644 .emacs.d/snippets/sh-mode/jcs-header delete mode 100644 .emacs.d/snippets/shader-mode/jcs-header delete mode 100644 .emacs.d/snippets/snippet-mode/jcs-header delete mode 100644 .emacs.d/snippets/sql-mode/jcs-header delete mode 100644 .emacs.d/snippets/swift-mode/jcs-header delete mode 100644 .emacs.d/snippets/text-mode/.yas-parents delete mode 100644 .emacs.d/snippets/typescript-mode/.yas-parents delete mode 100644 .emacs.d/snippets/vimrc-mode/jcs-header delete mode 100644 .emacs.d/snippets/web-mode/.yas-parents delete mode 100644 .emacs.d/snippets/yaml-mode/jcs-header delete mode 100644 .emacs.jcs/scripts/all.bat delete mode 100644 .emacs.jcs/scripts/all.sh delete mode 100644 .emacs.jcs/scripts/clean.bat delete mode 100644 .emacs.jcs/scripts/clean.sh delete mode 100644 .emacs.jcs/scripts/compile.bat delete mode 100644 .emacs.jcs/scripts/compile.sh rename {.emacs.jcs/banner => banners}/logo.png (100%) rename {.emacs.jcs/banner => banners}/sink.txt (100%) rename {.emacs.jcs/banner => banners}/sink_black.png (100%) rename {.emacs.jcs/banner => banners}/sink_white.png (100%) rename {scripts => bin}/copy_config.bat (100%) rename {scripts => bin}/copy_config.sh (100%) rename {scripts => bin}/install.bat (100%) rename {scripts => bin}/install.sh (100%) rename {scripts => bin}/open_emacs.bat (100%) rename {scripts => bin}/open_emacs.sh (100%) rename {.emacs.jcs => core}/func/jcs-buffer-menu.el (100%) rename {.emacs.jcs => core}/func/jcs-comment.el (100%) rename {.emacs.jcs => core}/func/jcs-company.el (100%) rename {.emacs.jcs => core}/func/jcs-dashboard.el (100%) rename {.emacs.jcs => core}/func/jcs-edit.el (100%) rename {.emacs.jcs => core}/func/jcs-frame.el (100%) rename {.emacs.jcs => core}/func/jcs-ivy.el (100%) rename {.emacs.jcs => core}/func/jcs-lsp.el (100%) rename {.emacs.jcs => core}/func/jcs-minibuf.el (100%) rename {.emacs.jcs => core}/func/jcs-mode-line.el (100%) rename {.emacs.jcs => core}/func/jcs-nav.el (100%) rename {.emacs.jcs => core}/func/jcs-revbuf.el (100%) rename {.emacs.jcs => core}/func/jcs-savbuf.el (100%) rename {.emacs.jcs => core}/func/jcs-shell.el (100%) rename {.emacs.jcs => core}/func/jcs-undo.el (100%) rename {.emacs.jcs => core}/func/jcs-util.el (100%) rename {.emacs.jcs => core}/func/jcs-vs.el (100%) rename {.emacs.jcs => core}/func/jcs-web.el (100%) rename {.emacs.jcs => core}/func/jcs-window.el (100%) rename {.emacs.jcs => core}/jcs-config.el (100%) rename {.emacs.jcs => core}/jcs-dev.el (100%) rename {.emacs.jcs => core}/jcs-env.el (100%) rename {.emacs.jcs => core}/jcs-face.el (100%) rename {.emacs.jcs => core}/jcs-file.el (100%) rename {.emacs.jcs => core}/jcs-function.el (100%) rename {.emacs.jcs => core}/jcs-hook.el (100%) rename {.emacs.jcs => core}/jcs-key.el (100%) rename {.emacs.jcs => core}/jcs-log.el (100%) rename {.emacs.jcs => core}/jcs-mode.el (100%) rename {.emacs.jcs => core}/jcs-package.el (100%) rename {.emacs.jcs => core}/jcs-plugin.el (100%) rename {.emacs.jcs => core}/jcs-project.el (100%) rename {.emacs.jcs => core}/jcs-template.el (100%) rename {.emacs.jcs => core}/jcs-theme.el (100%) rename {.emacs.jcs => core}/mode/jcs-actionscript-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-ada-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-agda-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-applescript-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-asm-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-basic-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-batch-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-c++-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-c-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-cc-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-clojure-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-cmake-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-cobol-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-csharp-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-css-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-dart-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-dockerfile-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-elixir-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-elm-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-erlang-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-fountain-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-fsharp-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-gdscript-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-git-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-go-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-groovy-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-haskell-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-haxe-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-ini-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-java-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-jayces-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-jenkinsfile-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-js-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-json-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-jsx-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-kotlin-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-less-css-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-lua-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-make-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-markdown-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-message-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-nginx-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-nix-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-objc-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-opascal-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-org-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-pascal-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-perl-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-powershell-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-processing-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-properties-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-python-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-r-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-re-builder-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-ruby-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-rust-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-sass-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-scala-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-scss-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-sh-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-shader-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-shell-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-snippet-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-sql-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-swift-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-typescript-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-verilog-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-vimscript-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-vue-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-web-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-xml-mode.el (100%) rename {.emacs.jcs => core}/mode/jcs-yaml-mode.el (100%) rename {.emacs.jcs/data => data}/algorithm/Array Sorting Algorithms.png (100%) rename {.emacs.jcs/data => data}/algorithm/Big-O Complexity Chart.png (100%) rename {.emacs.jcs/data => data}/algorithm/Common Data Structure Operations.png (100%) rename {.emacs.jcs/data => data}/algorithm/cheat-sheet.html (100%) rename {.emacs.jcs/data => data}/charset/alt-code.txt (100%) rename {.emacs.jcs/data => data}/charset/ascii.txt (100%) rename {.emacs.jcs/data => data}/data-structure/cheat-sheet.txt (100%) rename .emacs.d/early-init.el => early-init.el (100%) rename {.emacs.jcs/fonts => fonts}/UbuntuMono-R.ttf (100%) rename {.emacs.jcs/fonts => fonts}/clacon.ttf (100%) rename {.emacs.jcs/template => template}/__changelog/keepachangelog.txt (100%) rename {.emacs.jcs/template => template}/__header/d_colon.txt (100%) rename {.emacs.jcs/template => template}/__header/d_dash.txt (100%) rename {.emacs.jcs/template => template}/__header/d_quote.txt (100%) rename {.emacs.jcs/template => template}/__header/d_semicolon.txt (100%) rename {.emacs.jcs/template => template}/__header/d_slash.txt (100%) rename {.emacs.jcs/template => template}/__header/global.txt (100%) rename {.emacs.jcs/template => template}/__header/semicolon.txt (100%) rename {.emacs.jcs/template => template}/__header/sharp.txt (100%) rename {.emacs.jcs/template => template}/__header/singlequote.txt (100%) rename {.emacs.jcs/template => template}/__header/t_slash.txt (100%) rename {.emacs.jcs/template => template}/__header/tag.txt (100%) rename {.emacs.jcs/template => template}/actionscript/default.txt (100%) rename {.emacs.jcs/template => template}/ada/default.txt (100%) rename {.emacs.jcs/template => template}/agda/default.txt (100%) rename {.emacs.jcs/template => template}/applescript/default.txt (100%) rename {.emacs.jcs/template => template}/assembly/masm.txt (100%) rename {.emacs.jcs/template => template}/assembly/nasm.txt (100%) rename {.emacs.jcs/template => template}/basic/default.txt (100%) rename {.emacs.jcs/template => template}/batch/default.txt (100%) rename {.emacs.jcs/template => template}/c++/header.txt (100%) rename {.emacs.jcs/template => template}/c++/source.txt (100%) rename {.emacs.jcs/template => template}/c++/unreal/actor-component/header.txt (100%) rename {.emacs.jcs/template => template}/c++/unreal/actor-component/source.txt (100%) rename {.emacs.jcs/template => template}/c++/unreal/actor/header.txt (100%) rename {.emacs.jcs/template => template}/c++/unreal/actor/source.txt (100%) rename {.emacs.jcs/template => template}/c/header.txt (100%) rename {.emacs.jcs/template => template}/c/source.txt (100%) rename {.emacs.jcs/template => template}/clojure/default.txt (100%) rename {.emacs.jcs/template => template}/cmake/default.txt (100%) rename {.emacs.jcs/template => template}/cobol/default.txt (100%) rename {.emacs.jcs/template => template}/csharp/default.txt (100%) rename {.emacs.jcs/template => template}/csharp/unity.txt (100%) rename {.emacs.jcs/template => template}/css/default.txt (100%) rename {.emacs.jcs/template => template}/dart/default.txt (100%) rename {.emacs.jcs/template => template}/elisp/default.txt (100%) rename {.emacs.jcs/template => template}/elixir/default.txt (100%) rename {.emacs.jcs/template => template}/elm/default.txt (100%) rename {.emacs.jcs/template => template}/erlang/default.txt (100%) rename {.emacs.jcs/template => template}/fountain/default.txt (100%) rename {.emacs.jcs/template => template}/fsharp/default.txt (100%) rename {.emacs.jcs/template => template}/gdscript/default.txt (100%) rename {.emacs.jcs/template => template}/go/default.txt (100%) rename {.emacs.jcs/template => template}/groovy/default.txt (100%) rename {.emacs.jcs/template => template}/haskell/default.txt (100%) rename {.emacs.jcs/template => template}/haxe/default.txt (100%) rename {.emacs.jcs/template => template}/java/default.txt (100%) rename {.emacs.jcs/template => template}/jayces/default.txt (100%) rename {.emacs.jcs/template => template}/jenkins/default.txt (100%) rename {.emacs.jcs/template => template}/js/default.txt (100%) rename {.emacs.jcs/template => template}/jsx/default.txt (100%) rename {.emacs.jcs/template => template}/jsx/react/js.txt (100%) rename {.emacs.jcs/template => template}/jsx/react/native.txt (100%) rename {.emacs.jcs/template => template}/kotlin/default.txt (100%) rename {.emacs.jcs/template => template}/less/default.txt (100%) rename {.emacs.jcs/template => template}/lisp/default.txt (100%) rename {.emacs.jcs/template => template}/lua/default.txt (100%) rename {.emacs.jcs/template => template}/makefile/cc/app.txt (100%) rename {.emacs.jcs/template => template}/makefile/cc/lib.txt (100%) rename {.emacs.jcs/template => template}/makefile/java/app.txt (100%) rename {.emacs.jcs/template => template}/makefile/java/lib.txt (100%) rename {.emacs.jcs/template => template}/makefile/python/app.txt (100%) rename {.emacs.jcs/template => template}/makefile/python/lib.txt (100%) rename {.emacs.jcs/template => template}/markdown/default.txt (100%) rename {.emacs.jcs/template => template}/nginx/default.txt (100%) rename {.emacs.jcs/template => template}/nix/default.txt (100%) rename {.emacs.jcs/template => template}/objc/header.txt (100%) rename {.emacs.jcs/template => template}/objc/source.txt (100%) rename {.emacs.jcs/template => template}/opascal/default.txt (100%) rename {.emacs.jcs/template => template}/pascal/default.txt (100%) rename {.emacs.jcs/template => template}/perl/default.txt (100%) rename {.emacs.jcs/template => template}/powershell/default.txt (100%) rename {.emacs.jcs/template => template}/processing/default.txt (100%) rename {.emacs.jcs/template => template}/python/class.txt (100%) rename {.emacs.jcs/template => template}/python/default.txt (100%) rename {.emacs.jcs/template => template}/r/default.txt (100%) rename {.emacs.jcs/template => template}/ruby/default.txt (100%) rename {.emacs.jcs/template => template}/rust/default.txt (100%) rename {.emacs.jcs/template => template}/sass/default.txt (100%) rename {.emacs.jcs/template => template}/scala/default.txt (100%) rename {.emacs.jcs/template => template}/scss/default.txt (100%) rename {.emacs.jcs/template => template}/sh/default.txt (100%) rename {.emacs.jcs/template => template}/shader/default_glsl.txt (100%) rename {.emacs.jcs/template => template}/shader/default_shader.txt (100%) rename {.emacs.jcs/template => template}/sql/default.txt (100%) rename {.emacs.jcs/template => template}/swift/default.txt (100%) rename {.emacs.jcs/template => template}/template_config.properties (100%) rename {.emacs.jcs/template => template}/text/default.txt (100%) rename {.emacs.jcs/template => template}/typescript/cocos_creator.txt (100%) rename {.emacs.jcs/template => template}/typescript/default.txt (100%) rename {.emacs.jcs/template => template}/verilog/verilog_template.txt (100%) rename {.emacs.jcs/template => template}/vimscript/default.txt (100%) rename {.emacs.jcs/template => template}/vue/default.txt (100%) rename {.emacs.jcs/template => template}/web/default_html.txt (100%) rename {.emacs.jcs/template => template}/web/default_php.txt (100%) rename {.emacs.jcs/template => template}/xml/default.txt (100%) rename {.emacs.jcs/template => template}/yaml/default.txt (100%) diff --git a/.emacs.d/.jcs-custom.el b/.emacs.d/.jcs-custom.el deleted file mode 100644 index 5bb85a93d..000000000 --- a/.emacs.d/.jcs-custom.el +++ /dev/null @@ -1,21 +0,0 @@ -(custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(custom-safe-themes - '("f75eb0c3087ebda14511aef2831a7d9caa9397422093fc7a3bf21e8bea78755e" "dd98976d2e8c2f92e52951b2c6472c840a2117db3dad3a9cfa7332596238ab9f" "9f6efa027765314fe4fcadc76298a60047a6ef4b28699a97ba1322cbe4c982bd" "fa1a8d0fc20bfa404a58b09c20cefbabb27b7ed95bf081685dbb42359d5fa2c4" "ef3ad6d22c8b2e2531ed7f00b07148973c9f3c2d0536107613b58f8fa715107c" "abfd19bf71399faa4a070f5c88507fe21d9704677bf98662485a416231e9bffa" "72f27d77ef4417545df7d3162348cd3987801d3be36a73cf85565a99b279a5ee" "ff21602ce8e9eb6b08ff0336fe75ca5da1836b534a2c22ca65edfcda12dc19ee" "842a8aee1f68535885553094cab482ffd9eb0cbe236ed9f46d35114f667c989a" "2956e0bbdbf6b3b2e79d3dc01c5aefeef3b8cf3f1cde6e48da3b3d8843a9f9d5" "859fef7cb85c1e6b96784edf553dc9d6e7b27e3d4993cea7ad8d343bf7dca0a5" "22325908dcbd209bd5bc94c122f15ed311764e29c2d5c3eb6714935c2bc5a3cd" "d272d0f511f00231cda783c27c3c5e6dbc812b8449a6946372b66ba34d95ca3e" "59f6fc229467f96fb1f860e3b09adaf5ae0ce2a4629bab32166ba804af8d94ee" "5f0682d71b9b4bd2e83145fc3e507b4496371bf9822d50cf53ba75ca8b33eb49" "7b2ed00a280c54ab98076ddcb49de490ef40e67e8f8261318fd8170901516255" "0ad6e0ed383481a6785cc177f7e56543275ed09e16a8adfd7cd27c2bc2b31cf5" "6f1f7256bed601520e56f766d1baa291f795e329609ed258648c6e33167f4f97" "378031f869e1498172c2c44e9b71ce9f62cf65b25580ef77178e752313fedcba" "f2b8f79e72a84b965426b4443382b39c1bceebf726657170567742014139e078" default)) - '(diminish-buffer-mode t nil (diminish-buffer)) - '(package-selected-packages - '(0xc actionscript-mode ada-mode adaptive-wrap alt-codes apache-mode applescript-mode asoc auth-source-keytar auto-highlight-symbol auto-read-only auto-rename-tag basic-mode better-scroll browse-kill-ring buffer-move buffer-wrap calfw cargo-mode cask cask-mode ccls centaur-tabs clojure-mode cmake-font-lock cobol-mode com-css-sort command-log-mode company-box company-c-headers company-emojify company-fuzzy company-meta-net company-nginx counsel csproj-mode csv-mode dashboard-ls define-it diff-hl diminish diminish-buffer dockerfile-mode docstr dumb-jump editorconfig el-mock eldoc eldoc-meta-net elisp-def elisp-demos elixir-mode elm-mode emmet-mode emoji-github erlang ert-runner eshell-syntax-highlighting ess esup exec-path-from-shell expand-region file-header fill-page flx flx-rs flycheck-grammarly flycheck-languagetool fountain-mode fsharp-mode gdscript-mode git-modes github-browse-file github-tags gitignore-templates glsl-mode go-mode google-this goto-char-preview goto-line-preview haxe-mode helpful highlight-escape-sequences highlight-indent-guides highlight-numbers hl-preproc hl-todo htmltagwrap ialign iedit impatient-showdown indent-control ini-mode isearch-project ivy-file-preview ivy-searcher javadoc-lookup jayces-mode jenkinsfile-mode json-mode keypression kotlin-mode leaf license-templates line-reminder logms logview lsp-dart lsp-docker lsp-grammarly lsp-haskell lsp-java lsp-latex lsp-ltex lsp-metals lsp-mssql lsp-pascal lsp-pyright lsp-sonarlint lsp-sourcekit lsp-tailwindcss lsp-ui lua-mode manage-minor-mode-table markdown-toc masm-mode meta-view most-used-words move-text multi-shell multiple-cursors nasm-mode nginx-mode nhexl-mode nix-mode org-bullets organize-imports-java package-lint page-break-lines parse-it powershell processing-mode project project-abbrev python-mode quelpa rainbow-mode region-occurrences-highlighter restart-emacs reveal-in-folder right-click-context rjsx-mode rust-mode scrollable-quick-peek scss-mode shader-mode show-eol smex sort-words sql-indent swift-mode togetherly transwin tree-sitter-indent tree-sitter-langs ts ts-fold turbo-log typescript-mode undercover undo-tree use-ttf vimrc-mode visual-regexp vs-dark-theme vs-light-theme vue-mode web-mode which-key xref yaml-mode yascroll yasnippet-snippets))) - -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) - -(put 'erase-buffer 'disabled nil) -(put 'downcase-region 'disabled nil) ; Enable downcase-region -(put 'upcase-region 'disabled nil) ; Enable upcase-region diff --git a/.emacs.d/.mc-lists.el b/.emacs.d/.mc-lists.el deleted file mode 100644 index 33bdabcff..000000000 --- a/.emacs.d/.mc-lists.el +++ /dev/null @@ -1,265 +0,0 @@ -;; This file is automatically generated by the multiple-cursors extension. -;; It keeps track of your preferences for running commands with multiple cursors. - -(setq mc/cmds-to-run-for-all - '( - backward-sexp - beginning-of-buffer - c-electric-slash - dashboard-next-line - dashboard-previous-line - delete-horizontal-space - electric-pair-delete-pair - end-of-buffer - forward-sexp - indent-for-tab-command - indent-region - jcs-align-region-or-document - jcs-asm-comment - jcs-asm-return - jcs-backward-delete-word - jcs-backward-kill-word-capital - jcs-backward-sexp - jcs-backward-word-capital - jcs-beginning-of-line - jcs-c-comment-pair - jcs-calc-eval-region - jcs-capitalize-word-or-region - jcs-close-all-nodes - jcs-close-node - jcs-comment-region-or-line - jcs-comment-uncomment-region-or-line - jcs-ctrl-return-key - jcs-delete-inside-and - jcs-delete-inside-asterisk - jcs-delete-inside-back-quote - jcs-delete-inside-backslash - jcs-delete-inside-caret - jcs-delete-inside-colon - jcs-delete-inside-comma - jcs-delete-inside-curly-paren - jcs-delete-inside-dash - jcs-delete-inside-dollar-sign - jcs-delete-inside-double-quote - jcs-delete-inside-equal - jcs-delete-inside-exclamation-mark - jcs-delete-inside-greater-less-sign - jcs-delete-inside-less-greater-sign - jcs-delete-inside-or - jcs-delete-inside-paren - jcs-delete-inside-percent-sign - jcs-delete-inside-period - jcs-delete-inside-plus - jcs-delete-inside-question-mark - jcs-delete-inside-semicolon - jcs-delete-inside-sharp-sign - jcs-delete-inside-single-quote - jcs-delete-inside-slash - jcs-delete-inside-sqr-paren - jcs-delete-inside-tilde - jcs-delete-inside-underscore - jcs-downcase-word-or-region - jcs-duplicate-line - jcs-electric-backspace - jcs-emmet-expand-line - jcs-end-of-line - jcs-forward-delete-word - jcs-forward-kill-word-capital - jcs-forward-sexp - jcs-forward-word-capital - jcs-go-maybe-insert-codedoc - jcs-hl-todo-next - jcs-hl-todo-previous - jcs-iedit-mode - jcs-kill-whole-line - jcs-makefile-newline - jcs-mark-whole-buffer - jcs-markdown-return-key - jcs-move-backward-comma - jcs-move-backward-less-than-sign - jcs-move-backward-open-curly-paren - jcs-move-backward-open-paren - jcs-move-backward-open-sqrParen - jcs-move-forward-close-curly-paren - jcs-move-forward-close-sqrParen - jcs-move-forward-comma - jcs-move-forward-double-quote - jcs-move-forward-greater-than-sign - jcs-open-all-nodes - jcs-open-node - jcs-org-smart-cycle - jcs-org-table-down - jcs-org-table-left - jcs-org-table-right - jcs-org-table-up - jcs-py-indent-region - jcs-py-return - jcs-real-backspace - jcs-real-delete - jcs-real-space - jcs-smart-backspace - jcs-smart-backward-delete-word - jcs-smart-backward-word - jcs-smart-context-line-break - jcs-smart-delete - jcs-smart-forward-delete-word - jcs-smart-forward-word - jcs-smart-next-line - jcs-smart-previous-line - jcs-smart-space - jcs-smart-yank - jcs-sort-symbols - jcs-tab-key - jcs-toggle-backward-forward-sexp - jcs-uncomment-region-or-line - jcs-upcase-word-or-region - jcs-vs-closing-curly-bracket-key - jcs-vs-csharp-maybe-insert-codedoc - jcs-vs-cut-key - jcs-vs-opening-curly-bracket-key - jcs-vs-semicolon-key - jcs-vs-sharp-key - jcs-web-backward-delete-word - jcs-web-backward-delete-word-capital - jcs-web-return-key - jcs-web-vs-opening-curly-bracket-key - jcs-yaml-electric-backspace - kill-region - markdown-cycle - markdown-enter-key - markdown-outdent-or-delete - org-cycle - org-force-self-insert - org-return - org-self-insert-command - turbo-log - typescript-insert-and-indent - web-mode-tag-match - yas-expand - )) - -(setq mc/cmds-to-run-once - '( - ace-window - buf-move-left - buf-move-right - buffer-menu - buffer-menu-other-window - centaur-tabs-backward - centaur-tabs-forward - counsel-M-x - counsel-find-file - dashboard-return - diminish-buffer-mode - emmet-prev-edit-point - feebleline-mode - handle-switch-frame - helm-M-x - helm-find-files - iedit-switch-to-mc-mode - ignore - indent-control-dec-indent-level - indent-control-inc-indent-level - indent-new-comment-line - isearch-forward-symbol-at-point - isearch-project-forward-symbol-at-point - ivy-searcher-search-file - ivy-searcher-search-project - javadoc-lookup - jcs-ace-window-1 - jcs-ace-window-2 - jcs-ace-window-3 - jcs-ace-window-4 - jcs-ace-window-5 - jcs-ace-window-6 - jcs-ace-window-7 - jcs-ace-window-8 - jcs-ace-window-9 - jcs-balance-delete-window - jcs-balance-split-window-horizontally - jcs-css-save-buffer - jcs-dashboard - jcs-dashboard-next-blank-line - jcs-dashboard-other-window - jcs-dashboard-previous-blank-line - jcs-find-corresponding-file-other-window - jcs-flycheck-mode - jcs-format-document - jcs-goto-definition - jcs-goto-definition-other-window - jcs-isearch-backward-symbol-at-point - jcs-isearch-project-backward-symbol-at-point - jcs-isearch-project-repeat-backward - jcs-isearch-project-repeat-forward - jcs-isearch-repeat-backward - jcs-isearch-repeat-forward - jcs-java-organize-imports - jcs-java-untabify-save-buffer - jcs-make-without-asking - jcs-maybe-kill-this-buffer - jcs-mc/dec-string-distance-level - jcs-mc/inc-string-distance-level - jcs-mc/mark-next-like-this-line - jcs-mc/mark-next-similar-this-line - jcs-mc/mark-previous-like-this-line - jcs-mc/mark-previous-similar-this-line - jcs-message-buffer - jcs-message-buffer-other-window - jcs-next-blank-line - jcs-open-project-todo-file - jcs-open-project-update-log-file - jcs-other-window-next - jcs-other-window-prev - jcs-peek-definition - jcs-previous-blank-line - jcs-py-format-document - jcs-re-builder - jcs-redo - jcs-rename-current-buffer-file - jcs-reset-zoom - jcs-revert-buffer-no-confirm - jcs-run-without-asking - jcs-same-file-other-window - jcs-save-buffer - jcs-save-buffer-by-mode - jcs-save-buffer-default - jcs-scratch-buffer - jcs-scratch-buffer-maybe-kill - jcs-scratch-buffer-other-window - jcs-scroll-down-line - jcs-scroll-up-line - jcs-sh-untabify-save-buffer - jcs-tabify-save-buffer - jcs-text-scale-decrease - jcs-text-scale-increase - jcs-toggle-shell-window - jcs-toggle-sublimity-mode - jcs-toggle-tabbar-mode - jcs-undo - jcs-untabify-save-buffer - list-processes - markdown-shifttab - mouse-set-region - move-text-down - move-text-up - neotree-toggle - overwrite-mode - package-list-packages - rainbow-mode - read-only-mode - recentf-open-files - reload-emacs - restart-emacs - reveal-in-folder - right-click-context-menu - save-buffers-kill-terminal - scroll-other-window - scroll-other-window-down - set-buffer-file-coding-system - toggle-truncate-lines - transwin-decrement-frame-transparent - transwin-increment-frame-transparent - transwin-toggle-transparent-frame - treemacs - whitespace-mode - )) diff --git a/.emacs.d/snippets/actionscript-mode/jcs-header b/.emacs.d/snippets/actionscript-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/actionscript-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/ada-mode/jcs-header b/.emacs.d/snippets/ada-mode/jcs-header deleted file mode 100644 index 7be3e3c79..000000000 --- a/.emacs.d/snippets/ada-mode/jcs-header +++ /dev/null @@ -1,14 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- --- ======================================================================== --- $File: `(jcs-file-name)` $ --- $Date: `(jcs-timestamp-ver1)` $ --- $Revision: $ --- $Creator: ${1:CREATOR_NAME} $ --- $Notice: See LICENSE.txt for modification and distribution information --- Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ --- ======================================================================== - -$0 diff --git a/.emacs.d/snippets/agda-mode/jcs-header b/.emacs.d/snippets/agda-mode/jcs-header deleted file mode 100644 index 3233c678a..000000000 --- a/.emacs.d/snippets/agda-mode/jcs-header +++ /dev/null @@ -1,14 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- --- ======================================================================== --- $File: `(jcs-get-file-name)` $ --- $Date: `(jcs-timestamp-ver1)` $ --- $Revision: $ --- $Creator: ${1:CREATOR_NAME} $ --- $Notice: See LICENSE.txt for modification and distribution information --- Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ --- ======================================================================== - -$0 diff --git a/.emacs.d/snippets/basic-mode/jcs-header b/.emacs.d/snippets/basic-mode/jcs-header deleted file mode 100644 index b00496209..000000000 --- a/.emacs.d/snippets/basic-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -'' ======================================================================== -'' $File: `(jcs-file-name)` $ -'' $Date: `(jcs-timestamp-ver1)` $ -'' $Revision: $ -'' $Creator: ${1:CREATOR_NAME} $ -'' $Notice: See LICENSE.txt for modification and distribution information $ -'' Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -'' ======================================================================== -$0 diff --git a/.emacs.d/snippets/bat-mode/jcs-header b/.emacs.d/snippets/bat-mode/jcs-header deleted file mode 100644 index b364a76c7..000000000 --- a/.emacs.d/snippets/bat-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -:: ======================================================================== -:: $File: `(jcs-file-name)` $ -:: $Date: `(jcs-timestamp-ver1)` $ -:: $Revision: $ -:: $Creator: ${1:CREATOR_NAME} $ -:: $Notice: See LICENSE.txt for modification and distribution information -:: Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -:: ======================================================================== -$0 diff --git a/.emacs.d/snippets/c++-mode/.yas-parents b/.emacs.d/snippets/c++-mode/.yas-parents deleted file mode 100644 index b269357d1..000000000 --- a/.emacs.d/snippets/c++-mode/.yas-parents +++ /dev/null @@ -1,2 +0,0 @@ -cc-mode -c-lang-common diff --git a/.emacs.d/snippets/c-mode/.yas-parents b/.emacs.d/snippets/c-mode/.yas-parents deleted file mode 100644 index b269357d1..000000000 --- a/.emacs.d/snippets/c-mode/.yas-parents +++ /dev/null @@ -1,2 +0,0 @@ -cc-mode -c-lang-common diff --git a/.emacs.d/snippets/cc-mode/jcs-header b/.emacs.d/snippets/cc-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/cc-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/clojure-mode/jcs-header b/.emacs.d/snippets/clojure-mode/jcs-header deleted file mode 100644 index 438d08123..000000000 --- a/.emacs.d/snippets/clojure-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -;; ======================================================================== -;; $File: `(jcs-file-name)` $ -;; $Date: `(jcs-timestamp-ver1)` $ -;; $Revision: $ -;; $Creator: ${1:CREATOR_NAME} $ -;; $Notice: See LICENSE.txt for modification and distribution information -;; Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -;; ======================================================================== -$0 diff --git a/.emacs.d/snippets/cmake-mode/jcs-header b/.emacs.d/snippets/cmake-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/cmake-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/cobol-mode/jcs-header b/.emacs.d/snippets/cobol-mode/jcs-header deleted file mode 100644 index 5357b97d7..000000000 --- a/.emacs.d/snippets/cobol-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- - *> ======================================================================== - *> $File: `(jcs-file-name)` $ - *> $Date: `(jcs-timestamp-ver1)` $ - *> $Revision: $ - *> $Creator: ${1:CREATOR_NAME} $ - *> $Notice: See LICENSE.txt for modification and distribution information - *> Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - *> ======================================================================== - $0 diff --git a/.emacs.d/snippets/csharp-mode/jcs-header b/.emacs.d/snippets/csharp-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/csharp-mode/jcs-unity-awake b/.emacs.d/snippets/csharp-mode/jcs-unity-awake deleted file mode 100644 index 80f268c2e..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-unity-awake +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-unity-awake -# key: jcs-unity-awake -# -- -private void Awake() -{ - $0 -} \ No newline at end of file diff --git a/.emacs.d/snippets/csharp-mode/jcs-unity-class b/.emacs.d/snippets/csharp-mode/jcs-unity-class deleted file mode 100644 index d8870a149..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-unity-class +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-unity-class -# key: jcs-unity-class -# -- -public class `(jcs-file-name-without-extension)` : MonoBehaviour -{ - $0 -} \ No newline at end of file diff --git a/.emacs.d/snippets/csharp-mode/jcs-unity-ha b/.emacs.d/snippets/csharp-mode/jcs-unity-ha deleted file mode 100644 index 31e950e5c..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-unity-ha +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-unity-ha -# key: jcs-unity-ha -# -- -[Header("$1")]$0 \ No newline at end of file diff --git a/.emacs.d/snippets/csharp-mode/jcs-unity-hiia b/.emacs.d/snippets/csharp-mode/jcs-unity-hiia deleted file mode 100644 index 6577352e0..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-unity-hiia +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-unity-hiia -# key: jcs-unity-hiia -# -- -[HideInInspector]$0 \ No newline at end of file diff --git a/.emacs.d/snippets/csharp-mode/jcs-unity-ns b/.emacs.d/snippets/csharp-mode/jcs-unity-ns deleted file mode 100644 index 44a4601fd..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-unity-ns +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-unity-ns -# key: jcs-unity-ns -# -- -using System.Collections; -using System.Collections.Generic; -using UnityEngine;$0 \ No newline at end of file diff --git a/.emacs.d/snippets/csharp-mode/jcs-unity-rca b/.emacs.d/snippets/csharp-mode/jcs-unity-rca deleted file mode 100644 index f3c5372b6..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-unity-rca +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-unity-rca -# key: jcs-unity-rca -# -- -[RequireComponent(typeof($1))]$0 \ No newline at end of file diff --git a/.emacs.d/snippets/csharp-mode/jcs-unity-rga b/.emacs.d/snippets/csharp-mode/jcs-unity-rga deleted file mode 100644 index 26b9b2773..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-unity-rga +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-unity-rga -# key: jcs-unity-rga -# -- -[Range($1, $2)]$0 \ No newline at end of file diff --git a/.emacs.d/snippets/csharp-mode/jcs-unity-sfa b/.emacs.d/snippets/csharp-mode/jcs-unity-sfa deleted file mode 100644 index d843ef8c7..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-unity-sfa +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-unity-sfa -# key: jcs-unity-sfa -# -- -[SerializeField]$0 \ No newline at end of file diff --git a/.emacs.d/snippets/csharp-mode/jcs-unity-start b/.emacs.d/snippets/csharp-mode/jcs-unity-start deleted file mode 100644 index 9ea4e334e..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-unity-start +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-unity-start -# key: jcs-unity-start -# -- -private void Start() -{ - $0 -} \ No newline at end of file diff --git a/.emacs.d/snippets/csharp-mode/jcs-unity-tta b/.emacs.d/snippets/csharp-mode/jcs-unity-tta deleted file mode 100644 index 68f6ddf9a..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-unity-tta +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-unity-tta -# key: jcs-unity-tta -# -- -[Tooltip("$1")]$0 \ No newline at end of file diff --git a/.emacs.d/snippets/csharp-mode/jcs-unity-update b/.emacs.d/snippets/csharp-mode/jcs-unity-update deleted file mode 100644 index 6c0122f1e..000000000 --- a/.emacs.d/snippets/csharp-mode/jcs-unity-update +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-unity-update -# key: jcs-unity-update -# -- -private void Update() -{ - $0 -} \ No newline at end of file diff --git a/.emacs.d/snippets/css-mode/jcs-header b/.emacs.d/snippets/css-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/css-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/dart-mode/jcs-header b/.emacs.d/snippets/dart-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/dart-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/elixir-mode/jcs-header b/.emacs.d/snippets/elixir-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/elixir-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/emacs-lisp-mode/jcs-elpa b/.emacs.d/snippets/emacs-lisp-mode/jcs-elpa deleted file mode 100644 index f0946fa9a..000000000 --- a/.emacs.d/snippets/emacs-lisp-mode/jcs-elpa +++ /dev/null @@ -1,41 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-elpa -# key: jcs-elpa -# -- -;;; `(jcs-file-name)` --- $1 -*- lexical-binding: t; -*- - -;; Copyright (C) `(jcs-year-only)` Shen, Jen-Chieh - -;; Author: Shen, Jen-Chieh -;; Maintainer: Shen, Jen-Chieh -;; URL: https://github.com/jcs090218/`(jcs-file-name-without-extension)` -;; Version: 0.0.1 -;; Package-Requires: ((emacs "24.3")) -;; Keywords: $2 - -;; This file is not part of GNU Emacs. - -;; 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: -;; -;; $3 -;; - -;;; Code: - -$0 - -(provide '`(jcs-file-name-without-extension)`) -;;; `(jcs-file-name)` ends here diff --git a/.emacs.d/snippets/emacs-lisp-mode/jcs-header b/.emacs.d/snippets/emacs-lisp-mode/jcs-header deleted file mode 100644 index 438d08123..000000000 --- a/.emacs.d/snippets/emacs-lisp-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -;; ======================================================================== -;; $File: `(jcs-file-name)` $ -;; $Date: `(jcs-timestamp-ver1)` $ -;; $Revision: $ -;; $Creator: ${1:CREATOR_NAME} $ -;; $Notice: See LICENSE.txt for modification and distribution information -;; Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -;; ======================================================================== -$0 diff --git a/.emacs.d/snippets/emacs-lisp-mode/jcs-marmalade b/.emacs.d/snippets/emacs-lisp-mode/jcs-marmalade deleted file mode 100644 index a8bbcc110..000000000 --- a/.emacs.d/snippets/emacs-lisp-mode/jcs-marmalade +++ /dev/null @@ -1,43 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-marmalade -# key: jcs-marmalade -# -- -;;; `(jcs-file-name)` --- $1 -*- lexical-binding: t; -*- - -;; This file is not part of Emacs - -;; Author: Shen, Jen-Chieh -;; Version: 0.0.1 -;; Keywords: $2 -;; Package-Version: -;; Maintainer: Shen, Jen-Chieh -;; Created: `(jcs-date-ver2)` -;; Package-Requires: ((emacs "24.3")) -;; Description: $3 -;; URL: https://github.com/jcs090218/`(jcs-file-name-without-extension)` -;; Compatibility: Emacs24 - -;; COPYRIGHT NOTICE -;; -;; 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 2 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. -;; - -;;; Commentary: -;; -;; $4 -;; - -;;; Code: - -$0 - -(provide '`(jcs-file-name-without-extension)`) -;;; `(jcs-file-name)` ends here diff --git a/.emacs.d/snippets/emacs-lisp-mode/jcs-melpa b/.emacs.d/snippets/emacs-lisp-mode/jcs-melpa deleted file mode 100644 index 13a5a9de3..000000000 --- a/.emacs.d/snippets/emacs-lisp-mode/jcs-melpa +++ /dev/null @@ -1,42 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-melpa -# key: jcs-melpa -# -- -;;; `(jcs-file-name)` --- $1 -*- lexical-binding: t; -*- - -;; Copyright (C) `(jcs-year-only)` Shen, Jen-Chieh -;; Created date `(jcs-timestamp-ver1)` - -;; Author: Shen, Jen-Chieh -;; Description: $2 -;; Keyword: $3 -;; Version: 0.0.1 -;; Package-Requires: ((emacs "24.3")) -;; URL: https://github.com/jcs090218/`(jcs-file-name-without-extension)` - -;; This file is NOT part of GNU Emacs. - -;; 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: -;; -;; $4 -;; - -;;; Code: - -$0 - -(provide '`(jcs-file-name-without-extension)`) -;;; `(jcs-file-name)` ends here diff --git a/.emacs.d/snippets/erlang-mode/jcs-header b/.emacs.d/snippets/erlang-mode/jcs-header deleted file mode 100644 index d801f426c..000000000 --- a/.emacs.d/snippets/erlang-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -%% ======================================================================== -%% $File: `(jcs-file-name)` $ -%% $Date: `(jcs-timestamp-ver1)` $ -%% $Revision: $ -%% $Creator: ${1:CREATOR_NAME} $ -%% $Notice: See LICENSE.txt for modification and distribution information -%% Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -%% ======================================================================== -$0 diff --git a/.emacs.d/snippets/ess-r-mode/jcs-header b/.emacs.d/snippets/ess-r-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/ess-r-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/fountain-mode/jcs-header b/.emacs.d/snippets/fountain-mode/jcs-header deleted file mode 100644 index ea923a04a..000000000 --- a/.emacs.d/snippets/fountain-mode/jcs-header +++ /dev/null @@ -1,14 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -Title: ${1:YOUR_TITLE} -Credit: written by -Author: ${2:CREATOR_NAME} -Copyright: (c) `(jcs-year-only)` ${3:COPYRIGHT_INFO} - -${4:SCRRENPLAY_DESCRIPTION} - -==== - -$0 diff --git a/.emacs.d/snippets/gdscript-mode/jcs-header b/.emacs.d/snippets/gdscript-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/gdscript-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/glsl-mode/jcs-header b/.emacs.d/snippets/glsl-mode/jcs-header deleted file mode 100644 index a29b2a100..000000000 --- a/.emacs.d/snippets/glsl-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -// ======================================================================== -// $File: `(jcs-file-name)` $ -// $Date: `(jcs-timestamp-ver1)` $ -// $Revision: $ -// $Creator: ${1:CREATOR_NAME} $ -// $Notice: See LICENSE.txt for modification and distribution information $ -// Copyright `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -// ======================================================================== -$0 diff --git a/.emacs.d/snippets/go-mode/jcs-header b/.emacs.d/snippets/go-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/go-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/groovy-mode/jcs-header b/.emacs.d/snippets/groovy-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/groovy-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/haskell-mode/jcs-header b/.emacs.d/snippets/haskell-mode/jcs-header deleted file mode 100644 index 26934f452..000000000 --- a/.emacs.d/snippets/haskell-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- --- ======================================================================== --- $File: `(jcs-file-name)` $ --- $Date: `(jcs-timestamp-ver1)` $ --- $Revision: $ --- $Creator: ${1:CREATOR_NAME} $ --- $Notice: See LICENSE.txt for modification and distribution information --- Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ --- ======================================================================== -$0 diff --git a/.emacs.d/snippets/haxe-mode/jcs-header b/.emacs.d/snippets/haxe-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/haxe-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/html-mode/.yas-parents b/.emacs.d/snippets/html-mode/.yas-parents deleted file mode 100644 index 74c3dd5c5..000000000 --- a/.emacs.d/snippets/html-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -nxml-mode diff --git a/.emacs.d/snippets/html-mode/jcs-angular-js b/.emacs.d/snippets/html-mode/jcs-angular-js deleted file mode 100644 index 913cc188e..000000000 --- a/.emacs.d/snippets/html-mode/jcs-angular-js +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-angular-js -# key: jcs-angular-js -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-animate-css b/.emacs.d/snippets/html-mode/jcs-animate-css deleted file mode 100644 index e389bed65..000000000 --- a/.emacs.d/snippets/html-mode/jcs-animate-css +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-animate-css -# key: jcs-animate-css -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-bootstrap-css b/.emacs.d/snippets/html-mode/jcs-bootstrap-css deleted file mode 100644 index ec0d90387..000000000 --- a/.emacs.d/snippets/html-mode/jcs-bootstrap-css +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-bootstrap-css -# key: jcs-bootstrap-css -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-bootstrap-js b/.emacs.d/snippets/html-mode/jcs-bootstrap-js deleted file mode 100644 index 621519107..000000000 --- a/.emacs.d/snippets/html-mode/jcs-bootstrap-js +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-bootstrap-js -# key: jcs-bootstrap-js -# -- - - -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-fabric-js b/.emacs.d/snippets/html-mode/jcs-fabric-js deleted file mode 100644 index ca0b7b72c..000000000 --- a/.emacs.d/snippets/html-mode/jcs-fabric-js +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-fabric-js -# key: jcs-fabric-js -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-ion-sound-js b/.emacs.d/snippets/html-mode/jcs-ion-sound-js deleted file mode 100644 index 899533341..000000000 --- a/.emacs.d/snippets/html-mode/jcs-ion-sound-js +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-ion-sound-js -# key: jcs-ion-sound-js -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-jquery-js b/.emacs.d/snippets/html-mode/jcs-jquery-js deleted file mode 100644 index f773f8f9c..000000000 --- a/.emacs.d/snippets/html-mode/jcs-jquery-js +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-jquery-js -# key: jcs-jquery-js -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-normalize-css b/.emacs.d/snippets/html-mode/jcs-normalize-css deleted file mode 100644 index 38c897146..000000000 --- a/.emacs.d/snippets/html-mode/jcs-normalize-css +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-normalize-css -# key: jcs-normalize-css -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-p5-js b/.emacs.d/snippets/html-mode/jcs-p5-js deleted file mode 100644 index 4d7ee7a9d..000000000 --- a/.emacs.d/snippets/html-mode/jcs-p5-js +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-p5-js -# key: jcs-p5-js -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-phaser-js b/.emacs.d/snippets/html-mode/jcs-phaser-js deleted file mode 100644 index 82f9ba8c3..000000000 --- a/.emacs.d/snippets/html-mode/jcs-phaser-js +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-phaser-js -# key: jcs-phaser-js -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-react-js b/.emacs.d/snippets/html-mode/jcs-react-js deleted file mode 100644 index 963cd8f81..000000000 --- a/.emacs.d/snippets/html-mode/jcs-react-js +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-react-js -# key: jcs-react-js -# -- - -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-reset-css b/.emacs.d/snippets/html-mode/jcs-reset-css deleted file mode 100644 index 9719c062a..000000000 --- a/.emacs.d/snippets/html-mode/jcs-reset-css +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-reset-css -# key: jcs-reset-css -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-shake-css b/.emacs.d/snippets/html-mode/jcs-shake-css deleted file mode 100644 index 137dbbaf9..000000000 --- a/.emacs.d/snippets/html-mode/jcs-shake-css +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-shake-css -# key: jcs-shake-css -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-three-js b/.emacs.d/snippets/html-mode/jcs-three-js deleted file mode 100644 index 52a107ab3..000000000 --- a/.emacs.d/snippets/html-mode/jcs-three-js +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-three-js -# key: jcs-three-js -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-tween-js b/.emacs.d/snippets/html-mode/jcs-tween-js deleted file mode 100644 index 8dc8e7227..000000000 --- a/.emacs.d/snippets/html-mode/jcs-tween-js +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-tween-js -# key: jcs-tween-js -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/html-mode/jcs-vue-js b/.emacs.d/snippets/html-mode/jcs-vue-js deleted file mode 100644 index d3ca8c8cd..000000000 --- a/.emacs.d/snippets/html-mode/jcs-vue-js +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-vue-js -# key: jcs-vue-js -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/java-mode/jcs-header b/.emacs.d/snippets/java-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/java-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/jayces-mode/jcs-header b/.emacs.d/snippets/jayces-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/jayces-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/js-mode/jcs-header b/.emacs.d/snippets/js-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/js-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/js-mode/jcs-ion-sound b/.emacs.d/snippets/js-mode/jcs-ion-sound deleted file mode 100644 index 639673219..000000000 --- a/.emacs.d/snippets/js-mode/jcs-ion-sound +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-ion-sound -# key: jcs-ion-sound -# -- -ion.sound({ - $0 -}); \ No newline at end of file diff --git a/.emacs.d/snippets/js-mode/jcs-jquery b/.emacs.d/snippets/js-mode/jcs-jquery deleted file mode 100644 index 041818bf2..000000000 --- a/.emacs.d/snippets/js-mode/jcs-jquery +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-jquery -# key: jcs-jquery -# -- -(function ($) { - $0 -}(this.jQuery)); \ No newline at end of file diff --git a/.emacs.d/snippets/js-mode/jcs-vue b/.emacs.d/snippets/js-mode/jcs-vue deleted file mode 100644 index f57cc5c03..000000000 --- a/.emacs.d/snippets/js-mode/jcs-vue +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-vue -# key: jcs-vue -# -- -new Vue({ - $0 -}); \ No newline at end of file diff --git a/.emacs.d/snippets/js2-mode/.yas-parents b/.emacs.d/snippets/js2-mode/.yas-parents deleted file mode 100644 index 27dab3004..000000000 --- a/.emacs.d/snippets/js2-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -js-mode diff --git a/.emacs.d/snippets/js3-mode/.yas-parents b/.emacs.d/snippets/js3-mode/.yas-parents deleted file mode 100644 index 27dab3004..000000000 --- a/.emacs.d/snippets/js3-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -js-mode diff --git a/.emacs.d/snippets/lisp-mode/jcs-header b/.emacs.d/snippets/lisp-mode/jcs-header deleted file mode 100644 index 438d08123..000000000 --- a/.emacs.d/snippets/lisp-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -;; ======================================================================== -;; $File: `(jcs-file-name)` $ -;; $Date: `(jcs-timestamp-ver1)` $ -;; $Revision: $ -;; $Creator: ${1:CREATOR_NAME} $ -;; $Notice: See LICENSE.txt for modification and distribution information -;; Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -;; ======================================================================== -$0 diff --git a/.emacs.d/snippets/lua-mode/jcs-header b/.emacs.d/snippets/lua-mode/jcs-header deleted file mode 100644 index 7be3e3c79..000000000 --- a/.emacs.d/snippets/lua-mode/jcs-header +++ /dev/null @@ -1,14 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- --- ======================================================================== --- $File: `(jcs-file-name)` $ --- $Date: `(jcs-timestamp-ver1)` $ --- $Revision: $ --- $Creator: ${1:CREATOR_NAME} $ --- $Notice: See LICENSE.txt for modification and distribution information --- Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ --- ======================================================================== - -$0 diff --git a/.emacs.d/snippets/makefile-mode/jcs-header b/.emacs.d/snippets/makefile-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/makefile-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/markdown-mode/.yas-parents b/.emacs.d/snippets/markdown-mode/.yas-parents deleted file mode 100644 index 8a1138368..000000000 --- a/.emacs.d/snippets/markdown-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -html-mode diff --git a/.emacs.d/snippets/markdown-mode/jcs-header b/.emacs.d/snippets/markdown-mode/jcs-header deleted file mode 100644 index 8c292dc00..000000000 --- a/.emacs.d/snippets/markdown-mode/jcs-header +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- ---- -title: `(jcs-file-name)` -date: `(jcs-timestamp-ver1)` -description: ---- - -$0 diff --git a/.emacs.d/snippets/markdown-mode/jcs-melpa b/.emacs.d/snippets/markdown-mode/jcs-melpa deleted file mode 100644 index 81b6c12bd..000000000 --- a/.emacs.d/snippets/markdown-mode/jcs-melpa +++ /dev/null @@ -1,17 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-melpa -# key: jcs-melpa -# -- -[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) - -# ${1:TITLE} -> ${2:Quote description..} - -${3:Project description..}$0 - -## Contribution - -If you would like to contribute to this project, you may either -clone and make pull requests to this repository. Or you can -clone the project and establish your own branch of this tool. -Any methods are welcome! diff --git a/.emacs.d/snippets/nasm-mode/jcs-header b/.emacs.d/snippets/nasm-mode/jcs-header deleted file mode 100644 index 438d08123..000000000 --- a/.emacs.d/snippets/nasm-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -;; ======================================================================== -;; $File: `(jcs-file-name)` $ -;; $Date: `(jcs-timestamp-ver1)` $ -;; $Revision: $ -;; $Creator: ${1:CREATOR_NAME} $ -;; $Notice: See LICENSE.txt for modification and distribution information -;; Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -;; ======================================================================== -$0 diff --git a/.emacs.d/snippets/nix-mode/jcs-header b/.emacs.d/snippets/nix-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/nix-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/nxml-mode/jcs-header b/.emacs.d/snippets/nxml-mode/jcs-header deleted file mode 100644 index af6dbdc2a..000000000 --- a/.emacs.d/snippets/nxml-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- - -$0 diff --git a/.emacs.d/snippets/objc-mode/jcs-header b/.emacs.d/snippets/objc-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/objc-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/opascal-mode/jcs-header b/.emacs.d/snippets/opascal-mode/jcs-header deleted file mode 100644 index 29be9a2fb..000000000 --- a/.emacs.d/snippets/opascal-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -// ======================================================================== -// $File: `(jcs-file-name)` $ -// $Date: `(jcs-timestamp-ver1)` $ -// $Revision: $ -// $Creator: ${1:CREATOR_NAME} $ -// $Notice: See LICENSE.txt for modification and distribution information -// Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -// ======================================================================== -$0 diff --git a/.emacs.d/snippets/org-mode/jcs-header b/.emacs.d/snippets/org-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/org-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/pascal-mode/jcs-header b/.emacs.d/snippets/pascal-mode/jcs-header deleted file mode 100644 index 29be9a2fb..000000000 --- a/.emacs.d/snippets/pascal-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -// ======================================================================== -// $File: `(jcs-file-name)` $ -// $Date: `(jcs-timestamp-ver1)` $ -// $Revision: $ -// $Creator: ${1:CREATOR_NAME} $ -// $Notice: See LICENSE.txt for modification and distribution information -// Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -// ======================================================================== -$0 diff --git a/.emacs.d/snippets/perl-mode/.yas-parents b/.emacs.d/snippets/perl-mode/.yas-parents deleted file mode 100644 index eed5b442b..000000000 --- a/.emacs.d/snippets/perl-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -text-mode diff --git a/.emacs.d/snippets/powershell-mode/jcs-header b/.emacs.d/snippets/powershell-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/powershell-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/prog-mode/jcs-header-d-colon b/.emacs.d/snippets/prog-mode/jcs-header-d-colon deleted file mode 100644 index 5b708e23e..000000000 --- a/.emacs.d/snippets/prog-mode/jcs-header-d-colon +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header-d-colon -# key: jcs-header-d-colon -# -- -:: ======================================================================== -:: $File: `(jcs-file-name)` $ -:: $Date: `(jcs-timestamp-ver1)` $ -:: $Revision: $ -:: $Creator: ${1:CREATOR_NAME} $ -:: $Notice: See LICENSE.txt for modification and distribution information -:: Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -:: ======================================================================== -$0 diff --git a/.emacs.d/snippets/prog-mode/jcs-header-d-dash b/.emacs.d/snippets/prog-mode/jcs-header-d-dash deleted file mode 100644 index 75439c4db..000000000 --- a/.emacs.d/snippets/prog-mode/jcs-header-d-dash +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header-d-dash -# key: jcs-header--dash -# -- --- ======================================================================== --- $File: `(jcs-file-name)` $ --- $Date: `(jcs-timestamp-ver1)` $ --- $Revision: $ --- $Creator: ${1:CREATOR_NAME} $ --- $Notice: See LICENSE.txt for modification and distribution information --- Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ --- ======================================================================== -$0 diff --git a/.emacs.d/snippets/prog-mode/jcs-header-d-quote b/.emacs.d/snippets/prog-mode/jcs-header-d-quote deleted file mode 100644 index 6201651e5..000000000 --- a/.emacs.d/snippets/prog-mode/jcs-header-d-quote +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header-d-quote -# key: jcs-header-d-quote -# -- -"" ======================================================================== -"" $File: `(jcs-file-name)` $ -"" $Date: `(jcs-timestamp-ver1)` $ -"" $Revision: $ -"" $Creator: ${1:CREATOR_NAME} $ -"" $Notice: See LICENSE.txt for modification and distribution information $ -"" Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -"" ======================================================================== -$0 diff --git a/.emacs.d/snippets/prog-mode/jcs-header-d-semicolon b/.emacs.d/snippets/prog-mode/jcs-header-d-semicolon deleted file mode 100644 index 859e88131..000000000 --- a/.emacs.d/snippets/prog-mode/jcs-header-d-semicolon +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header-d-semicolon -# key: jcs-header-d-semicolon -# -- -;; ======================================================================== -;; $File: `(jcs-file-name)` $ -;; $Date: `(jcs-timestamp-ver1)` $ -;; $Revision: $ -;; $Creator: ${1:CREATOR_NAME} $ -;; $Notice: See LICENSE.txt for modification and distribution information -;; Copyright `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -;; ======================================================================== -$0 diff --git a/.emacs.d/snippets/prog-mode/jcs-header-d-slash b/.emacs.d/snippets/prog-mode/jcs-header-d-slash deleted file mode 100644 index 301eff40a..000000000 --- a/.emacs.d/snippets/prog-mode/jcs-header-d-slash +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header-d-slash -# key: jcs-header-d-slash -# -- -// ======================================================================== -// $File: `(jcs-file-name)` $ -// $Date: `(jcs-timestamp-ver1)` $ -// $Revision: $ -// $Creator: ${1:CREATOR_NAME} $ -// $Notice: See LICENSE.txt for modification and distribution information $ -// Copyright `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -// ======================================================================== -$0 diff --git a/.emacs.d/snippets/prog-mode/jcs-header-global b/.emacs.d/snippets/prog-mode/jcs-header-global deleted file mode 100644 index b344a1645..000000000 --- a/.emacs.d/snippets/prog-mode/jcs-header-global +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header-global -# key: jcs-header-global -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/prog-mode/jcs-header-semicolon b/.emacs.d/snippets/prog-mode/jcs-header-semicolon deleted file mode 100644 index 61fa53ff8..000000000 --- a/.emacs.d/snippets/prog-mode/jcs-header-semicolon +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header-semicolon -# key: jcs-header-semicolon -# -- -; ======================================================================== -; $File: `(jcs-file-name)` $ -; $Date: `(jcs-timestamp-ver1)` $ -; $Revision: $ -; $Creator: ${1:CREATOR_NAME} $ -; $Notice: See LICENSE.txt for modification and distribution information -; Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -; ======================================================================== -$0 diff --git a/.emacs.d/snippets/prog-mode/jcs-header-sharp b/.emacs.d/snippets/prog-mode/jcs-header-sharp deleted file mode 100644 index d8651cf30..000000000 --- a/.emacs.d/snippets/prog-mode/jcs-header-sharp +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header-sharp -# key: jcs-header-sharp -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/prog-mode/jcs-header-singlequote b/.emacs.d/snippets/prog-mode/jcs-header-singlequote deleted file mode 100644 index a2fd1b4b2..000000000 --- a/.emacs.d/snippets/prog-mode/jcs-header-singlequote +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header-singlequote -# key: jcs-header-singlequote -# -- -'' ======================================================================== -'' $File: `(jcs-file-name)` $ -'' $Date: `(jcs-timestamp-ver1)` $ -'' $Revision: $ -'' $Creator: ${1:CREATOR_NAME} $ -'' $Notice: See LICENSE.txt for modification and distribution information $ -'' Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -'' ======================================================================== -$0 diff --git a/.emacs.d/snippets/prog-mode/jcs-header-tag b/.emacs.d/snippets/prog-mode/jcs-header-tag deleted file mode 100644 index e5088649f..000000000 --- a/.emacs.d/snippets/prog-mode/jcs-header-tag +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header-tag -# key: jcs-header-tag -# -- - -$0 diff --git a/.emacs.d/snippets/python-mode/jcs-cls b/.emacs.d/snippets/python-mode/jcs-cls deleted file mode 100644 index 512b80365..000000000 --- a/.emacs.d/snippets/python-mode/jcs-cls +++ /dev/null @@ -1,40 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-cls -# key: jcs-cls -# group: object oriented -# -- -class `(jcs-file-name-without-extension)`(object): - - """${1:TODO: Class Description here...} - """ - - #*********************************************# - # Public Variables # - #*********************************************# - - #*********************************************# - # Private Variables # - #*********************************************# - - #*********************************************# - # Protected Variables # - #*********************************************# - - #*********************************************# - # Constructor # - #*********************************************# - def __init__(self): - """Constructor.""" - $0 - - #==================== - # Public Methods - - #==================== - # Protected Methods - - #==================== - # Private Methods - - #==================== - # setter / getter diff --git a/.emacs.d/snippets/python-mode/jcs-header b/.emacs.d/snippets/python-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/python-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/rjsx-mode/.yas-parents b/.emacs.d/snippets/rjsx-mode/.yas-parents deleted file mode 100644 index 27dab3004..000000000 --- a/.emacs.d/snippets/rjsx-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -js-mode diff --git a/.emacs.d/snippets/ruby-mode/jcs-header b/.emacs.d/snippets/ruby-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/ruby-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/rust-mode/jcs-header b/.emacs.d/snippets/rust-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/rust-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/scala-mode/jcs-header b/.emacs.d/snippets/scala-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/scala-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/sh-mode/jcs-header b/.emacs.d/snippets/sh-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/sh-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.d/snippets/shader-mode/jcs-header b/.emacs.d/snippets/shader-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/shader-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/snippet-mode/jcs-header b/.emacs.d/snippets/snippet-mode/jcs-header deleted file mode 100644 index b10c18fdb..000000000 --- a/.emacs.d/snippets/snippet-mode/jcs-header +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# -*- mode: snippet -*- -# name: ${1:Snippet Name} -# key: ${2:Snippet Key} -# -- -$0 \ No newline at end of file diff --git a/.emacs.d/snippets/sql-mode/jcs-header b/.emacs.d/snippets/sql-mode/jcs-header deleted file mode 100644 index 6f3dbcc8b..000000000 --- a/.emacs.d/snippets/sql-mode/jcs-header +++ /dev/null @@ -1,19 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/* -Service Platform Data Transfer - -Source Server : $server_name$ -Source Server Type : $server_type$ -Source Server Version : $server_version$ -Source Host : $hostname$ -Source Schema : $schema$ - -Target Server Type : $server_type$ -Target Server Version : $server_version$ -File Encoding : $file_encoding$ - -Date: `(jcs-timestamp-ver1)` -*/ diff --git a/.emacs.d/snippets/swift-mode/jcs-header b/.emacs.d/snippets/swift-mode/jcs-header deleted file mode 100644 index c42819688..000000000 --- a/.emacs.d/snippets/swift-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -/** - * $File: `(jcs-file-name)` $ - * $Date: `(jcs-timestamp-ver1)` $ - * $Revision: $ - * $Creator: ${1:CREATOR_NAME} $ - * $Notice: See LICENSE.txt for modification and distribution information - * Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ - */ -$0 diff --git a/.emacs.d/snippets/text-mode/.yas-parents b/.emacs.d/snippets/text-mode/.yas-parents deleted file mode 100644 index c3ca481ce..000000000 --- a/.emacs.d/snippets/text-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -fundamental-mode diff --git a/.emacs.d/snippets/typescript-mode/.yas-parents b/.emacs.d/snippets/typescript-mode/.yas-parents deleted file mode 100644 index 27dab3004..000000000 --- a/.emacs.d/snippets/typescript-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -js-mode diff --git a/.emacs.d/snippets/vimrc-mode/jcs-header b/.emacs.d/snippets/vimrc-mode/jcs-header deleted file mode 100644 index c79388b5a..000000000 --- a/.emacs.d/snippets/vimrc-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -"" ======================================================================== -"" $File: `(jcs-file-name)` $ -"" $Date: `(jcs-timestamp-ver1)` $ -"" $Revision: $ -"" $Creator: ${1:CREATOR_NAME} $ -"" $Notice: See LICENSE.txt for modification and distribution information $ -"" Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -"" ======================================================================== -$0 diff --git a/.emacs.d/snippets/web-mode/.yas-parents b/.emacs.d/snippets/web-mode/.yas-parents deleted file mode 100644 index 8a1138368..000000000 --- a/.emacs.d/snippets/web-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -html-mode diff --git a/.emacs.d/snippets/yaml-mode/jcs-header b/.emacs.d/snippets/yaml-mode/jcs-header deleted file mode 100644 index 51fc546eb..000000000 --- a/.emacs.d/snippets/yaml-mode/jcs-header +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: jcs-header -# key: jcs-header -# -- -# ======================================================================== -# $File: `(jcs-file-name)` $ -# $Date: `(jcs-timestamp-ver1)` $ -# $Revision: $ -# $Creator: ${1:CREATOR_NAME} $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © `(jcs-year-only)` by ${2:COPYRIGHT_INFO} $ -# ======================================================================== -$0 diff --git a/.emacs.jcs/scripts/all.bat b/.emacs.jcs/scripts/all.bat deleted file mode 100644 index 4b74b20eb..000000000 --- a/.emacs.jcs/scripts/all.bat +++ /dev/null @@ -1,16 +0,0 @@ -@echo off -:: ======================================================================== -:: $File: all.bat $ -:: $Date: 2019-05-30 14:19:00 $ -:: $Revision: $ -:: $Creator: Jen-Chieh Shen $ -:: $Notice: See LICENSE.txt for modification and distribution information -:: Copyright © 2019 by Shen, Jen-Chieh $ -:: ======================================================================== - - -call ./clean.bat -cd ./scripts - -call ./compile.bat -cd ./scripts diff --git a/.emacs.jcs/scripts/all.sh b/.emacs.jcs/scripts/all.sh deleted file mode 100644 index 3797570cb..000000000 --- a/.emacs.jcs/scripts/all.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# ======================================================================== -# $File: all.sh $ -# $Date: 2019-05-30 14:19:32 $ -# $Revision: $ -# $Creator: Jen-Chieh Shen $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © 2019 by Shen, Jen-Chieh $ -# ======================================================================== - - -sh ./clean.sh -sh ./compile.sh diff --git a/.emacs.jcs/scripts/clean.bat b/.emacs.jcs/scripts/clean.bat deleted file mode 100644 index f109e9b47..000000000 --- a/.emacs.jcs/scripts/clean.bat +++ /dev/null @@ -1,14 +0,0 @@ -@echo off -:: ======================================================================== -:: $File: clean.bat $ -:: $Date: 2019-05-30 13:05:46 $ -:: $Revision: $ -:: $Creator: Jen-Chieh Shen $ -:: $Notice: See LICENSE.txt for modification and distribution information -:: Copyright © 2019 by Shen, Jen-Chieh $ -:: ======================================================================== - - -cd .. - -del /s *.elc diff --git a/.emacs.jcs/scripts/clean.sh b/.emacs.jcs/scripts/clean.sh deleted file mode 100644 index 197eda727..000000000 --- a/.emacs.jcs/scripts/clean.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# ======================================================================== -# $File: clean.sh $ -# $Date: 2019-05-30 13:06:46 $ -# $Revision: $ -# $Creator: Jen-Chieh Shen $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © 2019 by Shen, Jen-Chieh $ -# ======================================================================== - - -cd .. - -find . -name "*.elc" -type f -delete diff --git a/.emacs.jcs/scripts/compile.bat b/.emacs.jcs/scripts/compile.bat deleted file mode 100644 index ac4f09fb8..000000000 --- a/.emacs.jcs/scripts/compile.bat +++ /dev/null @@ -1,14 +0,0 @@ -@echo off -:: ======================================================================== -:: $File: compile.bat $ -:: $Date: 2019-05-30 11:28:58 $ -:: $Revision: $ -:: $Creator: Jen-Chieh Shen $ -:: $Notice: See LICENSE.txt for modification and distribution information -:: Copyright © 2019 by Shen, Jen-Chieh $ -:: ======================================================================== - - -cd .. - -emacs --batch --eval "(byte-recompile-directory \"./\" 0)" diff --git a/.emacs.jcs/scripts/compile.sh b/.emacs.jcs/scripts/compile.sh deleted file mode 100644 index 3385d1e49..000000000 --- a/.emacs.jcs/scripts/compile.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# ======================================================================== -# $File: compile.sh $ -# $Date: 2019-05-30 11:34:01 $ -# $Revision: $ -# $Creator: Jen-Chieh Shen $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © 2019 by Shen, Jen-Chieh $ -# ======================================================================== - - -cd .. - -emacs --batch --eval "(byte-recompile-directory \"./\" 0)" diff --git a/.gitignore b/.gitignore index bbcf3fd08..16b019753 100644 --- a/.gitignore +++ b/.gitignore @@ -1,38 +1,90 @@ +*.bak +*.data +*.db +*.elc +*.log +*.sqlite +*.tmp +*bak/ .DS_Store -*~ -*.*~ -\#* -.\#* -.local/ +.cache/ +.cask/ +.dap-* .extension/ -*.cache* -*.log -/modules/private -test/.local*/ -test/result +.vscode/ +/.agignore +/.elfeed +/.emacs*.desktop +/.emacs*.desktop.lock +/.emacs-buffers +/.last-package-update-day +/.lsp-session* +/.markdown-preview.html +/.mc-lists.el +/.org-id-locations +/.pdf-view-restore +/.persistent-scratch +/.rgignore + +# tags +/GPATH +/GRTAGS +/GTAGS +/TAGS -# emacs tempfiles that shouldn't be there -.dap-breakpoints -.org-id-locations -.tern-port -.yas-compiled-snippets.el +/ac-comphist.dat +/amx-items +/bookmarks +/company-statistics-cache.el +/custom-post.el +/custom.el +/history +/nov-places +/package-quickstart.el +/places +/projectile-bookmarks.eld +/projectile.cache +/projects +/recentf +/scratch +/smex-items +/tramp +README.html +anaconda-mode/ auto-save-list/ -cask/ -ede-projects.el -elpa/ +cnfonts/ +devdocs-browser/ +devdocs/ +eclipse.jdt.ls/ eln-cache/ -network-security.data -places -semanticdb +elpa-devel/ +elpa/ +emojis/ +eshell/ +flycheck_*.el* +games/ +ido.* +image-dired/ +images/ +irony/ +librime/ +magithub/ +mspyls/ +newsticker/ +persistent-scratch/ +persp-confs/ +rcirc-log/ +request/ +rime/ +rust-playground/ server/ -smex-items -tramp +session* +snippets/ +thumbs/ +tldr/ +tmp* transient/ +tutorial/ +url/ var/ - -# compiled files -*.elc -*.lib -*.fas -*.dat -*.eld +workspace/ diff --git a/.emacs.jcs/banner/logo.png b/banners/logo.png similarity index 100% rename from .emacs.jcs/banner/logo.png rename to banners/logo.png diff --git a/.emacs.jcs/banner/sink.txt b/banners/sink.txt similarity index 100% rename from .emacs.jcs/banner/sink.txt rename to banners/sink.txt diff --git a/.emacs.jcs/banner/sink_black.png b/banners/sink_black.png similarity index 100% rename from .emacs.jcs/banner/sink_black.png rename to banners/sink_black.png diff --git a/.emacs.jcs/banner/sink_white.png b/banners/sink_white.png similarity index 100% rename from .emacs.jcs/banner/sink_white.png rename to banners/sink_white.png diff --git a/scripts/copy_config.bat b/bin/copy_config.bat similarity index 100% rename from scripts/copy_config.bat rename to bin/copy_config.bat diff --git a/scripts/copy_config.sh b/bin/copy_config.sh similarity index 100% rename from scripts/copy_config.sh rename to bin/copy_config.sh diff --git a/scripts/install.bat b/bin/install.bat similarity index 100% rename from scripts/install.bat rename to bin/install.bat diff --git a/scripts/install.sh b/bin/install.sh similarity index 100% rename from scripts/install.sh rename to bin/install.sh diff --git a/scripts/open_emacs.bat b/bin/open_emacs.bat similarity index 100% rename from scripts/open_emacs.bat rename to bin/open_emacs.bat diff --git a/scripts/open_emacs.sh b/bin/open_emacs.sh similarity index 100% rename from scripts/open_emacs.sh rename to bin/open_emacs.sh diff --git a/.emacs.jcs/func/jcs-buffer-menu.el b/core/func/jcs-buffer-menu.el similarity index 100% rename from .emacs.jcs/func/jcs-buffer-menu.el rename to core/func/jcs-buffer-menu.el diff --git a/.emacs.jcs/func/jcs-comment.el b/core/func/jcs-comment.el similarity index 100% rename from .emacs.jcs/func/jcs-comment.el rename to core/func/jcs-comment.el diff --git a/.emacs.jcs/func/jcs-company.el b/core/func/jcs-company.el similarity index 100% rename from .emacs.jcs/func/jcs-company.el rename to core/func/jcs-company.el diff --git a/.emacs.jcs/func/jcs-dashboard.el b/core/func/jcs-dashboard.el similarity index 100% rename from .emacs.jcs/func/jcs-dashboard.el rename to core/func/jcs-dashboard.el diff --git a/.emacs.jcs/func/jcs-edit.el b/core/func/jcs-edit.el similarity index 100% rename from .emacs.jcs/func/jcs-edit.el rename to core/func/jcs-edit.el diff --git a/.emacs.jcs/func/jcs-frame.el b/core/func/jcs-frame.el similarity index 100% rename from .emacs.jcs/func/jcs-frame.el rename to core/func/jcs-frame.el diff --git a/.emacs.jcs/func/jcs-ivy.el b/core/func/jcs-ivy.el similarity index 100% rename from .emacs.jcs/func/jcs-ivy.el rename to core/func/jcs-ivy.el diff --git a/.emacs.jcs/func/jcs-lsp.el b/core/func/jcs-lsp.el similarity index 100% rename from .emacs.jcs/func/jcs-lsp.el rename to core/func/jcs-lsp.el diff --git a/.emacs.jcs/func/jcs-minibuf.el b/core/func/jcs-minibuf.el similarity index 100% rename from .emacs.jcs/func/jcs-minibuf.el rename to core/func/jcs-minibuf.el diff --git a/.emacs.jcs/func/jcs-mode-line.el b/core/func/jcs-mode-line.el similarity index 100% rename from .emacs.jcs/func/jcs-mode-line.el rename to core/func/jcs-mode-line.el diff --git a/.emacs.jcs/func/jcs-nav.el b/core/func/jcs-nav.el similarity index 100% rename from .emacs.jcs/func/jcs-nav.el rename to core/func/jcs-nav.el diff --git a/.emacs.jcs/func/jcs-revbuf.el b/core/func/jcs-revbuf.el similarity index 100% rename from .emacs.jcs/func/jcs-revbuf.el rename to core/func/jcs-revbuf.el diff --git a/.emacs.jcs/func/jcs-savbuf.el b/core/func/jcs-savbuf.el similarity index 100% rename from .emacs.jcs/func/jcs-savbuf.el rename to core/func/jcs-savbuf.el diff --git a/.emacs.jcs/func/jcs-shell.el b/core/func/jcs-shell.el similarity index 100% rename from .emacs.jcs/func/jcs-shell.el rename to core/func/jcs-shell.el diff --git a/.emacs.jcs/func/jcs-undo.el b/core/func/jcs-undo.el similarity index 100% rename from .emacs.jcs/func/jcs-undo.el rename to core/func/jcs-undo.el diff --git a/.emacs.jcs/func/jcs-util.el b/core/func/jcs-util.el similarity index 100% rename from .emacs.jcs/func/jcs-util.el rename to core/func/jcs-util.el diff --git a/.emacs.jcs/func/jcs-vs.el b/core/func/jcs-vs.el similarity index 100% rename from .emacs.jcs/func/jcs-vs.el rename to core/func/jcs-vs.el diff --git a/.emacs.jcs/func/jcs-web.el b/core/func/jcs-web.el similarity index 100% rename from .emacs.jcs/func/jcs-web.el rename to core/func/jcs-web.el diff --git a/.emacs.jcs/func/jcs-window.el b/core/func/jcs-window.el similarity index 100% rename from .emacs.jcs/func/jcs-window.el rename to core/func/jcs-window.el diff --git a/.emacs.jcs/jcs-config.el b/core/jcs-config.el similarity index 100% rename from .emacs.jcs/jcs-config.el rename to core/jcs-config.el diff --git a/.emacs.jcs/jcs-dev.el b/core/jcs-dev.el similarity index 100% rename from .emacs.jcs/jcs-dev.el rename to core/jcs-dev.el diff --git a/.emacs.jcs/jcs-env.el b/core/jcs-env.el similarity index 100% rename from .emacs.jcs/jcs-env.el rename to core/jcs-env.el diff --git a/.emacs.jcs/jcs-face.el b/core/jcs-face.el similarity index 100% rename from .emacs.jcs/jcs-face.el rename to core/jcs-face.el diff --git a/.emacs.jcs/jcs-file.el b/core/jcs-file.el similarity index 100% rename from .emacs.jcs/jcs-file.el rename to core/jcs-file.el diff --git a/.emacs.jcs/jcs-function.el b/core/jcs-function.el similarity index 100% rename from .emacs.jcs/jcs-function.el rename to core/jcs-function.el diff --git a/.emacs.jcs/jcs-hook.el b/core/jcs-hook.el similarity index 100% rename from .emacs.jcs/jcs-hook.el rename to core/jcs-hook.el diff --git a/.emacs.jcs/jcs-key.el b/core/jcs-key.el similarity index 100% rename from .emacs.jcs/jcs-key.el rename to core/jcs-key.el diff --git a/.emacs.jcs/jcs-log.el b/core/jcs-log.el similarity index 100% rename from .emacs.jcs/jcs-log.el rename to core/jcs-log.el diff --git a/.emacs.jcs/jcs-mode.el b/core/jcs-mode.el similarity index 100% rename from .emacs.jcs/jcs-mode.el rename to core/jcs-mode.el diff --git a/.emacs.jcs/jcs-package.el b/core/jcs-package.el similarity index 100% rename from .emacs.jcs/jcs-package.el rename to core/jcs-package.el diff --git a/.emacs.jcs/jcs-plugin.el b/core/jcs-plugin.el similarity index 100% rename from .emacs.jcs/jcs-plugin.el rename to core/jcs-plugin.el diff --git a/.emacs.jcs/jcs-project.el b/core/jcs-project.el similarity index 100% rename from .emacs.jcs/jcs-project.el rename to core/jcs-project.el diff --git a/.emacs.jcs/jcs-template.el b/core/jcs-template.el similarity index 100% rename from .emacs.jcs/jcs-template.el rename to core/jcs-template.el diff --git a/.emacs.jcs/jcs-theme.el b/core/jcs-theme.el similarity index 100% rename from .emacs.jcs/jcs-theme.el rename to core/jcs-theme.el diff --git a/.emacs.jcs/mode/jcs-actionscript-mode.el b/core/mode/jcs-actionscript-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-actionscript-mode.el rename to core/mode/jcs-actionscript-mode.el diff --git a/.emacs.jcs/mode/jcs-ada-mode.el b/core/mode/jcs-ada-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-ada-mode.el rename to core/mode/jcs-ada-mode.el diff --git a/.emacs.jcs/mode/jcs-agda-mode.el b/core/mode/jcs-agda-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-agda-mode.el rename to core/mode/jcs-agda-mode.el diff --git a/.emacs.jcs/mode/jcs-applescript-mode.el b/core/mode/jcs-applescript-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-applescript-mode.el rename to core/mode/jcs-applescript-mode.el diff --git a/.emacs.jcs/mode/jcs-asm-mode.el b/core/mode/jcs-asm-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-asm-mode.el rename to core/mode/jcs-asm-mode.el diff --git a/.emacs.jcs/mode/jcs-basic-mode.el b/core/mode/jcs-basic-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-basic-mode.el rename to core/mode/jcs-basic-mode.el diff --git a/.emacs.jcs/mode/jcs-batch-mode.el b/core/mode/jcs-batch-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-batch-mode.el rename to core/mode/jcs-batch-mode.el diff --git a/.emacs.jcs/mode/jcs-c++-mode.el b/core/mode/jcs-c++-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-c++-mode.el rename to core/mode/jcs-c++-mode.el diff --git a/.emacs.jcs/mode/jcs-c-mode.el b/core/mode/jcs-c-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-c-mode.el rename to core/mode/jcs-c-mode.el diff --git a/.emacs.jcs/mode/jcs-cc-mode.el b/core/mode/jcs-cc-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-cc-mode.el rename to core/mode/jcs-cc-mode.el diff --git a/.emacs.jcs/mode/jcs-clojure-mode.el b/core/mode/jcs-clojure-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-clojure-mode.el rename to core/mode/jcs-clojure-mode.el diff --git a/.emacs.jcs/mode/jcs-cmake-mode.el b/core/mode/jcs-cmake-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-cmake-mode.el rename to core/mode/jcs-cmake-mode.el diff --git a/.emacs.jcs/mode/jcs-cobol-mode.el b/core/mode/jcs-cobol-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-cobol-mode.el rename to core/mode/jcs-cobol-mode.el diff --git a/.emacs.jcs/mode/jcs-csharp-mode.el b/core/mode/jcs-csharp-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-csharp-mode.el rename to core/mode/jcs-csharp-mode.el diff --git a/.emacs.jcs/mode/jcs-css-mode.el b/core/mode/jcs-css-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-css-mode.el rename to core/mode/jcs-css-mode.el diff --git a/.emacs.jcs/mode/jcs-dart-mode.el b/core/mode/jcs-dart-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-dart-mode.el rename to core/mode/jcs-dart-mode.el diff --git a/.emacs.jcs/mode/jcs-dockerfile-mode.el b/core/mode/jcs-dockerfile-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-dockerfile-mode.el rename to core/mode/jcs-dockerfile-mode.el diff --git a/.emacs.jcs/mode/jcs-elixir-mode.el b/core/mode/jcs-elixir-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-elixir-mode.el rename to core/mode/jcs-elixir-mode.el diff --git a/.emacs.jcs/mode/jcs-elm-mode.el b/core/mode/jcs-elm-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-elm-mode.el rename to core/mode/jcs-elm-mode.el diff --git a/.emacs.jcs/mode/jcs-erlang-mode.el b/core/mode/jcs-erlang-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-erlang-mode.el rename to core/mode/jcs-erlang-mode.el diff --git a/.emacs.jcs/mode/jcs-fountain-mode.el b/core/mode/jcs-fountain-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-fountain-mode.el rename to core/mode/jcs-fountain-mode.el diff --git a/.emacs.jcs/mode/jcs-fsharp-mode.el b/core/mode/jcs-fsharp-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-fsharp-mode.el rename to core/mode/jcs-fsharp-mode.el diff --git a/.emacs.jcs/mode/jcs-gdscript-mode.el b/core/mode/jcs-gdscript-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-gdscript-mode.el rename to core/mode/jcs-gdscript-mode.el diff --git a/.emacs.jcs/mode/jcs-git-mode.el b/core/mode/jcs-git-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-git-mode.el rename to core/mode/jcs-git-mode.el diff --git a/.emacs.jcs/mode/jcs-go-mode.el b/core/mode/jcs-go-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-go-mode.el rename to core/mode/jcs-go-mode.el diff --git a/.emacs.jcs/mode/jcs-groovy-mode.el b/core/mode/jcs-groovy-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-groovy-mode.el rename to core/mode/jcs-groovy-mode.el diff --git a/.emacs.jcs/mode/jcs-haskell-mode.el b/core/mode/jcs-haskell-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-haskell-mode.el rename to core/mode/jcs-haskell-mode.el diff --git a/.emacs.jcs/mode/jcs-haxe-mode.el b/core/mode/jcs-haxe-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-haxe-mode.el rename to core/mode/jcs-haxe-mode.el diff --git a/.emacs.jcs/mode/jcs-ini-mode.el b/core/mode/jcs-ini-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-ini-mode.el rename to core/mode/jcs-ini-mode.el diff --git a/.emacs.jcs/mode/jcs-java-mode.el b/core/mode/jcs-java-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-java-mode.el rename to core/mode/jcs-java-mode.el diff --git a/.emacs.jcs/mode/jcs-jayces-mode.el b/core/mode/jcs-jayces-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-jayces-mode.el rename to core/mode/jcs-jayces-mode.el diff --git a/.emacs.jcs/mode/jcs-jenkinsfile-mode.el b/core/mode/jcs-jenkinsfile-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-jenkinsfile-mode.el rename to core/mode/jcs-jenkinsfile-mode.el diff --git a/.emacs.jcs/mode/jcs-js-mode.el b/core/mode/jcs-js-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-js-mode.el rename to core/mode/jcs-js-mode.el diff --git a/.emacs.jcs/mode/jcs-json-mode.el b/core/mode/jcs-json-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-json-mode.el rename to core/mode/jcs-json-mode.el diff --git a/.emacs.jcs/mode/jcs-jsx-mode.el b/core/mode/jcs-jsx-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-jsx-mode.el rename to core/mode/jcs-jsx-mode.el diff --git a/.emacs.jcs/mode/jcs-kotlin-mode.el b/core/mode/jcs-kotlin-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-kotlin-mode.el rename to core/mode/jcs-kotlin-mode.el diff --git a/.emacs.jcs/mode/jcs-less-css-mode.el b/core/mode/jcs-less-css-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-less-css-mode.el rename to core/mode/jcs-less-css-mode.el diff --git a/.emacs.jcs/mode/jcs-lua-mode.el b/core/mode/jcs-lua-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-lua-mode.el rename to core/mode/jcs-lua-mode.el diff --git a/.emacs.jcs/mode/jcs-make-mode.el b/core/mode/jcs-make-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-make-mode.el rename to core/mode/jcs-make-mode.el diff --git a/.emacs.jcs/mode/jcs-markdown-mode.el b/core/mode/jcs-markdown-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-markdown-mode.el rename to core/mode/jcs-markdown-mode.el diff --git a/.emacs.jcs/mode/jcs-message-mode.el b/core/mode/jcs-message-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-message-mode.el rename to core/mode/jcs-message-mode.el diff --git a/.emacs.jcs/mode/jcs-nginx-mode.el b/core/mode/jcs-nginx-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-nginx-mode.el rename to core/mode/jcs-nginx-mode.el diff --git a/.emacs.jcs/mode/jcs-nix-mode.el b/core/mode/jcs-nix-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-nix-mode.el rename to core/mode/jcs-nix-mode.el diff --git a/.emacs.jcs/mode/jcs-objc-mode.el b/core/mode/jcs-objc-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-objc-mode.el rename to core/mode/jcs-objc-mode.el diff --git a/.emacs.jcs/mode/jcs-opascal-mode.el b/core/mode/jcs-opascal-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-opascal-mode.el rename to core/mode/jcs-opascal-mode.el diff --git a/.emacs.jcs/mode/jcs-org-mode.el b/core/mode/jcs-org-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-org-mode.el rename to core/mode/jcs-org-mode.el diff --git a/.emacs.jcs/mode/jcs-pascal-mode.el b/core/mode/jcs-pascal-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-pascal-mode.el rename to core/mode/jcs-pascal-mode.el diff --git a/.emacs.jcs/mode/jcs-perl-mode.el b/core/mode/jcs-perl-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-perl-mode.el rename to core/mode/jcs-perl-mode.el diff --git a/.emacs.jcs/mode/jcs-powershell-mode.el b/core/mode/jcs-powershell-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-powershell-mode.el rename to core/mode/jcs-powershell-mode.el diff --git a/.emacs.jcs/mode/jcs-processing-mode.el b/core/mode/jcs-processing-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-processing-mode.el rename to core/mode/jcs-processing-mode.el diff --git a/.emacs.jcs/mode/jcs-properties-mode.el b/core/mode/jcs-properties-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-properties-mode.el rename to core/mode/jcs-properties-mode.el diff --git a/.emacs.jcs/mode/jcs-python-mode.el b/core/mode/jcs-python-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-python-mode.el rename to core/mode/jcs-python-mode.el diff --git a/.emacs.jcs/mode/jcs-r-mode.el b/core/mode/jcs-r-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-r-mode.el rename to core/mode/jcs-r-mode.el diff --git a/.emacs.jcs/mode/jcs-re-builder-mode.el b/core/mode/jcs-re-builder-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-re-builder-mode.el rename to core/mode/jcs-re-builder-mode.el diff --git a/.emacs.jcs/mode/jcs-ruby-mode.el b/core/mode/jcs-ruby-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-ruby-mode.el rename to core/mode/jcs-ruby-mode.el diff --git a/.emacs.jcs/mode/jcs-rust-mode.el b/core/mode/jcs-rust-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-rust-mode.el rename to core/mode/jcs-rust-mode.el diff --git a/.emacs.jcs/mode/jcs-sass-mode.el b/core/mode/jcs-sass-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-sass-mode.el rename to core/mode/jcs-sass-mode.el diff --git a/.emacs.jcs/mode/jcs-scala-mode.el b/core/mode/jcs-scala-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-scala-mode.el rename to core/mode/jcs-scala-mode.el diff --git a/.emacs.jcs/mode/jcs-scss-mode.el b/core/mode/jcs-scss-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-scss-mode.el rename to core/mode/jcs-scss-mode.el diff --git a/.emacs.jcs/mode/jcs-sh-mode.el b/core/mode/jcs-sh-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-sh-mode.el rename to core/mode/jcs-sh-mode.el diff --git a/.emacs.jcs/mode/jcs-shader-mode.el b/core/mode/jcs-shader-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-shader-mode.el rename to core/mode/jcs-shader-mode.el diff --git a/.emacs.jcs/mode/jcs-shell-mode.el b/core/mode/jcs-shell-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-shell-mode.el rename to core/mode/jcs-shell-mode.el diff --git a/.emacs.jcs/mode/jcs-snippet-mode.el b/core/mode/jcs-snippet-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-snippet-mode.el rename to core/mode/jcs-snippet-mode.el diff --git a/.emacs.jcs/mode/jcs-sql-mode.el b/core/mode/jcs-sql-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-sql-mode.el rename to core/mode/jcs-sql-mode.el diff --git a/.emacs.jcs/mode/jcs-swift-mode.el b/core/mode/jcs-swift-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-swift-mode.el rename to core/mode/jcs-swift-mode.el diff --git a/.emacs.jcs/mode/jcs-typescript-mode.el b/core/mode/jcs-typescript-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-typescript-mode.el rename to core/mode/jcs-typescript-mode.el diff --git a/.emacs.jcs/mode/jcs-verilog-mode.el b/core/mode/jcs-verilog-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-verilog-mode.el rename to core/mode/jcs-verilog-mode.el diff --git a/.emacs.jcs/mode/jcs-vimscript-mode.el b/core/mode/jcs-vimscript-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-vimscript-mode.el rename to core/mode/jcs-vimscript-mode.el diff --git a/.emacs.jcs/mode/jcs-vue-mode.el b/core/mode/jcs-vue-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-vue-mode.el rename to core/mode/jcs-vue-mode.el diff --git a/.emacs.jcs/mode/jcs-web-mode.el b/core/mode/jcs-web-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-web-mode.el rename to core/mode/jcs-web-mode.el diff --git a/.emacs.jcs/mode/jcs-xml-mode.el b/core/mode/jcs-xml-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-xml-mode.el rename to core/mode/jcs-xml-mode.el diff --git a/.emacs.jcs/mode/jcs-yaml-mode.el b/core/mode/jcs-yaml-mode.el similarity index 100% rename from .emacs.jcs/mode/jcs-yaml-mode.el rename to core/mode/jcs-yaml-mode.el diff --git a/.emacs.jcs/data/algorithm/Array Sorting Algorithms.png b/data/algorithm/Array Sorting Algorithms.png similarity index 100% rename from .emacs.jcs/data/algorithm/Array Sorting Algorithms.png rename to data/algorithm/Array Sorting Algorithms.png diff --git a/.emacs.jcs/data/algorithm/Big-O Complexity Chart.png b/data/algorithm/Big-O Complexity Chart.png similarity index 100% rename from .emacs.jcs/data/algorithm/Big-O Complexity Chart.png rename to data/algorithm/Big-O Complexity Chart.png diff --git a/.emacs.jcs/data/algorithm/Common Data Structure Operations.png b/data/algorithm/Common Data Structure Operations.png similarity index 100% rename from .emacs.jcs/data/algorithm/Common Data Structure Operations.png rename to data/algorithm/Common Data Structure Operations.png diff --git a/.emacs.jcs/data/algorithm/cheat-sheet.html b/data/algorithm/cheat-sheet.html similarity index 100% rename from .emacs.jcs/data/algorithm/cheat-sheet.html rename to data/algorithm/cheat-sheet.html diff --git a/.emacs.jcs/data/charset/alt-code.txt b/data/charset/alt-code.txt similarity index 100% rename from .emacs.jcs/data/charset/alt-code.txt rename to data/charset/alt-code.txt diff --git a/.emacs.jcs/data/charset/ascii.txt b/data/charset/ascii.txt similarity index 100% rename from .emacs.jcs/data/charset/ascii.txt rename to data/charset/ascii.txt diff --git a/.emacs.jcs/data/data-structure/cheat-sheet.txt b/data/data-structure/cheat-sheet.txt similarity index 100% rename from .emacs.jcs/data/data-structure/cheat-sheet.txt rename to data/data-structure/cheat-sheet.txt diff --git a/.emacs.d/early-init.el b/early-init.el similarity index 100% rename from .emacs.d/early-init.el rename to early-init.el diff --git a/.emacs.jcs/fonts/UbuntuMono-R.ttf b/fonts/UbuntuMono-R.ttf similarity index 100% rename from .emacs.jcs/fonts/UbuntuMono-R.ttf rename to fonts/UbuntuMono-R.ttf diff --git a/.emacs.jcs/fonts/clacon.ttf b/fonts/clacon.ttf similarity index 100% rename from .emacs.jcs/fonts/clacon.ttf rename to fonts/clacon.ttf diff --git a/.emacs.jcs/template/__changelog/keepachangelog.txt b/template/__changelog/keepachangelog.txt similarity index 100% rename from .emacs.jcs/template/__changelog/keepachangelog.txt rename to template/__changelog/keepachangelog.txt diff --git a/.emacs.jcs/template/__header/d_colon.txt b/template/__header/d_colon.txt similarity index 100% rename from .emacs.jcs/template/__header/d_colon.txt rename to template/__header/d_colon.txt diff --git a/.emacs.jcs/template/__header/d_dash.txt b/template/__header/d_dash.txt similarity index 100% rename from .emacs.jcs/template/__header/d_dash.txt rename to template/__header/d_dash.txt diff --git a/.emacs.jcs/template/__header/d_quote.txt b/template/__header/d_quote.txt similarity index 100% rename from .emacs.jcs/template/__header/d_quote.txt rename to template/__header/d_quote.txt diff --git a/.emacs.jcs/template/__header/d_semicolon.txt b/template/__header/d_semicolon.txt similarity index 100% rename from .emacs.jcs/template/__header/d_semicolon.txt rename to template/__header/d_semicolon.txt diff --git a/.emacs.jcs/template/__header/d_slash.txt b/template/__header/d_slash.txt similarity index 100% rename from .emacs.jcs/template/__header/d_slash.txt rename to template/__header/d_slash.txt diff --git a/.emacs.jcs/template/__header/global.txt b/template/__header/global.txt similarity index 100% rename from .emacs.jcs/template/__header/global.txt rename to template/__header/global.txt diff --git a/.emacs.jcs/template/__header/semicolon.txt b/template/__header/semicolon.txt similarity index 100% rename from .emacs.jcs/template/__header/semicolon.txt rename to template/__header/semicolon.txt diff --git a/.emacs.jcs/template/__header/sharp.txt b/template/__header/sharp.txt similarity index 100% rename from .emacs.jcs/template/__header/sharp.txt rename to template/__header/sharp.txt diff --git a/.emacs.jcs/template/__header/singlequote.txt b/template/__header/singlequote.txt similarity index 100% rename from .emacs.jcs/template/__header/singlequote.txt rename to template/__header/singlequote.txt diff --git a/.emacs.jcs/template/__header/t_slash.txt b/template/__header/t_slash.txt similarity index 100% rename from .emacs.jcs/template/__header/t_slash.txt rename to template/__header/t_slash.txt diff --git a/.emacs.jcs/template/__header/tag.txt b/template/__header/tag.txt similarity index 100% rename from .emacs.jcs/template/__header/tag.txt rename to template/__header/tag.txt diff --git a/.emacs.jcs/template/actionscript/default.txt b/template/actionscript/default.txt similarity index 100% rename from .emacs.jcs/template/actionscript/default.txt rename to template/actionscript/default.txt diff --git a/.emacs.jcs/template/ada/default.txt b/template/ada/default.txt similarity index 100% rename from .emacs.jcs/template/ada/default.txt rename to template/ada/default.txt diff --git a/.emacs.jcs/template/agda/default.txt b/template/agda/default.txt similarity index 100% rename from .emacs.jcs/template/agda/default.txt rename to template/agda/default.txt diff --git a/.emacs.jcs/template/applescript/default.txt b/template/applescript/default.txt similarity index 100% rename from .emacs.jcs/template/applescript/default.txt rename to template/applescript/default.txt diff --git a/.emacs.jcs/template/assembly/masm.txt b/template/assembly/masm.txt similarity index 100% rename from .emacs.jcs/template/assembly/masm.txt rename to template/assembly/masm.txt diff --git a/.emacs.jcs/template/assembly/nasm.txt b/template/assembly/nasm.txt similarity index 100% rename from .emacs.jcs/template/assembly/nasm.txt rename to template/assembly/nasm.txt diff --git a/.emacs.jcs/template/basic/default.txt b/template/basic/default.txt similarity index 100% rename from .emacs.jcs/template/basic/default.txt rename to template/basic/default.txt diff --git a/.emacs.jcs/template/batch/default.txt b/template/batch/default.txt similarity index 100% rename from .emacs.jcs/template/batch/default.txt rename to template/batch/default.txt diff --git a/.emacs.jcs/template/c++/header.txt b/template/c++/header.txt similarity index 100% rename from .emacs.jcs/template/c++/header.txt rename to template/c++/header.txt diff --git a/.emacs.jcs/template/c++/source.txt b/template/c++/source.txt similarity index 100% rename from .emacs.jcs/template/c++/source.txt rename to template/c++/source.txt diff --git a/.emacs.jcs/template/c++/unreal/actor-component/header.txt b/template/c++/unreal/actor-component/header.txt similarity index 100% rename from .emacs.jcs/template/c++/unreal/actor-component/header.txt rename to template/c++/unreal/actor-component/header.txt diff --git a/.emacs.jcs/template/c++/unreal/actor-component/source.txt b/template/c++/unreal/actor-component/source.txt similarity index 100% rename from .emacs.jcs/template/c++/unreal/actor-component/source.txt rename to template/c++/unreal/actor-component/source.txt diff --git a/.emacs.jcs/template/c++/unreal/actor/header.txt b/template/c++/unreal/actor/header.txt similarity index 100% rename from .emacs.jcs/template/c++/unreal/actor/header.txt rename to template/c++/unreal/actor/header.txt diff --git a/.emacs.jcs/template/c++/unreal/actor/source.txt b/template/c++/unreal/actor/source.txt similarity index 100% rename from .emacs.jcs/template/c++/unreal/actor/source.txt rename to template/c++/unreal/actor/source.txt diff --git a/.emacs.jcs/template/c/header.txt b/template/c/header.txt similarity index 100% rename from .emacs.jcs/template/c/header.txt rename to template/c/header.txt diff --git a/.emacs.jcs/template/c/source.txt b/template/c/source.txt similarity index 100% rename from .emacs.jcs/template/c/source.txt rename to template/c/source.txt diff --git a/.emacs.jcs/template/clojure/default.txt b/template/clojure/default.txt similarity index 100% rename from .emacs.jcs/template/clojure/default.txt rename to template/clojure/default.txt diff --git a/.emacs.jcs/template/cmake/default.txt b/template/cmake/default.txt similarity index 100% rename from .emacs.jcs/template/cmake/default.txt rename to template/cmake/default.txt diff --git a/.emacs.jcs/template/cobol/default.txt b/template/cobol/default.txt similarity index 100% rename from .emacs.jcs/template/cobol/default.txt rename to template/cobol/default.txt diff --git a/.emacs.jcs/template/csharp/default.txt b/template/csharp/default.txt similarity index 100% rename from .emacs.jcs/template/csharp/default.txt rename to template/csharp/default.txt diff --git a/.emacs.jcs/template/csharp/unity.txt b/template/csharp/unity.txt similarity index 100% rename from .emacs.jcs/template/csharp/unity.txt rename to template/csharp/unity.txt diff --git a/.emacs.jcs/template/css/default.txt b/template/css/default.txt similarity index 100% rename from .emacs.jcs/template/css/default.txt rename to template/css/default.txt diff --git a/.emacs.jcs/template/dart/default.txt b/template/dart/default.txt similarity index 100% rename from .emacs.jcs/template/dart/default.txt rename to template/dart/default.txt diff --git a/.emacs.jcs/template/elisp/default.txt b/template/elisp/default.txt similarity index 100% rename from .emacs.jcs/template/elisp/default.txt rename to template/elisp/default.txt diff --git a/.emacs.jcs/template/elixir/default.txt b/template/elixir/default.txt similarity index 100% rename from .emacs.jcs/template/elixir/default.txt rename to template/elixir/default.txt diff --git a/.emacs.jcs/template/elm/default.txt b/template/elm/default.txt similarity index 100% rename from .emacs.jcs/template/elm/default.txt rename to template/elm/default.txt diff --git a/.emacs.jcs/template/erlang/default.txt b/template/erlang/default.txt similarity index 100% rename from .emacs.jcs/template/erlang/default.txt rename to template/erlang/default.txt diff --git a/.emacs.jcs/template/fountain/default.txt b/template/fountain/default.txt similarity index 100% rename from .emacs.jcs/template/fountain/default.txt rename to template/fountain/default.txt diff --git a/.emacs.jcs/template/fsharp/default.txt b/template/fsharp/default.txt similarity index 100% rename from .emacs.jcs/template/fsharp/default.txt rename to template/fsharp/default.txt diff --git a/.emacs.jcs/template/gdscript/default.txt b/template/gdscript/default.txt similarity index 100% rename from .emacs.jcs/template/gdscript/default.txt rename to template/gdscript/default.txt diff --git a/.emacs.jcs/template/go/default.txt b/template/go/default.txt similarity index 100% rename from .emacs.jcs/template/go/default.txt rename to template/go/default.txt diff --git a/.emacs.jcs/template/groovy/default.txt b/template/groovy/default.txt similarity index 100% rename from .emacs.jcs/template/groovy/default.txt rename to template/groovy/default.txt diff --git a/.emacs.jcs/template/haskell/default.txt b/template/haskell/default.txt similarity index 100% rename from .emacs.jcs/template/haskell/default.txt rename to template/haskell/default.txt diff --git a/.emacs.jcs/template/haxe/default.txt b/template/haxe/default.txt similarity index 100% rename from .emacs.jcs/template/haxe/default.txt rename to template/haxe/default.txt diff --git a/.emacs.jcs/template/java/default.txt b/template/java/default.txt similarity index 100% rename from .emacs.jcs/template/java/default.txt rename to template/java/default.txt diff --git a/.emacs.jcs/template/jayces/default.txt b/template/jayces/default.txt similarity index 100% rename from .emacs.jcs/template/jayces/default.txt rename to template/jayces/default.txt diff --git a/.emacs.jcs/template/jenkins/default.txt b/template/jenkins/default.txt similarity index 100% rename from .emacs.jcs/template/jenkins/default.txt rename to template/jenkins/default.txt diff --git a/.emacs.jcs/template/js/default.txt b/template/js/default.txt similarity index 100% rename from .emacs.jcs/template/js/default.txt rename to template/js/default.txt diff --git a/.emacs.jcs/template/jsx/default.txt b/template/jsx/default.txt similarity index 100% rename from .emacs.jcs/template/jsx/default.txt rename to template/jsx/default.txt diff --git a/.emacs.jcs/template/jsx/react/js.txt b/template/jsx/react/js.txt similarity index 100% rename from .emacs.jcs/template/jsx/react/js.txt rename to template/jsx/react/js.txt diff --git a/.emacs.jcs/template/jsx/react/native.txt b/template/jsx/react/native.txt similarity index 100% rename from .emacs.jcs/template/jsx/react/native.txt rename to template/jsx/react/native.txt diff --git a/.emacs.jcs/template/kotlin/default.txt b/template/kotlin/default.txt similarity index 100% rename from .emacs.jcs/template/kotlin/default.txt rename to template/kotlin/default.txt diff --git a/.emacs.jcs/template/less/default.txt b/template/less/default.txt similarity index 100% rename from .emacs.jcs/template/less/default.txt rename to template/less/default.txt diff --git a/.emacs.jcs/template/lisp/default.txt b/template/lisp/default.txt similarity index 100% rename from .emacs.jcs/template/lisp/default.txt rename to template/lisp/default.txt diff --git a/.emacs.jcs/template/lua/default.txt b/template/lua/default.txt similarity index 100% rename from .emacs.jcs/template/lua/default.txt rename to template/lua/default.txt diff --git a/.emacs.jcs/template/makefile/cc/app.txt b/template/makefile/cc/app.txt similarity index 100% rename from .emacs.jcs/template/makefile/cc/app.txt rename to template/makefile/cc/app.txt diff --git a/.emacs.jcs/template/makefile/cc/lib.txt b/template/makefile/cc/lib.txt similarity index 100% rename from .emacs.jcs/template/makefile/cc/lib.txt rename to template/makefile/cc/lib.txt diff --git a/.emacs.jcs/template/makefile/java/app.txt b/template/makefile/java/app.txt similarity index 100% rename from .emacs.jcs/template/makefile/java/app.txt rename to template/makefile/java/app.txt diff --git a/.emacs.jcs/template/makefile/java/lib.txt b/template/makefile/java/lib.txt similarity index 100% rename from .emacs.jcs/template/makefile/java/lib.txt rename to template/makefile/java/lib.txt diff --git a/.emacs.jcs/template/makefile/python/app.txt b/template/makefile/python/app.txt similarity index 100% rename from .emacs.jcs/template/makefile/python/app.txt rename to template/makefile/python/app.txt diff --git a/.emacs.jcs/template/makefile/python/lib.txt b/template/makefile/python/lib.txt similarity index 100% rename from .emacs.jcs/template/makefile/python/lib.txt rename to template/makefile/python/lib.txt diff --git a/.emacs.jcs/template/markdown/default.txt b/template/markdown/default.txt similarity index 100% rename from .emacs.jcs/template/markdown/default.txt rename to template/markdown/default.txt diff --git a/.emacs.jcs/template/nginx/default.txt b/template/nginx/default.txt similarity index 100% rename from .emacs.jcs/template/nginx/default.txt rename to template/nginx/default.txt diff --git a/.emacs.jcs/template/nix/default.txt b/template/nix/default.txt similarity index 100% rename from .emacs.jcs/template/nix/default.txt rename to template/nix/default.txt diff --git a/.emacs.jcs/template/objc/header.txt b/template/objc/header.txt similarity index 100% rename from .emacs.jcs/template/objc/header.txt rename to template/objc/header.txt diff --git a/.emacs.jcs/template/objc/source.txt b/template/objc/source.txt similarity index 100% rename from .emacs.jcs/template/objc/source.txt rename to template/objc/source.txt diff --git a/.emacs.jcs/template/opascal/default.txt b/template/opascal/default.txt similarity index 100% rename from .emacs.jcs/template/opascal/default.txt rename to template/opascal/default.txt diff --git a/.emacs.jcs/template/pascal/default.txt b/template/pascal/default.txt similarity index 100% rename from .emacs.jcs/template/pascal/default.txt rename to template/pascal/default.txt diff --git a/.emacs.jcs/template/perl/default.txt b/template/perl/default.txt similarity index 100% rename from .emacs.jcs/template/perl/default.txt rename to template/perl/default.txt diff --git a/.emacs.jcs/template/powershell/default.txt b/template/powershell/default.txt similarity index 100% rename from .emacs.jcs/template/powershell/default.txt rename to template/powershell/default.txt diff --git a/.emacs.jcs/template/processing/default.txt b/template/processing/default.txt similarity index 100% rename from .emacs.jcs/template/processing/default.txt rename to template/processing/default.txt diff --git a/.emacs.jcs/template/python/class.txt b/template/python/class.txt similarity index 100% rename from .emacs.jcs/template/python/class.txt rename to template/python/class.txt diff --git a/.emacs.jcs/template/python/default.txt b/template/python/default.txt similarity index 100% rename from .emacs.jcs/template/python/default.txt rename to template/python/default.txt diff --git a/.emacs.jcs/template/r/default.txt b/template/r/default.txt similarity index 100% rename from .emacs.jcs/template/r/default.txt rename to template/r/default.txt diff --git a/.emacs.jcs/template/ruby/default.txt b/template/ruby/default.txt similarity index 100% rename from .emacs.jcs/template/ruby/default.txt rename to template/ruby/default.txt diff --git a/.emacs.jcs/template/rust/default.txt b/template/rust/default.txt similarity index 100% rename from .emacs.jcs/template/rust/default.txt rename to template/rust/default.txt diff --git a/.emacs.jcs/template/sass/default.txt b/template/sass/default.txt similarity index 100% rename from .emacs.jcs/template/sass/default.txt rename to template/sass/default.txt diff --git a/.emacs.jcs/template/scala/default.txt b/template/scala/default.txt similarity index 100% rename from .emacs.jcs/template/scala/default.txt rename to template/scala/default.txt diff --git a/.emacs.jcs/template/scss/default.txt b/template/scss/default.txt similarity index 100% rename from .emacs.jcs/template/scss/default.txt rename to template/scss/default.txt diff --git a/.emacs.jcs/template/sh/default.txt b/template/sh/default.txt similarity index 100% rename from .emacs.jcs/template/sh/default.txt rename to template/sh/default.txt diff --git a/.emacs.jcs/template/shader/default_glsl.txt b/template/shader/default_glsl.txt similarity index 100% rename from .emacs.jcs/template/shader/default_glsl.txt rename to template/shader/default_glsl.txt diff --git a/.emacs.jcs/template/shader/default_shader.txt b/template/shader/default_shader.txt similarity index 100% rename from .emacs.jcs/template/shader/default_shader.txt rename to template/shader/default_shader.txt diff --git a/.emacs.jcs/template/sql/default.txt b/template/sql/default.txt similarity index 100% rename from .emacs.jcs/template/sql/default.txt rename to template/sql/default.txt diff --git a/.emacs.jcs/template/swift/default.txt b/template/swift/default.txt similarity index 100% rename from .emacs.jcs/template/swift/default.txt rename to template/swift/default.txt diff --git a/.emacs.jcs/template/template_config.properties b/template/template_config.properties similarity index 100% rename from .emacs.jcs/template/template_config.properties rename to template/template_config.properties diff --git a/.emacs.jcs/template/text/default.txt b/template/text/default.txt similarity index 100% rename from .emacs.jcs/template/text/default.txt rename to template/text/default.txt diff --git a/.emacs.jcs/template/typescript/cocos_creator.txt b/template/typescript/cocos_creator.txt similarity index 100% rename from .emacs.jcs/template/typescript/cocos_creator.txt rename to template/typescript/cocos_creator.txt diff --git a/.emacs.jcs/template/typescript/default.txt b/template/typescript/default.txt similarity index 100% rename from .emacs.jcs/template/typescript/default.txt rename to template/typescript/default.txt diff --git a/.emacs.jcs/template/verilog/verilog_template.txt b/template/verilog/verilog_template.txt similarity index 100% rename from .emacs.jcs/template/verilog/verilog_template.txt rename to template/verilog/verilog_template.txt diff --git a/.emacs.jcs/template/vimscript/default.txt b/template/vimscript/default.txt similarity index 100% rename from .emacs.jcs/template/vimscript/default.txt rename to template/vimscript/default.txt diff --git a/.emacs.jcs/template/vue/default.txt b/template/vue/default.txt similarity index 100% rename from .emacs.jcs/template/vue/default.txt rename to template/vue/default.txt diff --git a/.emacs.jcs/template/web/default_html.txt b/template/web/default_html.txt similarity index 100% rename from .emacs.jcs/template/web/default_html.txt rename to template/web/default_html.txt diff --git a/.emacs.jcs/template/web/default_php.txt b/template/web/default_php.txt similarity index 100% rename from .emacs.jcs/template/web/default_php.txt rename to template/web/default_php.txt diff --git a/.emacs.jcs/template/xml/default.txt b/template/xml/default.txt similarity index 100% rename from .emacs.jcs/template/xml/default.txt rename to template/xml/default.txt diff --git a/.emacs.jcs/template/yaml/default.txt b/template/yaml/default.txt similarity index 100% rename from .emacs.jcs/template/yaml/default.txt rename to template/yaml/default.txt From c9d340c6ffed34aa46c56950986a4ab957216898 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:03:47 +0800 Subject: [PATCH 02/51] Move build --- build.el => bin/build.el | 0 bin/copy_config.bat | 4 ---- bin/copy_config.sh | 3 --- bin/open_emacs.bat | 15 --------------- bin/open_emacs.sh | 15 --------------- 5 files changed, 37 deletions(-) rename build.el => bin/build.el (100%) delete mode 100644 bin/open_emacs.bat delete mode 100644 bin/open_emacs.sh diff --git a/build.el b/bin/build.el similarity index 100% rename from build.el rename to bin/build.el diff --git a/bin/copy_config.bat b/bin/copy_config.bat index 6c26b3593..0c5a3757b 100644 --- a/bin/copy_config.bat +++ b/bin/copy_config.bat @@ -8,11 +8,7 @@ set CONFIG_PATH=%UserProfile% echo %CONFIG_PATH% -move "./build.el" "%CONFIG_PATH%" -move "./.emacs" "%CONFIG_PATH%" - mkdir "%CONFIG_PATH%/.emacs.d" -mkdir "%CONFIG_PATH%/.emacs.jcs" robocopy /e "./.emacs.d" "%CONFIG_PATH%/.emacs.d" robocopy /e "./.emacs.jcs" "%CONFIG_PATH%/.emacs.jcs" diff --git a/bin/copy_config.sh b/bin/copy_config.sh index d3d3b630a..0832bed3e 100644 --- a/bin/copy_config.sh +++ b/bin/copy_config.sh @@ -2,9 +2,6 @@ echo "Copying core files..." -mv -f ./build.el ~/build.el -mv -f ./.emacs ~/.emacs mv -f ./.emacs.d ~/.emacs.d -mv -f ./.emacs.jcs ~/.emacs.jcs echo "Done copying configuration files" diff --git a/bin/open_emacs.bat b/bin/open_emacs.bat deleted file mode 100644 index af43837b4..000000000 --- a/bin/open_emacs.bat +++ /dev/null @@ -1,15 +0,0 @@ -@echo off -:: ======================================================================== -:: $File: open_emacs.bat $ -:: $Date: 2017-11-15 11:53:53 $ -:: $Revision: $ -:: $Creator: Jen-Chieh Shen $ -:: $Notice: See LICENSE.txt for modification and distribution information -:: Copyright (c) 2017 by Shen, Jen-Chieh $ -:: ======================================================================== - -set EMACS_INIT_PATH= -set EMACS_PROGRAM_PATH= - -:: Run emacs with initialize setting file. -%EMACS_PROGRAM_PATH% %EMACS_INIT_PATH% diff --git a/bin/open_emacs.sh b/bin/open_emacs.sh deleted file mode 100644 index c456bf282..000000000 --- a/bin/open_emacs.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# ======================================================================== -# $File: open_emacs.sh $ -# $Date: 2018-05-14 04:27:50 $ -# $Revision: $ -# $Creator: Jen-Chieh Shen $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © 2018 by Shen, Jen-Chieh $ -# ======================================================================== - -EMACS_INIT_PATH= -EMACS_PROGRAM_PATH= - -# Run emacs with initialize setting file. -$EMACS_PROGRAM_PATH $EMACS_INIT_PATH From c265636a726194d20185cac14c079782f55c9f33 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:03:56 +0800 Subject: [PATCH 03/51] Update dir --- core/jcs-env.el | 2 +- core/jcs-function.el | 17 +++++++++-------- core/jcs-plugin.el | 6 +++--- core/jcs-project.el | 2 +- core/jcs-template.el | 2 +- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/core/jcs-env.el b/core/jcs-env.el index b6271482c..9e7a4b365 100644 --- a/core/jcs-env.el +++ b/core/jcs-env.el @@ -67,7 +67,7 @@ "List of buffer that you don't want to show when after exit.") ;;; Change Log -(defconst jcs-changelog-template-dir "~/.emacs.jcs/template/__changelog/" +(defconst jcs-changelog-template-dir "~/.emacs.d/core/template/__changelog/" "Path point to all changelog template files.") ;;; Compilation (Output) diff --git a/core/jcs-function.el b/core/jcs-function.el index a7ace52b6..d6bbe7cef 100644 --- a/core/jcs-function.el +++ b/core/jcs-function.el @@ -206,22 +206,22 @@ (defun jcs-alt-codes-table () "Display basic Alt-Codes table." (interactive) - (jcs-display-file "~/.emacs.jcs/data/charset/alt-code.txt" "*Alt Codes*" nil)) + (jcs-display-file "~/.emacs.d/data/charset/alt-code.txt" "*Alt Codes*" nil)) (defun jcs-ascii-table () "Display basic ASCII table." (interactive) - (jcs-display-file "~/.emacs.jcs/data/charset/ascii.txt" "*ASCII*" nil)) + (jcs-display-file "~/.emacs.d/data/charset/ascii.txt" "*ASCII*" nil)) (defun jcs-algorithm-cheat-sheet () "Display basic Alt-Codes table." (interactive) - (jcs-html-preview "~/.emacs.jcs/data/algorithm/cheat-sheet.html" "*Algorithm Cheat Sheet*" nil)) + (jcs-html-preview "~/.emacs.d/data/algorithm/cheat-sheet.html" "*Algorithm Cheat Sheet*" nil)) (defun jcs-data-structure-cheat-sheet () "Display basic Alt-Codes table." (interactive) - (jcs-display-file "~/.emacs.jcs/data/data-structure/cheat-sheet.txt" "*Data Structure Cheat Sheet*" nil)) + (jcs-display-file "~/.emacs.d/data/data-structure/cheat-sheet.txt" "*Data Structure Cheat Sheet*" nil)) ;; ;; (@* "Dashboard" ) @@ -283,10 +283,11 @@ If optional argument FORCE is non-nil, force refresh it." (defun jcs-dashboard--get-banner-path () "Return banner path." - (cond ((display-graphic-p) - (if (jcs-light-theme-p) "~/.emacs.jcs/banner/sink_black.png" - "~/.emacs.jcs/banner/sink_white.png")) - (t "~/.emacs.jcs/banner/sink.txt"))) + (concat user-emacs-directory + (cond ((display-graphic-p) + (if (jcs-light-theme-p) "banners/sink_black.png" + "banners/sink_white.png")) + (t "banners/sink.txt")))) ;; ;; (@* "ElDoc" ) diff --git a/core/jcs-plugin.el b/core/jcs-plugin.el index fdd21c75c..1004e374f 100644 --- a/core/jcs-plugin.el +++ b/core/jcs-plugin.el @@ -380,7 +380,7 @@ (leaf file-header :init - (setq file-header-template-config-filepath "~/.emacs.jcs/template/template_config.properties")) + (setq file-header-template-config-filepath "~/.emacs.d/template/config.properties")) (leaf flx-rs :init @@ -995,8 +995,8 @@ :init ;; List of TTF fonts you want to use in the currnet OS. (setq use-ttf-default-ttf-fonts - '("/.emacs.jcs/fonts/clacon.ttf" - "/.emacs.jcs/fonts/UbuntuMono-R.ttf")) + '("/.emacs.d/fonts/clacon.ttf" + "/.emacs.d/fonts/UbuntuMono-R.ttf")) ;; Name of the font we want to use as default. ;; This you need to check the font name in the system manually. (setq use-ttf-default-ttf-font-name "Ubuntu Mono")) diff --git a/core/jcs-project.el b/core/jcs-project.el index 48f9ddfaa..041b16ead 100644 --- a/core/jcs-project.el +++ b/core/jcs-project.el @@ -67,7 +67,7 @@ If optional argument DIR is nil, use variable `default-directory' instead." (defun jcs-project-list-clean () "Clean up the project list if the project no longer exists." - (unless (bound-and-true-p jcs-ci) + (when after-init-time (project--ensure-read-project-list) (let (pr-lst) (dolist (pr project--list) diff --git a/core/jcs-template.el b/core/jcs-template.el index 76fc8198d..2d6324dff 100644 --- a/core/jcs-template.el +++ b/core/jcs-template.el @@ -2,7 +2,7 @@ ;;; Commentary: ;;; Code: -(defconst jcs-template-dir "~/.emacs.jcs/template/" +(defconst jcs-template-dir "~/.emacs.d/template/" "Template directory path for file headers.") ;; From 8b4453a635fe39bde9cf434f84640e2d7629f707 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:04:03 +0800 Subject: [PATCH 04/51] Update custom file --- early-init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/early-init.el b/early-init.el index bfb514b26..abeb55667 100644 --- a/early-init.el +++ b/early-init.el @@ -29,7 +29,7 @@ ;; ;;; Set Custom file -(setq-default custom-file (expand-file-name ".jcs-custom.el" user-emacs-directory)) +(setq-default custom-file (expand-file-name "custom.el" user-emacs-directory)) (when (file-exists-p custom-file) (load custom-file)) (provide 'early-init) From 75dd3b142f1d0507240b0a1b2e476f6c1cddd535 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:04:12 +0800 Subject: [PATCH 05/51] Rename to init --- .emacs => init.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) rename .emacs => init.el (95%) diff --git a/.emacs b/init.el similarity index 95% rename from .emacs rename to init.el index e2ddaf724..6804a0487 100644 --- a/.emacs +++ b/init.el @@ -1,4 +1,4 @@ -;;; .emacs --- Load the full configuration -*- lexical-binding: t -*- +;;; init.el --- Load the full configuration -*- lexical-binding: t -*- ;;; Commentary: ;; Author: Shen, Jen-Chieh @@ -118,9 +118,9 @@ decrease this. If you experience stuttering, increase this.") ;; (@* "Load Core" ) ;; -(setq load-path (append '("~/.emacs.jcs/" - "~/.emacs.jcs/func/" - "~/.emacs.jcs/mode/") +(setq load-path (append '("~/.emacs.d/core/" + "~/.emacs.d/core/func/" + "~/.emacs.d/core/mode/") load-path)) ;;; Initialize @@ -156,4 +156,4 @@ decrease this. If you experience stuttering, increase this.") ;; coding: utf-8 ;; no-byte-compile: t ;; End: -;;; .emacs ends here +;;; init.el ends here From cc1959a5e415cdd63516a06038228658756a7dd1 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:04:37 +0800 Subject: [PATCH 06/51] Update test --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f205cd8ef..0142f6257 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ ENTRY="(progn \ (let ((debug-on-error nil) \ (url-show-status nil) \ (user-emacs-directory default-directory) \ - (user-init-file (expand-file-name \"~/build.el\")) \ + (user-init-file (expand-file-name \"~/.emacs.d/bin/build.el\")) \ (load-path (delq default-directory load-path))) \ (load-file user-init-file) \ (run-hooks (quote after-init-hook)) \ From 850030ded90159349721004e87ec7bac344aa50d Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:06:03 +0800 Subject: [PATCH 07/51] Upate ci --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a612f0fe7..15016a2dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,7 +27,7 @@ jobs: - uses: actions/checkout@v2 - name: Copy configuration files - run: sh ./scripts/copy_config.sh + run: sh ./bin/copy_config.sh - name: Check startup run: @@ -49,7 +49,7 @@ jobs: - uses: actions/checkout@v2 - name: Copy configuration files - run: ./scripts/copy_config.bat + run: ./bin/copy_config.bat - name: Check startup run: From ea8a956b4b4de9c9d4441465b5f8a25d3e65a522 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:07:40 +0800 Subject: [PATCH 08/51] Update CI path --- Makefile | 2 +- bin/build.el | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 0142f6257..b59db9851 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ ENTRY="(progn \ (let ((debug-on-error nil) \ (url-show-status nil) \ (user-emacs-directory default-directory) \ - (user-init-file (expand-file-name \"~/.emacs.d/bin/build.el\")) \ + (user-init-file (expand-file-name \"~/.emacs.d/bin/build.el\")) \ (load-path (delq default-directory load-path))) \ (load-file user-init-file) \ (run-hooks (quote after-init-hook)) \ diff --git a/bin/build.el b/bin/build.el index c72e6c760..ffa57aea2 100644 --- a/bin/build.el +++ b/bin/build.el @@ -9,7 +9,7 @@ ;; See https://github.com/jcs090218/setup-emacs-windows/issues/156#issuecomment-932956432 (setq network-security-level 'low) -(load-file (expand-file-name "~/.emacs")) ; Start regular Emacs file +(load-file (expand-file-name "~/.emacs.d/init.el")) ; Start regular Emacs file ;; Local Variables: ;; coding: utf-8 From 3da5285c052f07fcf9c434e1c06614d8cc18ccb3 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:10:25 +0800 Subject: [PATCH 09/51] Remove data --- data/algorithm/Array Sorting Algorithms.png | Bin 84397 -> 0 bytes data/algorithm/Big-O Complexity Chart.png | Bin 54211 -> 0 bytes .../Common Data Structure Operations.png | Bin 99549 -> 0 bytes data/algorithm/cheat-sheet.html | 8 -- data/charset/alt-code.txt | 71 ------------------ data/charset/ascii.txt | 45 ----------- data/data-structure/cheat-sheet.txt | 45 ----------- 7 files changed, 169 deletions(-) delete mode 100644 data/algorithm/Array Sorting Algorithms.png delete mode 100644 data/algorithm/Big-O Complexity Chart.png delete mode 100644 data/algorithm/Common Data Structure Operations.png delete mode 100644 data/algorithm/cheat-sheet.html delete mode 100644 data/charset/alt-code.txt delete mode 100644 data/charset/ascii.txt delete mode 100644 data/data-structure/cheat-sheet.txt diff --git a/data/algorithm/Array Sorting Algorithms.png b/data/algorithm/Array Sorting Algorithms.png deleted file mode 100644 index 1ee60ef259ca4b2716993b028c050d42e20e8b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84397 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

-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 Xssih7T?l;S_NmLfRg@?d`{4gyR&^8r diff --git a/data/algorithm/Big-O Complexity Chart.png b/data/algorithm/Big-O Complexity Chart.png deleted file mode 100644 index 4b3f97675092dee2632dd2cf4269217ede128d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54211 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

2hd-tC6BRlb`|`q@L>g=S5s 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 diff --git a/data/algorithm/cheat-sheet.html b/data/algorithm/cheat-sheet.html deleted file mode 100644 index b80ca688e..000000000 --- a/data/algorithm/cheat-sheet.html +++ /dev/null @@ -1,8 +0,0 @@ --- Big-O Complexity Chart - - --- Common Data Structure Operations - - --- Array Sorting Algorithms - diff --git a/data/charset/alt-code.txt b/data/charset/alt-code.txt deleted file mode 100644 index 90838a466..000000000 --- a/data/charset/alt-code.txt +++ /dev/null @@ -1,71 +0,0 @@ -Alt Codes - -The list of all Alt Codes for special characters and symbols. - -|----------------+----------------+----------------||----------------+----------------+----------------| -| Symbol AltCode | Symbol AltCode | Symbol AltCode || Symbol AltCode | Symbol AltCode | Symbol AltCode | -|----------------+----------------+----------------||----------------+----------------+----------------| -| ☺ 1 | @ 64 | ⌂ 127 || ╛ 190 | ² 253 |  0194 | -| ☻ 2 | A 65 | Ç 128 || ┐ 191 | ■ 254 | à 0195 | -| ♥ 3 | B 66 | ü 129 || └ 192 | spc 255 | Ä 0196 | -| ♦ 4 | C 67 | é 130 || ┴ 193 | € 0128 | Å 0197 | -| ♣ 5 | D 68 | â 131 || ┬ 194 | ‚ 0130 | Æ 0198 | -| ♠ 6 | E 69 | ä 132 || ├ 195 | ƒ 0131 | Ç 0199 | -| • 7 | F 70 | à 133 || ─ 196 | „ 0132 | È 0200 | -| ◘ 8 | G 71 | å 134 || ┼ 197 | … 0133 | É 0201 | -| ○ 9 | H 72 | ç 135 || ╞ 198 | † 0134 | Ê 0202 | -| ◙ 10 | I 73 | ê 136 || ╟ 199 | ‡ 0135 | Ë 0203 | -| ♂ 11 | J 74 | ë 137 || ╚ 200 | ˆ 0136 | Ì 0204 | -| ♀ 12 | K 75 | è 138 || ╔ 201 | ‰ 0137 | Í 0205 | -| ♪ 13 | L 76 | ï 139 || ╩ 202 | Š 0138 | Î 0206 | -| ♫ 14 | M 77 | î 140 || ╦ 203 | ‹ 0139 | Ï 0207 | -| ☼ 15 | N 78 | ì 141 || ╠ 204 | Œ 0140 | Ð 0208 | -| ► 16 | O 79 | Ä 142 || ═ 205 | Ž 0142 | Ñ 0209 | -| ◄ 17 | P 80 | Å 143 || ╬ 206 | ‘ 0145 | Ò 0210 | -| ↕ 18 | Q 81 | É 144 || ╧ 207 | ’ 0146 | Ó 0211 | -| ‼ 19 | R 82 | æ 145 || ╨ 208 | “ 0147 | Ô 0212 | -| ¶ 20 | S 83 | Æ 146 || ╤ 209 | ” 0148 | Õ 0213 | -| § 21 | T 84 | ô 147 || ╥ 210 | • 0149 | Ö 0214 | -| ▬ 22 | U 85 | ö 148 || ╙ 211 | – 0150 | × 0215 | -| ↨ 23 | V 86 | ò 149 || ╘ 212 | — 0151 | Ø 0216 | -| ↑ 24 | W 87 | û 150 || ╒ 213 | ˜ 0152 | Ù 0217 | -| ↓ 25 | X 88 | ù 151 || ╓ 214 | ™ 0153 | Ú 0218 | -| → 26 | Y 89 | ÿ 152 || ╫ 215 | š 0154 | Û 0219 | -| ← 27 | Z 90 | Ö 153 || ╪ 216 | › 0155 | Ü 0220 | -| ∟ 28 | [ 91 | Ü 154 || ┘ 217 | œ 0156 | Ý 0221 | -| ↔ 29 | \ 92 | ¢ 155 || ┌ 218 | ž 0158 | Þ 0222 | -| ▲ 30 | ] 93 | £ 156 || █ 219 | Ÿ 0159 | ß 0223 | -| ▼ 31 | ^ 94 | ¥ 157 || ▄ 220 | spc 0160 | à 0224 | -| spc 32 | _ 95 | ₧ 158 || ▌ 221 | ¡ 0161 | á 0225 | -| ! 33 | ` 96 | ƒ 159 || ▐ 222 | ¢ 0162 | â 0226 | -| " 34 | a 97 | á 160 || ▀ 223 | £ 0163 | ã 0227 | -| # 35 | b 98 | í 161 || α 224 | ¤ 0164 | ä 0228 | -| $ 36 | c 99 | ó 162 || ß 225 | ¥ 0165 | å 0229 | -| % 37 | d 100 | ú 163 || Γ 226 | ¦ 0166 | æ 0230 | -| & 38 | e 101 | ñ 164 || π 227 | § 0167 | ç 0231 | -| ' 39 | f 102 | Ñ 165 || Σ 228 | ¨ 0168 | è 0232 | -| ( 40 | g 103 | ª 166 || σ 229 | © 0169 | é 0233 | -| ) 41 | h 104 | º 167 || µ 230 | ª 0170 | ê 0234 | -| * 42 | i 105 | ¿ 168 || τ 231 | « 0171 | ë 0235 | -| + 43 | j 106 | ⌐ 169 || Φ 232 | ¬ 0172 | ì 0236 | -| , 44 | k 107 | ¬ 170 || Θ 233 | ® 0174 | í 0237 | -| . 46 | m 109 | ¼ 172 || Ω 234 | ¯ 0175 | î 0238 | -| / 47 | n 110 | ¡ 173 || δ 235 | ° 0176 | ï 0239 | -| 0 48 | o 111 | « 174 || ∞ 236 | ± 0177 | ð 0240 | -| 1 49 | p 112 | » 175 || φ 237 | ² 0178 | ñ 0241 | -| 2 50 | q 113 | ░ 176 || ε 238 | ³ 0179 | ò 0242 | -| 3 51 | r 114 | ▒ 177 || ∩ 239 | ´ 0180 | ó 0243 | -| 4 52 | s 115 | ▓ 178 || ≡ 240 | µ 0181 | ô 0244 | -| 5 53 | t 116 | │ 179 || ± 241 | ¶ 0182 | õ 0245 | -| 6 54 | u 117 | ┤ 180 || ≥ 242 | · 0183 | ö 0246 | -| 7 55 | v 118 | ╡ 181 || ≤ 243 | ¸ 0184 | ÷ 0247 | -| 8 56 | w 119 | ╢ 182 || ⌠ 244 | ¹ 0185 | ø 0248 | -| 9 57 | x 120 | ╖ 183 || ⌡ 245 | º 0186 | ù 0249 | -| : 58 | y 121 | ╕ 184 || ÷ 246 | » 0187 | ú 0250 | -| ; 59 | z 122 | ╣ 185 || ≈ 247 | ¼ 0188 | û 0251 | -| < 60 | { 123 | ║ 186 || ° 248 | ½ 0189 | ü 0252 | -| = 61 | 124 | ╗ 187 || ∙ 249 | ¾ 0190 | ý 0253 | -| > 62 | } 125 | ╝ 188 || · 250 | ¿ 0191 | þ 0254 | -| ? 63 | ~ 126 | || √ 251 | À 0192 | ÿ 0255 | -|----------------+----------------+----------------|| ⁿ 252 | Á 0193 | | - |----------------+----------------+----------------| diff --git a/data/charset/ascii.txt b/data/charset/ascii.txt deleted file mode 100644 index 71b5c0c00..000000000 --- a/data/charset/ascii.txt +++ /dev/null @@ -1,45 +0,0 @@ -ASCII Table and Description - -ASCII stands for American Standard Code for Information Interchange. -Below is the ASCII character table, including descriptions of the first -32 characters. ASCII was originally designed for use with teletypes, -and so the descriptions are somewhat obscure and their use is frequently -not as intended. - -|-----------------------------------+-----------+-----------+-----------| -| Dec Char | Dec Char | Dec Char | Dec Char | -|-----------------------------------+-----------+-----------+-----------| -| 0 NUL (null) | 32 SPACE | 64 @ | 96 ` | -| 1 SOH (start of heading) | 33 ! | 65 A | 97 a | -| 2 STX (start of text) | 34 " | 66 B | 98 b | -| 3 ETX (end of text) | 35 # | 67 C | 99 c | -| 4 EOT (end of transmission) | 36 $ | 68 D | 100 d | -| 5 ENQ (enquiry) | 37 % | 69 E | 101 e | -| 6 ACK (acknowledge) | 38 & | 70 F | 102 f | -| 7 BEL (bell) | 39 ' | 71 G | 103 g | -| 8 BS (backspace) | 40 ( | 72 H | 104 h | -| 9 TAB (horizontal tab) | 41 ) | 73 I | 105 i | -| 10 LF (NL line feed, new line) | 42 * | 74 J | 106 j | -| 11 VT (vertical tab) | 43 + | 75 K | 107 k | -| 12 FF (NP form feed, new page) | 44 , | 76 L | 108 l | -| 13 CR (carriage return) | 45 - | 77 M | 109 m | -| 14 SO (shift out) | 46 . | 78 N | 110 n | -| 15 SI (shift in) | 47 / | 79 O | 111 o | -| 16 DLE (data link escape) | 48 0 | 80 P | 112 p | -| 17 DC1 (device control 1) | 49 1 | 81 Q | 113 q | -| 18 DC2 (device control 2) | 50 2 | 82 R | 114 r | -| 19 DC3 (device control 3) | 51 3 | 83 S | 115 s | -| 20 DC4 (device control 4) | 52 4 | 84 T | 116 t | -| 21 NAK (negative acknowledge) | 53 5 | 85 U | 117 u | -| 22 SYN (synchronous idle) | 54 6 | 86 V | 118 v | -| 23 ETB (end of trans. block) | 55 7 | 87 W | 119 w | -| 24 CAN (cancel) | 56 8 | 88 X | 120 x | -| 25 EM (end of medium) | 57 9 | 89 Y | 121 y | -| 26 SUB (substitute) | 58 : | 90 Z | 122 z | -| 27 ESC (escape) | 59 ; | 91 [ | 123 { | -| 28 FS (file separator) | 60 < | 92 \ | 124 | | -| 29 GS (group separator) | 61 = | 93 ] | 125 } | -| 30 RS (record separator) | 62 > | 94 ^ | 126 ~ | -| 31 US (unit separator) | 63 ? | 95 _ | 127 DEL | -|-----------------------------------+-----------+-----------+-----------| - \ No newline at end of file diff --git a/data/data-structure/cheat-sheet.txt b/data/data-structure/cheat-sheet.txt deleted file mode 100644 index 926bd4e9f..000000000 --- a/data/data-structure/cheat-sheet.txt +++ /dev/null @@ -1,45 +0,0 @@ -|----------------+---------------------------------------+------------------------------------------| -| Data Strcuture | Advantages | Disadvantages | -|----------------+---------------------------------------+------------------------------------------| -|----------------+---------------------------------------+------------------------------------------| -| Array | Quick inserts | Slow search | -| | Fast access if index known | Slow deletes | -| | | Fixed size | -|----------------+---------------------------------------+------------------------------------------| -| Ordered Array | Faster search than unsorted array | Slow inserts | -| | | Slow deletes | -| | | Fixed size | -|----------------+---------------------------------------+------------------------------------------| -| Stack | Last-in, first-out access | Slow access to other items | -|----------------+---------------------------------------+------------------------------------------| -| Queue | First-in, first-out access | Slow access to other items | -|----------------+---------------------------------------+------------------------------------------| -| Linked List | Quick inserts | Slow search | -| | Quick deletes | | -|----------------+---------------------------------------+------------------------------------------| -| Binary Tree | Quick search | Deletion algorithm is complex | -| | Quick inserts | | -| | Quick deletes | | -| | (If the tree remains balanced) | | -|----------------+---------------------------------------+------------------------------------------| -| Red-Black Tree | Quick search | Complex to implement | -| | Quick inserts | | -| | Quick deletes | | -| | (Tree always remains balanced) | | -|----------------+---------------------------------------+------------------------------------------| -| 2-3-4 Tree | Quick search | Complex to implement | -| | Quick inserts | | -| | Quick deletes | | -| | (Tree always remains balanced) | | -| | (Similar trees good for disk storage) | | -|----------------+---------------------------------------+------------------------------------------| -| Hash Table | Very fast access if key is known | Slow deletes | -| | Quick inserts | Access is slow if not known | -| | | Inefficient memory usage | -|----------------+---------------------------------------+------------------------------------------| -| Head | Quick inserts | Slow access other items | -| | Quick deletes | | -| | Access to largest item | | -|----------------+---------------------------------------+------------------------------------------| -| Graph | Best module real-world situtations | Some algorithm are slow and very complex | -|----------------+---------------------------------------+------------------------------------------| From 044ae74f4d3594fca0e4766d7b308986839e806e Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:10:30 +0800 Subject: [PATCH 10/51] Remove cheatsheet --- core/jcs-function.el | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/core/jcs-function.el b/core/jcs-function.el index d6bbe7cef..577629600 100644 --- a/core/jcs-function.el +++ b/core/jcs-function.el @@ -199,30 +199,6 @@ (jcs-delete-region) (insert val)))) -;; -;; (@* "Cheat Sheet" ) -;; - -(defun jcs-alt-codes-table () - "Display basic Alt-Codes table." - (interactive) - (jcs-display-file "~/.emacs.d/data/charset/alt-code.txt" "*Alt Codes*" nil)) - -(defun jcs-ascii-table () - "Display basic ASCII table." - (interactive) - (jcs-display-file "~/.emacs.d/data/charset/ascii.txt" "*ASCII*" nil)) - -(defun jcs-algorithm-cheat-sheet () - "Display basic Alt-Codes table." - (interactive) - (jcs-html-preview "~/.emacs.d/data/algorithm/cheat-sheet.html" "*Algorithm Cheat Sheet*" nil)) - -(defun jcs-data-structure-cheat-sheet () - "Display basic Alt-Codes table." - (interactive) - (jcs-display-file "~/.emacs.d/data/data-structure/cheat-sheet.txt" "*Data Structure Cheat Sheet*" nil)) - ;; ;; (@* "Dashboard" ) ;; From 8ed23e49651ea678ea22bc9e6a509fbbfa50942f Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:15:46 +0800 Subject: [PATCH 11/51] Update make --- Makefile | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index b59db9851..64a5c808b 100644 --- a/Makefile +++ b/Makefile @@ -6,18 +6,18 @@ CASK ?= cask .PHONY: startup # Turn off `debug-on-error` due to error `Failed to download melpa archive.` -ENTRY="(progn \ - \ -(require 'url-vars) \ - \ -(let ((debug-on-error nil) \ - (url-show-status nil) \ - (user-emacs-directory default-directory) \ - (user-init-file (expand-file-name \"~/.emacs.d/bin/build.el\")) \ - (load-path (delq default-directory load-path))) \ - (load-file user-init-file) \ - (run-hooks (quote after-init-hook)) \ - (run-hooks (quote emacs-startup-hook))) \ +ENTRY="(progn \ + \ +(require 'url-vars) \ + \ +(let ((debug-on-error nil) \ + (url-show-status nil) \ + (early-init-file (locate-user-emacs-file \"early-init.el\")) \ + (user-init-file (locate-user-emacs-file \"init.el\"))) \ + (load-path (delq default-directory load-path))) \ + (load-file user-init-file) \ + (run-hooks (quote after-init-hook)) \ + (run-hooks (quote emacs-startup-hook))) \ (jcs-emacs-version))" startup: From cc71b18941c9882049ac7f417e72fb95f3042e6a Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:19:03 +0800 Subject: [PATCH 12/51] Update make --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 64a5c808b..f07960a5b 100644 --- a/Makefile +++ b/Makefile @@ -12,12 +12,13 @@ ENTRY="(progn \ \ (let ((debug-on-error nil) \ (url-show-status nil) \ + (user-emacs-directory default-directory) \ (early-init-file (locate-user-emacs-file \"early-init.el\")) \ (user-init-file (locate-user-emacs-file \"init.el\"))) \ (load-path (delq default-directory load-path))) \ (load-file user-init-file) \ - (run-hooks (quote after-init-hook)) \ - (run-hooks (quote emacs-startup-hook))) \ + (run-hooks after-init-hook) \ + (run-hooks emacs-startup-hook)) \ (jcs-emacs-version))" startup: From 085c2e031287ab799d11ecf9c61d0acccaa07db9 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:23:16 +0800 Subject: [PATCH 13/51] Load early init' --- Makefile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index f07960a5b..789698249 100644 --- a/Makefile +++ b/Makefile @@ -13,10 +13,11 @@ ENTRY="(progn \ (let ((debug-on-error nil) \ (url-show-status nil) \ (user-emacs-directory default-directory) \ - (early-init-file (locate-user-emacs-file \"early-init.el\")) \ - (user-init-file (locate-user-emacs-file \"init.el\"))) \ + (early-init-file (expand-file-name \"~/.emacs.d/early-init.el\")) \ + (user-init-file (expand-file-name \"~/.emacs.d/init.el\"))) \ (load-path (delq default-directory load-path))) \ - (load-file user-init-file) \ + (load early-init-file) \ + (load user-init-file) \ (run-hooks after-init-hook) \ (run-hooks emacs-startup-hook)) \ (jcs-emacs-version))" From 007dcb74cf4472917c1732620918ec0f565db33f Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:24:35 +0800 Subject: [PATCH 14/51] Test --- Makefile | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 789698249..2f87208c2 100644 --- a/Makefile +++ b/Makefile @@ -5,22 +5,18 @@ CASK ?= cask .PHONY: startup -# Turn off `debug-on-error` due to error `Failed to download melpa archive.` -ENTRY="(progn \ - \ -(require 'url-vars) \ - \ -(let ((debug-on-error nil) \ - (url-show-status nil) \ - (user-emacs-directory default-directory) \ +# Turn off `debug-on-error` due to error `Failed to download 'melpa' archive.` +ENTRY="(progn \ + \ +(require 'url-vars) \ + \ +(let ((debug-on-error nil) \ + (url-show-status nil) \ + (user-emacs-directory default-directory) \ (early-init-file (expand-file-name \"~/.emacs.d/early-init.el\")) \ - (user-init-file (expand-file-name \"~/.emacs.d/init.el\"))) \ - (load-path (delq default-directory load-path))) \ - (load early-init-file) \ - (load user-init-file) \ - (run-hooks after-init-hook) \ - (run-hooks emacs-startup-hook)) \ - (jcs-emacs-version))" + (user-init-file (expand-file-name \"~/.emacs.d/init.el\"))) \ + (load-path (delq default-directory load-path))) \ +)" startup: @$(EMACS) -nw --batch --eval $(ENTRY) From 86164bf2708da00107bfb92c3e6374e4b6858cc5 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:27:51 +0800 Subject: [PATCH 15/51] Move features to docs --- Makefile | 6 +- README.md | 74 +++++++++--------- .../features}/auto-install-package/README.md | 0 .../features}/better-dashboard/README.md | 0 .../better-dashboard/bd-nav-blank-after.gif | Bin .../better-dashboard/bd-nav-blank-before.gif | Bin .../better-dashboard/bd-nav-by-num.gif | Bin .../features}/buffer-menu-search/README.md | 0 .../buffer-menu-search/bms-search.gif | Bin .../features}/build-run/README.md | 0 .../features}/capital-word/README.md | 0 .../features}/capital-word/cw-kill.gif | Bin .../features}/capital-word/cw-nav.gif | Bin .../features}/changelog-helper/README.md | 0 .../changelog-helper/changelog-helper.png | Bin .../consistent-key-bindings/README.md | 0 .../features}/curly-bracket-modes/README.md | 0 .../features}/curly-bracket-modes/cbm.gif | Bin .../features}/display-file/README.md | 0 .../display-file/charset-table/README.md | 0 .../charset-table/alt-codes-table.png | Bin .../charset-table/ascii-table.png | Bin .../features}/docstring-completion/README.md | 0 .../docstring-completion/as-doc-demo.gif | Bin .../docstring-completion/cc-doc-demo.gif | Bin .../docstring-completion/cpp-doc-demo.gif | Bin .../docstring-completion/csharp-doc-demo.gif | Bin .../csharp-vs-doc-demo.gif | Bin .../docstring-completion/go-doc-demo.gif | Bin .../docstring-completion/go-std-doc-demo.gif | Bin .../docstring-completion/java-doc-demo.gif | Bin .../docstring-completion/js-doc-demo.gif | Bin .../docstring-completion/lua-doc-demo.gif | Bin .../docstring-completion/php-doc-demo.gif | Bin .../docstring-completion/python-doc-demo.gif | Bin .../docstring-completion/ts-doc-demo.gif | Bin .../fast-incremental-search/README.md | 0 .../features}/feebleline-design/README.md | 0 .../feebleline-design/fd-preview.png | Bin .../features}/indent-control/README.md | 0 .../features}/indent-move/README.md | 0 .../features}/indent-move/indent-move.gif | Bin .../features}/license-helper/README.md | 0 .../license-helper/license-helper.png | Bin .../features}/line-numbers-modding/README.md | 0 .../features}/mini-state/README.md | 0 .../features}/mini-state/cross-state.png | Bin .../features}/mini-state/depend-state.png | Bin .../mini-state/explicit-states/README.md | 0 .../explicit-states/search-failed.gif | Bin .../features}/mini-state/minibuffer-state.png | Bin .../features}/mode-line-toggle/README.md | 0 .../mode-line-toggle/mode-line-toggle.gif | Bin .../features}/modern-text-editor/README.md | 0 .../features}/multiple-output/README.md | 0 .../features}/navigate-blank-line/README.md | 0 .../navigate-blank-line.gif | Bin .../features}/navigate-table/README.md | 0 .../features}/navigate-table/nav-table.gif | Bin .../features}/preview-html/README.md | 0 .../similar-multiple-cursors/README.md | 0 .../similar-multiple-cursors/similar-mc.gif | Bin .../features}/simulate-shell/README.md | 0 .../features}/smart-move/README.md | 0 .../features}/smart-move/smart-move.gif | Bin .../features}/switch-window/README.md | 0 .../features}/tabify-untabify-modes/README.md | 0 .../tabify-untabify-modes/tabify.png | Bin .../tabify-untabify-modes/untabify.png | Bin .../features}/transparent-window/README.md | 0 .../transparent-window/transparent-window.gif | Bin .../trim-trailing-whitespace/README.md | 0 .../trim-trailing-whitespace/ttw.gif | Bin .../features}/video-player/README.md | 0 .../features}/video-player/video-player.png | Bin .../features}/visualize-undo-redo/README.md | 0 .../visualize-undo-redo/vis-undo-redo.gif | Bin .../features}/vs-curly-bracket/README.md | 0 .../vs-curly-bracket/vs-curly-bracket.gif | Bin .../features}/vs-multiple-cursors/README.md | 0 .../vs-multiple-cursors/vs-mc-emacs.gif | Bin .../vs-multiple-cursors/vs-mc-vscode.gif | Bin .../features}/vs-multiple-terminal/README.md | 0 .../features}/vs-navigate-word/README.md | 0 84 files changed, 42 insertions(+), 38 deletions(-) rename {features => docs/features}/auto-install-package/README.md (100%) rename {features => docs/features}/better-dashboard/README.md (100%) rename {features => docs/features}/better-dashboard/bd-nav-blank-after.gif (100%) rename {features => docs/features}/better-dashboard/bd-nav-blank-before.gif (100%) rename {features => docs/features}/better-dashboard/bd-nav-by-num.gif (100%) rename {features => docs/features}/buffer-menu-search/README.md (100%) rename {features => docs/features}/buffer-menu-search/bms-search.gif (100%) rename {features => docs/features}/build-run/README.md (100%) rename {features => docs/features}/capital-word/README.md (100%) rename {features => docs/features}/capital-word/cw-kill.gif (100%) rename {features => docs/features}/capital-word/cw-nav.gif (100%) rename {features => docs/features}/changelog-helper/README.md (100%) rename {features => docs/features}/changelog-helper/changelog-helper.png (100%) rename {features => docs/features}/consistent-key-bindings/README.md (100%) rename {features => docs/features}/curly-bracket-modes/README.md (100%) rename {features => docs/features}/curly-bracket-modes/cbm.gif (100%) rename {features => docs/features}/display-file/README.md (100%) rename {features => docs/features}/display-file/charset-table/README.md (100%) rename {features => docs/features}/display-file/charset-table/alt-codes-table.png (100%) rename {features => docs/features}/display-file/charset-table/ascii-table.png (100%) rename {features => docs/features}/docstring-completion/README.md (100%) rename {features => docs/features}/docstring-completion/as-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/cc-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/cpp-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/csharp-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/csharp-vs-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/go-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/go-std-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/java-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/js-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/lua-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/php-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/python-doc-demo.gif (100%) rename {features => docs/features}/docstring-completion/ts-doc-demo.gif (100%) rename {features => docs/features}/fast-incremental-search/README.md (100%) rename {features => docs/features}/feebleline-design/README.md (100%) rename {features => docs/features}/feebleline-design/fd-preview.png (100%) rename {features => docs/features}/indent-control/README.md (100%) rename {features => docs/features}/indent-move/README.md (100%) rename {features => docs/features}/indent-move/indent-move.gif (100%) rename {features => docs/features}/license-helper/README.md (100%) rename {features => docs/features}/license-helper/license-helper.png (100%) rename {features => docs/features}/line-numbers-modding/README.md (100%) rename {features => docs/features}/mini-state/README.md (100%) rename {features => docs/features}/mini-state/cross-state.png (100%) rename {features => docs/features}/mini-state/depend-state.png (100%) rename {features => docs/features}/mini-state/explicit-states/README.md (100%) rename {features => docs/features}/mini-state/explicit-states/search-failed.gif (100%) rename {features => docs/features}/mini-state/minibuffer-state.png (100%) rename {features => docs/features}/mode-line-toggle/README.md (100%) rename {features => docs/features}/mode-line-toggle/mode-line-toggle.gif (100%) rename {features => docs/features}/modern-text-editor/README.md (100%) rename {features => docs/features}/multiple-output/README.md (100%) rename {features => docs/features}/navigate-blank-line/README.md (100%) rename {features => docs/features}/navigate-blank-line/navigate-blank-line.gif (100%) rename {features => docs/features}/navigate-table/README.md (100%) rename {features => docs/features}/navigate-table/nav-table.gif (100%) rename {features => docs/features}/preview-html/README.md (100%) rename {features => docs/features}/similar-multiple-cursors/README.md (100%) rename {features => docs/features}/similar-multiple-cursors/similar-mc.gif (100%) rename {features => docs/features}/simulate-shell/README.md (100%) rename {features => docs/features}/smart-move/README.md (100%) rename {features => docs/features}/smart-move/smart-move.gif (100%) rename {features => docs/features}/switch-window/README.md (100%) rename {features => docs/features}/tabify-untabify-modes/README.md (100%) rename {features => docs/features}/tabify-untabify-modes/tabify.png (100%) rename {features => docs/features}/tabify-untabify-modes/untabify.png (100%) rename {features => docs/features}/transparent-window/README.md (100%) rename {features => docs/features}/transparent-window/transparent-window.gif (100%) rename {features => docs/features}/trim-trailing-whitespace/README.md (100%) rename {features => docs/features}/trim-trailing-whitespace/ttw.gif (100%) rename {features => docs/features}/video-player/README.md (100%) rename {features => docs/features}/video-player/video-player.png (100%) rename {features => docs/features}/visualize-undo-redo/README.md (100%) rename {features => docs/features}/visualize-undo-redo/vis-undo-redo.gif (100%) rename {features => docs/features}/vs-curly-bracket/README.md (100%) rename {features => docs/features}/vs-curly-bracket/vs-curly-bracket.gif (100%) rename {features => docs/features}/vs-multiple-cursors/README.md (100%) rename {features => docs/features}/vs-multiple-cursors/vs-mc-emacs.gif (100%) rename {features => docs/features}/vs-multiple-cursors/vs-mc-vscode.gif (100%) rename {features => docs/features}/vs-multiple-terminal/README.md (100%) rename {features => docs/features}/vs-navigate-word/README.md (100%) diff --git a/Makefile b/Makefile index 2f87208c2..8a3b61186 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,11 @@ ENTRY="(progn \ (early-init-file (expand-file-name \"~/.emacs.d/early-init.el\")) \ (user-init-file (expand-file-name \"~/.emacs.d/init.el\"))) \ (load-path (delq default-directory load-path))) \ -)" + (load early-init-file) \ + (load user-init-file) \ + (run-hooks after-init-hook) \ + (run-hooks emacs-startup-hook)) \ + (jcs-emacs-version))" startup: @$(EMACS) -nw --batch --eval $(ENTRY) diff --git a/README.md b/README.md index db2358a68..8fef1b4e6 100644 --- a/README.md +++ b/README.md @@ -212,47 +212,47 @@ This is the list of features that are built-in to this configuration. These feat are heavily base on my personal habits, and so these could be very tiny things. But I believed detials make things better and make life smoother. -* [*Auto Install Package*](./features/auto-install-package) - Automatically installs the package that this config relies on. -* [*Better Dashboard*](./features/better-dashboard) - Implementation for improving experiences using dashboard. -* [*Buffer Menu Search*](./features/buffer-menu-search) - Able to search in the `*Buffer List*` buffer. -* [*Build Run*](./features/build-run) - Implementation for executing script for building and running the software. -* [*Capital Word*](./features/capital-word) - You can navigate/kill word by seeing capital letter. -* [*Changelog Helper*](./features/changelog-helper) - Help to create changelog while creating `CHANGELOG` file using template. -* [*Consistent Key Bindings*](./features/consistent-key-bindings) - Has consistent key bindings across all modes. +* [*Auto Install Package*](./docs/features/auto-install-package) - Automatically installs the package that this config relies on. +* [*Better Dashboard*](./docs/features/better-dashboard) - Implementation for improving experiences using dashboard. +* [*Buffer Menu Search*](./docs/features/buffer-menu-search) - Able to search in the `*Buffer List*` buffer. +* [*Build Run*](./docs/features/build-run) - Implementation for executing script for building and running the software. +* [*Capital Word*](./docs/features/capital-word) - You can navigate/kill word by seeing capital letter. +* [*Changelog Helper*](./docs/features/changelog-helper) - Help to create changelog while creating `CHANGELOG` file using template. +* [*Consistent Key Bindings*](./docs/features/consistent-key-bindings) - Has consistent key bindings across all modes. * [*Curly Bracket Modes*](./curly-bracket-modes) - Use curly bracket depends on different mode. -* [*Display File*](./features/display-file) - Utility function to use to view a file on the other window. -* [*Charset Table*](./features/display-file/charset-table) - Built-in functions that displays character sets. -* ~~[*Docstring Completion*](./features/docstring-completion) - Some standard docstring completion implementations built-in to this configuration.~~ (has move to [docstr](https://github.com/jcs-elpa/docstr)) +* [*Display File*](./docs/features/display-file) - Utility function to use to view a file on the other window. +* [*Charset Table*](./docs/features/display-file/charset-table) - Built-in functions that displays character sets. +* ~~[*Docstring Completion*](./docs/features/docstring-completion) - Some standard docstring completion implementations built-in to this configuration.~~ (has move to [docstr](https://github.com/jcs-elpa/docstr)) * Enhanced Multiple Cursors - * [*Similar Multiple Cursors*](./features/similar-multiple-cursors) - Mark with cursor by similarity. - * [*VS Multiple Cursors*](./features/vs-multiple-cursors) - VSCode like methods to `mark` and `unmark` multiple cursor. -* [*Fast Incremental Search*](./features/fast-incremental-search) - Fast keys for incremental search forward/backward to the cursor is currently pointing. -* [*Feebleline Design*](./features/feebleline-design) - Personal displayed design for `feebleline`. -* [*Indent Control*](./features/indent-control) - Generic control the indentation level for each mode, for more information see [indent-control](https://github.com/alt-elpa/indent-control). + * [*Similar Multiple Cursors*](./docs/features/similar-multiple-cursors) - Mark with cursor by similarity. + * [*VS Multiple Cursors*](./docs/features/vs-multiple-cursors) - VSCode like methods to `mark` and `unmark` multiple cursor. +* [*Fast Incremental Search*](./docs/features/fast-incremental-search) - Fast keys for incremental search forward/backward to the cursor is currently pointing. +* [*Feebleline Design*](./docs/features/feebleline-design) - Personal displayed design for `feebleline`. +* [*Indent Control*](./docs/features/indent-control) - Generic control the indentation level for each mode, for more information see [indent-control](https://github.com/alt-elpa/indent-control). * Previous/Next Keys * [*Normal Move*]() - Act like other normal editors. - * ~~[*Indent Move*](./features/indent-move) - Automatically indent when cursor moves up and down.~~ - * [*Smart-Move*](./features/smart-move) - Smart enough to move cursor to the beginning of the line. -* [*Line Numbers Modding*](./features/line-numbers-modding) - Mixed used of `linum` and `display-line-numbers-mode` base on the file usage. -* [*License Helper*](./features/license-helper) - Help to create license while creating `LICENSE` file using template. -* [*Mini State*](./features/mini-state) - Mini mode state use to visually see what backend is the config currently running. (Deprecated) - * [*Explicit States*](./features/mini-state/explicit-states) - Automatcially switch mini state depends on certain circumstances. -* ~~[*Mode Line Toggle*](./features/mode-line-toggle) - Toggle to `show` or `hide` the mode line.~~ -* [*Modern Text Editor*](./features/modern-text-editor) - Design to have the preset settings close to modern text editors but faster. -* [*Multiple Output*](./features/multiple-output) - Handle multiple output/compilation buffers. -* [*Navigate Blank Line*](./features/navigate-blank-line) - Use `C-` and `C-` to navigate previous and next blank line. -* [*Navigate Table*](./features/navigate-table) - Navigate `org-mode`'s table easier by using arrow keys. -* [*Preview HTML*](./features/preview-html) - Preview rendered HTML file on the other window. -* [*Simulate Shell*](./features/simulate-shell) - Completely simulate shell behaviors, make better user experience when using shell in Emacs. -* [*Switch Window*](./features/switch-window) - Fast keys switch between windows quickly. -* [*Tabify/Untabify Modes*](./features/tabify-untabify-modes) - Tabify or Untabify the file depends on the mode you currently in. -* ~~[*Transparent Window*](./features/transparent-window) - Keys to increase/decrease the transparency of the frame.~~ (has move to [transwin](https://github.com/jcs-elpa/transwin)) -* [*Trim Trailing Whitespace*](./features/trim-trailing-whitespace) - Remove trailing spaces and tabs automatically on save. -* ~~[*Video Player*](./features/video-player) - Play media on the top window.~~ -* [*Visualize Undo/Redo*](./features/visualize-undo-redo) - Improved the user experience on undoing and redoing by showing the `undo-tree-visualizer` at the other window. -* [*VS Curly Bracket*](./features/vs-curly-bracket) - Visual Studio IDE like curly bracket implementation. -* [*VS Multiple Terminal*](./features/vs-multiple-terminal) - VSCode like multiple shell control. -* [*VS Navigate Word*](./features/vs-navigate-word) - Visual Studio IDE like navigating between word implementation. + * ~~[*Indent Move*](./docs/features/indent-move) - Automatically indent when cursor moves up and down.~~ + * [*Smart-Move*](./docs/features/smart-move) - Smart enough to move cursor to the beginning of the line. +* [*Line Numbers Modding*](./docs/features/line-numbers-modding) - Mixed used of `linum` and `display-line-numbers-mode` base on the file usage. +* [*License Helper*](./docs/features/license-helper) - Help to create license while creating `LICENSE` file using template. +* [*Mini State*](./docs/features/mini-state) - Mini mode state use to visually see what backend is the config currently running. (Deprecated) + * [*Explicit States*](./docs/features/mini-state/explicit-states) - Automatcially switch mini state depends on certain circumstances. +* ~~[*Mode Line Toggle*](./docs/features/mode-line-toggle) - Toggle to `show` or `hide` the mode line.~~ +* [*Modern Text Editor*](./docs/features/modern-text-editor) - Design to have the preset settings close to modern text editors but faster. +* [*Multiple Output*](./docs/features/multiple-output) - Handle multiple output/compilation buffers. +* [*Navigate Blank Line*](./docs/features/navigate-blank-line) - Use `C-` and `C-` to navigate previous and next blank line. +* [*Navigate Table*](./docs/features/navigate-table) - Navigate `org-mode`'s table easier by using arrow keys. +* [*Preview HTML*](./docs/features/preview-html) - Preview rendered HTML file on the other window. +* [*Simulate Shell*](./docs/features/simulate-shell) - Completely simulate shell behaviors, make better user experience when using shell in Emacs. +* [*Switch Window*](./docs/features/switch-window) - Fast keys switch between windows quickly. +* [*Tabify/Untabify Modes*](./docs/features/tabify-untabify-modes) - Tabify or Untabify the file depends on the mode you currently in. +* ~~[*Transparent Window*](./docs/features/transparent-window) - Keys to increase/decrease the transparency of the frame.~~ (has move to [transwin](https://github.com/jcs-elpa/transwin)) +* [*Trim Trailing Whitespace*](./docs/features/trim-trailing-whitespace) - Remove trailing spaces and tabs automatically on save. +* ~~[*Video Player*](./docs/features/video-player) - Play media on the top window.~~ +* [*Visualize Undo/Redo*](./docs/features/visualize-undo-redo) - Improved the user experience on undoing and redoing by showing the `undo-tree-visualizer` at the other window. +* [*VS Curly Bracket*](./docs/features/vs-curly-bracket) - Visual Studio IDE like curly bracket implementation. +* [*VS Multiple Terminal*](./docs/features/vs-multiple-terminal) - VSCode like multiple shell control. +* [*VS Navigate Word*](./docs/features/vs-navigate-word) - Visual Studio IDE like navigating between word implementation. ## 📁 Package Archives diff --git a/features/auto-install-package/README.md b/docs/features/auto-install-package/README.md similarity index 100% rename from features/auto-install-package/README.md rename to docs/features/auto-install-package/README.md diff --git a/features/better-dashboard/README.md b/docs/features/better-dashboard/README.md similarity index 100% rename from features/better-dashboard/README.md rename to docs/features/better-dashboard/README.md diff --git a/features/better-dashboard/bd-nav-blank-after.gif b/docs/features/better-dashboard/bd-nav-blank-after.gif similarity index 100% rename from features/better-dashboard/bd-nav-blank-after.gif rename to docs/features/better-dashboard/bd-nav-blank-after.gif diff --git a/features/better-dashboard/bd-nav-blank-before.gif b/docs/features/better-dashboard/bd-nav-blank-before.gif similarity index 100% rename from features/better-dashboard/bd-nav-blank-before.gif rename to docs/features/better-dashboard/bd-nav-blank-before.gif diff --git a/features/better-dashboard/bd-nav-by-num.gif b/docs/features/better-dashboard/bd-nav-by-num.gif similarity index 100% rename from features/better-dashboard/bd-nav-by-num.gif rename to docs/features/better-dashboard/bd-nav-by-num.gif diff --git a/features/buffer-menu-search/README.md b/docs/features/buffer-menu-search/README.md similarity index 100% rename from features/buffer-menu-search/README.md rename to docs/features/buffer-menu-search/README.md diff --git a/features/buffer-menu-search/bms-search.gif b/docs/features/buffer-menu-search/bms-search.gif similarity index 100% rename from features/buffer-menu-search/bms-search.gif rename to docs/features/buffer-menu-search/bms-search.gif diff --git a/features/build-run/README.md b/docs/features/build-run/README.md similarity index 100% rename from features/build-run/README.md rename to docs/features/build-run/README.md diff --git a/features/capital-word/README.md b/docs/features/capital-word/README.md similarity index 100% rename from features/capital-word/README.md rename to docs/features/capital-word/README.md diff --git a/features/capital-word/cw-kill.gif b/docs/features/capital-word/cw-kill.gif similarity index 100% rename from features/capital-word/cw-kill.gif rename to docs/features/capital-word/cw-kill.gif diff --git a/features/capital-word/cw-nav.gif b/docs/features/capital-word/cw-nav.gif similarity index 100% rename from features/capital-word/cw-nav.gif rename to docs/features/capital-word/cw-nav.gif diff --git a/features/changelog-helper/README.md b/docs/features/changelog-helper/README.md similarity index 100% rename from features/changelog-helper/README.md rename to docs/features/changelog-helper/README.md diff --git a/features/changelog-helper/changelog-helper.png b/docs/features/changelog-helper/changelog-helper.png similarity index 100% rename from features/changelog-helper/changelog-helper.png rename to docs/features/changelog-helper/changelog-helper.png diff --git a/features/consistent-key-bindings/README.md b/docs/features/consistent-key-bindings/README.md similarity index 100% rename from features/consistent-key-bindings/README.md rename to docs/features/consistent-key-bindings/README.md diff --git a/features/curly-bracket-modes/README.md b/docs/features/curly-bracket-modes/README.md similarity index 100% rename from features/curly-bracket-modes/README.md rename to docs/features/curly-bracket-modes/README.md diff --git a/features/curly-bracket-modes/cbm.gif b/docs/features/curly-bracket-modes/cbm.gif similarity index 100% rename from features/curly-bracket-modes/cbm.gif rename to docs/features/curly-bracket-modes/cbm.gif diff --git a/features/display-file/README.md b/docs/features/display-file/README.md similarity index 100% rename from features/display-file/README.md rename to docs/features/display-file/README.md diff --git a/features/display-file/charset-table/README.md b/docs/features/display-file/charset-table/README.md similarity index 100% rename from features/display-file/charset-table/README.md rename to docs/features/display-file/charset-table/README.md diff --git a/features/display-file/charset-table/alt-codes-table.png b/docs/features/display-file/charset-table/alt-codes-table.png similarity index 100% rename from features/display-file/charset-table/alt-codes-table.png rename to docs/features/display-file/charset-table/alt-codes-table.png diff --git a/features/display-file/charset-table/ascii-table.png b/docs/features/display-file/charset-table/ascii-table.png similarity index 100% rename from features/display-file/charset-table/ascii-table.png rename to docs/features/display-file/charset-table/ascii-table.png diff --git a/features/docstring-completion/README.md b/docs/features/docstring-completion/README.md similarity index 100% rename from features/docstring-completion/README.md rename to docs/features/docstring-completion/README.md diff --git a/features/docstring-completion/as-doc-demo.gif b/docs/features/docstring-completion/as-doc-demo.gif similarity index 100% rename from features/docstring-completion/as-doc-demo.gif rename to docs/features/docstring-completion/as-doc-demo.gif diff --git a/features/docstring-completion/cc-doc-demo.gif b/docs/features/docstring-completion/cc-doc-demo.gif similarity index 100% rename from features/docstring-completion/cc-doc-demo.gif rename to docs/features/docstring-completion/cc-doc-demo.gif diff --git a/features/docstring-completion/cpp-doc-demo.gif b/docs/features/docstring-completion/cpp-doc-demo.gif similarity index 100% rename from features/docstring-completion/cpp-doc-demo.gif rename to docs/features/docstring-completion/cpp-doc-demo.gif diff --git a/features/docstring-completion/csharp-doc-demo.gif b/docs/features/docstring-completion/csharp-doc-demo.gif similarity index 100% rename from features/docstring-completion/csharp-doc-demo.gif rename to docs/features/docstring-completion/csharp-doc-demo.gif diff --git a/features/docstring-completion/csharp-vs-doc-demo.gif b/docs/features/docstring-completion/csharp-vs-doc-demo.gif similarity index 100% rename from features/docstring-completion/csharp-vs-doc-demo.gif rename to docs/features/docstring-completion/csharp-vs-doc-demo.gif diff --git a/features/docstring-completion/go-doc-demo.gif b/docs/features/docstring-completion/go-doc-demo.gif similarity index 100% rename from features/docstring-completion/go-doc-demo.gif rename to docs/features/docstring-completion/go-doc-demo.gif diff --git a/features/docstring-completion/go-std-doc-demo.gif b/docs/features/docstring-completion/go-std-doc-demo.gif similarity index 100% rename from features/docstring-completion/go-std-doc-demo.gif rename to docs/features/docstring-completion/go-std-doc-demo.gif diff --git a/features/docstring-completion/java-doc-demo.gif b/docs/features/docstring-completion/java-doc-demo.gif similarity index 100% rename from features/docstring-completion/java-doc-demo.gif rename to docs/features/docstring-completion/java-doc-demo.gif diff --git a/features/docstring-completion/js-doc-demo.gif b/docs/features/docstring-completion/js-doc-demo.gif similarity index 100% rename from features/docstring-completion/js-doc-demo.gif rename to docs/features/docstring-completion/js-doc-demo.gif diff --git a/features/docstring-completion/lua-doc-demo.gif b/docs/features/docstring-completion/lua-doc-demo.gif similarity index 100% rename from features/docstring-completion/lua-doc-demo.gif rename to docs/features/docstring-completion/lua-doc-demo.gif diff --git a/features/docstring-completion/php-doc-demo.gif b/docs/features/docstring-completion/php-doc-demo.gif similarity index 100% rename from features/docstring-completion/php-doc-demo.gif rename to docs/features/docstring-completion/php-doc-demo.gif diff --git a/features/docstring-completion/python-doc-demo.gif b/docs/features/docstring-completion/python-doc-demo.gif similarity index 100% rename from features/docstring-completion/python-doc-demo.gif rename to docs/features/docstring-completion/python-doc-demo.gif diff --git a/features/docstring-completion/ts-doc-demo.gif b/docs/features/docstring-completion/ts-doc-demo.gif similarity index 100% rename from features/docstring-completion/ts-doc-demo.gif rename to docs/features/docstring-completion/ts-doc-demo.gif diff --git a/features/fast-incremental-search/README.md b/docs/features/fast-incremental-search/README.md similarity index 100% rename from features/fast-incremental-search/README.md rename to docs/features/fast-incremental-search/README.md diff --git a/features/feebleline-design/README.md b/docs/features/feebleline-design/README.md similarity index 100% rename from features/feebleline-design/README.md rename to docs/features/feebleline-design/README.md diff --git a/features/feebleline-design/fd-preview.png b/docs/features/feebleline-design/fd-preview.png similarity index 100% rename from features/feebleline-design/fd-preview.png rename to docs/features/feebleline-design/fd-preview.png diff --git a/features/indent-control/README.md b/docs/features/indent-control/README.md similarity index 100% rename from features/indent-control/README.md rename to docs/features/indent-control/README.md diff --git a/features/indent-move/README.md b/docs/features/indent-move/README.md similarity index 100% rename from features/indent-move/README.md rename to docs/features/indent-move/README.md diff --git a/features/indent-move/indent-move.gif b/docs/features/indent-move/indent-move.gif similarity index 100% rename from features/indent-move/indent-move.gif rename to docs/features/indent-move/indent-move.gif diff --git a/features/license-helper/README.md b/docs/features/license-helper/README.md similarity index 100% rename from features/license-helper/README.md rename to docs/features/license-helper/README.md diff --git a/features/license-helper/license-helper.png b/docs/features/license-helper/license-helper.png similarity index 100% rename from features/license-helper/license-helper.png rename to docs/features/license-helper/license-helper.png diff --git a/features/line-numbers-modding/README.md b/docs/features/line-numbers-modding/README.md similarity index 100% rename from features/line-numbers-modding/README.md rename to docs/features/line-numbers-modding/README.md diff --git a/features/mini-state/README.md b/docs/features/mini-state/README.md similarity index 100% rename from features/mini-state/README.md rename to docs/features/mini-state/README.md diff --git a/features/mini-state/cross-state.png b/docs/features/mini-state/cross-state.png similarity index 100% rename from features/mini-state/cross-state.png rename to docs/features/mini-state/cross-state.png diff --git a/features/mini-state/depend-state.png b/docs/features/mini-state/depend-state.png similarity index 100% rename from features/mini-state/depend-state.png rename to docs/features/mini-state/depend-state.png diff --git a/features/mini-state/explicit-states/README.md b/docs/features/mini-state/explicit-states/README.md similarity index 100% rename from features/mini-state/explicit-states/README.md rename to docs/features/mini-state/explicit-states/README.md diff --git a/features/mini-state/explicit-states/search-failed.gif b/docs/features/mini-state/explicit-states/search-failed.gif similarity index 100% rename from features/mini-state/explicit-states/search-failed.gif rename to docs/features/mini-state/explicit-states/search-failed.gif diff --git a/features/mini-state/minibuffer-state.png b/docs/features/mini-state/minibuffer-state.png similarity index 100% rename from features/mini-state/minibuffer-state.png rename to docs/features/mini-state/minibuffer-state.png diff --git a/features/mode-line-toggle/README.md b/docs/features/mode-line-toggle/README.md similarity index 100% rename from features/mode-line-toggle/README.md rename to docs/features/mode-line-toggle/README.md diff --git a/features/mode-line-toggle/mode-line-toggle.gif b/docs/features/mode-line-toggle/mode-line-toggle.gif similarity index 100% rename from features/mode-line-toggle/mode-line-toggle.gif rename to docs/features/mode-line-toggle/mode-line-toggle.gif diff --git a/features/modern-text-editor/README.md b/docs/features/modern-text-editor/README.md similarity index 100% rename from features/modern-text-editor/README.md rename to docs/features/modern-text-editor/README.md diff --git a/features/multiple-output/README.md b/docs/features/multiple-output/README.md similarity index 100% rename from features/multiple-output/README.md rename to docs/features/multiple-output/README.md diff --git a/features/navigate-blank-line/README.md b/docs/features/navigate-blank-line/README.md similarity index 100% rename from features/navigate-blank-line/README.md rename to docs/features/navigate-blank-line/README.md diff --git a/features/navigate-blank-line/navigate-blank-line.gif b/docs/features/navigate-blank-line/navigate-blank-line.gif similarity index 100% rename from features/navigate-blank-line/navigate-blank-line.gif rename to docs/features/navigate-blank-line/navigate-blank-line.gif diff --git a/features/navigate-table/README.md b/docs/features/navigate-table/README.md similarity index 100% rename from features/navigate-table/README.md rename to docs/features/navigate-table/README.md diff --git a/features/navigate-table/nav-table.gif b/docs/features/navigate-table/nav-table.gif similarity index 100% rename from features/navigate-table/nav-table.gif rename to docs/features/navigate-table/nav-table.gif diff --git a/features/preview-html/README.md b/docs/features/preview-html/README.md similarity index 100% rename from features/preview-html/README.md rename to docs/features/preview-html/README.md diff --git a/features/similar-multiple-cursors/README.md b/docs/features/similar-multiple-cursors/README.md similarity index 100% rename from features/similar-multiple-cursors/README.md rename to docs/features/similar-multiple-cursors/README.md diff --git a/features/similar-multiple-cursors/similar-mc.gif b/docs/features/similar-multiple-cursors/similar-mc.gif similarity index 100% rename from features/similar-multiple-cursors/similar-mc.gif rename to docs/features/similar-multiple-cursors/similar-mc.gif diff --git a/features/simulate-shell/README.md b/docs/features/simulate-shell/README.md similarity index 100% rename from features/simulate-shell/README.md rename to docs/features/simulate-shell/README.md diff --git a/features/smart-move/README.md b/docs/features/smart-move/README.md similarity index 100% rename from features/smart-move/README.md rename to docs/features/smart-move/README.md diff --git a/features/smart-move/smart-move.gif b/docs/features/smart-move/smart-move.gif similarity index 100% rename from features/smart-move/smart-move.gif rename to docs/features/smart-move/smart-move.gif diff --git a/features/switch-window/README.md b/docs/features/switch-window/README.md similarity index 100% rename from features/switch-window/README.md rename to docs/features/switch-window/README.md diff --git a/features/tabify-untabify-modes/README.md b/docs/features/tabify-untabify-modes/README.md similarity index 100% rename from features/tabify-untabify-modes/README.md rename to docs/features/tabify-untabify-modes/README.md diff --git a/features/tabify-untabify-modes/tabify.png b/docs/features/tabify-untabify-modes/tabify.png similarity index 100% rename from features/tabify-untabify-modes/tabify.png rename to docs/features/tabify-untabify-modes/tabify.png diff --git a/features/tabify-untabify-modes/untabify.png b/docs/features/tabify-untabify-modes/untabify.png similarity index 100% rename from features/tabify-untabify-modes/untabify.png rename to docs/features/tabify-untabify-modes/untabify.png diff --git a/features/transparent-window/README.md b/docs/features/transparent-window/README.md similarity index 100% rename from features/transparent-window/README.md rename to docs/features/transparent-window/README.md diff --git a/features/transparent-window/transparent-window.gif b/docs/features/transparent-window/transparent-window.gif similarity index 100% rename from features/transparent-window/transparent-window.gif rename to docs/features/transparent-window/transparent-window.gif diff --git a/features/trim-trailing-whitespace/README.md b/docs/features/trim-trailing-whitespace/README.md similarity index 100% rename from features/trim-trailing-whitespace/README.md rename to docs/features/trim-trailing-whitespace/README.md diff --git a/features/trim-trailing-whitespace/ttw.gif b/docs/features/trim-trailing-whitespace/ttw.gif similarity index 100% rename from features/trim-trailing-whitespace/ttw.gif rename to docs/features/trim-trailing-whitespace/ttw.gif diff --git a/features/video-player/README.md b/docs/features/video-player/README.md similarity index 100% rename from features/video-player/README.md rename to docs/features/video-player/README.md diff --git a/features/video-player/video-player.png b/docs/features/video-player/video-player.png similarity index 100% rename from features/video-player/video-player.png rename to docs/features/video-player/video-player.png diff --git a/features/visualize-undo-redo/README.md b/docs/features/visualize-undo-redo/README.md similarity index 100% rename from features/visualize-undo-redo/README.md rename to docs/features/visualize-undo-redo/README.md diff --git a/features/visualize-undo-redo/vis-undo-redo.gif b/docs/features/visualize-undo-redo/vis-undo-redo.gif similarity index 100% rename from features/visualize-undo-redo/vis-undo-redo.gif rename to docs/features/visualize-undo-redo/vis-undo-redo.gif diff --git a/features/vs-curly-bracket/README.md b/docs/features/vs-curly-bracket/README.md similarity index 100% rename from features/vs-curly-bracket/README.md rename to docs/features/vs-curly-bracket/README.md diff --git a/features/vs-curly-bracket/vs-curly-bracket.gif b/docs/features/vs-curly-bracket/vs-curly-bracket.gif similarity index 100% rename from features/vs-curly-bracket/vs-curly-bracket.gif rename to docs/features/vs-curly-bracket/vs-curly-bracket.gif diff --git a/features/vs-multiple-cursors/README.md b/docs/features/vs-multiple-cursors/README.md similarity index 100% rename from features/vs-multiple-cursors/README.md rename to docs/features/vs-multiple-cursors/README.md diff --git a/features/vs-multiple-cursors/vs-mc-emacs.gif b/docs/features/vs-multiple-cursors/vs-mc-emacs.gif similarity index 100% rename from features/vs-multiple-cursors/vs-mc-emacs.gif rename to docs/features/vs-multiple-cursors/vs-mc-emacs.gif diff --git a/features/vs-multiple-cursors/vs-mc-vscode.gif b/docs/features/vs-multiple-cursors/vs-mc-vscode.gif similarity index 100% rename from features/vs-multiple-cursors/vs-mc-vscode.gif rename to docs/features/vs-multiple-cursors/vs-mc-vscode.gif diff --git a/features/vs-multiple-terminal/README.md b/docs/features/vs-multiple-terminal/README.md similarity index 100% rename from features/vs-multiple-terminal/README.md rename to docs/features/vs-multiple-terminal/README.md diff --git a/features/vs-navigate-word/README.md b/docs/features/vs-navigate-word/README.md similarity index 100% rename from features/vs-navigate-word/README.md rename to docs/features/vs-navigate-word/README.md From e24716a2296744650c01de733266c28ddd98dc5d Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:31:27 +0800 Subject: [PATCH 16/51] Remove load --- Makefile | 27 +++++++++++++-------------- core/jcs-function.el | 10 +++++----- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 8a3b61186..4190ca124 100644 --- a/Makefile +++ b/Makefile @@ -6,20 +6,19 @@ CASK ?= cask .PHONY: startup # Turn off `debug-on-error` due to error `Failed to download 'melpa' archive.` -ENTRY="(progn \ - \ -(require 'url-vars) \ - \ -(let ((debug-on-error nil) \ - (url-show-status nil) \ - (user-emacs-directory default-directory) \ - (early-init-file (expand-file-name \"~/.emacs.d/early-init.el\")) \ - (user-init-file (expand-file-name \"~/.emacs.d/init.el\"))) \ - (load-path (delq default-directory load-path))) \ - (load early-init-file) \ - (load user-init-file) \ - (run-hooks after-init-hook) \ - (run-hooks emacs-startup-hook)) \ +ENTRY="(progn \ + \ +(require 'url-vars) \ + \ +(let ((debug-on-error nil) \ + (url-show-status nil) \ + (user-emacs-directory default-directory) \ + (early-init-file (locate-user-emacs-file \"early-init.el\")) \ + (user-init-file (locate-user-emacs-file \"init.el\"))) \ + (load early-init-file) \ + (load user-init-file) \ + (run-hooks after-init-hook) \ + (run-hooks emacs-startup-hook)) \ (jcs-emacs-version))" startup: diff --git a/core/jcs-function.el b/core/jcs-function.el index 577629600..4763c8f04 100644 --- a/core/jcs-function.el +++ b/core/jcs-function.el @@ -259,11 +259,11 @@ If optional argument FORCE is non-nil, force refresh it." (defun jcs-dashboard--get-banner-path () "Return banner path." - (concat user-emacs-directory - (cond ((display-graphic-p) - (if (jcs-light-theme-p) "banners/sink_black.png" - "banners/sink_white.png")) - (t "banners/sink.txt")))) + (locate-user-emacs-file + (cond ((display-graphic-p) + (if (jcs-light-theme-p) "banners/sink_black.png" + "banners/sink_white.png")) + (t "banners/sink.txt")))) ;; ;; (@* "ElDoc" ) From 82e63628bb84ccf12ab88e9651cafd5b15890244 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:36:50 +0800 Subject: [PATCH 17/51] Remove bin --- bin/copy_config.sh | 1 + bin/install.bat | 27 --------------------------- bin/install.sh | 21 --------------------- 3 files changed, 1 insertion(+), 48 deletions(-) delete mode 100644 bin/install.bat delete mode 100644 bin/install.sh diff --git a/bin/copy_config.sh b/bin/copy_config.sh index 0832bed3e..f1ebfc094 100644 --- a/bin/copy_config.sh +++ b/bin/copy_config.sh @@ -2,6 +2,7 @@ echo "Copying core files..." +mkdir ~/.emacs.d mv -f ./.emacs.d ~/.emacs.d echo "Done copying configuration files" diff --git a/bin/install.bat b/bin/install.bat deleted file mode 100644 index d57b9f42f..000000000 --- a/bin/install.bat +++ /dev/null @@ -1,27 +0,0 @@ -@echo off -:: ======================================================================== -:: $File: install.bat $ -:: $Date: 2019-03-28 21:16:32 $ -:: $Revision: $ -:: $Creator: Jen-Chieh Shen $ -:: $Notice: See LICENSE.txt for modification and distribution information -:: Copyright © 2019 by Shen, Jen-Chieh $ -:: ======================================================================== - -:: DESCRIPTION: Install this configuration onto this machine. - -set INSTALL_DIR=%userprofile%\AppData\Roaming - -:: To root directory. -cd .. - -:: copy init file to home -xcopy ".emacs" "%INSTALL_DIR%" - -:: create necessary directories. -mkdir "%INSTALL_DIR%\.emacs.d" -mkdir "%INSTALL_DIR%\.emacs.jcs" - -:: copy core directories to home -xcopy /e ".emacs.d" "%INSTALL_DIR%\.emacs.d" -xcopy /e ".emacs.jcs" "%INSTALL_DIR%\.emacs.jcs" diff --git a/bin/install.sh b/bin/install.sh deleted file mode 100644 index ea9cf2a43..000000000 --- a/bin/install.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -# ======================================================================== -# $File: install.sh $ -# $Date: 2019-03-28 21:15:01 $ -# $Revision: $ -# $Creator: Jen-Chieh Shen $ -# $Notice: See LICENSE.txt for modification and distribution information -# Copyright © 2019 by Shen, Jen-Chieh $ -# ======================================================================== - -# DESCRIPTION: Install this configuration onto this machine. - -# To root directory. -cd .. - -# copy init file to home -cp ./.emacs ~/ - -# copy core directories to home -cp -r ./.emacs.d ~/ -cp -r ./.emacs.jcs ~/ From 04450fe5f2eeb7764c28db53f3553afe714472c3 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:39:58 +0800 Subject: [PATCH 18/51] Move entire dir --- .gitignore | 19 ++++++++++--------- bin/copy_config.sh | 3 +-- core/jcs-function.el | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 16b019753..a9c6013b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# settings +/custom.el +README.html + *.bak *.data *.db @@ -25,19 +29,11 @@ /.pdf-view-restore /.persistent-scratch /.rgignore - -# tags -/GPATH -/GRTAGS -/GTAGS -/TAGS - /ac-comphist.dat /amx-items /bookmarks /company-statistics-cache.el /custom-post.el -/custom.el /history /nov-places /package-quickstart.el @@ -49,7 +45,6 @@ /scratch /smex-items /tramp -README.html anaconda-mode/ auto-save-list/ cnfonts/ @@ -88,3 +83,9 @@ tutorial/ url/ var/ workspace/ + +# tags +/GPATH +/GRTAGS +/GTAGS +/TAGS diff --git a/bin/copy_config.sh b/bin/copy_config.sh index f1ebfc094..4d6fd2faf 100644 --- a/bin/copy_config.sh +++ b/bin/copy_config.sh @@ -2,7 +2,6 @@ echo "Copying core files..." -mkdir ~/.emacs.d -mv -f ./.emacs.d ~/.emacs.d +mv -f ../jcs-emacs ~/.emacs.d echo "Done copying configuration files" diff --git a/core/jcs-function.el b/core/jcs-function.el index 4763c8f04..0c6b8699b 100644 --- a/core/jcs-function.el +++ b/core/jcs-function.el @@ -244,7 +244,7 @@ OW is the other window flag." "Safely refresh the dashboard buffer if needed. If optional argument FORCE is non-nil, force refresh it." - (when (and (bound-and-true-p after-init-time) + (when (and after-init-time (boundp 'dashboard-buffer-name) (jcs-buffer-shown-p dashboard-buffer-name 'strict)) (unless jcs-dashboard--refreshing-p From 2b7dd095df2ecfde8f099973d77f43ff82fa1ef8 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:42:02 +0800 Subject: [PATCH 19/51] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93491e28c..172edd5de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how * Remove package `flycheck-popup-tip`. * Remove package `flycheck-pos-tip`. * Disable logging when printing out error messages from `flycheck`. +* Move entire directory to `.emacs.d`. (#34) ## 7.1.0 > Released Dec 27, 2021 From f4552308ca908aa3cfee0fc221b8b2f3dcefca6a Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:42:09 +0800 Subject: [PATCH 20/51] Update installatio inst --- README.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/README.md b/README.md index 8fef1b4e6..b813288fc 100644 --- a/README.md +++ b/README.md @@ -136,18 +136,7 @@ emacs config directory accordingly. Make sure you backup your own configuration before you start the installation. ```bash -# clone this repo -$ git clone https://github.com/jcs-emacs/jcs-emacs.git - -# change current directory to project directory -$ cd jcs-emacs - -# copy init file to home -$ cp ./.emacs ~/ - -# copy core directories to home -$ cp -r ./.emacs.d ~/ -$ cp -r ./.emacs.jcs ~/ +git clone https://github.com/jcs-emacs/jcs-emacs ~/.emacs.d ``` Then startup Emacs; it will automatically installs all necessary From a3e86df833b2e615bcdb96c80b6a63edb13a5476 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:45:09 +0800 Subject: [PATCH 21/51] Tree .emacs.d --- bin/copy_config.bat | 3 +-- bin/copy_config.sh | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/copy_config.bat b/bin/copy_config.bat index 0c5a3757b..332ea3c7a 100644 --- a/bin/copy_config.bat +++ b/bin/copy_config.bat @@ -9,7 +9,6 @@ set CONFIG_PATH=%UserProfile% echo %CONFIG_PATH% mkdir "%CONFIG_PATH%/.emacs.d" -robocopy /e "./.emacs.d" "%CONFIG_PATH%/.emacs.d" -robocopy /e "./.emacs.jcs" "%CONFIG_PATH%/.emacs.jcs" +robocopy /e "../jcs-emacs" "%CONFIG_PATH%/.emacs.d" echo "Done copying configuration files" diff --git a/bin/copy_config.sh b/bin/copy_config.sh index 4d6fd2faf..c0eda24d0 100644 --- a/bin/copy_config.sh +++ b/bin/copy_config.sh @@ -4,4 +4,6 @@ echo "Copying core files..." mv -f ../jcs-emacs ~/.emacs.d +tree ~/.emacs.d + echo "Done copying configuration files" From b76b40bbe04e91e1cb17c2b7702a925a3f3d90aa Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:48:41 +0800 Subject: [PATCH 22/51] Try build --- Makefile | 2 +- bin/copy_config.sh | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 4190ca124..86a0223cf 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ ENTRY="(progn \ (url-show-status nil) \ (user-emacs-directory default-directory) \ (early-init-file (locate-user-emacs-file \"early-init.el\")) \ - (user-init-file (locate-user-emacs-file \"init.el\"))) \ + (user-init-file (locate-user-emacs-file \"bin/build.el\"))) \ (load early-init-file) \ (load user-init-file) \ (run-hooks after-init-hook) \ diff --git a/bin/copy_config.sh b/bin/copy_config.sh index c0eda24d0..4d6fd2faf 100644 --- a/bin/copy_config.sh +++ b/bin/copy_config.sh @@ -4,6 +4,4 @@ echo "Copying core files..." mv -f ../jcs-emacs ~/.emacs.d -tree ~/.emacs.d - echo "Done copying configuration files" From 56d2bb06810ea2389821ab129bf33c1fd6ecccfc Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:51:35 +0800 Subject: [PATCH 23/51] ind --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 86a0223cf..e434e544f 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ ENTRY="(progn \ (url-show-status nil) \ (user-emacs-directory default-directory) \ (early-init-file (locate-user-emacs-file \"early-init.el\")) \ - (user-init-file (locate-user-emacs-file \"bin/build.el\"))) \ + (user-init-file (locate-user-emacs-file \"bin/build.el\"))) \ (load early-init-file) \ (load user-init-file) \ (run-hooks after-init-hook) \ From 4cf6d70cd82615e3e0424deeb69ed91a8a46aa68 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Date: Wed, 5 Jan 2022 16:58:59 +0800 Subject: [PATCH 24/51] Update doc --- README.md | 92 +++---------------------------------------------------- 1 file changed, 4 insertions(+), 88 deletions(-) diff --git a/README.md b/README.md index b813288fc..4f2ed6548 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,10 @@ Having these implementations makes my life easier, and having a genuinely portab workspace, which is great because it lets me work on different machine efficiently, without having to get used to an new IDE. +| Light Theme | Dark Theme | +|:----------------------------------------------|:---------------------------------------------| +||| + ## 📰 News Here is the list of few important and recent changes to this configuration. @@ -322,94 +326,6 @@ kind of methods that you could support the maintainer you want. * *Video Player* - none. * *White Space* - powered by [whitespace](https://www.emacswiki.org/emacs/WhiteSpace). -### File Modes - -If you want to change the default mode to certain file type, you might want to -checkout the `./.emacs.jcs/jcs-mode.el` file. You will see a list of mode -that are opened by default mode to certain extension. - -* [List of modes](./doc/programming_modes.md) - -📝 *P.S. The [awesome-emacs](https://github.com/emacs-tw/awesome-emacs) -is a list of Emacs package that you can choose other alternatives to replace any -similar packages listed here. Is also a good place to seek and learn what's inside -Emacs!* - -## Key Bindings - -This configuration have all modes bind to the same set of key bindings. It benefits -the developer would not need to change their key bindings while after the mode -swichted. The key bindings set can be modified in `./.emacs.jcs/jcs-key.el` file. - -* [List of key bindings](./doc/keybindings.md) - -📝 P.S. * My work requires me to use -[Visual Studio IDE](https://visualstudio.microsoft.com/) -that being said the key bindings set are most likely compatible to -[Visual Studio IDE](https://visualstudio.microsoft.com/). -* ~~Excepts keys that bind to `C-x` and `C-c`, Emacs are deeply binds to these -two keys, and many packages also use these two keys for there preset keys. As -you may know these two keys are often `cut` and `copy`, is awkward that I solved -this by adding the same key stroke once again, hence the `cut` key is -`C-x C-x` and the `copy` key is `C-c C-c`.~~ - -**Edit 1:** After version `5.8.3`, the `cut` and `copy` keys had been corrected -and no longer the hassle to this configuration. Thanks to `use-package` again, -letting me bind `C-x` and `C-c` keys for higher precedence. - -## Themes - -### Default - -The theme was to design close to [Visual Studio IDE](https://visualstudio.microsoft.com/) -preset light/dark theme. I believed [Microsoft](https://www.microsoft.com/zh-tw/) -has a great UI/UX team, since I don't have any experience or work related to UI/UX, -I would just like to have the theme color as close to it as possible. Anyway, if you -want to customize the theme yourself, then check out the `./.emacs.jcs/jcs-theme.el` -file. All the theme related variables can be found in that file. - -| Light Theme | Dark Theme | -|:----------------------------------------------|:---------------------------------------------| -||| - -### Customization - -In common, you can install any theme you want as long it is available on the -internet. You can check out the Emacs Theme Gallery site [here](https://pawelbx.github.io/emacs-theme-gallery/). -For instance, [vs-dark-theme](https://github.com/jcs-elpa/vs-dark-theme) and -[vs-light-theme](https://github.com/jcs-elpa/vs-light-theme) are now individual -packages built outside from this configuration. - -## Font - -Font uses `use-ttf` package to keep cross OS consistency. The default font is -`Ubuntu Mono` and loaded by using `UbuntuMono-R.ttf` located under -`./.emacs.jcs/fonts/` folder. If you don't like the this font, you can add your -own `.ttf` file and add the path to `use-ttf-default-ttf-fonts` list. -Lastly, set the name of the `.ttf` file to `use-ttf-default-ttf-font-name` -variable. - -📝 -P.S. -* See the file `./.emacs.jcs/jcs-plugin.el` to see how the font is been set -in `(leaf use-ttf)` section. -* For more details about the font settings in this configuration, check out the -`use-ttf`package [repo](https://github.com/elpa-host/use-ttf). - -## 🔨 Optimization - -If you would like to optimize the configuration, you can run the following command -compile all the source code to byte code so Emacs can run faster during both -`initial time` and `run time`. - -```bash -# change directory to the `jcs` config directory -$ cd ./.emacs.jcs - -# compile all the config source code -$ emacs --batch --eval "(byte-recompile-directory \"./\" 0)" -``` - ## Write your own customization You are able to customize the configuration by editing the file locate at From 40e37dc0f8f308d24d14eaa9f88d13ec6ffb4917 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 17:31:29 +0800 Subject: [PATCH 25/51] Revert custom --- early-init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/early-init.el b/early-init.el index abeb55667..bfb514b26 100644 --- a/early-init.el +++ b/early-init.el @@ -29,7 +29,7 @@ ;; ;;; Set Custom file -(setq-default custom-file (expand-file-name "custom.el" user-emacs-directory)) +(setq-default custom-file (expand-file-name ".jcs-custom.el" user-emacs-directory)) (when (file-exists-p custom-file) (load custom-file)) (provide 'early-init) From b0ff143f8aa6e4bcc00b983fe88c3b8f16cee5ce Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 17:31:37 +0800 Subject: [PATCH 26/51] Ignore jcs-custom --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a9c6013b3..160b3a555 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ # settings -/custom.el +/.jcs-custom.el README.html *.bak From ebb0c08cbde84e6bc9f6a867e0fb4293c840ddb4 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 17:35:13 +0800 Subject: [PATCH 27/51] Try init file --- Makefile | 2 +- bin/build.el | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index e434e544f..fcf55844b 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ ENTRY="(progn \ (url-show-status nil) \ (user-emacs-directory default-directory) \ (early-init-file (locate-user-emacs-file \"early-init.el\")) \ - (user-init-file (locate-user-emacs-file \"bin/build.el\"))) \ + (user-init-file (locate-user-emacs-file \"init.el\"))) \ (load early-init-file) \ (load user-init-file) \ (run-hooks after-init-hook) \ diff --git a/bin/build.el b/bin/build.el index ffa57aea2..bb9dc50d2 100644 --- a/bin/build.el +++ b/bin/build.el @@ -9,7 +9,7 @@ ;; See https://github.com/jcs090218/setup-emacs-windows/issues/156#issuecomment-932956432 (setq network-security-level 'low) -(load-file (expand-file-name "~/.emacs.d/init.el")) ; Start regular Emacs file +(load-file (locate-user-emacs-file "init.el")) ; Start regular Emacs file ;; Local Variables: ;; coding: utf-8 From d20162288038d0d54749acf173f08fb80d0c6b23 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 17:41:53 +0800 Subject: [PATCH 28/51] Move etc to docs --- README.md | 6 +++--- {etc => docs/etc}/logo/logo-shadow.png | Bin {etc => docs/etc}/logo/logo.png | Bin {etc => docs/etc}/logo/logo.psd | Bin {etc => docs/etc}/screenshot/startup-dark.png | Bin {etc => docs/etc}/screenshot/startup-light.png | Bin 6 files changed, 3 insertions(+), 3 deletions(-) rename {etc => docs/etc}/logo/logo-shadow.png (100%) rename {etc => docs/etc}/logo/logo.png (100%) rename {etc => docs/etc}/logo/logo.psd (100%) rename {etc => docs/etc}/screenshot/startup-dark.png (100%) rename {etc => docs/etc}/screenshot/startup-light.png (100%) diff --git a/README.md b/README.md index 4f2ed6548..60f75b6cd 100644 --- a/README.md +++ b/README.md @@ -114,9 +114,9 @@ Having these implementations makes my life easier, and having a genuinely portab workspace, which is great because it lets me work on different machine efficiently, without having to get used to an new IDE. -| Light Theme | Dark Theme | -|:----------------------------------------------|:---------------------------------------------| -||| +| Light Theme | Dark Theme | +|:---------------------------------------------|:--------------------------------------------| +| ![](./docs/etc/screenshot/startup-light.png) | ![](./docs/etc/screenshot/startup-dark.png) | ## 📰 News diff --git a/etc/logo/logo-shadow.png b/docs/etc/logo/logo-shadow.png similarity index 100% rename from etc/logo/logo-shadow.png rename to docs/etc/logo/logo-shadow.png diff --git a/etc/logo/logo.png b/docs/etc/logo/logo.png similarity index 100% rename from etc/logo/logo.png rename to docs/etc/logo/logo.png diff --git a/etc/logo/logo.psd b/docs/etc/logo/logo.psd similarity index 100% rename from etc/logo/logo.psd rename to docs/etc/logo/logo.psd diff --git a/etc/screenshot/startup-dark.png b/docs/etc/screenshot/startup-dark.png similarity index 100% rename from etc/screenshot/startup-dark.png rename to docs/etc/screenshot/startup-dark.png diff --git a/etc/screenshot/startup-light.png b/docs/etc/screenshot/startup-light.png similarity index 100% rename from etc/screenshot/startup-light.png rename to docs/etc/screenshot/startup-light.png From e96a0afc3ac524f937f347293e866b35f774805d Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 17:42:42 +0800 Subject: [PATCH 29/51] Fix path --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 60f75b6cd..0f1023363 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- +

From 016bdbd8495c5d42ee7de41f40bd37863df1f348 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 17:46:07 +0800 Subject: [PATCH 30/51] Rename config --- template/{template_config.properties => config.properties} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename template/{template_config.properties => config.properties} (100%) diff --git a/template/template_config.properties b/template/config.properties similarity index 100% rename from template/template_config.properties rename to template/config.properties From d9179bcfbab2df078dfae52ac8f92d6710de95c5 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 17:50:44 +0800 Subject: [PATCH 31/51] Simplify hook --- core/jcs-hook.el | 119 +++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 66 deletions(-) diff --git a/core/jcs-hook.el b/core/jcs-hook.el index b935fad6e..aca55e314 100644 --- a/core/jcs-hook.el +++ b/core/jcs-hook.el @@ -25,24 +25,24 @@ (if (frame-focus-state) (jcs-hook--focus-in) (jcs-hook--focus-out))) (add-function :after after-focus-change-function #'jcs-after-focus-change-function) -(defun jcs-window-size-change-functions (&rest _) - "When window changed size." - (jcs-dashboard--window-size-change) - (when (featurep 'jcs-ivy) (jcs-ivy--window-size-change)) - (when (featurep 'treemacs) (jcs-treemacs--window-size-change))) -(add-hook 'window-size-change-functions 'jcs-window-size-change-functions) +(add-hook + 'window-size-change-functions + (lambda () + (jcs-dashboard--window-size-change) + (when (featurep 'jcs-ivy) (jcs-ivy--window-size-change)) + (when (featurep 'treemacs) (jcs-treemacs--window-size-change)))) ;; ;; (@* "Find Files" ) ;; -(defun jcs-hook--find-file () - "Find file hook." - (jcs-funcall-fboundp #'jcs-update-buffer-save-string) - (jcs-active-line-numbers-by-mode) - (jcs-project-remember) - (jcs-project--track-open-projects)) -(add-hook 'find-file-hook 'jcs-hook--find-file) +(add-hook + 'find-file-hook + (lambda () + (jcs-funcall-fboundp #'jcs-update-buffer-save-string) + (jcs-active-line-numbers-by-mode) + (jcs-project-remember) + (jcs-project--track-open-projects))) (defun jcs--find-file--advice-after (&rest _) "Advice execute after command `find-file'." @@ -80,49 +80,36 @@ (jcs-dashboard-safe-refresh-buffer)))) (advice-add 'other-window :after #'jcs--other-window--advice-after) -;; -;; (@* "First load" ) -;; - -(defun jcs--fl--find-file--advice-before (&rest _) - "Advice execute before command `find-file'." - ;; Fixed `css-mode' opening virtual buffer with directory error. You just - ;; need to preload this before actually create the virtual buffer. - (require 'eww nil t) - (advice-remove 'find-file #'jcs--fl--find-file--advice-before)) - -(advice-add 'find-file :before #'jcs--fl--find-file--advice-before) - ;; ;; (@* "Initialization" ) ;; -(defun jcs-hook--after-init () - "Hook run after initialize." - (jcs-require '(dashboard diminish)) - (powerline-default-theme) - (use-ttf-set-default-font) +(add-hook + 'after-init-hook + (lambda () + (jcs-require '(dashboard diminish)) + (powerline-default-theme) + (use-ttf-set-default-font) - (run-with-idle-timer 0 nil #'jcs-hook--init-delay) + (run-with-idle-timer 0 nil #'jcs-hook--init-delay) - (jcs-setup-default-theme) - (jcs-depend-mode) + (jcs-setup-default-theme) + (jcs-depend-mode) - ;; Font Size - (jcs-set-font-size jcs-default-font-size) + ;; Font Size + (jcs-set-font-size jcs-default-font-size) - ;; Frame Title - (setq frame-title-format - (list (format "%s %%S: %%j " (system-name)) - '(buffer-file-name "%f" (dired-directory dired-directory "%b")))) + ;; Frame Title + (setq frame-title-format + (list (format "%s %%S: %%j " (system-name)) + '(buffer-file-name "%f" (dired-directory dired-directory "%b")))) - ;; NOTE: Lower the `GC' back to normal threshold. - (jcs-gc-cons-threshold-speed-up nil) - (setq file-name-handler-alist jcs-file-name-handler-alist) + ;; NOTE: Lower the `GC' back to normal threshold. + (jcs-gc-cons-threshold-speed-up nil) + (setq file-name-handler-alist jcs-file-name-handler-alist) - ;; IMPORTANT: This should always be the last thing. - (jcs-dashboard-init-info)) -(add-hook 'after-init-hook 'jcs-hook--after-init) + ;; IMPORTANT: This should always be the last thing. + (jcs-dashboard-init-info))) (defun jcs-hook--init-delay () "Delay some executions for faster speed." @@ -155,26 +142,26 @@ ;; (@* "Pre/Post Command" ) ;; -(defun jcs-hook--pre-command () - "Hook run before every command." - (jcs--er/record-history)) -(add-hook 'pre-command-hook 'jcs-hook--pre-command) +(add-hook + 'pre-command-hook + (lambda () + (jcs--er/record-history))) -(defun jcs-hook--post-command () - "Hook run after every command." - (jcs--er/resolve-region) - (jcs-funcall-fboundp #'jcs--mark-whole-buffer-resolve) - (jcs-reload-active-mode-with-error-handle)) -(add-hook 'post-command-hook 'jcs-hook--post-command) +(add-hook + 'post-command-hook + (lambda () + (jcs--er/resolve-region) + (jcs-funcall-fboundp #'jcs--mark-whole-buffer-resolve) + (jcs-reload-active-mode-with-error-handle))) ;; ;; (@* "Major Mode" ) ;; -(defun jcs-hook--after-change-major-mode () - "Hook run after major mode changes." - (jcs-active-line-numbers-by-mode)) -(add-hook 'after-change-major-mode-hook 'jcs-hook--after-change-major-mode) +(add-hook + 'after-change-major-mode-hook + (lambda () + (jcs-active-line-numbers-by-mode))) ;; ;; (@* "Quitting" ) @@ -195,12 +182,12 @@ (defvar jcs-emacs-startup-directory nil "Record the startup directory.") -(defun jcs-hook--emacs-startup () - "Hook run after Emacs is startup." - (with-current-buffer jcs-scratch-buffer-name - (setq jcs-scratch--content (buffer-string))) - (setq jcs-emacs-startup-directory default-directory)) -(add-hook 'emacs-startup-hook 'jcs-hook--emacs-startup) +(add-hook + 'emacs-startup-hook + (lambda () + (with-current-buffer jcs-scratch-buffer-name + (setq jcs-scratch--content (buffer-string))) + (setq jcs-emacs-startup-directory default-directory))) (provide 'jcs-hook) ;;; jcs-hook.el ends here From a7feed1686cc7918da3a13a421c30b12b032a971 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 17:57:16 +0800 Subject: [PATCH 32/51] Fix args --- core/jcs-hook.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/jcs-hook.el b/core/jcs-hook.el index aca55e314..7a02f6402 100644 --- a/core/jcs-hook.el +++ b/core/jcs-hook.el @@ -27,7 +27,7 @@ (add-hook 'window-size-change-functions - (lambda () + (lambda (&rest _) (jcs-dashboard--window-size-change) (when (featurep 'jcs-ivy) (jcs-ivy--window-size-change)) (when (featurep 'treemacs) (jcs-treemacs--window-size-change)))) From a4c73174652cf6be330e9249a2a6c1ec20d63f84 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:06:14 +0800 Subject: [PATCH 33/51] Use global add hook --- core/func/jcs-util.el | 5 +++ core/jcs-hook.el | 95 ++++++++++++++++++------------------------- 2 files changed, 45 insertions(+), 55 deletions(-) diff --git a/core/func/jcs-util.el b/core/func/jcs-util.el index a53a60809..54a63516f 100644 --- a/core/func/jcs-util.el +++ b/core/func/jcs-util.el @@ -6,6 +6,11 @@ ;; (@* "Macro" ) ;; +(defmacro jcs-add-hook (hook &rest body) + "Global add-hook utility." + (declare (indent 1)) + `(add-hook ,hook (lambda (&rest _) ,@body))) + (defmacro jcs-with-gc-speed-up (&rest body) "Execute BODY with higher GC threshold." (declare (indent 0) (debug t)) diff --git a/core/jcs-hook.el b/core/jcs-hook.el index 7a02f6402..e73b9a5f4 100644 --- a/core/jcs-hook.el +++ b/core/jcs-hook.el @@ -13,8 +13,7 @@ "When window is focus." (if (not jcs-foucs-after-first-p) (setq jcs-foucs-after-first-p t) - (jcs-safe-revert-all-buffers) - (jcs-funcall-fboundp #'jcs--feebleline--reset))) + (jcs-safe-revert-all-buffers))) (defun jcs-hook--focus-out () "When window is not focus." @@ -25,24 +24,20 @@ (if (frame-focus-state) (jcs-hook--focus-in) (jcs-hook--focus-out))) (add-function :after after-focus-change-function #'jcs-after-focus-change-function) -(add-hook - 'window-size-change-functions - (lambda (&rest _) - (jcs-dashboard--window-size-change) - (when (featurep 'jcs-ivy) (jcs-ivy--window-size-change)) - (when (featurep 'treemacs) (jcs-treemacs--window-size-change)))) +(jcs-add-hook 'window-size-change-functions + (jcs-dashboard--window-size-change) + (when (featurep 'jcs-ivy) (jcs-ivy--window-size-change)) + (when (featurep 'treemacs) (jcs-treemacs--window-size-change))) ;; ;; (@* "Find Files" ) ;; -(add-hook - 'find-file-hook - (lambda () - (jcs-funcall-fboundp #'jcs-update-buffer-save-string) - (jcs-active-line-numbers-by-mode) - (jcs-project-remember) - (jcs-project--track-open-projects))) +(jcs-add-hook 'find-file-hook + (jcs-funcall-fboundp #'jcs-update-buffer-save-string) + (jcs-active-line-numbers-by-mode) + (jcs-project-remember) + (jcs-project--track-open-projects)) (defun jcs--find-file--advice-after (&rest _) "Advice execute after command `find-file'." @@ -84,32 +79,30 @@ ;; (@* "Initialization" ) ;; -(add-hook - 'after-init-hook - (lambda () - (jcs-require '(dashboard diminish)) - (powerline-default-theme) - (use-ttf-set-default-font) +(jcs-add-hook 'after-init-hook + (jcs-require '(dashboard diminish)) + (powerline-default-theme) + (use-ttf-set-default-font) - (run-with-idle-timer 0 nil #'jcs-hook--init-delay) + (run-with-idle-timer 0 nil #'jcs-hook--init-delay) - (jcs-setup-default-theme) - (jcs-depend-mode) + (jcs-setup-default-theme) + (jcs-depend-mode) - ;; Font Size - (jcs-set-font-size jcs-default-font-size) + ;; Font Size + (jcs-set-font-size jcs-default-font-size) - ;; Frame Title - (setq frame-title-format - (list (format "%s %%S: %%j " (system-name)) - '(buffer-file-name "%f" (dired-directory dired-directory "%b")))) + ;; Frame Title + (setq frame-title-format + (list (format "%s %%S: %%j " (system-name)) + '(buffer-file-name "%f" (dired-directory dired-directory "%b")))) - ;; NOTE: Lower the `GC' back to normal threshold. - (jcs-gc-cons-threshold-speed-up nil) - (setq file-name-handler-alist jcs-file-name-handler-alist) + ;; NOTE: Lower the `GC' back to normal threshold. + (jcs-gc-cons-threshold-speed-up nil) + (setq file-name-handler-alist jcs-file-name-handler-alist) - ;; IMPORTANT: This should always be the last thing. - (jcs-dashboard-init-info))) + ;; IMPORTANT: This should always be the last thing. + (jcs-dashboard-init-info)) (defun jcs-hook--init-delay () "Delay some executions for faster speed." @@ -142,26 +135,20 @@ ;; (@* "Pre/Post Command" ) ;; -(add-hook - 'pre-command-hook - (lambda () - (jcs--er/record-history))) +(jcs-add-hook 'pre-command-hook + (jcs--er/record-history)) -(add-hook - 'post-command-hook - (lambda () - (jcs--er/resolve-region) - (jcs-funcall-fboundp #'jcs--mark-whole-buffer-resolve) - (jcs-reload-active-mode-with-error-handle))) +(jcs-add-hook 'post-command-hook + (jcs--er/resolve-region) + (jcs-funcall-fboundp #'jcs--mark-whole-buffer-resolve) + (jcs-reload-active-mode-with-error-handle)) ;; ;; (@* "Major Mode" ) ;; -(add-hook - 'after-change-major-mode-hook - (lambda () - (jcs-active-line-numbers-by-mode))) +(jcs-add-hook 'after-change-major-mode-hook + (jcs-active-line-numbers-by-mode)) ;; ;; (@* "Quitting" ) @@ -182,12 +169,10 @@ (defvar jcs-emacs-startup-directory nil "Record the startup directory.") -(add-hook - 'emacs-startup-hook - (lambda () - (with-current-buffer jcs-scratch-buffer-name - (setq jcs-scratch--content (buffer-string))) - (setq jcs-emacs-startup-directory default-directory))) +(jcs-add-hook 'emacs-startup-hook + (with-current-buffer jcs-scratch-buffer-name + (setq jcs-scratch--content (buffer-string))) + (setq jcs-emacs-startup-directory default-directory)) (provide 'jcs-hook) ;;; jcs-hook.el ends here From 54d2ad6ab259c9e076aca02f0d23e74b1f23087e Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:09:50 +0800 Subject: [PATCH 34/51] Update make --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index fcf55844b..e434e544f 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ ENTRY="(progn \ (url-show-status nil) \ (user-emacs-directory default-directory) \ (early-init-file (locate-user-emacs-file \"early-init.el\")) \ - (user-init-file (locate-user-emacs-file \"init.el\"))) \ + (user-init-file (locate-user-emacs-file \"bin/build.el\"))) \ (load early-init-file) \ (load user-init-file) \ (run-hooks after-init-hook) \ From a02db2ad996525ee6841eb5152c93e6a7adf92a9 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:16:07 +0800 Subject: [PATCH 35/51] Simplify CI --- Makefile | 18 +----------------- bin/build.el | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/Makefile b/Makefile index e434e544f..8f6b32c7d 100644 --- a/Makefile +++ b/Makefile @@ -5,21 +5,5 @@ CASK ?= cask .PHONY: startup -# Turn off `debug-on-error` due to error `Failed to download 'melpa' archive.` -ENTRY="(progn \ - \ -(require 'url-vars) \ - \ -(let ((debug-on-error nil) \ - (url-show-status nil) \ - (user-emacs-directory default-directory) \ - (early-init-file (locate-user-emacs-file \"early-init.el\")) \ - (user-init-file (locate-user-emacs-file \"bin/build.el\"))) \ - (load early-init-file) \ - (load user-init-file) \ - (run-hooks after-init-hook) \ - (run-hooks emacs-startup-hook)) \ - (jcs-emacs-version))" - startup: - @$(EMACS) -nw --batch --eval $(ENTRY) + @$(EMACS) -nw --batch --l "~/.emacs.d/bin/build.el" diff --git a/bin/build.el b/bin/build.el index bb9dc50d2..239e0e3b4 100644 --- a/bin/build.el +++ b/bin/build.el @@ -2,14 +2,26 @@ ;;; Commentary: ;;; Code: -(defconst jcs-ci t - "Flag for CI testing.") +(require 'url-vars) ;; Workaround for Windows CI ;; See https://github.com/jcs090218/setup-emacs-windows/issues/156#issuecomment-932956432 (setq network-security-level 'low) -(load-file (locate-user-emacs-file "init.el")) ; Start regular Emacs file +(defconst jcs-ci t + "Flag for CI testing.") + +(let (debug-on-error + url-show-status + (user-emacs-directory default-directory) + (early-init-file (locate-user-emacs-file "early-init.el")) + (user-init-file (locate-user-emacs-file "init.el"))) + (load early-init-file) + (load user-init-file) ; Start regular Emacs file + (run-hooks after-init-hook) + (run-hooks emacs-startup-hook)) + +(jcs-emacs-version) ;; Local Variables: ;; coding: utf-8 From 2bffc63787c38468b0116305255c717ffca805db Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:17:28 +0800 Subject: [PATCH 36/51] Fix CI command --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 8f6b32c7d..1977a9ed5 100644 --- a/Makefile +++ b/Makefile @@ -6,4 +6,4 @@ CASK ?= cask .PHONY: startup startup: - @$(EMACS) -nw --batch --l "~/.emacs.d/bin/build.el" + @$(EMACS) -nw --batch -l "~/.emacs.d/bin/build.el" From fb9ead9aab177898767ce0ccbb79125f2a784f3f Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:18:34 +0800 Subject: [PATCH 37/51] Print info --- bin/build.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/build.el b/bin/build.el index 239e0e3b4..a3fb854db 100644 --- a/bin/build.el +++ b/bin/build.el @@ -16,6 +16,8 @@ (user-emacs-directory default-directory) (early-init-file (locate-user-emacs-file "early-init.el")) (user-init-file (locate-user-emacs-file "init.el"))) + (message "Early Exist: %s" (file-exists-p early-init-file)) + (message "Exist: %s" (file-exists-p user-init-file)) (load early-init-file) (load user-init-file) ; Start regular Emacs file (run-hooks after-init-hook) From 22d7c4e3ed27075d94a1fadda72c017b76e8a082 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:19:40 +0800 Subject: [PATCH 38/51] Rename test --- Makefile | 2 +- bin/{build.el => test.el} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename bin/{build.el => test.el} (89%) diff --git a/Makefile b/Makefile index 1977a9ed5..c11735223 100644 --- a/Makefile +++ b/Makefile @@ -6,4 +6,4 @@ CASK ?= cask .PHONY: startup startup: - @$(EMACS) -nw --batch -l "~/.emacs.d/bin/build.el" + @$(EMACS) -nw --batch -l "~/.emacs.d/bin/test.el" diff --git a/bin/build.el b/bin/test.el similarity index 89% rename from bin/build.el rename to bin/test.el index a3fb854db..ea631d072 100644 --- a/bin/build.el +++ b/bin/test.el @@ -1,4 +1,4 @@ -;;; build.el --- Test the configuration -*- lexical-binding: t -*- +;;; test.el --- Test the configuration -*- lexical-binding: t -*- ;;; Commentary: ;;; Code: @@ -29,4 +29,4 @@ ;; coding: utf-8 ;; no-byte-compile: t ;; End: -;;; build.el ends here +;;; test.el ends here From ed5bce359cfdbe591c609c18462af72cc135ee02 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:21:01 +0800 Subject: [PATCH 39/51] Add testing info --- bin/test.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/test.el b/bin/test.el index ea631d072..211edc08f 100644 --- a/bin/test.el +++ b/bin/test.el @@ -11,6 +11,8 @@ (defconst jcs-ci t "Flag for CI testing.") +(message "Testing...") + (let (debug-on-error url-show-status (user-emacs-directory default-directory) From ec3642e3da4eeaa96fa978b22f6889952e9af6c1 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:23:49 +0800 Subject: [PATCH 40/51] Test CI --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index c11735223..7f2e2e60e 100644 --- a/Makefile +++ b/Makefile @@ -6,4 +6,5 @@ CASK ?= cask .PHONY: startup startup: + @echo "What..." @$(EMACS) -nw --batch -l "~/.emacs.d/bin/test.el" From 0487bb570b69d9bb7f001725a97f5c002e96acc5 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:25:28 +0800 Subject: [PATCH 41/51] . --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 7f2e2e60e..019eb0a4e 100644 --- a/Makefile +++ b/Makefile @@ -7,4 +7,3 @@ CASK ?= cask startup: @echo "What..." - @$(EMACS) -nw --batch -l "~/.emacs.d/bin/test.el" From 41934c5a3ca57dc02f71cf317f1e94e4a3eb1e7a Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:27:56 +0800 Subject: [PATCH 42/51] Copy it --- Makefile | 1 + bin/copy_config.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 019eb0a4e..7f2e2e60e 100644 --- a/Makefile +++ b/Makefile @@ -7,3 +7,4 @@ CASK ?= cask startup: @echo "What..." + @$(EMACS) -nw --batch -l "~/.emacs.d/bin/test.el" diff --git a/bin/copy_config.sh b/bin/copy_config.sh index 4d6fd2faf..402d5403e 100644 --- a/bin/copy_config.sh +++ b/bin/copy_config.sh @@ -2,6 +2,6 @@ echo "Copying core files..." -mv -f ../jcs-emacs ~/.emacs.d +cp -R ../jcs-emacs ~/.emacs.d echo "Done copying configuration files" From a1e15fc02feeceba01ae45544f09111124b34619 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:44:24 +0800 Subject: [PATCH 43/51] Revert --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 7f2e2e60e..c11735223 100644 --- a/Makefile +++ b/Makefile @@ -6,5 +6,4 @@ CASK ?= cask .PHONY: startup startup: - @echo "What..." @$(EMACS) -nw --batch -l "~/.emacs.d/bin/test.el" From 37c7346dca36a0b335dbb399c1df9dfa8a11f83e Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:44:27 +0800 Subject: [PATCH 44/51] Test 1 --- core/jcs-hook.el | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/core/jcs-hook.el b/core/jcs-hook.el index e73b9a5f4..79aaa27fb 100644 --- a/core/jcs-hook.el +++ b/core/jcs-hook.el @@ -80,29 +80,8 @@ ;; (jcs-add-hook 'after-init-hook - (jcs-require '(dashboard diminish)) - (powerline-default-theme) - (use-ttf-set-default-font) - - (run-with-idle-timer 0 nil #'jcs-hook--init-delay) - - (jcs-setup-default-theme) - (jcs-depend-mode) - - ;; Font Size - (jcs-set-font-size jcs-default-font-size) - - ;; Frame Title - (setq frame-title-format - (list (format "%s %%S: %%j " (system-name)) - '(buffer-file-name "%f" (dired-directory dired-directory "%b")))) - - ;; NOTE: Lower the `GC' back to normal threshold. - (jcs-gc-cons-threshold-speed-up nil) - (setq file-name-handler-alist jcs-file-name-handler-alist) - - ;; IMPORTANT: This should always be the last thing. - (jcs-dashboard-init-info)) + + ) (defun jcs-hook--init-delay () "Delay some executions for faster speed." From 2a0e1192b52613400e4a014119e6825b8e456b80 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:44:41 +0800 Subject: [PATCH 45/51] Test 1 --- core/jcs-hook.el | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/jcs-hook.el b/core/jcs-hook.el index 79aaa27fb..6d01f9432 100644 --- a/core/jcs-hook.el +++ b/core/jcs-hook.el @@ -80,7 +80,15 @@ ;; (jcs-add-hook 'after-init-hook - + (jcs-require '(dashboard diminish)) + (powerline-default-theme) + (use-ttf-set-default-font) + + (run-with-idle-timer 0 nil #'jcs-hook--init-delay) + + (jcs-setup-default-theme) + (jcs-depend-mode) + ) (defun jcs-hook--init-delay () From 04c1a0b1c70642607b495eb73e6ba37aa1cb15a0 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 18:45:10 +0800 Subject: [PATCH 46/51] Test 1 --- core/jcs-hook.el | 9 --------- 1 file changed, 9 deletions(-) diff --git a/core/jcs-hook.el b/core/jcs-hook.el index 6d01f9432..7e1fc6846 100644 --- a/core/jcs-hook.el +++ b/core/jcs-hook.el @@ -80,15 +80,6 @@ ;; (jcs-add-hook 'after-init-hook - (jcs-require '(dashboard diminish)) - (powerline-default-theme) - (use-ttf-set-default-font) - - (run-with-idle-timer 0 nil #'jcs-hook--init-delay) - - (jcs-setup-default-theme) - (jcs-depend-mode) - ) (defun jcs-hook--init-delay () From 7c783413ae9246bb2bb7ad303007cf6eefdfd753 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 19:26:30 +0800 Subject: [PATCH 47/51] Use self add hook --- core/func/jcs-util.el | 6 ++- core/jcs-hook.el | 24 +++++++++- core/jcs-mode.el | 74 +++++++++--------------------- core/mode/jcs-actionscript-mode.el | 8 ++-- core/mode/jcs-ada-mode.el | 5 +- core/mode/jcs-agda-mode.el | 5 +- core/mode/jcs-applescript-mode.el | 5 +- core/mode/jcs-asm-mode.el | 10 +--- core/mode/jcs-basic-mode.el | 6 +-- core/mode/jcs-batch-mode.el | 6 +-- core/mode/jcs-c++-mode.el | 5 +- core/mode/jcs-c-mode.el | 6 +-- core/mode/jcs-cc-mode.el | 5 +- core/mode/jcs-clojure-mode.el | 6 +-- core/mode/jcs-cmake-mode.el | 6 +-- core/mode/jcs-cobol-mode.el | 5 +- core/mode/jcs-csharp-mode.el | 6 +-- core/mode/jcs-css-mode.el | 8 ++-- core/mode/jcs-dart-mode.el | 6 +-- core/mode/jcs-dockerfile-mode.el | 6 +-- core/mode/jcs-elixir-mode.el | 6 +-- core/mode/jcs-elm-mode.el | 7 +-- core/mode/jcs-erlang-mode.el | 6 +-- core/mode/jcs-fountain-mode.el | 5 +- core/mode/jcs-fsharp-mode.el | 6 +-- core/mode/jcs-gdscript-mode.el | 6 +-- core/mode/jcs-git-mode.el | 15 ++---- core/mode/jcs-go-mode.el | 5 +- core/mode/jcs-groovy-mode.el | 6 +-- core/mode/jcs-haskell-mode.el | 6 +-- core/mode/jcs-haxe-mode.el | 7 +-- core/mode/jcs-ini-mode.el | 6 +-- core/mode/jcs-java-mode.el | 6 +-- core/mode/jcs-jayces-mode.el | 7 +-- core/mode/jcs-jenkinsfile-mode.el | 5 +- core/mode/jcs-js-mode.el | 6 +-- core/mode/jcs-json-mode.el | 5 +- core/mode/jcs-jsx-mode.el | 7 ++- core/mode/jcs-kotlin-mode.el | 5 +- core/mode/jcs-less-css-mode.el | 6 +-- core/mode/jcs-lua-mode.el | 6 +-- core/mode/jcs-make-mode.el | 5 +- core/mode/jcs-markdown-mode.el | 7 ++- core/mode/jcs-message-mode.el | 5 +- core/mode/jcs-nginx-mode.el | 6 +-- core/mode/jcs-nix-mode.el | 6 +-- core/mode/jcs-objc-mode.el | 6 +-- core/mode/jcs-opascal-mode.el | 6 +-- core/mode/jcs-org-mode.el | 5 +- core/mode/jcs-pascal-mode.el | 6 +-- core/mode/jcs-perl-mode.el | 6 +-- core/mode/jcs-powershell-mode.el | 6 +-- core/mode/jcs-processing-mode.el | 5 +- core/mode/jcs-properties-mode.el | 5 +- core/mode/jcs-python-mode.el | 6 +-- core/mode/jcs-r-mode.el | 6 +-- core/mode/jcs-re-builder-mode.el | 6 +-- core/mode/jcs-ruby-mode.el | 6 +-- core/mode/jcs-rust-mode.el | 6 +-- core/mode/jcs-sass-mode.el | 6 +-- core/mode/jcs-scala-mode.el | 6 +-- core/mode/jcs-scss-mode.el | 6 +-- core/mode/jcs-sh-mode.el | 6 +-- core/mode/jcs-shader-mode.el | 11 +---- core/mode/jcs-shell-mode.el | 9 ++-- core/mode/jcs-snippet-mode.el | 6 +-- core/mode/jcs-sql-mode.el | 5 +- core/mode/jcs-swift-mode.el | 6 +-- core/mode/jcs-typescript-mode.el | 6 +-- core/mode/jcs-verilog-mode.el | 6 +-- core/mode/jcs-vimscript-mode.el | 6 +-- core/mode/jcs-vue-mode.el | 5 +- core/mode/jcs-web-mode.el | 15 ++---- core/mode/jcs-xml-mode.el | 9 ++-- core/mode/jcs-yaml-mode.el | 6 +-- 75 files changed, 144 insertions(+), 416 deletions(-) diff --git a/core/func/jcs-util.el b/core/func/jcs-util.el index 54a63516f..9ce5a1c5a 100644 --- a/core/func/jcs-util.el +++ b/core/func/jcs-util.el @@ -6,10 +6,12 @@ ;; (@* "Macro" ) ;; -(defmacro jcs-add-hook (hook &rest body) +(defmacro jcs-add-hook (hooks &rest body) "Global add-hook utility." (declare (indent 1)) - `(add-hook ,hook (lambda (&rest _) ,@body))) + `(cond ((listp ,hooks) + (dolist (hook ,hooks) (add-hook hook (lambda (&rest _) ,@body)))) + (t (add-hook ,hooks (lambda (&rest _) ,@body))))) (defmacro jcs-with-gc-speed-up (&rest body) "Execute BODY with higher GC threshold." diff --git a/core/jcs-hook.el b/core/jcs-hook.el index 7e1fc6846..e73b9a5f4 100644 --- a/core/jcs-hook.el +++ b/core/jcs-hook.el @@ -80,7 +80,29 @@ ;; (jcs-add-hook 'after-init-hook - ) + (jcs-require '(dashboard diminish)) + (powerline-default-theme) + (use-ttf-set-default-font) + + (run-with-idle-timer 0 nil #'jcs-hook--init-delay) + + (jcs-setup-default-theme) + (jcs-depend-mode) + + ;; Font Size + (jcs-set-font-size jcs-default-font-size) + + ;; Frame Title + (setq frame-title-format + (list (format "%s %%S: %%j " (system-name)) + '(buffer-file-name "%f" (dired-directory dired-directory "%b")))) + + ;; NOTE: Lower the `GC' back to normal threshold. + (jcs-gc-cons-threshold-speed-up nil) + (setq file-name-handler-alist jcs-file-name-handler-alist) + + ;; IMPORTANT: This should always be the last thing. + (jcs-dashboard-init-info)) (defun jcs-hook--init-delay () "Delay some executions for faster speed." diff --git a/core/jcs-mode.el b/core/jcs-mode.el index b76a10143..46cd205fd 100644 --- a/core/jcs-mode.el +++ b/core/jcs-mode.el @@ -160,23 +160,21 @@ Note this is opposite logic to the toggle mode function." ;; So just put all the startup modes' configuration here. ;;; Special -(add-hook 'special-mode-hook (lambda () (goto-address-mode 1))) +(jcs-add-hook 'special-mode-hook (goto-address-mode 1)) ;;; Backtrace -(add-hook 'backtrace-mode-hook (lambda () (buffer-wrap-mode 1))) +(jcs-add-hook 'backtrace-mode-hook (buffer-wrap-mode 1)) ;;; Buffer Menu -(add-hook 'Buffer-menu-mode-hook (lambda () (require 'jcs-buffer-menu))) +(jcs-add-hook 'Buffer-menu-mode-hook (require 'jcs-buffer-menu)) ;;; Diff -(add-hook 'diff-mode-hook - (lambda () - (jcs-bind-key (kbd "M-k") #'jcs-maybe-kill-this-buffer) - (jcs-bind-key (kbd "M-K") #'jcs-reopen-this-buffer))) +(jcs-add-hook 'diff-mode-hook + (jcs-bind-key (kbd "M-k") #'jcs-maybe-kill-this-buffer) + (jcs-bind-key (kbd "M-K") #'jcs-reopen-this-buffer)) ;;; Compilation -(defun jcs-compilation-mode-hook () - "Hook for `compilation-mode'." +(jcs-add-hook '(compilation-mode-hook comint-mode-hook) (buffer-disable-undo) (goto-address-mode 1) (toggle-truncate-lines -1) @@ -189,21 +187,16 @@ Note this is opposite logic to the toggle mode function." (jcs-bind-key (kbd "C-_") #'jcs-output-prev-compilation) (jcs-bind-key (kbd "C-+") #'jcs-output-next-compilation)) -(add-hook 'compilation-mode-hook 'jcs-compilation-mode-hook) -(add-hook 'comint-mode-hook 'jcs-compilation-mode-hook) - ;;; Message Buffer -(add-hook 'messages-buffer-mode-hook - (lambda () - (auto-highlight-symbol-mode 1) - (goto-address-mode 1) - (page-break-lines-mode 1))) +(jcs-add-hook 'messages-buffer-mode-hook + (auto-highlight-symbol-mode 1) + (goto-address-mode 1) + (page-break-lines-mode 1)) ;;; Tabulated List -(add-hook 'tabulated-list-mode-hook - (lambda () - (when (memq major-mode '(Buffer-menu-mode package-menu-mode)) - (buffer-wrap-mode 1)))) +(jcs-add-hook 'tabulated-list-mode-hook + (when (memq major-mode '(Buffer-menu-mode package-menu-mode)) + (buffer-wrap-mode 1))) ;;============================================================================ ;; Project @@ -218,8 +211,7 @@ Note this is opposite logic to the toggle mode function." ;;============================================================================ ;; Base Mode -(defun jcs-base-mode-hook () - "Major mode hook for every major mode." +(jcs-add-hook '(text-mode-hook prog-mode-hook) (auto-highlight-symbol-mode t) (electric-pair-mode 1) (goto-address-mode 1) @@ -227,22 +219,15 @@ Note this is opposite logic to the toggle mode function." (jcs-active-project-mode-hook)) -(add-hook 'text-mode-hook 'jcs-base-mode-hook) -(add-hook 'prog-mode-hook 'jcs-base-mode-hook) - ;;; Text -(defun jcs-text-mode-hook () - "Text mode hook." +(jcs-add-hook 'text-mode-hook (jcs-insert-header-if-valid '("\\(/\\|\\`\\)[Ll][Ii][Cc][Ee][Nn][Ss][Ee]") 'jcs-ask-insert-license-content :interactive t) - (jcs-insert-header-if-valid '("\\(/\\|\\`\\)[Cc][Hh][Aa][Nn][Gg][Ee][-_]*[Ll][Oo][Gg]") 'jcs-ask-insert-changelog-content :interactive t)) -(add-hook 'text-mode-hook 'jcs-text-mode-hook) - ;;============================================================================ ;; Programming Mode @@ -251,8 +236,7 @@ Note this is opposite logic to the toggle mode function." To avoid syntax highlighting error for comment.") -(defun jcs-prog-mode-hook () - "Programming language mode hook." +(jcs-add-hook 'prog-mode-hook (unless (memq major-mode jcs-mode--dash-major-modes) (modify-syntax-entry ?- "_")) @@ -270,41 +254,27 @@ To avoid syntax highlighting error for comment.") (display-fill-column-indicator-mode 1) (highlight-numbers-mode 1)) -(add-hook 'prog-mode-hook 'jcs-prog-mode-hook) - ;;; Emacs Lisp -(defun jcs-emacs-lisp-mode-hook () - "Emacs Lisp mode hook." +(jcs-add-hook 'emacs-lisp-mode-hook (modify-syntax-entry ?_ "w") ; Treat underscore as word. - (jcs-insert-header-if-valid '("[.]el") 'jcs-insert-emacs-lisp-template)) -(add-hook 'emacs-lisp-mode-hook 'jcs-emacs-lisp-mode-hook) - ;;; Lisp -(defun jcs-lisp-mode-hook () - "Lisp mode hook." +(jcs-add-hook 'lisp-mode-hook (modify-syntax-entry ?_ "w") ; Treat underscore as word. - (jcs-insert-header-if-valid '("[.]lisp") 'jcs-insert-lisp-template)) -(add-hook 'lisp-mode-hook 'jcs-lisp-mode-hook) - ;;; Lisp Interaction -(defun jcs-lisp-interaction-mode-hook () - "Lisp Interaction mode hook." +(jcs-add-hook 'lisp-interaction-mode-hook (jcs-bind-key (kbd "M-k") #'jcs-scratch-buffer-maybe-kill) (jcs-bind-key (kbd "M-K") #'jcs-scratch-buffer-refresh)) -(add-hook 'lisp-interaction-mode-hook 'jcs-lisp-interaction-mode-hook) - ;;============================================================================ ;; View -(defun jcs-view-mode-hook () - "In view mode, read only file." +(jcs-add-hook 'view-mode-hook (require 'view) (unless (equal jcs-mode--state 'view) ;; unset all the key @@ -314,8 +284,6 @@ To avoid syntax highlighting error for comment.") (dolist (key-str jcs-key-list) (define-key view-mode-map key-str nil)))) -(add-hook 'view-mode-hook 'jcs-view-mode-hook) - ;;---------------------------------------------------------------------------- ;;; Modes diff --git a/core/mode/jcs-actionscript-mode.el b/core/mode/jcs-actionscript-mode.el index 709b0c6ee..b68388b42 100644 --- a/core/mode/jcs-actionscript-mode.el +++ b/core/mode/jcs-actionscript-mode.el @@ -16,8 +16,9 @@ ;; (@* "Hook" ) ;; -(defun jcs-actionscript-mode-hook () - "ActionScript mode hook." +(add-hook 'actionscript-mode-hook 'jcs-prog-mode-hook) + +(jcs-add-hook 'actionscript-mode-hook (jcs-use-cc-mutliline-comment) (setq-local docstr-show-type-name nil) @@ -42,8 +43,5 @@ (jcs-bind-key (kbd "C-v") #'jcs-smart-yank)) -(add-hook 'actionscript-mode-hook 'jcs-prog-mode-hook) -(add-hook 'actionscript-mode-hook 'jcs-actionscript-mode-hook) - (provide 'jcs-actionscript-mode) ;;; jcs-actionscript-mode.el ends here diff --git a/core/mode/jcs-ada-mode.el b/core/mode/jcs-ada-mode.el index 2f9681cd2..959fac76c 100644 --- a/core/mode/jcs-ada-mode.el +++ b/core/mode/jcs-ada-mode.el @@ -16,13 +16,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-ada-mode-hook () - "Ada mode hook." +(jcs-add-hook 'ada-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]ads") 'jcs-insert-ada-template)) -(add-hook 'ada-mode-hook 'jcs-ada-mode-hook) - (provide 'jcs-ada-mode) ;;; jcs-ada-mode.el ends here diff --git a/core/mode/jcs-agda-mode.el b/core/mode/jcs-agda-mode.el index 45dc26f2b..a5c065d34 100644 --- a/core/mode/jcs-agda-mode.el +++ b/core/mode/jcs-agda-mode.el @@ -16,13 +16,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-agda-mode-hook () - "Agda mode hook." +(jcs-add-hook 'agda2-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]agda" "[.]lagda") 'jcs-insert-agda-template)) -(add-hook 'agda2-mode-hook 'jcs-agda-mode-hook) - (provide 'jcs-agda-mode) ;;; jcs-agda-mode.el ends here diff --git a/core/mode/jcs-applescript-mode.el b/core/mode/jcs-applescript-mode.el index 4e12ed7e3..2d79df73b 100644 --- a/core/mode/jcs-applescript-mode.el +++ b/core/mode/jcs-applescript-mode.el @@ -16,13 +16,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-applescript-mode-hook () - "Hook for AppleScript." +(jcs-add-hook 'applescript-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]applescript" "[.]scpt" "[.]scptd") 'jcs-insert-applescript-template)) -(add-hook 'applescript-mode-hook 'jcs-applescript-mode-hook) - (provide 'jcs-applescript-mode) ;;; jcs-applescript-mode.el ends here diff --git a/core/mode/jcs-asm-mode.el b/core/mode/jcs-asm-mode.el index 34984e275..1210d0244 100644 --- a/core/mode/jcs-asm-mode.el +++ b/core/mode/jcs-asm-mode.el @@ -140,8 +140,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-masm-mode-hook () - "MASM mode hook." +(jcs-add-hook 'masm-mode-hook (electric-pair-mode nil) (modify-syntax-entry ?_ "w") @@ -155,10 +154,7 @@ (jcs-bind-key (kbd "RET") #'jcs-asm-return) (jcs-bind-key (kbd ";") #'jcs-asm-comment)) -(add-hook 'masm-mode-hook 'jcs-masm-mode-hook) - -(defun jcs-nasm-mode-hook () - "NASM mode hook." +(jcs-add-hook 'nasm-mode-hook (electric-pair-mode nil) (modify-syntax-entry ?_ "w") @@ -173,7 +169,5 @@ (jcs-bind-key (kbd "RET") #'jcs-asm-return) (jcs-bind-key (kbd ";") #'jcs-asm-comment)) -(add-hook 'nasm-mode-hook 'jcs-nasm-mode-hook) - (provide 'jcs-asm-mode) ;;; jcs-asm-mode.el ends here diff --git a/core/mode/jcs-basic-mode.el b/core/mode/jcs-basic-mode.el index 46e2a26fd..168f4732d 100644 --- a/core/mode/jcs-basic-mode.el +++ b/core/mode/jcs-basic-mode.el @@ -16,14 +16,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-basic-mode-hook () - "Hook for `basic-mode'." - +(jcs-add-hook 'basic-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]bas") 'jcs-insert-basic-template)) -(add-hook 'basic-mode-hook 'jcs-basic-mode-hook) - (provide 'jcs-basic-mode) ;;; jcs-basic-mode.el ends here diff --git a/core/mode/jcs-batch-mode.el b/core/mode/jcs-batch-mode.el index a48af0df6..19202c92c 100644 --- a/core/mode/jcs-batch-mode.el +++ b/core/mode/jcs-batch-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-batch-mode-hook () - "Batch mode hook." - +(jcs-add-hook 'bat-mode-hook (setq comment-start "::") (modify-syntax-entry ?_ "w") @@ -31,7 +29,5 @@ (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'previous)) (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next))) -(add-hook 'bat-mode-hook 'jcs-batch-mode-hook) - (provide 'jcs-batch-mode) ;;; jcs-batch-mode.el ends here diff --git a/core/mode/jcs-c++-mode.el b/core/mode/jcs-c++-mode.el index 73b2e4607..056d66c13 100644 --- a/core/mode/jcs-c++-mode.el +++ b/core/mode/jcs-c++-mode.el @@ -89,8 +89,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-c++-mode-hook () - "C++ mode handling" +(jcs-add-hook 'c++-mode-hook (add-hook 'docstr-after-insert-hook 'jcs-c++--docstr-after nil t) (jcs-company-safe-add-backend 'company-c-headers) @@ -120,7 +119,5 @@ (jcs-bind-key (kbd "C-z") #'jcs-undo) (jcs-bind-key (kbd "C-y") #'jcs-redo)) -(add-hook 'c++-mode-hook 'jcs-c++-mode-hook) - (provide 'jcs-c++-mode) ;;; jcs-c++-mode.el ends here diff --git a/core/mode/jcs-c-mode.el b/core/mode/jcs-c-mode.el index 9a1cdffc8..dbbeca5f6 100644 --- a/core/mode/jcs-c-mode.el +++ b/core/mode/jcs-c-mode.el @@ -20,9 +20,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-c-mode-hook () - "C mode handling" - +(jcs-add-hook 'c-mode-hook (jcs-company-safe-add-backend 'company-c-headers) ;; File Header @@ -48,7 +46,5 @@ (jcs-bind-key (kbd "C-z") #'jcs-undo) (jcs-bind-key (kbd "C-y") #'jcs-redo)) -(add-hook 'c-mode-hook 'jcs-c-mode-hook) - (provide 'jcs-c-mode) ;;; jcs-c-mode.el ends here diff --git a/core/mode/jcs-cc-mode.el b/core/mode/jcs-cc-mode.el index 9d5cbe3df..1901e1abb 100644 --- a/core/mode/jcs-cc-mode.el +++ b/core/mode/jcs-cc-mode.el @@ -136,8 +136,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-cc-mode-hook () - "C/C++ mode hook." +(jcs-add-hook 'c-mode-common-hook (jcs-use-cc-mutliline-comment) (jcs-company-safe-add-backend 'company-clang) @@ -150,7 +149,5 @@ (modify-syntax-entry ?_ "w")) -(add-hook 'c-mode-common-hook 'jcs-cc-mode-hook) - (provide 'jcs-cc-mode) ;;; jcs-cc-mode.el ends here diff --git a/core/mode/jcs-clojure-mode.el b/core/mode/jcs-clojure-mode.el index 5290184b4..f79d18489 100644 --- a/core/mode/jcs-clojure-mode.el +++ b/core/mode/jcs-clojure-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-clojure-mode-hook () - "Clojure mode hook." - +(jcs-add-hook 'clojure-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -26,7 +24,5 @@ (jcs-insert-header-if-valid '("[.]clj") 'jcs-insert-clojure-template)) -(add-hook 'clojure-mode-hook 'jcs-clojure-mode-hook) - (provide 'jcs-clojure-mode) ;;; jcs-clojure-mode.el ends here diff --git a/core/mode/jcs-cmake-mode.el b/core/mode/jcs-cmake-mode.el index a469b2d73..4162608f2 100644 --- a/core/mode/jcs-cmake-mode.el +++ b/core/mode/jcs-cmake-mode.el @@ -19,9 +19,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-cmake-mode-hook () - "CMake mode hook." - +(jcs-add-hook 'cmake-mode-hook (jcs-company-safe-add-backend 'company-cmake) ;; File Header @@ -33,7 +31,5 @@ (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next)) (jcs-bind-key (kbd "RET") #'jcs-makefile-newline)) -(add-hook 'cmake-mode-hook 'jcs-cmake-mode-hook) - (provide 'jcs-cmake-mode) ;;; jcs-cmake-mode.el ends here diff --git a/core/mode/jcs-cobol-mode.el b/core/mode/jcs-cobol-mode.el index 751243f0e..06d226af7 100644 --- a/core/mode/jcs-cobol-mode.el +++ b/core/mode/jcs-cobol-mode.el @@ -16,8 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-cobol-mode-hook () - "COBOL mode hook." +(jcs-add-hook 'cobol-mode-hook (electric-pair-mode nil) ;; File Header @@ -28,7 +27,5 @@ (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'previous)) (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next))) -(add-hook 'cobol-mode-hook 'jcs-cobol-mode-hook) - (provide 'jcs-cobol-mode) ;;; jcs-cobol-mode.el ends here diff --git a/core/mode/jcs-csharp-mode.el b/core/mode/jcs-csharp-mode.el index 3cc4a3b43..212dc2532 100644 --- a/core/mode/jcs-csharp-mode.el +++ b/core/mode/jcs-csharp-mode.el @@ -54,9 +54,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-csharp-mode-hook () - "Hook for C# mode." - +(jcs-add-hook 'csharp-mode-hook (setq-local docstr-show-type-name nil) (modify-syntax-entry ?_ "w") @@ -81,7 +79,5 @@ (jcs-bind-key (kbd "M-q") #'jcs-other-window-prev)) -(add-hook 'csharp-mode-hook 'jcs-csharp-mode-hook) - (provide 'jcs-csharp-mode) ;;; jcs-csharp-mode.el ends here diff --git a/core/mode/jcs-css-mode.el b/core/mode/jcs-css-mode.el index 257afd533..391e8b4f1 100644 --- a/core/mode/jcs-css-mode.el +++ b/core/mode/jcs-css-mode.el @@ -29,8 +29,9 @@ ;; (@* "Hook" ) ;; -(defun jcs-css-mode-hook () - "Hook for CSS mode." +(add-hook 'css-mode-hook 'emmet-mode) + +(jcs-add-hook 'css-mode-hook (impatient-mode t) ;; File Header @@ -52,8 +53,5 @@ ;; Eemmet (define-key emmet-mode-keymap (kbd "C-") #'jcs-emmet-expand-line)) -(add-hook 'css-mode-hook 'jcs-css-mode-hook) -(add-hook 'css-mode-hook 'emmet-mode) - (provide 'jcs-css-mode) ;;; jcs-css-mode.el ends here diff --git a/core/mode/jcs-dart-mode.el b/core/mode/jcs-dart-mode.el index 33f07e2a1..bf64cc9e8 100644 --- a/core/mode/jcs-dart-mode.el +++ b/core/mode/jcs-dart-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-dart-mode-hook () - "Dart mode hook." - +(jcs-add-hook 'dart-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -26,7 +24,5 @@ (jcs-insert-header-if-valid '("[.]dart") 'jcs-insert-dart-template)) -(add-hook 'dart-mode-hook 'jcs-dart-mode-hook) - (provide 'jcs-dart-mode) ;;; jcs-dart-mode.el ends here diff --git a/core/mode/jcs-dockerfile-mode.el b/core/mode/jcs-dockerfile-mode.el index f92111cc3..9c7ef8272 100644 --- a/core/mode/jcs-dockerfile-mode.el +++ b/core/mode/jcs-dockerfile-mode.el @@ -8,14 +8,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-dockerfile-mode-hook () - "Dokerfile mode hook." - +(jcs-add-hook 'dockerfile-mode-hook ;; Normal (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'previous)) (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next))) -(add-hook 'dockerfile-mode-hook 'jcs-dockerfile-mode-hook) - (provide 'jcs-dockerfile-mode) ;;; jcs-dockerfile-mode.el ends here diff --git a/core/mode/jcs-elixir-mode.el b/core/mode/jcs-elixir-mode.el index ea16ef883..7e1c10192 100644 --- a/core/mode/jcs-elixir-mode.el +++ b/core/mode/jcs-elixir-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-elixir-mode-hook () - "Elixir mode hook." - +(jcs-add-hook 'elixir-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -28,7 +26,5 @@ "[.]exs") 'jcs-insert-elixir-template)) -(add-hook 'elixir-mode-hook 'jcs-elixir-mode-hook) - (provide 'jcs-elixir-mode) ;;; jcs-elixir-mode.el ends here diff --git a/core/mode/jcs-elm-mode.el b/core/mode/jcs-elm-mode.el index d1fa3434b..26b1f948e 100644 --- a/core/mode/jcs-elm-mode.el +++ b/core/mode/jcs-elm-mode.el @@ -11,21 +11,16 @@ (defun jcs-insert-elm-template () "Template for Elm." (jcs--file-header--insert "elm" "default.txt")) - ;; ;; (@* "Hook" ) ;; -(defun jcs-elm-mode-hook () - "Elm mode hook." - +(jcs-add-hook 'elm-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") ;; File Header (jcs-insert-header-if-valid '("[.]elm") 'jcs-insert-elm-template)) -(add-hook 'elm-mode-hook 'jcs-elm-mode-hook) - (provide 'jcs-elm-mode) ;;; jcs-elm-mode.el ends here diff --git a/core/mode/jcs-erlang-mode.el b/core/mode/jcs-erlang-mode.el index a0d7afc87..4c0c8298b 100644 --- a/core/mode/jcs-erlang-mode.el +++ b/core/mode/jcs-erlang-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-erlang-mode-hook () - "Erlang mode hook." - +(jcs-add-hook 'erlang-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -31,7 +29,5 @@ (jcs-bind-key (kbd "M-w") #'jcs-other-window-next) (jcs-bind-key (kbd "M-q") #'jcs-other-window-prev)) -(add-hook 'erlang-mode-hook 'jcs-erlang-mode-hook) - (provide 'jcs-erlang-mode) ;;; jcs-erlang-mode.el ends here diff --git a/core/mode/jcs-fountain-mode.el b/core/mode/jcs-fountain-mode.el index 9c0d0592c..1fab3f943 100644 --- a/core/mode/jcs-fountain-mode.el +++ b/core/mode/jcs-fountain-mode.el @@ -16,13 +16,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-fountain-mode-hook () - "Fountain mode hook." +(jcs-add-hook 'fountain-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]fountain") 'jcs-insert-fountain-template)) -(add-hook 'fountain-mode-hook 'jcs-fountain-mode-hook) - (provide 'jcs-fountain-mode) ;;; jcs-fountain-mode.el ends here diff --git a/core/mode/jcs-fsharp-mode.el b/core/mode/jcs-fsharp-mode.el index 8a7bf4c46..5cf6e292c 100644 --- a/core/mode/jcs-fsharp-mode.el +++ b/core/mode/jcs-fsharp-mode.el @@ -16,14 +16,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-fsharp-mode-hook () - "Hook for F# mode." - +(jcs-add-hook 'fsharp-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]fs") 'jcs-insert-fsharp-template)) -(add-hook 'fsharp-mode-hook 'jcs-fsharp-mode-hook) - (provide 'jcs-fsharp-mode) ;;; jcs-fsharp-mode.el ends here diff --git a/core/mode/jcs-gdscript-mode.el b/core/mode/jcs-gdscript-mode.el index e8ea934f5..7577ca377 100644 --- a/core/mode/jcs-gdscript-mode.el +++ b/core/mode/jcs-gdscript-mode.el @@ -15,9 +15,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-gdscript-mode-hook () - "Godot Script mode hook." - +(jcs-add-hook 'gdscript-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -25,7 +23,5 @@ (jcs-insert-header-if-valid '("[.]gd") 'jcs-insert-gdscript-template)) -(add-hook 'gdscript-mode-hook 'jcs-gdscript-mode-hook) - (provide 'jcs-gdscript-mode) ;;; jcs-gdscript-mode.el ends here diff --git a/core/mode/jcs-git-mode.el b/core/mode/jcs-git-mode.el index 87ff63f21..c87641040 100644 --- a/core/mode/jcs-git-mode.el +++ b/core/mode/jcs-git-mode.el @@ -22,18 +22,14 @@ ;; (@* "Hook" ) ;; -(defun jcs-gitattributes-mode-hook () - "Gitattributes mode hook." +(jcs-add-hook 'gitattributes-mode-hook (electric-pair-mode nil) ;; Normal (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'previous)) (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next))) -(add-hook 'gitattributes-mode-hook 'jcs-gitattributes-mode-hook) - -(defun jcs-gitconfig-mode-hook () - "Gitconfig mode hook." +(jcs-add-hook 'gitconfig-mode-hook (electric-pair-mode nil) ;; Normal @@ -42,10 +38,7 @@ (jcs-bind-key (kbd "C-d") #'jcs-kill-whole-line) (jcs-bind-key (kbd "C-c C-c") #'kill-ring-save)) -(add-hook 'gitconfig-mode-hook 'jcs-gitconfig-mode-hook) - -(defun jcs-gitignore-mode-hook () - "Gitignore mode hook." +(jcs-add-hook 'gitignore-mode-hook (electric-pair-mode nil) (jcs-insert-header-if-valid '("[.]gitignore") @@ -62,7 +55,5 @@ (jcs-bind-key (kbd "C-d") #'jcs-kill-whole-line) (jcs-bind-key (kbd "C-c C-c") #'kill-ring-save)) -(add-hook 'gitignore-mode-hook 'jcs-gitignore-mode-hook) - (provide 'jcs-git-mode) ;;; jcs-git-mode.el ends here diff --git a/core/mode/jcs-go-mode.el b/core/mode/jcs-go-mode.el index a72fc4980..4934d9841 100644 --- a/core/mode/jcs-go-mode.el +++ b/core/mode/jcs-go-mode.el @@ -16,8 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-go-mode-hook () - "Go mode hook." +(jcs-add-hook 'go-mode-hook (jcs-use-cc-mutliline-comment) (setq-local docstr-show-type-name nil) @@ -28,7 +27,5 @@ (jcs-insert-header-if-valid '("[.]go") 'jcs-insert-go-template)) -(add-hook 'go-mode-hook 'jcs-go-mode-hook) - (provide 'jcs-go-mode) ;;; jcs-go-mode.el ends here diff --git a/core/mode/jcs-groovy-mode.el b/core/mode/jcs-groovy-mode.el index 163dfa8d5..cd5bcd05b 100644 --- a/core/mode/jcs-groovy-mode.el +++ b/core/mode/jcs-groovy-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-groovy-mode-hook () - "Hook for `groovy-mode'." - +(jcs-add-hook 'groovy-mode-hook (setq-local docstr-show-type-name nil) ;; File Header @@ -26,7 +24,5 @@ "[.]gradle") 'jcs-insert-groovy-template)) -(add-hook 'groovy-mode-hook 'jcs-groovy-mode-hook) - (provide 'jcs-groovy-mode) ;;; jcs-groovy-mode.el ends here diff --git a/core/mode/jcs-haskell-mode.el b/core/mode/jcs-haskell-mode.el index 691e20de9..dac909d3a 100644 --- a/core/mode/jcs-haskell-mode.el +++ b/core/mode/jcs-haskell-mode.el @@ -16,14 +16,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-haskell-mode-hook () - "Haskell mode hook." - +(jcs-add-hook 'haskell-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]hs") 'jcs-insert-haskell-template)) -(add-hook 'haskell-mode-hook 'jcs-haskell-mode-hook) - (provide 'jcs-haskell-mode) ;;; jcs-haskell-mode.el ends here diff --git a/core/mode/jcs-haxe-mode.el b/core/mode/jcs-haxe-mode.el index d0c9f7ea5..83d0ad14a 100644 --- a/core/mode/jcs-haxe-mode.el +++ b/core/mode/jcs-haxe-mode.el @@ -16,9 +16,9 @@ ;; (@* "Hook" ) ;; -(defun jcs-haxe-mode-hook () - "Haxe mode hook." +(add-hook 'haxe-mode-hook 'jcs-prog-mode-hook) +(jcs-add-hook 'haxe-mode-hook (modify-syntax-entry ?_ "w") ;; File Header @@ -42,8 +42,5 @@ (jcs-bind-key (kbd "M-w") #'jcs-other-window-next) (jcs-bind-key (kbd "M-q") #'jcs-other-window-prev)) -(add-hook 'haxe-mode-hook 'jcs-prog-mode-hook) -(add-hook 'haxe-mode-hook 'jcs-haxe-mode-hook) - (provide 'jcs-haxe-mode) ;;; jcs-haxe-mode.el ends here diff --git a/core/mode/jcs-ini-mode.el b/core/mode/jcs-ini-mode.el index 0d9912188..21a1fe538 100644 --- a/core/mode/jcs-ini-mode.el +++ b/core/mode/jcs-ini-mode.el @@ -8,9 +8,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-ini-mode-hook () - "INI mode hook." - +(jcs-add-hook 'ini-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -18,7 +16,5 @@ (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'previous)) (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next))) -(add-hook 'ini-mode-hook 'jcs-ini-mode-hook) - (provide 'jcs-ini-mode) ;;; jcs-ini-mode.el ends here diff --git a/core/mode/jcs-java-mode.el b/core/mode/jcs-java-mode.el index 7c4df8a3e..fe14229af 100644 --- a/core/mode/jcs-java-mode.el +++ b/core/mode/jcs-java-mode.el @@ -143,9 +143,7 @@ Including adding or removing the package path." ;; (@* "Hook" ) ;; -(defun jcs-java-mode-hook () - "Java mode hook." - +(jcs-add-hook 'java-mode-hook (setq-local docstr-show-type-name nil) ;; Treat underscore as word. @@ -171,7 +169,5 @@ Including adding or removing the package path." (jcs-bind-key (kbd "") #'javadoc-lookup) (jcs-bind-key (kbd "S-") #'javadoc-lookup)) -(add-hook 'java-mode-hook 'jcs-java-mode-hook) - (provide 'jcs-java-mode) ;;; jcs-java-mode.el ends here diff --git a/core/mode/jcs-jayces-mode.el b/core/mode/jcs-jayces-mode.el index 83d3af355..29fa38a84 100644 --- a/core/mode/jcs-jayces-mode.el +++ b/core/mode/jcs-jayces-mode.el @@ -16,19 +16,14 @@ ;; (@* "Hook" ) ;; -(defun jcs-jayces-mode-hook () - "JayCeS mode hook." - +(jcs-add-hook 'jayces-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") - ;; File Header (jcs-insert-header-if-valid '("[.]jcs" "[.]jayces") 'jcs-insert-jayces-template)) -(add-hook 'jayces-mode-hook 'jcs-jayces-mode-hook) - (provide 'jcs-jayces-mode) ;;; jcs-jayces-mode.el ends here diff --git a/core/mode/jcs-jenkinsfile-mode.el b/core/mode/jcs-jenkinsfile-mode.el index cb9ce6eea..07a451656 100644 --- a/core/mode/jcs-jenkinsfile-mode.el +++ b/core/mode/jcs-jenkinsfile-mode.el @@ -16,12 +16,9 @@ ;; (@* "Hook" ) ;; -(defun jcs-jenkinsfile-mode-hook () - "Jenkinsfile mode hook." +(jcs-add-hook 'jenkinsfile-mode-hook (jcs-insert-header-if-valid '("Jenkinsfile") 'jcs-insert-jenkinsfile-template)) -(add-hook 'jenkinsfile-mode-hook 'jcs-jenkinsfile-mode-hook) - (provide 'jcs-jenkinsfile-mode) ;;; jcs-jenkinsfile-mode.el ends here diff --git a/core/mode/jcs-js-mode.el b/core/mode/jcs-js-mode.el index b4e0a7ead..f120e4638 100644 --- a/core/mode/jcs-js-mode.el +++ b/core/mode/jcs-js-mode.el @@ -44,8 +44,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-js-mode-hook () - "Mode hook for JavaScript mode." +(jcs-add-hook '(js-mode-hook js2-mode-hook) (auto-rename-tag-mode 1) (impatient-mode t) (js2-minor-mode 1) @@ -67,8 +66,5 @@ (jcs--js-to-jsx-mode)) -(add-hook 'js-mode-hook 'jcs-js-mode-hook) -(add-hook 'js2-mode-hook 'jcs-js-mode-hook) - (provide 'jcs-js-mode) ;;; jcs-js-mode.el ends here diff --git a/core/mode/jcs-json-mode.el b/core/mode/jcs-json-mode.el index bf8186e2f..e53a498c5 100644 --- a/core/mode/jcs-json-mode.el +++ b/core/mode/jcs-json-mode.el @@ -17,8 +17,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-json-mode-hook () - "JSON mode hook." +(jcs-add-hook 'json-mode-hook (js2-minor-mode -1) (remove-hook 'after-change-functions 'js2-minor-mode-edit t) @@ -33,7 +32,5 @@ (jcs-bind-key (kbd "{") #'jcs-vs-opening-curly-bracket-key) (jcs-bind-key (kbd ";") #'jcs-vs-semicolon-key)) -(add-hook 'json-mode-hook 'jcs-json-mode-hook) - (provide 'jcs-json-mode) ;;; jcs-json-mode.el ends here diff --git a/core/mode/jcs-jsx-mode.el b/core/mode/jcs-jsx-mode.el index 15a4e05d1..6e75d1c0e 100644 --- a/core/mode/jcs-jsx-mode.el +++ b/core/mode/jcs-jsx-mode.el @@ -48,8 +48,9 @@ ;; (@* "Hook" ) ;; -(defun jcs-jsx-mode-hook () - "Mode hook for JSX mode." +(add-hook 'rjsx-mode-hook 'emmet-mode) + +(jcs-add-hook 'rjsx-mode-hook (auto-rename-tag-mode 1) ;; File Header @@ -64,8 +65,6 @@ ;; Emmet (define-key emmet-mode-keymap (kbd "C-") #'jcs-emmet-expand-line)) -(add-hook 'rjsx-mode-hook 'jcs-jsx-mode-hook) -(add-hook 'rjsx-mode-hook 'emmet-mode) (provide 'jcs-jsx-mode) ;;; jcs-jsx-mode.el ends here diff --git a/core/mode/jcs-kotlin-mode.el b/core/mode/jcs-kotlin-mode.el index a27527a85..9a1a0c20d 100644 --- a/core/mode/jcs-kotlin-mode.el +++ b/core/mode/jcs-kotlin-mode.el @@ -16,15 +16,12 @@ ;; (@* "Hook" ) ;; -(defun jcs-kotlin-mode-hook () - "Kotlin mode hook." +(jcs-add-hook 'kotlin-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]kt" "[.]ktm" "[.]kts") 'jcs-insert-kotlin-template)) -(add-hook 'kotlin-mode-hook 'jcs-kotlin-mode-hook) - (provide 'jcs-kotlin-mode) ;;; jcs-kotlin-mode.el ends here diff --git a/core/mode/jcs-less-css-mode.el b/core/mode/jcs-less-css-mode.el index 7d8714c51..abc153b08 100644 --- a/core/mode/jcs-less-css-mode.el +++ b/core/mode/jcs-less-css-mode.el @@ -17,14 +17,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-less-css-mode-hook () - "LESS CSS mode hook." - +(jcs-add-hook 'less-css-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]less") 'jcs-insert-less-template)) -(add-hook 'less-css-mode-hook 'jcs-less-css-mode-hook) - (provide 'jcs-less-css-mode) ;;; jcs-less-css-mode.el ends here diff --git a/core/mode/jcs-lua-mode.el b/core/mode/jcs-lua-mode.el index 344b4dcbc..28896136f 100644 --- a/core/mode/jcs-lua-mode.el +++ b/core/mode/jcs-lua-mode.el @@ -23,9 +23,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-lua-mode-hook () - "Lau mode hook." - +(jcs-add-hook 'lua-mode-hook (jcs-elec-pair-add '((?\[ . ?\]))) (setq-local electric-pair-inhibit-predicate 'jcs-lua--electric-pair-inhibit-predicate) @@ -37,7 +35,5 @@ (jcs-insert-header-if-valid '("[.]lua" "[.]luac") 'jcs-insert-lua-template)) -(add-hook 'lua-mode-hook 'jcs-lua-mode-hook) - (provide 'jcs-lua-mode) ;;; jcs-lua-mode.el ends here diff --git a/core/mode/jcs-make-mode.el b/core/mode/jcs-make-mode.el index d0e5ea1a8..49f32a5ad 100644 --- a/core/mode/jcs-make-mode.el +++ b/core/mode/jcs-make-mode.el @@ -108,8 +108,7 @@ TYPE: type of makefile for Python." ;; (@* "Hook" ) ;; -(defun jcs-makefile-mode-hook () - "Makefile mode hook." +(jcs-add-hook 'makefile-mode-hook (electric-pair-mode nil) ;; File Header @@ -124,7 +123,5 @@ TYPE: type of makefile for Python." (jcs-bind-key (kbd "RET") #'jcs-makefile-newline) (jcs-bind-key (kbd "C-v") #'yank)) -(add-hook 'makefile-mode-hook 'jcs-makefile-mode-hook) - (provide 'jcs-make-mode) ;;; jcs-make-mode.el ends here diff --git a/core/mode/jcs-markdown-mode.el b/core/mode/jcs-markdown-mode.el index b0c8271b5..f2e3b5b2a 100644 --- a/core/mode/jcs-markdown-mode.el +++ b/core/mode/jcs-markdown-mode.el @@ -78,8 +78,13 @@ ;; (@* "Hook" ) ;; +(add-hook 'markdown-mode-hook 'emmet-mode) + (defun jcs-markdown-mode-hook () "Markdown mode hook." + ) + +(jcs-add-hook 'markdown-mode-hook (emojify-mode 1) (jcs-safe-er/expand-list '(web-mode-mark-and-expand) t) @@ -101,8 +106,6 @@ ;; Eemmet (define-key emmet-mode-keymap (kbd "C-") #'jcs-emmet-expand-line)) -(add-hook 'markdown-mode-hook 'jcs-markdown-mode-hook) -(add-hook 'markdown-mode-hook 'emmet-mode) (provide 'jcs-markdown-mode) ;;; jcs-markdown-mode.el ends here diff --git a/core/mode/jcs-message-mode.el b/core/mode/jcs-message-mode.el index 53714d101..a27355c47 100644 --- a/core/mode/jcs-message-mode.el +++ b/core/mode/jcs-message-mode.el @@ -8,15 +8,12 @@ ;; (@* "Hook" ) ;; -(defun jcs-message-mode-hook () - "Message mode hook." +(jcs-add-hook 'message-mode-hook (electric-pair-mode nil) ;; Normal (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'previous)) (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next))) -(add-hook 'message-mode-hook 'jcs-message-mode-hook) - (provide 'jcs-message-mode) ;;; jcs-message-mode.el ends here diff --git a/core/mode/jcs-nginx-mode.el b/core/mode/jcs-nginx-mode.el index 40e1ad63f..ec2c50ea9 100644 --- a/core/mode/jcs-nginx-mode.el +++ b/core/mode/jcs-nginx-mode.el @@ -16,16 +16,12 @@ ;; (@* "Hook" ) ;; -(defun jcs-nginx-mode-hook () - "Hook for `nginx-mode'." - +(jcs-add-hook 'nginx-mode-hook (jcs-company-safe-add-backend 'company-nginx) ;; File Header (jcs-insert-header-if-valid '("[.]conf") 'jcs-insert-nginx-template)) -(add-hook 'nginx-mode-hook 'jcs-nginx-mode-hook) - (provide 'jcs-nginx-mode) ;;; jcs-nginx-mode.el ends here diff --git a/core/mode/jcs-nix-mode.el b/core/mode/jcs-nix-mode.el index 71d048058..04b49a83c 100644 --- a/core/mode/jcs-nix-mode.el +++ b/core/mode/jcs-nix-mode.el @@ -16,14 +16,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-nix-mode-hook () - "Hook for `nix-mode'." - +(jcs-add-hook 'nix-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]nix") 'jcs-insert-nix-template)) -(add-hook 'nix-mode-hook 'jcs-nix-mode-hook) - (provide 'jcs-nix-mode) ;;; jcs-nix-mode.el ends here diff --git a/core/mode/jcs-objc-mode.el b/core/mode/jcs-objc-mode.el index 1608fd166..d39e08fea 100644 --- a/core/mode/jcs-objc-mode.el +++ b/core/mode/jcs-objc-mode.el @@ -18,9 +18,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-objc-mode-hook () - "Objective-C mode hook." - +(jcs-add-hook 'objc-mode-hook (jcs-company-safe-add-backend 'company-c-headers) ;; File Header @@ -52,7 +50,5 @@ (jcs-bind-key (kbd "C-z") #'jcs-undo) (jcs-bind-key (kbd "C-y") #'jcs-redo)) -(add-hook 'objc-mode-hook 'jcs-objc-mode-hook) - (provide 'jcs-objc-mode) ;;; jcs-objc-mode.el ends here diff --git a/core/mode/jcs-opascal-mode.el b/core/mode/jcs-opascal-mode.el index 0fb4a41df..593485081 100644 --- a/core/mode/jcs-opascal-mode.el +++ b/core/mode/jcs-opascal-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-opascal-mode-hook () - "Object Pascal mode hook." - +(jcs-add-hook 'opascal-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -30,7 +28,5 @@ ;; Normal (jcs-bind-key (kbd "M-q") #'jcs-other-window-prev)) -(add-hook 'opascal-mode-hook 'jcs-opascal-mode-hook) - (provide 'jcs-opascal-mode) ;;; jcs-opascal-mode.el ends here diff --git a/core/mode/jcs-org-mode.el b/core/mode/jcs-org-mode.el index 10c3a59ed..cfc8954d6 100644 --- a/core/mode/jcs-org-mode.el +++ b/core/mode/jcs-org-mode.el @@ -130,8 +130,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-org-mode-hook () - "Org mode hook." +(jcs-add-hook 'org-mode-hook ;; Normal (jcs-bind-key (kbd "C-a") #'jcs-mark-whole-buffer) (jcs-bind-key [tab] #'jcs-tab-key) @@ -148,7 +147,5 @@ (jcs-bind-key (kbd "S-") #'jcs-org-table-left) (jcs-bind-key (kbd "S-") #'jcs-org-table-right)) -(add-hook 'org-mode-hook 'jcs-org-mode-hook) - (provide 'jcs-org-mode) ;;; jcs-org-mode.el ends here diff --git a/core/mode/jcs-pascal-mode.el b/core/mode/jcs-pascal-mode.el index 8d96f77fc..930b6e294 100644 --- a/core/mode/jcs-pascal-mode.el +++ b/core/mode/jcs-pascal-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-pascal-mode-hook () - "Pascal mode hook." - +(jcs-add-hook 'pascal-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -26,7 +24,5 @@ (jcs-insert-header-if-valid '("[.]pas") 'jcs-insert-pascal-template)) -(add-hook 'pascal-mode-hook 'jcs-pascal-mode-hook) - (provide 'jcs-pascal-mode) ;;; jcs-pascal-mode.el ends here diff --git a/core/mode/jcs-perl-mode.el b/core/mode/jcs-perl-mode.el index 29ddb6673..fd65991ba 100644 --- a/core/mode/jcs-perl-mode.el +++ b/core/mode/jcs-perl-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-perl-mode-hook () - "Perl mode hook." - +(jcs-add-hook 'perl-mode-hook (modify-syntax-entry ?_ "w") ;; File Header @@ -30,7 +28,5 @@ (jcs-bind-key (kbd "{") #'jcs-vs-opening-curly-bracket-key) (jcs-bind-key (kbd ";") #'jcs-vs-semicolon-key)) -(add-hook 'perl-mode-hook 'jcs-perl-mode-hook) - (provide 'jcs-perl-mode) ;;; jcs-perl-mode.el ends here diff --git a/core/mode/jcs-powershell-mode.el b/core/mode/jcs-powershell-mode.el index b83d3151f..d82b51031 100644 --- a/core/mode/jcs-powershell-mode.el +++ b/core/mode/jcs-powershell-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-powershell-mode-hook () - "PowerShell mode hook." - +(jcs-add-hook 'powershell-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -26,7 +24,5 @@ (jcs-insert-header-if-valid '("[.]ps1") 'jcs-insert-powershell-template)) -(add-hook 'powershell-mode-hook 'jcs-powershell-mode-hook) - (provide 'jcs-powershell-mode) ;;; jcs-powershell-mode.el ends here diff --git a/core/mode/jcs-processing-mode.el b/core/mode/jcs-processing-mode.el index 952d94f9e..35da54927 100644 --- a/core/mode/jcs-processing-mode.el +++ b/core/mode/jcs-processing-mode.el @@ -16,8 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-processing-mode-hook () - "Hook for processing mode." +(jcs-add-hook 'processing-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -29,7 +28,5 @@ ;; Normal (jcs-bind-key (kbd "DEL") #'jcs-electric-backspace)) -(add-hook 'processing-mode-hook 'jcs-processing-mode-hook) - (provide 'jcs-processing-mode) ;;; jcs-processing-mode.el ends here diff --git a/core/mode/jcs-properties-mode.el b/core/mode/jcs-properties-mode.el index 4be52059a..1214012c7 100644 --- a/core/mode/jcs-properties-mode.el +++ b/core/mode/jcs-properties-mode.el @@ -6,8 +6,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-properties-mode-hook () - "Properties mode hook." +(jcs-add-hook 'conf-javaprop-mode-hook (abbrev-mode 1) (electric-pair-mode 1) (goto-address-mode 1) @@ -20,7 +19,5 @@ (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'previous)) (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next))) -(add-hook 'conf-javaprop-mode-hook 'jcs-properties-mode-hook) - (provide 'jcs-properties-mode) ;;; jcs-properties-mode.el ends here diff --git a/core/mode/jcs-python-mode.el b/core/mode/jcs-python-mode.el index 2aecb5bba..431bf41af 100644 --- a/core/mode/jcs-python-mode.el +++ b/core/mode/jcs-python-mode.el @@ -79,9 +79,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-python-mode-hook () - "Python mode hook." - +(jcs-add-hook 'python-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -107,7 +105,5 @@ (jcs-bind-key (kbd "RET") #'jcs-py-return) (jcs-bind-key (kbd "C-v") #'yank)) -(add-hook 'python-mode-hook 'jcs-python-mode-hook) - (provide 'jcs-python-mode) ;;; jcs-python-mode.el ends here diff --git a/core/mode/jcs-r-mode.el b/core/mode/jcs-r-mode.el index d8f5ee863..d8b8290e4 100644 --- a/core/mode/jcs-r-mode.el +++ b/core/mode/jcs-r-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-r-mode-hook () - "R mode hook." - +(jcs-add-hook 'ess-r-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -26,7 +24,5 @@ (jcs-insert-header-if-valid '("[.]r") 'jcs-insert-r-template)) -(add-hook 'ess-r-mode-hook 'jcs-r-mode-hook) - (provide 'jcs-r-mode) ;;; jcs-r-mode.el ends here diff --git a/core/mode/jcs-re-builder-mode.el b/core/mode/jcs-re-builder-mode.el index e34a744e7..e22e8a84f 100644 --- a/core/mode/jcs-re-builder-mode.el +++ b/core/mode/jcs-re-builder-mode.el @@ -19,16 +19,12 @@ ;; (@* "Hook" ) ;; -(defun jcs-re-builder-mode-hook () - "Mode hook for `RE-Builder-mode'." - +(jcs-add-hook 'reb-mode-hook ;; Normal (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'previous)) (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next)) (jcs-bind-key (kbd "M-k") #'jcs-reb-maybe-kill-this-buffer)) -(add-hook 'reb-mode-hook 'jcs-re-builder-mode-hook) - (provide 'jcs-re-builder-mode) ;;; jcs-re-builder-mode.el ends here diff --git a/core/mode/jcs-ruby-mode.el b/core/mode/jcs-ruby-mode.el index dcb238b56..1d87cb3a2 100644 --- a/core/mode/jcs-ruby-mode.el +++ b/core/mode/jcs-ruby-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-ruby-mode-hook () - "Ruby mode hook." - +(jcs-add-hook 'ruby-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?@ "w") (modify-syntax-entry ?_ "w") @@ -27,7 +25,5 @@ (jcs-insert-header-if-valid '("[.]rb") 'jcs-insert-ruby-template)) -(add-hook 'ruby-mode-hook 'jcs-ruby-mode-hook) - (provide 'jcs-ruby-mode) ;;; jcs-ruby-mode.el ends here diff --git a/core/mode/jcs-rust-mode.el b/core/mode/jcs-rust-mode.el index 3d48e2f4b..2af5deb24 100644 --- a/core/mode/jcs-rust-mode.el +++ b/core/mode/jcs-rust-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-rust-mode-hook () - "Rust mode hook." - +(jcs-add-hook 'rust-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") (modify-syntax-entry ?! "w") @@ -31,7 +29,5 @@ (jcs-bind-key (kbd "{") #'jcs-vs-opening-curly-bracket-key)) -(add-hook 'rust-mode-hook 'jcs-rust-mode-hook) - (provide 'jcs-rust-mode) ;;; jcs-rust-mode.el ends here diff --git a/core/mode/jcs-sass-mode.el b/core/mode/jcs-sass-mode.el index 9e798420a..416345e28 100644 --- a/core/mode/jcs-sass-mode.el +++ b/core/mode/jcs-sass-mode.el @@ -17,9 +17,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-sass-mode-hook () - "Sass mode hook." - +(jcs-add-hook 'ssass-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]sass") 'jcs-insert-sass-template) @@ -30,7 +28,5 @@ (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'previous)) (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next))) -(add-hook 'ssass-mode-hook 'jcs-sass-mode-hook) - (provide 'jcs-sass-mode) ;;; jcs-sass-mode.el ends here diff --git a/core/mode/jcs-scala-mode.el b/core/mode/jcs-scala-mode.el index 464170e8e..395816362 100644 --- a/core/mode/jcs-scala-mode.el +++ b/core/mode/jcs-scala-mode.el @@ -16,14 +16,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-scala-mode-hook () - "Scala mode hook." - +(jcs-add-hook 'scala-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]scala") 'jcs-insert-scala-template)) -(add-hook 'scala-mode-hook 'jcs-scala-mode-hook) - (provide 'jcs-scala-mode) ;;; jcs-scala-mode.el ends here diff --git a/core/mode/jcs-scss-mode.el b/core/mode/jcs-scss-mode.el index ac657e25a..6a9fad539 100644 --- a/core/mode/jcs-scss-mode.el +++ b/core/mode/jcs-scss-mode.el @@ -17,9 +17,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-scss-mode-hook () - "SCSS mode hook." - +(jcs-add-hook 'scss-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]scss") 'jcs-insert-scss-template) @@ -28,7 +26,5 @@ (jcs-bind-key (kbd "C-k s") #'com-css-sort-attributes-block) (jcs-bind-key (kbd "C-k d") #'com-css-sort-attributes-document)) -(add-hook 'scss-mode-hook 'jcs-scss-mode-hook) - (provide 'jcs-scss-mode) ;;; jcs-scss-mode.el ends here diff --git a/core/mode/jcs-sh-mode.el b/core/mode/jcs-sh-mode.el index e1824b6d4..e4f28b4d6 100644 --- a/core/mode/jcs-sh-mode.el +++ b/core/mode/jcs-sh-mode.el @@ -58,9 +58,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-sh-script-hook() - "Shell Script mode hook." - +(jcs-add-hook 'sh-mode-hook (modify-syntax-entry ?_ "w") ;; File Header @@ -69,7 +67,5 @@ "[.]macosx") 'jcs-insert-sh-template)) -(add-hook 'sh-mode-hook 'jcs-sh-script-hook) - (provide 'jcs-sh-mode) ;;; jcs-sh-mode.el ends here diff --git a/core/mode/jcs-shader-mode.el b/core/mode/jcs-shader-mode.el index 743000962..da2c1cf2d 100644 --- a/core/mode/jcs-shader-mode.el +++ b/core/mode/jcs-shader-mode.el @@ -21,8 +21,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-shader-mode-hook () - "Shader mode hook." +(jcs-add-hook 'shader-mode-hook (jcs-use-cc-mutliline-comment) (modify-syntax-entry ?_ "w") @@ -31,11 +30,7 @@ (jcs-insert-header-if-valid '("[.]shader") 'jcs-insert-shader-template)) -(add-hook 'shader-mode-hook 'jcs-shader-mode-hook) - -(defun jcs-glsl-mode-hook () - "GLSL mode hook." - +(jcs-add-hook 'glsl-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -46,7 +41,5 @@ "[.]vert") 'jcs-insert-glsl-template)) -(add-hook 'glsl-mode-hook 'jcs-glsl-mode-hook) - (provide 'jcs-shader-mode) ;;; jcs-shader-mode.el ends here diff --git a/core/mode/jcs-shell-mode.el b/core/mode/jcs-shell-mode.el index 5893586e9..186b6aded 100644 --- a/core/mode/jcs-shell-mode.el +++ b/core/mode/jcs-shell-mode.el @@ -9,8 +9,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-shell-mode-hook () - "Shell mode hook." +(add-hook ' 'jcs-shell-mode-hook) +(add-hook 'eshell-mode-hook 'jcs-shell-mode-hook) + +(jcs-add-hook '(shell-mode-hook eshell-mode-hook) (company-fuzzy-mode -1) ;; Normal @@ -46,8 +48,5 @@ (jcs-bind-key (kbd "C-d") #'jcs-shell-kill-whole-line) (jcs-bind-key (kbd "") #'jcs-shell-backspace)) -(add-hook 'shell-mode-hook 'jcs-shell-mode-hook) -(add-hook 'eshell-mode-hook 'jcs-shell-mode-hook) - (provide 'jcs-shell-mode) ;;; jcs-shell-mode.el ends here diff --git a/core/mode/jcs-snippet-mode.el b/core/mode/jcs-snippet-mode.el index a12e64e40..ffaf8b687 100644 --- a/core/mode/jcs-snippet-mode.el +++ b/core/mode/jcs-snippet-mode.el @@ -8,14 +8,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-snippet-mode-hook() - "Snippet mode hook." - +(jcs-add-hook 'snippet-mode-hook ;; Normal (jcs-bind-key (kbd "") #'previous-line) (jcs-bind-key (kbd "") #'next-line)) -(add-hook 'snippet-mode-hook 'jcs-snippet-mode-hook) - (provide 'jcs-snippet-mode) ;;; jcs-snippet-mode.el ends here diff --git a/core/mode/jcs-sql-mode.el b/core/mode/jcs-sql-mode.el index a45d73015..19edb3017 100644 --- a/core/mode/jcs-sql-mode.el +++ b/core/mode/jcs-sql-mode.el @@ -17,8 +17,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-sql-mode-hook() - "SQL mode hook." +(jcs-add-hook 'sql-mode-hook (jcs-elec-pair-add '((?\` . ?\`))) ;; File Header @@ -29,7 +28,5 @@ (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'previous)) (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next))) -(add-hook 'sql-mode-hook 'jcs-sql-mode-hook) - (provide 'jcs-sql-mode) ;;; jcs-sql-mode.el ends here diff --git a/core/mode/jcs-swift-mode.el b/core/mode/jcs-swift-mode.el index b79296c21..21e40ca22 100644 --- a/core/mode/jcs-swift-mode.el +++ b/core/mode/jcs-swift-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-swift-mode-hook () - "Swift mode hook." - +(jcs-add-hook 'swift-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -29,7 +27,5 @@ ;; Normal (jcs-bind-key (kbd "M-k") #'jcs-maybe-kill-this-buffer)) -(add-hook 'swift-mode-hook 'jcs-swift-mode-hook) - (provide 'jcs-swift-mode) ;;; jcs-swift-mode.el ends here diff --git a/core/mode/jcs-typescript-mode.el b/core/mode/jcs-typescript-mode.el index e87a972a1..4257c2c4a 100644 --- a/core/mode/jcs-typescript-mode.el +++ b/core/mode/jcs-typescript-mode.el @@ -56,9 +56,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-typescript-mode-hook () - "TypeScript mode hook." - +(jcs-add-hook 'typescript-mode-hook (add-hook 'docstr-before-insert-hook 'jcs-typescript--docstr-before nil t) (face-remap-add-relative 'typescript-jsdoc-tag '(:inherit docstr-faces-tag-face)) @@ -79,7 +77,5 @@ (jcs-bind-key (kbd "{") #'jcs-vs-opening-curly-bracket-key) (jcs-bind-key (kbd ";") #'jcs-vs-semicolon-key)) -(add-hook 'typescript-mode-hook 'jcs-typescript-mode-hook) - (provide 'jcs-typescript-mode) ;;; jcs-typescript-mode.el ends here diff --git a/core/mode/jcs-verilog-mode.el b/core/mode/jcs-verilog-mode.el index 98515be2b..f8fd39ee9 100644 --- a/core/mode/jcs-verilog-mode.el +++ b/core/mode/jcs-verilog-mode.el @@ -16,14 +16,10 @@ ;; (@* "Hook" ) ;; -(defun jcs-verilog-mode-hook () - "Verilog mode hook." - +(jcs-add-hook 'verilog-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]v") 'jcs-insert-verilog-template)) -(add-hook 'verilog-mode-hook 'jcs-verilog-mode-hook) - (provide 'jcs-verilog-mode) ;;; jcs-verilog-mode.el ends here diff --git a/core/mode/jcs-vimscript-mode.el b/core/mode/jcs-vimscript-mode.el index bfdcdbdd5..376e18635 100644 --- a/core/mode/jcs-vimscript-mode.el +++ b/core/mode/jcs-vimscript-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-vim-mode-hook () - "Vimrc mode hook." - +(jcs-add-hook 'vimrc-mode-hook ;; File Header (jcs-insert-header-if-valid '("[.]vim" "[.]vimrc" @@ -31,7 +29,5 @@ (jcs-bind-key (kbd "C-a") #'jcs-mark-whole-buffer)) -(add-hook 'vimrc-mode-hook 'jcs-vim-mode-hook) - (provide 'jcs-vimscript-mode) ;;; jcs-vimscript-mode.el ends here diff --git a/core/mode/jcs-vue-mode.el b/core/mode/jcs-vue-mode.el index d29cc215a..72ff14238 100644 --- a/core/mode/jcs-vue-mode.el +++ b/core/mode/jcs-vue-mode.el @@ -21,8 +21,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-vue-mode-hook () - "Vue mode hook." +(jcs-add-hook 'vue-mode-hook (set-face-background 'mmm-default-submode-face "#000000") ;; Treat some character as whitespace character. @@ -32,7 +31,5 @@ (jcs-insert-header-if-valid '("[.]vue") 'jcs-insert-vue-template)) -(add-hook 'vue-mode-hook 'jcs-vue-mode-hook) - (provide 'jcs-vue-mode) ;;; jcs-vue-mode.el ends here diff --git a/core/mode/jcs-web-mode.el b/core/mode/jcs-web-mode.el index a25edcadd..b9b1aaefa 100644 --- a/core/mode/jcs-web-mode.el +++ b/core/mode/jcs-web-mode.el @@ -2,6 +2,8 @@ ;;; Commentary: Including HTML, CSS, PHP, JavaScript, JSON. ;;; Code: +(require 'web-mode) + (require 'jcs-web) (require 'impatient-mode) (require 'auto-rename-tag) @@ -87,10 +89,9 @@ ;; (@* "Hook" ) ;; -(require 'web-mode) +(add-hook 'web-mode-hook 'emmet-mode) -(defun jcs-web-mode-hook () - "Hooks for Web mode." +(jcs-add-hook 'web-mode-hook (auto-rename-tag-mode 1) (visual-line-mode t) (impatient-mode t) @@ -134,15 +135,9 @@ (jcs-bind-key [C-backspace] #'jcs-web-backward-delete-word) (jcs-bind-key (kbd "M-") #'jcs-web-backward-delete-word-capital)) -(add-hook 'web-mode-hook 'jcs-web-mode-hook) -(add-hook 'web-mode-hook 'emmet-mode) - -(defun jcs-html-mode-hook () - "HTML mode hook." +(jcs-add-hook 'html-mode-hook (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'previous)) (jcs-bind-key (kbd "") (jcs-get-prev/next-key-type 'next))) -(add-hook 'html-mode-hook 'jcs-html-mode-hook) - (provide 'jcs-web-mode) ;;; jcs-web-mode.el ends here diff --git a/core/mode/jcs-xml-mode.el b/core/mode/jcs-xml-mode.el index 11c98f4b1..5efd16baa 100644 --- a/core/mode/jcs-xml-mode.el +++ b/core/mode/jcs-xml-mode.el @@ -17,8 +17,9 @@ ;; (@* "Hook" ) ;; -(defun jcs-xml-mode-hook () - "XML mode hook." +(add-hook 'nxml-mode-hook 'emmet-mode) + +(jcs-add-hook 'nxml-mode-hook (auto-rename-tag-mode 1) (visual-line-mode t) @@ -35,10 +36,6 @@ (jcs-bind-key (kbd "SPC") #'jcs-smart-space) (jcs-bind-key (kbd "") #'jcs-smart-backspace)) -;; STUDY: they ae using nxml-mode instead of xml-mode -;; which is really weird. -(add-hook 'nxml-mode-hook 'jcs-xml-mode-hook) -(add-hook 'nxml-mode-hook 'emmet-mode) (provide 'jcs-xml-mode) ;;; jcs-xml-mode.el ends here diff --git a/core/mode/jcs-yaml-mode.el b/core/mode/jcs-yaml-mode.el index 1c725611f..5389b690e 100644 --- a/core/mode/jcs-yaml-mode.el +++ b/core/mode/jcs-yaml-mode.el @@ -16,9 +16,7 @@ ;; (@* "Hook" ) ;; -(defun jcs-yaml-mode-hook () - "YAML mode hook." - +(jcs-add-hook 'yaml-mode-hook ;; Treat underscore as word. (modify-syntax-entry ?_ "w") @@ -34,7 +32,5 @@ (jcs-bind-key (kbd "SPC") #'jcs-smart-space) (jcs-bind-key (kbd "") #'jcs-smart-backspace)) -(add-hook 'yaml-mode-hook 'jcs-yaml-mode-hook) - (provide 'jcs-yaml-mode) ;;; jcs-yaml-mode.el ends here From 95a3a26f8202449f4afcbabe9a835b651d15ad9f Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 19:30:27 +0800 Subject: [PATCH 48/51] Don't call version --- bin/test.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/test.el b/bin/test.el index 211edc08f..72603450b 100644 --- a/bin/test.el +++ b/bin/test.el @@ -25,7 +25,7 @@ (run-hooks after-init-hook) (run-hooks emacs-startup-hook)) -(jcs-emacs-version) +;;(jcs-emacs-version) ;; Local Variables: ;; coding: utf-8 From 401f022ff1c70b9786545b70192149b9af0ad595 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 19:30:51 +0800 Subject: [PATCH 49/51] Remove print --- bin/test.el | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/test.el b/bin/test.el index 72603450b..15d89885e 100644 --- a/bin/test.el +++ b/bin/test.el @@ -18,8 +18,6 @@ (user-emacs-directory default-directory) (early-init-file (locate-user-emacs-file "early-init.el")) (user-init-file (locate-user-emacs-file "init.el"))) - (message "Early Exist: %s" (file-exists-p early-init-file)) - (message "Exist: %s" (file-exists-p user-init-file)) (load early-init-file) (load user-init-file) ; Start regular Emacs file (run-hooks after-init-hook) From 0d16f5b6df3734e7740dabd924e563eb51cf53fc Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 19:32:15 +0800 Subject: [PATCH 50/51] Linux endings --- bin/test.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/test.el b/bin/test.el index 15d89885e..f78a236a8 100644 --- a/bin/test.el +++ b/bin/test.el @@ -23,7 +23,7 @@ (run-hooks after-init-hook) (run-hooks emacs-startup-hook)) -;;(jcs-emacs-version) +(jcs-emacs-version) ;; Local Variables: ;; coding: utf-8 From 4fed6ab4c206f6a75c10fa71d7b5b90695b3c192 Mon Sep 17 00:00:00 2001 From: Jen-Chieh Shen Date: Wed, 5 Jan 2022 20:00:55 +0800 Subject: [PATCH 51/51] Fix symbol --- bin/test.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/test.el b/bin/test.el index f78a236a8..9725f2898 100644 --- a/bin/test.el +++ b/bin/test.el @@ -20,8 +20,8 @@ (user-init-file (locate-user-emacs-file "init.el"))) (load early-init-file) (load user-init-file) ; Start regular Emacs file - (run-hooks after-init-hook) - (run-hooks emacs-startup-hook)) + (run-hooks 'after-init-hook) + (run-hooks 'emacs-startup-hook)) (jcs-emacs-version)