From e59e80659a9e3b5e6bf3a143cd01351e234e7cac Mon Sep 17 00:00:00 2001 From: keleher <keleher@cs.umd.edu> Date: Fri, 30 Aug 2019 07:26:35 -0400 Subject: [PATCH] auto --- project1/.bashrc | 2 - project1/.cshrc | 85 - project1/.emacs | 414 - project1/.emacs.d/SessionDesktop.el | 34 - project1/.emacs.d/ac-comphist.dat | 66 - .../packages/archives/gnu/archive-contents | 1575 --- .../archives/gnu/archive-contents.signed | 1 - .../packages/archives/melpa/archive-contents | 4241 ------ .../auto-complete-autoloads.el | 64 - .../auto-complete-config.el | 551 - .../auto-complete-config.elc | Bin 16624 -> 0 bytes .../auto-complete-pkg.el | 6 - .../auto-complete.el | 2164 --- .../auto-complete.elc | Bin 66379 -> 0 bytes .../auto-complete-20170125.245/dict/ada-mode | 72 - .../auto-complete-20170125.245/dict/c++-mode | 99 - .../auto-complete-20170125.245/dict/c-mode | 55 - .../auto-complete-20170125.245/dict/caml-mode | 231 - .../dict/clojure-mode | 580 - .../dict/clojurescript-mode | 475 - .../auto-complete-20170125.245/dict/coq-mode | 278 - .../auto-complete-20170125.245/dict/css-mode | 874 -- .../dict/erlang-mode | 216 - .../dict/ess-julia-mode | 37 - .../auto-complete-20170125.245/dict/go-mode | 25 - .../dict/haskell-mode | 679 - .../auto-complete-20170125.245/dict/java-mode | 53 - .../auto-complete-20170125.245/dict/js-mode | 148 - .../dict/julia-mode | 37 - .../auto-complete-20170125.245/dict/lua-mode | 21 - .../auto-complete-20170125.245/dict/nim-mode | 70 - .../auto-complete-20170125.245/dict/objc-mode | 161 - .../dict/octave-mode | 46 - .../auto-complete-20170125.245/dict/php-mode | 6144 --------- .../dict/python-mode | 379 - .../auto-complete-20170125.245/dict/qml-mode | 183 - .../auto-complete-20170125.245/dict/ruby-mode | 181 - .../dict/scala-mode | 1347 -- .../dict/scheme-mode | 216 - .../dict/sclang-mode | 1481 --- .../auto-complete-20170125.245/dict/sh-mode | 182 - .../dict/swift-mode | 87 - .../auto-complete-20170125.245/dict/tcl-mode | 172 - .../auto-complete-20170125.245/dict/ts-mode | 797 -- .../dict/tuareg-mode | 231 - .../dict/verilog-mode | 313 - .../packages/auto-complete-readme.txt | 16 - .../dash-20190424.1804/dash-autoloads.el | 15 - .../packages/dash-20190424.1804/dash-pkg.el | 1 - .../packages/dash-20190424.1804/dash-pkg.elc | Bin 661 -> 0 bytes .../packages/dash-20190424.1804/dash.el | 3028 ----- .../packages/dash-20190424.1804/dash.elc | Bin 94540 -> 0 bytes .../epl-20180205.2049/epl-autoloads.el | 15 - .../packages/epl-20180205.2049/epl-pkg.el | 1 - .../packages/epl-20180205.2049/epl-pkg.elc | Bin 722 -> 0 bytes .../packages/epl-20180205.2049/epl.el | 711 - .../packages/epl-20180205.2049/epl.elc | Bin 34745 -> 0 bytes .../exec-path-from-shell-autoloads.el | 44 - .../exec-path-from-shell-pkg.el | 1 - .../exec-path-from-shell-pkg.elc | Bin 774 -> 0 bytes .../exec-path-from-shell.el | 277 - .../exec-path-from-shell.elc | Bin 8209 -> 0 bytes .../packages/exec-path-from-shell-readme.txt | 45 - .../flycheck-autoloads.el | 239 - .../flycheck-buttercup.el | 157 - .../flycheck-20190612.1645/flycheck-ert.el | 483 - .../flycheck-20190612.1645/flycheck-ert.elc | Bin 22788 -> 0 bytes .../flycheck-20190612.1645/flycheck-pkg.el | 16 - .../flycheck-20190612.1645/flycheck.el | 11066 ---------------- .../flycheck-20190612.1645/flycheck.elc | Bin 483861 -> 0 bytes .../flycheck-golangci-lint-autoloads.el | 23 - .../flycheck-golangci-lint-pkg.el | 1 - .../flycheck-golangci-lint-pkg.elc | Bin 801 -> 0 bytes .../flycheck-golangci-lint.el | 103 - .../flycheck-golangci-lint.elc | Bin 4723 -> 0 bytes .../flycheck-golangci-lint-readme.txt | 6 - project1/.emacs.d/packages/gnupg/pubring.kbx | Bin 1177 -> 0 bytes project1/.emacs.d/packages/gnupg/trustdb.gpg | Bin 1200 -> 0 bytes .../go-autocomplete-autoloads.el | 16 - .../go-autocomplete-pkg.el | 1 - .../go-autocomplete-pkg.elc | Bin 691 -> 0 bytes .../go-autocomplete.el | 212 - .../go-autocomplete.elc | Bin 4583 -> 0 bytes .../packages/go-autocomplete-readme.txt | 10 - .../go-complete-autoloads.el | 22 - .../go-complete-pkg.el | 1 - .../go-complete-pkg.elc | Bin 756 -> 0 bytes .../go-complete-20190409.516/go-complete.el | 132 - .../go-complete-20190409.516/go-complete.elc | Bin 2986 -> 0 bytes .../.emacs.d/packages/go-complete-readme.txt | 7 - .../go-mode-20181012.329/go-mode-autoloads.el | 104 - .../go-mode-20181012.329/go-mode-pkg.el | 1 - .../go-mode-20181012.329/go-mode-pkg.elc | Bin 699 -> 0 bytes .../packages/go-mode-20181012.329/go-mode.el | 2049 --- .../packages/go-mode-20181012.329/go-mode.elc | Bin 71431 -> 0 bytes .../let-alist-1.0.5/let-alist-autoloads.el | 50 - .../packages/let-alist-1.0.5/let-alist-pkg.el | 1 - .../let-alist-1.0.5/let-alist-pkg.elc | Bin 604 -> 0 bytes .../packages/let-alist-1.0.5/let-alist.el | 182 - .../packages/let-alist-1.0.5/let-alist.elc | Bin 3056 -> 0 bytes .../pkg-info-autoloads.el | 122 - .../pkg-info-20150517.1143/pkg-info-pkg.el | 1 - .../pkg-info-20150517.1143/pkg-info-pkg.elc | Bin 745 -> 0 bytes .../pkg-info-20150517.1143/pkg-info.el | 331 - .../pkg-info-20150517.1143/pkg-info.elc | Bin 10312 -> 0 bytes .../popup-20160709.1429/popup-autoloads.el | 15 - .../packages/popup-20160709.1429/popup-pkg.el | 1 - .../popup-20160709.1429/popup-pkg.elc | Bin 685 -> 0 bytes .../packages/popup-20160709.1429/popup.el | 1432 -- .../packages/popup-20160709.1429/popup.elc | Bin 75992 -> 0 bytes .../protobuf-mode-autoloads.el | 29 - .../protobuf-mode-pkg.el | 1 - .../protobuf-mode-pkg.elc | Bin 727 -> 0 bytes .../protobuf-mode.el | 224 - .../protobuf-mode.elc | Bin 43280 -> 0 bytes .../packages/protobuf-mode-readme.txt | 27 - project1/.emacs.d/packages/seq-2.20/ChangeLog | 195 - project1/.emacs.d/packages/seq-2.20/seq-24.el | 496 - .../.emacs.d/packages/seq-2.20/seq-24.elc | Bin 18037 -> 0 bytes project1/.emacs.d/packages/seq-2.20/seq-25.el | 530 - .../.emacs.d/packages/seq-2.20/seq-25.elc | Bin 1023 -> 0 bytes .../packages/seq-2.20/seq-autoloads.el | 16 - .../.emacs.d/packages/seq-2.20/seq-pkg.el | 2 - .../.emacs.d/packages/seq-2.20/seq-pkg.elc | Bin 546 -> 0 bytes project1/.emacs.d/packages/seq-2.20/seq.el | 48 - project1/.emacs.d/packages/seq-2.20/seq.elc | Bin 551 -> 0 bytes .../packages/seq-2.20/tests/seq-tests.el | 382 - .../packages/seq-2.20/tests/seq-tests.elc | Bin 183169 -> 0 bytes project1/DDL.sql | 128 - project1/README.md | 68 - project1/SQLTesting.py | 111 - project1/answers.py | 27 - project1/queries.py | 87 - project1/small.sql | 1037 -- project1/smallRelationsInsertFile.sql | 149 - project1/tst.sql | 31 - 136 files changed, 49599 deletions(-) delete mode 100644 project1/.bashrc delete mode 100644 project1/.cshrc delete mode 100644 project1/.emacs delete mode 100644 project1/.emacs.d/SessionDesktop.el delete mode 100644 project1/.emacs.d/ac-comphist.dat delete mode 100644 project1/.emacs.d/packages/archives/gnu/archive-contents delete mode 100644 project1/.emacs.d/packages/archives/gnu/archive-contents.signed delete mode 100644 project1/.emacs.d/packages/archives/melpa/archive-contents delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-autoloads.el delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-config.el delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-config.elc delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-pkg.el delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete.el delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete.elc delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/ada-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/c++-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/c-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/caml-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/clojure-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/clojurescript-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/coq-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/css-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/erlang-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/ess-julia-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/go-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/haskell-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/java-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/js-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/julia-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/lua-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/nim-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/objc-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/octave-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/php-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/python-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/qml-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/ruby-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/scala-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/scheme-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/sclang-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/sh-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/swift-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/tcl-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/ts-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/tuareg-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-20170125.245/dict/verilog-mode delete mode 100644 project1/.emacs.d/packages/auto-complete-readme.txt delete mode 100644 project1/.emacs.d/packages/dash-20190424.1804/dash-autoloads.el delete mode 100644 project1/.emacs.d/packages/dash-20190424.1804/dash-pkg.el delete mode 100644 project1/.emacs.d/packages/dash-20190424.1804/dash-pkg.elc delete mode 100644 project1/.emacs.d/packages/dash-20190424.1804/dash.el delete mode 100644 project1/.emacs.d/packages/dash-20190424.1804/dash.elc delete mode 100644 project1/.emacs.d/packages/epl-20180205.2049/epl-autoloads.el delete mode 100644 project1/.emacs.d/packages/epl-20180205.2049/epl-pkg.el delete mode 100644 project1/.emacs.d/packages/epl-20180205.2049/epl-pkg.elc delete mode 100644 project1/.emacs.d/packages/epl-20180205.2049/epl.el delete mode 100644 project1/.emacs.d/packages/epl-20180205.2049/epl.elc delete mode 100644 project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell-autoloads.el delete mode 100644 project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell-pkg.el delete mode 100644 project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell-pkg.elc delete mode 100644 project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell.el delete mode 100644 project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell.elc delete mode 100644 project1/.emacs.d/packages/exec-path-from-shell-readme.txt delete mode 100644 project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-autoloads.el delete mode 100644 project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-buttercup.el delete mode 100644 project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-ert.el delete mode 100644 project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-ert.elc delete mode 100644 project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-pkg.el delete mode 100644 project1/.emacs.d/packages/flycheck-20190612.1645/flycheck.el delete mode 100644 project1/.emacs.d/packages/flycheck-20190612.1645/flycheck.elc delete mode 100644 project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint-autoloads.el delete mode 100644 project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint-pkg.el delete mode 100644 project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint-pkg.elc delete mode 100644 project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint.el delete mode 100644 project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint.elc delete mode 100644 project1/.emacs.d/packages/flycheck-golangci-lint-readme.txt delete mode 100644 project1/.emacs.d/packages/gnupg/pubring.kbx delete mode 100644 project1/.emacs.d/packages/gnupg/trustdb.gpg delete mode 100644 project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete-autoloads.el delete mode 100644 project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete-pkg.el delete mode 100644 project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete-pkg.elc delete mode 100644 project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete.el delete mode 100644 project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete.elc delete mode 100644 project1/.emacs.d/packages/go-autocomplete-readme.txt delete mode 100644 project1/.emacs.d/packages/go-complete-20190409.516/go-complete-autoloads.el delete mode 100644 project1/.emacs.d/packages/go-complete-20190409.516/go-complete-pkg.el delete mode 100644 project1/.emacs.d/packages/go-complete-20190409.516/go-complete-pkg.elc delete mode 100644 project1/.emacs.d/packages/go-complete-20190409.516/go-complete.el delete mode 100644 project1/.emacs.d/packages/go-complete-20190409.516/go-complete.elc delete mode 100644 project1/.emacs.d/packages/go-complete-readme.txt delete mode 100644 project1/.emacs.d/packages/go-mode-20181012.329/go-mode-autoloads.el delete mode 100644 project1/.emacs.d/packages/go-mode-20181012.329/go-mode-pkg.el delete mode 100644 project1/.emacs.d/packages/go-mode-20181012.329/go-mode-pkg.elc delete mode 100644 project1/.emacs.d/packages/go-mode-20181012.329/go-mode.el delete mode 100644 project1/.emacs.d/packages/go-mode-20181012.329/go-mode.elc delete mode 100644 project1/.emacs.d/packages/let-alist-1.0.5/let-alist-autoloads.el delete mode 100644 project1/.emacs.d/packages/let-alist-1.0.5/let-alist-pkg.el delete mode 100644 project1/.emacs.d/packages/let-alist-1.0.5/let-alist-pkg.elc delete mode 100644 project1/.emacs.d/packages/let-alist-1.0.5/let-alist.el delete mode 100644 project1/.emacs.d/packages/let-alist-1.0.5/let-alist.elc delete mode 100644 project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info-autoloads.el delete mode 100644 project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info-pkg.el delete mode 100644 project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info-pkg.elc delete mode 100644 project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info.el delete mode 100644 project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info.elc delete mode 100644 project1/.emacs.d/packages/popup-20160709.1429/popup-autoloads.el delete mode 100644 project1/.emacs.d/packages/popup-20160709.1429/popup-pkg.el delete mode 100644 project1/.emacs.d/packages/popup-20160709.1429/popup-pkg.elc delete mode 100644 project1/.emacs.d/packages/popup-20160709.1429/popup.el delete mode 100644 project1/.emacs.d/packages/popup-20160709.1429/popup.elc delete mode 100644 project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode-autoloads.el delete mode 100644 project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode-pkg.el delete mode 100644 project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode-pkg.elc delete mode 100644 project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode.el delete mode 100644 project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode.elc delete mode 100644 project1/.emacs.d/packages/protobuf-mode-readme.txt delete mode 100644 project1/.emacs.d/packages/seq-2.20/ChangeLog delete mode 100644 project1/.emacs.d/packages/seq-2.20/seq-24.el delete mode 100644 project1/.emacs.d/packages/seq-2.20/seq-24.elc delete mode 100644 project1/.emacs.d/packages/seq-2.20/seq-25.el delete mode 100644 project1/.emacs.d/packages/seq-2.20/seq-25.elc delete mode 100644 project1/.emacs.d/packages/seq-2.20/seq-autoloads.el delete mode 100644 project1/.emacs.d/packages/seq-2.20/seq-pkg.el delete mode 100644 project1/.emacs.d/packages/seq-2.20/seq-pkg.elc delete mode 100644 project1/.emacs.d/packages/seq-2.20/seq.el delete mode 100644 project1/.emacs.d/packages/seq-2.20/seq.elc delete mode 100644 project1/.emacs.d/packages/seq-2.20/tests/seq-tests.el delete mode 100644 project1/.emacs.d/packages/seq-2.20/tests/seq-tests.elc delete mode 100644 project1/DDL.sql delete mode 100644 project1/README.md delete mode 100644 project1/SQLTesting.py delete mode 100644 project1/answers.py delete mode 100644 project1/queries.py delete mode 100644 project1/small.sql delete mode 100644 project1/smallRelationsInsertFile.sql delete mode 100644 project1/tst.sql diff --git a/project1/.bashrc b/project1/.bashrc deleted file mode 100644 index a40eddc..0000000 --- a/project1/.bashrc +++ /dev/null @@ -1,2 +0,0 @@ -export GOPATH=/vagrant/go -export PATH="/usr/local/bin:/usr/local/go/bin:$GOPATH/bin:$PATH" diff --git a/project1/.cshrc b/project1/.cshrc deleted file mode 100644 index 7405a1e..0000000 --- a/project1/.cshrc +++ /dev/null @@ -1,85 +0,0 @@ -setenv LANG "en_US.utf-8" -setenv PATH "${PATH}:${HOME}/bin" -setenv PATH "${PATH}:${HOME}/.cargo/bin" -setenv PATH "${PATH}:/usr/local/bin:/usr/games/bin:/usr/sbin:/usr/local/mysql/bin:/sbin:/usr/local/texlive/2014/bin/x86_64-darwin:." -setenv PATH "/opt/local/bin:/opt/local/sbin:$PATH" -setenv PATH "/usr/local/graphviz-2.14/bin:$PATH" -setenv PATH "$HOME/bin:$PATH" -setenv BLOCKSIZE 1024 - -if ( $OSTYPE == "linux" ) then - setenv GOPATH "/vagrant/go" - setenv PATH "/usr/local/go/bin:$GOPATH/bin:$PATH" -else - setenv GOPATH "/vagrant/go" - setenv PATH "/usr/local/go/bin:$GOPATH/bin:$PATH" -endif - - -if ( ! $?prompt ) exit - - -set hostname=`/bin/hostname | sed "s/\..*//"` -setenv TTY `tty` -setenv EDITOR emacs -setenv PAGER 'less -i -M -e -c' -setenv DISP "${HOST}:0" -setenv PS ps4 - - -# Add an architecture-specific directory to your path. This way you can -# put your own SPARCstation binaries in ~/bin/sun4, DECstation binaries in -# ~/bin/mips, etc. -set history=100 noclobber -umask 022 - -#bindkey "^[delete" delete-word -bindkey "^[h" backward-delete-word -bindkey "^[H" backward-delete-word -bindkey "\310" backward-delete-word -bindkey "\350" backward-delete-word -bindkey "^R" i-search-back -bindkey "^S" i-search-fwd - -# Pete's local modifications - - -if ( $TERM == "network" ) then - setenv TERM vt220 -endif - -limit coredumpsize 0 -unset ignoreeof -unset noclobber - -alias a alias - -a topc 'top -o cpu' -a gitauto 'git commit -a -m auto' -a gpull 'git pull origin master' -a greset 'git reset --hard FETCH_HEAD' -a gush 'git commit -a -m auto; git push origin master' -a gushm 'git commit -a -m \!*; git push origin master' -a gitRestage 'git reset HEAD; git checkout -- .' - -a lk "grep \!* [^,]*.{cc,md,c,go,pl,html,h,py,s,H,U,tex,java}" -a lki "grep -i \!* [^,]*.{cc,md,c,go,pl,html,h,py,s,H,U,tex,java}" -a lkw "grep -w \!* [^,]*.{cc,md,c,go,pl,html,h,py,s,H,U,tex,java}" -a k kill -9 -a ka killall -KILL -a l ls -CF -a ll "ls -alh \!*" -a llm "ls -alh \!* | m" -a lsd "ls -alhd \!*" -a m 'less -i -M -e -c' - -set prompt_info = "%m:%~> " -if ($?RUBY_VERSION) then - set prompt_info = "[$RUBY_VERSION] $prompt_info" -endif -set prompt = "$prompt_info" - - -a tem '/usr/bin/stty rows 51 cols 93 ; emacs19' -a e 'emacs -nw ' - diff --git a/project1/.emacs b/project1/.emacs deleted file mode 100644 index 5356c70..0000000 --- a/project1/.emacs +++ /dev/null @@ -1,414 +0,0 @@ - -;; Package installation - MELPA -(require 'package) ;; You might already have this line -(setq package-user-dir "~/.emacs.d/packages") - -(setq ispell-program-name "/usr/local/bin/ispell") - -(add-to-list 'package-archives - '("melpa" . "https://melpa.org/packages/")) -(when (< emacs-major-version 24) - ;; For important compatibility libraries like cl-lib - (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/"))) -(package-initialize) ;; You might already have this line - - -(require 'exec-path-from-shell) ;; if not using the ELPA package -(exec-path-from-shell-initialize) - -(require 'auto-complete) -(global-auto-complete-mode t) - - -(require 'go-complete) -(add-hook 'completion-at-point-functions 'go-complete-at-point) - -(eval-after-load 'flycheck - '(add-hook 'flycheck-mode-hook #'flycheck-golangci-lint-setup)) - -(add-to-list 'exec-path "/Users/tleyden/Development/gocode/bin") -(add-hook 'before-save-hook 'gofmt-before-save) - -;;======================== - -;; ____________________________________________________________________________ -;; Aquamacs custom-file warning: -;; Warning: After loading this .emacs file, Aquamacs will also load -;; customizations from `custom-file' (customizations.el). Any settings there -;; will override those made here. -;; Consider moving your startup settings to the Preferences.el file, which -;; is loaded after `custom-file': -;; ~/Library/Preferences/Aquamacs Emacs/Preferences -;; _____________________________________________________________________________ -(set-face-attribute 'default nil :height 140) - -(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. - '(blink-cursor-mode nil) - '(c-indent-level 4) - '(c-tab-always-indent nil) - '(font-lock-mode t t (font-lock)) - '(inhibit-startup-screen t) - '(package-selected-packages - (quote - (go-playground auctex protobuf-mode go-complete go-autocomplete flycheck-golangci-lint exec-path-from-shell))) - '(smart-spacing-mode-1 nil) - '(tool-bar-mode nil)) - -(cd "~keleher") - -(add-hook 'markdown-mode-hook - (lambda () - (local-set-key (kbd "<M-left>") 'left-word) ; for text-blade - (local-set-key (kbd "<M-right>") 'right-word))) ; for text-blade - -(global-set-key (kbd "<M-left>") 'left-word) ; for text-blade -(global-set-key (kbd "<M-right>") 'right-word) ; for text-blade -(global-set-key (kbd "<M-up>") 'beginning-of-buffer) ; for text-blade -(global-set-key (kbd "<M-up>") 'beginning-of-buffer) ; for text-blade -(global-set-key (kbd "<M-down>") 'end-of-buffer) ; for text-blade -(global-set-key (kbd "<M-delete>") 'kill-word) ; for text-blade - -(global-set-key "\ez" 'undo) ; for text-blade -(global-set-key "\C-xd" 'delete-region) -(global-set-key "\C-s" 'isearch-forward-regexp) -(global-set-key "\C-r" 'isearch-backward-regexp) -(global-set-key "\eg" 'goto-line) -(global-set-key "\ek" 'comment-or-uncomment-region-or-line) -(global-set-key "\eh" 'backward-kill-word) -(global-set-key "\em" 'auto-fill-mode) -(setq default-tab-width 8) -(setq-default c-basic-offset 4) -(global-set-key "\C-xp" 'aquamacs-print) - - -(defun settab8 (arg) - "Change tab setting to 8 for curr window" - (interactive "P") - (setq tab-width 8) - (redraw-display)) - -(defun settab4 (arg) - "Change tab setting to 4 for curr window" - (interactive "P") - (setq tab-width 4) - (redraw-display)) - -(defun settab2 (arg) - "Change tab setting to 4 for curr window" - (interactive "P") - (setq tab-width 2) - (redraw-display)) - -(global-set-key "\C-x4" 'settab4) -(global-set-key "\C-x5" 'ispell-buffer) -(global-set-key "\C-x6" 'settab8) - - -;(eval-after-load "ispell" -; (progn -; (setq ispell-extra-args '("-w" "äöüÄÖÜß") -; ispell-dictionary "en" -; ispell-silently-savep t))) -;(setq-default ispell-program-name "aspell") -;(setq ispell-program-name "aspell") -;(require 'ispell) - - (setq mac-command-modifier 'meta) - -(defvar aquamacs-p (string-match "Aquamacs" (version))) -(if aquamacs-p - (progn -; (global-set-key "\C-w" 'swap-and-kill) -; (global-set-key "\M-w" 'clipboard-kill-ring-save) -; (global-set-key "\C-y" 'clipboard-yank) - (setq mac-command-modifier 'meta) - (tool-bar-mode 0) - (setq-default cursor-type 'box) - (blink-cursor-mode 0) -; (define-key osx-key-mode-map "\C-x\C-z" 'ns-do-hide-emacs) - (message "whoa") - ) - (setq mac-option-modifier 'meta) -) - - -(global-set-key "\C-xd" 'delete-region) -(global-set-key "\C-s" 'isearch-forward-regexp) -(global-set-key "\C-r" 'isearch-backward-regexp) -(global-set-key "\et" 'query-replace) -(global-set-key "\er" 'find-tag) -(global-set-key "\ej" 'pop-tag-mark) - - - -(defun tex-comment (arg) - "Insert a TeX comment from the beginning of the line" - (interactive "P") - - (pete-comment "%" " " t)) -(defun pete-comment (comment space always) - (beginning-of-line) - - (if (not (looking-at comment)) - (let ((end (progn (end-of-line) (point)))) - (beginning-of-line) - (if (or always (re-search-forward "[^ \t]" end t)) - (progn - (beginning-of-line) - (insert comment space))))) - (beginning-of-line) - (next-line 1)) - -(defun un-tex-comment (arg) - "Remove a TeX comment from the beginning of the line" - (interactive "P") - (beginning-of-line) - (if (looking-at "% ") (delete-char 2) - (if (looking-at "%") (delete-char 1))) - (next-line 1)) - -(defconst pete-sent-end (purecopy "[.?!][]\"')}]*\\($\\|\%|X|\t\\| \\)[ \t\n]*") "\ -*Regexp describing the end of a sentence. -All paragraph boundaries also end sentences, regardless.") -;(defconst pete-sent-end (purecopy "[.?!]\s+\\|%")) - -(add-hook 'python-mode-hook - (lambda () - (setq indent-tabs-mode t) - (setq tab-width 4) - (setq python-indent 4))) - - -(defun my-tex-mode-hook () - (setq paragraph-start (concat paragraph-start "\\|%.*$"))) -(add-hook 'LaTeX-mode-hook 'my-tex-mode-hook) -;(add-hook 'LaTeX-mode-hook '(flyspell-mode t)) -(add-hook 'LaTeX-mode-hook #'turn-on-flyspell) -(defun petes (arg) - "" - (interactive "P") - (re-search-forward pete-sent-end (point-max) t) -) -(global-set-key [C-home] 'petes) ; keypad 0 - - -(setq paragraph-start "\f\\|[ ]*$\\|%") - - -(defun pete-paragraph (arg) - "Fill paragraph, but sentences all start on new line." - (interactive "P") - (save-excursion - (forward-paragraph) - (or (bolp) (newline 1)) - (let ((end (point)) (beg)) - (backward-paragraph) - - (if (char-equal (char-after (point)) ?\n) - (forward-char)) - - (while (char-equal (char-after (point)) ?\%) - (next-line 1)) - - (setq beg (point)) -; (setq paragraph-start -; (concat paragraph-start "\\|[ \t]*\\(?:" -; comment-start-skip "\\)")) -; (if (char-equal (char-after (point)) ?X) -; (while (and (not (bolp)) (not (eobp))) (forward-char 1))) - (fill-region-as-paragraph (point) end arg) - (save-restriction - (setq end (point)) - (narrow-to-region beg end) - (goto-char beg) - (while (re-search-forward pete-sent-end (point-max) t) - (or (bolp) (newline 1)) - (fill-region-as-paragraph beg (point)) - (setq beg (point))))))) - -(defun next-sentence (arg) - "Go to beginning of next sentence." - (interactive "P") - (let ((orig (point)) - (curr (point)) - (notdone t) - (back (point))) - (while notdone - (forward-sentence) - (if (= curr (point)) (setq notdone ())) - (setq curr (point)) - (save-excursion - (backward-sentence) - (setq back (point)) - (if (not (= orig (point))) (setq notdone ()))) - (goto-char curr)) - (goto-char back))) - -(global-set-key "\ep" 'pete-paragraph) - -(global-set-key [f27] 'backward-sentence) ; r7 -(global-set-key [f29] 'next-sentence) ; r9 - -(defun lastSection (arg) - "Move to start of last section." - (interactive "P") - (if (re-search-backward "^\\\\\\(section\\|chapter\\)" 0 t) - (goto-char (match-beginning 0)))) - -(defun nextSection (arg) - "Move to start of next section." - (interactive "P") - (let ((old (point))) - (goto-char (+ old 1)) - (if (re-search-forward "^\\\\\\(section\\|chapter\\)" (point-max) t) - (goto-char (match-beginning 0)) - (goto-char old)))) - -(defun lastSubSection (arg) - "Move to start of last section." - (interactive "P") - (if (re-search-backward "^\\\\\\(sub\\)*\\(section\\|chapter\\)" 0 t) - (goto-char (match-beginning 0)))) - -(defun nextSubSection (arg) - "Move to start of next section." - (interactive "P") - (let ((old (point))) - (goto-char (+ old 1)) - (if (re-search-forward "^\\\\\\(sub\\)*\\(section\\|chapter\\)" (point-max) t) - (goto-char (match-beginning 0)) - (goto-char old)))) - -(global-set-key [C-left] 'lastSubSection) ; keypad 0 -(global-set-key [C-right] 'nextSubSection) ; keypad 0 -(global-set-key [C-up] 'lastSection) ; keypad 0 -(global-set-key [C-down] 'nextSection) ; keypad enter -(global-set-key [C-S-up] 'lastSubSection) ; keypad 0 -(global-set-key [C-S-down] 'nextSubSection) ; keypad enter -(global-set-key [C-f5] 'tex-comment) -(global-set-key [C-f6] 'un-tex-comment) -(global-set-key [C-f9] 'lastSection) -(global-set-key [C-f10] 'lastSubSection) -(global-set-key [C-f11] 'nextSubSection) -(global-set-key [C-f12] 'nextSection) -(global-set-key "\C-]" 'undo) -(global-set-key "\C-cc" 'compile) -(global-set-key "\C-cn" 'next-error) -(global-set-key "\ei" 'indent-region) -(global-set-key "\C-cz" 'isearch-toggle-case-fold) - -(fset 'recenter-top - "\C-u1\C-l") -(global-set-key "\C-t" 'recenter-top) -(setq cursor-type 'box) - -(fset 'equalsLine - "//===================================================================== -") -(global-set-key "\C-cl" 'equalsLine) - -;(setq normal-erase-is-backspace nil) - -;(if window-system -(if nil - (let () - (global-smart-spacing-mode -1) ; not on by default - (one-buffer-one-frame-mode -1) ; no one-buffer-per-frame - (osx-key-mode -1) ; no Mac-specific key bindings - - ;; if you instead decide to leave osx-key-mode on: - (define-key osx-key-mode-map "\C-z" nil) ;; reinstate C-z to minimize - ;; (define-key osx-key-mode-map "\C-z" 'ns-do-hide-emacs) ;; C-z to hide the application -;; (define-key osx-key-mode-map "\C-z" 'suspend-emacs) - (aquamacs-autoface-mode -1) ; no mode-specific faces, everything in Monaco - (setq - ; ns-command-modifier 'meta ; Apple/Command key is Meta - ; ns-alternate-modifier nil ; Option is the Mac Option key - ns-use-mac-modifier-symbols nil ; display standard Emacs (and not standard Mac) modifier symbols) - ) - ) - ) - - (setq special-display-regexps nil) ; do not open certain buffers in special windows/frames - - - -(unless window-system ;; in TTY (terminal) mode - (let () - (set-face-inverse-video-p 'mode-line-inactive t) - ) -) -;; Persistency and modes: - (setq - aquamacs-scratch-file nil ; do not save scratch file across sessions - initial-major-mode 'emacs-lisp-mode ; *scratch* shows up in emacs-lisp-mode - ;; aquamacs-default-major-mode 'emacs-lisp-mode ; new buffers open in emacs-lisp-mode - ) - - ; Frame and window management: - - ; (smart-frame-positioning-mode -1) ; do not place frames behind the Dock or outside of screen boundaries - - ; (tool-bar-mode 0) ; turn off toolbar - ; (scroll-bar-mode -1) ; no scrollbars - - ;; Appearance - - ;(set-face-attribute 'mode-line nil :inherit 'unspecified) ; show modeline in Monaco - ;(set-face-attribute 'echo-area nil :family 'unspecified) ; show echo area in Monaco - - - ;; Editing - -(remove-hook 'text-mode-hook 'smart-spacing-mode) ; do not use smart spacing in text modes -(remove-hook 'tex-mode-hook 'smart-spacing-mode) ; do not use smart spacing in text modes - - ; (global-visual-line-mode -1) ; turn off Emacs 23 visual line - ; (cua-mode nil) - ; (transient-mark-mode nil) ; (must switch off CUA mode as well for this to work) - -(setq shell-file-name "tcsh") -(setq shell-command-switch "-ic") - -; auto-completion -(add-to-list 'load-path "~/.emacs.d/lisp/") - -;(require 'auto-complete-config) -;(add-to-list 'ac-dictionary-directories "~/.emacs.d/lisp/ac-dict") -;(ac-config-default) -;(require 'go-autocomplete) -;(require 'auto-complete-config) - - -;; go mode -(add-to-list 'load-path "~/.emacs.d/lisp/") -(setq load-path (cons "/usr/local/go/misc/emacs" load-path)) -(require 'go-mode) -(require 'go-complete) -;(require 'protobuf-mode) - -(add-hook 'go-mode-hook - (lambda () - (add-hook 'before-save-hook 'gofmt-before-save) - (setq tab-width 4) - (setq compile-command "go run main.go") - (local-set-key "\er" 'godef-jump) - (local-set-key "\C-c\C-r" 'go-remove-unused-imports) - (setq indent-tabs-mode 1))) -(require 'go-complete) -(add-hook 'completion-at-point-functions 'go-complete-at-point) - -(setq x-select-enable-clipboard t) - -(tool-bar-mode -1) -(blink-cursor-mode 0) -(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. - ) diff --git a/project1/.emacs.d/SessionDesktop.el b/project1/.emacs.d/SessionDesktop.el deleted file mode 100644 index fc669f6..0000000 --- a/project1/.emacs.d/SessionDesktop.el +++ /dev/null @@ -1,34 +0,0 @@ -;; -*- mode: emacs-lisp; coding: emacs-mule; -*- -;; -------------------------------------------------------------------------- -;; Desktop File for Emacs -;; -------------------------------------------------------------------------- -;; Created Tue Aug 27 15:32:35 2019 -;; Desktop file format version 208 -;; Emacs version 25.3.50.1 -(setq revive:frame-configuration-to-restore - '(progn - (revive:restore-frame '((tool-bar-position . top) (explicit-name) (icon-name) (bottom-divider-width . 0) (right-divider-width . 0) (top . 33) (left . 10) (unsplittable) (modeline . t) (width . 154) (height . 72) (fringe) (mouse-color . "black") (environment) (visibility . t) (cursor-color . "Red") (background-mode . light) (fullscreen) (alpha) (scroll-bar-height . 0) (scroll-bar-width . 15) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (title) (buffer-predicate) (tool-bar-lines . 0) (menu-bar-lines . 1) (right-fringe . 8) (left-fringe . 1) (line-spacing) (background-color . "White") (foreground-color . "Black") (horizontal-scroll-bars) (vertical-scroll-bars . right) (internal-border-width . 0) (border-width . 0) (font . "-*-Monaco-normal-normal-normal-*-14-*-*-*-m-0-iso10646-1") (fontsize . 0)) '(154 72 ((0 0 157 71)) (("~/Downloads/overview.md" "overview.md" 1 1 ((tab "overview.md" "/Users/keleher/Downloads/overview.md")))))))) - -;; Global section: -(setq desktop-saved-frameset [frameset 1 (23909 34131 254345 0) (desktop . "208") "keleher@titan" nil nil ((((font-backend mac-ct) (fontsize . 0) (font . "-*-Monaco-normal-normal-normal-*-14-*-*-*-m-0-iso10646-1") (border-width . 0) (internal-border-width . 0) (vertical-scroll-bars . right) (horizontal-scroll-bars) (foreground-color . "Black") (background-color . "White") (line-spacing) (left-fringe . 1) (right-fringe . 8) (menu-bar-lines . 1) (tool-bar-lines . 0) (title) (icon-type) (auto-raise) (auto-lower) (cursor-type . box) (scroll-bar-width . 15) (scroll-bar-height . 0) (alpha) (fullscreen) (display-type . color) (background-mode . light) (cursor-color . "Red") (visibility . t) (environment) (mouse-color . "black") (fringe) (frameset--id . "07AE-614B-DFFE-3E29") (frameset--mini t . t) (height . 72) (width . 154) (modeline . t) (minibuffer . t) (unsplittable) (left . 10) (top . 33) (right-divider-width . 0) (bottom-divider-width . 0) (icon-name) (display . "titan") (explicit-name) (tool-bar-position . top)) ((min-height . 4) (min-width . 10) (min-height-ignore . 3) (min-width-ignore . 5) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 76) (min-pixel-width . 80) (min-pixel-height-ignore . 54) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 19) (min-pixel-width-safe . 16)) leaf (pixel-width . 1256) (pixel-height . 1349) (total-width . 157) (total-height . 71) (normal-height . 1.0) (normal-width . 1.0) (buffer "overview.md" (selected . t) (hscroll . 0) (fringes 1 8 nil) (margins nil) (scroll-bars nil 2 t nil 0 nil) (vscroll . 0) (dedicated) (point . 1) (start . 1))))]) -(setq desktop-missing-file-warning nil) -(setq tags-file-name nil) -(setq tags-table-list nil) -(setq search-ring nil) -(setq regexp-search-ring '("fmt" "init" "unstea" "pro" "e4" "can he" "room" "unown" "esca" "choose " "enabl" "4 p" "allows" "excl" "dr" "rest of")) -(setq register-alist nil) -(setq file-name-history '("~/Downloads/overview.md" "~/go/src/dss/p2/solution/main.go" "~/go/src/dss/p3/solution/main.go" "~/go/src/dss/p3/solution/dfs/fs.go" "~/go/src/dss/p3/solution/main.go" "~/go/src/dss/p2/solution/main.go" "~/Desktop/survey.txt" "~/sedna/k/bookclub.rb" "~/ios/ios436/exams/final/final.tex" "~/ios/ios436/exams/final/ff" "~/ios/ios436/groups/CMSC436-0101.dlm" "~/ios/ios436/exams/final/final.tex" "~/docs/letters/saeedHD/umdletter.sty" "~/docs/letters/saeedHD/pete-letter.sty" "~/docs/letters/saeedHD/saeedHD.tex" "~/docs/letters/saeedHD/saeed.tex" "~/ios/cmsc436spring2019-student/semesterProject.md" "~/ios/ios436/groups/groupAssignments.csv" "~/ios/ios436tas/ff" "~/ios/ios436tas/schedule.md" "~/ios/ios436/groups/groupAssignments.csv" "~/ios/ios436tas/schedule.md" "~/ios/ios436/groups/groups.pl" "~/ios/ios436/groups/definition.txt" "~/ios/ios436/groups/mid2_scores.csv" "~/ios/ios436/groups/groups.pl" "~/ios/ios436/groups/" "~/ios/ios436tas/schedule.md" "~/ios/cmsc436spring2019-student/semesterProject.md" "~/ios/ios436tas/schedule.md" "~/Desktop/CMSC436-0101.dlm" "~/ios/ios436/ff" "~/ios/ios436/genericsConstraints.txt" "~/Desktop/mid2_scores.csv" "~/ios/ios436/exams/mid2/mid2.tex" "~/ios/ios436/exams/mid2/pete.sty" "~/ios/ios436/exams/mid2/mid2.tex" "~/Desktop/projectList436.csv" "~/down/t.txt" "~/.emacs" "~/ios/ios436/notes.txt" "~/ios/ios436/exams/mid2/mid2.tex" "~/triffid/ios436/www/topics.yaml" "~/hyperion/ios436/www/syllabus.html" "~/hyperion/ios436/www/resources.html" "~/hyperion/ios436/www/schedule.rb" "~/hyperion/ios436/www/index.html" "~/triffid/ios436/www/syllabus.html" "~/triffid/ios436/www/resources.html" "~/triffid/ios436/www/index.html" "~/triffid/ios436/www/schedule.rb" "~/hyperion/ios436/www/index.html" "~/hyperion/ios436/www/schedule.rb" "~/hyperion/ios436/www/index.html" "~/ios/ios436/exams/mid2/mid2.tex" "~/down/MC_Formatting.tex" "~/down" "~/Desktop/98ca9548e1525bb09024c79f5c35a506-69a4dc247568cb3c6550133060e5e3f6039ef692/MC_Formatting.tex" "~/ios/ios436tas/assign4.md" "~/ios/ios436tas/assign3.md" "~/triffid/ios436/www/topics.yaml" "~/Desktop/assign2UITests.swift" "~/ios/ios436tas/semesterProject.md" "~/ios/ios436/notes.txt" "~/down/notes.txt" "~/ios/ios436/notes.txt" "~/down/ideas.txt" "~/ios/ios436tas/try.md" "~/ios/ios436/www/topics.yaml" "~/ben/nsdi17/nsdi.tex" "~/triffid/ios436/www/topics.yaml" "~/ios/ios436/notes.txt" "~/ios/ios436/exams/ff" "~/ios/ios436/exams/mid1.tex" "~/Desktop/BuildingADocumentBrowserBasedApp/README.md" "~/ios/ios436/exams/mid1.tex" "~/ios/ios436/notes.txt" "~/ios/notes.txt" "~/ios/ios436/notes.txt" "~/triffid/ios436/www/topics.yaml" "~/triffid/www/topics" "~/ios/ios436/workspace/ff" "~/ios/ios436/workspace/notes.txt" "~/ios/ios436tas/assign2.md" "~/triffid/ios436/www/topics.yaml" "~/Desktop/assign2Tests.swift" "~/ios/ios436tas/assign3.md" "~/ios/ios436tas/assign3/assign3/model.swift" "~/ios/ios436tas/assign3.md" "~/Desktop/Untitled spreadsheet - 2019-02-26T0935_Grades-CMSC436.csv" "~/Desktop/2019-02-26T0935_Grades-CMSC436.csv" "~/triffid/ios436/www/topics.yaml" "~/Desktop/tech" "~/triffid/ios436/www/index.html" "~/ios/ios436tas/assign2.md" "~/triffid/ios436/www/topics.yaml" "~/triffid/ios436/www/schedule.rb" "~/Desktop/CMSC436-0101.csv" "~/ios/ios436/workspace/notes.txt" "~/ios/ios436tas/assign2.md" "~/ios/ios436/workspace/notes.txt")) - -;; Buffer section -- buffers listed in same order as in buffer list: -(desktop-create-buffer 208 - "/Users/keleher/Downloads/overview.md" - "overview.md" - 'markdown-mode - '(auto-fill-mode flyspell-mode) - 1 - '(nil nil) - nil - nil - '((tab-width . 4) (buffer-file-coding-system . undecided-unix) (truncate-lines)) - '((mark-ring nil))) - diff --git a/project1/.emacs.d/ac-comphist.dat b/project1/.emacs.d/ac-comphist.dat deleted file mode 100644 index aae95f6..0000000 --- a/project1/.emacs.d/ac-comphist.dat +++ /dev/null @@ -1,66 +0,0 @@ -((("out" . - [1 0 0]) - ("output" . - [2 0 0 0 0 0]) - ("Dir" . - [1 0 0]) - ("File" . - [1 0 0 0]) - ("flds" . - [4 0 0 0]) - ("group" . - [2 0 0 0 0]) - ("seg" . - [2 0 0]) - ("shift" . - [3 0 0 0 0]) - ("dir" . - [4 0 0]) - ("dfs" . - [1 0 0]) - ("Printf" . - [1 0 1 3 0 0]) - ("fmt" . - [5 0 0]) - ("Fprintf" . - [0 0 0 1 0 0 0]) - ("each" . - [1 0 0 0]) - ("machines" . - [1 0 0 0 0 0 0 0]) - ("Init" . - [0 0 1 0]) - ("ReadDirAll" . - [0 0 0 0 1 0 0 0 0 0]) - ("Fsync" . - [0 0 1 0 0]) - ("FsyncRequest" . - [0 0 1 0 0 0 0 0 0 0 0 0]) - ("subs" . - [1 0 0 1]) - ("len" . - [2 0 0]) - ("Args" . - [1 0 1 0]) - ("email" . - [0 0 1 0 0]) - ("printResults" . - [0 0 1 0 0 0 0 0 0 0 0 0]) - ("data" . - [2 0 0 0]) - ("trip" . - [1 0 1 1]) - ("extract" . - [0 0 1 1 0 0 0]) - ("string" . - [1 0 0 1 0 6]) - ("avail" . - [2 0 0 0 0]) - ("rows" . - [4 0 0 1]) - ("append" . - [1 0 0 0 0 0]) - ("print" . - [0 0 0 0 1]) - ("row" . - [5 0 0]))) diff --git a/project1/.emacs.d/packages/archives/gnu/archive-contents b/project1/.emacs.d/packages/archives/gnu/archive-contents deleted file mode 100644 index c5679e4..0000000 --- a/project1/.emacs.d/packages/archives/gnu/archive-contents +++ /dev/null @@ -1,1575 +0,0 @@ -(1 - (ace-window . - [(0 9 0) - ((avy - (0 2 0))) - "Quickly switch windows." single - ((:url . "https://github.com/abo-abo/ace-window") - (:keywords "window" "location"))]) - (ack . - [(1 8) - nil "interface to ack-like tools" tar - ((:keywords "tools" "processes" "convenience") - (:url . "https://github.com/leoliu/ack-el"))]) - (ada-mode . - [(6 1 0) - ((wisi - (2 1 0)) - (cl-lib - (1 0)) - (emacs - (25 0))) - "major-mode for editing Ada sources" tar - ((:keywords "languages" "ada") - (:url . "http://www.nongnu.org/ada-mode/"))]) - (ada-ref-man . - [(2012 5) - nil "Ada Reference Manual 2012" tar - ((:keywords "languages" "ada") - (:url . "http://stephe-leake.org/ada/arm.html"))]) - (adaptive-wrap . - [(0 7) - nil "Smart line-wrapping with wrap-prefix" single - ((:url . "http://elpa.gnu.org/packages/adaptive-wrap.html") - (:keywords))]) - (adjust-parens . - [(3 0) - nil "Indent and dedent Lisp code, automatically adjust close parens" tar - ((:url . "http://elpa.gnu.org/packages/adjust-parens.html"))]) - (advice-patch . - [(0 1) - ((emacs - (24 4))) - "Use patches to advise the inside of functions" single - ((:url . "http://elpa.gnu.org/packages/advice-patch.html") - (:keywords))]) - (aggressive-indent . - [(1 8 3) - ((emacs - (24 1)) - (cl-lib - (0 5))) - "Minor mode to aggressively keep your code always indented" single - ((:url . "https://github.com/Malabarba/aggressive-indent-mode") - (:keywords "indent" "lisp" "maint" "tools"))]) - (ahungry-theme . - [(1 10 0) - ((emacs - (24))) - "Ahungry color theme for Emacs. Make sure to (load-theme 'ahungry)." tar - ((:keywords "ahungry" "palette" "color" "theme" "emacs" "color-theme" "deftheme") - (:url . "https://github.com/ahungry/color-theme-ahungry"))]) - (all . - [(1 0) - nil "Edit all lines matching a given regexp" single - ((:url . "http://elpa.gnu.org/packages/all.html") - (:keywords "matching"))]) - (ampc . - [(0 2) - nil "Asynchronous Music Player Controller" single - ((:url . "http://elpa.gnu.org/packages/ampc.html") - (:keywords "ampc" "mpc" "mpd"))]) - (arbitools . - [(0 976) - ((cl-lib - (0 5))) - "Package for chess tournaments administration" single - ((:url . "http://elpa.gnu.org/packages/arbitools.html") - (:keywords))]) - (ascii-art-to-unicode . - [(1 12) - nil "a small artist adjunct" single - ((:url . "http://www.gnuvola.org/software/aa2u/") - (:keywords "ascii" "unicode" "box-drawing"))]) - (async . - [(1 9 2) - nil "Asynchronous processing in Emacs" tar - ((:keywords "async") - (:url . "http://elpa.gnu.org/packages/async.html"))]) - (auctex . - [(12 1 2) - ((emacs - (24 1)) - (cl-lib - (0 5))) - "Integrated environment for *TeX*" tar - ((:keywords "tex" "latex" "texinfo" "context" "doctex" "preview-latex") - (:url . "http://www.gnu.org/software/auctex/"))]) - (aumix-mode . - [(7) - nil "run the aumix program in a buffer" single - ((:url . "http://user42.tuxfamily.org/aumix-mode/index.html") - (:keywords "multimedia" "mixer" "aumix"))]) - (auto-correct . - [(1 1 4) - nil "Remembers and automatically fixes past corrections" single - ((:url . "http://elpa.gnu.org/packages/auto-correct.html") - (:keywords "editing"))]) - (auto-overlays . - [(0 10 9) - nil "Automatic regexp-delimited overlays" tar - ((:keywords "extensions") - (:url . "http://www.dr-qubit.org/emacs.php"))]) - (avy . - [(0 5 0) - ((emacs - (24 1)) - (cl-lib - (0 5))) - "Jump to arbitrary positions in visible text and select text quickly." tar - ((:keywords "point" "location") - (:url . "https://github.com/abo-abo/avy"))]) - (bbdb . - [(3 2) - ((emacs - (24))) - "core of BBDB" tar - ((:url . "http://elpa.gnu.org/packages/bbdb.html"))]) - (beacon . - [(1 3 3) - ((seq - (2 14))) - "Highlight the cursor whenever the window scrolls" single - ((:url . "https://github.com/Malabarba/beacon") - (:keywords "convenience"))]) - (bnf-mode . - [(0 4 2) - ((cl-lib - (0 5)) - (emacs - (24 3))) - "Major mode for editing BNF grammars." tar - ((:keywords "languages") - (:url . "https://github.com/sergeyklay/bnf-mode"))]) - (brief . - [(5 87) - nil "Brief Editor Emulator (Brief Mode)" tar - ((:keywords "brief" "emulations" "crisp") - (:url . "http://elpa.gnu.org/packages/brief.html"))]) - (buffer-expose . - [(0 4 3) - ((emacs - (25)) - (cl-lib - (0 5))) - "Visual buffer switching using a window grid" single - ((:url . "https://github.com/clemera/buffer-expose") - (:keywords "convenience"))]) - (bug-hunter . - [(1 3 1) - ((seq - (1 3)) - (cl-lib - (0 5))) - "Hunt down errors by bisecting elisp files" single - ((:url . "https://github.com/Malabarba/elisp-bug-hunter") - (:keywords "lisp"))]) - (caps-lock . - [(1 0) - nil "Caps-lock as a minor mode" single - ((:url . "http://elpa.gnu.org/packages/caps-lock.html") - (:keywords))]) - (captain . - [(1 0 3) - nil "CAPiTalization is Automatic IN emacs" single - ((:url . "http://elpa.gnu.org/packages/captain.html") - (:keywords "editing"))]) - (chess . - [(2 0 4) - ((cl-lib - (0 5))) - "Play chess in GNU Emacs" tar - ((:keywords "games") - (:url . "http://elpa.gnu.org/packages/chess.html"))]) - (cl-generic . - [(0 3) - nil "Forward cl-generic compatibility for Emacs<25" single - ((:url . "http://elpa.gnu.org/packages/cl-generic.html") - (:keywords))]) - (cl-lib . - [(0 6 1) - nil "Properly prefixed CL functions and macros" single - ((:url . "http://elpa.gnu.org/packages/cl-lib.html") - (:keywords))]) - (cl-print . - [(1 0) - ((emacs - (25))) - "CL-style generic printing" single - ((:url . "http://elpa.gnu.org/packages/cl-print.html") - (:keywords))]) - (clipboard-collector . - [(0 2) - ((emacs - (25))) - "Collect clipboard entries according to regex rules" single - ((:url . "https://github.com/clemera/clipboard-collector") - (:keywords "convenience"))]) - (cobol-mode . - [(1 0 0) - ((cl-lib - (0 5))) - "Mode for editing COBOL code" single - ((:url . "http://elpa.gnu.org/packages/cobol-mode.html") - (:keywords "languages"))]) - (coffee-mode . - [(0 4 1 1) - nil "Major mode for CoffeeScript files" single - ((:url . "http://github.com/defunkt/coffee-mode") - (:keywords "coffeescript" "major" "mode"))]) - (compact-docstrings . - [(0 1) - nil "Shrink blank lines in docstrings and doc comments" single - ((:url . "https://github.com/cpitclaudel/compact-docstrings") - (:keywords "convenience" "faces" "lisp" "maint" "c"))]) - (company . - [(0 9 10) - ((emacs - (24 3))) - "Modular text completion framework" tar - ((:keywords "abbrev" "convenience" "matching") - (:url . "http://company-mode.github.io/"))]) - (company-ebdb . - [(1 1) - ((company - (0 9 4)) - (ebdb - (0 2))) - "company-mode completion backend for EBDB in message-mode" single - ((:url . "http://elpa.gnu.org/packages/company-ebdb.html") - (:keywords))]) - (company-math . - [(1 3) - ((company - (0 8 0)) - (math-symbol-lists - (1 2))) - "Completion backends for unicode math symbols and latex tags" tar - ((:keywords "unicode" "symbols" "completion") - (:url . "https://github.com/vspinu/company-math"))]) - (company-statistics . - [(0 2 3) - ((emacs - (24 3)) - (company - (0 8 5))) - "Sort candidates using completion history" tar - ((:keywords "abbrev" "convenience" "matching") - (:url . "https://github.com/company-mode/company-statistics"))]) - (context-coloring . - [(8 1 0) - ((emacs - (24 3))) - "Highlight by scope" tar - ((:keywords "convenience" "faces" "tools") - (:url . "https://github.com/jacksonrayhamilton/context-coloring"))]) - (crisp . - [(1 3 6) - nil "CRiSP/Brief Emacs emulator" single - ((:url . "http://elpa.gnu.org/packages/crisp.html") - (:keywords "emulations" "brief" "crisp"))]) - (csv-mode . - [(1 7) - nil "Major mode for editing comma/char separated values" single - ((:url . "http://elpa.gnu.org/packages/csv-mode.html") - (:keywords "convenience"))]) - (cycle-quotes . - [(0 1) - nil "Cycle between quote styles" tar - ((:keywords "convenience") - (:url . "http://elpa.gnu.org/packages/cycle-quotes.html"))]) - (darkroom . - [(0 2) - ((cl-lib - (0 5))) - "Remove visual distractions and focus on writing" single - ((:url . "http://elpa.gnu.org/packages/darkroom.html") - (:keywords "convenience" "emulations"))]) - (dash . - [(2 12 0) - nil "A modern list library for Emacs" tar - ((:keywords "lists") - (:url . "http://elpa.gnu.org/packages/dash.html"))]) - (dbus-codegen . - [(0 1) - ((cl-lib - (0 5))) - "Lisp code generation for D-Bus." single - ((:url . "http://elpa.gnu.org/packages/dbus-codegen.html") - (:keywords "comm" "dbus" "convenience"))]) - (debbugs . - [(0 18) - ((emacs - (25 1)) - (soap-client - (3 1 5)) - (cl-lib - (0 5))) - "SOAP library to access debbugs servers" tar - ((:keywords "comm" "hypermedia") - (:url . "http://elpa.gnu.org/packages/debbugs.html"))]) - (delight . - [(1 5) - nil "A dimmer switch for your lighter text." single - ((:url . "https://savannah.nongnu.org/projects/delight") - (:keywords "convenience"))]) - (dict-tree . - [(0 14) - ((trie - (0 3)) - (tNFA - (0 1 1)) - (heap - (0 3))) - "Dictionary data structure" single - ((:url . "http://www.dr-qubit.org/emacs.php") - (:keywords "extensions" "matching" "data structures trie" "tree" "dictionary" "completion" "regexp"))]) - (diff-hl . - [(1 8 6) - ((cl-lib - (0 2)) - (emacs - (24 3))) - "Highlight uncommitted changes using VC" tar - ((:keywords "vc" "diff") - (:url . "https://github.com/dgutov/diff-hl"))]) - (diffview . - [(1 0) - nil "View diffs in side-by-side format" single - ((:url . "https://github.com/mgalgs/diffview-mode") - (:keywords "convenience" "diff"))]) - (dired-du . - [(0 5 2) - ((emacs - (24 4)) - (cl-lib - (0 5))) - "Dired with recursive directory sizes" tar - ((:keywords "files" "unix" "convenience") - (:url . "http://elpa.gnu.org/packages/dired-du.html"))]) - (dired-git-info . - [(0 2) - ((emacs - (25))) - "Show git info in dired" single - ((:url . "https://github.com/clemera/dired-git-info") - (:keywords "dired" "files"))]) - (disk-usage . - [(1 3 3) - ((emacs - (26 1))) - "Sort and browse disk usage listings" single - ((:url . "https://gitlab.com/Ambrevar/emacs-disk-usage") - (:keywords "files" "convenience" "tools"))]) - (dismal . - [(1 5) - ((cl-lib - (0))) - "Dis Mode Ain't Lotus: Spreadsheet program Emacs" tar - ((:url . "http://elpa.gnu.org/packages/dismal.html"))]) - (djvu . - [(1 1) - nil "Edit and view Djvu files via djvused" single - ((:url . "http://elpa.gnu.org/packages/djvu.html") - (:keywords "files" "wp"))]) - (docbook . - [(0 1) - nil "Info-like viewer for DocBook" single - ((:url . "http://elpa.gnu.org/packages/docbook.html") - (:keywords "docs" "help"))]) - (dts-mode . - [(0 1 0) - nil "Major mode for Device Tree source files" single - ((:url . "http://elpa.gnu.org/packages/dts-mode.html") - (:keywords "languages"))]) - (easy-kill . - [(0 9 3) - ((emacs - (24)) - (cl-lib - (0 5))) - "kill & mark things easily" tar - ((:keywords "killing" "convenience") - (:url . "https://github.com/leoliu/easy-kill"))]) - (ebdb . - [(0 6 9) - ((emacs - (25 1)) - (cl-lib - (0 5)) - (seq - (2 15))) - "Contact management package" tar - ((:keywords "convenience" "mail") - (:url . "https://github.com/girzel/ebdb"))]) - (ebdb-gnorb . - [(1 0 2) - ((gnorb - (1 1 0)) - (ebdb - (0 2))) - "Utilities for connecting EBDB to Gnorb" single - ((:url . "http://elpa.gnu.org/packages/ebdb-gnorb.html") - (:keywords))]) - (ebdb-i18n-chn . - [(1 2) - ((pyim - (1 6 0)) - (ebdb - (0 2))) - "China-specific internationalization support for EBDB" single - ((:url . "http://elpa.gnu.org/packages/ebdb-i18n-chn.html") - (:keywords))]) - (ediprolog . - [(1 2) - nil "Emacs Does Interactive Prolog" single - ((:url . "http://elpa.gnu.org/packages/ediprolog.html") - (:keywords "languages" "processes"))]) - (eev . - [(20190517) - ((emacs - (24 1))) - "Support for e-scripts (eepitch blocks, elisp hyperlinks, etc)" tar - ((:keywords "lisp" "e-scripts") - (:url . "http://angg.twu.net/#eev"))]) - (eglot . - [(1 4) - ((emacs - (26 1)) - (jsonrpc - (1 0 7)) - (flymake - (1 0 2))) - "Client for Language Server Protocol (LSP) servers" tar - ((:keywords "convenience" "languages") - (:url . "https://github.com/joaotavora/eglot"))]) - (el-search . - [(1 12 5) - ((emacs - (25)) - (stream - (2 2 4)) - (cl-print - (1 0))) - "Expression based interactive search for Emacs Lisp" tar - ((:keywords "lisp") - (:url . "http://elpa.gnu.org/packages/el-search.html"))]) - (eldoc-eval . - [(0 1) - nil "Enable eldoc support when minibuffer is in use." single - ((:url . "http://elpa.gnu.org/packages/eldoc-eval.html") - (:keywords))]) - (electric-spacing . - [(5 0) - nil "Insert operators with surrounding spaces smartly" single - ((:url . "http://elpa.gnu.org/packages/electric-spacing.html") - (:keywords))]) - (enwc . - [(2 0) - ((emacs - (25 1))) - "The Emacs Network Client" tar - ((:keywords "external" "network" "wicd" "manager" "nm") - (:url . "http://elpa.gnu.org/packages/enwc.html"))]) - (epoch-view . - [(0 0 1) - nil "Minor mode to visualize epoch timestamps" single - ((:url . "http://elpa.gnu.org/packages/epoch-view.html") - (:keywords "data" "timestamp" "epoch" "unix"))]) - (ergoemacs-mode . - [(5 16 10 12) - ((emacs - (24 1)) - (undo-tree - (0 6 5)) - (cl-lib - (0 5))) - "Emacs mode based on common modern interface and ergonomics." tar - ((:keywords "convenience") - (:url . "https://github.com/ergoemacs/ergoemacs-mode"))]) - (excorporate . - [(0 8 2) - ((emacs - (24 1)) - (fsm - (0 2)) - (soap-client - (3 1 4)) - (url-http-ntlm - (2 0 3)) - (nadvice - (0 3))) - "Exchange Web Services (EWS) integration" tar - ((:keywords "calendar") - (:url . "http://elpa.gnu.org/packages/excorporate.html"))]) - (exwm . - [(0 22 1) - ((xelb - (0 16))) - "Emacs X Window Manager" tar - ((:keywords "unix") - (:url . "https://github.com/ch11ng/exwm"))]) - (f90-interface-browser . - [(1 1) - nil "Parse and browse f90 interfaces" single - ((:url . "http://github.com/wence-/f90-iface/") - (:keywords))]) - (filladapt . - [(2 12 2) - ((emacs - (24 4))) - "Adaptive fill" single - ((:url . "http://elpa.gnu.org/packages/filladapt.html") - (:keywords))]) - (flylisp . - [(0 2) - ((emacs - (24 1)) - (cl-lib - (0 4))) - "Color unbalanced parentheses and parentheses inconsistent with indentation" single - ((:url . "http://elpa.gnu.org/packages/flylisp.html") - (:keywords))]) - (flymake . - [(1 0 6) - ((emacs - (26 1))) - "A universal on-the-fly syntax checker" single - ((:url . "http://elpa.gnu.org/packages/flymake.html") - (:keywords "c" "languages" "tools"))]) - (fountain-mode . - [(2 7 1) - ((emacs - (24 5))) - "Major mode for screenwriting in Fountain markup" single - ((:url . "http://elpa.gnu.org/packages/fountain-mode.html") - (:keywords "wp" "text"))]) - (frame-tabs . - [(1 1) - nil "show buffer tabs in side window" single - ((:url . "http://elpa.gnu.org/packages/frame-tabs.html") - (:keywords "frames" "tabs"))]) - (frog-menu . - [(0 2 8) - ((emacs - (26)) - (avy - (0 4)) - (posframe - (0 4))) - "Quickly pick items from ad hoc menus" single - ((:url . "https://github.com/clemera/frog-menu") - (:keywords "convenience"))]) - (fsm . - [(0 2 1) - ((emacs - (24 1)) - (cl-lib - (0 5))) - "state machine library" single - ((:url . "http://elpa.gnu.org/packages/fsm.html") - (:keywords "extensions"))]) - (ggtags . - [(0 8 13) - ((emacs - (24)) - (cl-lib - (0 5))) - "emacs frontend to GNU Global source code tagging system" single - ((:url . "https://github.com/leoliu/ggtags") - (:keywords "tools" "convenience"))]) - (gited . - [(0 5 3) - ((emacs - (24 4)) - (cl-lib - (0 5))) - "Operate on Git branches like dired" tar - ((:keywords "git" "vc" "convenience") - (:url . "http://elpa.gnu.org/packages/gited.html"))]) - (gle-mode . - [(1 1) - ((cl-lib - (0 5))) - "Major mode to edit Graphics Layout Engine files" single - ((:url . "http://elpa.gnu.org/packages/gle-mode.html") - (:keywords))]) - (gnome-c-style . - [(0 1) - nil "minor mode for editing GNOME-style C source code" tar - ((:keywords "gnome" "c" "coding style") - (:url . "http://elpa.gnu.org/packages/gnome-c-style.html"))]) - (gnorb . - [(1 6 1) - ((cl-lib - (0 5))) - "Glue code between Gnus, Org, and BBDB" tar - ((:keywords "mail" "org" "gnus" "bbdb" "todo" "task") - (:url . "http://elpa.gnu.org/packages/gnorb.html"))]) - (gnu-elpa-keyring-update . - [(2019 3) - nil "Update Emacs's GPG keyring for GNU ELPA" tar - ((:keywords "maint" "tools") - (:url . "http://elpa.gnu.org/packages/gnu-elpa-keyring-update.html"))]) - (gnugo . - [(3 1 0) - ((ascii-art-to-unicode - (1 5)) - (xpm - (1 0 1)) - (cl-lib - (0 5))) - "play GNU Go in a buffer" tar - ((:keywords "games" "processes") - (:url . "http://www.gnuvola.org/software/gnugo/"))]) - (gnus-mock . - [(0 4 2) - nil "Mock Gnus installation for testing" tar - ((:url . "http://elpa.gnu.org/packages/gnus-mock.html"))]) - (gpastel . - [(0 5 0) - ((emacs - (25 1))) - "Integrates GPaste with the kill-ring" single - ((:url . "https://gitlab.petton.fr/DamienCassou/desktop-environment") - (:keywords "tools"))]) - (greader . - [(0 1) - ((emacs - (25))) - "gnamù reader, a reader with espeak tts" tar - ((:keywords "tools" "accessibility") - (:url . "http://elpa.gnu.org/packages/greader.html"))]) - (guess-language . - [(0 0 1) - ((cl-lib - (0 5)) - (emacs - (24)) - (nadvice - (0 1))) - "Robust automatic language detection" single - ((:url . "https://github.com/tmalsburg/guess-language.el") - (:keywords))]) - (heap . - [(0 5) - nil "Heap (a.k.a. priority queue) data structure" single - ((:url . "http://www.dr-qubit.org/emacs.php") - (:keywords "extensions" "data structures" "heap" "priority queue"))]) - (highlight-escape-sequences . - [(0 4) - nil "Highlight escape sequences" single - ((:url . "https://github.com/dgutov/highlight-escape-sequences") - (:keywords "convenience"))]) - (hook-helpers . - [(1 1 1) - ((emacs - (25 1))) - "Anonymous, modifiable hook functions" tar - ((:keywords "development" "hooks") - (:url . "https://savannah.nongnu.org/projects/hook-helpers-el/"))]) - (html5-schema . - [(0 1) - nil "Add HTML5 schemas for use by nXML" tar - ((:keywords "html" "xml") - (:url . "https://github.com/validator/validator"))]) - (hydra . - [(0 14 0) - ((cl-lib - (0 5))) - "Make bindings that stick around." tar - ((:keywords "bindings") - (:url . "https://github.com/abo-abo/hydra"))]) - (hyperbole . - [(7 0 3) - ((emacs - (24 4))) - "GNU Hyperbole: The Everyday Hypertextual Information Manager" tar - ((:keywords "comm" "convenience" "files" "frames" "hypermedia" "languages" "mail" "matching" "mouse" "multimedia" "outlines" "tools" "wp") - (:url . "http://www.gnu.org/software/hyperbole"))]) - (ioccur . - [(2 4) - nil "Incremental occur" single - ((:url . "http://elpa.gnu.org/packages/ioccur.html") - (:keywords))]) - (iterators . - [(0 1 1) - ((emacs - (25))) - "Functions for working with iterators" single - ((:url . "http://elpa.gnu.org/packages/iterators.html") - (:keywords "extensions" "elisp"))]) - (ivy . - [(0 11 0) - ((emacs - (24 1))) - "Incremental Vertical completYon" tar - ((:keywords "matching") - (:url . "https://github.com/abo-abo/swiper"))]) - (ivy-explorer . - [(0 3 2) - ((emacs - (25)) - (ivy - (0 10 0))) - "Dynamic file browsing grid using ivy" single - ((:url . "https://github.com/clemera/ivy-explorer") - (:keywords "convenience" "files" "matching"))]) - (javaimp . - [(0 6 1) - nil "Add and reorder Java import statements in Maven projects" tar - ((:keywords "java" "maven" "programming") - (:url . "http://elpa.gnu.org/packages/javaimp.html"))]) - (jgraph-mode . - [(1 1) - ((cl-lib - (0 5))) - "Major mode for Jgraph files" single - ((:url . "http://elpa.gnu.org/packages/jgraph-mode.html") - (:keywords "tex" "wp"))]) - (js2-mode . - [(20190219) - ((emacs - (24 1)) - (cl-lib - (0 5))) - "Improved JavaScript editing mode" tar - ((:keywords "languages" "javascript") - (:url . "https://github.com/mooz/js2-mode/"))]) - (json-mode . - [(0 1) - ((emacs - (25 1))) - "Major mode for editing JSON files" single - ((:url . "http://elpa.gnu.org/packages/json-mode.html") - (:keywords "data"))]) - (jsonrpc . - [(1 0 7) - ((emacs - (25 2))) - "JSON-RPC library" single - ((:url . "http://elpa.gnu.org/packages/jsonrpc.html") - (:keywords "processes" "languages" "extensions"))]) - (jumpc . - [(3 0) - nil "jump to previous insertion points" single - ((:url . "http://elpa.gnu.org/packages/jumpc.html") - (:keywords))]) - (kmb . - [(0 1) - ((emacs - (24 1))) - "Kill buffers matching a regexp w/o confirmation" single - ((:url . "http://elpa.gnu.org/packages/kmb.html") - (:keywords "lisp" "convenience"))]) - (landmark . - [(1 0) - nil "Neural-network robot that learns landmarks" single - ((:url . "http://elpa.gnu.org/packages/landmark.html") - (:keywords "games" "neural network" "adaptive search" "chemotaxis"))]) - (let-alist . - [(1 0 5) - ((emacs - (24 1))) - "Easily let-bind values of an assoc-list by their names" single - ((:url . "http://elpa.gnu.org/packages/let-alist.html") - (:keywords "extensions" "lisp"))]) - (lex . - [(1 1) - nil "Lexical analyser construction" tar - ((:url . "http://elpa.gnu.org/packages/lex.html"))]) - (lmc . - [(1 4) - ((emacs - (24)) - (cl-lib - (0 5))) - "Little Man Computer in Elisp" single - ((:url . "http://elpa.gnu.org/packages/lmc.html") - (:keywords))]) - (load-dir . - [(0 0 5) - ((cl-lib - (0 5))) - "Load all Emacs Lisp files in a given directory" single - ((:url . "http://elpa.gnu.org/packages/load-dir.html") - (:keywords "lisp" "files" "convenience"))]) - (load-relative . - [(1 3 1) - nil "Relative file load (within a multi-file Emacs package)" single - ((:url . "http://github.com/rocky/emacs-load-relative") - (:keywords "internal"))]) - (loc-changes . - [(1 2) - nil "keep track of positions even after buffer changes" single - ((:url . "http://github.com/rocky/emacs-loc-changes") - (:keywords))]) - (loccur . - [(1 2 3) - ((cl-lib - (0))) - "Perform an occur-like folding in current buffer" single - ((:url . "https://github.com/fourier/loccur") - (:keywords "matching"))]) - (map . - [(2 0) - ((emacs - (25))) - "Map manipulation functions" single - ((:url . "http://elpa.gnu.org/packages/map.html") - (:keywords "convenience" "map" "hash-table" "alist" "array"))]) - (markchars . - [(0 2 1) - nil "Mark chars fitting certain characteristics" single - ((:url . "http://elpa.gnu.org/packages/markchars.html") - (:keywords))]) - (math-symbol-lists . - [(1 2 1) - nil "Lists of Unicode math symbols and latex commands" single - ((:url . "https://github.com/vspinu/math-symbol-lists") - (:keywords "unicode" "symbols" "mathematics"))]) - (memory-usage . - [(0 2) - nil "Analyze the memory usage of Emacs in various ways" single - ((:url . "http://elpa.gnu.org/packages/memory-usage.html") - (:keywords "maint"))]) - (metar . - [(0 3) - ((cl-lib - (0 5))) - "Retrieve and decode METAR weather information" single - ((:url . "http://elpa.gnu.org/packages/metar.html") - (:keywords "comm"))]) - (midi-kbd . - [(0 2) - ((emacs - (25))) - "Create keyboard events from Midi input" single - ((:url . "http://elpa.gnu.org/packages/midi-kbd.html") - (:keywords "convenience" "hardware" "multimedia"))]) - (mines . - [(1 6) - ((emacs - (24 4)) - (cl-lib - (0 5))) - "Minesweeper game" tar - ((:keywords "games") - (:url . "https://github.com/calancha/Minesweeper"))]) - (minibuffer-line . - [(0 1) - nil "Display status info in the minibuffer window" single - ((:url . "http://elpa.gnu.org/packages/minibuffer-line.html") - (:keywords))]) - (minimap . - [(1 2) - nil "Sidebar showing a \"mini-map\" of a buffer" single - ((:url . "http://elpa.gnu.org/packages/minimap.html") - (:keywords))]) - (mmm-mode . - [(0 5 7) - ((cl-lib - (0 2))) - "Allow Multiple Major Modes in a buffer" tar - ((:keywords "convenience" "faces" "languages" "tools") - (:url . "https://github.com/purcell/mmm-mode"))]) - (multishell . - [(1 1 5) - ((cl-lib - (0 5))) - "Easily use multiple shell buffers, local and remote" tar - ((:keywords "processes") - (:url . "https://github.com/kenmanheimer/EmacsMultishell"))]) - (muse . - [(3 20 2) - nil "Authoring and publishing tool for Emacs" tar - ((:keywords "hypermedia") - (:url . "http://mwolson.org/projects/EmacsMuse.html"))]) - (myers . - [(0 1) - ((emacs - (25))) - "Random-access singly-linked lists" single - ((:url . "http://elpa.gnu.org/packages/myers.html") - (:keywords "list" "containers"))]) - (nadvice . - [(0 3) - nil "Forward compatibility for Emacs-24.4's nadvice" single - ((:url . "http://elpa.gnu.org/packages/nadvice.html") - (:keywords))]) - (nameless . - [(1 0 2) - ((emacs - (24 4))) - "Hide package namespace in your emacs-lisp code" single - ((:url . "https://github.com/Malabarba/nameless") - (:keywords "convenience" "lisp"))]) - (names . - [(20151201 0) - ((emacs - (24 1)) - (cl-lib - (0 5)) - (nadvice - (0 3))) - "Namespaces for emacs-lisp. Avoid name clobbering without hiding symbols." tar - ((:keywords "extensions" "lisp") - (:url . "https://github.com/Malabarba/names"))]) - (nhexl-mode . - [(1 3) - ((emacs - (24 4)) - (cl-lib - (0 5))) - "Minor mode to edit files via hex-dump format" single - ((:url . "http://elpa.gnu.org/packages/nhexl-mode.html") - (:keywords "data"))]) - (nlinum . - [(1 9) - nil "Show line numbers in the margin" single - ((:url . "http://elpa.gnu.org/packages/nlinum.html") - (:keywords "convenience"))]) - (notes-mode . - [(1 30) - nil "Indexing system for on-line note-taking" tar - ((:url . "http://elpa.gnu.org/packages/notes-mode.html"))]) - (ntlm . - [(2 1 0) - nil "NTLM (NT LanManager) authentication support" single - ((:url . "http://elpa.gnu.org/packages/ntlm.html") - (:keywords "ntlm" "sasl" "comm"))]) - (num3-mode . - [(1 3) - nil "highlight groups of digits in long numbers" single - ((:url . "http://elpa.gnu.org/packages/num3-mode.html") - (:keywords "faces" "minor-mode"))]) - (oauth2 . - [(0 11) - nil "OAuth 2.0 Authorization Protocol" single - ((:url . "http://elpa.gnu.org/packages/oauth2.html") - (:keywords "comm"))]) - (objed . - [(0 8 1) - ((emacs - (25)) - (cl-lib - (0 5))) - "Navigate and edit text objects." tar - ((:keywords "convenience") - (:url . "https://github.com/clemera/objed"))]) - (olivetti . - [(1 7 1) - ((emacs - (24 5))) - "Minor mode for a nice writing environment" single - ((:url . "http://elpa.gnu.org/packages/olivetti.html") - (:keywords "wp" "text"))]) - (omn-mode . - [(1 2) - nil "Support for OWL Manchester Notation" single - ((:url . "http://elpa.gnu.org/packages/omn-mode.html") - (:keywords))]) - (on-screen . - [(1 3 3) - ((cl-lib - (0))) - "guide your eyes while scrolling" single - ((:url . "https://github.com/michael-heerdegen/on-screen.el") - (:keywords "convenience"))]) - (org . - [(9 2 3) - nil "Outline-based notes management and organizer" tar - ((:keywords "outlines" "hypermedia" "calendar" "wp") - (:url . "http://elpa.gnu.org/packages/org.html"))]) - (org-edna . - [(1 0 2) - ((emacs - (25 1)) - (seq - (2 19)) - (org - (9 0 5))) - "Extensible Dependencies 'N' Actions" tar - ((:keywords "convenience" "text" "org") - (:url . "https://savannah.nongnu.org/projects/org-edna-el/"))]) - (orgalist . - [(1 9) - ((emacs - (24 4))) - "Manage Org-like lists in non-Org buffers" single - ((:url . "http://elpa.gnu.org/packages/orgalist.html") - (:keywords "convenience"))]) - (osc . - [(0 1) - nil "Open Sound Control protocol library" single - ((:url . "http://elpa.gnu.org/packages/osc.html") - (:keywords "comm" "processes" "multimedia"))]) - (other-frame-window . - [(1 0 6) - ((emacs - (24 4))) - "Minor mode to enable global prefix keys for other frame/window buffer placement" single - ((:url . "http://elpa.gnu.org/packages/other-frame-window.html") - (:keywords "frame" "window"))]) - (pabbrev . - [(4 2 1) - nil "Predictive abbreviation expansion" single - ((:url . "http://elpa.gnu.org/packages/pabbrev.html") - (:keywords))]) - (paced . - [(1 1 3) - ((emacs - (25 1)) - (async - (1 9 1))) - "Predictive Abbreviation Completion and Expansion using Dictionaries" tar - ((:keywords "convenience" "completion") - (:url . "https://savannah.nongnu.org/projects/paced-el/"))]) - (parsec . - [(0 1 3) - ((emacs - (24)) - (cl-lib - (0 5))) - "Parser combinator library" tar - ((:keywords "extensions") - (:url . "https://github.com/cute-jumper/parsec.el"))]) - (peg . - [(1 0) - ((emacs - (25))) - "Parsing Expression Grammars in Emacs Lisp" tar - ((:url . "http://elpa.gnu.org/packages/peg.html"))]) - (pinentry . - [(0 1) - nil "GnuPG Pinentry server implementation" single - ((:url . "http://elpa.gnu.org/packages/pinentry.html") - (:keywords "gnupg"))]) - (poker . - [(0 2) - nil "Texas hold 'em poker" single - ((:url . "http://elpa.gnu.org/packages/poker.html") - (:keywords "games"))]) - (posframe . - [(0 5 0) - ((emacs - (26))) - "Pop a posframe (just a frame) at point" single - ((:url . "https://github.com/tumashu/posframe") - (:keywords "tooltip"))]) - (psgml . - [(1 3 4) - nil "SGML-editing mode with parsing support" tar - ((:keywords "languages") - (:url . "http://elpa.gnu.org/packages/psgml.html"))]) - (python . - [(0 26 1) - ((emacs - (24 1)) - (cl-lib - (1 0))) - "Python's flying circus support for Emacs" single - ((:url . "https://github.com/fgallina/python.el") - (:keywords "languages"))]) - (quarter-plane . - [(0 1) - nil "Minor mode for quarter-plane style editing" single - ((:url . "http://elpa.gnu.org/packages/quarter-plane.html") - (:keywords "convenience" "wp"))]) - (queue . - [(0 2) - nil "Queue data structure" single - ((:url . "http://www.dr-qubit.org/emacs.php") - (:keywords "extensions" "data structures" "queue"))]) - (rainbow-mode . - [(1 0 1) - nil "Colorize color names in buffers" single - ((:url . "http://elpa.gnu.org/packages/rainbow-mode.html") - (:keywords "faces"))]) - (rbit . - [(0 1) - nil "Red-black persistent interval trees" single - ((:url . "http://elpa.gnu.org/packages/rbit.html") - (:keywords "data structures" "binary tree" "intervals"))]) - (rcirc-color . - [(0 4 1) - ((emacs - (24 4))) - "color nicks" single - ((:url . "http://elpa.gnu.org/packages/rcirc-color.html") - (:keywords "comm"))]) - (rcirc-menu . - [(1 1) - nil "A menu of all your rcirc connections" single - ((:url . "http://elpa.gnu.org/packages/rcirc-menu.html") - (:keywords "comm"))]) - (realgud . - [(1 5 0) - ((load-relative - (1 3 1)) - (loc-changes - (1 2)) - (test-simple - (1 3 0)) - (emacs - (25))) - "A modular front-end for interacting with external debuggers" tar - ((:keywords "debugger" "gdb" "python" "perl" "go" "bash" "zsh" "bashdb" "zshdb" "remake" "trepan" "perldb" "pdb") - (:url . "http://github.com/realgud/realgud/"))]) - (realgud-ipdb . - [(1 0 0) - ((realgud - (1 5 0)) - (load-relative - (1 3 1)) - (emacs - (25))) - "Realgud front-end to ipdb" tar - ((:url . "http://github.com/rocky/realgud-ipdb"))]) - (realgud-jdb . - [(1 0 0) - ((realgud - (1 4 5)) - (load-relative - (1 2)) - (cl-lib - (0 5)) - (emacs - (25))) - "Realgud front-end to Java's jdb debugger\"" tar - ((:url . "http://github.com/realgud/realgud-jdb"))]) - (realgud-lldb . - [(1 0 2) - ((load-relative - (1 3 1)) - (realgud - (1 5 0)) - (emacs - (25))) - "Realgud front-end to lldb" tar - ((:url . "http://github.com/realgud/realgud-lldb"))]) - (realgud-node-debug . - [(1 0 0) - ((realgud - (1 4 5)) - (load-relative - (1 2)) - (cl-lib - (0 5)) - (emacs - (25))) - "Realgud front-end to older \"node debug\"" tar - ((:url . "http://github.com/realgud/realgud-node-debug"))]) - (realgud-node-inspect . - [(1 0 0) - ((realgud - (1 4 5)) - (load-relative - (1 2)) - (cl-lib - (0 5)) - (emacs - (24))) - "Realgud front-end to newer \"node inspect\"" tar - ((:url . "http://github.com/realgud/realgud-node-inspect"))]) - (realgud-trepan-ni . - [(1 0 1) - ((load-relative - (1 2)) - (realgud - (1 5 0)) - (cl-lib - (0 5)) - (emacs - (25))) - "Realgud front-end to trepan-ni" tar - ((:url . "http://github.com/realgud/realgud-trepan-ni"))]) - (register-list . - [(0 1) - nil "Interactively list/edit registers" single - ((:url . "http://elpa.gnu.org/packages/register-list.html") - (:keywords "register"))]) - (relint . - [(1 8) - ((xr - (1 12))) - "Elisp regexp mistake finder" single - ((:url . "https://github.com/mattiase/relint") - (:keywords "lisp" "maint" "regexps"))]) - (rich-minority . - [(1 0 1) - ((cl-lib - (0 5))) - "Clean-up and Beautify the list of minor-modes." single - ((:url . "https://github.com/Malabarba/rich-minority") - (:keywords "mode-line" "faces"))]) - (rnc-mode . - [(0 2) - nil "Emacs mode to edit Relax-NG Compact files" single - ((:url . "http://elpa.gnu.org/packages/rnc-mode.html") - (:keywords "xml" "relaxng"))]) - (rudel . - [(0 3 1) - ((emacs - (24)) - (cl-lib - (0 5)) - (cl-generic - (0 3)) - (cl-print - (1 0))) - "A collaborative editing framework for Emacs" tar - ((:keywords "rudel" "collaboration") - (:url . "http://rudel.sourceforge.net/"))]) - (scroll-restore . - [(1 0) - nil "restore original position after scrolling" single - ((:url . "http://elpa.gnu.org/packages/scroll-restore.html") - (:keywords "scrolling"))]) - (sed-mode . - [(1 0) - nil "Major mode to edit sed scripts" single - ((:url . "http://elpa.gnu.org/packages/sed-mode.html") - (:keywords))]) - (seq . - [(2 20) - nil "Sequence manipulation functions" tar - ((:keywords "sequences") - (:url . "http://elpa.gnu.org/packages/seq.html"))]) - (shelisp . - [(0 9 1) - nil "execute elisp in shell" single - ((:url . "http://elpa.gnu.org/packages/shelisp.html") - (:keywords "terminals" "lisp" "processes"))]) - (shen-mode . - [(0 1) - nil "A major mode for editing shen source code" tar - ((:keywords "languages" "shen") - (:url . "http://elpa.gnu.org/packages/shen-mode.html"))]) - (sisu-mode . - [(7 1 8) - nil "Major mode for SiSU markup text" single - ((:url . "http://www.sisudoc.org/") - (:keywords "text" "syntax" "processes" "tools"))]) - (smalltalk-mode . - [(3 2 92) - nil "Major mode for the GNU Smalltalk programming language" tar - ((:url . "http://elpa.gnu.org/packages/smalltalk-mode.html"))]) - (smart-yank . - [(0 1 1) - ((emacs - (24))) - "A different approach of yank pointer handling" single - ((:url . "http://elpa.gnu.org/packages/smart-yank.html") - (:keywords "convenience"))]) - (sml-mode . - [(6 9) - ((emacs - (24)) - (cl-lib - (0 5))) - "Major mode for editing (Standard) ML" single - ((:url . "http://elpa.gnu.org/packages/sml-mode.html") - (:keywords "sml"))]) - (soap-client . - [(3 1 5) - ((cl-lib - (0 6 1))) - "Access SOAP web services" tar - ((:keywords "soap" "web-services" "comm" "hypermedia") - (:url . "http://elpa.gnu.org/packages/soap-client.html"))]) - (sokoban . - [(1 4 8) - ((emacs - (23 1)) - (cl-lib - (0 5))) - "Implementation of Sokoban for Emacs." tar - ((:keywords "games") - (:url . "http://elpa.gnu.org/packages/sokoban.html"))]) - (sotlisp . - [(1 6 2) - ((emacs - (24 1))) - "Write lisp at the speed of thought." single - ((:url . "https://github.com/Malabarba/speed-of-thought-lisp") - (:keywords "convenience" "lisp"))]) - (spinner . - [(1 7 3) - nil "Add spinners and progress-bars to the mode-line for ongoing operations" single - ((:url . "https://github.com/Malabarba/spinner.el") - (:keywords "processes" "mode-line"))]) - (sql-indent . - [(1 3) - ((cl-lib - (0 5))) - "Support for indenting code in SQL files." tar - ((:keywords "languages" "sql") - (:url . "http://elpa.gnu.org/packages/sql-indent.html"))]) - (ssh-deploy . - [(3 1) - ((emacs - (25))) - "Deployment via Tramp, global or per directory." tar - ((:keywords "tools" "convenience") - (:url . "https://github.com/cjohansson/emacs-ssh-deploy"))]) - (stream . - [(2 2 4) - ((emacs - (25))) - "Implementation of streams" tar - ((:keywords "stream" "laziness" "sequences") - (:url . "http://elpa.gnu.org/packages/stream.html"))]) - (svg . - [(0 2) - ((emacs - (25))) - "svg image creation functions" single - ((:url . "http://elpa.gnu.org/packages/svg.html") - (:keywords "image"))]) - (svg-clock . - [(1 0) - ((svg - (0 1)) - (emacs - (25 0))) - "Analog clock using Scalable Vector Graphics" single - ((:url . "http://elpa.gnu.org/packages/svg-clock.html") - (:keywords "demo" "svg" "clock"))]) - (system-packages . - [(1 0 11) - ((emacs - (24 3))) - "functions to manage system packages" tar - ((:url . "https://gitlab.com/jabranham/system-packages"))]) - (tNFA . - [(0 1 1) - ((queue - (0 1))) - "Tagged non-deterministic finite-state automata" single - ((:url . "http://www.dr-qubit.org/emacs.php") - (:keywords "extensions" "matching" "data structures tnfa" "nfa" "dfa" "finite state automata" "automata" "regexp"))]) - (temp-buffer-browse . - [(1 5) - ((emacs - (24))) - "temp buffer browse mode" single - ((:url . "http://elpa.gnu.org/packages/temp-buffer-browse.html") - (:keywords "convenience"))]) - (test-simple . - [(1 3 0) - ((cl-lib - (0))) - "Simple Unit Test Framework for Emacs Lisp" single - ((:url . "http://github.com/rocky/emacs-test-simple") - (:keywords "unit-test"))]) - (timerfunctions . - [(1 4 2) - ((cl-lib - (0 5))) - "Enhanced versions of some timer.el functions" single - ((:url . "http://elpa.gnu.org/packages/timerfunctions.html") - (:keywords))]) - (tiny . - [(0 2 1) - nil "Quickly generate linear ranges in Emacs" tar - ((:keywords "convenience") - (:url . "https://github.com/abo-abo/tiny"))]) - (tramp-theme . - [(0 2) - ((emacs - (24 1))) - "Custom theme for remote buffers" single - ((:url . "http://elpa.gnu.org/packages/tramp-theme.html") - (:keywords "convenience" "faces"))]) - (transcribe . - [(1 5 2) - nil "Package for audio transcriptions" single - ((:url . "http://elpa.gnu.org/packages/transcribe.html") - (:keywords))]) - (trie . - [(0 4) - ((tNFA - (0 1 1)) - (heap - (0 3))) - "Trie data structure" single - ((:url . "http://www.dr-qubit.org/emacs.php") - (:keywords "extensions" "matching" "data structures trie" "ternary search tree" "tree" "completion" "regexp"))]) - (undo-tree . - [(0 6 5) - nil "Treat undo history as a tree" single - ((:url . "http://www.dr-qubit.org/emacs.php") - (:keywords "convenience" "files" "undo" "redo" "history" "tree"))]) - (uni-confusables . - [(0 1) - nil "Unicode confusables table" tar - ((:url . "http://elpa.gnu.org/packages/uni-confusables.html"))]) - (url-http-ntlm . - [(2 0 4) - ((cl-lib - (0 5)) - (ntlm - (2 1 0))) - "NTLM authentication for the url library" single - ((:url . "http://elpa.gnu.org/packages/url-http-ntlm.html") - (:keywords "comm" "data" "processes" "hypermedia"))]) - (validate . - [(1 0 4) - ((emacs - (24 1)) - (cl-lib - (0 5)) - (seq - (2 16))) - "Schema validation for Emacs-lisp" single - ((:url . "http://elpa.gnu.org/packages/validate.html") - (:keywords "lisp"))]) - (vcl-mode . - [(1 1) - nil "Major mode for Varnish Configuration Language" single - ((:url . "http://elpa.gnu.org/packages/vcl-mode.html") - (:keywords "varnish" "vcl"))]) - (vdiff . - [(0 2 3) - ((emacs - (24 4)) - (hydra - (0 13 0))) - "A diff tool similar to vimdiff" single - ((:url . "https://github.com/justbur/emacs-vdiff") - (:keywords "diff"))]) - (vigenere . - [(1 0) - ((emacs - (25 1))) - "Run a vigenere cipher on a block of text ;" single - ((:url . "https://elpa.gnu.org/packages/vigenere.html") - (:keywords "data" "vigenere" "cipher"))]) - (visual-filename-abbrev . - [(1 0) - ((emacs - (26 1))) - "Visually abbreviate filenames" single - ((:url . "http://elpa.gnu.org/packages/visual-filename-abbrev.html") - (:keywords "tools"))]) - (visual-fill . - [(0 1) - nil "Auto-refill paragraphs without modifying the buffer" single - ((:url . "http://elpa.gnu.org/packages/visual-fill.html") - (:keywords))]) - (vlf . - [(1 7 1) - nil "View Large Files" tar - ((:keywords "large files" "utilities") - (:url . "https://github.com/m00natic/vlfi"))]) - (w3 . - [(4 0 49) - nil "Fully customizable, largely undocumented web browser for Emacs" tar - ((:keywords "faces" "help" "comm" "news" "mail" "processes" "mouse" "hypermedia") - (:url . "http://elpa.gnu.org/packages/w3.html"))]) - (wconf . - [(0 2 1) - ((emacs - (24 4))) - "Minimal window layout manager" single - ((:url . "https://github.com/ilohmar/wconf") - (:keywords "windows" "frames" "layout"))]) - (web-server . - [(0 1 1) - ((emacs - (24 3))) - "Emacs Web Server" tar - ((:keywords "http" "server" "network") - (:url . "https://github.com/eschulte/emacs-web-server"))]) - (webfeeder . - [(1 0 0) - ((emacs - (25 1))) - "Build RSS and Atom webfeeds from HTML files" tar - ((:keywords "news" "hypermedia" "blog" "feed" "rss" "atom") - (:url . "https://gitlab.com/Ambrevar/emacs-webfeeder"))]) - (websocket . - [(1 9) - ((cl-lib - (0 5))) - "Emacs WebSocket client and server" tar - ((:keywords "communication" "websocket" "server") - (:url . "http://elpa.gnu.org/packages/websocket.html"))]) - (which-key . - [(3 3 0) - ((emacs - (24 4))) - "Display available keybindings in popup" tar - ((:url . "https://github.com/justbur/emacs-which-key"))]) - (windresize . - [(0 1) - nil "Resize windows interactively" single - ((:url . "http://elpa.gnu.org/packages/windresize.html") - (:keywords "window"))]) - (wisi . - [(2 1 0) - ((cl-lib - (1 0)) - (emacs - (25 0)) - (seq - (2 20))) - "Utilities for implementing an indentation/navigation engine using a generalized LALR parser" tar - ((:keywords "parser" "indentation" "navigation") - (:url . "http://stephe-leake.org/ada/wisitoken.html"))]) - (wpuzzle . - [(1 1) - nil "find as many word in a given time" single - ((:url . "http://elpa.gnu.org/packages/wpuzzle.html") - (:keywords))]) - (xclip . - [(1 8) - nil "Copy&paste GUI clipboard from text terminal" single - ((:url . "http://elpa.gnu.org/packages/xclip.html") - (:keywords "convenience" "tools"))]) - (xelb . - [(0 17) - ((emacs - (24 4)) - (cl-generic - (0 2))) - "X protocol Emacs Lisp Binding" tar - ((:keywords "unix") - (:url . "https://github.com/ch11ng/xelb"))]) - (xpm . - [(1 0 4) - nil "edit XPM images" tar - ((:keywords "multimedia" "xpm") - (:url . "http://www.gnuvola.org/software/xpm/"))]) - (xr . - [(1 12) - nil "Convert string regexp to rx notation" tar - ((:keywords "lisp" "maint" "regexps") - (:url . "https://github.com/mattiase/xr"))]) - (yasnippet . - [(0 13 0) - ((cl-lib - (0 5))) - "Yet another snippet extension for Emacs." tar - ((:keywords "convenience" "emulation") - (:url . "http://github.com/joaotavora/yasnippet"))]) - (yasnippet-classic-snippets . - [(1 0 2) - ((yasnippet - (0 9 1))) - "\"Classic\" yasnippet snippets" tar - ((:keywords "snippets") - (:url . "http://elpa.gnu.org/packages/yasnippet-classic-snippets.html"))]) - (zones . - [(2019 4 30) - nil "Zones of text - like multiple regions" single - ((:url . "https://elpa.gnu.org/packages/zones.html") - (:keywords "narrow" "restriction" "widen" "region" "zone"))]) - (ztree . - [(1 0 5) - ((cl-lib - (0))) - "Text mode directory tree" tar - ((:keywords "files" "tools") - (:url . "https://github.com/fourier/ztree"))])) diff --git a/project1/.emacs.d/packages/archives/gnu/archive-contents.signed b/project1/.emacs.d/packages/archives/gnu/archive-contents.signed deleted file mode 100644 index 292959e..0000000 --- a/project1/.emacs.d/packages/archives/gnu/archive-contents.signed +++ /dev/null @@ -1 +0,0 @@ -Good signature from 474F05837FBDEF9B GNU ELPA Signing Agent <elpasign@elpa.gnu.org> (trust undefined) created at 2019-06-18T05:10:03-0400 using DSA \ No newline at end of file diff --git a/project1/.emacs.d/packages/archives/melpa/archive-contents b/project1/.emacs.d/packages/archives/melpa/archive-contents deleted file mode 100644 index 2ba2e51..0000000 --- a/project1/.emacs.d/packages/archives/melpa/archive-contents +++ /dev/null @@ -1,4241 +0,0 @@ -(1 -(zzz-to-char . [(20190216 1057) ((emacs (24 4)) (cl-lib (0 5)) (avy (0 3 0))) "Fancy version of `zap-to-char' command" single ((:commit . "c1db9326dc21a967e4bfe30e4a9b3ca7fa115608") (:keywords "convenience") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/zzz-to-char"))]) -(zygospore . [(20140703 852) nil "reversible C-x 1 (delete-other-windows)" single ((:commit . "1af5ee663f5a7aa08d96a77cacff834dcdf55ea8") (:authors ("Louis Kottmann" . "louis.kottmann@gmail.com")) (:maintainer "Louis Kottmann" . "louis.kottmann@gmail.com") (:url . "https://github.com/louiskottmann/zygospore.el"))]) -(zweilight-theme . [(20170113 605) nil "A dark color theme for Emacs." single ((:commit . "7f45ab9e23164d65538edb2beb9692ecdc24c31e") (:authors ("Philip Arvidsson" . "contact@philiparvidsson.com")) (:maintainer "Philip Arvidsson" . "contact@philiparvidsson.com") (:url . "http://github.com/philiparvidsson/zweilight-emacs"))]) -(ztree . [(20180512 1850) ((cl-lib (0))) "Text mode directory tree" tar ((:commit . "c54425a094353ec40a8179f9eab3596f76c6cf94") (:keywords "files" "tools") (:authors ("Alexey Veretennikov" . "alexey.veretennikov@gmail.com")) (:maintainer "Alexey Veretennikov" . "alexey.veretennikov@gmail.com") (:url . "https://github.com/fourier/ztree"))]) -(zprint-mode . [(20181111 1945) ((emacs (24 3))) "reformat Clojure(Script) code using zprint" single ((:commit . "e1a7b7fe48e36e5cdf1269ab394d3cf779fdab58") (:keywords "tools") (:authors ("Paulus Esterhazy" . "pesterhazy@gmail.com")) (:maintainer "Paulus Esterhazy" . "pesterhazy@gmail.com") (:url . "https://github.com/pesterhazy/zprint-mode.el"))]) -(zpresent . [(20180605 438) ((emacs (25 1)) (org-parser (0 4)) (dash (2 12 0)) (request (0 3 0))) "Simple presentation mode based on org files." single ((:commit . "55fc14b66e2ea506247a4e7dd622a9dfe5545c4b") (:keywords "comm") (:url . "https://bitbucket.org/zck/zpresent.el"))]) -(zpl-mode . [(20180906 1059) ((emacs (24 3))) "ZIMPL major mode" single ((:commit . "35e7e23c6baf31b5e65dd7405c8ab9b13c70637e") (:url . "https://github.com/ax487/zpl-mode.git"))]) -(zoutline . [(20190520 1819) nil "Simple outline library." single ((:commit . "63756846f8540b6faf89d885438186e4fe1c7d8a") (:keywords "outline") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/zoutline"))]) -(zotxt . [(20180518 147) ((request-deferred (0 2 0))) "Tools to integrate emacs with Zotero via the zotxt plugin." tar ((:commit . "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"))]) -(zotelo . [(20160602 949) ((cl-lib (0 5))) "Manage Zotero collections from emacs" single ((:commit . "d9dc089b9adfcc70a63f2a84269a12eb7cb4c748") (:keywords "zotero" "emacs" "reftex" "bibtex" "mozrepl" "bibliography manager") (:authors ("Spinu Vitalie")) (:maintainer "Spinu Vitalie") (:url . "https://github.com/vitoshka/zotelo"))]) -(zossima . [(20121124 35) ((inf-ruby (2 2 3))) "Ruby from Emacs" tar ((:commit . "991676635c374d2a12714dcf48c1ce2d6f97a375") (:keywords "ruby" "convenience") (:authors ("Phil Hagelberg")) (:maintainer "Phil Hagelberg") (:url . "https://github.com/technomancy/zossima"))]) -(zop-to-char . [(20160212 1554) ((cl-lib (0 5))) "A replacement of zap-to-char." single ((:commit . "00152aa666354b27e56e20565f186b363afa0dce") (:authors ("Thierry Volpiatto" . "thierry.volpiatto@gmail.com")) (:maintainer "Thierry Volpiatto" . "thierry.volpiatto@gmail.com") (:url . "https://github.com/thierryvolpiatto/zop-to-char"))]) -(zoom-window . [(20170302 827) ((emacs (24 3))) "Zoom window like tmux" single ((:commit . "cd6ecc103fc30b171bda7daf1f44a550854d0dbf") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-zoom-window"))]) -(zoom . [(20190523 1300) ((emacs (24 4))) "Fixed and automatic balanced window layout" single ((:commit . "578295532fb1c4ad2a2e95894e65cce02f812b54") (:keywords "frames") (:authors ("Andrea Cardaci" . "cyrus.and@gmail.com")) (:maintainer "Andrea Cardaci" . "cyrus.and@gmail.com") (:url . "https://github.com/cyrus-and/zoom"))]) -(zone-sl . [(20160201 1210) ((emacs (24 3))) "Zone out with steam locomotives." single ((:commit . "7ec22e3661c6348382f9fc39a9d0063dbd2352ff") (:keywords "games") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "https://github.com/kawabata/zone-sl"))]) -(zone-select . [(20160118 1419) ((emacs (24 3)) (dash (2 8))) "Select zone programs." single ((:commit . "bf30da12f1625fe6563448fccf3c506acad10af7") (:keywords "games") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "https://github.com/kawabata/zone-select"))]) -(zone-rainbow . [(20160120 1334) ((emacs (24 3))) "Zone out with rainbow." single ((:commit . "2ba4f1a87c69c4712124ebf12c1f3ea171e1af36") (:keywords "games") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "https://github.com/kawabata/zone-rainbow"))]) -(zone-nyan . [(20170818 1644) ((esxml (0 3 1))) "Zone out with nyan cat" single ((:commit . "4b1f8d95f130946718d52806489ffe2762aebfdc") (:keywords "zone") (:authors ("Vasilij Schneidermann" . "v.schneidermann@gmail.com")) (:maintainer "Vasilij Schneidermann" . "v.schneidermann@gmail.com") (:url . "https://github.com/wasamasa/zone-nyan"))]) -(zombie-trellys-mode . [(20150304 1448) ((emacs (24)) (cl-lib (0 5)) (haskell-mode (1 5))) "A minor mode for interaction with Zombie Trellys" single ((:commit . "7f0c45fdda3a44c3b6d1762d116abb1421b8fba2") (:keywords "languages") (:authors ("David Raymond Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Raymond Christiansen" . "david@davidchristiansen.dk"))]) -(zombie . [(20141222 1616) nil "major mode for editing ZOMBIE programs" single ((:commit . "ff8cd1b4cdbb4b0b9b8fd1ec8f6fb93eba249345") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(znc . [(20160627 2032) ((cl-lib (0 2))) "ZNC + ERC" single ((:commit . "ce468d185e4a949c45fdd7586313144bc69d4fe5") (:authors ("Yaroslav Shirokov")) (:maintainer "Yaroslav Shirokov") (:url . "https://github.com/sshirokov/ZNC.el"))]) -(zmq . [(20190613 138) ((cl-lib (0 5)) (emacs (26))) "ZMQ bindings in elisp" tar ((:commit . "6120251d86bc85138305c1bf02b1000dc435fdb5") (:keywords "comm") (:authors ("Nathaniel Nicandro" . "nathanielnicandro@gmail.com")) (:maintainer "Nathaniel Nicandro" . "nathanielnicandro@gmail.com") (:url . "https://github.com/dzop/emacs-zmq"))]) -(zlc . [(20151011 157) nil "Provides zsh like completion system to Emacs" single ((:commit . "4dd2ba267ecdeac845a7cbb3147294ee7daa25f4") (:keywords "matching" "convenience") (:authors ("mooz" . "stillpedant@gmail.com")) (:maintainer "mooz" . "stillpedant@gmail.com"))]) -(zig-mode . [(20190109 217) ((emacs (24))) "A major mode for the Zig programming language" single ((:commit . "c2deea85dd65c3e73c2771c56a998cbdeb9ff717") (:keywords "zig" "languages") (:authors ("Andrea Orru <andreaorru1991@gmail.com>, Andrew Kelley" . "superjoe30@gmail.com")) (:maintainer "Andrea Orru <andreaorru1991@gmail.com>, Andrew Kelley" . "superjoe30@gmail.com") (:url . "https://github.com/zig-lang/zig-mode"))]) -(zerodark-theme . [(20190528 923) ((all-the-icons (2 0 0))) "A dark, medium contrast theme for Emacs" single ((:commit . "df22536a244293591575e56970bf83814faa7c14") (:keywords "themes") (:authors ("Nicolas Petton" . "nicolas@petton.fr")) (:maintainer "Nicolas Petton" . "nicolas@petton.fr") (:url . "https://github.com/NicolasPetton/zerodark-theme"))]) -(zephir-mode . [(20170918 425) ((cl-lib (0 5)) (pkg-info (0 4)) (emacs (24 3))) "Major mode for editing Zephir code" single ((:commit . "1db4071a014a796120b5c3d0a7f91eb77359eb10") (:keywords "languages") (:authors ("Serghei Iakovlev" . "serghei@phalconphp.com")) (:maintainer "Serghei Iakovlev") (:url . "https://github.com/sergeyklay/zephir-mode"))]) -(zeno-theme . [(20181027 118) ((emacs (24))) "A dark theme using different shades of blue" single ((:commit . "0914c4a5b1b9499e7f1ca5699b1c3ea2f4be3f1a") (:keywords "faces" "theme" "dark" "blue") (:authors ("Bharat Joshi" . "jbharat@outlook.com")) (:maintainer "Bharat Joshi" . "jbharat@outlook.com") (:url . "https://github.com/jbharat/zeno-theme"))]) -(zenity-color-picker . [(20160302 1154) ((emacs (24 4))) "Insert and adjust colors using Zenity" single ((:commit . "4f4f46676a461ebc881487fb70c8c181e323db5e") (:keywords "colors") (:authors ("Samuel Laurén" . "samuel.lauren@iki.fi")) (:maintainer "Samuel Laurén" . "samuel.lauren@iki.fi") (:url . "https://bitbucket.org/Soft/zenity-color-picker.el"))]) -(zencoding-mode . [(20140213 822) nil "Unfold CSS-selector-like expressions to markup" single ((:commit . "58e42af182c98cb9941d27cd042d227fbf4e146c") (:keywords "convenience") (:authors ("Chris Done" . "chrisdone@gmail.com")) (:maintainer "Chris Done" . "chrisdone@gmail.com") (:url . "https://github.com/rooney/zencoding"))]) -(zenburn-theme . [(20190510 934) nil "A low contrast color theme for Emacs." single ((:commit . "b6090a1a343d5173e38e2966f7cf44d96cba037c") (:authors ("Bozhidar Batsov" . "bozhidar@batsov.com")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.com") (:url . "http://github.com/bbatsov/zenburn-emacs"))]) -(zen-and-art-theme . [(20120622 1437) nil "zen and art color theme for GNU Emacs 24" single ((:commit . "a7226cbce0bca2501d69a620cb2aeabfc396c232") (:authors ("Nick Parker")) (:maintainer "Nick Parker"))]) -(zel . [(20171014 832) ((emacs (25)) (frecency (0 1))) "Access frecent files easily" single ((:commit . "9dae2d212224d1deae1f62561fa8e4d689fd09f2") (:keywords "convenience" "files" "matching") (:authors ("Sebastian Christ" . "rudolfo.christ@gmail.com")) (:maintainer "Sebastian Christ" . "rudolfo.christ@gmail.com") (:url . "https://github.com/rudolfochrist/zel"))]) -(zeal-at-point . [(20180131 2354) nil "Search the word at point with Zeal" single ((:commit . "0fc3263f44e95acd3e9d91057677621ce4d297ee") (:authors ("Jinzhu" . "wosmvp@gmail.com")) (:maintainer "Jinzhu" . "wosmvp@gmail.com") (:url . "https://github.com/jinzhu/zeal-at-point"))]) -(z3-mode . [(20151120 2255) ((flycheck (0 23)) (emacs (24))) "A z3/SMTLIBv2 interactive development environment" single ((:commit . "163dc01d59e9880b4dc188d4e1ad84d6c0c852e1") (:keywords "z3" "yices" "mathsat" "smt" "beaver") (:authors ("Zephyr Pellerin" . "zephyr.pellerin@gmail.com")) (:maintainer "Zephyr Pellerin" . "zephyr.pellerin@gmail.com") (:url . "https://github.com/zv/z3-mode"))]) -(youdao-dictionary . [(20180714 414) ((popup (0 5 0)) (pos-tip (0 4 6)) (chinese-word-at-point (0 2)) (names (0 5)) (emacs (24))) "Youdao Dictionary interface for Emacs" single ((:commit . "9496ea3ba8aa999db3dbde88d6aa37f3579d8dea") (:keywords "convenience" "chinese" "dictionary") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:url . "https://github.com/xuchunyang/youdao-dictionary.el"))]) -(yoshi-theme . [(20190505 728) nil "Theme named after my cat" single ((:commit . "70365870ff823b954aa85972217d8f116c45d939") (:keywords "faces") (:authors ("Tom Willemse" . "tom@ryuslash.org")) (:maintainer "Tom Willemse" . "tom@ryuslash.org") (:url . "http://projects.ryuslash.org/yoshi-theme/"))]) -(yoficator . [(20190509 1620) nil "Interactively yoficate Russian texts" tar ((:commit . "fa914f9648515bca54b5e558ca57d2b65fa57491") (:authors ("Eugene Minkovskii" . "emin@mccme.ru") ("Alexander Krotov" . "ilabdsf@gmail.com")) (:maintainer "Eugene Minkovskii" . "emin@mccme.ru") (:url . "https://gitlab.com/link2xt/yoficator"))]) -(yesql-ghosts . [(20150220 1237) ((s (1 9 0)) (dash (2 10 0)) (cider (0 8 0))) "Display ghostly yesql defqueries inline" single ((:commit . "8f1faf0137b85a5072d13e1240a463d9a35ce2bb") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(yequake . [(20190114 1955) ((emacs (25 2)) (dash (2 14 1))) "Drop-down frames, like Yakuake" single ((:commit . "4c093fa6ca3b8953ee509c7d8f434984d55ec802") (:keywords "convenience" "window-system" "frames") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/yequake"))]) -(ydk-mode . [(20170113 921) nil "Language support for Yu-Gi-Oh! deck files" single ((:commit . "f3f125b29408e0b0a34fec27dcb7c02c5dbfd04e") (:keywords "faces" "games" "languages" "ydk" "yugioh" "yu-gi-oh") (:authors ("Jackson Ray Hamilton" . "jackson@jacksonrayhamilton.com")) (:maintainer "Jackson Ray Hamilton" . "jackson@jacksonrayhamilton.com") (:url . "https://github.com/jacksonrayhamilton/ydk-mode"))]) -(ycmd . [(20190416 807) ((emacs (24 4)) (dash (2 13 0)) (s (1 11 0)) (deferred (0 5 1)) (cl-lib (0 6 1)) (let-alist (1 0 5)) (request (0 3 0)) (request-deferred (0 3 0)) (pkg-info (0 6))) "emacs bindings to the ycmd completion server" tar ((:commit . "6f4f7384b82203cccf208e3ec09252eb079439f9") (:url . "https://github.com/abingham/emacs-ycmd"))]) -(ycm . [(20150822 1836) nil "Emacs client for the YouCompleteMe auto-completion server." single ((:commit . "4da8a14abcd0f4fa3235042ade2e12b5068c0601") (:keywords "c" "abbrev") (:authors ("Ajay Gopinathan" . "ajay@gopinathan.net")) (:maintainer "Ajay Gopinathan" . "ajay@gopinathan.net"))]) -(yaxception . [(20150105 1452) nil "Provide framework about exception like Java for Elisp" single ((:commit . "4e94cf3e0b9b5631b0e90eb4b7de597ee7185875") (:keywords "exception" "error" "signal") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/yaxception"))]) -(yatex . [(20190525 548) nil "Yet Another tex-mode for emacs //野鳥//" tar ((:commit . "714f3527b4a16daf7a811dcc7b344ac989064f52"))]) -(yatemplate . [(20180617 952) ((yasnippet (0 8 1)) (emacs (24 3))) "File templates with yasnippet" tar ((:commit . "4f4fca9f04f7088c98aa195cf33635a35a6055cb") (:keywords "files" "convenience") (:authors ("Wieland Hoffmann" . "themineo+yatemplate@gmail.com")) (:maintainer "Wieland Hoffmann" . "themineo+yatemplate@gmail.com") (:url . "https://github.com/mineo/yatemplate"))]) -(yasnippet-snippets . [(20190513 1049) ((yasnippet (0 8 0))) "Collection of yasnippet snippets" tar ((:commit . "15e4b08f7484c049d6b043263c5e09bc73846e32") (:keywords "snippets") (:authors ("Andrea Crotti" . "andrea.crotti.0@gmail.com")) (:maintainer "Andrea Crotti" . "andrea.crotti.0@gmail.com"))]) -(yasnippet-lean . [(20190609 454) ((yasnippet (0 8 0))) "Collection of snippets for the Lean prover" tar ((:commit . "2d57b8ad5c69a1886701d42ca5a8de6bacb170cc") (:keywords "convenience" "snippets" "leanprover") (:maintainer "Simon Hudon" . "simon.hudon@gmail.com") (:url . "https://github.com/leanprover-community/yasnippet-lean"))]) -(yasnippet . [(20190502 2214) ((cl-lib (0 5))) "Yet another snippet extension for Emacs." single ((:commit . "e45e3de357fbd4289fcfa3dd26aaa7be357fb0b8") (:keywords "convenience" "emulation") (:maintainer "Noam Postavsky" . "npostavs@gmail.com") (:url . "http://github.com/joaotavora/yasnippet"))]) -(yascroll . [(20170315 1906) ((cl-lib (0 3))) "Yet Another Scroll Bar Mode" single ((:commit . "fe4494e5f4faf2832e665c7de0fed99cdbb39478") (:keywords "convenience") (:authors ("Tomohiro Matsuyama" . "m2ym.pub@gmail.com")) (:maintainer "Tomohiro Matsuyama" . "m2ym.pub@gmail.com"))]) -(yarn-mode . [(20170709 1937) ((emacs (24 3))) "Major mode for yarn.lock files." single ((:commit . "998b408d6be05fd1c3a9fd8db6ffaab3bf86d06b") (:keywords "convenience") (:authors ("Nicolás Salas V." . "nikosalas@gmail.com")) (:maintainer "Nicolás Salas V." . "nikosalas@gmail.com") (:url . "https://github.com/anachronic/yarn-mode"))]) -(yari . [(20151128 739) nil "Yet Another RI interface for Emacs" single ((:commit . "a2cb9656ee5dfe1fc2ee3854f3079a1c8e85dbe9") (:keywords "tools") (:authors ("Aleksei Gusev" . "aleksei.gusev@gmail.com")) (:maintainer "Aleksei Gusev" . "aleksei.gusev@gmail.com"))]) -(yard-mode . [(20170817 1237) nil "Minor mode for Ruby YARD comments" single ((:commit . "ba74a47463b0320ae152bd42a7dd7aeecd7b5748") (:authors ("Kyle Hargraves")) (:maintainer "Kyle Hargraves") (:url . "https://github.com/pd/yard-mode.el"))]) -(yara-mode . [(20190423 710) ((emacs (24))) "Major mode for editing yara rule file" single ((:commit . "cd8093b1bc4fc260462f5284b157008fefa84880") (:keywords "yara") (:authors (nil . "binjo.cn@gmail.com")) (:maintainer nil . "binjo.cn@gmail.com") (:url . "not distributed yet"))]) -(yapfify . [(20180830 733) nil "(automatically) format python buffers using YAPF." single ((:commit . "b858225e1debe6734ee718e5c3c209152652a8b3") (:authors ("Joris Engbers" . "info@jorisengbers.nl")) (:maintainer "Joris Engbers" . "info@jorisengbers.nl") (:url . "https://github.com/JorisE/yapfify"))]) -(yankpad . [(20190617 1004) ((emacs (24))) "Paste snippets from an org-mode file" single ((:commit . "f443ccb94579dcf28ac50ba4053fa7649e079665") (:keywords "abbrev" "convenience") (:authors ("Erik Sjöstrand")) (:maintainer "Erik Sjöstrand") (:url . "http://github.com/Kungsgeten/yankpad"))]) -(yang-mode . [(20190507 724) nil "major mode for editing YANG files" single ((:commit . "4b4ab4d4a79d37d6c31c6ea7cccbc425e0b1eded") (:authors ("Martin Bjorklund" . "mbj4668@gmail.com")) (:maintainer "Martin Bjorklund" . "mbj4668@gmail.com"))]) -(yandex-weather . [(20160311 2037) nil "Fetch Yandex Weather forecasts." tar ((:commit . "6f823fd9e04ff9efb2aa65f333079e9f7e6e5b28"))]) -(yaml-tomato . [(20151123 753) ((s (1 9))) "copy or show the yaml path currently under cursor." single ((:commit . "f9df1c9bdfcec629b03031b2d2032f9dc533cb14") (:keywords "yaml") (:authors ("qrczeno")) (:maintainer "qrczeno"))]) -(yaml-mode . [(20180409 607) ((emacs (24 1))) "Major mode for editing YAML files" single ((:commit . "40067a10ac1360f0b9533f0bbbb2eea128e2574d") (:keywords "data" "yaml") (:authors ("Yoshiki Kurihara" . "clouder@gmail.com") ("Marshall T. Vandegrift" . "llasram@gmail.com")) (:maintainer "Vasilij Schneidermann" . "v.schneidermann@gmail.com"))]) -(yaml-imenu . [(20181001 627) ((emacs (24 4)) (yaml-mode (0))) "Enhancement of the imenu support in yaml-mode." tar ((:commit . "78a383098807014d9e7f2941196d8271677158cd") (:keywords "outlining" "convenience" "imenu") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/yaml-imenu.el"))]) -(yalinum . [(20130217 1043) nil "yet another display line numbers." single ((:commit . "d3e0cbe3f4f5ca311e3298e684901d6fea3ad973") (:keywords "convenience" "tools") (:authors ("tm8st" . "tm8st@hotmail.co.jp")) (:maintainer "tm8st" . "tm8st@hotmail.co.jp"))]) -(yahtzee . [(20171022 1412) ((emacs (24 3))) "The yahtzee game" single ((:commit . "785c36f6a19c011718f45d359609ada6da8bb5f0") (:keywords "games") (:authors ("Dimitar Dimitrov" . "mail.mitko@gmail.com")) (:maintainer "Dimitar Dimitrov" . "mail.mitko@gmail.com") (:url . "https://github.com/drdv/yahtzee"))]) -(yahoo-weather . [(20181026 320) ((emacs (24))) "Displays weather information in mode-line" single ((:commit . "1d2db14daa1706e03dfe4379397eb89234a56400") (:keywords "weather" "mode-line") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/yahoo-weather-mode"))]) -(yagist . [(20160418 508) ((cl-lib (0 3))) "Yet Another Emacs integration for gist.github.com" single ((:commit . "dcdbd84f348414815d02f3da8a6ee0ac271632d4") (:keywords "tools") (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/yagist.el"))]) -(yafolding . [(20170305 317) nil "Yet another folding extension for Emacs" single ((:commit . "57c015ddd7c3454571c80825bc5391d7a10fa1d7") (:keywords "folding") (:authors ("Zeno Zeng" . "zenoofzeng@gmail.com")) (:maintainer "Zeno Zeng" . "zenoofzeng@gmail.com"))]) -(yabin . [(20140206 351) nil "Yet Another Bignum package (A thin wrapper of calc.el)." single ((:commit . "db8c404507560ef9147fcce2b94cd706fbfa03b5") (:keywords "data") (:authors ("Daisuke Kobayashi" . "d5884jp@gmail.com")) (:maintainer "Daisuke Kobayashi" . "d5884jp@gmail.com"))]) -(xwidgete . [(20171118 2116) ((emacs (25))) "enhances usability of current xwidget browser" single ((:commit . "e4e8410fe32176df85b46234717824519443fb04") (:keywords "xwidgete" "tools") (:authors ("Tu, Do Hoang" . "tuhdo1710@gmail.com")) (:maintainer "Tu, Do Hoang") (:url . "https://github.com/tuhdo/xwidgete"))]) -(xtest . [(20141214 1706) ((cl-lib (0 5))) "Simple Testing with Emacs & ERT" single ((:commit . "2c2bdf32667506dd9ddf6eb311832add616bdf1c") (:keywords "testing" "ert") (:authors ("Mustafa Shameem")) (:maintainer "Mustafa Shameem") (:url . "https://github.com/promethial/xtest"))]) -(xterm-keybinder . [(20160523 56) ((emacs (24 3)) (cl-lib (0 5)) (let-alist (1 0 1))) "Let you extra keybinds in xterm/urxvt" tar ((:commit . "b29c4f700b0fa0c9f627f6725b36462b8fab06d6") (:keywords "convenient") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>"))]) -(xterm-color . [(20190602 1201) ((cl-lib (0 5))) "ANSI & XTERM 256 color support" single ((:commit . "ff64312ad412c8b3e87a059139f288205d221e15") (:keywords "faces") (:authors ("xristos" . "xristos@sdf.lonestar.org")) (:maintainer "xristos" . "xristos@sdf.lonestar.org") (:url . "https://github.com/atomontage/xterm-color"))]) -(xresources-theme . [(20190108 1851) nil "Use your .Xresources as your emacs theme" single ((:commit . "5239acb51aa2dfa89a207e57012108d8fcf60562") (:keywords "xresources" "theme") (:authors ("Marten Lienen" . "marten.lienen@gmail.com")) (:maintainer "Marten Lienen" . "marten.lienen@gmail.com"))]) -(xref-js2 . [(20170530 826) ((emacs (25)) (js2-mode (20150909))) "Jump to references/definitions using ag & js2-mode's AST" single ((:commit . "d5f93605405989529c2f66b542def6c32429b927") (:keywords "javascript" "convenience" "tools") (:authors ("Nicolas Petton" . "nicolas@petton.fr")) (:maintainer "Nicolas Petton" . "nicolas@petton.fr") (:url . "https://github.com/NicolasPetton/xref-js2"))]) -(xquery-tool . [(20190523 1119) nil "A simple interface to saxonb's xquery." single ((:commit . "7f0859cc722607240689e57e14de8e0719052016") (:keywords "xml" "xquery" "emacs") (:authors ("Patrick McAllister" . "pma@rdorte.org")) (:maintainer "Patrick McAllister" . "pma@rdorte.org") (:url . "https://github.com/paddymcall/xquery-tool.el"))]) -(xquery-mode . [(20170214 1119) ((cl-lib (0 5))) "A simple mode for editing xquery programs" single ((:commit . "1b655ccf83d02a7bd473d2cf02359ed60bdf7369") (:url . "https://github.com/xquery-mode/xquery-mode"))]) -(xo . [(20160403 646) nil "XO linter integration with compilation mode" single ((:commit . "72fcd867cfa332fdb82f732925cf8977e690af78") (:keywords "processes") (:authors ("J.A" . "jer.github@gmail.com")) (:maintainer "J.A" . "jer.github@gmail.com"))]) -(xmlunicode . [(20160319 1612) nil "Unicode support for XML" tar ((:commit . "f5d185da46414c0509ebd0aa0fab416becf94612") (:keywords "utf-8" "unicode" "xml" "characters") (:authors ("Norman Walsh" . "ndw@nwalsh.com")) (:maintainer "Norman Walsh" . "ndw@nwalsh.com"))]) -(xmlgen . [(20170411 1317) nil "A DSL for generating XML." single ((:commit . "dba66681f0c5e621a9e70e8afb34903c9ffe93c4") (:authors ("Philip Jackson" . "phil@shellarchive.co.uk")) (:maintainer "Philip Jackson" . "phil@shellarchive.co.uk"))]) -(xml-rpc . [(20181002 1353) nil "An elisp implementation of clientside XML-RPC" single ((:commit . "8f624f8b964e9145acb504e4457c9510e87dd93c") (:keywords "xml" "rpc" "network") (:authors ("Mark A. Hershberger" . "mah@everybody.org")) (:maintainer "Mark A. Hershberger" . "mah@everybody.org") (:url . "http://github.com/hexmode/xml-rpc-el"))]) -(xml-quotes . [(20151230 2249) nil "read quotations from an XML document" tar ((:commit . "26db170e80b9295861227cdf970721b12539ed44") (:keywords "xml" "quotations") (:authors ("Norman Walsh" . "ndw@nwalsh.com")) (:maintainer "Norman Walsh" . "ndw@nwalsh.com") (:url . "https://github.com/ndw/xml-quotes"))]) -(xml+ . [(20170727 2351) ((emacs (24 4)) (dash (2 12 0))) "Utilities for xml and html trees" single ((:commit . "232fa863c08fc159b21dd58c39ea45dce3334895") (:keywords "xml" "html") (:authors ("Ben Dean" . "bendean837@gmail.com")) (:maintainer "Ben Dean" . "bendean837@gmail.com") (:url . "https://github.com/bddean/xml-plus"))]) -(xkcd . [(20160419 1130) ((json (1 3))) "View xkcd from Emacs" single ((:commit . "66e928706fd660cfdab204c98a347b49c4267bdf") (:keywords "xkcd" "webcomic") (:authors ("Vibhav Pant" . "vibhavp@gmail.com")) (:maintainer "Vibhav Pant" . "vibhavp@gmail.com") (:url . "https://github.com/vibhavp/emacs-xkcd"))]) -(xcscope . [(20180426 712) nil "cscope interface for (X)Emacs" single ((:commit . "57bff67460c587acf60f513de622b4c7ab312081") (:keywords "languages" "c") (:authors ("Darryl Okahata" . "darrylo@sonic.net") ("Dima Kogan" . "dima@secretsauce.net")) (:maintainer "Dima Kogan" . "dima@secretsauce.net") (:url . "https://github.com/dkogan/xcscope.el"))]) -(xcode-project . [(20181025 1244) ((emacs (25))) "A package for reading Xcode project files." tar ((:commit . "0bf9a4230fab7830350c750c39beda99ef74d72f") (:keywords "languages" "tools") (:authors ("John Buckley" . "john@olivetoast.com")) (:maintainer "John Buckley" . "john@olivetoast.com") (:url . "https://github.com/nhojb/xcode-project.git"))]) -(xcode-mode . [(20160907 1208) ((emacs (24 4)) (s (1 10 0)) (dash (2 11 0)) (multiple-cursors (1 0 0))) "A minor mode for emacs to perform Xcode like actions." single ((:commit . "2ae4f512d6c601ea39d5ab785c2b5288eac24b59") (:keywords "conveniences") (:authors ("Nickolas Lanasa" . "nick@nytekproductions.com")) (:maintainer "Nickolas Lanasa" . "nick@nytekproductions.com"))]) -(xbm-life . [(20160103 1017) nil "A XBM version of Conway's Game of Life" single ((:commit . "dd6a98ac9ea81b681e68f6318fed47158e5d469e") (:keywords "games") (:authors ("Vasilij Schneidermann" . "v.schneidermann@gmail.com")) (:maintainer "Vasilij Schneidermann" . "v.schneidermann@gmail.com") (:url . "https://github.com/wasamasa/xbm-life"))]) -(xahk-mode . [(20170821 1107) ((emacs (24 1))) "Major mode for editing AutoHotkey scripts." single ((:commit . "02012b20603c00e3b2ef32159a690ed1e05d12c3") (:keywords "languages") (:authors ("Xah Lee ( http://xahlee.info/ )")) (:maintainer "Xah Lee ( http://xahlee.info/ )") (:url . "http://xahlee.info/mswin/emacs_autohotkey_mode.html"))]) -(xah-replace-pairs . [(20180508 249) ((emacs (24 1))) "emacs lisp functions for multi-pair find/replace." single ((:commit . "4d845cfbce32d45befd7c454e3476c3ce40d2b43") (:keywords "lisp" "tools" "find replace") (:authors ("Xah Lee ( http://xahlee.info/ )")) (:maintainer "Xah Lee ( http://xahlee.info/ )") (:url . "http://ergoemacs.org/emacs/elisp_replace_string_region.html"))]) -(xah-reformat-code . [(20170821 1111) nil "commands to reformat source code." single ((:commit . "7fec8b28e46b8cc2813fac5149e3bbb56c0aa6b1") (:keywords "convenience") (:authors ("Xah Lee ( http://xahlee.info/ )")) (:maintainer "Xah Lee ( http://xahlee.info/ )") (:url . "http://ergoemacs.org/emacs/emacs_reformat_lines.html"))]) -(xah-math-input . [(20190206 1658) ((emacs (24 1))) "a minor mode for inputting math and Unicode symbols." single ((:commit . "af787f87815b85d56c35bbe0f22e03a31c8e670d") (:keywords "abbrev" "convenience" "unicode" "math" "latex") (:authors ("Xah Lee ( http://xahlee.info/ )")) (:maintainer "Xah Lee ( http://xahlee.info/ )") (:url . "http://ergoemacs.org/emacs/xmsi-math-symbols-input.html"))]) -(xah-lookup . [(20181225 1942) ((emacs (24 1))) "look up word on internet." single ((:commit . "2cafbf3605a8f2ac4c56392c5b1f75adc3b11f24") (:keywords "help" "docs" "convenience") (:authors ("Xah Lee ( http://xahlee.info/ )")) (:maintainer "Xah Lee ( http://xahlee.info/ )") (:url . "http://ergoemacs.org/emacs/xah-lookup.html"))]) -(xah-get-thing . [(20170821 1053) ((emacs (24 1))) "get thing or selection at point." single ((:commit . "e3ef069ea9fea3a092689d45c94c6211b51d0ea4") (:keywords "extensions" "lisp" "tools") (:authors ("Xah Lee ( http://xahlee.info/ )")) (:maintainer "Xah Lee ( http://xahlee.info/ )") (:url . "http://ergoemacs.org/emacs/elisp_get-selection-or-unit.html"))]) -(xah-fly-keys . [(20190223 716) ((emacs (24 1))) "ergonomic modal keybinding minor mode." single ((:commit . "cc8b3bc26998bc29f82e87667c0d1ef90894ff66") (:keywords "convenience" "emulations" "vim" "ergoemacs") (:authors ("Xah Lee ( http://xahlee.info/ )")) (:maintainer "Xah Lee ( http://xahlee.info/ )") (:url . "http://ergoemacs.org/misc/ergoemacs_vi_mode.html"))]) -(xah-find . [(20190314 2039) ((emacs (24 1))) "find replace in pure emacs lisp. Purpose similar to grep/sed." single ((:commit . "a39f1ff9a7cf56e92b56c6f179741569b9172a48") (:keywords "convenience" "extensions" "files" "tools" "unix") (:authors ("Xah Lee ( http://xahlee.info/ )")) (:maintainer "Xah Lee ( http://xahlee.info/ )") (:url . "http://ergoemacs.org/emacs/elisp-xah-find-text.html"))]) -(xah-elisp-mode . [(20190125 646) ((emacs (24 3))) "Major mode for editing emacs lisp." single ((:commit . "a09c51e450bf4b39bdc3f4063c2946baec7ae3b1") (:keywords "lisp" "languages") (:authors ("Xah Lee ( http://xahlee.info/ )")) (:maintainer "Xah Lee ( http://xahlee.info/ )") (:url . "http://ergoemacs.org/emacs/xah-elisp-mode.html"))]) -(xah-css-mode . [(20180629 807) ((emacs (24 3))) "Major mode for editing CSS code." single ((:commit . "9293a1a21cb7c2a6fb4ae9af0e581f30d2e45016") (:keywords "languages" "convenience" "css" "color") (:authors ("Xah Lee ( http://xahlee.info/ )")) (:maintainer "Xah Lee ( http://xahlee.info/ )") (:url . "http://ergoemacs.org/emacs/xah-css-mode.html"))]) -(x86-lookup . [(20180528 1635) ((emacs (24 3)) (cl-lib (0 3))) "jump to x86 instruction documentation" single ((:commit . "609b2ba70dc5a246ac9b4b5f89eb5ef4331519bf") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/x86-lookup"))]) -(x509-mode . [(20180921 803) ((emacs (24 1)) (cl-lib (0 5))) "View certificates, CRLs and keys using OpenSSL." tar ((:commit . "9eb24c8721dcad9888b70213d06d770bc2386db7") (:authors ("Fredrik Axelsson" . "f.axelsson@gmai.com") ("Package-Requires: ((emacs \"24.1\") (cl-lib \"0.5\"))")) (:maintainer "Fredrik Axelsson" . "f.axelsson@gmai.com"))]) -(x-path-walker . [(20160922 1835) ((helm-core (1 9 2))) "Navigation feature for JSON/XML/HTML based on path (imenu like)" tar ((:commit . "3b01dbd7a039c6c84fdf8c8ee53ba72090ee950a") (:keywords "convenience") (:authors (nil . "<lompik@ArchOrion>")) (:maintainer nil . "<lompik@ArchOrion>"))]) -(www-synonyms . [(20170128 2251) ((request (0 2 0)) (cl-lib (0 5))) "insert synonym for a word" single ((:commit . "7e37ea35064ff31c9945f0198a653647d408c936") (:keywords "lisp") (:authors ("Bernhard Specht" . "bernhard@specht.net")) (:maintainer "Bernhard Specht" . "bernhard@specht.net"))]) -(wwtime . [(20151122 1610) nil "Insert a time of day with appropriate world-wide localization" single ((:commit . "d04d8fa814b5d3644efaeb28f25520ada69acbbd") (:keywords "time") (:authors ("Norman Walsh" . "ndw@nwalsh.com")) (:maintainer "Norman Walsh" . "ndw@nwalsh.com"))]) -(wucuo . [(20181106 2257) ((emacs (24 4))) "Spell check code containing camel case words" single ((:commit . "4e988c101fe82f2e8c7b3710d15982fe28b8d32d") (:keywords "convenience") (:authors ("Chen Bin <chenbin DOT sh AT gmail DOT com>")) (:maintainer "Chen Bin <chenbin DOT sh AT gmail DOT com>") (:url . "http://github.com/redguardtoo/wucuo"))]) -(wttrin . [(20170614 1206) ((emacs (24 4)) (xterm-color (1 0))) "Emacs frontend for weather web service wttr.in" single ((:commit . "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc") (:keywords "comm" "weather" "wttrin") (:authors ("Carl X. Su" . "bcbcarl@gmail.com") ("ono hiroko (kuanyui)" . "azazabc123@gmail.com")) (:maintainer "Carl X. Su" . "bcbcarl@gmail.com") (:url . "https://github.com/bcbcarl/emacs-wttrin"))]) -(wsd-mode . [(20180807 1130) nil "Emacs major-mode for www.websequencediagrams.com" tar ((:commit . "0583df8efb742c90dc56df00f9714e13512cf6d9") (:keywords "wsd" "diagrams" "design" "process" "modelling" "uml") (:authors ("Jostein Kjønigsen" . "jostein@gmail.com")) (:maintainer "Jostein Kjønigsen" . "jostein@gmail.com") (:url . "https://github.com/josteink/wsd-mode"))]) -(ws-butler . [(20170111 2334) nil "Unobtrusively remove trailing whitespace." single ((:commit . "52321b99be69aa1b661da7743c4421a30d8b6bcb") (:authors ("Le Wang")) (:maintainer "Le Wang") (:url . "https://github.com/lewang/ws-butler"))]) -(writeroom-mode . [(20190406 2135) ((emacs (24 1)) (visual-fill-column (1 9))) "Minor mode for distraction-free writing" tar ((:commit . "ebe522ba5a0367cf82ed03ffeb63fe597b84f4a1") (:keywords "text") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm"))]) -(writegood-mode . [(20180525 1343) nil "Polish up poor writing on the fly" single ((:commit . "b71757ec337e226909fb0422f0224e31acc71733") (:keywords "writing" "weasel-words" "grammar") (:authors ("Benjamin Beckwith")) (:maintainer "Benjamin Beckwith") (:url . "http://github.com/bnbeckwith/writegood-mode"))]) -(writefreely . [(20190326 1535) ((emacs (24 3)) (org (9 0)) (ox-gfm (0 0)) (request (0 3))) "Push your Org files as markdown to a writefreely instance" single ((:commit . "61296a15f31aef92972ffa6865edadaf4f4127ca") (:keywords "convenience") (:authors ("Daniel Gomez <d.gomez at posteo dot org>")) (:maintainer "Daniel Gomez <d.gomez at posteo dot org>") (:url . "https://github.com/dangom/writefreely.el"))]) -(wrap-region . [(20140117 720) ((dash (1 0 3))) "Wrap text with punctation or tag" single ((:commit . "fbae9b0f106187af19823f1a6260b5c68b7252e6") (:keywords "speed" "convenience") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/wrap-region"))]) -(wotd . [(20170328 1948) ((emacs (24 4)) (org (8 2 10))) "Fetch word-of-the-day from multiple online sources" single ((:commit . "d2937a3d91e014f8028a1f33d21c18cc0b065a64") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com"))]) -(world-time-mode . [(20140627 807) nil "show whole days of world-time diffs" single ((:commit . "ce7a3b45c87eb24cfe61eee453175d64f741d7cc") (:keywords "tools" "calendar") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk"))]) -(workgroups2 . [(20141102 1922) ((cl-lib (0 4)) (dash (2 8 0)) (anaphora (1 0 0)) (f (0 17))) "New workspaces for Emacs" single ((:commit . "bbefbb2579d463b243dcd4ecbfce82e1bdac3882") (:keywords "session" "management" "window-configuration" "persistence") (:authors ("Sergey Pashinin <sergey at pashinin dot com>")) (:maintainer "Sergey Pashinin <sergey at pashinin dot com>") (:url . "https://github.com/pashinin/workgroups2"))]) -(workgroups . [(20110726 1641) nil "workgroups for windows (for Emacs)" single ((:commit . "9572b3492ee09054dc329f64ed846c962b395e39") (:keywords "session" "management" "window-configuration" "persistence") (:authors ("tlh" . "thunkout@gmail.com")) (:maintainer "tlh" . "thunkout@gmail.com"))]) -(worf . [(20190519 1648) ((swiper (0 11 0)) (ace-link (0 1 0)) (hydra (0 13 0)) (zoutline (0 1 0))) "A warrior does not press so many keys! (in org-mode)" tar ((:commit . "00d191b347397bd7ad1f5b95cfe39fa3fce9fc91") (:keywords "lisp") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/worf"))]) -(wordsmith-mode . [(20171025 1430) nil "Syntax analysis and NLP text-processing in Emacs (OSX-only)" single ((:commit . "589a97412138145bea70e0450eeddeb7f138d538") (:authors ("istib" . "istib@thebati.net")) (:maintainer "istib" . "istib@thebati.net"))]) -(wordnut . [(20180313 443) ((emacs (24 4))) "Major mode interface to WordNet" tar ((:commit . "feac531404041855312c1a046bde7ea18c674915"))]) -(wordgen . [(20170803 1820) ((emacs (24)) (cl-lib (0 5))) "Random word generator" single ((:commit . "aacad928ae99a953e034a831dfd0ebdf7d52ac1d") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/wordgen.el"))]) -(wonderland . [(20130913 119) ((dash (2 0 0)) (dash-functional (1 0 0)) (multi (2 0 0)) (emacs (24))) "declarative configuration for Emacsen" single ((:commit . "89d274ad694b0e748efdac23ccd60b7d8b73d7c6") (:keywords "configuration" "profile" "wonderland") (:authors ("Christina Whyte" . "kurisu.whyte@gmail.com")) (:maintainer "Christina Whyte" . "kurisu.whyte@gmail.com") (:url . "http://github.com/kurisuwhyte/emacs-wonderland"))]) -(wolfram-mode . [(20180307 13) ((emacs (24 3))) "Mathematica editing and inferior mode." single ((:commit . "be680190cac6ccf579dbce107deaae495928d1b3") (:keywords "languages" "processes" "tools") (:authors ("Daichi Mochihashi <daichi at cslab.kecl.ntt.co.jp>")) (:maintainer "Daichi Mochihashi <daichi at cslab.kecl.ntt.co.jp>") (:url . "https://github.com/kawabata/wolfram-mode/"))]) -(wolfram . [(20170123 756) nil "Wolfram Alpha Integration" single ((:commit . "6b5dceae3fd6cdb4d7562510deeafa02c93c010b") (:keywords "math") (:authors ("Hans Sjunnesson" . "hans.sjunnesson@gmail.com")) (:maintainer "Hans Sjunnesson" . "hans.sjunnesson@gmail.com"))]) -(wn-mode . [(20151110 552) ((emacs (24))) "numeric window switching shortcuts" single ((:commit . "f05c3151523e529af5a0a3fa8c948b61fb369f6e") (:keywords "buffers" "windows" "switching-windows") (:authors ("Anonymous")) (:maintainer "LuÃs Oliveira" . "luismbo@gmail.com") (:url . "https://github.com/luismbo/wn-mode"))]) -(with-venv . [(20190516 606) ((cl-lib (0 5)) (emacs (24 4))) "Execute with Python virtual environment activated" single ((:commit . "283b35e33f012657ef23e154b6bdf362377d82e6") (:keywords "processes" "python" "venv") (:authors ("10sr <8.slashes [at] gmail [dot] com>")) (:maintainer "10sr <8.slashes [at] gmail [dot] com>") (:url . "https://github.com/10sr/with-venv-el"))]) -(with-simulated-input . [(20170821 617) ((emacs (24 4)) (seq (2 0)) (s (0))) "A macro to simulate user input non-interactively" single ((:commit . "af9a38ce28a741e6d8742750bef5d7b5afa13796") (:keywords "lisp" "tools" "extensions") (:authors ("Ryan C. Thompson")) (:maintainer "Ryan C. Thompson"))]) -(with-namespace . [(20130407 1822) ((dash (1 1 0)) (loop (1 1))) "interoperable elisp namespaces" single ((:commit . "8ac52da3a09cf46087720e30cf730d00f140cde6") (:keywords "namespaces") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(with-editor . [(20190511 1157) ((emacs (24 4)) (async (1 9))) "Use the Emacsclient as $EDITOR" tar ((:commit . "ff23166feb857e3cfee96cb1c9ef416a224a7e20") (:keywords "tools") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/with-editor"))]) -(wispjs-mode . [(20170720 1919) ((clojure-mode (0))) "Major mode for Wisp code." single ((:commit . "60f9f5fd9d1556e2d008939f67eb1b1d0f325fa8") (:authors ("Kris Jenkins" . "krisajenkins@gmail.com")) (:maintainer "Kris Jenkins" . "krisajenkins@gmail.com") (:url . "https://github.com/krisajenkins/wispjs-mode"))]) -(winum . [(20181119 1705) ((cl-lib (0 5)) (dash (2 13 0))) "Navigate windows and frames using numbers." single ((:commit . "247df36c03d70b453e9b912d6e1b7065644f639d") (:keywords "convenience" "frames" "windows" "multi-screen") (:authors ("Thomas de Beauchêne" . "thomas.de.beauchene@gmail.com")) (:maintainer "Thomas de Beauchêne" . "thomas.de.beauchene@gmail.com") (:url . "http://github.com/deb0ch/winum.el"))]) -(winring . [(20180530 18) nil "Window configuration rings" single ((:commit . "f2d072bd446b73e93b127523f19ea82b99b9267f") (:keywords "frames" "tools") (:authors ("1997-2018 Barry A. Warsaw")) (:maintainer "1997-2018 Barry A. Warsaw") (:url . "https://gitlab.com/warsaw/winring"))]) -(winpoint . [(20131023 1713) nil "Remember buffer positions per-window, not per buffer" single ((:commit . "e6050093c076308184566fa1d1012423d6934773") (:keywords "convenience") (:authors ("Jorgen Schaefer" . "forcer@forcix.cx")) (:maintainer "Jorgen Schaefer" . "forcer@forcix.cx") (:url . "https://github.com/jorgenschaefer/winpoint"))]) -(winnow . [(20170903 1206) ((emacs (24))) "winnow ag/grep results by matching/excluding lines" single ((:commit . "18cb6b94338f3b7b4f2cd0331dad22f82dd9e0d3") (:keywords "matching") (:authors ("Charles L.G. Comstock" . "dgtized@gmail.com")) (:maintainer "Charles L.G. Comstock" . "dgtized@gmail.com") (:url . "https://github.com/dgtized/winnow.el"))]) -(windwow . [(20170816 148) ((dash (2 11 0)) (cl-lib (0 6 1)) (emacs (24))) "simple workspace management" single ((:commit . "77bad26f651744b68d31b389389147014d250f23") (:keywords "frames") (:authors ("Viju Mathew" . "viju.jm@gmail.com")) (:maintainer "Viju Mathew" . "viju.jm@gmail.com") (:url . "github.com/vijumathew/windwow"))]) -(windsize . [(20181029 2257) nil "Simple, intuitive window resizing" single ((:commit . "62c2846bbe95b0a73e996c75e4a644d05f57aaaa") (:keywords "window" "resizing" "convenience") (:authors ("Chris Perkins" . "chrisperkins99@gmail.com")) (:maintainer "Chris Perkins" . "chrisperkins99@gmail.com") (:url . "http://github.com/grammati/windsize"))]) -(window-purpose . [(20190405 1101) ((emacs (24 4)) (let-alist (1 0 3)) (imenu-list (0 1))) "Purpose-based window management for Emacs" tar ((:commit . "fb649bb07de63a70ecdace464eadcaafe01e1995") (:keywords "frames") (:authors ("Bar Magal")) (:maintainer "Bar Magal") (:url . "https://github.com/bmag/emacs-purpose"))]) -(window-numbering . [(20160809 1810) nil "Numbered window shortcuts" single ((:commit . "10809b3993a97c7b544240bf5d7ce9b1110a1b89") (:keywords "faces" "matching") (:authors ("Nikolaj Schumacher <bugs * nschum de>")) (:maintainer "Nikolaj Schumacher <bugs * nschum de>") (:url . "http://nschum.de/src/emacs/window-numbering-mode/"))]) -(window-number . [(20170801 151) nil "Select windows by numbers." single ((:commit . "d41722de646ffeb3f70d26e4a86a5a1ba5c6be87") (:keywords "windows") (:authors ("Johann \"Myrkraverk\" Oskarsson" . "myrkraverk@users.sourceforge.net")) (:maintainer "Nik Nyby" . "niknyby@riseup.net") (:url . "https://github.com/nikolas/window-number"))]) -(window-layout . [(20170215 33) nil "window layout manager" single ((:commit . "cd2e4f967b610c2bbef53182829e47250d027056") (:keywords "window" "layout") (:authors ("SAKURAI Masashi <m.sakurai atmark kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai atmark kiwanami.net>"))]) -(window-jump . [(20170809 2208) nil "Move left/right/up/down through your windows." single ((:commit . "6bdb51e9a346907d60a9625f6180bddd06be6674") (:keywords "frames" "convenience") (:authors ("Steven Thomas")) (:maintainer "Steven Thomas") (:url . "https://github.com/chumpage/chumpy-windows"))]) -(window-end-visible . [(20140508 2041) nil "Find the last visible point in a window" single ((:commit . "525500fb2ebc08f3f9ea493972e5f2e1d79f89ef") (:keywords "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/window-end-visible"))]) -(windata . [(20090830 1040) nil "convert window configuration to list" single ((:commit . "a723fc446ceaec23d5f29ecc8245d94c99d91625") (:keywords "convenience" "frames") (:authors (nil . "wenbinye@gmail.com")) (:maintainer nil . "wenbinye@gmail.com"))]) -(win-switch . [(20161009 1627) nil "fast, dynamic bindings for window-switching/resizing" single ((:commit . "954eb5e4c5737f0c06368c42a7f1c3dd374d782f") (:keywords "window" "switch" "key bindings" "ergonomic" "efficient") (:authors ("Christopher Genovese" . "genovese@cmu.edu")) (:maintainer "Christopher R. Genovese" . "genovese@cmu.edu") (:url . "http://www.stat.cmu.edu/~genovese/emacs/win-switch/"))]) -(wilt . [(20180220 854) ((emacs (24 3)) (dash (2 12 0)) (s (1 10 0))) "An extensions for calculating WILT in a buffer." single ((:commit . "04dbe37fa35d0b24c791421785d2c97a8cbfe2cc") (:authors ("Austin Bingham" . "austin@sixty-north.com")) (:maintainer "Austin Bingham" . "austin@sixty-north.com") (:url . "https://github.com/sixty-north/emacs-wilt"))]) -(wiki-summary . [(20181010 1824) ((emacs (24))) "View Wikipedia summaries in Emacs easily." single ((:commit . "fa41ab6e50b3b80e54148af9d4bac18fd0405000") (:keywords "wikipedia" "utility") (:authors ("Danny Gratzer")) (:maintainer "Danny Gratzer") (:url . "https://github.com/jozefg/wiki-summary.el"))]) -(wiki-nav . [(20150223 1354) ((button-lock (1 0 2)) (nav-flash (1 0 0))) "Simple file navigation using [[WikiStrings]]" single ((:commit . "f9082feb329432fcf2ac49a95e64bed9fda24d58") (:keywords "mouse" "button" "hypermedia" "navigation") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/button-lock"))]) -(widgetjs . [(20160719 1504) ((makey (0 3)) (js2-mode (20140114)) (js2-refactor (0 6 1)) (s (1 9 0))) "Widgetjs mode" single ((:commit . "0379c80a0c2df77cd18e95741caf6fc8acd90a41") (:keywords "help") (:authors ("Nicolas Petton" . "petton.nicolas@gmail.com")) (:maintainer "Nicolas Petton" . "petton.nicolas@gmail.com"))]) -(widget-mvc . [(20150102 406) nil "MVC framework for the emacs widgets" single ((:commit . "ff5a85880df7b87f9f480fe3c28438a0712b7b87") (:keywords "lisp" "widget") (:authors ("SAKURAI Masashi <m.sakurai at kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai at kiwanami.net>"))]) -(wide-column . [(20170925 1613) nil "Calls functions dependant on column position." single ((:commit . "ce9ef4675485a7bea381077866368ef875226b10") (:keywords "minor mode" "cursor colour" "column width") (:authors ("Phillip Lord" . "p.lord@russet.org.uk")) (:maintainer "Phillip Lord" . "p.lord@russet.org.uk"))]) -(whole-line-or-region . [(20190411 215) nil "on current line if region undefined" single ((:commit . "15f17488f98868f1628a3f9d91a812b1f89bc73a") (:keywords "convenience" "wp") (:authors ("Joe Casadonte" . "emacs@northbound-train.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/whole-line-or-region"))]) -(whois . [(20190529 1554) ((emacs (24))) "Syntax highlighted domain name queries using system whois" single ((:commit . "b4cdab4d25225c6e834727a7d85cdb0d493da152") (:keywords "network" "comm") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:url . "https://github.com/lassik/emacs-whois"))]) -(whizzml-mode . [(20190618 58) ((emacs (24 4))) "Programming mode for editing WhizzML files" tar ((:commit . "ec4c8ba184a135bd3f5adf2cd98dbc4d324a0190") (:keywords "languages" "lisp") (:authors ("Jose Antonio Ortega Ruiz" . "jao@bigml.com")) (:maintainer "Jose Antonio Ortega Ruiz" . "jao@bigml.com"))]) -(whitespace-cleanup-mode . [(20190106 2022) nil "Intelligently call whitespace-cleanup on save" single ((:commit . "72427144b054b0238a86e1348c45d986b8830d9d") (:keywords "convenience") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/whitespace-cleanup-mode"))]) -(white-theme . [(20160917 1743) ((emacs (24))) "Minimalistic light color theme inspired by basic-theme" single ((:commit . "e9e6d5b9d43da6eb15e86f5fbc8b1ba83abe8c78") (:keywords "color" "theme" "minimal" "basic" "simple" "white") (:authors ("Anler Hernandez Peral" . "inbox@anler.me")) (:maintainer "Anler Hernandez Peral" . "inbox@anler.me") (:url . "http://github.com/anler/white-theme.el"))]) -(white-sand-theme . [(20151117 1648) ((emacs (24))) "Emacs theme with a light background." single ((:commit . "97621edd69267dd143760d94393db2c2558c9ea4") (:authors ("Martin Haesler")) (:maintainer "Martin Haesler"))]) -(whitaker . [(20150814 1122) ((dash (2 10 0))) "Comint interface for Whitaker's Words" single ((:commit . "eaf26ea647b729ca705b73ea70312d5ffdf89448") (:keywords "processes") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com"))]) -(which-key-posframe . [(20190427 1103) ((emacs (26 0)) (posframe (0 4 3)) (which-key (3 3 2))) "Using posframe to show which-key" single ((:commit . "e7f28608c7fc9507e407c6b840dff09062df533a") (:keywords "convenience" "bindings" "tooltip") (:authors ("Yanghao Xie")) (:maintainer "Yanghao Xie" . "yhaoxie@gmail.com") (:url . "https://github.com/yanghaoxie/which-key-posframe"))]) -(which-key . [(20190529 114) ((emacs (24 4))) "Display available keybindings in popup" single ((:commit . "ba03e7e5bcbe3f7d95be2cfddd71454151bb98c8") (:authors ("Justin Burkett" . "justin@burkett.cc")) (:maintainer "Justin Burkett" . "justin@burkett.cc") (:url . "https://github.com/justbur/emacs-which-key"))]) -(what-the-commit . [(20150901 1316) nil "Random commit message generator" single ((:commit . "868c80a1b8614bcbd2225cd0290142c72f2a7956") (:keywords "git" "commit" "message") (:authors ("Dan Barbarito" . "dan@barbarito.me")) (:maintainer "Dan Barbarito" . "dan@barbarito.me") (:url . "http://barbarito.me/"))]) -(wgrep-pt . [(20140510 2231) ((wgrep (2 1 5))) "Writable pt buffer and apply the changes to files" single ((:commit . "379afd89ebd76f63842c8589127d66096a8bb595") (:keywords "grep" "edit" "extensions") (:authors ("Masahiro Hayashi <mhayashi1120@gmail.com>, Bailey Ling" . "bling@live.ca")) (:maintainer "Masahiro Hayashi <mhayashi1120@gmail.com>, Bailey Ling" . "bling@live.ca") (:url . "http://github.com/mhayashi1120/Emacs-wgrep/raw/master/wgrep-pt.el"))]) -(wgrep-helm . [(20190401 2156) ((wgrep (2 1 1))) "Writable helm-grep-mode buffer and apply the changes to files" single ((:commit . "379afd89ebd76f63842c8589127d66096a8bb595") (:keywords "grep" "edit" "extensions") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "http://github.com/mhayashi1120/Emacs-wgrep/raw/master/wgrep-helm.el"))]) -(wgrep-ag . [(20181229 124) ((wgrep (2 1 5))) "Writable ag buffer and apply the changes to files" single ((:commit . "379afd89ebd76f63842c8589127d66096a8bb595") (:keywords "grep" "edit" "extensions") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "http://github.com/mhayashi1120/Emacs-wgrep/raw/master/wgrep-ag.el"))]) -(wgrep-ack . [(20141012 1011) ((wgrep (2 1 1))) "Writable ack-and-a-half buffer and apply the changes to files" single ((:commit . "379afd89ebd76f63842c8589127d66096a8bb595") (:keywords "grep" "edit" "extensions") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "http://github.com/mhayashi1120/Emacs-wgrep/raw/master/wgrep-ack.el"))]) -(wgrep . [(20181229 40) nil "Writable grep buffer and apply the changes to files" single ((:commit . "379afd89ebd76f63842c8589127d66096a8bb595") (:keywords "grep" "edit" "extensions") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "http://github.com/mhayashi1120/Emacs-wgrep/raw/master/wgrep.el"))]) -(weibo . [(20150307 2242) ((cl-lib (0 5))) "Weibo client for Emacs" tar ((:commit . "a8abb50b7602fe15fe2bc6400ac29780e956b390") (:keywords "weibo") (:authors ("Austin" . "austiny.cn@gmail.com")) (:maintainer "Austin" . "austiny.cn@gmail.com") (:url . "https://github.com/austin-----/weibo.emacs"))]) -(weechat-alert . [(20160416 1248) ((weechat (0 3 1)) (cl-lib (0 5)) (alert (1 2))) "Weechat notifier using alerts" single ((:commit . "a8fd557c8f335322f132c1c6c08b6741d6394e2e") (:keywords "irc" "chat" "network" "weechat") (:authors ("Andreas Klein" . "git@kungi.org")) (:maintainer "Andreas Klein" . "git@kungi.org") (:url . "https://github.com/kungi/weechat-alert"))]) -(weechat . [(20190520 1551) ((s (1 3 1)) (cl-lib (0 2)) (emacs (24)) (tracking (1 2))) "Chat via WeeChat's relay protocol in Emacs" tar ((:commit . "d9a13306ea8be27367f92e9202d116a88fa1f441"))]) -(wedge-ws . [(20140714 2149) nil "Wedge whitespace between columns in text" single ((:commit . "4669115f02d9c6fee067cc5369bb38c0f9db88b2") (:keywords "formatting" "indentation") (:authors ("Anders Eurenius" . "aes@spotify.com")) (:maintainer "Anders Eurenius" . "aes@spotify.com"))]) -(websocket . [(20190611 2347) ((cl-lib (0 5))) "Emacs WebSocket client and server" single ((:commit . "53bfd56e12d9d1384b8105aa2a6ea0d7bdacb7da") (:keywords "communication" "websocket" "server") (:authors ("Andrew Hyatt" . "ahyatt@gmail.com")) (:maintainer "Andrew Hyatt" . "ahyatt@gmail.com"))]) -(webpaste . [(20190310 1048) ((emacs (24 4)) (request (0 2 0)) (cl-lib (0 5))) "Paste to pastebin-like services" single ((:commit . "bd38635d926a45a3cbe453fd9b41c8624a6d2309") (:keywords "convenience" "comm" "paste") (:authors ("Elis \"etu\" Hirwing")) (:maintainer "Elis \"etu\" Hirwing") (:url . "https://github.com/etu/webpaste.el"))]) -(weblogger . [(20110926 1618) ((xml-rpc (1 6 8))) "Weblog maintenance via XML-RPC APIs" single ((:commit . "b3dd4aead9d3a87e6d85e7fef4f4f3bd40d87b53") (:keywords "weblog" "blogger" "cms" "movable" "type" "openweblog" "blog") (:url . "http://launchpad.net/weblogger-el"))]) -(webkit-color-picker . [(20180325 736) ((emacs (26 0)) (posframe (0 1 0))) "Insert and adjust colors using Webkit Widgets" tar ((:commit . "765cac80144cad4bc0bf59025ea0199f0486f737") (:keywords "tools") (:authors ("Ozan Sener" . "hi@ozan.email")) (:maintainer "Ozan Sener" . "hi@ozan.email") (:url . "https://github.com/osener/emacs-webkit-color-picker"))]) -(web-server . [(20190310 213) ((emacs (24 3))) "Emacs Web Server" tar ((:commit . "cafa5b7582c57252a0884b2c33da9b18fb678713") (:keywords "http" "server" "network") (:authors ("Eric Schulte" . "schulte.eric@gmail.com")) (:maintainer "Eric Schulte" . "schulte.eric@gmail.com") (:url . "https://github.com/eschulte/emacs-web-server"))]) -(web-search . [(20181028 525) ((emacs (24 3))) "Open a web search" tar ((:commit . "24f5b49774f4fb60c903c2b65598590d1c6456d9") (:keywords "web" "search") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/web-search.el"))]) -(web-narrow-mode . [(20170407 210) ((web-mode (14 0 27))) "quick narrow code block in web-mode" single ((:commit . "73bdcb7d0701abe65dab4fc295d944885e05ae33") (:keywords "web-mode" "react" "narrow" "web") (:authors ("Qquanwei" . "quanwei9958@126.com")) (:maintainer "Johan Andersson" . "quanwei9958@126.com") (:url . "https://github.com/Qquanwei/web-narrow-mode"))]) -(web-mode-edit-element . [(20190531 852) ((emacs (24 4)) (web-mode (14))) "Helper-functions for attribute- and element-handling" tar ((:commit . "ad5d7e4dc2420bdd00ce65d9adffbd38a5904afa") (:keywords "languages" "convenience") (:authors ("Julian T. Knabenschuh" . "jtkdevelopments@gmail.com")) (:maintainer "Julian T. Knabenschuh" . "jtkdevelopments@gmail.com") (:url . "https://github.com/jtkDvlp/web-mode-edit-element"))]) -(web-mode . [(20190609 1917) ((emacs (23 1))) "major mode for editing web templates" single ((:commit . "97bdc26a97d8433df9a3eff50a61e7290f98ad6b") (:keywords "languages") (:authors ("François-Xavier Bois <fxbois AT Google Mail Service>")) (:maintainer "François-Xavier Bois") (:url . "http://web-mode.org"))]) -(web-completion-data . [(20160318 848) nil "Shared completion data for ac-html and company-web" tar ((:commit . "c272c94e8a71b779c29653a532f619acad433a4f") (:keywords "html" "auto-complete" "company") (:authors ("Olexandr Sydorchuk" . "olexandr.syd@gmail.com")) (:maintainer "Olexandr Sydorchuk" . "olexandr.syd@gmail.com") (:url . "https://github.com/osv/web-completion-data"))]) -(web-beautify . [(20161115 2247) nil "Format HTML, CSS and JavaScript/JSON" single ((:commit . "e1b45321d8c11b404b12c8e55afe55eaa7c84ee9") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/yasuyk/web-beautify"))]) -(web . [(20141231 2001) ((dash (2 9 0)) (s (1 5 0))) "useful HTTP client" single ((:commit . "483188dac4bc6b409b985c9dae45f3324a425efd") (:keywords "lisp" "http" "hypermedia") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk") (:url . "http://github.com/nicferrier/emacs-web"))]) -(weather-metno . [(20150901 107) ((emacs (24)) (cl-lib (0 3))) "Weather data from met.no in Emacs" tar ((:commit . "bfc7137095e0ee71aad70ac46f2af677f3c051b6"))]) -(wdl-mode . [(20180831 1946) nil "WDL (Workflow Definition Language) major mode" single ((:commit . "cef86e5afc136ae5ad9324cd6e6d6f860b889bcf") (:keywords "languages") (:authors ("Xiaowei Zhan" . "zhanxw@gmail.com")) (:maintainer "Xiaowei Zhan" . "zhanxw@gmail.com") (:url . "http://github.com/zhanxw/wdl-mode"))]) -(wcheck-mode . [(20190616 1400) nil "General interface for text checkers" tar ((:commit . "b41ff612a26e758a6e966f83f831f5dd8f1a3338"))]) -(wc-mode . [(20170127 429) nil "Running word count with goals (minor mode)" single ((:commit . "f218f42709a651b34d6c1ddd98856f44648ef707") (:authors ("Benjamin Beckwith")) (:maintainer "Benjamin Beckwith") (:url . "https://github.com/bnbeckwith/wc-mode"))]) -(wc-goal-mode . [(20140829 1359) nil "Running word count with goals (minor mode)" single ((:commit . "bf21ab9c5a449bcc20dd207a4915dcec218d2699") (:authors ("Benjamin Beckwith")) (:maintainer "Benjamin Beckwith") (:url . "https://github.com/bnbeckwith/wc-goal-mode"))]) -(wavefront-obj-mode . [(20170808 1716) nil "Major mode for Wavefront obj files" single ((:commit . "34027915de6496460d8e68b5991dd24d47d54859") (:authors ("Sasha Kovar" . "sasha-emacs@arcocene.org")) (:maintainer "Sasha Kovar" . "sasha-emacs@arcocene.org") (:url . "http://github.com/abend/wavefront-obj-mode"))]) -(watch-buffer . [(20120331 2044) nil "run a shell command when saving a buffer" single ((:commit . "761fd7252e6d7bf5148283c2a7ee935f087d9427") (:keywords "automation" "convenience") (:authors ("Michael Steger" . "mjsteger1@gmail.com")) (:maintainer "Michael Steger" . "mjsteger1@gmail.com") (:url . "https://github.com/mjsteger/watch-buffer"))]) -(warm-night-theme . [(20161101 1428) ((emacs (24))) "Emacs 24 theme with a dark background." single ((:commit . "020f084d23409b5035150508ba6e57c2509edd64") (:authors ("martin haesler")) (:maintainer "martin haesler"))]) -(wanderlust . [(20190406 1301) ((semi (1 14 7))) "Yet Another Message Interface on Emacsen" tar ((:commit . "6528a0032342ec7bf6a95dda9b60d67292eaadfc"))]) -(wandbox . [(20170603 1231) ((emacs (24)) (request (0 3 0)) (s (1 10 0))) "Wandbox client" tar ((:commit . "e002fe41f2cd9b4ce2b1dc80b83301176e9117f1") (:keywords "tools") (:authors ("KOBAYASHI Shigeru (kosh)" . "shigeru.kb@gmail.com")) (:maintainer "KOBAYASHI Shigeru (kosh)" . "shigeru.kb@gmail.com") (:url . "https://github.com/kosh04/emacs-wandbox"))]) -(wand . [(20190514 1056) ((dash (2 15 0)) (s (0 1 1))) "Magic wand for Emacs - Select and execute" tar ((:commit . "39ae16ad4f031c25c56b4bb82130d3815c0000f8") (:keywords "extensions" "tools") (:authors ("Ha-Duong Nguyen <cmpitgATgmail>")) (:maintainer "Ha-Duong Nguyen <cmpitgATgmail>") (:url . "https://github.com/cmpitg/wand"))]) -(walkclj . [(20180718 900) ((emacs (25)) (parseclj (0 1 0)) (treepy (0 1 0))) "Manipulate Clojure parse trees" single ((:commit . "2e54fa813b11d1a87c890cdf117f30165a193024") (:keywords "languages") (:authors ("Arne Brasseur")) (:maintainer "Arne Brasseur") (:url . "https://github.com/plexus/walkclj"))]) -(wakib-keys . [(20180818 1829) ((emacs (24 4))) "Minor Mode for Modern Keybindings" single ((:commit . "abf7e18bf85c09963537156a447f0d01ff8d6c1b") (:keywords "convenience" "keybindings" "keys") (:authors ("Abdulla Bubshait")) (:maintainer "Abdulla Bubshait") (:url . "https://github.com/darkstego/wakib-keys/"))]) -(wakatime-mode . [(20180920 702) nil "Automatic time tracking extension for WakaTime" single ((:commit . "2531cb58287770883ba534d20b3288955c4d6ef3") (:keywords "calendar" "comm") (:authors ("Gabor Torok" . "gabor@20y.hu")) (:maintainer "Alan Hamlett" . "alan@wakatime.com"))]) -(waher-theme . [(20141115 1230) ((emacs (24 1))) "Emacs 24 theme based on waher for st2 by dduckster" single ((:commit . "60d31519fcfd8e797723d47961b255ae2f2e2c0a") (:authors ("Jasonm23" . "jasonm23@gmail.com")) (:maintainer "Jasonm23" . "jasonm23@gmail.com") (:url . "https://github.com/jasonm23/emacs-waher-theme"))]) -(waf-mode . [(20170403 1940) nil "Waf integration for Emacs" single ((:commit . "20c75eabd1d54fbce8e0dbef785c9fb68577ee4f") (:authors ("Denys Valchuk" . "dvalchuk@gmail.com")) (:maintainer "Denys Valchuk" . "dvalchuk@gmail.com") (:url . "https://bitbucket.org/dvalchuk/waf-mode"))]) -(wacspace . [(20180311 2350) ((dash (1 2 0)) (cl-lib (0 2))) "The WACky WorkSPACE manager for emACS" tar ((:commit . "54d19aab6fd2bc5945b7ffc58104e695064927e2"))]) -(w3m . [(20190607 757) nil "an Emacs interface to w3m" tar ((:commit . "ade27b681b1b565b7bb3f02677d533f484e37668") (:keywords "w3m" "www" "hypermedia"))]) -(w32-browser . [(20170101 1954) nil "Run Windows application associated with a file." single ((:commit . "e5c60eafd8f8d3546a0fa295ad5af2414d36b4e6") (:keywords "mouse" "dired" "w32" "explorer") (:authors ("Emacs Wiki, Drew Adams")) (:maintainer nil . "Drew Adams (concat \"drew.adams\" \"@\" \"oracle\" \".com\")") (:url . "http://www.emacswiki.org/w32-browser.el"))]) -(vyper-mode . [(20180707 1935) ((emacs (24 3))) "Major mode for the Vyper programming language" single ((:commit . "323dfddfc38f0b11697e9ebaf04d1b53297e54e5") (:keywords "languages") (:authors ("Alex Stokes" . "r.alex.stokes@gmail.com")) (:maintainer "Alex Stokes" . "r.alex.stokes@gmail.com") (:url . "https://github.com/ralexstokes/vyper-mode"))]) -(vue-mode . [(20190415 231) ((mmm-mode (0 5 5)) (vue-html-mode (0 2)) (ssass-mode (0 2)) (edit-indirect (0 1 4))) "Major mode for vue component based on mmm-mode" single ((:commit . "031edd1f97db6e7d8d6c295c0e6d58dd128b9e71") (:keywords "languages") (:authors ("codefalling" . "code.falling@gmail.com")) (:maintainer "codefalling" . "code.falling@gmail.com"))]) -(vue-html-mode . [(20180428 2035) nil "Major mode for editing Vue.js templates" single ((:commit . "1514939804bad558584feeb6298b38d22eadf64e") (:keywords "languages" "vue" "template") (:authors ("Adam Niederer" . "adam.niederer@gmail.com")) (:maintainer "Adam Niederer" . "adam.niederer@gmail.com") (:url . "http://github.com/AdamNiederer/vue-html-mode"))]) -(vterm . [(20190502 1700) ((emacs (25 1))) "This package implements a terminal via libvterm" tar ((:commit . "db9679d77dda82299f7c3aab79a3f5b0967ddce3") (:keywords "terminals") (:authors ("Lukas Fürmetz" . "fuermetz@mailbox.org")) (:maintainer "Lukas Fürmetz" . "fuermetz@mailbox.org") (:url . "https://github.com/akermu/emacs-libvterm"))]) -(vscode-icon . [(20190610 17) ((emacs (25 1))) "Utility package to provide Vscode style icons" tar ((:commit . "14199fd1dbe0ca1da85f9917faee9fe078cb75ea") (:keywords "files" "tools") (:authors ("James Nguyen" . "james@jojojames.com")) (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/jojojames/vscode-icon-emacs"))]) -(volume . [(20150718 2009) nil "tweak your sound card volume from Emacs" single ((:commit . "ecc1550b3c8b501d37e0f0116b54b535d15f90f6") (:authors ("Daniel Brockman" . "daniel@brockman.se")) (:maintainer "Daniel Brockman" . "daniel@brockman.se") (:url . "http://www.brockman.se/software/volume-el/"))]) -(volatile-highlights . [(20160612 155) nil "Minor mode for visual feedback on some operations." single ((:commit . "9a20091f0ce7fc0a6b3e641a6a46d5f3ac4d8392") (:keywords "emulations" "convenience" "wp") (:authors ("K-talo Miyazaki <Keitaro dot Miyazaki at gmail dot com>")) (:maintainer "K-talo Miyazaki <Keitaro dot Miyazaki at gmail dot com>") (:url . "http://www.emacswiki.org/emacs/download/volatile-highlights.el"))]) -(voca-builder . [(20161101 1645) ((popup (0 5 2))) "Helps you build up your vocabulary" single ((:commit . "51573beec8cd8308477b0faf453aad93e17f57c5") (:keywords "english" "vocabulary") (:authors ("Yi Tang" . "yi.tang.uk@me.com")) (:maintainer "Yi Tang" . "yi.tang.uk@me.com") (:url . "https://github.com/yitang/voca-builder"))]) -(vmd-mode . [(20180223 1356) ((emacs (24 3))) "Fast Github-flavored Markdown preview using a vmd subprocess." single ((:commit . "24e38a20951dfad6e3e985c7cc6286c1e271da5f") (:keywords "markdown" "preview" "live" "vmd") (:authors ("Blake Miller" . "blak3mill3r@gmail.com")) (:maintainer "Blake Miller" . "blak3mill3r@gmail.com") (:url . "https://github.com/blak3mill3r/vmd-mode"))]) -(vlf . [(20180201 2254) nil "View Large Files" tar ((:commit . "31b292dc85a374fb343789e217015683bfbdf5f1") (:keywords "large files" "utilities") (:maintainer "Andrey Kotlarski" . "m00naticus@gmail.com") (:url . "https://github.com/m00natic/vlfi"))]) -(visual-regexp-steroids . [(20170222 253) ((visual-regexp (1 1))) "Extends visual-regexp to support other regexp engines" tar ((:commit . "a6420b25ec0fbba43bf57875827092e1196d8a9e") (:keywords "external" "foreign" "regexp" "replace" "python" "visual" "feedback") (:authors ("Marko Bencun" . "mbencun@gmail.com")) (:maintainer "Marko Bencun" . "mbencun@gmail.com") (:url . "https://github.com/benma/visual-regexp-steroids.el/"))]) -(visual-regexp . [(20190414 814) ((cl-lib (0 2))) "A regexp/replace command for Emacs with interactive visual feedback" single ((:commit . "3e3ed81a3cbadef1f1f4cb16f9112a58641d70ca") (:keywords "regexp" "replace" "visual" "feedback") (:authors ("Marko Bencun" . "mbencun@gmail.com")) (:maintainer "Marko Bencun" . "mbencun@gmail.com") (:url . "https://github.com/benma/visual-regexp.el/"))]) -(visual-fill-column . [(20190422 2154) ((emacs (24 3))) "fill-column for visual-line-mode" single ((:commit . "772d4b25ba19f57409cd03524be0f5bfdc2e8da1") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm"))]) -(visual-ascii-mode . [(20150129 1046) nil "Visualize ascii code (small integer) on buffer." single ((:commit . "99285a099a17472ddd9f1b4f74e9d092dd8c5947") (:keywords "presentation") (:authors ("Dewdrops" . "v_v_4474@126.com")) (:maintainer "Dewdrops" . "v_v_4474@126.com") (:url . "https://github.com/Dewdrops/visual-ascii-mode"))]) -(visible-mark . [(20150624 450) nil "Make marks visible." single ((:commit . "a584db9bc88953b23a9648b3e14ade90767207f8") (:keywords "marking" "color" "faces") (:authors ("Ian Kelling" . "ian@iankelling.org")) (:maintainer "Ian Kelling" . "ian@iankelling.org") (:url . "https://gitlab.com/iankelling/visible-mark"))]) -(virtualenvwrapper . [(20190223 1919) ((dash (1 5 0)) (s (1 6 1))) "a featureful virtualenv tool for Emacs" single ((:commit . "c3da41a3995c98dae2c751688655ea0cbe72493b") (:keywords "python" "virtualenv" "virtualenvwrapper") (:authors ("James J Porter" . "porterjamesj@gmail.com")) (:maintainer "James J Porter" . "porterjamesj@gmail.com") (:url . "http://github.com/porterjamesj/virtualenvwrapper.el"))]) -(virtualenv . [(20140220 2301) nil "Virtualenv for Python" single ((:commit . "276c0f4d6493b402dc4d22ecdf17b2b072e911b3") (:keywords "python" "virtualenv") (:authors ("Aaron Culich" . "aculich@gmail.com")) (:maintainer "Aaron Culich" . "aculich@gmail.com"))]) -(vimrc-mode . [(20181116 1919) nil "Major mode for vimrc files" single ((:commit . "13bc150a870d5d4a95f1111e4740e2b22813c30e") (:keywords "languages" "vim") (:url . "https://github.com/mcandre/vimrc-mode"))]) -(vimish-fold . [(20190101 700) ((emacs (24 4)) (cl-lib (0 5)) (f (0 18 0))) "Fold text like in Vim" single ((:commit . "6ddc79fec2833e45f77df2286ba2aee200049572") (:keywords "convenience") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/vimish-fold"))]) -(vim-region . [(20140329 1624) ((expand-region (20140127))) "Select region as vim" single ((:commit . "7c4a99ce3678fee40c83ab88e8ad075d2a935fdf") (:authors ("ongaeshi" . "ongaeshi0621@gmail.com")) (:maintainer "ongaeshi" . "ongaeshi0621@gmail.com") (:url . "https://github.com/ongaeshi/emacs-vim-region"))]) -(vim-empty-lines-mode . [(20150111 426) ((emacs (23))) "Vim-like empty line indicator at end of files." single ((:commit . "d4a5034ca8ea0c962ad6e92c86c0fa2a74d2964b") (:keywords "emulations") (:authors ("Jonne Mickelin" . "jonne@ljhms.com")) (:maintainer "Jonne Mickelin" . "jonne@ljhms.com") (:url . "https://github.com/jmickelin/vim-empty-lines-mode"))]) -(viking-mode . [(20160705 2027) nil "kill first, ask later" single ((:commit . "c76aa265d13ad91d6890d242e142d05e31f0340b") (:keywords "kill" "delete") (:authors ("T.v.Dein" . "tlinden@cpan.org")) (:maintainer "T.v.Dein" . "tlinden@cpan.org") (:url . "https://github.com/tlinden/viking-mode"))]) -(viewer . [(20170107 202) nil "View-mode extension" single ((:commit . "6c8db025bf4021428f7f2c3ef9d74fb13f5d267a") (:keywords "view" "extensions") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://github.com/rubikitch/viewer/"))]) -(vi-tilde-fringe . [(20141028 242) ((emacs (24))) "Displays tildes in the fringe on empty lines a la Vi." single ((:commit . "f1597a8d54535bb1d84b442577b2024e6f910308") (:keywords "emulation") (:authors ("Sylvain Benner" . "sylvain.benner@gmail.com")) (:maintainer "Sylvain Benner" . "sylvain.benner@gmail.com") (:url . "https://github.com/syl20bnr/vi-tilde-fringe"))]) -(vhdl-tools . [(20190330 1123) ((ggtags (0 8 13)) (emacs (26 1)) (helm (3 1)) (helm-rg (0 1))) "Utilities for navigating vhdl sources." single ((:commit . "054b75353905d867b4c5b53258bc3180ce48c767") (:keywords "languages" "convenience") (:authors ("Cayetano Santos")) (:maintainer "Cayetano Santos") (:url . "https://github.com/csantosb/vhdl-tools/wiki"))]) -(vhdl-capf . [(20160221 1734) nil "Completion at point function (capf) for vhdl-mode." single ((:commit . "290abe217050f33532bc9ccb04f894123402f414") (:keywords "convenience" "usability" "vhdl" "completion") (:authors ("sh-ow" . "sh-ow@users.noreply.github.com")) (:maintainer "sh-ow" . "sh-ow@users.noreply.github.com") (:url . "https://github.com/sh-ow/vhdl-capf"))]) -(vertigo . [(20180829 2230) ((dash (2 11 0))) "Jump across lines using the home row." single ((:commit . "6303d17270ea92290a6960890bca515274f1682b") (:keywords "vim" "vertigo") (:authors ("Fox Kiester" . "noct@posteo.net")) (:maintainer "Fox Kiester" . "noct@posteo.net") (:url . "https://github.com/noctuid/vertigo.el"))]) -(vertica-snippets . [(20190403 956) ((yasnippet (0 6 1))) "Yasnippets for Vertica" tar ((:commit . "b7a2e9660762a213fa001355e67ca671d9496339") (:keywords "convenience" "snippets") (:authors ("Andreas Gerler" . "baron@bundesbrandschatzamt.de")) (:maintainer "Andreas Gerler" . "baron@bundesbrandschatzamt.de") (:url . "https://github.com/baron42bba/vertica-snippets"))]) -(vertica . [(20131217 1511) ((sql (3 0))) "Vertica SQL mode extension" single ((:commit . "3c9647b425c5c13c30bf0cba483646af18196588") (:keywords "sql" "vertica") (:authors ("Roman Scherer" . "roman@burningswell.com")) (:maintainer "Roman Scherer" . "roman@burningswell.com"))]) -(verify-url . [(20160426 1228) ((cl-lib (0 5))) "find out invalid urls in the buffer or region" single ((:commit . "d6f3623cda8cd526a2d198619b137059cb1ba1ab") (:keywords "convenience" "usability" "url") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/verify-url"))]) -(veri-kompass . [(20181110 933) ((emacs (25)) (cl-lib (0 5)) (org (8 2 0))) "verilog codebase navigation facility" single ((:commit . "8638eea5a14f9834c001c943e7c22d8d90abc455") (:keywords "languages" "extensions" "verilog" "hardware" "rtl") (:maintainer nil . "andrea_corallo@yahoo.it") (:url . "https://gitlab.com/koral/veri-kompass"))]) -(vector-utils . [(20140508 2041) nil "Vector-manipulation utility functions" single ((:commit . "c38ca1c6a23b2b51a6ac36c2c64e50e21cbe9d21") (:keywords "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/vector-utils"))]) -(vdm-snippets . [(20190313 1122) ((emacs (24)) (yasnippet (0 13 0))) "YASnippets for VDM mode" tar ((:commit . "89e7db6ee1a89b8c1f7ce36ce6800c32b5c4ba2d") (:keywords "languages") (:authors ("Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com")) (:maintainer "Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com") (:url . "https://github.com/peterwvj/vdm-mode"))]) -(vdm-mode . [(20190328 1408) ((emacs (25))) "Major mode for the Vienna Development Method" tar ((:commit . "89e7db6ee1a89b8c1f7ce36ce6800c32b5c4ba2d") (:keywords "languages") (:authors ("Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com")) (:maintainer "Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com") (:url . "https://github.com/peterwvj/vdm-mode"))]) -(vdm-comint . [(20181127 2023) ((emacs (25)) (vdm-mode (0 0 4))) "REPL support for vdm-mode" single ((:commit . "89e7db6ee1a89b8c1f7ce36ce6800c32b5c4ba2d") (:keywords "languages") (:authors ("Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com")) (:maintainer "Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com") (:url . "https://github.com/peterwvj/vdm-mode"))]) -(vdirel . [(20190430 624) ((emacs (24 4)) (org-vcard (0 1 0)) (helm (1 7 0)) (seq (1 11))) "Manipulate vdir (i.e., vCard) repositories" single ((:commit . "255496e6808e7a3da1b0afef873dc4920c2b117f") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://github.com/DamienCassou/vdirel"))]) -(vdiff-magit . [(20190304 1707) ((emacs (24 4)) (vdiff (0 3)) (magit (2 10 0)) (transient (0 1 0))) "magit integration for vdiff" single ((:commit . "b100d126c69e5c26a61ae05aa1778bcc4302b597") (:keywords "diff") (:authors ("Justin Burkett" . "justin@burkett.cc")) (:maintainer "Justin Burkett" . "justin@burkett.cc") (:url . "https://github.com/justbur/emacs-vdiff-magit"))]) -(vdiff . [(20190227 303) ((emacs (24 4)) (hydra (0 13 0))) "A diff tool similar to vimdiff" single ((:commit . "09e15fc932bfd2febe1d4a65780a532394562b07") (:keywords "diff") (:authors ("Justin Burkett" . "justin@burkett.cc")) (:maintainer "Justin Burkett" . "justin@burkett.cc") (:url . "https://github.com/justbur/emacs-vdiff"))]) -(vcomp . [(20190128 20) nil "compare version strings" single ((:commit . "f839b3b3257a564b19d7f9557dc8bcbbe0b95842") (:keywords "versions") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/vcomp"))]) -(vc-osc . [(20190402 2349) nil "non-resident support for osc version-control" single ((:commit . "bf5a515ed85f7d7cdfe66ed5bf4ef7554f8561e5") (:authors ("Adam Spiers (see vc.el for full credits)")) (:maintainer "Adam Spiers" . "aspiers@suse.com"))]) -(vc-msg . [(20180605 58) ((emacs (24 3)) (popup (0 5 0))) "Show commit information of current line" tar ((:commit . "ffd8db482cbd9fb63dace0e5ddcc7207a9c99f5e") (:keywords "git" "vc" "svn" "hg" "messenger") (:authors ("Chen Bin <chenbin DOT sh AT gmail DOT com>")) (:maintainer "Chen Bin <chenbin DOT sh AT gmail DOT com>") (:url . "http://github.com/redguardtoo/vc-msg"))]) -(vc-hgcmd . [(20190610 2005) ((emacs (25 1))) "VC mercurial backend that uses hg command server" single ((:commit . "5edf2b9ebbe68a05e1d9ad119e239154577953bf") (:keywords "vc") (:authors ("Andrii Kolomoiets" . "andreyk.mad@gmail.com")) (:maintainer "Andrii Kolomoiets" . "andreyk.mad@gmail.com") (:url . "https://github.com/muffinmad/emacs-vc-hgcmd"))]) -(vc-fossil . [(20180215 1635) nil "VC backend for the fossil sofware configuraiton management system" tar ((:commit . "7c5af95181213db38f81f5f9586f3334301a3ea0") (:authors ("Venkat Iyer" . "venkat@comit.com")) (:maintainer "Venkat Iyer" . "venkat@comit.com"))]) -(vc-darcs . [(20170905 320) ((emacs (24))) "a VC backend for darcs" single ((:commit . "390fb1ebdda1ffac45b9be02626dde3b6d95ac11") (:keywords "vc") (:authors ("Jorgen Schaefer" . "forcer@forcix.cx") ("Juliusz Chroboczek" . "jch@pps.univ-paris-diderot.fr")) (:maintainer "Libor ÄŒapák" . "capak@inputwish.com"))]) -(vc-check-status . [(20170107 1334) nil "Warn you when quitting emacs and leaving repo dirty." tar ((:commit . "37734beb16bfd8633ea328059bf9a47eed826d5c") (:keywords "vc" "convenience") (:authors ("Sylvain Rousseau <thisirs at gmail dot com>")) (:maintainer "Sylvain Rousseau <thisirs at gmail dot com>") (:url . "https://github.com/thisirs/vc-check-status"))]) -(vc-auto-commit . [(20170107 1333) nil "Auto-committing feature for your repository" tar ((:commit . "446f664f4ec835532f4f18ba18b5fb731f6030aa") (:keywords "vc" "convenience") (:authors ("Sylvain Rousseau <thisirs at gmail dot com>")) (:maintainer "Sylvain Rousseau <thisirs at gmail dot com>") (:url . "http://github.com/thisirs/vc-auto-commit.git"))]) -(vbasense . [(20140221 2353) ((auto-complete (1 4 0)) (log4e (0 2 0)) (yaxception (0 1))) "provide a environment like Visual Basic Editor." tar ((:commit . "8c61a492d7c15218ae1a96e2aebfe6f78bfff6db") (:keywords "vba" "completion") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/emacs-vbasense"))]) -(vala-snippets . [(20150429 352) ((yasnippet (0 8 0))) "Yasnippets for Vala" tar ((:commit . "671439501060449bd100b9fffd524a86064fbfbb") (:authors ("Daniel Gopar")) (:maintainer "Daniel Gopar") (:url . "https://github.com/gopar/vala-snippets"))]) -(vala-mode . [(20150324 2225) nil "Vala mode derived mode" single ((:commit . "fb2871a4492d75d03d72e60474919ab89adb267b") (:keywords "vala" "languages" "oop") (:authors ("2005 Dylan R. E. Moonfire") (" 2008 Étienne BERSAC")) (:maintainer "Étienne BERSAC" . "bersace03@laposte.net"))]) -(vagrant-tramp . [(20190125 1859) ((dash (2 12 0))) "Vagrant method for TRAMP" tar ((:commit . "77256deca35bb797cbba499837f3658d1a17d2e3") (:keywords "vagrant") (:authors ("Doug MacEachern" . "dougm@vmware.com") ("Ryan Prior " . "ryanprior@gmail.com")) (:maintainer "Doug MacEachern" . "dougm@vmware.com") (:url . "https://github.com/dougm/vagrant-tramp"))]) -(vagrant . [(20170301 2206) nil "Manage a vagrant box from emacs" single ((:commit . "636ce2f9af32ea199170335a9cf1201b64873440") (:keywords "vagrant" "chef") (:authors ("Robert Crim" . "rob@servermilk.com")) (:maintainer "Robert Crim" . "rob@servermilk.com") (:url . "https://github.com/ottbot/vagrant.el"))]) -(v2ex-mode . [(20160720 345) ((cl-lib (0 5)) (request (0 2)) (let-alist (1 0 3))) "Major mode for visit http://v2ex.com/ site." single ((:commit . "b7d19bb594b43ea3824a6f215dd1e5d1d4c0e8ad") (:keywords "v2ex" "v2ex.com") (:authors ("Aborn Jiang" . "aborn.jiang@gmail.com")) (:maintainer "Aborn Jiang" . "aborn.jiang@gmail.com") (:url . "https://github.com/aborn/v2ex-mode"))]) -(uuidgen . [(20140918 2301) nil "Provides various UUID generating functions" single ((:commit . "7eb96415484c3854a3f383d1a3e10b87ae674e22") (:keywords "extensions" "lisp" "tools") (:authors ("Kan-Ru Chen" . "koster@debian.org")) (:maintainer "Kan-Ru Chen" . "koster@debian.org"))]) -(uuid . [(20120910 851) nil "UUID's for EmacsLisp" single ((:commit . "1519bfeb0e31602b840bc8dd35d7c7e732c159fe") (:keywords "lisp") (:authors ("James Mastros")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk"))]) -(utop . [(20181010 2155) ((emacs (24))) "Universal toplevel for OCaml" single ((:commit . "a589d5caee3bc9c939bfb121c85fd6f7c8a081a7") (:keywords "ocaml" "languages") (:authors ("Jeremie Dimino" . "jeremie@dimino.org")) (:maintainer "Jeremie Dimino" . "jeremie@dimino.org") (:url . "https://github.com/diml/utop"))]) -(usql . [(20180305 2323) ((emacs (25 1))) "U-SQL support for sql-mode" single ((:commit . "bfaf428b366a9a185eef84f0d645a98dc918fe3d") (:keywords "languages") (:authors ("Nicholas Barnwell" . "nb@ul.io")) (:maintainer "Nicholas Barnwell" . "nb@ul.io") (:url . "https://github.com/nickbarwell/usql.el"))]) -(use-ttf . [(20190517 502) ((emacs (24 4)) (s (1 12 0))) "Keep font consistency across different OSs." single ((:commit . "3ee594ac25f01c9c2a92e5e3f64ee078f745b861") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:url . "https://github.com/jcs090218/use-ttf"))]) -(use-package-hydra . [(20181228 745) ((emacs (24 3)) (use-package (2 4))) "Adds :hydra keyword to use-package macro" single ((:commit . "8cd55a1128fbdf6327bb38a199d206225896d146") (:keywords "convenience" "extensions" "tools") (:authors ("Toon Claes" . "toon@iotcl.com")) (:maintainer "Toon Claes" . "toon@iotcl.com") (:url . "https://gitlab.com/to1ne/use-package-hydra"))]) -(use-package-ensure-system-package . [(20180913 1501) ((use-package (2 1)) (system-packages (1 0 4))) "auto install system packages" single ((:commit . "4aa14a4fcd5ca52b3f1bfcf5ab294173f7bbe390") (:keywords "convenience" "tools" "extensions") (:authors ("Justin Talbott" . "justin@waymondo.com")) (:maintainer "Justin Talbott" . "justin@waymondo.com") (:url . "https://github.com/waymondo/use-package-ensure-system-package"))]) -(use-package-el-get . [(20180131 505) ((use-package (1 0))) "el-get support for use package" single ((:commit . "cba87c4e9a3a66b7c10962e3aefdf11c83d737bc") (:keywords "dotemacs" "startup" "speed" "config" "package" "tools") (:authors ("Edward Knyshov" . "edvorg@gmail.com")) (:maintainer "Edward Knyshov" . "edvorg@gmail.com") (:url . "https://github.com/edvorg/use-package-el-get"))]) -(use-package-chords . [(20181024 2322) ((use-package (2 1)) (bind-key (1 0)) (bind-chord (0 2)) (key-chord (0 6))) "key-chord keyword for use-package" single ((:commit . "4aa14a4fcd5ca52b3f1bfcf5ab294173f7bbe390") (:keywords "convenience" "tools" "extensions") (:authors ("Justin Talbott" . "justin@waymondo.com")) (:maintainer "Justin Talbott" . "justin@waymondo.com") (:url . "https://github.com/waymondo/use-package-chords"))]) -(use-package . [(20190529 2040) ((emacs (24 3)) (bind-key (2 4))) "A configuration macro for simplifying your .emacs" tar ((:commit . "4aa14a4fcd5ca52b3f1bfcf5ab294173f7bbe390") (:keywords "dotemacs" "startup" "speed" "config" "package") (:authors ("John Wiegley" . "johnw@newartisans.com")) (:maintainer "John Wiegley" . "johnw@newartisans.com") (:url . "https://github.com/jwiegley/use-package"))]) -(usage-memo . [(20170926 37) nil "integration of Emacs help system and memo" single ((:commit . "88e15a9942a3e0a6e36e9c3e51e3edb746067b1a") (:keywords "convenience" "languages" "lisp" "help" "tools" "docs") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/usage-memo.el"))]) -(urscript-mode . [(20190219 1604) ((emacs (24 4))) "major mode for editing URScript." single ((:commit . "b341f96b129ead8fb74d680cb4f546985bf110a9") (:keywords "languages") (:authors ("Guido Schmidt" . "git@guidoschmidt.cc")) (:maintainer "Guido Schmidt" . "git@guidoschmidt.cc") (:url . "https://github.com/guidoschmidt/urscript-mode"))]) -(urlenc . [(20140116 1456) nil "URL encoding/decoding utility for Emacs." single ((:commit . "835a6dcb783bbe84714bae87a3464aa0b128bfac") (:keywords "url") (:authors ("Taiki SUGAWARA" . "buzz.taiki@gmail.com")) (:maintainer "Taiki SUGAWARA" . "buzz.taiki@gmail.com") (:url . "https://github.com/buzztaiki/urlenc-el"))]) -(url-shortener . [(20170805 242) nil "shorten long url and expand tinyurl" single ((:commit . "06db8270213b9e352d6c335b0663059a1353d05e") (:authors ("Yu Yang" . "yy2012cn@NOSPAM.gmail.com")) (:maintainer "Yu Yang" . "yy2012cn@NOSPAM.gmail.com") (:url . "https://github.com/yuyang0/url-shortener"))]) -(uptimes . [(20190328 856) ((cl-lib (0 5)) (emacs (24))) "Track and display emacs session uptimes." single ((:commit . "1f726d31b502d764a3e3191aaf92ed4855105131") (:keywords "processes" "uptime") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/uptimes.el"))]) -(upbo . [(20180422 822) ((dash (2 12 0)) (emacs (24 4))) "Karma Test Runner Integration" single ((:commit . "c37728e11dedd29d849ba9523465b0cdaccea9d5") (:keywords "javascript" "js" "test" "karma") (:authors ("Sungho Kim(shiren)")) (:maintainer "Sungho Kim(shiren)") (:url . "http://github.com/shiren"))]) -(untitled-new-buffer . [(20161212 1508) ((emacs (24 4)) (magic-filetype (0 2 0))) "Open untitled new buffer like other text editors." single ((:commit . "4eabc6937b0e83062ffce9de0d42110224063a6c") (:keywords "files" "convenience") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/untitled-new-buffer.el"))]) -(unkillable-scratch . [(20190309 17) ((emacs (24))) "Disallow the \\*scratch\\* buffer from being killed" single ((:commit . "b24c2a760529833f230c14cb02ff6e7ec92288ab") (:keywords "convenience") (:authors ("Eric Crosson" . "eric.s.crosson@utexas.com")) (:maintainer "Eric Crosson" . "eric.s.crosson@utexas.com") (:url . "https://github.com/EricCrosson/unkillable-scratch"))]) -(universal-emotions-emoticons . [(20180729 1941) ((emacs (24 4))) "Emoticons For The Six Universal Expressions" single ((:commit . "9cedd09ee65cb9fa71f27b0ab46a8353bdc00902") (:keywords "convenience" "docs" "languages") (:authors ("Grant Rettke" . "gcr@wisdomandwonder.com")) (:maintainer nil . "<gcr@wisdomandwonder.com>") (:url . "https://github.com/grettke/universal-emotions-emoticons"))]) -(unison-mode . [(20160513 1501) nil "Syntax highlighting for unison file synchronization program" single ((:commit . "0bd6a65c0d12f87fcf7bdff15fe54444959b93bf") (:keywords "symchronization" "unison") (:authors ("Karl Fogelmark" . "karlfogel@gmail.com")) (:maintainer "Karl Fogelmark" . "karlfogel@gmail.com") (:url . "https://github.com/impaktor/unison-mode"))]) -(unison . [(20160704 740) ((emacs (24 1))) "sync with Unison" single ((:commit . "a78a04c0d1398d00f75a1bd4799622a65bcb0f28") (:keywords "sync") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org") (:url . "http://github.com/unhammer/unison.el"))]) -(unipoint . [(20140113 2224) nil "a simple way to insert unicode characters by TeX name" single ((:commit . "5da04aebac35a5c9e1d8704f2231808d42f4b36a") (:authors ("Andrew Gwozdziewycz" . "git@apgwoz.com")) (:maintainer "Andrew Gwozdziewycz" . "git@apgwoz.com") (:url . "https://github.com/apgwoz/unipoint"))]) -(unify-opening . [(20171122 2012) ((emacs (24 4))) "Unify the mechanism to open files" single ((:commit . "502469ddba6d8d52159f53976265f7d956b6b17c") (:authors ("Damien Cassou" . "damien.cassou@gmail.com")) (:maintainer "Damien Cassou" . "damien.cassou@gmail.com") (:url . "https://github.com/DamienCassou/unify-opening"))]) -(unidecode . [(20180312 1926) nil "Transliterate Unicode to ASCII" tar ((:commit . "5502ada9287b4012eabb879f12f5b0a9df52c5b7") (:authors ("sindikat <sindikat at mail36 dot net>")) (:maintainer "John Mastro" . "john.b.mastro@gmail.com"))]) -(unicode-whitespace . [(20140508 2041) ((ucs-utils (0 7 6)) (list-utils (0 4 2)) (persistent-soft (0 8 8)) (pcache (0 2 3))) "teach whitespace-mode about fancy characters" single ((:commit . "a18c6b38d78b94f2eb1dcc4cb4fa91b6a17efabe") (:keywords "faces" "wp" "interface") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/unicode-whitespace"))]) -(unicode-troll-stopper . [(20190209 411) nil "Minor mode for Highlighting Unicode homoglyphs" single ((:commit . "5e8be35a7bf6382384a701663f7438ee27e4b67c") (:keywords "unicode") (:authors ("Cam Saül" . "cammsaul@gmail.com")) (:maintainer "Cam Saül" . "cammsaul@gmail.com") (:url . "https://github.com/camsaul/emacs-unicode-troll-stopper"))]) -(unicode-progress-reporter . [(20140508 2041) ((emacs (24 1 0)) (ucs-utils (0 7 6)) (list-utils (0 4 2)) (persistent-soft (0 8 8)) (pcache (0 2 3))) "Progress-reporter with fancy characters" single ((:commit . "5e66724fd7d15743213b082474d798117b194494") (:keywords "interface") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/unicode-progress-reporter"))]) -(unicode-math-input . [(20181230 1223) ((emacs (25))) "Insert Unicode math symbols using TeX notation" single ((:commit . "ed87837d2303fb07ec81508930bc3b2a4d857fcd") (:authors ("Augusto Stoffel")) (:maintainer "Augusto Stoffel") (:url . "https://github.com/astoff/unicode-math-input.el"))]) -(unicode-input . [(20141219 720) nil "Support for unicode character input" single ((:commit . "e76ccb549e6a2a66c373da927eb65d69353e07db") (:keywords "unicode" "input") (:authors ("m00nlight" . "dot_wangyushi@yeah.net")) (:maintainer "m00nlight" . "dot_wangyushi@yeah.net"))]) -(unicode-fonts . [(20181001 1509) ((font-utils (0 7 8)) (ucs-utils (0 8 2)) (list-utils (0 4 2)) (persistent-soft (0 8 10)) (pcache (0 3 1))) "Configure Unicode fonts" single ((:commit . "7b88ae84e589f6c8b9386b2fb5a02ff4ccb91169") (:keywords "i18n" "faces" "frames" "wp" "interface") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/unicode-fonts"))]) -(unicode-escape . [(20160614 1234) ((emacs (24)) (names (20151201 0)) (dash (2 12 1))) "Escape/Unescape unicode notations" single ((:commit . "fc69ec780d9e54c364a9252bd0cf1d2507f3fab7") (:keywords "i18n" "unicode") (:authors ("KOBAYASHI Shigeru (kosh)" . "shigeru.kb@gmail.com")) (:maintainer "KOBAYASHI Shigeru (kosh)" . "shigeru.kb@gmail.com") (:url . "https://github.com/kosh04/unicode-escape.el"))]) -(unicode-enbox . [(20140508 2041) ((string-utils (0 3 2)) (ucs-utils (0 7 6)) (list-utils (0 4 2)) (persistent-soft (0 8 8)) (pcache (0 2 3))) "Surround a string with box-drawing characters" single ((:commit . "77074fac1994a4236f111d6a1d0cf79ea3fca151") (:keywords "extensions" "interface") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/unicode-enbox"))]) -(unicode-emoticons . [(20150204 1108) nil "Shortcuts for common unicode emoticons" single ((:commit . "fb18631f342b0243cf77cf59ed2067c47aae5233") (:keywords "games" "entertainment" "comms") (:authors ("Gunther Hagleitner")) (:maintainer "Gunther Hagleitner") (:url . "https://github.com/hagleitn/unicode-emoticons"))]) -(unfill . [(20170723 146) nil "Unfill paragraphs or regions, and toggle between filled & unfilled" single ((:commit . "df0c4dee19a3874b11c7c7f04e8a2fba629fda9b") (:keywords "utilities") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/unfill"))]) -(undohist . [(20150315 1242) ((cl-lib (1 0))) "Persistent undo history for GNU Emacs" single ((:commit . "d2239a5f736724ceb9e3b6bcaa86f4064805cda0") (:keywords "convenience") (:authors ("MATSUYAMA Tomohiro" . "m2ym.pub@gmail.com")) (:maintainer "MATSUYAMA Tomohiro" . "m2ym.pub@gmail.com"))]) -(undo-propose . [(20190409 636) ((emacs (24 3))) "Simple and safe undo navigation" single ((:commit . "5f1fa99a04369a959aad01b476fe4f34229f28cd") (:keywords "convenience" "files" "undo" "redo" "history") (:authors ("Jack Kamm")) (:maintainer "Jack Kamm") (:url . "https://github.com/jackkamm/undo-propose.el"))]) -(underwater-theme . [(20131118 2) nil "A gentle, deep blue color theme" single ((:commit . "4eb9ef014f580adc135d91d1cd68d37a310640b6") (:keywords "faces") (:authors ("Jon-Michael Deldin" . "dev@jmdeldin.com")) (:maintainer "Jon-Michael Deldin" . "dev@jmdeldin.com"))]) -(underline-with-char . [(20170814 923) ((emacs (24))) "Underline with a char" single ((:commit . "6daeba77e17dc11558ca3ccb0495524f5104d581") (:keywords "convenience") (:maintainer nil . "marcowahlsoft@gmail.com"))]) -(undercover . [(20180403 1452) ((emacs (24)) (dash (2 0 0)) (shut-up (0 3 2))) "Test coverage library for Emacs Lisp" single ((:commit . "3fc54ef92f0b4b7d26d962d6ed29a81d526a3a66") (:keywords "lisp" "tests" "coverage" "tools") (:authors ("Sviridov Alexander" . "sviridov.vmi@gmail.com")) (:maintainer "Sviridov Alexander" . "sviridov.vmi@gmail.com") (:url . "https://github.com/sviridov/undercover.el"))]) -(uncrustify-mode . [(20130707 1359) nil "Minor mode to automatically uncrustify." single ((:commit . "73893d000361e95784911e5ec268ad0ab2a1473c") (:keywords "uncrustify") (:authors ("Tabito Ohtani" . "koko1000ban@gmail.com")) (:maintainer "Tabito Ohtani" . "koko1000ban@gmail.com"))]) -(ukrainian-holidays . [(20130720 1349) nil "Ukrainian holidays for Emacs calendar." single ((:commit . "e52b0c92843e9f4d0415a7ba3b8559785497d23d") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/ukrainian-holidays"))]) -(ujelly-theme . [(20180214 1624) nil "Ujelly theme for GNU Emacs 24 (deftheme)" single ((:commit . "bf724ce7806a738d2043544061e5f9bbfc56e674") (:authors ("Mark Tran" . "mark.tran@gmail.com")) (:maintainer "Mark Tran" . "mark.tran@gmail.com") (:url . "http://github.com/marktran/color-theme-ujelly"))]) -(uimage . [(20160901 1221) nil "An iimage like mode with the ability to display url images" single ((:commit . "9893d09160ef7e8c0ecdcd74fca99ffeb5f9d70d") (:keywords "lisp" "url" "image") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com"))]) -(ucs-utils . [(20150826 1414) ((persistent-soft (0 8 8)) (pcache (0 2 3)) (list-utils (0 4 2))) "Utilities for Unicode characters" tar ((:commit . "cbfd42f822bf5717934fa2d92060e6e24a813433") (:keywords "i18n" "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/ucs-utils"))]) -(ubuntu-theme . [(20150805 1506) nil "A theme inspired by the default terminal colors in Ubuntu" single ((:commit . "88b0eefc75d4cbcde103057e1c5968d4c3052f69") (:authors ("Francesc Rocher" . "francesc.rocher@gmail.com")) (:maintainer "Francesc Rocher" . "francesc.rocher@gmail.com") (:url . "http://github.com/rocher/ubuntu-theme"))]) -(typoscript-mode . [(20170126 912) ((emacs (24 4)) (use-package (0))) "mode for TypoScript files" single ((:commit . "44e7567e921573c4f33c537b827f71fb1f565c32") (:keywords "typo3" "typoscript") (:authors ("Johannes Goslar")) (:maintainer "Johannes Goslar") (:url . "https://github.com/ksjogo/typoscript-mode"))]) -(typo . [(20171209 1023) nil "Minor mode for typographic editing" single ((:commit . "9dad93b6f367f02f52c8d9bf15d446d922cec294") (:keywords "convenience" "wp") (:authors ("Jorgen Schaefer" . "forcer@forcix.cx")) (:maintainer "Jorgen Schaefer" . "forcer@forcix.cx") (:url . "https://github.com/jorgenschaefer/typoel"))]) -(typit . [(20190101 702) ((emacs (24 4)) (f (0 18)) (mmt (0 1 1))) "Typing game similar to tests on 10 fast fingers" tar ((:commit . "50a34a34892d262fb3447c4ae7a5e952094557f0") (:keywords "games") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/typit"))]) -(typing-game . [(20160426 1220) nil "a simple typing game" single ((:commit . "616435a5270274f4c7b698697674dbb2039049a4") (:keywords "lisp" "game") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com"))]) -(typing . [(20180830 2203) nil "The Typing Of Emacs" single ((:commit . "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa") (:keywords "games") (:authors ("Alex Schroeder" . "alex@gnu.org")) (:maintainer "Alex Schroeder" . "alex@gnu.org") (:url . "http://www.emacswiki.org/emacs/TypingOfEmacs"))]) -(typescript-mode . [(20190611 1030) ((emacs (24 3))) "Major mode for editing typescript" tar ((:commit . "c0f11efdfd693aa55a192c8e4a26fc6fcd2c9f90") (:keywords "typescript" "languages") (:url . "http://github.com/ananthakumaran/typescript.el"))]) -(twittering-mode . [(20181121 1402) nil "Major mode for Twitter" single ((:commit . "114891e8fdb4f06b1326a6cf795e49c205cf9e29") (:keywords "twitter" "web") (:authors ("Tadashi MATSUO" . "tad@mymail.twin.ne.jp") ("Y. Hayamizu" . "y.hayamizu@gmail.com") ("Tsuyoshi CHO" . "Tsuyoshi.CHO+develop@Gmail.com") ("Alberto Garcia" . "agarcia@igalia.com") ("Xavier Maillard" . "xavier@maillard.im")) (:maintainer "Tadashi MATSUO" . "tad@mymail.twin.ne.jp") (:url . "http://twmode.sf.net/"))]) -(twilight-theme . [(20120412 1303) nil "Twilight theme for GNU Emacs 24 (deftheme)" single ((:commit . "77c4741cb3dcf16e53d06d6c2ffdc660c40afb5b") (:authors ("Nick Parker" . "nickp@developernotes.com")) (:maintainer "Nick Parker" . "nickp@developernotes.com"))]) -(twilight-bright-theme . [(20130605 843) nil "A Emacs 24 faces port of the TextMate theme" single ((:commit . "322157cb2f3bf7920ecd209dafc31bc1c7959f49") (:keywords "themes") (:authors ("Jim Myhrberg" . "contact@jimeh.me")) (:maintainer "Jim Myhrberg" . "contact@jimeh.me") (:url . "https://github.com/jimeh/twilight-bright-theme.el"))]) -(twilight-anti-bright-theme . [(20160622 848) nil "A soothing Emacs 24 light-on-dark theme" single ((:commit . "523b95fcdbf4a6a6483af314ad05354a3d80f23f") (:keywords "themes") (:authors ("Jim Myhrberg" . "contact@jimeh.me")) (:maintainer "Jim Myhrberg" . "contact@jimeh.me") (:url . "https://github.com/jimeh/twilight-anti-bright-theme.el"))]) -(twig-mode . [(20130220 1850) nil "A major mode for twig" single ((:commit . "2849f273a4855d3314a9c0cc84134f5b28ad5ea6") (:authors ("Bojan Matic aka moljac024")) (:maintainer "Bojan Matic aka moljac024"))]) -(turnip . [(20150309 629) ((dash (2 6 0)) (s (1 9 0))) "Interacting with tmux from Emacs" single ((:commit . "2fd32562fc6fc1cda6d91aa939cfb29f9b16e9de") (:keywords "terminals" "tools") (:authors ("Johann Klähn" . "kljohann@gmail.com")) (:maintainer "Johann Klähn" . "kljohann@gmail.com"))]) -(turkish . [(20170910 1511) nil "Convert to Turkish characters on-the-fly" single ((:commit . "9831a316c176bb21a1b91226323ea4133163e00c") (:keywords "turkish" "languages" "automatic" "conversion") (:authors ("Deniz Yüret")) (:maintainer "Emre Sevinç" . "emre.sevinc@gmail.com") (:url . "http://www.denizyuret.com/2006/11/emacs-turkish-mode.html"))]) -(turing-machine . [(20180222 438) ((emacs (24 4))) "Single-tape Turing machine simulator" single ((:commit . "fa60b76a5bac1f54b7a1b3dc55aae7602c7e385b") (:keywords "turing" "machine" "simulation") (:authors ("Diego A. Mundo" . "diegoamundo@gmail.com")) (:maintainer "Diego A. Mundo" . "diegoamundo@gmail.com") (:url . "http://github.com/therockmandolinist/turing-machine"))]) -(tup-mode . [(20140410 1614) nil "Major mode for editing files for Tup" single ((:commit . "bcc100c6485f1c81fdcd1215dfc6c41a81c215c8") (:authors ("Eric James Michael Ritz" . "lobbyjones@gmail.com")) (:maintainer "Eric James Michael Ritz" . "lobbyjones@gmail.com") (:url . "https://github.com/ejmr/tup-mode"))]) -(tumblesocks . [(20140215 2047) ((htmlize (1 39)) (oauth (1 0 3)) (markdown-mode (1 8 1))) "An Emacs tumblr client." tar ((:commit . "85a6cdc2db3390593fd886c474959b675460b310"))]) -(tumble . [(20160112 729) ((http-post-simple (0)) (cl-lib (0 5))) "an Tumblr mode for Emacs" single ((:commit . "e8fd7643cccf2b6ea4170f0c5f1f87d007e7fa00") (:keywords "tumblr") (:authors ("Federico Builes" . "federico.builes@gmail.com")) (:maintainer "Federico Builes" . "federico.builes@gmail.com"))]) -(tuareg . [(20190617 2112) ((caml (3 12 0 1)) (emacs (24 4))) "OCaml mode for Emacs." tar ((:commit . "c81413b5dc242483b5de92bf47eb07612748d107") (:keywords "ocaml" "languages") (:authors ("Albert Cohen" . "Albert.Cohen@inria.fr") ("Sam Steingold" . "sds@gnu.org") ("Christophe Troestler" . "Christophe.Troestler@umons.ac.be") ("Till Varoquaux" . "till@pps.jussieu.fr") ("Sean McLaughlin" . "seanmcl@gmail.com") ("Stefan Monnier" . "monnier@iro.umontreal.ca")) (:maintainer "Albert Cohen" . "Albert.Cohen@inria.fr") (:url . "https://github.com/ocaml/tuareg"))]) -(ttl-mode . [(20160505 832) nil "mode for Turtle (and Notation 3)" single nil]) -(tt-mode . [(20130804 1110) nil "Emacs major mode for editing Template Toolkit files." single ((:commit . "85ed3832e7eef391f7879d9990d59c7a3493c15e") (:authors ("Dave Cross" . "dave@dave.org.uk")) (:maintainer "Dave Cross" . "dave@dave.org.uk"))]) -(tss . [(20150913 1408) ((auto-complete (1 4 0)) (json-mode (1 1 0)) (log4e (0 2 0)) (yaxception (0 1))) "provide a interface for auto-complete.el/flymake.el on typescript-mode." tar ((:commit . "81ac6351a2ae258fd0ebf916dae9bd5a179fefd0") (:keywords "typescript" "completion") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/emacs-tss"))]) -(ts-comint . [(20181219 719) nil "Run a Typescript interpreter in an inferior process window." single ((:commit . "786b88fffc553e122868a1c4883f14136a040df6") (:keywords "typescript" "node" "inferior-mode" "convenience") (:authors ("Paul Huff" . "paul.huff@gmail.com")) (:maintainer "Paul Huff" . "paul.huff@gmail.com") (:url . "https://github.com/josteink/ts-comint"))]) -(try . [(20181204 236) ((emacs (24))) "Try out Emacs packages." single ((:commit . "8831ded1784df43a2bd56c25ad3d0650cdb9df1d") (:keywords "packages") (:authors ("Lars Tveito" . "larstvei@ifi.uio.no")) (:maintainer "Lars Tveito" . "larstvei@ifi.uio.no") (:url . "http://github.com/larstvei/try"))]) -(truthy . [(20140508 2041) ((list-utils (0 4 2))) "Test the content of a value" single ((:commit . "8ed8d07772aa8457554547eb17e264b5df2b4a69") (:keywords "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/truthy"))]) -(trr . [(20170221 842) nil "a type-writing training program on GNU Emacs." tar ((:commit . "83660d8343ef3367837354dc684dfdde2f95826a") (:keywords "games" "faces") (:authors ("YAMAMOTO Hirotaka" . "ymmt@is.s.u-tokyo.ac.jp") ("KATO Kenji" . "kato@suri.co.jp") (" *Original Author") ("INAMURA You" . "inamura@icot.or.jp") (" *Original Author")) (:maintainer "YAMAMOTO Hirotaka" . "ymmt@is.s.u-tokyo.ac.jp"))]) -(trinary . [(20180904 2313) ((emacs (24))) "Trinary logic." single ((:commit . "886232c6d7e92a8e9fe573eef46754ebe321f90d") (:keywords "languages") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/trinary-logic"))]) -(trident-mode . [(20190410 2036) ((emacs (24)) (slime (20130526)) (skewer-mode (1 5 0)) (dash (1 0 3))) "Live Parenscript interaction" single ((:commit . "109a1bc10bd0c4b47679a6ca5c4cd27c7c8d4ccb") (:keywords "languages" "lisp" "processes" "tools") (:authors ("John Mastro" . "john.b.mastro@gmail.com")) (:maintainer "John Mastro" . "john.b.mastro@gmail.com") (:url . "https://github.com/johnmastro/trident-mode.el"))]) -(treepy . [(20180724 656) ((emacs (25 1))) "Generic tree traversal tools" single ((:commit . "b40e6b09eb9be45da67b8c9e4990a5a0d7a2a09d") (:keywords "lisp" "maint" "tools") (:authors ("Daniel Barreto" . "daniel.barreto.n@gmail.com")) (:maintainer "Daniel Barreto" . "daniel.barreto.n@gmail.com") (:url . "https://github.com/volrath/treepy.el"))]) -(treemacs-projectile . [(20190416 1530) ((projectile (0 14 0)) (treemacs (0 0))) "Projectile integration for treemacs" single ((:commit . "0c54cb7a001fc573a7ff0d8b69f2c86f744980ee") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))]) -(treemacs-magit . [(20190502 541) ((emacs (25 2)) (treemacs (0 0)) (pfuture (1 3)) (magit (2 90 0))) "Magit integration for treemacs" single ((:commit . "0c54cb7a001fc573a7ff0d8b69f2c86f744980ee") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))]) -(treemacs-icons-dired . [(20190327 1558) ((treemacs (0 0)) (emacs (25 2)) (cl-lib (0 5))) "Treemacs icons for dired" single ((:commit . "0c54cb7a001fc573a7ff0d8b69f2c86f744980ee") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))]) -(treemacs-evil . [(20190615 1013) ((evil (1 2 12)) (treemacs (0 0))) "Evil mode integration for treemacs" single ((:commit . "0c54cb7a001fc573a7ff0d8b69f2c86f744980ee") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))]) -(treemacs . [(20190615 1013) ((emacs (25 2)) (cl-lib (0 5)) (dash (2 11 0)) (s (1 10 0)) (f (0 11 0)) (ace-window (0 9 0)) (pfuture (1 7)) (hydra (0 13 2)) (ht (2 2))) "A tree style file explorer package" tar ((:commit . "0c54cb7a001fc573a7ff0d8b69f2c86f744980ee") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/treemacs"))]) -(tree-mode . [(20151104 1331) nil "A mode to manage tree widgets" single ((:commit . "b06078826d5875d74b0e7b7ac47b0d0917610534") (:keywords "help" "convenience" "widget") (:authors (nil . "wenbinye@163.com")) (:maintainer nil . "wenbinye@163.com"))]) -(travis . [(20150825 1138) ((s (1 9 0)) (dash (2 9 0)) (pkg-info (0 5 0)) (request (0 1 0))) "Emacs client for Travis" tar ((:commit . "754ef07c17fed17ab03664ad11e2b0b2ef5e78ed") (:keywords "travis") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/emacs-travis"))]) -(transpose-mark . [(20150405 716) nil "Transpose data using the Emacs mark" single ((:commit . "667327602004794de97214cf336ac61650ef75b7") (:keywords "transpose" "convenience") (:authors ("Kevin W. van Rooijen" . "kevin.van.rooijen@attichacker.com")) (:maintainer "Kevin W. van Rooijen" . "kevin.van.rooijen@attichacker.com"))]) -(transpose-frame . [(20151126 1426) nil "Transpose windows arrangement in a frame" single ((:commit . "011f420c3496b69fc22d789f64cb8091834feba7") (:keywords "window") (:authors ("S. Irie")) (:maintainer "S. Irie"))]) -(transmission . [(20190211 246) ((emacs (24 4)) (let-alist (1 0 5))) "Interface to a Transmission session" single ((:commit . "7293beeb8a49cf6822abd16a9f4b9e4bef0a9296") (:keywords "comm" "tools") (:authors ("Mark Oteiza" . "mvoteiza@udel.edu")) (:maintainer "Mark Oteiza" . "mvoteiza@udel.edu"))]) -(transient . [(20190528 804) ((emacs (25 1)) (dash (2 15 0))) "Transient commands" tar ((:commit . "2eff8d57e851ec7403e5e042147ad2644b336633") (:keywords "bindings") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/transient"))]) -(transfer-sh . [(20180603 1431) ((async (1 0))) "Simple interface for sending buffer contents to transfer.sh" single ((:commit . "55da85f963d347255a2b46568954923679331798") (:keywords "cloud" "upload" "share") (:authors ("S. Roskamp" . "steffen.roskamp@gmail.com")) (:maintainer "S. Roskamp" . "steffen.roskamp@gmail.com"))]) -(tramp-term . [(20190509 1919) nil "Automatic setup of directory tracking in ssh sessions." single ((:commit . "27b370f3a43638d6845b3b3a93c3d7a806bd3b66") (:keywords "tramp" "ssh") (:authors ("Randy Morris" . "randy.morris@archlinux.us")) (:maintainer "Randy Morris" . "randy.morris@archlinux.us") (:url . "https://github.com/randymorris/tramp-term.el"))]) -(tramp-hdfs . [(20170821 1320) ((emacs (24 4))) "Tramp extension to access hadoop/hdfs file system in Emacs" single ((:commit . "f8406f77bf83b66306ced693a5e4aaf606f46762") (:keywords "tramp" "emacs" "hdfs" "hadoop" "webhdfs" "rest") (:authors ("Raghav Kumar Gautam" . "raghav@apache.org")) (:maintainer "Raghav Kumar Gautam" . "raghav@apache.org"))]) -(tracwiki-mode . [(20150119 1621) ((xml-rpc (1 6 8))) "Emacs Major mode for working with Trac" single ((:commit . "6a620444d59b438f42383b48cd4c19c03105dba6") (:keywords "trac" "wiki" "tickets") (:authors ("Matthew Erickson" . "peawee@peawee.net")) (:maintainer "Matthew Erickson" . "peawee@peawee.net"))]) -(tracking . [(20171210 2102) nil "Buffer modification tracking" tar ((:commit . "6ccd4b494cbae9d28091217654f052eaea321007") (:authors ("Jorgen Schaefer" . "forcer@forcix.cx")) (:maintainer "Jorgen Schaefer" . "forcer@forcix.cx") (:url . "https://github.com/jorgenschaefer/circe/wiki/Tracking"))]) -(traad . [(20180730 48) ((dash (2 13 0)) (deferred (0 3 2)) (popup (0 5 0)) (request (0 2 0)) (request-deferred (0 2 0)) (virtualenvwrapper (20151123)) (f (0 20 0)) (bind-map (1 1 1))) "emacs interface to the traad refactoring server." single ((:commit . "98e23363b7e8a590a2f55976123a8c3da75c87a5") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/traad"))]) -(tql-mode . [(20170724 254) ((emacs (24))) "TQL mode" single ((:commit . "488add79eb3fc8ec02aedaa997fe1ed9e5c3e638") (:keywords "languages" "tql") (:authors ("Sean McLaughlin" . "seanmcl@gmail.com")) (:maintainer "Sean McLaughlin" . "seanmcl@gmail.com"))]) -(toxi-theme . [(20160424 2126) ((emacs (24))) "A dark color theme by toxi" single ((:commit . "b322fc7497a53f102e74f7994da96f2974171c9b") (:authors ("Karsten Schmidt" . "info@postspectacular.com")) (:maintainer "Karsten Schmidt" . "info@postspectacular.com") (:url . "http://bitbucket.org/postspectacular/toxi-theme/"))]) -(tox . [(20160810 1555) nil "Launch current python test with tox" single ((:commit . "7655eb254038d5e34433e8a9d66b3ffc9c72e40c") (:keywords "convenience" "tox" "python" "tests") (:authors ("Chmouel Boudjnah" . "chmouel@chmouel.com")) (:maintainer "Chmouel Boudjnah" . "chmouel@chmouel.com") (:url . "https://github.com/chmouel/tox.el"))]) -(totd . [(20150519 1440) ((s (1 9 0)) (cl-lib (0 5))) "Display a random daily emacs command." single ((:commit . "ca47b618ea8290776cdb5b0f1c2c335691f69660") (:keywords "help") (:authors ("Erik Hetzner" . "egh@e6h.org")) (:maintainer "Erik Hetzner" . "egh@e6h.org"))]) -(total-lines . [(20171227 1239) ((emacs (24 3))) "Keep track of a buffer's total number of lines" single ((:commit . "473fa74a5416697ecd938866518bcad423f8fda6") (:keywords "convenience" "mode-line") (:authors ("Hinrik Örn Sigurðsson")) (:maintainer "Hinrik Örn Sigurðsson") (:url . "https://github.com/hinrik/total-lines"))]) -(torus . [(20190325 753) ((emacs (26))) "A buffer groups manager" single ((:commit . "b309da8c2eaee573a2e2572f25a08ce5da9e9990") (:keywords "files" "buffers" "groups" "persistent" "history" "layout" "tabs") (:authors ("Chimay")) (:maintainer "Chimay") (:url . "https://github.com/chimay/torus"))]) -(tornado-template-mode . [(20141128 1008) nil "A major mode for editing tornado templates" single ((:commit . "667c0663dbbd279b6c345446b9f2bc50eb52b747") (:authors ("Florian Mounier aka paradoxxxzero")) (:maintainer "Florian Mounier aka paradoxxxzero"))]) -(tommyh-theme . [(20131004 2330) nil "A bright, bold-colored theme for emacs" single ((:commit . "46d1c69ee0a1ca7c67b569b891a2f28fed89e7d5") (:authors ("William Glass" . "william.glass@gmail.com")) (:maintainer "William Glass" . "william.glass@gmail.com"))]) -(toml-mode . [(20161107 1800) ((emacs (24)) (cl-lib (0 5))) "Major mode for editing TOML files" single ((:commit . "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06") (:keywords "data" "toml") (:authors ("Felix Chern" . "idryman@gmail.com")) (:maintainer "Felix Chern" . "idryman@gmail.com") (:url . "https://github.com/dryman/toml-mode.el"))]) -(toml . [(20130903 1255) nil "TOML (Tom's Obvious, Minimal Language) parser" single ((:commit . "9633a6872928e737a2335aae1065768b23d8c3b3") (:keywords "toml" "parser") (:authors ("Wataru MIYAGUNI" . "gonngo@gmail.com")) (:maintainer "Wataru MIYAGUNI" . "gonngo@gmail.com") (:url . "https://github.com/gongo/emacs-toml"))]) -(tomatinho . [(20180621 1748) nil "Simple and beautiful pomodoro timer" tar ((:commit . "b53354b9b9f496c0388d6a573b06b7d6fc53d0bd") (:keywords "time" "productivity" "pomodoro technique") (:authors ("Konrad Scorciapino" . "scorciapino@gmail.com")) (:maintainer "Konrad Scorciapino" . "scorciapino@gmail.com"))]) -(toggle-window . [(20141207 1548) nil "toggle current window size between half and full" single ((:commit . "e82c60e543933880402ede11e9423e48a17dde53") (:keywords "hide" "window") (:authors ("Kenny Liu")) (:maintainer "Kenny Liu") (:url . "https://github.com/deadghost/toggle-window"))]) -(toggle-test . [(20140723 537) nil "Toggle between source and test files in various programming languages" single ((:commit . "e969321f274903d705995a7d0345a257576ec5ff") (:keywords "tdd" "test" "toggle" "productivity") (:authors ("Raghunandan Rao" . "r.raghunandan@gmail.com")) (:maintainer "Raghunandan Rao" . "r.raghunandan@gmail.com") (:url . "https://github.com/rags/toggle-test"))]) -(toggle-quotes . [(20140710 926) nil "Toggle between single and double quoted string" single ((:commit . "33abc221d6887f0518337851318065cd86c34b03") (:keywords "convenience" "quotes") (:authors ("Jim Tian" . "tianjin.sc@gmail.com")) (:maintainer "Jim Tian" . "tianjin.sc@gmail.com") (:url . "https://github.com/toctan/toggle-quotes.el"))]) -(toggle . [(20180316 3) ((cl-lib (0 5))) "quickly open corresponding file (eg test vs impl)." single ((:commit . "208810c6c57e1b3d87cba5e8d91c9212dcda828e") (:keywords "files" "extensions" "convenience") (:authors ("Ryan Davis" . "ryand-ruby@zenspider.com")) (:maintainer "Ryan Davis" . "ryand-ruby@zenspider.com"))]) -(togetherly . [(20170426 616) ((cl-lib (0 3))) "allow multiple clients to edit a single buffer online" single ((:commit . "a6491bd5dd84f2aded0cd112ff06ae76ff78dfeb") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(todotxt-mode . [(20150424 1404) nil "Major mode for editing todo.txt files" single ((:commit . "dc6ae151edee88f329ba7abc5d39b7440002232f") (:keywords "wp" "files") (:authors ("Adolfo Villafiorita" . "adolfo.villafiorita@me.com")) (:maintainer "Adolfo Villafiorita" . "adolfo.villafiorita@me.com"))]) -(todotxt . [(20180626 2230) nil "A major mode for editing todo.txt files" single ((:commit . "f13e404304c9d26c105de872f96b4601441b3875") (:keywords "todo.txt" "todotxt" "todotxt.el") (:authors ("Rick Dillon" . "rpdillon@killring.org")) (:maintainer "Rick Dillon" . "rpdillon@killring.org") (:url . "https://github.com/rpdillon/todotxt.el"))]) -(todoist . [(20190604 1428) ((dash (2 15 0)) (transient (0 1 0)) (org (8 3 5)) (emacs (25 3))) "Extension for interacting and managing todoist tasks" single ((:commit . "b41910433134f41399bd58bf912fa1fde32e829a") (:keywords "todoist" "task" "todo" "comm") (:authors ("Adrien Brochard")) (:maintainer "Adrien Brochard") (:url . "https://github.com/abrochard/emacs-todoist"))]) -(toc-org . [(20190603 803) nil "add table of contents to org-mode files (formerly, org-toc)" single ((:commit . "2539b4be401d006e2752f6ad3b88e696889a7fc8") (:keywords "org-mode" "org-toc" "toc-org" "org" "toc" "table" "of" "contents") (:authors ("Sergei Nosov <sergei.nosov [at] gmail.com>")) (:maintainer "Sergei Nosov <sergei.nosov [at] gmail.com>") (:url . "https://github.com/snosov1/toc-org"))]) -(tmux-pane . [(20181210 1210) ((names (0 5)) (emacs (24)) (s (0))) "Provide integration between emacs window and tmux pane" single ((:commit . "5e83ec65a1d38af9b8a389bdf34a78d13437e63d") (:keywords "convenience" "terminals" "tmux" "window" "pane" "navigation" "integration") (:url . "https://github.com/laishulu/emacs-tmux-pane"))]) -(tmmofl . [(20121025 1101) nil "Calls functions dependant on font lock highlighting at point" single ((:commit . "532aa6978e994e2b069ffe37aaf9a0011a07dadc") (:keywords "minor mode" "font lock" "toggling.") (:authors ("Phillip Lord" . "p.lord@hgmp.mrc.ac.uk")) (:maintainer "Phillip Lord" . "p.lord@hgmp.mrc.ac.uk"))]) -(tldr . [(20190425 749) ((emacs (24 3)) (request (0 3 0))) "tldr client for Emacs" single ((:commit . "2ff0834bc58590f98bfece3efc5656d1b47c325d") (:keywords "tools" "docs") (:authors ("Ono Hiroko" . "azazabc123@gmail.com")) (:maintainer "Ono Hiroko" . "azazabc123@gmail.com") (:url . "https://github.com/kuanyui/tldr.el"))]) -(tj3-mode . [(20180519 1228) nil "major mode for editing TaskJuggler 3 files" single ((:commit . "1d98eb23f1606392f34ef1b80517cfc940fb9950") (:authors ("Christophe Rhodes" . "christophe@rhodes.io")) (:maintainer "Christophe Rhodes" . "christophe@rhodes.io") (:url . "https://github.com/csrhodes/tj3-mode"))]) -(tinysegmenter . [(20141124 1013) ((cl-lib (0 5))) "Super compact Japanese tokenizer in Javascript ported to emacs lisp" single ((:commit . "872134704bd25c13a4c59552433da4c6881b5230") (:keywords "convenience") (:authors ("lugecy" . "lugecy@gmail.com")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/tinysegmenter.el"))]) -(tiny-menu . [(20161213 1235) ((emacs (24 4))) "Display tiny menus." single ((:commit . "05563b94537b6eb22aeddedef2a6e59e3f88d073") (:keywords "menu" "tools") (:authors ("Aaron Bieber" . "aaron@aaronbieber.com")) (:maintainer "Aaron Bieber" . "aaron@aaronbieber.com") (:url . "https://github.com/aaronbieber/tiny-menu.el"))]) -(tiny . [(20170903 949) nil "Quickly generate linear ranges in Emacs" single ((:commit . "012b2e7a67b9f067bbfa0292479861ffbaa201fa") (:keywords "convenience") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/tiny"))]) -(tinkerer . [(20170906 1224) ((s (1 2 0))) "Elisp wrapper for Tinkerer Blogging Engine." single ((:commit . "e34135555f3748b578c7f8706dfd0c888fb87581") (:keywords "tinkerer" "blog" "wrapper") (:authors ("Yagnesh Raghava Yakkala" . "hi@yagnesh.org")) (:maintainer "Yagnesh Raghava Yakkala" . "hi@yagnesh.org") (:url . "https://github.com/yyr/tinkerer.el"))]) -(timp . [(20160618 803) ((emacs (24 4)) (cl-lib (0 5)) (fifo-class (1 0)) (signal (1 0))) "Multithreading library" tar ((:commit . "66b21934b1eb8ee428c06dd64b3562ad44776a35") (:keywords "internal" "lisp" "processes" "tools") (:authors ("Mola-T" . "Mola@molamola.xyz")) (:maintainer "Mola-T" . "Mola@molamola.xyz") (:url . "https://github.com/mola-T/timp"))]) -(timonier . [(20170411 800) ((emacs (24 4)) (s (1 11 0)) (f (0 19 0)) (dash (2 12 0)) (pkg-info (0 5 0)) (hydra (0 13 6)) (request (0 2 0)) (all-the-icons (2 0 0))) "Manage Kubernetes Applications" tar ((:commit . "0a150ea87bf695b43cf1740dfd7e553e0ae7601c") (:keywords "kubernetes" "docker") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/timonier"))]) -(timesheet . [(20180802 202) ((s (1)) (org (7)) (auctex (11))) "Timesheet management add-on for org-mode" tar ((:commit . "67ca6a9f6733052066b438301fb2dd81b8b3f6eb") (:keywords "org" "timesheet") (:authors ("Tom Marble")) (:maintainer "Tom Marble") (:url . "https://github.com/tmarble/timesheet.el"))]) -(timer-revert . [(20150122 2032) nil "minor mode to revert buffer for a given time interval." tar ((:commit . "615c91dec8b440d2b9b7c725dd733d7432564e45"))]) -(timecop . [(20160520 1052) ((cl-lib (0 5)) (datetime-format (0 0 1))) "Freeze Time for testing" single ((:commit . "e6427538b547cbe02e1bd6ed4b765c73620bdae8") (:keywords "datetime" "testing") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/emacs-datetime"))]) -(time-ext . [(20170126 1215) nil "more function for time/date" single ((:commit . "d128becf660fe3f30178eb1b05cd266741f4784a") (:keywords "lisp") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/time-ext.el"))]) -(tile . [(20161225 357) ((emacs (25 1)) (s (1 9 0)) (dash (2 12 0)) (stream (2 2 3))) "Tile windows with layouts" single ((:commit . "22660f21f6e95de5aba55cd5d293d4841e9a4661") (:keywords "tile" "tiling" "window" "manager" "dynamic" "frames") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:url . "https://github.com/IvanMalison/tile"))]) -(tide . [(20190617 1308) ((dash (2 10 0)) (s (1 11 0)) (flycheck (27)) (typescript-mode (0 1)) (cl-lib (0 5))) "Typescript Interactive Development Environment" tar ((:commit . "9820c012b620b6b3294a25712e18074649a2d6d3") (:keywords "typescript") (:authors ("Anantha kumaran" . "ananthakumaran@gmail.com")) (:maintainer "Anantha kumaran" . "ananthakumaran@gmail.com") (:url . "http://github.com/ananthakumaran/tide"))]) -(tidal . [(20190320 2158) ((haskell-mode (16)) (emacs (24))) "Interact with TidalCycles for live coding patterns" single ((:commit . "081ebdb6097180c4dcc8511e489edff1aedfaf92") (:keywords "tools") (:authors (nil . "alex@slab.org")) (:maintainer nil . "alex@slab.org") (:url . "https://github.com/tidalcycles/Tidal"))]) -(tickscript-mode . [(20171219 203) ((emacs (24 1))) "A major mode for Tickscript files" single ((:commit . "f0579f38ff14954df5002ce30ae6d4a2c978d461") (:keywords "languages") (:authors ("Marc Sherry" . "msherry@gmail.com")) (:maintainer "Marc Sherry" . "msherry@gmail.com") (:url . "https://github.com/msherry/tickscript-mode"))]) -(thumb-through . [(20120119 534) nil "Plain text reader of HTML documents" single ((:commit . "08d8fb720f93c6172653e035191a8fa9c3305e63") (:keywords "html"))]) -(thrift . [(20180905 1050) ((emacs (24))) "major mode for fbthrift and Apache Thrift files" single ((:commit . "c00e8bfef0b95a1b1eeef541cc2fa2b1ba5012b6") (:keywords "languages"))]) -(threes . [(20160820 1242) ((emacs (24)) (seq (1 11))) "A clone of Threes (a tiny puzzle game)" single ((:commit . "6981acb30b856c77cba6aba63fefbf102cbdfbb2") (:keywords "games") (:authors ("Chunyang Xu" . "xuchunyang.me@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang.me@gmail.com") (:url . "https://github.com/xuchunyang/threes.el"))]) -(thread-dump . [(20170816 1850) nil "Java thread dump viewer" single ((:commit . "204c9600242756d4b514bb5ff6293e052bf4b49d") (:authors ("Dmitry Neverov")) (:maintainer "Dmitry Neverov") (:url . "http://github.com/nd/thread-dump.el"))]) -(thinks . [(20170802 1128) ((cl-lib (0 5))) "Insert text in a think bubble." single ((:commit . "c02f236abc8c2025d9f01460b09b89ebdc96e28d") (:keywords "convenience" "quoting") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/thinks.el"))]) -(thingopt . [(20160520 2318) nil "Thing at Point optional utilities" single ((:commit . "5679815852652479f3b3c9f3a98affc927384b2c") (:keywords "convenience") (:authors ("Tomohiro Matsuyama" . "m2ym.pub@gmail.com")) (:maintainer "Tomohiro Matsuyama" . "m2ym.pub@gmail.com"))]) -(therapy . [(20151113 1953) ((emacs (24))) "Hooks for managing multiple Python major versions" single ((:commit . "775a92bb7b6b0fcc5b38c0b5198a9d0a1bef788a") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/therapy"))]) -(theme-magic . [(20190502 2227) ((emacs (25)) (seq (1 8))) "Apply your Emacs theme to the rest of Linux" tar ((:commit . "d873a3222a06d476bee09c3cc41772fc8df8fc49") (:keywords "unix" "faces" "terminals" "extensions") (:authors ("GitHub user \"jcaw\"" . "40725916+jcaw@users.noreply.github.com")) (:maintainer "GitHub user \"jcaw\"" . "40725916+jcaw@users.noreply.github.com") (:url . "https://github.com/jcaw/theme-magic.el"))]) -(theme-looper . [(20190501 127) ((emacs (24)) (cl-lib (0 5))) "Loop thru the available color-themes" single ((:commit . "388138a238fbab9b4bc5ada0300c9bc5ef63d3f1") (:keywords "convenience" "color-themes") (:authors ("Mohammed Ismail Ansari" . "team.terminal@gmail.com")) (:maintainer "Mohammed Ismail Ansari" . "team.terminal@gmail.com") (:url . "http://ismail.teamfluxion.com"))]) -(theme-changer . [(20171221 1927) nil "Sunrise/Sunset Theme Changer for Emacs" single ((:commit . "61945695a30d678e6a5d47cbe7c8aff59a8c30ea") (:keywords "color-theme" "deftheme" "solar" "sunrise" "sunset") (:authors ("Joshua B. Griffith" . "josh.griffith@gmail.com")) (:maintainer "Joshua B. Griffith" . "josh.griffith@gmail.com") (:url . "https://github.com/hadronzoo/theme-changer"))]) -(tfsmacs . [(20180911 2114) ((emacs (25)) (tablist (0 70))) "MS TFS source control interaction." single ((:commit . "3c20cb76ccd7951eda0b5f076cd79e42f71e7220") (:keywords "tfs" "vc") (:authors ("Dino Chiesa <dpchiesa@outlook.com>, Sebastian Monia" . "smonia@outlook.com")) (:maintainer "Dino Chiesa <dpchiesa@outlook.com>, Sebastian Monia" . "smonia@outlook.com") (:url . "http://github.com/sebasmonia/tfsmacs/"))]) -(tf2-conf-mode . [(20161209 1620) nil "TF2 Configuration files syntax highlighting" single ((:commit . "536950f64c071ffd8495fb2c7ac7c63a11e25f93") (:keywords "languages") (:authors ("Guillermo Robles" . "guillerobles1995@gmail.com")) (:maintainer "Guillermo Robles" . "guillerobles1995@gmail.com") (:url . "https://github.com/wynro/emacs-tf2-conf-mode"))]) -(textx-mode . [(20170516 911) ((emacs (24 3))) "Major mode for editing TextX files" single ((:commit . "72f9f0c5855b382024f0da8f56833c22a70a5cb3") (:keywords "textx") (:authors ("Novak BoÅ¡kov" . "gnovak.boskov@gmail.com")) (:maintainer "Novak BoÅ¡kov" . "gnovak.boskov@gmail.com") (:url . "https://github.com/novakboskov/textx-mode"))]) -(textmate-to-yas . [(20160409 1708) nil "Import Textmate macros into yasnippet syntax" tar ((:commit . "be3a768b7ac4c2e24b9d4aa6e9ac1d916cdc5a73") (:keywords "yasnippet" "textmate") (:authors ("Matthew L. Fidler")) (:maintainer "Matthew L. Fidler") (:url . "https://github.com/mlf176f2/textmate-to-yas.el/"))]) -(textmate . [(20110816 2146) nil "TextMate minor mode for Emacs" single ((:commit . "350918b070148f0ace6d9d3cd4ebcaf15c1a8781") (:keywords "textmate" "osx" "mac") (:authors ("Chris Wanstrath" . "chris@ozmm.org")) (:maintainer "Chris Wanstrath" . "chris@ozmm.org"))]) -(textile-mode . [(20170304 1716) nil "Textile markup editing major mode" single ((:commit . "c37aaab809503df008209390e31e19abf4e23630") (:authors ("Julien Barnier" . "julien@nozav.org")) (:maintainer "Julien Barnier" . "julien@nozav.org"))]) -(texfrag . [(20190606 2049) ((emacs (25)) (auctex (11 90 2))) "preview LaTeX fragments in alien major modes" single ((:commit . "b3e137ed123cc077d77b056ca3e0f850a451d327") (:keywords "tex" "languages" "wp") (:authors ("Tobias Zawada" . "i@tn-home.de")) (:maintainer "Tobias Zawada" . "i@tn-home.de") (:url . "https://github.com/TobiasZawada/texfrag"))]) -(tex-smart-umlauts . [(20190316 2215) nil "Smart umlaut conversion for TeX." single ((:commit . "f15ed781b1fb38bf3e46c481dd602c3999920b99") (:keywords "tex" "wp") (:authors ("Frank Fischer <frank-fischer at shadow-soft.de>")) (:maintainer "Frank Fischer <frank-fischer at shadow-soft.de>") (:url . "http://hub.darcs.net/lyro/tex-smart-umlauts"))]) -(test-simple . [(20170527 1532) ((cl-lib (0))) "Simple Unit Test Framework for Emacs Lisp" single ((:commit . "cfd383d36dc6853917acb753fdfa0eebf33856f3") (:keywords "unit-test") (:authors ("Rocky Bernstein" . "rocky@gnu.org")) (:maintainer "Rocky Bernstein" . "rocky@gnu.org") (:url . "http://github.com/rocky/emacs-test-simple"))]) -(test-kitchen . [(20171129 2035) nil "Run test-kitchen inside of emacs" single ((:commit . "0fc0ca4808425f03fbeb8125246043723e2a179a") (:keywords "chef" "ruby" "test-kitchen") (:authors ("JJ Asghar")) (:maintainer "JJ Asghar") (:url . "http://github.com/jjasghar/test-kitchen-el"))]) -(test-case-mode . [(20130525 1434) ((fringe-helper (0 1 1))) "unit test front-end" single ((:commit . "6074df10ebc97ddfcc228c71c73db179e672dac3") (:keywords "tools") (:authors ("Nikolaj Schumacher <bugs * nschum de>")) (:maintainer "Nikolaj Schumacher <bugs * nschum de>") (:url . "http://nschum.de/src/emacs/test-case-mode/"))]) -(test-c . [(20180423 1720) ((emacs (24 3))) "quickly test c code" single ((:commit . "761a576f62c7021ba941f178f153c51289df1553") (:authors ("Aurélien Aptel" . "aurelien.aptel@gmail.com")) (:maintainer "Aurélien Aptel" . "aurelien.aptel@gmail.com") (:url . "http://github.com/aaptel/test-c"))]) -(terraform-mode . [(20170112 517) ((emacs (24 3)) (hcl-mode (0 3))) "Major mode for terraform configuration file" single ((:commit . "6973d1acaba2835dfdf174f5a5e27de6366002e1") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-terraform-mode"))]) -(tern-django . [(20160221 1923) ((emacs (24)) (tern (0 0 1)) (f (0 17 1))) "Create tern projects for django applications." tar ((:commit . "46f2cd5e96bc804069f18455a828b8e4c5ec358a") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/tern-django"))]) -(tern-context-coloring . [(20161218 747) ((emacs (24 3)) (context-coloring (8 1 0)) (tern (0 0 1))) "Use Tern for context coloring" single ((:commit . "3a8e979d6cc83aabcb3dda3f5f31a6422532efba") (:keywords "convenience" "faces" "tools") (:authors ("Jackson Ray Hamilton" . "jackson@jacksonrayhamilton.com")) (:maintainer "Jackson Ray Hamilton" . "jackson@jacksonrayhamilton.com") (:url . "https://github.com/jacksonrayhamilton/tern-context-coloring"))]) -(tern-auto-complete . [(20170521 1935) ((tern (0 0 1)) (auto-complete (1 4)) (cl-lib (0 5)) (emacs (24))) "Tern Completion by auto-complete.el" single ((:commit . "4ba411719279c62d9c0acd1243a03477ada1ac32") (:authors ("<m.sakurai at kiwanami.net>")) (:maintainer "<m.sakurai at kiwanami.net>"))]) -(tern . [(20181108 722) ((json (1 2)) (cl-lib (0 5)) (emacs (24))) "Tern-powered JavaScript integration" single ((:commit . "4ba411719279c62d9c0acd1243a03477ada1ac32") (:authors ("Marijn Haverbeke")) (:maintainer "Marijn Haverbeke") (:url . "http://ternjs.net/"))]) -(terminal-toggle . [(20190226 1510) ((emacs (24)) (popwin (1 0 0))) "simple pop-up terminal" single ((:commit . "f824d634aef3600cb7a8e2ddf9e8444c6607c160") (:keywords "outlines") (:authors ("Mehmet Tekman")) (:maintainer "Mehmet Tekman") (:url . "https://github.com/mtekman/terminal-toggle.el"))]) -(terminal-here . [(20180513 833) ((emacs (24)) (cl-lib (0 5))) "Run an external terminal in current directory" single ((:commit . "bc7f3477133df0142d3e49e6eb8eaf4468b57865") (:keywords "tools" "frames") (:authors ("David Shepherd" . "davidshepherd7@gmail.com")) (:maintainer "David Shepherd" . "davidshepherd7@gmail.com") (:url . "https://github.com/davidshepherd7/terminal-here"))]) -(terminal-focus-reporting . [(20180830 719) ((emacs (24 4))) "Minor mode for terminal focus reporting." single ((:commit . "8b84bf18f4c5f1b59a11692eb706f13c3598d9a5") (:keywords "convenience") (:authors ("Vitalii Elenhaupt")) (:maintainer "Vitalii Elenhaupt") (:url . "https://github.com/veelenga/terminal-focus-reporting.el"))]) -(termbright-theme . [(20151031 235) ((emacs (24 1))) "a more usable theme for white-on-black terminals" single ((:commit . "bec6ab14336c0611e85f45486276004f16d20607") (:keywords "themes") (:authors ("Brian Mastenbrook" . "brian@mastenbrook.net")) (:maintainer "Brian Mastenbrook" . "brian@mastenbrook.net") (:url . "https://github.com/bmastenbrook/termbright-theme-el"))]) -(term-run . [(20190529 743) nil "Run arbitrary command in terminal buffer" single ((:commit . "fe8bf58814b167f887aaef98a148b8d5d8a11d3f") (:keywords "utility" "shell" "command" "term-mode") (:authors ("10sr <8slashes+el [at] gmail [dot] com>")) (:maintainer "10sr <8slashes+el [at] gmail [dot] com>") (:url . "https://github.com/10sr/term-run-el"))]) -(term-projectile . [(20190307 400) ((emacs (24)) (term-manager (0 1 0)) (projectile (0 13 0))) "projectile terminal management" single ((:commit . "eea7894350a4f31e1df0c666d3fb0bac822d34d2") (:keywords "projectile" "tools" "terminals" "vc") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:url . "https://www.github.com/IvanMalison/term-manager"))]) -(term-manager . [(20190610 2032) ((dash (2 12 0)) (emacs (24 4))) "Contextual terminal management" tar ((:commit . "eea7894350a4f31e1df0c666d3fb0bac822d34d2") (:keywords "terminals" "tools") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:url . "https://www.github.com/IvanMalison/term-manager"))]) -(term-cmd . [(20160517 1045) ((emacs (24 0)) (dash (2 12 0)) (f (0 18 2))) "Send commands from programs running in term.el." tar ((:commit . "552aa58965aab9b78e46934462bafe54c0396ffb"))]) -(term-alert . [(20161119 945) ((emacs (24 0)) (term-cmd (1 1)) (alert (1 1)) (f (0 18 2))) "Notifications when commands complete in term.el." tar ((:commit . "1166c39cc3fb1cb7808eb8955b7f9f6094a306cd"))]) -(term+mux . [(20140211 749) ((term+ (0 1)) (tab-group (0 1))) "term+ terminal multiplexer and session management" single ((:commit . "81b60e80cf008472bfd7fad9233af2ef722c208a") (:keywords "terminal" "emulation") (:authors ("INA Lintaro <tarao.gnn at gmail.com>")) (:maintainer "INA Lintaro <tarao.gnn at gmail.com>") (:url . "http://github.com/tarao/term+-el"))]) -(term+key-intercept . [(20140211 750) ((term+ (0 1)) (key-intercept (0 1))) "term+ intercept key mapping" single ((:commit . "fd0771fd66b8c7a909aaac972194485c79ba48c4") (:keywords "terminal" "emulation") (:authors ("INA Lintaro <tarao.gnn at gmail.com>")) (:maintainer "INA Lintaro <tarao.gnn at gmail.com>") (:url . "http://github.com/tarao/term+-el"))]) -(term+ . [(20170509 17) ((emacs (24)) (cl-lib (0 5))) "term-mode enhancement" tar ((:commit . "c3c9239b339c127231860de43abfa08c44c0201a") (:keywords "terminal" "emulation") (:authors ("INA Lintaro <tarao.gnn at gmail.com>")) (:maintainer "INA Lintaro <tarao.gnn at gmail.com>") (:url . "https://github.com/tarao/term-plus-el"))]) -(ten-hundred-mode . [(20161028 2236) ((cl-lib (0 5))) "use only the ten hundred most usual words" tar ((:commit . "bdcfda49b1819e82d61fe90947e50bb948cf7933"))]) -(temporary-persistent . [(20161210 1133) ((emacs (24 3)) (names (20151201 0)) (dash (2 12 1)) (s (1 10 0))) "Keep temp notes buffers persistent -*- lexical-binding: t" single ((:commit . "ac66f3054fc701d53f11ada9d2d9ab18ea481dc0") (:keywords "temp" "buffers" "notes") (:authors ("Kostafey" . "kostafey@gmail.com")) (:maintainer "Kostafey" . "kostafey@gmail.com") (:url . "https://github.com/kostafey/temporary-persistent"))]) -(template-overlays . [(20180706 1132) ((emacs (24 4)) (ov (1 0 6))) "Display template regions using overlays" single ((:commit . "d32db58c044b2aca3720879003f55b1d57208b07") (:keywords "faces" "convenience" "templates" "overlays") (:authors ("Mariano Montone" . "marianomontone@gmail.com")) (:maintainer "Mariano Montone" . "marianomontone@gmail.com") (:url . "http://www.github.com/mmontone/template-overlays"))]) -(telephone-line . [(20190424 1934) ((emacs (24 4)) (cl-lib (0 5)) (cl-generic (0 2)) (seq (1 8))) "Rewrite of Powerline" tar ((:commit . "408e05e105e8e521735221f4c98fc358e007df3b") (:keywords "mode-line") (:authors ("Daniel Bordak" . "dbordak@fastmail.fm")) (:maintainer "Daniel Bordak" . "dbordak@fastmail.fm") (:url . "https://github.com/dbordak/telephone-line"))]) -(telepathy . [(20131209 1258) nil "Access Telepathy from Emacs" single ((:commit . "211d785b02a29ddc254422fdcc3db45262582f8c") (:keywords "telepathy" "tools") (:authors ("Nicolas Petton" . "petton.nicolas@gmail.com")) (:maintainer "Nicolas Petton" . "petton.nicolas@gmail.com"))]) -(teacode-expand . [(20181231 640) ((emacs (24 4))) "Expansion of text by TeaCode program." single ((:commit . "3aae07c71249de616d42fed7fa2585c4fa6f25c6") (:keywords "lisp") (:authors ("Richard Guay" . "raguay@customct.com")) (:maintainer "Richard Guay" . "raguay@customct.com") (:url . "https://github.com/raguay/TeaCode-Expand"))]) -(tea-time . [(20120331 820) nil "Simple timer package, useful to make perfect tea." single ((:commit . "1f6cf0bdd27c5eb3508989c5095427781f858eca") (:keywords "timer" "tea-time") (:authors ("konsty" . "antipin.konstantin@googlemail.com")) (:maintainer "Gabriel Saldana" . "gsaldana@gmail.com"))]) -(tdd-status-mode-line . [(20131123 1716) nil "TDD status on the mode-line" single ((:commit . "4c082e62f4915b573338a97efcc6854d132323dc") (:keywords "faces" "tdd") (:authors ("Gergely Nagy" . "algernon@madhouse-project.org")) (:maintainer "Gergely Nagy" . "algernon@madhouse-project.org") (:url . "https://github.com/algernon/tdd-status-mode-line"))]) -(tco . [(20190309 55) ((dash (1 2 0)) (emacs (24))) "tail-call optimisation for Emacs lisp" single ((:commit . "482db5313f090b17ed22ccd856f0e141dc75afe6") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(tc . [(20181109 428) nil "a Japanese input method with T-Code on Emacs" tar ((:commit . "5496f8dee27c4d925977da3cca6fcacf9b45bc58") (:authors ("Kaoru Maeda" . "maeda@src.ricoh.co.jp") ("Yasushi Saito" . "yasushi@cs.washington.edu") ("KITAJIMA Akira" . "kitajima@isc.osakac.ac.jp")) (:maintainer "KITAJIMA Akira"))]) -(tbx2org . [(20140224 1559) ((dash (2 5 0)) (s (1 8 0)) (cl-lib (0 4))) "Tinderbox to org-mode conversion" single ((:commit . "08e9816ba6066f56936050b58d07ceb2187ae6f7") (:keywords "org-mode") (:authors ("istib")) (:maintainer "istib") (:url . "https://github.com/istib/tbx2org"))]) -(tblui . [(20161007 1912) ((dash (2 12 1)) (magit-popup (2 6 0)) (tablist (0 70)) (cl-lib (0 5))) "Define tabulated list UI easily" single ((:commit . "bb29323bb3e27093d50cb42db3a9329a096b6e4d") (:authors ("Yuki Inoue <inouetakahiroki _at_ gmail.com>")) (:maintainer "Yuki Inoue <inouetakahiroki _at_ gmail.com>") (:url . "https://github.com/Yuki-Inoue/tblui.el"))]) -(tawny-mode . [(20170422 2202) ((cider (0 12)) (emacs (25))) "Ontology Editing with Tawny-OWL" single ((:commit . "1be07e047343a1bdbb1a8ca40ff6ed3fbb585dec") (:authors ("Phillip Lord" . "phillip.lord@newcastle.ac.uk")) (:maintainer "Phillip Lord" . "phillip.lord@newcastle.ac.uk"))]) -(taskpaper-mode . [(20190516 1512) nil "Major mode for working with TaskPaper files" single ((:commit . "7004ef65eea954742054f0f68109004828fd6fd8") (:keywords "outlines" "notetaking" "task management" "productivity" "taskpaper") (:authors ("Dmitry Safronov" . "saf.dmitry@gmail.com")) (:maintainer "Dmitry Safronov" . "saf.dmitry@gmail.com") (:url . "https://github.com/saf-dmitry/taskpaper-mode"))]) -(tao-theme . [(20190204 1104) nil "This package provides two parametrized uncoloured color themes for Emacs: tao-yin and tao-yang." tar ((:commit . "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c"))]) -(tangotango-theme . [(20170924 1509) nil "Tango Palette color theme for Emacs 24." single ((:commit . "e2f2ea9c35f06dfc43a29c91c14cf0cdb19f2144") (:keywords "tango" "palette" "color" "theme" "emacs") (:authors ("Julien Barnier")) (:maintainer "Julien Barnier") (:url . "https://github.com/juba/color-theme-tangotango"))]) -(tango-plus-theme . [(20170214 1708) nil "A color theme based on the tango palette" single ((:commit . "8ba8901397e3e9f1d53110487bfa0effc65015e7") (:authors ("Titus von der Malsburg" . "malsburg@posteo.de")) (:maintainer "Titus von der Malsburg" . "malsburg@posteo.de") (:url . "https://github.com/tmalsburg/tango-plus-theme"))]) -(tango-2-theme . [(20120312 2025) nil "Tango 2 color theme for GNU Emacs 24" single ((:commit . "64e44c98e41ebbe3b827d54280e3b9615787daaa") (:authors ("Nick Parker")) (:maintainer "Nick Parker"))]) -(take-off . [(20140531 917) ((emacs (24 3)) (web-server (0 1 0))) "Emacs remote web access" tar ((:commit . "aa9ea45566fc74febbb6ee9c409ecc4b59246215") (:authors ("Thomas Burette" . "burettethomas@gmail.com")) (:maintainer "Thomas Burette" . "burettethomas@gmail.com") (:url . "https://github.com/tburette/take-off"))]) -(tagedit . [(20161121 855) ((s (1 3 1)) (dash (1 0 3))) "Some paredit-like features for html-mode" single ((:commit . "b3a70101a0dcf85498c92b7fcfa7fdbac869746c") (:keywords "convenience") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(tabula-rasa . [(20141216 547) ((emacs (24 4))) "Distraction free writing mode" single ((:commit . "e85fff9de18dc31bc6a7aca726e34a95cc5459f5") (:keywords "distraction free" "writing") (:authors ("Ido Magal" . "misc@satans.church")) (:maintainer "Ido Magal" . "misc@satans.church") (:url . "https://github.com/idomagal/Tabula-Rasa/blob/master/tabula-rasa.el"))]) -(tablist . [(20190414 643) ((emacs (24 3))) "Extended tabulated-list-mode" tar ((:commit . "8079801527da1f596bc942162026328d7bdf6ad9") (:keywords "extensions" "lisp") (:authors ("Andreas Politz" . "politza@fh-trier.de")) (:maintainer "Andreas Politz" . "politza@fh-trier.de"))]) -(tabbar-ruler . [(20160802 307) ((tabbar (2 0 1)) (powerline (2 3)) (mode-icons (0 4 0)) (cl-lib (0 5))) "Pretty tabbar, autohide, use both tabbar/ruler" tar ((:commit . "535568189aa12a3eff7f977d2783e57b6a65ab6a") (:keywords "tabbar" "ruler mode" "menu" "tool bar.") (:authors ("Matthew Fidler, Ta Quang Trung, Nathaniel Cunningham")) (:maintainer "Matthew L. Fidler") (:url . "http://github.com/mlf176f2/tabbar-ruler.el"))]) -(tabbar . [(20180726 1735) nil "Display a tab bar in the header line" tar ((:commit . "82bbda31cbe8ef367dd6501c3aa14b7f2c835910") (:keywords "convenience") (:authors ("David Ponce" . "david@dponce.com")) (:maintainer "David Ponce" . "david@dponce.com"))]) -(tab-jump-out . [(20151006 130) ((dash (2 10)) (emacs (24 4))) "Use tab to jump out of delimiter pairs." single ((:commit . "1c3fec1826d2891177ea78e4e7cce1dc67e83e51") (:keywords "tab" "editing") (:authors ("Zhang Kai Yu" . "yeannylam@gmail.com")) (:maintainer "Zhang Kai Yu" . "yeannylam@gmail.com"))]) -(tab-group . [(20140306 1450) nil "Grouped tabs and their tabbar" single ((:commit . "5a290ec2608e4100fb188fd60ecb77affcc3465b") (:keywords "convenience" "tabs") (:authors ("INA Lintaro <tarao.gnn at gmail.com>")) (:maintainer "INA Lintaro <tarao.gnn at gmail.com>") (:url . "http://github.com/tarao/tab-group-el"))]) -(ta . [(20160619 1645) ((emacs (24 3)) (cl-lib (0 5))) "A tool to deal with Chinese homophonic characters" single ((:commit . "668ad41e71f374f8c32c8d0532f3d8485b355d35") (:keywords "tools") (:authors ("kuanyui" . "azazabc123@gmail.com")) (:maintainer "kuanyui" . "azazabc123@gmail.com") (:url . "http://github.com/kuanyui/ta.el"))]) -(systemtap-mode . [(20151122 1940) nil "A mode for SystemTap" single ((:commit . "1a968c2b1f3a054bebf91ac49739d3a81ce050a9") (:keywords "tools" "languages") (:maintainer nil . "ruediger@c-plusplus.de") (:url . "https://github.com/ruediger/systemtap-mode"))]) -(systemd . [(20180629 2106) ((emacs (24 4))) "Major mode for editing systemd units" tar ((:commit . "401d71c2dd24e424216ae5e4275c830f2a9c6b0c") (:keywords "tools" "unix") (:authors ("Mark Oteiza" . "mvoteiza@udel.edu")) (:maintainer "Mark Oteiza" . "mvoteiza@udel.edu"))]) -(system-specific-settings . [(20140818 1457) nil "Apply settings only on certain systems" single ((:commit . "0050d85b2175095aa5ecf580a2fe43c069b0eef3") (:keywords "configuration") (:authors ("Ryan C. Thompson")) (:maintainer "Ryan C. Thompson") (:url . "https://github.com/DarwinAwardWinner/emacs-system-specific-settings"))]) -(system-packages . [(20190614 1320) ((emacs (24 3))) "functions to manage system packages" single ((:commit . "3ad6d52072f0bd043dced40ba7bd422fd9c00a7b") (:authors ("J. Alexander Branham" . "alex.branham@gmail.com")) (:maintainer "J. Alexander Branham" . "alex.branham@gmail.com") (:url . "https://gitlab.com/jabranham/system-packages"))]) -(syntax-subword . [(20160519 1905) nil "make operations on words more fine-grained" single ((:commit . "ad0db0fcb464652a1d3408f525dee9293ce2b70c") (:authors ("Jonathan Kotta" . "jpkotta@gmail.com")) (:maintainer "Jonathan Kotta" . "jpkotta@gmail.com"))]) -(syntactic-sugar . [(20140508 2041) nil "Effect-free forms such as if/then/else" single ((:commit . "7ddc4502c831abe1c4ad4c7d1ca628a2c9e13968") (:keywords "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/syntactic-sugar"))]) -(syntactic-close . [(20190513 947) ((emacs (24)) (cl-lib (0 5))) "Insert closing delimiter" single ((:commit . "2bd46845b664ae828c8b973839ef454cde501028") (:keywords "languages" "convenience") (:authors ("Emacs User Group Berlin" . "emacs-berlin@emacs-berlin.org")) (:maintainer "Emacs User Group Berlin" . "emacs-berlin@emacs-berlin.org") (:url . "https://github.com/emacs-berlin/syntactic-close"))]) -(synquid . [(20160930 1550) ((flycheck (27)) (emacs (24 3))) "Major mode for editing Synquid files" single ((:commit . "28701ce1a15437202f53ab93a14bcba1de83fd2c") (:keywords "languages") (:authors ("Clément Pit-Claudel" . "clement.pitclaudel@live.com")) (:maintainer "Clément Pit-Claudel" . "clement.pitclaudel@live.com") (:url . "https://github.com/cpitclaudel/synquid-mode"))]) -(synosaurus . [(20190305 2206) ((cl-lib (0 5))) "An extensible thesaurus supporting lookup and substitution." tar ((:commit . "bc26f5c22b4d08dd09d0852435814977433c9521") (:url . "https://github.com/hpdeifel/synosaurus"))]) -(synonymous . [(20180325 1817) ((emacs (24)) (cl-lib (0 5)) (request (0 2 0))) "A thesaurus at your fingertips" single ((:commit . "2cb9a674d84fddf3f1b00c9d6b13a853576acb87") (:keywords "utility") (:authors ("Katherine Whitlock" . "toroidalcode@gmail.com") ("Snippets adapted from FlySpell, authored by Manuel Serrano" . "Manuel.Serrano@inria.fr")) (:maintainer "Katherine Whitlock" . "toroidalcode@gmail.com") (:url . "http://github.com/toroidal-code/synonymous.el"))]) -(syndicate . [(20160603 1523) ((evil (1 0))) "evil keybindings for org-mode" single ((:commit . "90cee202a06f5bab48268ebf9f62c43334b69f50") (:keywords "evil" "org" "bindings") (:authors ("Kawin Nikomborirak")) (:maintainer "Kawin Nikomborirak") (:url . "https://github.com/KNX32542/syndicate.git"))]) -(sync-recentf . [(20160326 2001) nil "Synchronize the recent files list between Emacs instances" single ((:commit . "0052561d5c5b5c2684faedc3eead776aec06c3ed") (:keywords "recentf") (:authors ("François Févotte" . "fevotte@gmail.com")) (:maintainer "François Févotte" . "fevotte@gmail.com") (:url . "https://github.com/ffevotte/sync-recentf"))]) -(symon-lingr . [(20150719 1342) ((symon (1 1 2)) (cl-lib (0 5))) "A notification-based Lingr client powered by symon.el" single ((:commit . "056d1a473e36992ff5881e5ce6fdc331cead975f") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(symon . [(20170224 833) nil "tiny graphical system monitor" single ((:commit . "8dd8b6df49b03cd7d31b85aedbe9dd08fb922335") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(symbolword-mode . [(20180401 1427) ((emacs (24)) (f (0 19 0))) "modify word split" single ((:commit . "9bd33e73ecb2a0e3e3757c55c05f46b6937227e0") (:authors ("ncaq" . "ncaq@ncaq.net")) (:maintainer "ncaq" . "ncaq@ncaq.net") (:url . "https://github.com/ncaq/symbolword-mode"))]) -(symbol-overlay . [(20190608 442) ((emacs (24 3))) "Highlight symbols with keymap-enabled overlays" single ((:commit . "e40a7c407f24158c45eaa5f54ed41f5e416a51dc") (:keywords "faces" "matching") (:authors ("wolray" . "wolray@foxmail.com")) (:maintainer "wolray" . "wolray@foxmail.com") (:url . "https://github.com/wolray/symbol-overlay/"))]) -(sx . [(20190114 1523) ((emacs (24 1)) (cl-lib (0 5)) (json (1 3)) (markdown-mode (2 0)) (let-alist (1 0 3))) "StackExchange client. Ask and answer questions on Stack Overflow, Super User, and the likes" tar ((:commit . "49358eae36dd4bb5b9207313b30df085e7f25cef") (:keywords "help" "hypermedia" "tools") (:authors ("Sean Allred" . "code@seanallred.com")) (:maintainer "Sean Allred" . "code@seanallred.com") (:url . "https://github.com/vermiculus/sx.el/"))]) -(sws-mode . [(20150317 1945) nil "(S)ignificant (W)hite(S)pace mode" single ((:commit . "4dbde92542fc7ad61df38776980905a4721d642e") (:authors ("Brian M. Carlson and other contributors")) (:maintainer "Brian M. Carlson and other contributors") (:url . "https://github.com/brianc/jade-mode"))]) -(swoop . [(20160120 1715) ((ht (2 0)) (pcre2el (1 5)) (async (1 1)) (emacs (24))) "Peculiar buffer navigation for Emacs" tar ((:commit . "a5e475db7a9f5db02ba3d08cd3c1c3594e2e01d7") (:keywords "swoop" "inner" "buffer" "search" "navigation") (:authors ("Shingo Fukuyama - http://fukuyama.co")) (:maintainer "Shingo Fukuyama - http://fukuyama.co") (:url . "https://github.com/ShingoFukuyama/emacs-swoop"))]) -(switch-window . [(20181104 340) ((emacs (24))) "A *visual* way to switch window" tar ((:commit . "204f9fc1a39868a2d16ab9370a142c8c9c7a0943") (:keywords "convenience") (:authors ("Dimitri Fontaine" . "dim@tapoueh.org") ("Feng Shu" . "tumashu@163.com")) (:maintainer "Dimitri Fontaine" . "dim@tapoueh.org") (:url . "https://github.com/dimitri/switch-window"))]) -(switch-buffer-functions . [(20171011 1704) nil "Hook run when current buffer changed" single ((:commit . "b8d8e01e21ae8c8c84234dddeb3cc8250814f7ba") (:keywords "hook" "utility") (:authors ("10sr <8slashes+el [at] gmail [dot] com>")) (:maintainer "10sr <8slashes+el [at] gmail [dot] com>") (:url . "https://github.com/10sr/switch-buffer-functions-el"))]) -(swiper-helm . [(20180131 1744) ((emacs (24 1)) (swiper (0 1 0)) (helm (1 5 3))) "Helm version of Swiper." single ((:commit . "93fb6db87bc6a5967898b5fd3286954cc72a0008") (:keywords "matching") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/swiper-helm"))]) -(swiper . [(20190611 858) ((emacs (24 1)) (ivy (0 11 0))) "Isearch with an overview. Oh, man!" single ((:commit . "44b2d7d6a8a81d1ed5c2aaa613eabe7e25c0b9a3") (:keywords "matching") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/swiper"))]) -(swift3-mode . [(20160918 1250) ((emacs (24 4))) "Major-mode for Apple's Swift programming language." tar ((:commit . "4e51265c6905e17d8910e35b0b37cf51e20ecdfe") (:keywords "languages" "swift") (:url . "https://github.com/taku0/swift3-mode"))]) -(swift-mode . [(20190609 507) ((emacs (24 4)) (seq (2 3))) "Major-mode for Apple's Swift programming language." tar ((:commit . "be8d7700cdbf47576d7c4e0a7e0855cce0fe9ad8") (:keywords "languages" "swift") (:url . "https://github.com/swift-emacs/swift-mode"))]) -(sweetgreen . [(20180605 335) ((dash (2 12 1)) (helm (1 5 6)) (request (0 2 0)) (cl-lib (0 5))) "Order Salads from sweetgreen.com" single ((:commit . "e933fe466b5ef0e976967e203f88bd7a012469d1") (:keywords "salad" "food" "sweetgreen" "request") (:authors ("Diego Berrocal" . "cestdiego@gmail.com")) (:maintainer "Diego Berrocal" . "cestdiego@gmail.com") (:url . "https://www.github.com/CestDiego/sweetgreen.el"))]) -(swap-regions . [(20180915 1346) ((emacs (24 3))) "Swap text in two regions" single ((:commit . "f4fd9880cf690e003fcde88dcf2b46adbbbb03cd") (:keywords "convenience") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/swap-regions.el"))]) -(swap-buffers . [(20150506 2139) nil "The quickest way to swap buffers between windows. Based on switch-window package." single ((:commit . "46ab31359b70d935add6c6e9533443116dc51103") (:keywords "window" "swap" "buffer" "exchange") (:authors ("Evgeniy Kazakov" . "evgeniy.kazakov@gmail.com")) (:maintainer "Evgeniy Kazakov" . "evgeniy.kazakov@gmail.com") (:url . "https://github.com/ekazakov/swap-buffers"))]) -(swagger-to-org . [(20160611 56) ((emacs (24)) (cl-lib (0 5)) (json (1 4))) "Convert a swagger.json file into an org-mode file" single ((:commit . "181357c71ea24bede263f5706d8781ad65e16877") (:keywords "ahungry" "emacs" "swagger" "openapi" "orgmode" "org" "export") (:authors ("Matthew Carter" . "m@ahungry.com")) (:maintainer "Matthew Carter" . "m@ahungry.com") (:url . "https://github.com/ahungry/swagger-to-org"))]) -(svnwrapper . [(20180414 1843) ((e2ansi (0 1 1))) "Highlighting and paging for shell command `svn'" tar ((:commit . "de5069f5784e5d9e87a0af0159ba5f28a3716583") (:keywords "faces") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/svnwrapper"))]) -(svg-mode-line-themes . [(20150425 2006) ((xmlgen (0 4))) "SVG-based themes for mode-line" tar ((:commit . "80a0e01839cafbd66899202e7764c33231974259") (:authors ("sabof")) (:maintainer "sabof") (:url . "https://github.com/sabof/svg-mode-line-themes"))]) -(sv-kalender-namnsdagar . [(20190421 1521) nil "Swedish celebrated name of the day" single ((:commit . "fff970f49c77abfc69e37817f25a939818420971") (:keywords "calendar" "swedish" "localization") (:authors ("Mats Lidell" . "mats.lidell@lidells.se")) (:maintainer "Mats Lidell" . "mats.lidell@lidells.se") (:url . "https://github.com/matsl/sv-kalender-namnsdagar"))]) -(suscolors-theme . [(20161109 2015) nil "Colorful theme, inspired by Gruvbox." single ((:commit . "b946e7924aa02fa7441c970026898f17fe97601f") (:url . "https://github.com/TheSuspiciousWombat/SusColors-emacs"))]) -(supergenpass . [(20130329 548) nil "SuperGenPass for Emacs" single ((:commit . "549072ef7b5b82913cadd4758e8a0a9926f0a04a") (:keywords "supergenpass") (:authors ("Jaime Fournier" . "jaimef@linbsd.org")) (:maintainer "Jaime Fournier" . "jaimef@linbsd.org"))]) -(super-save . [(20180929 727) ((emacs (24 4))) "Auto-save buffers, based on your activity." single ((:commit . "2a905b8bdfc93bee16e2d62a61c6211bbe009331") (:keywords "convenience") (:authors ("Bozhidar Batsov" . "bozhidar@batsov.com")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.com") (:url . "https://github.com/bbatsov/super-save"))]) -(suomalainen-kalenteri . [(20190310 910) nil "Finnish national and Christian holidays for calendar" tar ((:commit . "c8c03fe9bae57d4e15c287aef4f98911a3529240"))]) -(sunshine . [(20181029 1654) ((cl-lib (0 5))) "Provide weather and forecast information." single ((:commit . "8959dea03377e61aaca0124ac8d2703daaae6b9a") (:keywords "tools" "weather") (:authors ("Aaron Bieber" . "aaron@aaronbieber.com")) (:maintainer "Aaron Bieber" . "aaron@aaronbieber.com") (:url . "https://github.com/aaronbieber/sunshine.el"))]) -(sunny-day-theme . [(20140413 2125) nil "Emacs24 theme with a light background." single ((:commit . "420e0a6eb33fcc9b75c2c9e88ab60a975d782a00") (:authors ("Martin Haesler")) (:maintainer "Martin Haesler") (:url . "http://github.com/mswift42/sunny-day-theme"))]) -(sunburn-theme . [(20180602 1929) ((emacs (24))) "A low contrast color theme" single ((:commit . "ddb01b6f1f4f823398f7f8e08900c2b4a7811d3b") (:authors ("MartÃn Varela" . "martin@varela.fi")) (:maintainer "MartÃn Varela" . "martin@varela.fi") (:url . "http://github.com/mvarela/Sunburn-Theme"))]) -(suggestion-box . [(20170830 807) ((emacs (25 1)) (popup (0 5 3))) "show tooltip on the cursor" single ((:commit . "50af0776c8caf3c79c4d37fd51cbf304ea34b68e") (:keywords "convenience") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>"))]) -(suggest . [(20180916 1859) ((emacs (24 4)) (loop (1 3)) (dash (2 13 0)) (s (1 11 0)) (f (0 18 2)) (spinner (1 7 3))) "suggest elisp functions that give the output requested" tar ((:commit . "83a2679baf661ee834e9e75921fd546243a6d919") (:keywords "convenience") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk") (:url . "https://github.com/Wilfred/suggest.el"))]) -(sudoku . [(20161111 706) ((emacs (24 4))) "Simple sudoku game, can download puzzles" single ((:commit . "77c11b5041b58fc943cf1668b44b40bae039cb5b") (:keywords "games") (:authors ("Zajcev Evgeny" . "zevlg@yandex.ru")) (:maintainer "Zajcev Evgeny" . "zevlg@yandex.ru"))]) -(sudo-ext . [(20170126 1214) nil "sudo support" single ((:commit . "9d4580f304121ce7b8104bd4bd3b64e4dfa3c9b3") (:keywords "unix") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/sudo-ext.el"))]) -(sudo-edit . [(20180731 1908) ((emacs (24)) (cl-lib (0 5))) "Open files as another user" single ((:commit . "cc3d478937b1accd38742bfceba92af02ee9357d") (:keywords "convenience") (:authors ("Nathaniel Flath" . "flat0103@gmail.com")) (:maintainer "Nathaniel Flath" . "flat0103@gmail.com") (:url . "https://github.com/nflath/sudo-edit"))]) -(sudden-death . [(20180217 23) nil "Totsuzen-no-Shi" single ((:commit . "791a63d3f4df192e71f4232a9a4c5588f4b43dfb") (:authors ("yewton")) (:maintainer "yewton") (:url . "https://github.com/yewton/sudden-death.el"))]) -(sublimity . [(20181121 1311) ((cl-lib (0 3))) "smooth-scrolling, minimap and distraction-free mode" tar ((:commit . "4c8d0280815978fc11e1c5f86266a11c717b0c89") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "https://github.com/zk-phi/sublimity"))]) -(sublime-themes . [(20170606 1844) nil "A collection of themes based on Sublime Text" tar ((:commit . "60ee40af82eb55b79d5ed4026f1911326311603f") (:keywords "faces") (:authors ("Owain Lewis" . "owain@owainlewis.com")) (:maintainer "Owain Lewis" . "owain@owainlewis.com"))]) -(subemacs . [(20170401 934) nil "Evaluating expressions in a fresh Emacs subprocess" single ((:commit . "18d53939fec8968c08dfc5aff7240ca07efb1aac") (:keywords "extensions" "lisp" "multiprocessing") (:authors ("Klaus-Dieter Bauer" . "bauer.klaus.dieter@gmail.com")) (:maintainer "Klaus-Dieter Bauer" . "bauer.klaus.dieter@gmail.com") (:url . "https://github.com/kbauer/subemacs"))]) -(subatomic256-theme . [(20130621 210) nil "Fork of subatomic-theme for terminals." single ((:commit . "326177d6f99cd2b1d30df695e67ee3bc441cd96f") (:authors ("John Olsson" . "john@cryon.se")) (:maintainer "John Olsson" . "john@cryon.se") (:url . "https://github.com/cryon/subatomic256"))]) -(subatomic-theme . [(20190607 1022) nil "Low contrast bluish color theme" single ((:commit . "a13cdac97a6d0488b13bc36d4c2f4d4102ff6a31") (:keywords "color-theme" "blue" "low contrast") (:authors ("John Olsson" . "john@cryon.se")) (:maintainer "John Olsson" . "john@cryon.se") (:url . "https://github.com/cryon/subatomic"))]) -(stylus-mode . [(20150313 1512) ((sws-mode (0))) "Major mode for editing .jade files" single ((:commit . "4dbde92542fc7ad61df38776980905a4721d642e") (:authors ("Brian M. Carlson and other contributors")) (:maintainer "Brian M. Carlson and other contributors") (:url . "https://github.com/brianc/jade-mode"))]) -(stylefmt . [(20161025 824) nil "Stylefmt interface" single ((:commit . "7a38f26bf8ff947215f34f0a064c7ca80575ccbc") (:keywords "style" "code" "formatter") (:authors ("κeen")) (:maintainer "κeen") (:url . "https://github.com/KeenS/stylefmt.el"))]) -(stupid-indent-mode . [(20170525 1117) nil "Plain stupid indentation minor mode" single ((:commit . "3295e7de5e2cfddc3bf0e462e852bf58972f5d70") (:authors ("Mihai Bazon" . "mihai.bazon@gmail.com")) (:maintainer "Mihai Bazon" . "mihai.bazon@gmail.com"))]) -(stumpwm-mode . [(20140131 216) nil "special lisp mode for evaluating code into running stumpwm" single ((:commit . "61a7cf27e49e0779a53c018b2342f5f1c5cc70b4") (:keywords "comm" "lisp" "tools") (:maintainer "Shawn Betts"))]) -(stripe-buffer . [(20141208 1508) ((cl-lib (1 0))) "Use a different background for even and odd lines" single ((:commit . "c252080f55cb78c951b19ebab9687f6d00237baf") (:authors ("Andy Stewart" . "lazycat.manatee@gmail.com")) (:maintainer "sabof" . "esabof@gmail.com") (:url . "https://github.com/sabof/stripe-buffer"))]) -(string-utils . [(20140508 2041) ((list-utils (0 4 2))) "String-manipulation utilities" single ((:commit . "c2232d691617973ecf12a970c6008a161c21da14") (:keywords "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/string-utils"))]) -(string-inflection . [(20180827 1301) nil "underscore -> UPCASE -> CamelCase -> lowerCamelCase conversion of names" single ((:commit . "e9a50855a4c718592c28a5a892f164ecf46e39a8") (:keywords "elisp") (:authors ("akicho8" . "akicho8@gmail.com")) (:maintainer "akicho8" . "akicho8@gmail.com"))]) -(string-edit . [(20160411 656) ((dash (1 2 0))) "Avoid escape nightmares by editing string in separate buffer" single ((:commit . "c44b65b4c5e9f52be9c14d88ca2f402a18d9e1dd") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(strie . [(20160211 2222) ((cl-lib (0 5))) "A simple trie data structure implementation" single ((:commit . "eb7efb0cccc127c414f6a64db11454869d9c10a8") (:authors ("James Atwood" . "jatwood@cs.umass.edu")) (:maintainer "James Atwood" . "jatwood@cs.umass.edu"))]) -(strace-mode . [(20171116 2039) nil "strace output syntax highlighting" single ((:commit . "2901baa968d5180ab985ac40ca22cc20914d01f5") (:keywords "languages") (:authors ("Preston Moore" . "prestonkmoore@gmail.com")) (:maintainer "Preston Moore" . "prestonkmoore@gmail.com"))]) -(stock-ticker . [(20150204 1052) ((s (1 9 0)) (request (0 2 0))) "Show stock prices in mode line" single ((:commit . "f2e564142c9de84232839a5b01979cf95b04d6a9") (:keywords "comms") (:authors ("Gunther Hagleitner")) (:maintainer "Gunther Hagleitner") (:url . "https://github.com/hagleitn/stock-ticker"))]) -(stickyfunc-enhance . [(20150429 1814) ((emacs (24 3))) "An enhancement to stock `semantic-stickyfunc-mode'" single ((:commit . "13bdba51fcd83ccbc3267959d23afc94d458dcb0") (:keywords "c" "languages" "tools") (:authors ("Tu, Do Hoang" . "tuhdo1710@gmail.com")) (:maintainer "Tu, Do Hoang") (:url . "https://github.com/tuhdo/semantic-stickyfunc-enhance"))]) -(sticky . [(20170926 36) nil "Sticky key for capital letters" single ((:commit . "fec4e1af38f17f5cd80eca361d8e8ef8772db366") (:keywords "convenience") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/sticky.el"))]) -(stgit . [(20171130 1559) nil "major mode for StGit interaction" single ((:commit . "c61057a5b99e1b3f42b724f49c2ea89d7e98f89b") (:authors ("David KÃ¥gedal" . "davidk@lysator.liu.se")) (:maintainer "David KÃ¥gedal" . "davidk@lysator.liu.se") (:url . "http://www.procode.org/stgit"))]) -(stem-english . [(20180109 358) ((emacs (24 3))) "- routines for stemming English word" single ((:commit . "c9fc4c6ed6bf82382e479dae80912f4ae17d31f4") (:keywords "text") (:authors ("Tsuchiya Masatoshi" . "tsuchiya@pine.kuee.kyoto-u.ac.jp")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "http://github.com/kawabata/stem-english"))]) -(stem . [(20131102 1109) nil "Routines for stemming" single ((:commit . "d74e6611d6ba5025e0276a2cc7c8a90f46bfa9ac") (:keywords "stemming") (:authors ("Tsuchiya Masatoshi" . "tsuchiya@pine.kuee.kyoto-u.ac.jp")) (:maintainer "Tsuchiya Masatoshi" . "tsuchiya@pine.kuee.kyoto-u.ac.jp") (:url . "https://github.com/yuutayamada/stem"))]) -(steam . [(20171109 13) ((cl-lib (0 5))) "Organize and launch Steam games" single ((:commit . "d6ca2a828b0824da51978397e198bf91c51ce793") (:keywords "games") (:authors ("Erik Sjöstrand")) (:maintainer "Erik Sjöstrand") (:url . "http://github.com/Kungsgeten/steam.el"))]) -(status . [(20151230 1408) nil "This package adds support for status icons to Emacs." tar ((:commit . "b62c74bf272566f82a68622f29fb9edafea0f241"))]) -(state . [(20180627 1956) ((emacs (24))) "Quick navigation between workspaces" single ((:commit . "258fe1cba00bdc2c600f866bb0406c719661d0a6") (:keywords "convenience" "workspaces") (:authors ("Sylvain Rousseau <thisirs at gmail dot com>")) (:maintainer "Sylvain Rousseau <thisirs at gmail dot com>") (:url . "https://github.com/thisirs/state.git"))]) -(stash . [(20151117 1427) nil "lightweight persistent caching" single ((:commit . "c2e494d20c752b80ebbdffbf66687b3cdfc425ad") (:keywords "extensions" "data" "internal" "lisp") (:authors ("Sean Allred" . "code@seanallred.com")) (:maintainer "Sean Allred" . "code@seanallred.com") (:url . "https://www.github.com/vermiculus/stash.el/"))]) -(start-menu . [(20160426 1225) ((cl-lib (0 5)) (config-parser (0 1))) "start-menu for executing external program like in windows" single ((:commit . "f7d33fed7ad2dc61156f1c1cff9e1805366fbd69") (:keywords "convenience" "menu") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/el-start-menu"))]) -(standoff-mode . [(20171115 1731) nil "Create stand-off markup, also called external markup." tar ((:commit . "cf84b14066d63694d931395c6026fd0245d8a62b"))]) -(stan-snippets . [(20161024 258) ((stan-mode (9 2 0)) (yasnippet (0 8 0))) "Yasnippets for Stan" tar ((:commit . "a8e88473ef996b455523dc3fbcf2d8520659652f") (:keywords "snippets") (:authors ("Jeffrey Arnold" . "jeffrey.arnold@gmail.com")) (:maintainer "Jeffrey Arnold" . "jeffrey.arnold@gmail.com") (:url . "http://github.com/stan-dev/stan-mode"))]) -(stan-mode . [(20180110 2241) nil "Major mode for editing Stan files" tar ((:commit . "a8e88473ef996b455523dc3fbcf2d8520659652f") (:keywords "languanges") (:authors ("Jeffrey Arnold" . "jeffrey.arnold@gmail.com") ("Daniel Lee" . "bearlee@alum.mit.edu")) (:maintainer "Jeffrey Arnold" . "jeffrey.arnold@gmail.com") (:url . "http://github.com/stan-dev/stan-mode"))]) -(stack-mode . [(20150923 1523) ((haskell-mode (13 14)) (cl-lib (0 5)) (flycheck (0 23))) "A minor mode enabling various features based on stack-ide." tar ((:commit . "f3481e239dde9817152ec00e32bfc3ebf5aaf2cb") (:keywords "haskell" "stack") (:url . "https://github.com/commercialhaskell/stack-ide"))]) -(ssh-tunnels . [(20181129 1536) ((cl-lib (0 5)) (emacs (24))) "Manage SSH tunnels" tar ((:commit . "903bfd0d2d225c7e37fcc8c7596bd0a387384f05") (:keywords "tools" "convenience") (:authors ("death <github.com/death>")) (:maintainer "death <github.com/death>") (:url . "http://github.com/death/ssh-tunnels"))]) -(ssh-deploy . [(20190610 1256) ((emacs (25))) "Deployment via Tramp, global or per directory." tar ((:commit . "b8f976aaea5d70dbb199a0bde39b8db7e97397b3") (:keywords "tools" "convenience") (:authors ("Christian Johansson" . "christian@cvj.se")) (:maintainer "Christian Johansson" . "christian@cvj.se") (:url . "https://github.com/cjohansson/emacs-ssh-deploy"))]) -(ssh-config-mode . [(20180922 951) nil "Mode for fontification of ~/.ssh/config" tar ((:commit . "398eb8a882a1ae4dc9445d24dc62eb22b8ef51b9") (:keywords "ssh" "config" "emacs") (:authors ("Harley Gorrell" . "harley@panix.com")) (:maintainer "Harley Gorrell" . "harley@panix.com") (:url . "https://github.com/jhgorrell/ssh-config-mode-el"))]) -(ssh-agency . [(20180508 26) ((emacs (24 4)) (dash (2 10 0))) "manage ssh-agent from Emacs" single ((:commit . "d9dbedd773ad3a831e02e162c47936d6814a850a") (:authors ("Noam Postavsky" . "npostavs@user.sourceforge.net")) (:maintainer "Noam Postavsky" . "npostavs@user.sourceforge.net") (:url . "https://github.com/magit/ssh-agency"))]) -(ssh . [(20120904 2042) nil "Support for remote logins using ssh." single ((:commit . "c17cf5b43df8ac4662a0580f85898e1f078df0d1") (:keywords "unix" "comm") (:authors ("Noah Friedman" . "friedman@splode.com")) (:maintainer "Ian Eure" . "ian.eure@gmail.com"))]) -(ssass-mode . [(20190521 249) ((emacs (24 3))) "Edit Sass without a Turing Machine" single ((:commit . "c2c610abd85fecd171466bf5a9a4943bd62ffda5") (:keywords "languages" "sass") (:authors ("Adam Niederer" . "adam.niederer@gmail.com")) (:maintainer "Adam Niederer" . "adam.niederer@gmail.com") (:url . "http://github.com/AdamNiederer/ssass-mode"))]) -(srv . [(20180715 1959) ((emacs (24 3))) "perform SRV DNS requests" single ((:commit . "714387d5a5cf34d8d8cd96bdb1f9cb8ded823ff7") (:keywords "comm") (:authors ("Magnus Henoch" . "magnus.henoch@gmail.com")) (:maintainer "Magnus Henoch" . "magnus.henoch@gmail.com") (:url . "https://github.com/legoscia/srv.el"))]) -(srefactor . [(20180703 1810) ((emacs (24 4))) "A refactoring tool based on Semantic parser framework" tar ((:commit . "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5") (:keywords "c" "languages" "tools") (:authors ("Tu, Do Hoang" . "tuhdo1710@gmail.com")) (:maintainer "Tu, Do Hoang") (:url . "https://github.com/tuhdo/semantic-refactor"))]) -(srcery-theme . [(20190526 1227) ((emacs (24))) "Dark color theme." single ((:commit . "a47a40c7c5d39d251bf15e45f184565c5240b33e") (:keywords "faces") (:authors ("Daniel Berg")) (:maintainer "Daniel Berg") (:url . "https://github.com/srcery-colors/srcery-emacs"))]) -(sr-speedbar . [(20161025 831) nil "Same frame speedbar" single ((:commit . "77a83fb50f763a465c021eca7343243f465b4a47") (:keywords "speedbar" "sr-speedbar.el") (:authors ("Sebastian Rose" . "sebastian_rose@gmx.de")) (:maintainer "Sebastian Rose" . "sebastian_rose@gmx.de") (:url . "http://www.emacswiki.org/emacs/download/sr-speedbar.el"))]) -(sqlup-mode . [(20170610 1537) nil "Upcase SQL words for you" single ((:commit . "04970977b4abb4d44301651618bbf1cdb0b263dd") (:keywords "sql" "tools" "redis" "upcase") (:authors ("Aldric Giacomoni" . "trevoke@gmail.com")) (:maintainer "Aldric Giacomoni" . "trevoke@gmail.com") (:url . "https://github.com/trevoke/sqlup-mode.el"))]) -(sqlite . [(20180708 1711) nil "use sqlite via elisp" single ((:commit . "dad42b8bbca4994be1871343dd18fd6528ee5797") (:authors ("Christian Giménez")) (:maintainer "Christian Giménez"))]) -(sqlformat . [(20190420 2256) ((emacs (24)) (reformatter (0 3))) "Reformat SQL using sqlformat or pgformatter" single ((:commit . "f7f46be6f06b83642c312151f3b5276f8830d9d7") (:keywords "languages") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/sqlformat"))]) -(sql-presto . [(20190113 1742) nil "No description available." single ((:commit . "bcda455e300a1af75c7bb805882329bc844703b2"))]) -(sql-impala . [(20181218 410) nil "comint support for Cloudera Impala" single ((:commit . "466e7c0c789ec3e5e8a276c8f6754f91bb584c3e") (:keywords "sql" "impala") (:authors ("Jason Terk" . "jason@goterkyourself.com")) (:maintainer "Jason Terk" . "jason@goterkyourself.com") (:url . "https://github.com/jterk/sql-impala"))]) -(sql-clickhouse . [(20180302 1555) ((emacs (24))) "support ClickHouse as SQL interpreter" single ((:commit . "2edccd94145c55a040a3a87193793f06cf01f64f") (:authors ("Robert Schwarz" . "mail@rschwarz.net")) (:maintainer "Robert Schwarz" . "mail@rschwarz.net") (:url . "https://github.com/leethargo/sql-clickhouse"))]) -(spu . [(20161214 324) ((emacs (24 4)) (signal (1 0)) (timp (1 2 0))) "Silently upgrade package in the background" tar ((:commit . "41eec86b595816e3852e8ad1a8e07e51a27fd065") (:keywords "convenience" "package") (:authors ("Mola-T" . "Mola@molamola.xyz")) (:maintainer "Mola-T" . "Mola@molamola.xyz") (:url . "https://github.com/mola-T/spu"))]) -(sprunge . [(20160301 243) ((request (0 2 0)) (cl-lib (0 5))) "Upload pastes to sprunge.us" single ((:commit . "0fd386b8b29c4175022a04ad70ea5643185b6726") (:keywords "tools") (:authors ("Tom Jakubowski")) (:maintainer "Tom Jakubowski"))]) -(sproto-mode . [(20151115 1805) nil "Major mode for editing sproto." single ((:commit . "0583a88273204dccd884b7edaa3590cefd31e7f7") (:keywords "sproto") (:authors ("m2q1n9")) (:maintainer "m2q1n9"))]) -(sprintly-mode . [(20121006 534) ((furl (0 0 2))) "Major mode for dealing with sprint.ly" single ((:commit . "6695892bae5860b5268bf3ae62be990ee9b63c11") (:authors ("Justin Lilly" . "justin@justinlilly.com")) (:maintainer "Justin Lilly" . "justin@justinlilly.com") (:url . "https://github.com/sprintly/sprintly-mode"))]) -(springboard . [(20170106 755) ((helm (1 6 9))) "Temporarily change default-directory for one command" single ((:commit . "687d1e5898a880878995dc9bffe93b4598366203") (:keywords "helm") (:authors ("John Wiegley" . "jwiegley@gmail.com")) (:maintainer "John Wiegley" . "jwiegley@gmail.com") (:url . "https://github.com/jwiegley/springboard"))]) -(spray . [(20160304 2220) nil "a speed reading mode" single ((:commit . "00638bc916227f2f961013543d10e85a43a32e29") (:keywords "convenience") (:authors ("Ian Kelling" . "ian@iankelling.org")) (:maintainer "Ian Kelling" . "ian@iankelling.org") (:url . "https://github.com/ian-kelling/spray"))]) -(spotlight . [(20150929 755) ((emacs (24 1)) (swiper (0 6 0)) (counsel (0 6 0))) "search files with Mac OS X spotlight" single ((:commit . "ab902900f22e7d1ea2dd8169441d2da7155aaa68") (:keywords "search" "external") (:authors ("Ben Maughan" . "benmaughan@gmail.com")) (:maintainer "Ben Maughan" . "benmaughan@gmail.com") (:url . "http://www.pragmaticemacs.com"))]) -(spotify . [(20181030 810) ((cl-lib (0 5))) "Control the spotify application from emacs" single ((:commit . "29577cf1188161f98b8358c149aaf47b2c137902") (:keywords "convenience") (:authors ("R.W. van 't Veer")) (:maintainer "R.W. van 't Veer") (:url . "https://github.com/remvee/spotify-el"))]) -(splitter . [(20170809 2208) nil "Manage window splits" single ((:commit . "6bdb51e9a346907d60a9625f6180bddd06be6674") (:keywords "frames" "convenience") (:authors ("Steven Thomas")) (:maintainer "Steven Thomas") (:url . "https://github.com/chumpage/chumpy-windows"))]) -(splitjoin . [(20150505 1432) ((cl-lib (0 5))) "Transition between multiline and single-line code" single ((:commit . "e2945ee269e6e90f0243d6f2a33e067bb0a2873c") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-splitjoin"))]) -(spiral . [(20180223 1140) ((emacs (25 1)) (a (0 1 0 -3 4)) (avy (0 4 0)) (clojure-mode (5 6 0)) (highlight (0)) (treepy (1 0 0))) "Clojure IDE based on UNREPL" tar ((:commit . "907b9792467139a942ba7b07ca0276b90770baf9") (:keywords "languages" "clojure") (:authors ("Daniel Barreto" . "daniel@barreto.tech")) (:maintainer "Daniel Barreto" . "daniel@barreto.tech") (:url . "https://github.com/Unrepl/spiral"))]) -(spice-mode . [(20190608 1033) ((emacs (24 3))) "Major mode for SPICE" single ((:commit . "e5e0644f03f9696f56dd69e2b6979da7f30ed600") (:keywords "spice" "spice2g6" "spice3" "eldo" "hspice" "layla" "mondriaan" "fasthenry" "cdl" "spectre compatibility" "netlist editing") (:authors ("Geert A. M. Van der Plas" . "geert_vanderplas@email.com") ("Emmanuel Rouat" . "emmanuel.rouat@wanadoo.fr") ("Carlin J. Vieri, MIT AI Lab" . "cvieri@ai.mit.edu")) (:maintainer "Geert A. M. Van der Plas" . "geert_vanderplas@email.com") (:url . "http://spice-mode.4t.com/"))]) -(sphinx-mode . [(20180620 915) ((f (0 20 0)) (dash (2 14 1))) "Minor mode providing sphinx support." tar ((:commit . "b5ac514e213459dcc57184086f10b5b6be3cecd8"))]) -(sphinx-frontend . [(20161025 758) nil "Launch build process for rst documents via sphinx." single ((:commit . "0cbb03361c245382d3e679dded30c4fc1713c252") (:keywords "compile" "sphinx" "restructuredtext") (:authors ("Kostafey" . "kostafey@gmail.com")) (:maintainer "Kostafey" . "kostafey@gmail.com") (:url . "https://github.com/kostafey/sphinx-frontend"))]) -(sphinx-doc . [(20160116 1117) ((s (1 9 0)) (cl-lib (0 5)) (dash (2 10 0))) "Sphinx friendly docstrings for Python functions" single ((:commit . "f39da2e6cae55d5d7c7ce887e69755b7529bcd67") (:keywords "sphinx" "python") (:authors ("Vineet Naik" . "naikvin@gmail.com")) (:maintainer "Vineet Naik" . "naikvin@gmail.com") (:url . "https://github.com/naiquevin/sphinx-doc.el"))]) -(speeddating . [(20180319 723) ((emacs (25))) "Increase date and time at point" single ((:commit . "df69db0560f19636a66a74f3d88c793bbb18b21e") (:keywords "date" "time") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/emacs-speeddating"))]) -(speed-type . [(20190526 953) ((emacs (24 3)) (cl-lib (0 3))) "Practice touch and speed typing" single ((:commit . "c98f9ebd4abf96db967f9c0dff9ccfa4b7f4035b") (:keywords "games") (:authors ("Gunther Hagleitner")) (:maintainer "Julien Pagès" . "j.parkouss@gmail.com") (:url . "https://github.com/parkouss/speed-type"))]) -(speechd-el . [(20190616 1309) nil "Client to speech synthesizers and Braille displays." tar ((:commit . "b3d62e62f9f23b08b62c1363e415c4f8a8f20029"))]) -(speech-tagger . [(20170728 1829) ((cl-lib (0 5))) "tag parts of speech using coreNLP" tar ((:commit . "61955b40d4e8b09e66a3e8033e82893f81657c06") (:keywords "speech" "tag" "nlp" "language" "corenlp" "parsing" "natural") (:authors ("Danny McClanahan" . "danieldmcclanahan@gmail.com")) (:maintainer "Danny McClanahan" . "danieldmcclanahan@gmail.com") (:url . "https://github.com/cosmicexplorer/speech-tagger"))]) -(sparql-mode . [(20180320 1802) ((cl-lib (0 5)) (emacs (24 3))) "Edit and interactively evaluate SPARQL queries." tar ((:commit . "a00bb622c54086ac1ee96c265bf7fbef12c68089") (:authors ("Craig Andera <candera at wangdera dot com>")) (:maintainer "Bjarte Johansen <Bjarte dot Johansen at gmail dot com>") (:url . "https://github.com/ljos/sparql-mode"))]) -(sparkline . [(20150101 1319) ((cl-lib (0 3))) "Make sparkline images from a list of numbers" single ((:commit . "a2b5d817d272d6363b67ed8f8cc75499a19fa8d2") (:keywords "extensions") (:authors ("Willem Rein Oudshoorn" . "woudshoo@xs4all.nl")) (:maintainer "Willem Rein Oudshoorn" . "woudshoo@xs4all.nl"))]) -(spark . [(20160415 201) ((emacs (24 3))) "sparkline generation" single ((:commit . "0bf148c3ede3b31d56fd75f347cdd0b0eae60025") (:keywords "lisp" "data") (:authors ("Alvin Francis Dumalus")) (:maintainer "Alvin Francis Dumalus") (:url . "https://github.com/alvinfrancis/spark"))]) -(spaces . [(20170809 2208) nil "Create and switch between named window configurations." single ((:commit . "6bdb51e9a346907d60a9625f6180bddd06be6674") (:keywords "frames" "convenience") (:authors ("Steven Thomas")) (:maintainer "Steven Thomas") (:url . "https://github.com/chumpage/chumpy-windows"))]) -(spacemacs-theme . [(20190617 633) nil "Color theme with a dark and light versions" tar ((:commit . "97d0f5ab5bea9f37fb4afe31102fe6e32e40ceda") (:keywords "color" "theme") (:url . "https://github.com/nashamri/spacemacs-theme"))]) -(spaceline-all-the-icons . [(20190325 1602) ((emacs (24 4)) (all-the-icons (2 6 0)) (spaceline (2 0 0)) (memoize (1 0 1))) "A Spaceline theme using All The Icons" tar ((:commit . "5afd48c10f1bd42d9b9648c5e64596b72f3e9042") (:keywords "convenience" "lisp" "tools") (:authors ("Dominic Charlesworth" . "dgc336@gmail.com")) (:maintainer "Dominic Charlesworth" . "dgc336@gmail.com") (:url . "https://github.com/domtronn/spaceline-all-the-icons.el"))]) -(spaceline . [(20181223 2024) ((emacs (24 4)) (cl-lib (0 5)) (powerline (2 3)) (dash (2 11 0)) (s (1 10 0))) "Modeline configuration library for powerline" tar ((:commit . "ae45a819ea7ae52febb4d7d82170af44dff10f19") (:keywords "mode-line" "powerline" "spacemacs") (:authors ("Eivind Fonn" . "evfonn@gmail.com")) (:maintainer "Eivind Fonn" . "evfonn@gmail.com") (:url . "https://github.com/TheBB/spaceline"))]) -(spacegray-theme . [(20150719 1931) ((emacs (24 1))) "A Hyperminimal UI Theme" single ((:commit . "7f70ee36297e5ccf9bc90b1f81472024f5a7a749") (:keywords "themes") (:authors ("Bruce Williams" . "brwcodes@gmail.com")) (:maintainer "Bruce Williams" . "brwcodes@gmail.com") (:url . "http://github.com/bruce/emacs-spacegray-theme"))]) -(sourcetrail . [(20170410 2137) ((emacs (24 4))) "Communication with Sourcetrail" single ((:commit . "b8d5557aa565ae979622312576db20515f65f977") (:keywords "external" "tool") (:authors ("Andreas Stallinger" . "astallinger@sourcetrail.com")) (:maintainer "Andreas Stallinger" . "astallinger@sourcetrail.com"))]) -(sourcerer-theme . [(20161014 1625) nil "A version of sourcerer by xero" single ((:commit . "c7f8e665d53bb48fb72f95f706710d53d24bd407") (:keywords "themes") (:authors ("Bryan Gilbert" . "gilbertw1@gmail.com")) (:maintainer "Bryan Gilbert" . "gilbertw1@gmail.com") (:url . "http://github.com/gilbertw1/sourcerer-emacs"))]) -(sourcemap . [(20161216 540) ((emacs (24 3))) "Sourcemap parser" single ((:commit . "64c89d296186f48d9135fb8aad501de19f64bceb") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-sourcemap"))]) -(sourcekit . [(20180101 834) ((emacs (24 3)) (dash (2 12 1)) (dash-functional (1 2 0)) (request (0 2 0))) "Library to interact with sourcekittendaemon" single ((:commit . "abf9bc5a0102eb666d3aa6d6bf22f6efcc852781") (:keywords "tools" "processes") (:authors ("Nathan Kot" . "nk@nathankot.com")) (:maintainer "Nathan Kot" . "nk@nathankot.com") (:url . "https://github.com/nathankot/company-sourcekit"))]) -(soundklaus . [(20160314 1231) ((dash (2 12 1)) (emacs (24)) (emms (4 0)) (s (1 11 0)) (pkg-info (0 4)) (cl-lib (0 5)) (request (0 2 0))) "Play music on SoundCloud with Emacs via EMMS" tar ((:commit . "09ec030843482594beae2664b8fe1e0ad1e66472") (:keywords "soundcloud" "music" "emms") (:authors ("r0man" . "roman@burningswell.com")) (:maintainer "r0man" . "roman@burningswell.com") (:url . "https://github.com/r0man/soundklaus.el"))]) -(soundcloud . [(20150502 326) ((emms (20131016)) (json (1 2)) (deferred (0 3 1)) (string-utils (0 3 2)) (request (20140316 417)) (request-deferred (20130526 1015))) "a SoundCloud client for Emacs" single ((:commit . "f998d4276ea90258909c698f6a5a51fccb667c08") (:keywords "soundcloud" "music" "audio") (:authors ("Travis Thieman" . "travis.thieman@gmail.com")) (:maintainer "Travis Thieman" . "travis.thieman@gmail.com"))]) -(sound-wav . [(20181126 1726) ((deferred (0 3 1)) (cl-lib (0 5))) "Play wav file" single ((:commit . "49a9f10334b914cf6429e49b5449e0711a3aa251") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-sound-wav"))]) -(sotlisp . [(20190211 2026) ((emacs (24 1))) "Write lisp at the speed of thought." single ((:commit . "ed2356a325c7a4a88ec1bd31381c8666e8997e97") (:keywords "convenience" "lisp") (:authors ("Artur Malabarba" . "emacs@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com") (:url . "https://github.com/Malabarba/speed-of-thought-lisp"))]) -(sotclojure . [(20170922 8) ((emacs (24 1)) (clojure-mode (4 0 0)) (cider (0 8)) (sotlisp (1 3))) "Write clojure at the speed of thought." tar ((:commit . "a480c887b53cb007b7b099c5ffcab89b9e59d7bc") (:keywords "convenience" "clojure") (:authors ("Artur Malabarba" . "emacs@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com") (:url . "https://github.com/Malabarba/speed-of-thought-clojure"))]) -(sos . [(20141215 403) ((org (7))) "StackOverflow Search" single ((:commit . "1573adca912b88b5010d99a25c83a5b2313bd39c") (:keywords "tools" "search" "questions") (:authors ("Rudolf Olah")) (:maintainer "Rudolf Olah") (:url . "https://github.com/omouse/emacs-sos"))]) -(sort-words . [(20160929 1335) nil "Sort words in a selected region" single ((:commit . "7b6e108f80237363faf7ec28b2c58dec270b8601") (:keywords "tools") (:authors ("\"Aleksandar Simic\"" . "asimic@gmail.com")) (:maintainer "\"Aleksandar Simic\"" . "asimic@gmail.com") (:url . "http://github.org/dotemacs/sort-words.el"))]) -(soothe-theme . [(20141027 1441) ((emacs (24 1))) "a dark colorful theme for Emacs24." single ((:commit . "0786fe70c6c1b4ddcfb932fdc6862b9611cfc09b") (:authors ("Jason Milkins" . "jasonm23@gmail.com")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com") (:url . "https://github.com/jasonm23/emacs-soothe-theme"))]) -(sonic-pi . [(20171205 1205) ((cl-lib (0 5)) (osc (0 1)) (dash (2 2 0)) (emacs (24)) (highlight (0))) "A Emacs client for SonicPi" tar ((:commit . "3cf101b3b299735ed91658c7791ea4f04164e076") (:keywords "sonicpi" "ruby") (:authors ("Joseph Wilk" . "joe@josephwilk.net")) (:maintainer "Joseph Wilk" . "joe@josephwilk.net") (:url . "http://www.github.com/repl-electric/sonic-pi.el"))]) -(solidity-mode . [(20190302 909) nil "Major mode for ethereum's solidity language" tar ((:commit . "47f15b2663a6cf92ae6ebf655841a9509ad79017") (:keywords "languages" "solidity") (:authors ("Lefteris Karapetsas " . "lefteris@refu.co")) (:maintainer "Lefteris Karapetsas " . "lefteris@refu.co"))]) -(solidity-flycheck . [(20181117 1518) ((flycheck (32 -4)) (solidity-mode (0 1 9))) "Flycheck integration for solidity emacs mode" single ((:commit . "47f15b2663a6cf92ae6ebf655841a9509ad79017") (:keywords "languages" "solidity" "flycheck") (:authors ("Lefteris Karapetsas " . "lefteris@refu.co")) (:maintainer "Lefteris Karapetsas " . "lefteris@refu.co"))]) -(solarized-theme . [(20190513 705) ((emacs (24 1)) (cl-lib (0 5)) (dash (2 6 0))) "The Solarized color theme, ported to Emacs." tar ((:commit . "c42a932e5c467c1ce12c42276d35bfb8f666e96d"))]) -(solaire-mode . [(20190425 42) ((emacs (24 4)) (cl-lib (0 5))) "make certain buffers grossly incandescent" single ((:commit . "77b12d27ae733adc6e8762b9e276e40c94d31f92") (:keywords "dim" "bright" "window" "buffer" "faces") (:authors ("Henrik Lissner <http://github/hlissner>")) (:maintainer "Henrik Lissner" . "henrik@lissner.net") (:url . "https://github.com/hlissner/emacs-solaire-mode"))]) -(soft-stone-theme . [(20140614 835) ((emacs (24))) "Emacs 24 theme with a light background." single ((:commit . "fb475514cfb02cf30ce358a61c48e46614344d48") (:authors ("Martin Haesler")) (:maintainer "Martin Haesler") (:url . "http://github.com/mswift42/soft-stone-theme"))]) -(soft-morning-theme . [(20150918 2041) nil "Emacs24 theme with a light background." single ((:commit . "c0f9c70c97ef2be2a093cf839c4bfe27740a111c") (:authors ("Martin Haesler")) (:maintainer "Martin Haesler") (:url . "http://github.com/mswift42/soft-morning-theme"))]) -(soft-charcoal-theme . [(20140420 1643) nil "Dark charcoal theme with soft colors" single ((:commit . "5607ab977fae6638e78b1495e02da8955c9ba19f") (:authors ("Martin Haesler")) (:maintainer "Martin Haesler") (:url . "http://github.com/mswift42/soft-charcoal-theme"))]) -(socyl . [(20170212 642) ((s (1 11 0)) (dash (2 12 0)) (pkg-info (0 5 0)) (cl-lib (0 5))) "Frontend for several search tools" tar ((:commit . "1ef2da42f66f3ab31a34131e51648f352416f0ba") (:keywords "ripgrep" "sift" "ack" "pt" "ag" "grep" "search") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/socyl"))]) -(soar-mode . [(20190503 1843) nil "A major mode for the Soar language" single ((:commit . "13b6fca62ea6574d230516fddf359a61f6558ecd") (:keywords "languages" "soar") (:url . "https://github.com/adeschamps/soar-mode"))]) -(snoopy . [(20171008 2004) ((emacs (24)) (cl-lib (0 6))) "minor mode for number row unshifted character insertion" single ((:commit . "ec4123bdebfe0bb7bf4feaac2dc02b59caffe386") (:keywords "lisp") (:authors ("António Nuno Monteiro" . "anmonteiro@gmail.com")) (:maintainer "António Nuno Monteiro" . "anmonteiro@gmail.com"))]) -(snippet . [(20130210 2315) nil "Insert snippets of text into a buffer" single ((:commit . "11d00dd803874b93836f2010b08bd2c97b0f3c63") (:authors ("Pete Kazmier")) (:maintainer "Pete Kazmier"))]) -(snazzy-theme . [(20170823 1832) ((emacs (24)) (base16-theme (2 1))) "An elegant syntax theme with bright colors" single ((:commit . "57a1763b49b4a776084c16bc70c219246fa5b412") (:keywords "faces" "theme" "color" "snazzy") (:url . "https://github.com/weijiangan/emacs-snazzy/"))]) -(snapshot-timemachine-rsnapshot . [(20170324 1213) ((snapshot-timemachine (20160222 132)) (seq (2 19))) "rsnapshot backend for snapshot-timemachine" single ((:commit . "72b0b700d80f1a0442e62bbbb6a0c8c59182f97f") (:authors ("Nicolas Petton" . "nicolas@petton.fr")) (:maintainer "Nicolas Petton" . "nicolas@petton.fr"))]) -(snapshot-timemachine . [(20161221 929) ((emacs (24 4))) "Step through (Btrfs, ZFS, ...) snapshots of files" single ((:commit . "99efcebab309b11ed512a8dc62555d3834df5efb") (:authors ("Thomas Winant" . "dewinant@gmail.com")) (:maintainer "Thomas Winant" . "dewinant@gmail.com") (:url . "https://github.com/mrBliss/snapshot-timemachine"))]) -(snakemake-mode . [(20190412 228) ((emacs (24 5)) (cl-lib (0 5)) (magit-popup (2 4 0))) "Major mode for editing Snakemake files" tar ((:commit . "d49c6580e5e01a5e80198f4026caf1d5a717f8a0") (:keywords "tools") (:authors ("Kyle Meyer" . "kyle@kyleam.com")) (:maintainer "Kyle Meyer" . "kyle@kyleam.com") (:url . "https://github.com/kyleam/snakemake-mode"))]) -(smyx-theme . [(20141127 828) nil "smyx Color Theme" single ((:commit . "6263f6b401bbabaed388c8efcfc0be2e58c51401") (:keywords "color" "theme" "smyx") (:authors ("Uriel G Maldonado" . "uriel781@gmail.com")) (:maintainer "Uriel G Maldonado" . "uriel781@gmail.com"))]) -(smtpmail-multi . [(20160218 2349) nil "Use different smtp servers for sending mail" single ((:commit . "83fa9d7a02e000be95cb282c8b48446646896ea1") (:keywords "comm") (:authors ("Joe Bloggs" . "vapniks@yahoo.com")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "https://github.com/vapniks/smtpmail-multi"))]) -(smotitah . [(20150218 1030) nil "Modular emacs configuration framework" tar ((:commit . "f9ab562128a5460549d016913533778e8c94bcf3"))]) -(smooth-scrolling . [(20161002 1949) nil "Make emacs scroll smoothly" single ((:commit . "2462c13640aa4c75ab3ddad443fedc29acf68f84") (:keywords "convenience") (:authors ("Adam Spiers" . "emacs-ss@adamspiers.org") ("Jeremy Bondeson" . "jbondeson@gmail.com") ("Ryan C. Thompson" . "rct+github@thompsonclan.org")) (:maintainer "Adam Spiers" . "emacs-ss@adamspiers.org") (:url . "http://github.com/aspiers/smooth-scrolling/"))]) -(smooth-scroll . [(20130322 414) nil "Minor mode for smooth scrolling and in-place scrolling." single ((:commit . "02320f28abb5cae28b3a18f6b9ce93129bdbfc45") (:keywords "convenience" "emulations" "frames") (:authors ("K-talo Miyazaki <Keitaro dot Miyazaki at gmail dot com>")) (:maintainer "K-talo Miyazaki <Keitaro dot Miyazaki at gmail dot com>") (:url . "http://www.emacswiki.org/emacs/download/smooth-scroll.el"))]) -(smmry . [(20161024 901) nil "SMMRY client" single ((:commit . "986a1b0aec8ab1ef17dbfb7886f47e5558cf738a") (:keywords "api" "smmry") (:authors ("james sangho nah" . "microamp@protonmail.com")) (:maintainer "james sangho nah" . "microamp@protonmail.com") (:url . "https://github.com/microamp/smmry.el"))]) -(sml-modeline . [(20170614 2111) nil "Show position in a scrollbar like way in mode-line" single ((:commit . "d2f9f70174c4cf68c67eb3bb8088235735e34d9a") (:authors ("Lennart Borgman (lennart O borgman A gmail O com)")) (:maintainer "Lennart Borgman (lennart O borgman A gmail O com)") (:url . "http://bazaar.launchpad.net/~nxhtml/nxhtml/main/annotate/head%3A/util/sml-modeline.el"))]) -(smiles-mode . [(20160717 1120) nil "Major mode for SMILES." single ((:commit . "fbb381758adcb000a0c304be1b797f985f00e2de") (:keywords "smiles") (:authors (nil . "John Kitchin [jkitchin@andrew.cmu.edu]")) (:maintainer nil . "John Kitchin [jkitchin@andrew.cmu.edu]"))]) -(smex . [(20151212 2209) ((emacs (24))) "M-x interface with Ido-style fuzzy matching." single ((:commit . "55aaebe3d793c2c990b39a302eb26c184281c42c") (:keywords "convenience" "usability") (:authors ("Cornelius Mika" . "cornelius.mika@gmail.com")) (:maintainer "Cornelius Mika" . "cornelius.mika@gmail.com") (:url . "http://github.com/nonsequitur/smex/"))]) -(smeargle . [(20161212 2358) ((emacs (24 3))) "Highlighting region by last updated time" single ((:commit . "0665b1ff5109731898bc4a0ca6d939933b804777") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-smeargle"))]) -(smblog . [(20170419 1021) ((emacs (24 3))) "samba log viewer" single ((:commit . "5245e7aeac20915121946f59bba30899305d950b") (:authors ("Aurélien Aptel" . "aaptel@suse.com")) (:maintainer "Aurélien Aptel" . "aaptel@suse.com") (:url . "http://github.com/aaptel/smblog-mode"))]) -(smbc . [(20171229 1808) nil "View SMBC from Emacs" single ((:commit . "10538e3d575ba6ef3c94d555af2744b42dfd36c7") (:keywords "smbc" "webcomic") (:authors ("Saksham Sharma" . "saksham0808@gmail.com")) (:maintainer "Saksham Sharma" . "saksham0808@gmail.com") (:url . "https://github.com/sakshamsharma/emacs-smbc"))]) -(smarty-mode . [(20100703 1158) nil "major mode for editing smarty templates" single ((:commit . "3dfdfe1571f5e9ef55a29c51e5a80046d4cb7568") (:keywords "smarty" "php" "languages" "templates") (:maintainer "Benj Carson") (:url . "none yet"))]) -(smartscan . [(20170211 2033) nil "Jumps between other symbols found at point" single ((:commit . "234e077145710a174c20742de792b97ed2f965f6") (:keywords "extensions") (:authors ("Mickey Petersen" . "mickey@masteringemacs.org")) (:maintainer "Mickey Petersen" . "mickey@masteringemacs.org"))]) -(smartrep . [(20150509 230) nil "Support sequential operation which omitted prefix keys." single ((:commit . "f0ff5a6d7b8603603598ae3045c98b011e58d86e") (:keywords "convenience") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/smartrep.el"))]) -(smartparens . [(20190522 2234) ((dash (2 13 0)) (cl-lib (0 3))) "Automatic insertion, wrapping and paredit-like navigation with user defined pairs." tar ((:commit . "046440700f292c90c4a992f959c8d6725aa9a3bc"))]) -(smart-window . [(20160717 130) ((cl-lib (0 5))) "vim-like window controlling plugin" single ((:commit . "5996461b7cbc5ab4509ac48537916eb29a8e4c16") (:keywords "window") (:authors ("Felix Chern" . "idryman@gmail.com")) (:maintainer "Felix Chern" . "idryman@gmail.com") (:url . "https://github.com/dryman/smart-window.el"))]) -(smart-tabs-mode . [(20160629 1452) nil "Intelligently indent with tabs, align with spaces!" single ((:commit . "9cc2594b82b03e7d68645a4878f9359f8b8c34c5") (:keywords "languages") (:authors ("John Croisant" . "jacius@gmail.com") ("Alan Pearce" . "alan@alanpearce.co.uk") ("Daniel Dehennin" . "daniel.dehennin@baby-gnu.org") ("Matt Renaud" . "mrenaud92@gmail.com")) (:maintainer "Joel C. Salomon" . "joelcsalomon@gmail.com") (:url . "http://www.emacswiki.org/emacs/SmartTabs"))]) -(smart-tab . [(20170902 2107) nil "Intelligent tab completion and indentation." single ((:commit . "76a8ec13384975d39aa1b25e5384a02558dba574") (:keywords "extensions") (:authors ("John SJ Anderson" . "genehack@genehack.org") ("Sebastien Rocca Serra" . "sroccaserra@gmail.com") ("Daniel Hackney" . "dan@haxney.org")) (:maintainer "John SJ Anderson" . "genehack@genehack.org") (:url . "http://github.com/genehack/smart-tab/tree/master"))]) -(smart-shift . [(20150203 725) nil "Smart shift text left/right." single ((:commit . "a26ab2b240137e62ec4bce1698ed9c5f7b6d13ae") (:keywords "convenience" "tools") (:authors ("Bin Huang" . "huangbin88@foxmail.com")) (:maintainer "Bin Huang" . "huangbin88@foxmail.com") (:url . "https://github.com/hbin/smart-shift"))]) -(smart-semicolon . [(20171008 133) ((emacs (25))) "Insert semicolon smartly" single ((:commit . "bcea2aa37befa40abf8b24a2d2314904e6df43b3") (:authors ("Iku Iwasa" . "iku.iwasa@gmail.com")) (:maintainer "Iku Iwasa" . "iku.iwasa@gmail.com") (:url . "https://github.com/iquiw/smart-semicolon"))]) -(smart-region . [(20150903 1403) ((emacs (24 4)) (expand-region (0 10 0)) (multiple-cursors (1 3 0)) (cl-lib (0 5))) "Smartly select region, rectangle, multi cursors" single ((:commit . "5a8017fd8e8dc3483865951c4942cab3f96f69f6") (:keywords "marking" "region") (:authors ("Yuuki Arisawa" . "yuuki.ari@gmail.com")) (:maintainer "Yuuki Arisawa" . "yuuki.ari@gmail.com") (:url . "https://github.com/uk-ar/smart-region"))]) -(smart-newline . [(20131208 340) nil "Provide smart newline for one keybind." single ((:commit . "0553a9e4be7188352de1a28f2eddfd28e7436f94") (:authors ("Satoshi Namai")) (:maintainer "Satoshi Namai"))]) -(smart-mode-line-powerline-theme . [(20160706 38) ((emacs (24 3)) (powerline (2 2)) (smart-mode-line (2 5))) "smart-mode-line theme that mimics the powerline appearance." tar ((:commit . "999be065b195f2eddb4e1b629f99038d832d44b7") (:keywords "mode-line" "faces" "themes") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com") (:url . "http://github.com/Bruce-Connor/smart-mode-line"))]) -(smart-mode-line-atom-one-dark-theme . [(20181220 1756) ((emacs (24 3)) (smart-mode-line (2 10))) "Atom-one-dark theme for smart-mode-line" single ((:commit . "79261aeafa89664039201e3d3f405bc8b0a6aa8d") (:keywords "mode-line" "themes" "faces") (:authors ("Davide Restivo" . "davide.restivo@yahoo.it")) (:maintainer "Davide Restivo" . "davide.restivo@yahoo.it") (:url . "https://github.com/daviderestivo/smart-mode-line-atom-one-dark-theme"))]) -(smart-mode-line . [(20190527 1156) ((emacs (24 3)) (rich-minority (0 1 1))) "A color coded smart mode-line." tar ((:commit . "999be065b195f2eddb4e1b629f99038d832d44b7") (:keywords "mode-line" "faces" "themes") (:authors ("Artur Malabarba" . "emacs@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com") (:url . "http://github.com/Malabarba/smart-mode-line"))]) -(smart-mark . [(20150912 210) nil "Restore point after C-g when mark" single ((:commit . "04b522a23e3aae8381c6a976fc978532fcb2e7d0") (:keywords "mark" "restore") (:authors ("Kai Yu" . "yeannylam@gmail.com")) (:maintainer "Kai Yu" . "yeannylam@gmail.com"))]) -(smart-jump . [(20190423 158) ((emacs (25 1)) (dumb-jump (0 5 1))) "Smart go to definition." tar ((:commit . "7df77da872dc836dbf032388fc6de82dbc9fa22c") (:keywords "tools") (:authors ("James Nguyen" . "james@jojojames.com")) (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/jojojames/smart-jump"))]) -(smart-indent-rigidly . [(20141206 15) nil "Smart rigid indenting" single ((:commit . "323d1fe4d0b81e598249aad01bc44adb180ece0e") (:keywords "indenting" "coffee-mode" "haml-mode" "sass-mode") (:authors ("atom smith")) (:maintainer "atom smith") (:url . "https://github.com/re5et/smart-indent-rigidly"))]) -(smart-hungry-delete . [(20170412 1343) ((emacs (24 3))) "smart hungry deletion of whitespace" single ((:commit . "7c1d56a92481594e14d40b5fdf6c48657a0108a0") (:keywords "convenience") (:authors ("Hauke Rehfeld" . "emacs@haukerehfeld.de")) (:maintainer "Hauke Rehfeld" . "emacs@haukerehfeld.de") (:url . "https://github.com/hrehfeld/emacs-smart-hungry-delete"))]) -(smart-forward . [(20140430 713) ((expand-region (0 8 0))) "Semantic navigation" single ((:commit . "7b6dbfdbd4b646376a567c70e1a161545431b72b") (:keywords "navigation") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(smart-dash . [(20110131 316) nil "Smart-Dash minor mode" single ((:commit . "f8f23121ecb1b4b153e3561065cd0846d6722638") (:authors ("Dennis Lambe Jr." . "malsyned@malsyned.net")) (:maintainer "Dennis Lambe Jr." . "malsyned@malsyned.net"))]) -(smart-cursor-color . [(20141124 1719) nil "Change cursor color dynamically" single ((:commit . "1d190f49ca77734b55ac58f1b6276e42ada967b0") (:keywords "cursor" "color" "face") (:authors ("7696122")) (:maintainer "7696122") (:url . "https://github.com/7696122/smart-cursor-color/"))]) -(smart-compile . [(20190522 1125) nil "an interface to `compile'" single ((:commit . "366a4cdab1ad20105910bc24c4f3e4f8734e4eae") (:keywords "tools" "unix") (:authors ("Seiji Zenitani" . "zenitani@mac.com")) (:maintainer "Seiji Zenitani" . "zenitani@mac.com"))]) -(smart-comment . [(20160322 1839) nil "smarter commenting" single ((:commit . "17ddbd83205818763e6d68aa7a1aa9aaf414cbd4") (:keywords "lisp") (:authors ("Simon Friis Vindum" . "simon@vindum.io")) (:maintainer "Simon Friis Vindum" . "simon@vindum.io"))]) -(smart-backspace . [(20171014 526) nil "intellj like backspace" single ((:commit . "a10ec44ff325ec8c4c98b1a6e44e89e60a9aa4ac") (:authors ("Takeshi Tsukamoto" . "t.t.itm.0403@gmail.com")) (:maintainer "Takeshi Tsukamoto" . "t.t.itm.0403@gmail.com") (:url . "https://github.com/itome/smart-backspace"))]) -(sly-repl-ansi-color . [(20171020 1516) ((sly (0)) (cl-lib (0 5))) "Add ANSI colors support to the sly mrepl." single ((:commit . "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048") (:keywords "sly") (:authors ("Javier \"PuercoPop\" Olaechea" . "pirata@gmail.com") ("Max Mikhanosha")) (:maintainer "Javier \"PuercoPop\" Olaechea" . "pirata@gmail.com") (:url . "https://github.com/PuercoPop/sly-repl-ansi-color"))]) -(sly-quicklisp . [(20170112 935) ((sly (1 0 0 -2 2))) "Quicklisp support for SLY" tar ((:commit . "8a9e3c0c07c6861ec33b338cc46ac12e7ce6a477") (:keywords "languages" "lisp" "sly") (:authors ("João Távora" . "joaotavora@gmail.com")) (:maintainer "João Távora" . "joaotavora@gmail.com") (:url . "https://github.com/capitaomorte/sly-quicklisp"))]) -(sly-named-readtables . [(20150817 1516) ((sly (1 0 0 -2 2))) "Support named readtables in Common Lisp files" tar ((:commit . "df4ed79064cf85275804e201899b677bef4ab3f5") (:keywords "languages" "lisp" "sly") (:authors ("João Távora" . "joaotavora@gmail.com")) (:maintainer "João Távora" . "joaotavora@gmail.com") (:url . "https://github.com/capitaomorte/sly-named-readtables"))]) -(sly-macrostep . [(20160119 1234) ((sly (1 0 0 -2 2)) (macrostep (0 9))) "fancy macro-expansion via macrostep.el" tar ((:commit . "eb16778d104413a3e2a8d5537437c4ad76c2954b") (:keywords "languages" "lisp" "sly") (:url . "https://github.com/capitaomorte/sly-macrostep"))]) -(sly-hello-world . [(20160119 1436) ((sly (1 0 0 -2 2))) "A template SLY contrib" tar ((:commit . "1bfcca692b6ec0670ed309ffe29eb9384397c183") (:keywords "languages" "lisp" "sly") (:authors ("João Távora" . "joaotavora@gmail.com")) (:maintainer "João Távora" . "joaotavora@gmail.com") (:url . "https://github.com/capitaomorte/sly-hello-world"))]) -(sly-asdf . [(20190613 116) ((emacs (24 3)) (sly (1 0 0 -2 2))) "ASDF system support for SLY" tar ((:commit . "3542a36b00ac5c25aadaa5671798b58893fb2b4a") (:keywords "languages" "lisp" "sly" "asdf") (:maintainer "Matt George" . "mmge93@gmail.com") (:url . "https://github.com/mmgeorge/sly-asdf"))]) -(sly . [(20190617 2159) ((emacs (24 3))) "Sylvester the Cat's Common Lisp IDE" tar ((:commit . "08f23214e30b7c17b0d4985bfb9cb8f198d8b256") (:keywords "languages" "lisp" "sly") (:url . "https://github.com/joaotavora/sly"))]) -(slstats . [(20170823 849) ((cl-lib (0 5)) (emacs (24))) "Acquire and display stats about Second Life" single ((:commit . "e9696066abf3f2b7b818a57c062530dfd9377033") (:keywords "games") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/slstats.el"))]) -(slow-keys . [(20180831 459) ((emacs (24 1))) "Slow keys mode to avoid RSI" single ((:commit . "b93ad77f9fc1d14e080d7d64864fc9cb222248b6") (:keywords "convenience") (:authors ("Manuel Uberti" . "manuel.uberti@inventati.org")) (:maintainer "Manuel Uberti" . "manuel.uberti@inventati.org") (:url . "https://github.com/manuel-uberti/slow-keys"))]) -(slovak-holidays . [(20150418 855) nil "Adds a list of slovak holidays to Emacs calendar" single ((:commit . "effb16dfcd14797bf7448f5113085479db339c02") (:keywords "calendar") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(slirm . [(20160201 1425) ((emacs (24 4))) "Systematic Literature Review Mode for Emacs." single ((:commit . "9adfbe1fc67580e7d0d90f7e927a25d63a797464") (:authors ("Florian Biermann" . "fbie@itu.dk")) (:maintainer "Florian Biermann" . "fbie@itu.dk") (:url . "http://github.com/fbie/slirm"))]) -(slime-volleyball . [(20140718 441) nil "An SVG Slime Volleyball Game" tar ((:commit . "159b5c0f40b109e3854e94b89ec5383854c46ae3") (:keywords "games") (:authors ("Thomas Fitzsimmons" . "fitzsim@fitzsim.org")) (:maintainer "Thomas Fitzsimmons" . "fitzsim@fitzsim.org"))]) -(slime-theme . [(20170808 1322) ((emacs (24 0))) "an Emacs 24 theme based on Slime (tmTheme)" single ((:commit . "8e5880ac69e0b6a079103001cc3a90bdb688998f") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) -(slime-repl-ansi-color . [(20190426 1414) ((emacs (24)) (slime (2 3 1))) "Turn on ANSI colors in REPL output;" single ((:commit . "fdd0c7a75a217abca2ff16ab9281d55f392bd841") (:keywords "lisp") (:authors ("Max Mikhanosha" . "max@openchat.com")) (:maintainer "Augustin Fabre" . "augustin@augfab.fr") (:url . "https://gitlab.com/augfab/slime-repl-ansi-color"))]) -(slime-docker . [(20190430 157) ((emacs (24)) (slime (2 16)) (docker-tramp (0 1)) (cl-lib (0 5))) "Integration of SLIME with Docker containers." tar ((:commit . "151cec4a11965cdc00d231900a50f2c9f455fce2") (:keywords "docker" "lisp" "slime") (:url . "https://github.com/daewok/slime-docker"))]) -(slime-company . [(20190117 1538) ((emacs (24 4)) (slime (2 13)) (company (0 9 0))) "slime completion backend for company mode" single ((:commit . "7290cbad711a62f76c28e5638d1a4d77197a358c") (:keywords "convenience" "lisp" "abbrev") (:authors ("Ole Arndt" . "anwyn@sugarshark.com")) (:maintainer "Ole Arndt" . "anwyn@sugarshark.com"))]) -(slime . [(20190610 1542) ((cl-lib (0 5)) (macrostep (0 9))) "Superior Lisp Interaction Mode for Emacs" tar ((:commit . "f730dcd232cf213eafd2219af8ffd3d66e031207") (:keywords "languages" "lisp" "slime") (:url . "https://github.com/slime/slime"))]) -(slim-mode . [(20170728 1348) nil "Major mode for editing Slim files" single ((:commit . "3636d18ab1c8b316eea71c4732eb44743e2ded87") (:keywords "markup" "language") (:authors ("Nathan Weizenbaum")) (:maintainer "Nathan Weizenbaum") (:url . "http://github.com/slim-template/emacs-slim"))]) -(slideview . [(20150324 2240) ((cl-lib (0 3))) "File slideshow" single ((:commit . "b6d170bda139aedf81b47dc55cbd1a3af512fb4c") (:keywords "files") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-slideview"))]) -(slack . [(20190617 144) ((websocket (1 8)) (request (0 2 0)) (oauth2 (0 10)) (circe (2 2)) (alert (1 2)) (emojify (0 2))) "Slack client for Emacs" tar ((:commit . "a0cf7b4bea0909c43c8bcf9e8dfffa9bf22c19f3") (:url . "https://github.com/yuya373/emacs-slack"))]) -(sl . [(20161217 1404) ((cl-lib (0 5))) "An Emacs clone of sl(1)" tar ((:commit . "fceb2ae12a3065b2a265b921baca0891c5ea54dc") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/sl.el"))]) -(skype . [(20160711 824) nil "skype UI for emacs users.." tar ((:commit . "8e3b33e620ed355522aa36434ff41e3ced080629") (:keywords "skype" "chat") (:authors ("SAKURAI Masashi" . "m.sakurai@kiwanami.net")) (:maintainer "SAKURAI Masashi" . "m.sakurai@kiwanami.net"))]) -(skewer-reload-stylesheets . [(20160725 1220) ((skewer-mode (1 5 3))) "live-edit CSS, SCSS, Less, and friends." tar ((:commit . "b9cc5635230ac3c0603a6da690c6e632d0a7490a") (:authors ("Nate Eagleson" . "nate@nateeag.com")) (:maintainer "Nate Eagleson" . "nate@nateeag.com"))]) -(skewer-mode . [(20180706 1807) ((simple-httpd (1 4 0)) (js2-mode (20090723)) (emacs (24))) "live browser JavaScript, CSS, and HTML interaction" tar ((:commit . "a381049acc4fa2087615b4b3b26c0865841386bd"))]) -(skewer-less . [(20160828 2021) ((skewer-mode (1 5 3))) "Skewer support for live LESS stylesheet updates" single ((:commit . "927d6848a1ea9428d4cc995f76bd42f7b8da6bc8") (:keywords "languages" "tools") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com"))]) -(skeletor . [(20190212 339) ((s (1 7 0)) (f (0 14 0)) (dash (2 2 0)) (cl-lib (0 3)) (let-alist (1 0 3)) (emacs (24 1))) "Provides project skeletons for Emacs" tar ((:commit . "47c5b761aee8452716c97a69949ac2f675affe13") (:authors ("Chris Barrett" . "chris.d.barrett@me.com")) (:maintainer "Chris Barrett" . "chris.d.barrett@me.com"))]) -(simplezen . [(20130421 1000) ((s (1 4 0)) (dash (1 1 0))) "A simple subset of zencoding-mode for Emacs." single ((:commit . "119fdf2c6890a0c56045ae72cf4fce0071a81481") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(simplenote2 . [(20190321 933) ((request-deferred (0 2 0)) (uuidgen (20140918)) (unicode-escape (1 1))) "Interact with app.simplenote.com" tar ((:commit . "760ffecda63bd218876b623f46d332e3ef079be6") (:keywords "simplenote") (:authors ("alpha22jp" . "alpha22jp@gmail.com")) (:maintainer "alpha22jp" . "alpha22jp@gmail.com"))]) -(simplenote . [(20141118 1440) nil "Interact with simple-note.appspot.com" single ((:commit . "e836fcdb5a6497a9ffd6bceddd19b4bc52189078") (:keywords "simplenote") (:authors ("Konstantinos Efstathiou" . "konstantinos@efstathiou.gr")) (:maintainer "Konstantinos Efstathiou" . "konstantinos@efstathiou.gr"))]) -(simpleclip . [(20181105 1636) nil "Simplified access to the system clipboard" single ((:commit . "2468b08ad829aaf4a90246541978be3974c60ab8") (:keywords "convenience") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/simpleclip"))]) -(simple-screen . [(20161009 920) nil "Simple screen configuration manager" single ((:commit . "596e3a451d9af24730ab31a8fe15c91a4264d09d") (:keywords "tools") (:authors ("Tadashi Watanabe" . "wac@umiushi.org")) (:maintainer "Tadashi Watanabe" . "wac@umiushi.org") (:url . "https://github.com/wachikun/simple-screen"))]) -(simple-rtm . [(20160222 1534) ((rtm (0 1)) (dash (2 0 0))) "Interactive Emacs mode for Remember The Milk" single ((:commit . "8c7cd96cf66ef112be5c363e3378e304f8f83999") (:keywords "remember" "the" "milk" "productivity" "todo") (:authors ("Moritz Bunkus" . "morit@bunkus.org")) (:maintainer "Moritz Bunkus" . "morit@bunkus.org"))]) -(simple-paren . [(20190603 1836) ((emacs (24)) (cl-lib (0 5))) "Non-electrical insert paired delimiter, wrap" single ((:commit . "8b03b71303070b05d5def3c8a2564e4b5e67098a") (:keywords "convenience") (:authors ("Andreas Röhler, Steve Purcell")) (:maintainer "Andreas Röhler, Steve Purcell") (:url . "https://github.com/andreas-roehler/simple-paren"))]) -(simple-mpc . [(20180716 129) ((s (1 10 0))) "provides a simple interface to mpc" tar ((:commit . "bee8520e81292b4c7353e45b193f9a13b482f5b2") (:keywords "multimedia" "mpd" "mpc") (:authors ("Joren Van Onder" . "joren.vanonder@gmail.com")) (:maintainer "Joren Van Onder" . "joren.vanonder@gmail.com") (:url . "https://github.com/jorenvo/simple-mpc"))]) -(simple-httpd . [(20190110 1505) ((cl-lib (0 3))) "pure elisp HTTP server" single ((:commit . "08535d0fad6a32fdc03d725ec74e10a754bb9c7a") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/emacs-http-server"))]) -(simple-call-tree . [(20180224 2056) ((emacs (24 3)) (anaphora (1 0 0))) "analyze source code based on font-lock text-properties" single ((:commit . "20059eb5549408def76aeb03d0d20839903dedef") (:keywords "programming") (:authors ("Joe Bloggs" . "vapniks@yahoo.com")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "http://www.emacswiki.org/emacs/download/simple-call-tree.el"))]) -(simple-bookmarks . [(20190204 1426) ((cl-lib (0 5))) "Bookmark / functioncall manager" tar ((:commit . "54e8d771bcdb0eb235b31c0aa9642171369500e5") (:keywords "bookmark" "functioncall") (:authors ("Julian T. Knabenschuh" . "jtkdevelopments@gmail.com")) (:maintainer "Julian T. Knabenschuh" . "jtkdevelopments@gmail.com") (:url . "https://github.com/jtkDvlp/simple-bookmarks"))]) -(simp . [(20180607 254) nil "Simple project definition, chiefly for file finding, and grepping" tar ((:commit . "d4d4b8547055347828bedccbeffdb4fd2d5a5d34") (:keywords "project" "grep" "find") (:authors ("atom smith")) (:maintainer "atom smith") (:url . "https://github.com/re5et/simp"))]) -(silkworm-theme . [(20180301 1437) ((emacs (24))) "Light theme with pleasant, low contrast colors." single ((:commit . "4a297f952401cfe894dcb24174f6eda05e00fada") (:authors ("Martin Haesler")) (:maintainer "Martin Haesler"))]) -(signature . [(20140730 1949) nil "Signature Survey" tar ((:commit . "c47df2e1189a84505f9224aa78e87b6c65d13d37") (:authors ("Peter Stiernström" . "peter@stiernstrom.se")) (:maintainer "Peter Stiernström" . "peter@stiernstrom.se"))]) -(signal . [(20160816 1438) ((emacs (24)) (cl-lib (0 5))) "Advanced hook" single ((:commit . "aa58327e2297df921d72a0370468b48663efd438") (:keywords "internal" "lisp" "processes" "tools") (:authors ("Mola-T" . "Mola@molamola.xyz")) (:maintainer "Mola-T" . "Mola@molamola.xyz") (:url . "https://github.com/mola-T/signal"))]) -(sift . [(20190521 823) nil "Front-end for sift, a fast and powerful grep alternative" single ((:commit . "33b2c9ff964fe53bb55b37429faaa4e903bead7a") (:keywords "sift" "ack" "pt" "ag" "grep" "search") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/sift.el"))]) -(side-notes . [(20190524 432) ((emacs (24 5))) "Easy access to a directory notes file" single ((:commit . "6f14e0bc13f586ebfb4c801285aec0d5aac60ac9") (:keywords "convenience") (:authors ("Paul W. Rankin" . "hello@paulwrankin.com")) (:maintainer "Paul W. Rankin" . "hello@paulwrankin.com") (:url . "https://git.sr.ht/~pwr/side-notes"))]) -(sicp . [(20180823 1222) nil "Structure and Interpretation of Computer Programs in info format" tar ((:commit . "33acfa10a058aa65b6b22084a5b86a82410d794e") (:authors ("Hal Abelson") ("Jerry Sussman") ("Julie Sussman")) (:maintainer "Hal Abelson") (:url . "https://mitpress.mit.edu/sicp"))]) -(sibilant-mode . [(20151119 2145) nil "Support for the Sibilant programming language" single ((:commit . "bc1b5d8cd597918bafc9b2880ee49024740e54ab") (:keywords "languages") (:authors ("Jacob Rothstein" . "hi@jbr.me")) (:maintainer "Jacob Rothstein" . "hi@jbr.me") (:url . "http://sibilantjs.info"))]) -(shx . [(20190602 2125) ((emacs (24 4))) "Extras for the comint-mode shell" single ((:commit . "6b53896ad2d80f22454ae8b09dbaa7c352e4e37f") (:keywords "processes" "tools") (:url . "https://github.com/riscy/shx-for-emacs"))]) -(shut-up . [(20180628 1830) ((cl-lib (0 3)) (emacs (24))) "Shut up would you!" single ((:commit . "081d6b01e3ba0e60326558e545c4019219e046ce") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/shut-up.el"))]) -(shroud . [(20190617 1726) ((emacs (25)) (epg (1 0 0)) (s (1 6 0)) (bui (1 2 0)) (dash (2 15 0)) (dash-functional (2 15 0))) "Shroud secrets" tar ((:commit . "ce5374a08c518061a5afaa06a305c13a28b6dff9") (:keywords "tools" "password") (:authors ("Amar Singh" . "nly@disroot.org")) (:maintainer "Amar Singh" . "nly@disroot.org") (:url . "https://github.com/o-nly/emacs-shroud"))]) -(shrink-whitespace . [(20181003 321) nil "Whitespace removal DWIM key" single ((:commit . "0407b89c142bd17e65edb666f35e2c6755bd0867") (:keywords "convenience") (:authors ("Jean-Christophe Petkovich" . "jcpetkovich@gmail.com")) (:maintainer "Jean-Christophe Petkovich" . "jcpetkovich@gmail.com") (:url . "https://gitlab.com/jcpetkovich/shrink-whitespace.el"))]) -(shrink-path . [(20170813 247) ((emacs (24)) (s (1 6 1)) (dash (1 8 0)) (f (0 10 0))) "fish-style path" single ((:commit . "9d06c453d1537df46a4b703a29213cc7f7857aa0") (:authors ("Benjamin Andresen")) (:maintainer "Benjamin Andresen") (:url . "https://gitlab.com/bennya/shrink-path.el"))]) -(shr-tag-pre-highlight . [(20171113 914) ((emacs (25 1)) (language-detection (0 1 0))) "Syntax highlighting code block in HTML" single ((:commit . "6182f43a36b0f82ba6edcf6e423b5f69a46a814e") (:keywords "html") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/shr-tag-pre-highlight.el"))]) -(shpec-mode . [(20150530 922) nil "Minor mode for shpec specification" single ((:commit . "146adc8281d0f115df39a3a3f982ac59ab61b754") (:keywords "languages" "tools") (:authors ("AdrieanKhisbe" . "adriean.khisbe@live.fr")) (:maintainer "AdrieanKhisbe" . "adriean.khisbe@live.fr") (:url . "http://github.com/shpec/shpec-mode"))]) -(showtip . [(20090830 1040) nil "Show tip at cursor" single ((:commit . "930da302809a4257e8d69425455b29e1cc91949b") (:keywords "help") (:authors ("Ye Wenbin" . "wenbinye@gmail.com")) (:maintainer "Ye Wenbin" . "wenbinye@gmail.com"))]) -(show-marks . [(20130805 1449) ((fm (1 0))) "Navigate and visualize the mark-ring" single ((:commit . "97609566582e65eed0d0a854efa5c312f209115d") (:keywords "convenience") (:authors ("Greg Rowe" . "emacs@therowes.net")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "https://github.com/vapniks/mark"))]) -(show-eol . [(20190517 257) ((emacs (24 3))) "Show end of line symbol in buffer." single ((:commit . "ea4d5253d2a9ee61f0e76898f0ab760b5574df43") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:url . "https://github.com/jcs090218/show-eol"))]) -(show-css . [(20160210 1408) ((doom (1 3)) (s (1 10 0))) "Show the css of the html attribute the cursor is on" tar ((:commit . "771daeddd4df7a7c10f66419a837145649bab63b") (:keywords "hypermedia") (:authors ("Sheldon McGrandle" . "developer@rednemesis.com")) (:maintainer "Sheldon McGrandle" . "developer@rednemesis.com") (:url . "https://github.com/smmcg/showcss-mode"))]) -(shoulda . [(20140616 1833) ((cl-lib (0 5))) "Shoulda test support for ruby" single ((:commit . "fbe8eb8efc6cfcca1713283a290882cfcdc8725e") (:keywords "ruby" "tests" "shoulda") (:authors ("Marcwebbie" . "marcwebbie@gmail.com")) (:maintainer "Marcwebbie" . "marcwebbie@gmail.com"))]) -(shm . [(20180327 57) nil "Structured Haskell Mode" tar ((:commit . "7f9df73f45d107017c18ce4835bbc190dfe6782e") (:keywords "development" "haskell" "structured") (:authors ("Chris Done" . "chrisdone@gmail.com")) (:maintainer "Chris Done" . "chrisdone@gmail.com"))]) -(shimbun . [(20190517 516) nil "interfacing with web newspapers" tar ((:commit . "ade27b681b1b565b7bb3f02677d533f484e37668") (:keywords "news") (:authors ("TSUCHIYA Masatoshi" . "tsuchiya@namazu.org") ("Akihiro Arisawa " . "ari@mbf.sphere.ne.jp") ("Yuuichi Teranishi " . "teranisi@gohome.org") ("Katsumi Yamaoka " . "yamaoka@jpl.org")) (:maintainer "TSUCHIYA Masatoshi" . "tsuchiya@namazu.org"))]) -(shift-text . [(20130831 1655) ((cl-lib (1 0)) (es-lib (0 3))) "Move the region in 4 directions, in a way similar to Eclipse's" single ((:commit . "1be9cbf994000022172ceb746fe1d597f57ea8ba") (:authors ("sabof")) (:maintainer "sabof") (:url . "https://github.com/sabof/shift-text"))]) -(shift-number . [(20170301 1459) nil "Increase/decrease the number at point" single ((:commit . "cd099a5582fc996b800ac7607f6c38a004ce9740") (:keywords "convenience") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/shift-number.el"))]) -(shen-elisp . [(20180915 2028) ((emacs (24 4))) "Shen implementation in Elisp" tar ((:commit . "73b74c8d6e3a2ea34b667d177d9f130765bfe501") (:keywords "shen" "elisp") (:url . "http://github.com/deech/shen-elisp"))]) -(shelltest-mode . [(20180501 141) nil "Major mode for shelltestrunner" single ((:commit . "5fea8c9394380e822971a171905b6b5ab9be812d") (:keywords "languages") (:authors ("Dustin Fechner" . "dfe@rtrn.io")) (:maintainer "Dustin Fechner" . "dfe@rtrn.io") (:url . "https://github.com/rtrn/shelltest-mode"))]) -(shelldoc . [(20151115 325) ((cl-lib (0 3)) (s (1 9 0))) "shell command editing support with man page." single ((:commit . "5df2264eb60e45066f3633df4f34834751667346") (:keywords "applications") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "http://github.com/mhayashi1120/Emacs-shelldoc"))]) -(shell-toggle . [(20150226 1411) nil "Toggle to and from the shell buffer" single ((:commit . "0d01bd9a780fdb7fe6609c552523f4498649a3b9") (:keywords "processes") (:authors ("Mikael Sjödin" . "mic@docs.uu.se") ("Matthieu Moy") ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Mikael Sjödin" . "mic@docs.uu.se") (:url . "https://github.com/knu/shell-toggle.el"))]) -(shell-switcher . [(20161029 552) ((emacs (24))) "Provide fast switching between shell buffers." tar ((:commit . "28a7f753dd7addd2933510526f52620cb5a22048"))]) -(shell-split-string . [(20151224 1008) nil "Split strings using shell-like syntax" single ((:commit . "19f6f999c33cc66a4c91bacdcc3697c25d97bf5a") (:keywords "utility" "library" "shell" "string") (:authors ("10sr <8.slashes+el [at] gmail [dot] com>")) (:maintainer "10sr <8.slashes+el [at] gmail [dot] com>") (:url . "https://github.com/10sr/shell-split-string-el"))]) -(shell-pop . [(20170304 1416) ((emacs (24)) (cl-lib (0 5))) "helps you to use shell easily on Emacs. Only one key action to work." single ((:commit . "4a3a9d093ad1add792bba764c601aa28de302b34") (:keywords "shell" "terminal" "tools") (:authors ("Kazuo YAGI" . "kazuo.yagi@gmail.com")) (:maintainer "Kazuo YAGI" . "kazuo.yagi@gmail.com") (:url . "http://github.com/kyagi/shell-pop-el"))]) -(shell-history . [(20100505 839) nil "integration with shell history" single ((:commit . "ee371a81f2d2bf5a308344078329ca1e9b5ed38c") (:keywords "processes" "convenience") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/shell-history.el"))]) -(shell-here . [(20150728 1704) nil "Open a shell relative to the working directory" single ((:commit . "251309141e18978d2b8014345acc6f5afcd4d509") (:keywords "unix" "tools" "processes") (:authors ("Ian Eure" . "ian.eure@gmail.com")) (:maintainer "Ian Eure" . "ian.eure@gmail.com"))]) -(shell-current-directory . [(20140101 2354) nil "create new shell based on buffer directory" single ((:commit . "bf843771bf9a4aa05e054ade799eb8862f3be89a") (:keywords "shell" "comint") (:authors ("Daniel Polani")) (:maintainer "Daniel Polani"))]) -(shell-command . [(20090830 1040) nil "enables tab-completion for `shell-command'" single ((:commit . "7e22125f746ce9ffbe9b0282d62f4b4bbbe672bd") (:keywords "shell") (:authors ("TSUCHIYA Masatoshi" . "tsuchiya@namazu.org")) (:maintainer "TSUCHIYA Masatoshi" . "tsuchiya@namazu.org"))]) -(shampoo . [(20131230 1019) nil "A remote Smalltalk development mode" tar ((:commit . "bc193c39636c30182159c5c91c37a9a4cb50fedf"))]) -(shakespeare-mode . [(20180704 2138) nil "A major mode for editing Shakespearean templates." single ((:commit . "c442eeea9d585e1b1fbb8813e33d47feec348a57") (:keywords "shakespeare" "hamlet" "lucius" "julius" "mode") (:authors ("Cody Reichert")) (:maintainer "Cody Reichert") (:url . "http://github.com/CodyReichert/shakespeare-mode"))]) -(shader-mode . [(20180518 1157) ((emacs (24))) "Major mode for shader" single ((:commit . "d7dc8d0d6fe8914e8b6d5cf2081ad61e6952359c") (:authors ("midnightSuyama" . "midnightSuyama@gmail.com")) (:maintainer "midnightSuyama" . "midnightSuyama@gmail.com") (:url . "https://github.com/midnightSuyama/shader-mode"))]) -(shadchen . [(20141102 1839) nil "pattern matching for elisp" single ((:commit . "35f2b9c304eec990c16efbd557198289dc7cbb1f") (:authors ("Vincent Toups")) (:maintainer "Vincent Toups"))]) -(shackle . [(20190201 1846) ((cl-lib (0 5))) "Enforce rules for popups" single ((:commit . "842a90b3ca04d9d886543f14ca5f04e8bd2a3d06") (:keywords "convenience") (:authors ("Vasilij Schneidermann" . "v.schneidermann@gmail.com")) (:maintainer "Vasilij Schneidermann" . "v.schneidermann@gmail.com") (:url . "https://github.com/wasamasa/shackle"))]) -(sexy-monochrome-theme . [(20180526 808) nil "A sexy dark Emacs >= 24 theme for your sexy code" single ((:commit . "036bc238e48dd21aae1c34e6971d376582d8281b") (:keywords "themes") (:authors ("Volodymyr Yevtushenko" . "voloyev@vivaldi.net")) (:maintainer "Volodymyr Yevtushenko" . "voloyev@vivaldi.net") (:url . "https://github.com/voloyev/sexy-monochrome-theme"))]) -(sexp-move . [(20150915 1730) nil "Improved S-Expression Movement" single ((:commit . "117f7a91ab7c25e438413753e916570122011ce7") (:keywords "sexp") (:authors ("Philip Woods" . "elzairthesorcerer@gmail.com")) (:maintainer "Philip Woods" . "elzairthesorcerer@gmail.com") (:url . "https://gitlab.com/elzair/sexp-move"))]) -(seti-theme . [(20190201 1848) nil "A dark colored theme, inspired by Seti Atom Theme" single ((:commit . "9d76db0b91d4f574dd96ac80fad41da35bffa109") (:keywords "themes") (:authors ("Vlad Piersec" . "vlad.piersec@gmail.com")) (:maintainer "Vlad Piersec" . "vlad.piersec@gmail.com") (:url . "https://github.com/caisah/seti-theme"))]) -(session . [(20120511 0) nil "use variables, registers and buffer places across sessions" single ((:commit . "19ea0806873daac3539a4b956e15655e99e3dd6c") (:keywords "session" "session management" "desktop" "data" "tools") (:authors ("Christoph Wedler" . "wedler@users.sourceforge.net")) (:maintainer "Christoph Wedler" . "wedler@users.sourceforge.net") (:url . "http://emacs-session.sourceforge.net/"))]) -(sesman . [(20190213 1650) ((emacs (25))) "Generic Session Manager" tar ((:commit . "3df33018f1c42f09db21cebe39a25b389fe35f02") (:keywords "process") (:authors ("Vitalie Spinu")) (:maintainer "Vitalie Spinu") (:url . "https://github.com/vspinu/sesman"))]) -(services . [(20170802 1130) ((cl-lib (0 5))) "Services database access functions." single ((:commit . "04c7986041a33dfa0b0ae57c7d6fbd600548c596") (:keywords "convenience" "net" "services") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/services.el"))]) -(serverspec . [(20150623 1155) ((dash (2 6 0)) (s (1 9 0)) (f (0 16 2)) (helm (1 6 1))) "Serverspec minor mode" tar ((:commit . "b6dfe82af9869438de5e5d860ced196641f372c0") (:authors ("k1LoW (Kenichirou Oyama), <k1lowxb [at] gmail [dot] com> <k1low [at] 101000lab [dot] org>")) (:maintainer "k1LoW (Kenichirou Oyama), <k1lowxb [at] gmail [dot] com> <k1low [at] 101000lab [dot] org>") (:url . "http://101000lab.org"))]) -(servant . [(20140216 1219) ((s (1 8 0)) (dash (2 2 0)) (f (0 11 0)) (ansi (0 3 0)) (commander (0 5 0)) (epl (0 2)) (shut-up (0 2 1)) (web-server (0 0 1))) "ELPA server written in Emacs Lisp" tar ((:commit . "4d2aa8250b54b28e6e7ee4cd5ebd98a33db2c134") (:keywords "elpa" "server") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com") ("Sebastian Wiesner" . "lunaryorn@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/servant.el"))]) -(sequential-command . [(20170926 40) nil "Many commands into one command" tar ((:commit . "a48cbcbe273b33edd3ae56e68f44b4100fa3a48a") (:keywords "convenience" "lisp") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/sequential-command.el"))]) -(sequences . [(20170818 1252) ((emacs (24))) "Ports of some Clojure sequence functions." single ((:commit . "564ebbd93b0beea4e75acfbf824350e90b5d5738") (:keywords "convenience") (:authors ("Tim Visher" . "tim.visher@gmail.com")) (:maintainer "Tim Visher" . "tim.visher@gmail.com"))]) -(seoul256-theme . [(20180505 757) ((emacs (24 3))) "Low-contrast color scheme based on Seoul Colors." single ((:commit . "d28a9de73a5ffb1a1c9492db75a5c1efe5e9815f") (:keywords "theme") (:authors ("Anand Iyer" . "anand.ucb@gmail.com")) (:maintainer "Anand Iyer" . "anand.ucb@gmail.com") (:url . "http://github.com/anandpiyer/seoul256-emacs"))]) -(sentence-navigation . [(20180408 1619) ((ample-regexps (0 1)) (cl-lib (0 5)) (emacs (24 4))) "Commands to navigate one-spaced sentences." single ((:commit . "7c5d2edeaed01196aec25031782e89adeaa089f0") (:keywords "sentence" "evil") (:authors ("Fox Kiester" . "noct@openmailbox.org")) (:maintainer "Fox Kiester" . "noct@openmailbox.org") (:url . "https://github.com/noctuid/emacs-sentence-navigation"))]) -(sensitive . [(20170818 1251) ((emacs (24)) (sequences (0 1 0))) "A dead simple way to load sensitive information" single ((:commit . "69dd6125a41d8b55f4b6ba61daa4d1aa1f716fa8") (:keywords "convenience") (:authors ("Tim Visher" . "tim.visher@gmail.com")) (:maintainer "Tim Visher" . "tim.visher@gmail.com"))]) -(sendto . [(20160425 1250) ((emacs (24 4))) "send the region content to a function" single ((:commit . "076b81d7a53f75b0a59b0ef3448f35570567054c") (:keywords "convenience" "region") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/sendto.el"))]) -(seml-mode . [(20190531 542) ((emacs (25)) (simple-httpd (1 5)) (htmlize (1 5)) (web-mode (16 0))) "major-mode for SEML, S-Expression Markup Language, file" single ((:commit . "58eea4c2009b3e747d8e68a38417fcbf8a243c4b") (:keywords "lisp" "html") (:authors ("Naoya Yamashita" . "conao3@gmail.com")) (:maintainer "Naoya Yamashita" . "conao3@gmail.com") (:url . "https://github.com/conao3/seml-mode"))]) -(semi . [(20190517 2223) ((flim (1 14 9))) "A library to provide MIME features." tar ((:commit . "4cf114c95fb49ad75eb6916f678b45b04bad8122"))]) -(selectric-mode . [(20170216 1111) nil "IBM Selectric mode for Emacs" tar ((:commit . "aed70015b29074b52a5d0c49b88b7a501d276dda") (:keywords "multimedia" "convenience" "typewriter" "selectric") (:authors ("Ricardo Bánffy" . "rbanffy@gmail.com")) (:maintainer "Ricardo Banffy" . "rbanffy@gmail.com") (:url . "https://github.com/rbanffy/selectric-mode"))]) -(selected . [(20170222 834) nil "Keymap for when region is active" single ((:commit . "03edaeac90bc6000d263f03be3d889b4685e1bf7") (:keywords "convenience") (:authors ("Erik Sjöstrand")) (:maintainer "Erik Sjöstrand") (:url . "http://github.com/Kungsgeten/selected.el"))]) -(select-themes . [(20160221 106) nil "Color theme selection with completing-read" single ((:commit . "236f54287519a3ea6dd7b3992d053e4f4ff5d0fe") (:authors ("Jason Milkins" . "jasonm23@gmail.com")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com") (:url . "https://github.com/jasonm23/emacs-select-themes"))]) -(sekka . [(20170803 1247) ((cl-lib (0 3)) (concurrent (0 3 1)) (popup (0 5 2))) "A client for Sekka IME server" single ((:commit . "61840b57d9ae32bf8e297b175942590a1319c7e7") (:keywords "ime" "skk" "japanese") (:authors ("Kiyoka Nishiyama" . "kiyoka@sumibi.org")) (:maintainer "Kiyoka Nishiyama" . "kiyoka@sumibi.org") (:url . "https://github.com/kiyoka/sekka"))]) -(seethru . [(20150218 1829) ((shadchen (1 4))) "Easily change Emacs' transparency" single ((:commit . "d87e231f99313bea75b1e69e48c0f32968c82060") (:keywords "lisp" "tools" "alpha" "transparency") (:authors ("Benaiah Mischenko" . "benaiah@mischenko.com")) (:maintainer "Benaiah Mischenko" . "benaiah@mischenko.com") (:url . "http://github.com/benaiah/seethru"))]) -(seeing-is-believing . [(20170214 1320) nil "minor mode for running the seeing-is-believing ruby gem" single ((:commit . "fbbe246c0fda87bb26227bb826eebadb418a220f") (:authors ("John Cinnamond")) (:maintainer "John Cinnamond"))]) -(see-mode . [(20180511 41) ((emacs (24 4)) (language-detection (0 1 0))) "Edit string in a separate buffer" single ((:commit . "b6e72ea90105b03816c334be9e43bb41dcc79abf") (:keywords "convenience") (:authors ("Marcelo Muñoz" . "ma.munoz.araya@gmail.com")) (:maintainer "Marcelo Muñoz" . "ma.munoz.araya@gmail.com") (:url . "https://github.com/marcelino-m/see-mode"))]) -(secretaria . [(20190116 2000) ((emacs (24 4)) (alert (1 2)) (s (1 12)) (f (0 20 0)) (org (9))) "A personal assistant based on org-mode" single ((:commit . "40f2df829c8b858922559cd1dfbf13a9f78db3e8") (:keywords "org" "convenience") (:authors ("Jorge Araya Navarro" . "jorge@esavara.cr")) (:maintainer "Jorge Araya Navarro" . "jorge@esavara.cr") (:url . "https://gitlab.com/shackra/secretaria"))]) -(seclusion-mode . [(20121118 2353) nil "Edit in seclusion. A Dark Room mode." single ((:commit . "9634e76c52bfb7200ff0f9f01404f743429e9ef0") (:authors (nil . "Daniel Leslie dan@ironoxide.ca")) (:maintainer nil . "Daniel Leslie dan@ironoxide.ca") (:url . "http://github.com/dleslie/seclusion-mode"))]) -(searchq . [(20150829 1211) ((emacs (24 3))) "Framework of queued search tasks using GREP, ACK, AG and more." tar ((:commit . "dd510d55ad66a82c6ef022cfe7c4a73ad5365f82") (:authors ("boyw165")) (:maintainer "boyw165"))]) -(search-web . [(20150312 1103) nil "Post web search queries using `browse-url'." single ((:commit . "c4ae86ac1acfc572b81f3d78764bd9a54034c331") (:authors ("Tomoya Otake" . "tomoya.ton@gmail.com")) (:maintainer "Tomoya Otake" . "tomoya.ton@gmail.com"))]) -(sdlang-mode . [(20161201 711) ((emacs (24 3))) "Major mode for Simple Declarative Language files." single ((:commit . "d42a6eedefeb44919fbacf58d302b6df18f05bbc") (:keywords "languages") (:authors ("Vladimir Panteleev")) (:maintainer "Vladimir Panteleev") (:url . "https://github.com/CyberShadow/sdlang-mode"))]) -(sdcv . [(20190610 732) ((emacs (24 3)) (popup (0 5 3)) (showtip (0 1)) (pos-tip (0 4 6)) (cl-lib (0 3))) "Interface for sdcv (StartDict console version)." single ((:commit . "943ae3e90cc9a0a88a37cc710acd7424fd4defc4") (:keywords "startdict" "sdcv") (:authors ("Andy Stewart" . "lazycat.manatee@gmail.com")) (:maintainer "Andy Stewart" . "lazycat.manatee@gmail.com") (:url . "http://www.emacswiki.org/emacs/download/sdcv.el"))]) -(scss-mode . [(20180123 1708) nil "Major mode for editing SCSS files" single ((:commit . "cf58dbec5394280503eb5502938f3b5445d1b53d") (:keywords "scss" "css" "mode") (:authors ("Anton Johansson" . "anton.johansson@gmail.com")) (:maintainer "Anton Johansson" . "anton.johansson@gmail.com") (:url . "https://github.com/antonj/scss-mode"))]) -(scrooge . [(20180630 1022) ((emacs (24)) (cl-lib (0 5)) (dash (2 13 0)) (thrift (0 9 3))) "Major mode for Twitter Scrooge files" single ((:commit . "0a8c58e9e6708abe4ef7e415bc1e0472318bb1b0") (:keywords "scrooge" "thrift") (:authors ("Daniel McClanahan" . "danieldmcclanahan@gmail.com")) (:maintainer "Daniel McClanahan" . "danieldmcclanahan@gmail.com"))]) -(scrollkeeper . [(20190109 629) ((emacs (25 1))) "Custom scrolling commands with visual guidelines" single ((:commit . "3c4ac6b6b44686d31c260ee0b19daaee59bdccd6") (:keywords "convenience") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "https://github.com/alphapapa/scrollkeeper.el"))]) -(scribble-mode . [(20181204 325) ((emacs (24))) "Major mode for editing Scribble documents" single ((:commit . "217945d54de5e4bb207033f2116baa28f5c5ecf2") (:keywords "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/scribble-mode"))]) -(scratches . [(20151006 416) ((dash (2 11 0)) (f (0 17 0))) "Multiple scratches in any language" single ((:commit . "9441afe6396ca38f08029123fab5d87429cbf315") (:keywords "scratch") (:authors ("Zhang Kai Yu" . "yeannylam@gmail.com")) (:maintainer "Zhang Kai Yu" . "yeannylam@gmail.com"))]) -(scratch-pop . [(20170510 1458) ((popwin (0 7 0 -3))) "Generate, popup (& optionally backup) scratch buffer(s)." single ((:commit . "7f4172c792b10bd38898dd8963cf0ade91921869") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(scratch-palette . [(20150225 842) ((popwin (0 7 0 -3))) "make scratch buffer for each files" single ((:commit . "f6803b448079f4a81cc699cec7442ef543cd5818") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(scratch-message . [(20170107 1336) nil "Changing message in your scratch buffer" single ((:commit . "3ecc7f5e3b8a597ebd1492fd426d3720a7f34302") (:keywords "util" "scratch") (:authors ("Sylvain Rousseau <thisirs at gmail dot com>")) (:maintainer "Sylvain Rousseau <thisirs at gmail dot com>") (:url . "https://github.com/thisirs/scratch-message.git"))]) -(scratch-log . [(20141115 743) nil "Utility for *scratch* buffer." single ((:commit . "1168f7f16d36ca0f4ddf2bb98881f8db62cc5dc0") (:authors ("kmori" . "morihenotegami@gmail.com")) (:maintainer "kmori" . "morihenotegami@gmail.com"))]) -(scratch-ext . [(20140104 516) nil "Extensions for *scratch*" single ((:commit . "388c53cddd0466b451264894667ed64a6947ad67") (:authors ("Kouhei Yanagita" . "yanagi@shakenbu.org")) (:maintainer "Kouhei Yanagita" . "yanagi@shakenbu.org") (:url . "https://github.com/kyanagi/scratch-ext-el"))]) -(scratch . [(20190314 614) ((emacs (25 1))) "Mode-specific scratch buffers" single ((:commit . "4813d82b39a451f2a6d5b730cd7ec49a9bdabcca") (:keywords "convenience" "tools" "files") (:authors ("Ian Eure" . "ian.eure@gmail.com")) (:maintainer "Ian Eure" . "ian.eure@gmail.com") (:url . "https://github.com/ieure/scratch-el"))]) -(scpaste . [(20190228 2151) ((htmlize (1 39))) "Paste to the web via scp." single ((:commit . "568faaa70fa0413e2d165ad232cd4c6ec2815197") (:keywords "convenience" "hypermedia") (:authors ("Phil Hagelberg")) (:maintainer "Phil Hagelberg") (:url . "https://github.com/technomancy/scpaste"))]) -(scp . [(20171204 251) ((emacs (25 1)) (cl-lib (0 5))) "Use the SCP command to transfer files with the remote server" single ((:commit . "447305db246d9c9240678dd9c734ed920300463a") (:keywords "convenience" "scp") (:authors ("zg" . "13853850881@163.com")) (:maintainer "zg" . "13853850881@163.com") (:url . "https://github.com/tszg/emacs-scp"))]) -(sclang-snippets . [(20130513 751) ((yasnippet (0 8 0))) "Snippets for the SuperCollider Emacs mode" tar ((:commit . "c840a416b96f83bdd70491e3d1fbe2f1ae8b3f58") (:keywords "snippets") (:authors ("ptrv" . "mail@petervasil.net")) (:maintainer "ptrv" . "mail@petervasil.net"))]) -(sclang-extensions . [(20160509 338) ((auto-complete (1 4 0)) (s (1 3 1)) (dash (1 2 0)) (emacs (24 1))) "Extensions for the SuperCollider Emacs mode." tar ((:commit . "e9cc79732f16fdb582129303110c163dcc0d6da0") (:keywords "sclang" "supercollider" "languages" "tools") (:authors ("Chris Barrett" . "chris.d.barrett@me.com")) (:maintainer "Chris Barrett" . "chris.d.barrett@me.com"))]) -(scion . [(20130315 1255) nil "Haskell Minor Mode for Interacting with the Scion Library" single ((:commit . "99b4589175665687181a932cd836850205625f71") (:url . "https://code.google.com/p/scion-lib/"))]) -(schrute . [(20170521 1840) ((emacs (24 3))) "Help you remember there is a better way to do something." single ((:commit . "59faa6c4232ae183cea93237301acad8c0763997") (:keywords "convenience") (:authors ("Jorge Araya Navarro" . "elcorreo@deshackra.com")) (:maintainer "Jorge Araya Navarro" . "elcorreo@deshackra.com") (:url . "https://bitbucket.org/shackra/dwight-k.-schrute"))]) -(scheme-here . [(20141028 718) nil "cmuscheme extension for multiple inferior processes" single ((:commit . "430ba017cc530865218de23a8f7985095a58343f") (:keywords "scheme") (:authors ("Dimitris Vyzovitis" . "vyzo@media.mit.edu")) (:maintainer "Wei Zhao" . "kaihaosw@gmail.com") (:url . "https://github.com/kaihaosw/scheme-here"))]) -(scheme-complete . [(20181029 1255) nil "Smart auto completion for Scheme in Emacs" single ((:commit . "b86ee41d48664839181498313f4f3dc2fef17d6f") (:authors ("Alex Shinn")) (:maintainer "Alex Shinn"))]) -(scf-mode . [(20151122 248) nil "shorten file-names in compilation type buffers" single ((:commit . "dbfcdcd89034f208d65e181af58e0d73ad09f8b2") (:keywords "compilation") (:authors ("Le Wang")) (:maintainer "Le Wang") (:url . "https://github.com/lewang/scf-mode"))]) -(scalariform . [(20190114 215) ((s (1 12 0)) (f (0 20 0))) "Format Scala code with scalariform." single ((:commit . "478a15ccb4f825aba73262bccd3e61ce7017f64b") (:keywords "processes" "scala" "scalariform") (:authors ("zwild" . "judezhao@outlook.com")) (:maintainer "zwild" . "judezhao@outlook.com") (:url . "https://github.com/zwild/scalariform"))]) -(scala-mode . [(20170802 1132) nil "Major mode for editing Scala" tar ((:commit . "56cba2903cf6e12c715dbb5c99b34c97b2679379") (:keywords "languages") (:url . "https://github.com/ensime/emacs-scala-mode"))]) -(scad-preview . [(20160206 1336) ((scad-mode (91 0))) "Preview SCAD models in real-time within Emacs" single ((:commit . "fee011589671cc8f1296cb6aa81553e5bb699819") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(scad-mode . [(20190413 1246) nil "A major mode for editing OpenSCAD code" single ((:commit . "94dec619b42f8571f93f62bccbd0323a51e7dce5") (:keywords "languages") (:authors ("Len Trigg, Åukasz Stelmach")) (:maintainer "Len Trigg" . "lenbok@gmail.com") (:url . "https://raw.github.com/openscad/openscad/master/contrib/scad-mode.el"))]) -(sbt-mode . [(20180511 1622) ((emacs (24 4))) "Interactive support for sbt projects" tar ((:commit . "e658af140547cbef495c33535c7f694a501d318c") (:keywords "languages") (:url . "https://github.com/ensime/emacs-sbt-mode"))]) -(sayid . [(20181223 835) ((cider (0 14 0))) "sayid nREPL middleware client" single ((:commit . "559a335926c12b37ff2928097b3e7eaefb88920d") (:authors ("Bill Piel" . "bill@billpiel.com")) (:maintainer "Bill Piel" . "bill@billpiel.com") (:url . "https://github.com/clojure-emacs/sayid"))]) -(say-what-im-doing . [(20160706 1931) nil "dictate what you're doing with text to speech" single ((:commit . "5b2ce6783b02805bcac1107a149bfba3852cd9d5") (:keywords "text to speech" "dumb" "funny") (:authors ("Benaiah Mischenko")) (:maintainer "Benaiah Mischenko") (:url . "http://github.com/benaiah/say-what-im-doing"))]) -(savekill . [(20140418 229) nil "Save kill ring to disk" single ((:commit . "67fc94e3d8fe8ce3ca16f90518f6a46479b63e34") (:keywords "tools") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/savekill.el"))]) -(save-visited-files . [(20190430 1508) nil "save opened files across sessions" single ((:commit . "7eb71a6c4f9cb770b387fcef80231d9a9f648188") (:authors ("Nathaniel Flath" . "nflath@gmail.com")) (:maintainer "Nathaniel Flath" . "nflath@gmail.com") (:url . "http://github.com/nflath/save-visited-files"))]) -(save-load-path . [(20140206 1214) nil "save load-path and reuse it to test" single ((:commit . "6cb763a37e2b8af505bff2bcd11fd49c9ea04d66") (:keywords "lisp") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/save-load-path.el"))]) -(sauron . [(20181216 1200) nil "Track (erc/org/dbus/...) events and react to them." tar ((:commit . "6a26e9df1e6a49b0ea4ccfd843a032033162a287"))]) -(sass-mode . [(20190502 53) ((haml-mode (3 0 15)) (cl-lib (0 5))) "Major mode for editing Sass files" single ((:commit . "247a0d4b509f10b28e4687cd8763492bca03599b") (:keywords "markup" "language" "css") (:authors ("Natalie Weizenbaum")) (:maintainer "Natalie Weizenbaum") (:url . "http://github.com/nex3/haml/tree/master"))]) -(sane-term . [(20181130 101) ((emacs (24 1))) "Multi Term is crazy. This is not." single ((:commit . "ae0b3c024b66275f22809e2b41f428b01c259b96") (:authors ("Adam Patterson" . "adam@adamrt.com")) (:maintainer "Adam Patterson" . "adam@adamrt.com") (:url . "http://github.com/adamrt/sane-term"))]) -(salt-mode . [(20181225 1157) ((emacs (24 4)) (yaml-mode (0 0 12)) (mmm-mode (0 5 4)) (mmm-jinja2 (0 1))) "Major mode for Salt States" single ((:commit . "5ed02dabe0c5c58f51959a48b559f7fc5425ea2c") (:keywords "languages") (:authors ("Ben Hayden" . "hayden767@gmail.com")) (:maintainer "Glynn Forrest" . "me@glynnforrest.com") (:url . "https://github.com/glynnforrest/salt-mode"))]) -(salesforce-utils . [(20160814 154) ((cl-lib (0 5))) "simple utilities for Salesforce" single ((:commit . "73328baf0fb94ac0d0de645a8f6d42e5ae27f773") (:authors ("Sean McAfee")) (:maintainer "Sean McAfee") (:url . "https://github.com/grimnebulin/emacs-salesforce"))]) -(sailfish-scratchbox . [(20171202 1332) nil "Sailfish OS scratchbox inside the emacs." single ((:commit . "bb5ed0f0b0cd72f2eb1af065b7587ec81866b089") (:keywords "sb2" "mb2" "building" "scratchbox" "sailfish") (:authors ("V. V. Polevoy" . "fx@thefx.co")) (:maintainer "V. V. Polevoy" . "fx@thefx.co") (:url . "https://github.com/vityafx/sailfish-scratchbox.el"))]) -(sage-shell-mode . [(20180215 835) ((cl-lib (0 6 1)) (emacs (24 4)) (let-alist (1 0 5)) (deferred (0 5 1))) "A front-end for Sage Math" tar ((:commit . "9f07ff835e8d19afe571dbe414afb690c7b1cb5c") (:keywords "sage" "math") (:authors ("Sho Takemori" . "stakemorii@gmail.com")) (:maintainer "Sho Takemori" . "stakemorii@gmail.com") (:url . "https://github.com/sagemath/sage-shell-mode"))]) -(sackspace . [(20130719 956) nil "A better backspace" single ((:commit . "fd0480eaaf6d3d11fd30ac5feb2da2f4f7572708") (:keywords "delete" "convenience") (:authors ("Michael Markert" . "markert.michael@googlemail.com")) (:maintainer "Michael Markert" . "markert.michael@googlemail.com") (:url . "http://github.com/cofi/sackspace.el"))]) -(s3ed . [(20180204 1349) ((emacs (24 4)) (seq (0)) (dash (0))) "Tramp-like access to s3" tar ((:commit . "13503cb057bed29cb00a14dffe4472b5cb7748ad") (:keywords "s3" "tools") (:authors ("Matt Usifer" . "mattusifer@gmail.com")) (:maintainer "Matt Usifer" . "mattusifer@gmail.com") (:url . "https://github.com/mattusifer/s3ed"))]) -(s12cpuv2-mode . [(20171013 2051) ((emacs (24 3))) "Major-mode for S12CPUV2 assembly" single ((:commit . "b17d4cf848dec1e20e66458e5c7ff77a2c051a8c") (:keywords "s12cpuv2" "assembly" "languages") (:authors ("Adam Niederer" . "adam.niederer@gmail.com")) (:maintainer "Adam Niederer" . "adam.niederer@gmail.com") (:url . "https://github.com/AdamNiederer/s12cpuv2-mode"))]) -(s-buffer . [(20130605 2124) ((s (1 6 0)) (noflet (0 0 3))) "s operations for buffers" single ((:commit . "f95d234282377f00a2c3a9846681080cb95bb1df") (:keywords "lisp") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk") (:url . "http://github.com/nicferrier/emacs-s-buffer"))]) -(s . [(20180406 808) nil "The long lost Emacs string manipulation library." single ((:commit . "03410e6a7a2b11e47e1fea3b7d9899c7df26435e") (:keywords "strings") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(ryo-modal . [(20180331 818) ((emacs (24 4))) "Roll your own modal mode" single ((:commit . "42f874467dfdce59b511f883496ce2624b133dd7") (:keywords "convenience" "modal" "keys") (:authors ("Erik Sjöstrand" . "sjostrand.erik@gmail.com")) (:maintainer "Erik Sjöstrand" . "sjostrand.erik@gmail.com") (:url . "http://github.com/Kungsgeten/ryo-modal"))]) -(rvm . [(20150402 1442) nil "Emacs integration for rvm" single ((:commit . "134497bc460990c71ab8fa75431156e62c17da2d") (:keywords "ruby" "rvm") (:authors ("Yves Senn" . "yves.senn@gmx.ch")) (:maintainer "Yves Senn" . "yves.senn@gmx.ch") (:url . "http://www.emacswiki.org/emacs/RvmEl"))]) -(rustic . [(20190615 601) ((emacs (26 1)) (xterm-color (1 6)) (dash (2 13 0)) (s (1 10 0)) (f (0 18 2)) (projectile (0 14 0)) (markdown-mode (2 3)) (spinner (1 7 3)) (let-alist (1 0 4)) (seq (2 3)) (ht (2 0))) "Rust development environment" tar ((:commit . "8a70f73ffe77bb8d91329b7c4bafed3252ad74d7") (:keywords "languages") (:authors ("Mozilla")) (:maintainer "Mozilla"))]) -(rust-playground . [(20180807 1158) ((emacs (24 3))) "Local Rust playground for short code snippets." single ((:commit . "092c8b11d62dea23953a004744833092bac85fe1") (:keywords "tools" "rust") (:authors ("Alexander I.Grafov" . "grafov@gmail.com")) (:maintainer "Alexander I.Grafov" . "grafov@gmail.com") (:url . "https://github.com/grafov/rust-playground"))]) -(rust-mode . [(20190517 2037) ((emacs (24 0))) "A major emacs mode for editing Rust source code" single ((:commit . "c62185ae1c6edf0335261f169241eb8ee9713ad5") (:keywords "languages") (:authors ("Mozilla")) (:maintainer "Mozilla") (:url . "https://github.com/rust-lang/rust-mode"))]) -(rust-auto-use . [(20181125 637) nil "Utility to automatically insert Rust use statements" single ((:commit . "d924505ecd954625dcb2d56dfba97111dc6a17fa") (:keywords "languages") (:authors ("Rotem Yaari" . "rotemy@MBP.local")) (:maintainer "Rotem Yaari" . "rotemy@MBP.local"))]) -(russian-holidays . [(20170109 2140) nil "Russian holidays for the calendar" single ((:commit . "b285a30f29d85c48e3ea4eb93972d34a090c167b") (:authors ("Alexander I.Grafov" . "siberian@laika.name")) (:maintainer "Alexander I.Grafov" . "siberian@laika.name") (:url . "https://github.com/grafov/russian-holidays"))]) -(runtests . [(20150807 831) nil "Run unit tests from Emacs" single ((:commit . "ed90249f24cc48290018df48b9b9b7172440be3e") (:keywords "test") (:authors ("Sune Simonsen" . "sune@we-knowhow.dk")) (:maintainer "Sune Simonsen" . "sune@we-knowhow.dk") (:url . "https://github.com/sunesimonsen/emacs-runtests"))]) -(runner . [(20160524 743) nil "Improved \"open with\" suggestions for dired" single ((:commit . "a211d57ddc600410d07a8b534920ba905b093d87") (:keywords "shell command" "dired" "file extension" "open with") (:authors ("Thamer Mahmoud" . "thamer.mahmoud@gmail.com")) (:maintainer "Thamer Mahmoud" . "thamer.mahmoud@gmail.com") (:url . "https://github.com/thamer/runner"))]) -(run-stuff . [(20180209 748) ((emacs (24 4))) "context based command execution" single ((:commit . "ed42a7bc9a197ccf1ca87f9937bf98f0a9ed3f92") (:keywords "files" "lisp" "files" "convenience" "hypermedia") (:authors ("Campbell Barton" . "ideasman42@gmail.com")) (:maintainer "Campbell Barton" . "ideasman42@gmail.com") (:url . "https://github.com/ideasman42/emacs-run-stuff"))]) -(rum-mode . [(20180127 22) ((emacs (24))) "Major mode for Rum programming language" single ((:commit . "893b1a26244ef6ea82833a9afbc13cb82c0cfb53") (:keywords "rum" "languages" "lisp") (:url . "https://github.com/rumlang/rum-mode"))]) -(rufo . [(20170718 1416) ((emacs (24 3))) "use rufo to automatically format ruby files" single ((:commit . "85a6d80fb05fef396a8029b8f944c92a53faf8fe") (:authors ("Daniel Ma" . "danielhgma@gmail.com")) (:maintainer "Daniel Ma" . "danielhgma@gmail.com") (:url . "https://github.com/danielma/rufo.el"))]) -(ruby-tools . [(20151209 1615) nil "Collection of handy functions for ruby-mode." tar ((:commit . "6b97066b58a4f82eb2ecea6434a0a7e981aa4c18"))]) -(ruby-test-mode . [(20190412 909) ((ruby-mode (1 0)) (pcre2el (1 8))) "Minor mode for Behaviour and Test Driven" single ((:commit . "e805a81c3ea787f3c82dbb252c21d747be20bc7a") (:keywords "ruby" "unit" "test" "rspec" "tools") (:authors ("Roman Scherer" . "roman.scherer@gmx.de") ("Caspar Florian Ebeling" . "florian.ebeling@gmail.com")) (:maintainer "Roman Scherer" . "roman.scherer@burningswell.com") (:url . "https://github.com/ruby-test-mode/ruby-test-mode"))]) -(ruby-refactor . [(20160214 1650) ((ruby-mode (1 2))) "A minor mode which presents various Ruby refactoring helpers." single ((:commit . "e6b7125878a08518bffec6942df0c606f748e9ee") (:keywords "refactor" "ruby") (:url . "https://github.com/ajvargo/ruby-refactor"))]) -(ruby-interpolation . [(20131112 1652) nil "Ruby string interpolation helpers" single ((:commit . "1978e337601222cedf00e117bf4b5cac15d1f203") (:authors ("Arthur Leonard Andersen" . "leoc.git@gmail.com")) (:maintainer "Arthur Leonard Andersen" . "leoc.git@gmail.com") (:url . "http://github.com/leoc/ruby-interpolation.el"))]) -(ruby-hash-syntax . [(20190109 2227) nil "Toggle ruby hash syntax between => and 1.9+ styles" single ((:commit . "577ab383c142e3a0697ce73480158a8b489038da") (:keywords "languages") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/ruby-hash-syntax"))]) -(ruby-factory . [(20160102 721) ((inflections (1 1))) "Minor mode for Ruby test object generation libraries" tar ((:commit . "2bb7ccc2fccb5257376a989aa395bc7b9eb1d55d") (:keywords "ruby" "rails" "convenience") (:authors ("Skye Shaw" . "skye.shaw@gmail.com")) (:maintainer "Skye Shaw" . "skye.shaw@gmail.com") (:url . "http://github.com/sshaw/ruby-factory-mode"))]) -(ruby-extra-highlight . [(20171106 1933) nil "Highlight Ruby parameters." single ((:commit . "83942d18eae361998d24c1c523b308eea821f048") (:keywords "languages" "faces") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/ruby-extra-highlight"))]) -(ruby-end . [(20141215 1223) nil "Automatic insertion of end blocks for Ruby" single ((:commit . "a136f75abb6d5577ce40d61dfeb778c2e9bb09c0") (:keywords "speed" "convenience" "ruby") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/ruby-end"))]) -(ruby-electric . [(20170810 1130) nil "Minor mode for electrically editing ruby code" single ((:commit . "3553448a780a1ea5c3b0e9becd820d4762876593") (:keywords "languages" "ruby") (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/ruby-electric.el"))]) -(ruby-compilation . [(20150709 640) ((inf-ruby (2 2 1))) "run a ruby process in a compilation buffer" single ((:commit . "134438af8fbdfa9c8077267c768d273a9792b484") (:keywords "test" "convenience") (:authors ("Eric Schulte")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/eschulte/rinari"))]) -(ruby-additional . [(20181221 1159) ((emacs (24 3)) (ruby-mode (1 2))) "ruby-mode extensions yet to be merged into Emacs" tar ((:commit . "75bccbb384e6907df47ab69acdccb4536806c890") (:keywords "ruby" "languages") (:url . "https://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/"))]) -(rubocopfmt . [(20181009 1703) ((cl-lib (0 5))) "Minor-mode to format Ruby code with RuboCop on save" single ((:commit . "fc96145719a65b2551339d087ddd95b72e14646f") (:keywords "convenience" "wp" "edit" "ruby" "rubocop") (:authors ("Jim Myhrberg")) (:maintainer "Jim Myhrberg") (:url . "https://github.com/jimeh/rubocopfmt.el"))]) -(rubocop . [(20190326 1424) ((emacs (24))) "An Emacs interface for RuboCop" single ((:commit . "03bf15558a6eb65e4f74000cab29412efd46660e") (:keywords "project" "convenience") (:authors ("Bozhidar Batsov")) (:maintainer "Bozhidar Batsov") (:url . "https://github.com/bbatsov/rubocop-emacs"))]) -(rubik . [(20180222 2014) ((cl-lib (1 0)) (emacs (25 3))) "Rubik's Cube" single ((:commit . "c8dab1726463dbc9042a0b00186e4a8df02eb868") (:keywords "games") (:authors ("Ivan 'Kurvivor' Truskov" . "trus19@gmail.com")) (:maintainer "Ivan 'Kurvivor' Truskov" . "trus19@gmail.com") (:url . "https://github.com/Kurvivor19/rubik-mode"))]) -(rtm . [(20180329 1508) ((cl-lib (1 0))) "An elisp implementation of the Remember The Milk API" single ((:commit . "3e3d09387cb84801343ecca8fb02e82f213e7bbe") (:keywords "remember" "the" "milk" "productivity" "todo") (:authors ("Friedrich Delgado Friedrichs" . "frie...@nomaden.org")) (:maintainer "Friedrich Delgado Friedrichs" . "frie...@nomaden.org") (:url . "https://github.com/pmiddend/emacs-rtm"))]) -(rtags . [(20190618 555) nil "A front-end for rtags" single ((:commit . "d49e49f46b878e0d10f6ddc3951d690d50e75277") (:authors ("Jan Erik Hanssen" . "jhanssen@gmail.com") ("Anders Bakken" . "agbakken@gmail.com")) (:maintainer "Jan Erik Hanssen" . "jhanssen@gmail.com") (:url . "http://rtags.net"))]) -(rspec-mode . [(20190609 1123) ((ruby-mode (1 0)) (cl-lib (0 4))) "Enhance ruby-mode for RSpec" tar ((:commit . "bc2618a71e0bbef60258cf59bad0796f469a2685") (:keywords "rspec" "ruby") (:authors ("Peter Williams, et al.")) (:maintainer "Peter Williams, et al.") (:url . "http://github.com/pezra/rspec-mode"))]) -(rsense . [(20100511 405) nil "RSense client for Emacs" single ((:commit . "8b5ee58318747ca1dde84ee41d48c4f50175cf35") (:keywords "convenience") (:authors ("Tomohiro Matsuyama" . "tomo@cx4a.org")) (:maintainer "Tomohiro Matsuyama" . "tomo@cx4a.org"))]) -(rpn-calc . [(20181121 1154) ((popup (0 4))) "quick RPN calculator for hackers" single ((:commit . "27279f89c80eb3f28ff9f981eff06502056943e2") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "https://github.com/zk-phi/rpn-calc"))]) -(rpm-spec-mode . [(20160710 1136) nil "RPM spec file editing commands for Emacs/XEmacs" single ((:commit . "c1c38050c48ea330c7cea632b8785d66daeefb2b") (:keywords "unix" "languages") (:authors ("Stig Bjørlykke," . "stig@bjorlykke.org")) (:maintainer "Stig Bjørlykke," . "stig@bjorlykke.org"))]) -(roy-mode . [(20121208 1158) nil "Roy major mode" single ((:commit . "0416f561edbc6b4a29fced8be84d2527a9613d65") (:keywords "extensions") (:authors ("Georgii Leontiev")) (:maintainer "Georgii Leontiev") (:url . "https://github.com/folone/roy-mode"))]) -(rotate . [(20160909 836) nil "Rotate the layout of emacs" single ((:commit . "091b5ac4fc310773253efb317e3dbe8e46959ba6") (:keywords "window" "layout") (:authors ("daichi.hirata <hirata.daichi at gmail.com>")) (:maintainer "daichi.hirata <hirata.daichi at gmail.com>") (:url . "https://github.com/daichirata/emacs-rotate"))]) -(ros . [(20190602 1509) ((emacs (24 4))) "Package to interact with and write code for ROS systems" tar ((:commit . "b5deea437bf8999907e381d3b16f8b0ec0185045") (:authors ("Max Beutelspacher" . "max.beutelspacher@mailbox.org")) (:maintainer "Max Beutelspacher" . "max.beutelspacher@mailbox.org") (:url . "https://github.com/DerBeutlin/ros.el"))]) -(rope-read-mode . [(20190527 1027) nil "Rearrange lines to read text smoothly" single ((:commit . "ba7cb7e046a2353ae43c2c69fbe7dd2e703e0a20") (:keywords "reading" "convenience" "chill") (:authors ("Marco Wahl" . "marcowahlsoft@gmail.com")) (:maintainer "Marco Wahl" . "marcowahlsoft@gmail.com") (:url . "https://github.com/marcowahl/rope-read-mode"))]) -(roguel-ike . [(20160120 302) ((popup (0 5 0))) "A coffee-break roguelike" tar ((:commit . "706dcb0687e8016d7d776f9d9e5ace9fdbbca43c"))]) -(robots-txt-mode . [(20180919 1541) nil "Major mode for editing robots.txt" single ((:commit . "f8fc7ee50a3d5d7a2838772ed298fb69b9051c5c") (:keywords "languages" "comm" "web") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/emacs-php/robots-txt-mode"))]) -(robe . [(20190521 58) ((inf-ruby (2 5 1)) (emacs (24 4))) "Code navigation, documentation lookup and completion for Ruby" tar ((:commit . "8190cb7c7beb8385dd3abf6ea357f33d8981ae8a") (:keywords "ruby" "convenience" "rails") (:authors ("Dmitry Gutov")) (:maintainer "Dmitry Gutov") (:url . "https://github.com/dgutov/robe"))]) -(rmsbolt . [(20190508 609) ((emacs (25 1))) "A compiler output viewer" tar ((:commit . "fcefc0509dd0a4ec2e02020c83e1c4a1101ef903") (:keywords "compilation" "tools") (:authors ("Jay Kamat" . "jaygkamat@gmail.com")) (:maintainer "Jay Kamat" . "jaygkamat@gmail.com") (:url . "http://gitlab.com/jgkamat/rmsbolt"))]) -(rjsx-mode . [(20190614 2215) ((emacs (24 4)) (js2-mode (20170504))) "Real support for JSX" single ((:commit . "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5") (:keywords "languages") (:authors ("Felipe Ochoa" . "felipe@fov.space")) (:maintainer "Felipe Ochoa" . "felipe@fov.space") (:url . "https://github.com/felipeochoa/rjsx-mode/"))]) -(riscv-mode . [(20170804 1521) ((emacs (24 4))) "Major-mode for RISC V assembly" single ((:commit . "99febf97d1fa9441e8dada94fe30c2aa439c9749") (:keywords "riscv" "assembly") (:authors ("Adam Niederer <https://github.com/AdamNiederer>")) (:maintainer "Adam Niederer") (:url . "https://github.com/AdamNiederer/riscv-mode"))]) -(ripgrep . [(20190215 841) nil "Front-end for ripgrep, a command line search tool" single ((:commit . "40e871dcc4519a70981e9f28acea304692a60978") (:keywords "ripgrep" "ack" "pt" "ag" "sift" "grep" "search") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/ripgrep.el"))]) -(rings . [(20160531 2027) nil "Buffer rings. Like tabs, but better." single ((:commit . "3590b222eb80652cbd27866f066bd3571d86edfc") (:keywords "utilities" "productivity") (:authors ("Konrad Scorciapino")) (:maintainer "Konrad Scorciapino") (:url . "http://github.com/konr/rings"))]) -(rinari . [(20150709 640) ((ruby-mode (1 0)) (inf-ruby (2 2 5)) (ruby-compilation (0 16)) (jump (2 0))) "Rinari Is Not A Rails IDE" single ((:commit . "134438af8fbdfa9c8077267c768d273a9792b484") (:keywords "ruby" "rails" "project" "convenience" "web") (:authors ("Phil Hagelberg, Eric Schulte, Steve Purcell")) (:maintainer "Phil Hagelberg, Eric Schulte, Steve Purcell") (:url . "https://github.com/eschulte/rinari"))]) -(rimero-theme . [(20180901 1348) ((emacs (24))) "Theme with a dark background suitable for UI and terminal usage." single ((:commit . "a2e706c2b34f749019979a133f08a2d94a1104b3") (:keywords "faces" "theme" "dark" "light colors") (:authors ("Yves Zoundi" . "yveszoundi@users.sf.net")) (:maintainer "Yves Zoundi" . "yveszoundi@users.sf.net") (:url . "https://github.com/yveszoundi/emacs-rimero-theme"))]) -(rigid-tabs . [(20170903 1559) ((emacs (24 3))) "Fix TAB alignment in diff buffers" single ((:commit . "eba84ceaba2e57e76ad2dfbb7a7154238a25d956") (:keywords "diff" "whitespace" "version control" "magit") (:authors ("Yuri D'Elia" . "wavexx@thregr.org")) (:maintainer "Yuri D'Elia" . "wavexx@thregr.org") (:url . "https://github.com/wavexx/rigid-tabs.el"))]) -(right-click-context . [(20190528 1832) ((emacs (24 3)) (cl-lib (0 5)) (popup (0 5)) (ordinal (0 0 1))) "Right Click Context menu" single ((:commit . "4b1a2cd2b3eaea2393d3696a36da8f42e386c23d") (:keywords "mouse" "menu" "rightclick") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/right-click-context"))]) -(rich-minority . [(20190419 1136) ((cl-lib (0 5))) "Clean-up and Beautify the list of minor-modes." single ((:commit . "a03e693f6f9232cf75363aaaf1cb041f21675c19") (:keywords "mode-line" "faces") (:authors ("Artur Malabarba" . "emacs@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com") (:url . "https://github.com/Malabarba/rich-minority"))]) -(rib-mode . [(20170726 1448) ((emacs (24))) "RenderMan® Interface Bytestream (RIB) Major Mode" single ((:commit . "97470158784c3c212e22e2c20b8471ee65ba59af") (:authors ("Remik Ziemlinski and Daniel Blezek" . "daniel.blezek@gmail.com")) (:maintainer "Remik Ziemlinski and Daniel Blezek" . "daniel.blezek@gmail.com") (:url . "https://github.com/blezek/rib-mode"))]) -(rhtml-mode . [(20130422 1311) nil "major mode for editing RHTML files" tar ((:commit . "a6d71b38a3db867ccf82999c99805db1a3a33c33"))]) -(rg . [(20190403 1533) ((cl-lib (0 5)) (emacs (24 4)) (s (1 10 0)) (wgrep (2 1 10))) "A search tool based on ripgrep." tar ((:commit . "10c3ea551a83df1d396eaf1bd38ae377281579a1") (:keywords "matching" "tools") (:authors ("David Landell" . "david.landell@sunnyhill.email") ("Roland McGrath" . "roland@gnu.org")) (:maintainer "David Landell" . "david.landell@sunnyhill.email") (:url . "https://github.com/dajva/rg.el"))]) -(rfc-mode . [(20190525 1910) ((emacs (25 1)) (helm (3 2))) "RFC document browser and viewer" single ((:commit . "e7d9e2f4cb9ff302231efe57af6fdc201e5b48f0") (:authors ("Nicolas Martyanoff" . "khaelin@gmail.com")) (:maintainer "Nicolas Martyanoff" . "khaelin@gmail.com") (:url . "https://github.com/galdor/rfc-mode"))]) -(reykjavik-theme . [(20180823 1544) ((emacs (24))) "Theme with a dark background." single ((:commit . "2cd0043ae6d046f812a95bb26398ea23141beccc") (:authors ("martin haesler")) (:maintainer "martin haesler"))]) -(review-mode . [(20181214 315) nil "major mode for ReVIEW" single ((:commit . "978be7337628c746f2cb237094c65187a11d7682") (:authors ("Kenshi Muto" . "kmuto@debian.org")) (:maintainer "Kenshi Muto" . "kmuto@debian.org") (:url . "https://github.com/kmuto/review-el"))]) -(reverse-theme . [(20141205 145) nil "Reverse theme for Emacs" single ((:commit . "8319d0d5342890a3530ffa4daafdb7c35feda1ca") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-reverse-theme"))]) -(reverse-im . [(20190428 1711) ((emacs (24 4))) "Reverse mapping for keyboard layouts other than english." single ((:commit . "e30815653aa81eac097f27be14886806d9df4ea4") (:keywords "input" "method") (:url . "https://github.com/a13/reverse-im.el"))]) -(reveal-in-osx-finder . [(20150802 1657) nil "Reveal file associated with buffer in OS X Finder" single ((:commit . "5710e5936e47139a610ec9a06899f72e77ddc7bc") (:keywords "os x" "finder") (:authors ("Kazuki YOSHIDA")) (:maintainer "Kazuki YOSHIDA") (:url . "https://github.com/kaz-yos/reveal-in-osx-finder"))]) -(restclient-test . [(20180106 2046) ((emacs (24 4)) (restclient (0))) "Run tests with restclient.el" single ((:commit . "4518561bc9661fedacb6fb352e9677207f45c418") (:authors ("Simen Heggestøyl" . "simenheg@gmail.com")) (:maintainer "Simen Heggestøyl" . "simenheg@gmail.com") (:url . "https://github.com/simenheg/restclient-test.el"))]) -(restclient-helm . [(20170314 1554) ((restclient (0)) (helm (1 9 4))) "helm interface for restclient.el" single ((:commit . "422ee8d8b077dffe65706a0f027ed700b84746bc") (:keywords "http" "helm") (:authors ("Pavel Kurnosov" . "pashky@gmail.com")) (:maintainer "Pavel Kurnosov" . "pashky@gmail.com"))]) -(restclient . [(20190502 2214) nil "An interactive HTTP client for Emacs" single ((:commit . "422ee8d8b077dffe65706a0f027ed700b84746bc") (:keywords "http") (:authors ("Pavel Kurnosov" . "pashky@gmail.com")) (:maintainer "Pavel Kurnosov" . "pashky@gmail.com"))]) -(restart-emacs . [(20180601 1031) nil "Restart emacs from within emacs" single ((:commit . "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9") (:keywords "convenience") (:authors ("Iqbal Ansari" . "iqbalansari02@yahoo.com")) (:maintainer "Iqbal Ansari" . "iqbalansari02@yahoo.com") (:url . "https://github.com/iqbalansari/restart-emacs"))]) -(resize-window . [(20180918 538) ((emacs (24)) (cl-lib (0 5))) "easily resize windows" single ((:commit . "72018aa4d2401b60120588199d4cedd0dc1fbcfb") (:keywords "window" "resize") (:authors ("Dan Sutton " . "danielsutton01@gmail.com")) (:maintainer "Dan Sutton " . "danielsutton01@gmail.com") (:url . "https://github.com/dpsutton/resize-mode"))]) -(requirejs-mode . [(20130215 2104) nil "Improved AMD module management" single ((:commit . "bbb0c09f8eb2d6a33c17319be8137f68bb16bc92") (:keywords "javascript" "amd" "requirejs") (:authors ("Marc-Olivier Ricard" . "marco.ricard@gmail.com")) (:maintainer "Marc-Olivier Ricard" . "marco.ricard@gmail.com"))]) -(requirejs . [(20151204 719) ((js2-mode (20150713)) (popup (0 5 3)) (s (1 9 0)) (cl-lib (0 5)) (yasnippet (20151011 1823))) "Requirejs import manipulation and source traversal." tar ((:commit . "4ea2a5fcbc76e4cbb6a7461e6f05f019b75865b1") (:keywords "javascript" "requirejs") (:authors ("Joe Heyming" . "joeheyming@gmail.com")) (:maintainer "Joe Heyming" . "joeheyming@gmail.com") (:url . "https://github.com/joeheyming/requirejs-emacs"))]) -(request-deferred . [(20181129 317) ((deferred (0 3 1)) (request (0 2 0))) "Wrap request.el by deferred" single ((:commit . "db88fd21d25399ff9940c208173665b12493992b") (:authors ("Takafumi Arakaki <aka.tkf at gmail.com>")) (:maintainer "Takafumi Arakaki <aka.tkf at gmail.com>") (:url . "https://github.com/tkf/emacs-request"))]) -(request . [(20181129 1138) ((emacs (24 4))) "Compatible layer for URL request in Emacs" single ((:commit . "db88fd21d25399ff9940c208173665b12493992b") (:authors ("Takafumi Arakaki <aka.tkf at gmail.com>")) (:maintainer "Takafumi Arakaki <aka.tkf at gmail.com>") (:url . "https://github.com/tkf/emacs-request"))]) -(req-package . [(20180122 500) ((use-package (1 0)) (dash (2 7 0)) (log4e (0 2 0)) (ht (0))) "A use-package wrapper for package runtime dependencies management" tar ((:commit . "0c0ac7451149dac6bfda2adfe959d1df1c273de6") (:keywords "dotemacs" "startup" "speed" "config" "package") (:authors ("Edward Knyshov" . "edvorg@gmail.com")) (:maintainer "Edward Knyshov" . "edvorg@gmail.com") (:url . "https://github.com/edvorg/req-package"))]) -(repo . [(20190326 1644) ((emacs (24 3))) "Running repo from Emacs" single ((:commit . "c53c06169dec4e556982fb06ca780ca4708dc436") (:keywords "convenience") (:authors ("Damien Merenne")) (:maintainer "Damien Merenne") (:url . "https://github.com/canatella/repo-el"))]) -(replace-with-inflections . [(20180831 635) ((cl-lib (0 5)) (string-inflection (1 0 10)) (inflections (1 1))) "Inflection aware `query-replace'" single ((:commit . "d9201e047856492f282da65459b28aba25998dbb") (:keywords "matching") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/replace-with-inflections.el"))]) -(replace-symbol . [(20160518 12) nil "Rename symbols in expressions or buffers" single ((:commit . "baf949e528aee1881f455f9c84e67718bedcb3f6") (:authors ("Brian Mastenbrook" . "brian@mastenbrook.net")) (:maintainer "Brian Mastenbrook" . "brian@mastenbrook.net") (:url . "https://github.com/bmastenbrook/replace-symbol-el"))]) -(replace-pairs . [(20160207 1251) ((emacs (24 4))) "Query-replace pairs of things" single ((:commit . "acfb254dddffcee4250092fab9394ef2b42ffbc0") (:authors ("David Shepherd" . "davidshepherd7@gmail.com")) (:maintainer "David Shepherd" . "davidshepherd7@gmail.com") (:url . "https://github.com/davidshepherd7/replace-pairs"))]) -(replace-from-region . [(20170227 2316) nil "Replace commands whose query is from region" single ((:commit . "dc9318b9b2822da7b00ecc34d1dc965c8f96c9bb") (:keywords "replace" "search" "region") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/emacs/download/replace-from-region.el"))]) -(repl-toggle . [(20190430 713) ((fullframe (0 0 5))) "Switch to/from repl buffer for current major-mode" single ((:commit . "a36caac7649fbffbe30f7b06541c9efd723563fc") (:keywords "repl" "buffers" "toggle") (:authors ("Tom Regner" . "tom@goochesa.de")) (:maintainer "Tom Regner" . "tom@goochesa.de"))]) -(repeater . [(20180418 1212) ((emacs (24 4))) "Repeat recent repeated commands" single ((:commit . "854b874542b186b2408cbc58ad0591fe8eb70b6c") (:keywords "convenience") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/repeater"))]) -(repeatable-motion . [(20170620 1848) ((emacs (24))) "Make repeatable versions of motions" tar ((:commit . "f29effdc4121c2dc7e3fec9b3a62debce29cda9d") (:keywords "motion" "repeatable") (:authors ("William Hatch" . "willghatch@gmail.com")) (:maintainer "William Hatch" . "willghatch@gmail.com") (:url . "https://github.com/willghatch/emacs-repeatable-motion"))]) -(renpy . [(20190419 1749) nil "silly walks for Renpy" single ((:commit . "943e1af71d23128ff100d41d178ccffe28f97944") (:keywords "languages") (:authors ("PyTom" . "pytom@bishoujo.us")) (:maintainer "Dave Love" . "fx@gnu.org") (:url . "https://github.com/billywade/renpy-mode"))]) -(remember-last-theme . [(20170619 2133) ((emacs (24 4))) "Remember the last used theme between sessions." single ((:commit . "0973f1aa6b96355fa376fffe8b45733b6e963c51") (:keywords "convenience" "faces") (:authors ("Anler Hernández Peral" . "inbox+emacs@anler.me")) (:maintainer "Anler Hernández Peral" . "inbox+emacs@anler.me") (:url . "https://github.com/anler/remember-last-theme"))]) -(remark-mode . [(20171218 756) ((emacs (25 1)) (markdown-mode (2 0))) "Major mode for the remark slideshow tool" tar ((:commit . "e8a95f25d865d6165a7fdb1cadf5e6f0bb5ee73b") (:keywords "remark" "slideshow" "markdown" "hot reload") (:authors ("@torgeir")) (:maintainer "@torgeir"))]) -(relax . [(20131029 2134) ((json (1 2))) "For browsing and interacting with CouchDB" single ((:commit . "6e33892623ab87833082262321dc8e1977209626") (:keywords "database" "http") (:authors ("Phil Hagelberg")) (:maintainer "Phil Hagelberg") (:url . "http://github.com/technomancy/relax.el"))]) -(relative-buffers . [(20160221 1923) ((cl-lib (0 5)) (dash (2 6 0)) (s (1 9 0)) (f (0 16 2))) "Emacs buffers naming convention" single ((:commit . "2547475084244d266b507e563c9b4034705cfeca") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/relative-buffers"))]) -(related . [(20190327 1024) ((cl-lib (0 5))) "Switch back and forth between similarly named buffers." single ((:commit . "546c7e811b290470288b617f2c27106bd83ccd33") (:keywords "file" "buffer" "switch" "selection" "matching" "convenience") (:authors ("Julien Montmartin")) (:maintainer "Julien Montmartin") (:url . "https://github.com/julien-montmartin/related"))]) -(register-channel . [(20180926 2349) nil "Jump around fast using registers" single ((:commit . "9272923757402d177a0b2deab1d9c3c74601c48e") (:keywords "convenience") (:authors ("Yang Zhao" . "YangZhao11@users.noreply.github.com")) (:maintainer "Yang Zhao" . "YangZhao11@users.noreply.github.com"))]) -(region-state . [(20181205 1746) nil "Show the number of chars/lines or rows/columns in the region" single ((:commit . "8c636b655eef45e0015684699737d31e15450000") (:keywords "convenience") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/region-state.el"))]) -(region-occurrences-highlighter . [(20190617 901) ((emacs (24))) "Mark occurrences of current region (selection)." single ((:commit . "b3e2eb48e342791aca6c9586ad2fe44540df0463") (:keywords "convenience") (:authors ("Ãlvaro González Sotillo" . "alvarogonzalezsotillo@gmail.com")) (:maintainer "Ãlvaro González Sotillo" . "alvarogonzalezsotillo@gmail.com") (:url . "https://github.com/alvarogonzalezsotillo/region-occurrences-highlighter"))]) -(region-convert . [(20181221 528) nil "Convert string in region by Lisp function" single ((:commit . "a50a0828a989fc1788a32946249a3758793156b3") (:keywords "region" "convenience") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/right-click-context"))]) -(region-bindings-mode . [(20140407 2214) nil "Enable custom bindings when mark is active." single ((:commit . "3fa5dbdbd7c000bebff6d9d14a4be326ec24b6fc") (:keywords "convenience") (:authors ("Fabián E. Gallina" . "fabian@anue.biz")) (:maintainer "Fabián E. Gallina" . "fabian@anue.biz") (:url . "https://github.com/fgallina/region-bindings-mode"))]) -(regex-tool . [(20170104 1918) nil "A regular expression evaluation tool for programmers" single ((:commit . "0b4a0111143c88ef94bec56624cb2e00c1a054e6") (:keywords "regex" "languages" "programming" "development") (:authors ("John Wiegley" . "johnw@newartisans.com")) (:maintainer "John Wiegley" . "johnw@newartisans.com") (:url . "http://www.newartisans.com/"))]) -(regex-dsl . [(20100124 1028) nil "lisp syntax for regexps" single ((:commit . "ac89ab8b7691a165ef3007cb84417125cfc0632e") (:authors ("Aliaksey Kandratsenka" . "alk@tut.by")) (:maintainer "Aliaksey Kandratsenka" . "alk@tut.by"))]) -(reformatter . [(20190529 2238) ((emacs (24 3))) "Define commands which run reformatters on the current buffer" single ((:commit . "b29fdd346d0d06bef4cafc75adbde51a46392e90") (:keywords "convenience" "tools") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/reformatter.el"))]) -(refine . [(20180315 2228) ((emacs (24 3)) (s (1 11 0)) (dash (2 12 0)) (list-utils (0 4 4)) (loop (1 2))) "interactive value editing" single ((:commit . "0a99439a0b4ed6f79b9a240ea1270140a9e328bc") (:keywords "convenience") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(redtt . [(20181121 21) ((emacs (25 3))) "Major mode for editing redtt proofs" single ((:commit . "4318440e76b0c9b17ad24607427f0e0b31531af6") (:keywords "languages") (:authors ("Jonathan Sterling" . "jon@jonmsterling.com")) (:maintainer "Jonathan Sterling" . "jon@jonmsterling.com") (:url . "http://github.com/RedPRL/redtt"))]) -(redtick . [(20180424 2136) ((emacs (24 4))) "Smallest pomodoro timer (1 char)" tar ((:commit . "94b4cd43ac20c64dcac96edac2c1a3b9fcc59bb9") (:keywords "calendar") (:authors ("F. Febles")) (:maintainer "F. Febles") (:url . "http://github.com/ferfebles/redtick"))]) -(redshank . [(20180730 407) ((paredit (21))) "Common Lisp Editing Extensions" tar ((:commit . "d059c5841044aa163664f8bf87c1d981bf0a04fe") (:keywords "languages" "lisp") (:authors ("Michael Weber" . "michaelw@foldr.org")) (:maintainer "Michael Weber" . "michaelw@foldr.org"))]) -(redprl . [(20180418 1434) ((emacs (24 3))) "Major mode for editing RedPRL proofs and interacting with RedPRL" single ((:commit . "4b13acd64cf523442f87337f7c41261e1dfd37dd") (:keywords "languages") (:authors ("Jonathan Sterling" . "jon@jonmsterling.com")) (:maintainer "Jonathan Sterling" . "jon@jonmsterling.com"))]) -(redpen-paragraph . [(20160625 1050) ((emacs (24)) (cl-lib (0 5)) (json (1 4))) "RedPen interface." single ((:commit . "770ffb34b04bfa0ea8484fa1506e96c530168e13") (:keywords "document" "proofreading" "help") (:authors ("karronoli")) (:maintainer "karronoli") (:url . "https://github.com/karronoli/redpen-paragraph.el"))]) -(redis . [(20150531 1948) ((emacs (24)) (cl-lib (0 5))) "Redis integration" single ((:commit . "2c33f3397bc14e7a8192867b55920492d4eead8c") (:keywords "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/redis.el"))]) -(recursive-narrow . [(20190306 1521) nil "narrow-to-region that operates recursively" single ((:commit . "5e3e2067d5a148d7e64e64e0355d3b6860e4c259") (:authors ("Nathaniel Flath" . "flat0103@gmail.com")) (:maintainer "Nathaniel Flath" . "flat0103@gmail.com") (:url . "http://github.com/nflath/recursive-narrow"))]) -(rectangle-utils . [(20190411 1757) ((emacs (24)) (cl-lib (0 5))) "Some useful rectangle functions." single ((:commit . "46f7e73340fee40c1ab9a4e766a08ae3fce83ebe") (:authors ("Thierry Volpiatto" . "thierry.volpiatto@gmail.com")) (:maintainer "Thierry Volpiatto" . "thierry.volpiatto@gmail.com") (:url . "https://github.com/thierryvolpiatto/rectangle-utils"))]) -(rect+ . [(20150621 44) nil "Extensions to rect.el" single ((:commit . "299b742faa0bc4448e0d5fe9cb98ab1eb93b8dcc") (:keywords "extensions" "data" "tools") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-rectplus"))]) -(recover-buffers . [(20171009 437) nil "revisit all buffers from an auto-save file" tar ((:commit . "81a5cb53099955ebc2a411a44cba5a394ee3f2d1") (:authors ("era eriksson <http://www.iki.fi/era>")) (:maintainer "era eriksson <http://www.iki.fi/era>"))]) -(recompile-on-save . [(20151126 1446) ((dash (1 1 0)) (cl-lib (0 5))) "Trigger recompilation on file save." single ((:commit . "92e11446869d878803d4f3dec5d2101380c12bb2") (:keywords "convenience" "files" "processes" "tools") (:authors ("Marian Schubert" . "marian.schubert@gmail.com")) (:maintainer "Marian Schubert" . "marian.schubert@gmail.com") (:url . "https://github.com/maio/recompile-on-save.el"))]) -(recently . [(20190317 1234) ((cl-lib (0 5)) (emacs (24))) "Track recently opened files to visit them again" single ((:commit . "7b5d1128becb387d759a3a95f6afb9ef54be792a") (:keywords "utility" "files") (:authors ("10sr <8.slashes [at] gmail [dot] com>")) (:maintainer "10sr <8.slashes [at] gmail [dot] com>") (:url . "https://github.com/10sr/recently-el"))]) -(recentf-remove-sudo-tramp-prefix . [(20180205 556) ((emacs (24 4))) "Normalise recentf history" single ((:commit . "6cb762efbd0aa323f96c687b6bebc9bf00a3ceb3") (:authors ("ncaq" . "ncaq@ncaq.net")) (:maintainer "ncaq" . "ncaq@ncaq.net") (:url . "https://github.com/ncaq/recentf-remove-sudo-tramp-prefix"))]) -(recentf-ext . [(20170926 35) nil "Recentf extensions" single ((:commit . "450de5f8544ed6414e88d4924d7daa5caa55b7fe") (:keywords "convenience" "files") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/recentf-ext.el"))]) -(rebox2 . [(20121113 1300) nil "Handling of comment boxes in various styles." single ((:commit . "00634eca420cc48657b81e40e599ff8548083985") (:authors ("François Pinard") ("Le Wang")) (:maintainer "Le Wang (lewang.emacs!!!gmayo.com remove exclamations, correct host, hint: google mail)") (:url . "https://github.com/lewang/rebox2"))]) -(rebecca-theme . [(20180324 821) ((emacs (24))) "Rebecca Purple Theme" single ((:commit . "9ac0c71c2858b76dc5499f62c7c7fb7f9e8f16bc") (:keywords "theme" "dark") (:authors ("vic" . "vborja@apache.org")) (:maintainer "vic" . "vborja@apache.org") (:url . "https://github.com/vic/rebecca-theme"))]) -(reazon . [(20180921 1437) ((emacs (26))) "miniKanren for Emacs" tar ((:commit . "020be6467a83957adcbdcb192b61f2c76a94079b") (:keywords "languages" "extensions" "lisp") (:authors ("Nick Drozd" . "nicholasdrozd@gmail.com")) (:maintainer "Nick Drozd" . "nicholasdrozd@gmail.com") (:url . "https://github.com/nickdrozd/reazon"))]) -(reason-mode . [(20190613 1443) ((emacs (24 3))) "A major mode for editing ReasonML" tar ((:commit . "b8130f9d0ad8e1c3e1eaaab36a85be4f2284486b") (:keywords "languages" "ocaml") (:authors ("Mozilla")) (:maintainer "Mozilla") (:url . "https://github.com/reasonml-editor/reason-mode"))]) -(realgud-trepan-ni . [(20190528 2211) ((load-relative (1 2)) (realgud (1 5 0)) (emacs (25))) "Realgud front-end to trepan-ni" tar ((:commit . "4cd936edcc89324a819b21aa1afd331c02e6bd3e") (:authors ("Rocky Bernstein" . "rocky@gnu.org")) (:maintainer "Rocky Bernstein" . "rocky@gnu.org") (:url . "http://github.com/realgud/realgud-trepan-ni"))]) -(realgud-rdb2 . [(20190520 1146) ((realgud (1 4 5)) (load-relative (1 2)) (cl-lib (0 5)) (emacs (24))) "Realgud front-end for interacting with Ruby debugger2" tar ((:commit . "3594aa74f7afda3c3251bb2af7fe0e8ec6d621ae") (:authors ("Rocky Bernstein")) (:maintainer "Rocky Bernstein") (:url . "http://github.com/rocky/realgud-ruby-debugger2"))]) -(realgud-pry . [(20190520 1139) ((realgud (1 4 5)) (load-relative (1 2)) (cl-lib (0 5)) (emacs (24))) "Realgud front-end to the Ruby pry debugger" tar ((:commit . "fe04c0e1e1ce33361d12ad6f9bcf493f3fe228e0") (:authors ("Rocky Bernstein")) (:maintainer "Rocky Bernstein") (:url . "http://github.com/rocky/realgud-pry"))]) -(realgud-old-debuggers . [(20190520 1150) ((realgud (1 4 5)) (load-relative (1 2)) (cl-lib (0 5)) (emacs (24))) "Realgud front-end to older lesser-used debuggers" tar ((:commit . "0fad38283e885c452160232e01adf3f6ae51983b") (:authors ("Rocky Bernstein")) (:maintainer "Rocky Bernstein") (:url . "http://github.com/rocky/realgud-old-debuggers"))]) -(realgud-node-inspect . [(20190523 1251) ((realgud (1 4 5)) (load-relative (1 2)) (cl-lib (0 5)) (emacs (24))) "Realgud front-end to newer \"node inspect\"" tar ((:commit . "c3ed48cf3bc2b28f9fd23bcf60ea13a3cf019fc8") (:authors ("Rocky Bernstein" . "rocky@gnu.org")) (:maintainer "Rocky Bernstein" . "rocky@gnu.org") (:url . "http://github.com/realgud/realgud-node-inspect"))]) -(realgud-node-debug . [(20190525 1634) ((realgud (1 4 5)) (load-relative (1 2)) (cl-lib (0 5)) (emacs (25))) "Realgud front-end to older \"node debug\"" tar ((:commit . "72e786359ce9dace1796b0d81a00e9340e9c90ad") (:authors ("Rocky Bernstein" . "rocky@gnu.org")) (:maintainer "Rocky Bernstein" . "rocky@gnu.org") (:url . "http://github.com/realgud/realgud-node-debug"))]) -(realgud-lldb . [(20190604 702) ((load-relative (1 3 1)) (realgud (1 5 0)) (emacs (25))) "Realgud front-end to lldb" tar ((:commit . "f2f77d6ddfa42430ead400eaf81c605c3a04dead") (:authors ("Rocky Bernstein" . "rocky@gnu.org")) (:maintainer "Rocky Bernstein" . "rocky@gnu.org") (:url . "http://github.com/realgud/realgud-lldb"))]) -(realgud-jdb . [(20190525 357) ((realgud (1 4 5)) (load-relative (1 2)) (cl-lib (0 5)) (emacs (25))) "Realgud front-end to Java's jdb debugger\"" tar ((:commit . "5e3211a17a8282d2d0027e73149e01034082bc41") (:authors ("Rocky Bernstein" . "rocky@gnu.org")) (:maintainer "Rocky Bernstein" . "rocky@gnu.org") (:url . "http://github.com/realgud/realgud-jdb"))]) -(realgud-ipdb . [(20190604 209) ((realgud (1 5 0)) (load-relative (1 3 1)) (emacs (25))) "Realgud front-end to ipdb" tar ((:commit . "3642767a286e0542bf03cbb240cf47b2a89ad3f5") (:authors ("Rocky Bernstein" . "rocky@gnu.org")) (:maintainer "Rocky Bernstein" . "rocky@gnu.org") (:url . "http://github.com/rocky/realgud-ipdb"))]) -(realgud-byebug . [(20190520 1140) ((realgud (1 4 5)) (load-relative (1 2)) (cl-lib (0 5)) (emacs (24))) "Realgud front-end to the Ruby byebug debugger" tar ((:commit . "f8f20b92c6b13f75cc9797921c0e28d3def48b1c") (:authors ("Rocky Bernstein")) (:maintainer "Rocky Bernstein") (:url . "http://github.com/rocky/realgud-byebug"))]) -(realgud . [(20190603 2157) ((load-relative (1 3 1)) (loc-changes (1 2)) (test-simple (1 3 0)) (emacs (25))) "A modular front-end for interacting with external debuggers" tar ((:commit . "3c949225001d6d903622c4a5bed792bfb6ca6796") (:keywords "debugger" "gdb" "python" "perl" "go" "bash" "zsh" "bashdb" "zshdb" "remake" "trepan" "perldb" "pdb") (:authors ("Rocky Bernstein" . "rocky@gnu.org")) (:maintainer "Rocky Bernstein" . "rocky@gnu.org") (:url . "http://github.com/realgud/realgud/"))]) -(real-auto-save . [(20190224 1446) nil "Automatically save your all your buffers/files at regular intervals." single ((:commit . "824ad04121493723b08838c8b96559947dca7ed9") (:authors ("Chaoji Li <lichaoji AT gmail DOT com>") ("Anand Reddy Pandikunta <anand21nanda AT gmail DOT com>")) (:maintainer "Chaoji Li <lichaoji AT gmail DOT com>"))]) -(readline-complete . [(20150708 1437) nil "offers completions in shell mode" single ((:commit . "30c020c37b2741160cc37e656e13c85d826a0ebf") (:authors ("Christopher Monsanto" . "chris@monsan.to")) (:maintainer "Christopher Monsanto" . "chris@monsan.to"))]) -(readability . [(20140716 27) ((oauth (1 4)) (ov (1 0)) (emacs (24 3))) "Read articles from Readability in Emacs" single ((:commit . "6c220ab8e0ca63946574ed892add5c8fd14002ce") (:keywords "readability" "oauth") (:authors ("Shingo Fukuyama - http://fukuyama.co")) (:maintainer "Shingo Fukuyama - http://fukuyama.co") (:url . "https://github.com/ShingoFukuyama/emacs-readability"))]) -(read-aloud . [(20160923 500) ((emacs (24 4))) "A simple interface to TTS engines" single ((:commit . "c662366226abfb07204ab442b4f853ed85438d8a") (:keywords "multimedia") (:authors ("Alexander Gromnitsky" . "alexander.gromnitsky@gmail.com")) (:maintainer "Alexander Gromnitsky" . "alexander.gromnitsky@gmail.com") (:url . "https://github.com/gromnitsky/read-aloud.el"))]) -(react-snippets . [(20181002 1046) ((yasnippet (0 7 0))) "Yasnippets for React" tar ((:commit . "87ccb640d265fe799583ab55605b84d113223694"))]) -(rdxmk . [(20170630 134) nil "A small set of tools for redox developments" tar ((:commit . "e78749fb29738365ffa4d863ffabeb969ebb0bcf") (:keywords "redox" "convenience" "tools") (:authors ("Jacob Salzberg" . "jsalzbergedu@yahoo.com")) (:maintainer "Jacob Salzberg" . "jsalzbergedu@yahoo.com") (:url . "https://github.com/jsalzbergedu/rdxmk"))]) -(rdp . [(20120929 154) nil "Recursive Descent Parser library" single ((:commit . "b620192afada04aec33b38cc130fef0765f41ca9") (:authors ("Christopher Wellons" . "mosquitopsu@gmail.com")) (:maintainer "Christopher Wellons" . "mosquitopsu@gmail.com") (:url . "https://github.com/skeeto/rdp"))]) -(rdf-prefix . [(20190511 1212) nil "Prefix lookup for RDF" single ((:commit . "6daf675d96aa4a0bc78adc93560b791a77651b22") (:keywords "convenience" "abbrev") (:authors ("Simen Heggestøyl" . "simenheg@gmail.com")) (:maintainer "Simen Heggestøyl" . "simenheg@gmail.com") (:url . "https://github.com/simenheg/rdf-prefix"))]) -(rcirc-styles . [(20160207 250) ((cl-lib (0 5))) "support mIRC-style color and attribute codes" single ((:commit . "f313bf6a7470bed314b27c7a40558cb787d7bc67"))]) -(rcirc-notify . [(20150219 2204) nil "libnotify popups" single ((:commit . "841a7b5a6cdb0c11a812df924d2c6a7d364fd455") (:keywords "lisp" "rcirc" "irc" "notify" "growl") (:authors ("Will Farrington, Alex Schroeder <alex@gnu.org>, Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk"))]) -(rcirc-groups . [(20170731 2101) nil "an emacs buffer in rcirc-groups major mode" single ((:commit . "b68ece9d219b909244d4e3c0d8bf6a746d6fead7") (:keywords "comm" "convenience") (:authors ("Dimitri Fontaine" . "dim@tapoueh.org")) (:maintainer "Dimitri Fontaine" . "dim@tapoueh.org") (:url . "http://tapoueh.org/emacs/rcirc-groups.html"))]) -(rcirc-alertify . [(20140407 119) ((alert (20140406 1353))) "Cross platform notifications for rcirc" single ((:commit . "ea5cafc55893f375eccbe013d12dbaa94bf6e259") (:keywords "comm" "convenience") (:authors ("Fabián Ezequiel Gallina" . "fgallina@gnu.org")) (:maintainer "Fabián Ezequiel Gallina" . "fgallina@gnu.org"))]) -(rcirc-alert . [(20141127 1047) nil "Configurable alert messages on top of RCIRC" tar ((:commit . "0adf8ff9c47023fec578f678424be62b0f49057f") (:keywords "lisp" "rcirc" "irc" "alert" "awesome") (:maintainer "Cayetano Santos"))]) -(rc-mode . [(20160913 1918) nil "Major mode for the Plan9 rc shell" single ((:commit . "fe2e0570bf9c19a292e16b18fd4b0a256df5d93f") (:keywords "rc" "plan9" "shell") (:authors ("Jordan Brown")) (:maintainer "Jordan Brown") (:url . "https://github.com/mrhmouse/rc-mode.el"))]) -(rbt . [(20170202 2302) ((popup (0 5 3)) (magit (20160128 1201))) "Integrate reviewboard with emacs." single ((:commit . "32bfba9062a014e375451cf4203c29535b5efc1e") (:keywords "reviewboard" "rbt") (:authors ("Joe Heyming" . "joeheyming@gmail.com")) (:maintainer "Joe Heyming" . "joeheyming@gmail.com"))]) -(rbenv . [(20141120 749) nil "Emacs integration for rbenv" single ((:commit . "2ea1a5bdc1266caef1dd77700f2c8f42429b03f1") (:keywords "ruby" "rbenv") (:authors ("Yves Senn" . "yves.senn@gmail.com")) (:maintainer "Yves Senn" . "yves.senn@gmail.com") (:url . "https://github.com/senny/rbenv.el"))]) -(rats . [(20170818 1013) ((s (1 10 0)) (go-mode (1 3 1)) (cl-lib (0 5))) "Rapid testing suite for Go" single ((:commit . "a6d55aebcc54f669c6c6ffedf84364c4097903cc") (:keywords "go") (:authors ("Antoine Kalmbach" . "ane@iki.fi")) (:maintainer "Antoine Kalmbach" . "ane@iki.fi"))]) -(rase . [(20120928 2045) nil "Run At Sun Event daemon" single ((:commit . "59b5f7e8102570b65040e8d55781c7ea28de7338") (:keywords "solar" "sunrise" "sunset" "midday" "midnight") (:authors ("Andrey Kotlarski" . "m00naticus@gmail.com")) (:maintainer "Andrey Kotlarski" . "m00naticus@gmail.com") (:url . "https://github.com/m00natic/rase/"))]) -(ranger . [(20190412 624) ((emacs (24 4))) "Make dired more like ranger" single ((:commit . "c3f349e52f5c50926dc0f285c97676934f50bc18") (:keywords "files" "convenience" "dired") (:authors ("Rich Alesi <https://github.com/ralesi>")) (:maintainer "Rich Alesi <https://github.com/ralesi>") (:url . "https://github.com/ralesi/ranger"))]) -(random-splash-image . [(20151003 130) nil "Randomly sets splash image to *GNU Emacs* buffer on startup." single ((:commit . "53a39ebfd8ac6be066a652a508a717870f94218a") (:keywords "games") (:authors ("kakakaya <kakakaya AT gmail.com>")) (:maintainer "kakakaya <kakakaya AT gmail.com>") (:url . "https://github.com/kakakaya/random-splash-image"))]) -(rand-theme . [(20151219 2335) ((cl-lib (0 5))) "Random Emacs theme at start-up!" single ((:commit . "65a00e5c5150f857aa96803b68f50bc8da0215b7") (:authors ("Daniel Gopar")) (:maintainer "Daniel Gopar") (:url . "https://github.com/gopar/rand-theme"))]) -(rally-mode . [(20161114 354) ((popwin (1 0 0))) "a mode to interact with the Rally Software web site." single ((:commit . "0f5e09a6abe2de7613f174b4f54863df93343134") (:keywords "rally" "ca" "agile") (:authors ("Sean LeBlanc" . "seanleblanc@gmail.com")) (:maintainer "Sean LeBlanc" . "seanleblanc@gmail.com") (:url . "https://pragcraft.wordpress.com/"))]) -(rake . [(20180212 1008) ((f (0 13 0)) (dash (1 5 0)) (cl-lib (0 5))) "Run rake commands" single ((:commit . "9c204334b03b4e899fadae6e59c20cf105404128") (:keywords "rake" "ruby") (:authors ("Adam Sokolnicki" . "adam.sokolnicki@gmail.com")) (:maintainer "Adam Sokolnicki" . "adam.sokolnicki@gmail.com") (:url . "https://github.com/asok/rake.el"))]) -(rainbow-identifiers . [(20141102 1526) ((emacs (24))) "Highlight identifiers according to their names" single ((:commit . "19fbfded1baa98d12335f26f6d7b20e5ae44ce2e") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/rainbow-identifiers"))]) -(rainbow-delimiters . [(20170929 1132) nil "Highlight brackets according to their depth" single ((:commit . "e561cff4abf97d00d9b2b5f10256d417182e2772") (:keywords "faces" "convenience" "lisp" "tools") (:authors ("Jeremy Rayman" . "opensource@jeremyrayman.com") ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/rainbow-delimiters"))]) -(rainbow-blocks . [(20171025 1438) nil "Block syntax highlighting for lisp code" single ((:commit . "dd435d7bb34ff6f162a5f315df308b90b7e9f842") (:authors ("istib")) (:maintainer "istib") (:url . "https://github.com/istib/rainbow-blocks"))]) -(railscasts-theme . [(20150219 1525) nil "Railscasts color theme for GNU Emacs." single ((:commit . "1340c3f6c2717761cab95617cf8dcbd962b1095b") (:keywords "railscasts" "color" "theme") (:authors ("Oleg Shaldybin")) (:maintainer "Oleg Shaldybin") (:url . "https://github.com/mikenichols/railscasts-theme"))]) -(railscasts-reloaded-theme . [(20190308 759) nil "Railscasts Reloaded color theme" single ((:commit . "c6a1cf13a164f22b026b0959527c3b98c2b1aa49") (:authors ("George Thomas" . "iamgeorgethomas@gmail.com")) (:maintainer "George Thomas" . "iamgeorgethomas@gmail.com") (:url . "https://github.com/thegeorgeous/railscasts-reloaded-theme"))]) -(rails-log-mode . [(20140408 425) nil "Major mode for viewing Rails log files" single ((:commit . "ff440003ad7d47cb0ac3300f2a632f4cfd36a446") (:keywords "rails" "log") (:authors ("Anantha kumaran" . "ananthakumaran@gmail.com")) (:maintainer "Anantha kumaran" . "ananthakumaran@gmail.com"))]) -(racket-mode . [(20190612 1928) ((emacs (24 3)) (faceup (0 0 2))) "Major mode for Racket language." tar ((:commit . "a19dba1e84bc593ee8ee212d6a8fc97d211345b9") (:authors ("Greg Hendershott")) (:maintainer "Greg Hendershott") (:url . "https://www.racket-mode.com/"))]) -(racer . [(20190610 800) ((emacs (24 3)) (rust-mode (0 2 0)) (dash (2 13 0)) (s (1 10 0)) (f (0 18 2)) (pos-tip (0 4 6))) "code completion, goto-definition and docs browsing for Rust via racer" single ((:commit . "ea6a09c16f8ec646195f942c12fe3ed7d65cc971") (:keywords "abbrev" "convenience" "matching" "rust" "tools") (:authors ("Phil Dawes")) (:maintainer "Phil Dawes") (:url . "https://github.com/racer-rust/emacs-racer"))]) -(r-autoyas . [(20140101 1510) ((ess (0)) (yasnippet (0 8 0))) "Provides automatically created yasnippets for R function argument lists." tar ((:commit . "b4020ee7f5f895e0065b8b26da8a49c51432d530") (:keywords "r" "yasnippet") (:authors ("Sven Hartenstein & Matthew Fidler")) (:maintainer "Matthew Fidler") (:url . "https://github.com/mlf176f2/r-autoyas.el"))]) -(quiz . [(20190525 1206) ((cl-lib (0 5)) (emacs (25))) "Multiple choice quiz game" single ((:commit . "570bf53926d89282cdb9653bd5aa8fe968f92bbd") (:keywords "games" "trivia" "quiz") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/quiz.el"))]) -(quilt . [(20190304 540) ((emacs (26 0))) "Minor mode for working with files in quilt" single ((:commit . "161ce2d8ba225bccef0ea8ae4937251b8ccaa892") (:keywords "extensions") (:authors ("Matt Mackall" . "mpm@selenic.com")) (:maintainer "Jan Stranik" . "jan@stranik.org") (:url . "https://github.com/jstranik/emacs-quilt"))]) -(quiet . [(20160508 1256) nil "disconnect from the online world for a while" single ((:commit . "6f20309f99e26fcae2601d1544b342f044e54baf") (:keywords "quiet" "distraction" "network" "detachment" "offline") (:authors ("nik gaffney" . "nik@fo.am")) (:maintainer "nik gaffney" . "nik@fo.am") (:url . "https://github.com/zzkt/quiet"))]) -(quickrun . [(20170223 115) ((emacs (24 3))) "Run commands quickly" single ((:commit . "55bbe5d54b80206ea5a60bf2f58eb6368b2c8201") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-quickrun"))]) -(quickref . [(20170817 1232) ((dash (1 0 3)) (s (1 0 0))) "Display relevant notes-to-self in the echo area" single ((:commit . "f368c8b8219bb90498c5ab84e26f00eedaa234cf") (:authors ("Kyle Hargraves")) (:maintainer "Kyle Hargraves") (:url . "https://github.com/pd/quickref.el"))]) -(quick-shell-keybind . [(20171023 613) ((emacs (24))) "Interactively bind a key to shell commands" single ((:commit . "5f4541a5a5554d108bf16b5fd1713e962161ca1b") (:keywords "maint" "convenience" "processes") (:authors ("eyeinsky" . "eyeinsky9@gmail.com")) (:maintainer "eyeinsky" . "eyeinsky9@gmail.com") (:url . "https://github.com/eyeinsky/quick-shell-keybind"))]) -(quick-preview . [(20150829 439) nil "quick preview using GNOME sushi, gloobus or quick look" single ((:commit . "29c884c6ab385ef67d9aa656ebb7c94cabeb5c35") (:keywords "files" "hypermedia") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/quick-preview.el"))]) -(quick-peek . [(20190208 1515) ((emacs (24 3))) "Inline quick-peek windows" single ((:commit . "fd8a6c81422932539d221f39f18c90f2811f2dd9") (:keywords "tools" "help" "doc" "convenience") (:authors ("Clément Pit-Claudel" . "clement.pitclaudel@live.com")) (:maintainer "Clément Pit-Claudel" . "clement.pitclaudel@live.com"))]) -(quick-buffer-switch . [(20151007 2208) nil "Quick switch to file or dir buffers." single ((:commit . "d5fdd67b4c9f04b7a7122da2215e4ae076a03b1b") (:keywords "emacs" "configuration") (:authors ("Sebastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>")) (:maintainer "Sebastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>"))]) -(quelpa-use-package . [(20190210 1838) ((emacs (24 3)) (quelpa (0)) (use-package (2))) "quelpa handler for use-package" single ((:commit . "6f3cc87caa6cb8795079c5cab3c6665970859098") (:keywords "package" "management" "elpa" "use-package") (:authors ("steckerhalter")) (:maintainer "steckerhalter") (:url . "https://framagit.org/steckerhalter/quelpa-use-package"))]) -(quelpa . [(20190217 1250) ((emacs (24 3))) "Emacs Lisp packages built directly from source" tar ((:commit . "716048b5ee048797551a59a4bd121026486db214") (:keywords "package" "management" "build" "source" "elpa") (:authors ("steckerhalter")) (:maintainer "steckerhalter") (:url . "https://framagit.org/steckerhalter/quelpa"))]) -(quasi-monochrome-theme . [(20181213 827) nil "Quasi Monochrome theme" tar ((:commit . "68060dbbc0bbfe4924387392874186c5a29bb434") (:keywords "color" "theme" "monochrome"))]) -(quack . [(20181106 1301) nil "enhanced support for editing and running Scheme code" single ((:commit . "2146805ce2b5a9b155d73929986f11e713787e26"))]) -(qt-pro-mode . [(20170604 1841) ((emacs (24))) "Qt Pro/Pri major mode" single ((:commit . "7a2da323de834294b413cbbb3c92f42f54913643") (:keywords "extensions") (:authors ("Todd Neal" . "tolchz@gmail.com")) (:maintainer "Todd Neal" . "tolchz@gmail.com"))]) -(qml-mode . [(20161016 31) nil "Major mode for editing QT Declarative (QML) code." single ((:commit . "6c5f33ba88ae010bf201a80ee8095e20a724558c") (:keywords "qml" "qt" "qt declarative") (:authors ("Yen-Chin Lee" . "coldnew.tw@gmail.com")) (:maintainer "Yen-Chin Lee" . "coldnew.tw@gmail.com") (:url . "https://github.com/coldnew/qml-mode"))]) -(ql . [(20180418 2020) ((emacs (24))) "Control Quod Libet" single ((:commit . "d976414ba6aa576ad524b5ee5bfa620efd072258") (:keywords "multimedia") (:authors ("Ian Eure" . "ian.eure@gmail.com")) (:maintainer "Ian Eure" . "ian.eure@gmail.com") (:url . "https://github.com/ieure/ql-el"))]) -(qiita . [(20140118 844) ((helm (1 5 9)) (markdown-mode (2 0))) "Qiita API Library for emacs" single ((:commit . "93c697b97d540fd1601a13a3d9889fb939b19878") (:keywords "qiita") (:authors ("Wataru MIYAGUNI (gonngo _at_ gmail.com)")) (:maintainer "Wataru MIYAGUNI (gonngo _at_ gmail.com)") (:url . "https://github.com/gongo/qiita-el"))]) -(q-mode . [(20181216 1747) ((emacs (24))) "A q editing mode" single ((:commit . "7a13fb68a0ad3d843c8cdc188cf0adb9723f42f7") (:keywords "faces" "files" "q") (:url . "https://github.com/psaris/q-mode"))]) -(pyvenv . [(20181228 1722) nil "Python virtual environment interface" single ((:commit . "fa6a028349733b0ecb407c4cfb3a715b71931eec") (:keywords "python" "virtualenv" "tools") (:authors ("Jorgen Schaefer" . "contact@jorgenschaefer.de")) (:maintainer "Jorgen Schaefer" . "contact@jorgenschaefer.de") (:url . "http://github.com/jorgenschaefer/pyvenv"))]) -(pythonic . [(20190214 1816) ((emacs (25)) (s (1 9)) (f (0 17 2))) "Utility functions for writing pythonic emacs package." single ((:commit . "16c16202b76d33edd6a95814b2a9c298437f9832") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/pythonic"))]) -(python-x . [(20190611 1303) ((python (0 24)) (folding (0)) (cl-lib (0 5))) "python.el extras for interactive evaluation" tar ((:commit . "b1f8eaccee210d7c0580dba6dc9bd361fcf3765d") (:keywords "python" "eval" "folding") (:url . "https://github.com/wavexx/python-x.el") (:author . "Yuri D'Elia <wavexx@thregr.org>"))]) -(python-test . [(20181018 29) ((emacs (25 1))) "Python testing integration" single ((:commit . "f899975b133539e19ba822e4b0bfd1a28572967e") (:keywords "convenience" "tools" "processes") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/python-test.el"))]) -(python-switch-quotes . [(20161228 809) ((emacs (24 3))) "cycle between ' and \" quotes in python strings" single ((:commit . "93f1e9b40e061a6cea480139e8b1362b6404abd0") (:keywords "python" "tools" "convenience") (:authors ("Vladimir Lagunov" . "lagunov.vladimir@gmail.com")) (:maintainer "Vladimir Lagunov" . "lagunov.vladimir@gmail.com") (:url . "https://github.com/werehuman/python-switch-quotes"))]) -(python-pytest . [(20180725 1146) ((emacs (24 4)) (dash (2 12 0)) (dash-functional (2 12 0)) (magit-popup (2 12 0)) (projectile (0 14 0)) (s (1 12 0))) "helpers to run pytest" single ((:commit . "09ad688df207ee9b02c990d3897a9e2841931d97") (:keywords "pytest" "test" "python" "languages" "processes" "tools") (:authors ("wouter bolsterlee" . "wouter@bolsterl.ee")) (:maintainer "wouter bolsterlee" . "wouter@bolsterl.ee") (:url . "https://github.com/wbolster/emacs-python-pytest"))]) -(python-mode . [(20190503 1638) nil "Python major mode" tar ((:commit . "9ba43eaac8200e73fbd4cf938ecece4b8bfadaa0"))]) -(python-info . [(20151228 1852) nil "Python info manual for Emacs" tar ((:commit . "306f15441b54b25757cdfd3b327b84024ea21ed7"))]) -(python-environment . [(20150310 853) ((deferred (0 3 1))) "virtualenv API for Emacs Lisp" tar ((:commit . "401006584e32864a10c69d29f14414828909362e") (:keywords "applications" "tools") (:authors ("Takafumi Arakaki <aka.tkf at gmail.com>")) (:maintainer "Takafumi Arakaki <aka.tkf at gmail.com>"))]) -(python-docstring . [(20170508 856) nil "Smart Python docstring formatting" tar ((:commit . "d35d2e0fbe468743c19a870fec7b28a7e725790d"))]) -(python-django . [(20150822 404) nil "A Jazzy package for managing Django projects" single ((:commit . "fc54ad74f0309670359b939f64d0f1fff68aeac4") (:keywords "languages") (:authors ("Fabián E. Gallina" . "fabian@anue.biz")) (:maintainer "FSF") (:url . "https://github.com/fgallina/python-django.el"))]) -(python-cell . [(20190217 1823) nil "Support for MATLAB-like cells in python mode" single ((:commit . "665725446b194dbaaff9645dd880524368dd710a") (:keywords "python" "matlab" "cell") (:authors ("Thomas Hisch" . "t.hisch@gmail.com")) (:maintainer "Thomas Hisch" . "t.hisch@gmail.com"))]) -(pytest-pdb-break . [(20190308 655) ((emacs (25))) "A pytest PDB launcher" tar ((:commit . "ac969ae8cec2e3da250ce454e74f5b28f0e9649b") (:keywords "languages" "tools") (:authors ("Jane Soko" . "poppyschmo@protonmail.com")) (:maintainer "Jane Soko" . "poppyschmo@protonmail.com") (:url . "https://github.com/poppyschmo/pytest-pdb-break"))]) -(pytest . [(20181005 1524) ((s (1 9 0))) "Easy Python test running in Emacs" single ((:commit . "1bfa7549001e61ecd59cd6eae7c6656a924d1ba4") (:keywords "pytest" "python" "testing") (:url . "https://github.com/ionrock/pytest-el"))]) -(pyramid . [(20181212 1204) ((emacs (25 2)) (pythonic (0 1 1)) (tablist (0 70))) "Minor mode for working with pyramid projects" tar ((:commit . "277f7c623f489fd31c56d6e131c5481a71b6a926") (:keywords "python" "pyramid" "pylons" "convenience" "tools" "processes") (:authors ("Daniel Kraus" . "daniel@kraus.my")) (:maintainer "Daniel Kraus" . "daniel@kraus.my") (:url . "https://github.com/dakra/pyramid.el"))]) -(pynt . [(20180710 726) ((emacs (24 4)) (ein (0 13 1)) (epc (0 1 1)) (deferred (0 5 1))) "Generate and scroll EIN buffers from python code" single ((:commit . "86cf9ce78d34f92bfd0764c9cbb75427ebd429e6") (:keywords "convenience") (:authors ("Edward Banner" . "edward.banner@gmail.com")) (:maintainer "Edward Banner" . "edward.banner@gmail.com") (:url . "https://github.com/ebanner/pynt"))]) -(pylint . [(20170402 1255) nil "minor mode for running `pylint'" single ((:commit . "e3d4e80ca9be6b61d7c9773f8a20661a52fa9ed9") (:keywords "languages" "python") (:authors ("Ian Eure" . "ian.eure@gmail.com")) (:maintainer "Jonathan Kotta" . "jpkotta@gmail.com"))]) -(pyimpsort . [(20160130 453) ((emacs (24 3))) "Sort python imports." tar ((:commit . "d5c61d70896b642646dfd3c809c06174ae086c1a") (:keywords "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/pyimpsort.el"))]) -(pyimport . [(20180308 1752) ((dash (2 8 0)) (s (1 9 0)) (shut-up (0 3 2))) "Manage Python imports!" single ((:commit . "a6f63cf7ed93f0c0f7c207e6595813966f8852b9") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(pyim-wbdict . [(20190201 2300) ((pyim (1 0))) "Some wubi dicts for pyim" tar ((:commit . "9799b689643052078f53d69342a82315251490f4") (:keywords "convenience" "chinese" "pinyin" "input-method" "complete") (:authors ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/pyim-wbdict"))]) -(pyim-cangjie5dict . [(20170730 246) ((pyim (1 0))) "Some cangjie5 dicts for pyim" tar ((:commit . "c8618590780b818db1a67a29bc47c5d25903517a") (:keywords "convenience" "chinese" "pinyin" "input-method" "complete") (:authors ("Yuanchen Xie" . "yuanchen.gm@gmail.com")) (:maintainer "Yuanchen Xie" . "yuanchen.gm@gmail.com") (:url . "https://github.com/erstern/pyim-cangjie5dict"))]) -(pyim-basedict . [(20190615 1415) nil "The default pinyin dict of pyim" tar ((:commit . "e69e73439268e02983abb50c76bd2a621192421b") (:keywords "convenience" "chinese" "pinyin" "input-method" "complete") (:authors ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/pyim-basedict"))]) -(pyim . [(20190531 131) ((emacs (24 4)) (popup (0 1)) (async (1 6)) (pyim-basedict (0 1))) "A Chinese input method support quanpin, shuangpin, wubi and cangjie." tar ((:commit . "50e2b0d825dde89639fe1257fad8c9bf450b2c7f") (:keywords "convenience" "chinese" "pinyin" "input-method") (:authors ("Ye Wenbin <wenbinye@163.com>, Feng Shu" . "tumashu@163.com")) (:maintainer "Ye Wenbin <wenbinye@163.com>, Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/pyim"))]) -(pygen . [(20161121 506) ((elpy (1 12 0)) (python-mode (6 2 2)) (dash (2 13 0))) "Python code generation using Elpy and Python-mode." single ((:commit . "9019ff44ba49d7295b1476530feab91fdadb084b") (:keywords "python" "code generation") (:authors ("Jack Crawley <http://www.github.com/jackcrawley>")) (:maintainer "Jack Crawley <http://www.github.com/jackcrawley>") (:url . "https://github.com/JackCrawley/pygen/"))]) -(pyfmt . [(20150521 2056) nil "Emacs interface to pyfmt" single ((:commit . "cb92be2cf0804cc53142dc5edb36f8e0ef5cec32") (:keywords "tools") (:authors ("Alexandre Héaumé" . "aheaume@gmail.com")) (:maintainer "Alexandre Héaumé" . "aheaume@gmail.com") (:url . "https://github.com/aheaume/pyfmt.el"))]) -(pyenv-mode-auto . [(20180620 1252) ((pyenv-mode (0 1 0)) (s (1 11 0)) (f (0 17 0))) "Automatically activates pyenv version if .python-version file exists." single ((:commit . "347b94cd5ad22e33cc41be661c102d4548767858") (:keywords "python" "pyenv") (:authors ("Sviatoslav Bulbakha" . "mail@ssbb.me")) (:maintainer "Sviatoslav Bulbakha" . "mail@ssbb.me") (:url . "https://github.com/ssbb/pyenv-mode-auto"))]) -(pyenv-mode . [(20170801 2348) ((pythonic (0 1 0))) "Integrate pyenv with python-mode" single ((:commit . "eabb1c66f9e0c0500fef4d089508aad246d81dc0") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/pyenv-mode"))]) -(pydoc-info . [(20110301 834) nil "Better Python support for info-lookup-symbol." tar ((:commit . "151d877c8fb8e418a573b1e879b1263c18e22776"))]) -(pydoc . [(20181025 51) nil "functional, syntax highlighted pydoc navigation" single ((:commit . "abb948e27efaf2452f339c62cd99a1c69930bbfe") (:keywords "pydoc" "python") (:authors ("John Kitchin" . "jkitchin@andrew.cmu.edu")) (:maintainer "Brian J. Lopes" . "statmobile@gmail.com") (:url . "https://github.com/statmobile/pydoc"))]) -(pycoverage . [(20190607 2004) ((emacs (24 3))) "Support for coverage stats on Python 2.X and 3" tar ((:commit . "01bd47171eefcab2e19d7cffd9a2dd3bd9bd6812") (:keywords "project" "convenience") (:authors ("matt harrison")) (:maintainer "matt harrison") (:url . "https://github.com/mattharrison/pycoverage.el"))]) -(pycarddavel . [(20150831 1216) ((helm (1 7 0)) (emacs (24 0))) "Integrate pycarddav" single ((:commit . "a6d81ee4eb8309cd82f6082aeca68c5a015702a3") (:keywords "helm" "pyccarddav" "carddav" "message" "mu4e" "contacts") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me"))]) -(py-yapf . [(20160925 1122) nil "Use yapf to beautify a Python buffer" single ((:commit . "a878304202ad827a1f3de3dce1badd9ca8731146") (:authors ("Friedrich Paetzke" . "f.paetzke@gmail.com")) (:maintainer "Friedrich Paetzke" . "f.paetzke@gmail.com") (:url . "https://github.com/paetzke/py-yapf.el"))]) -(py-test . [(20151117 622) ((dash (2 9 0)) (f (0 17)) (emacs (24 4))) "A test runner for Python code." single ((:commit . "3b2a0bdaacb54df6f2bee8317423e5c0d159d5cf") (:keywords "python" "testing" "py.test") (:authors ("Bogdan Paul Popa" . "popa.bogdanp@gmail.com")) (:maintainer "Bogdan Paul Popa" . "popa.bogdanp@gmail.com") (:url . "https://github.com/Bogdanp/py-test.el"))]) -(py-smart-operator . [(20170531 1209) ((s (1 9 0))) "smart-operator for python-mode" single ((:commit . "0c8a66faca4b35158d0b5885472cb75286039167") (:keywords "python" "convenience" "smart-operator") (:authors ("Rustem Muslimov" . "r.muslimov@gmail.com")) (:maintainer "Rustem Muslimov" . "r.muslimov@gmail.com"))]) -(py-isort . [(20160925 1018) nil "Use isort to sort the imports in a Python buffer" single ((:commit . "e67306f459c47c53a65604e4eea88a3914596560") (:authors ("Friedrich Paetzke" . "paetzke@fastmail.fm")) (:maintainer "Friedrich Paetzke" . "paetzke@fastmail.fm") (:url . "http://paetzke.me/project/py-isort.el"))]) -(py-import-check . [(20130802 1111) nil "Finds the unused python imports using importchecker" single ((:commit . "9787f87745a4234cd9bed711860b707902bc8ae4") (:keywords "python" "import" "check") (:authors ("Sibi" . "sibi@psibi.in")) (:maintainer "Sibi" . "sibi@psibi.in") (:url . "https://github.com/psibi/emacs-py-import-check"))]) -(py-gnitset . [(20170821 1732) nil "Run your Python tests any way you'd like" single ((:commit . "1e993cc29cbc31e06fe1e335dec198e21972fa55") (:authors ("Brandon W Maister" . "quodlibetor@gmail.com")) (:maintainer "Brandon W Maister" . "quodlibetor@gmail.com") (:url . "https://www.github.com/quodlibetor/py-gnitset"))]) -(py-autopep8 . [(20160925 1052) nil "Use autopep8 to beautify a Python buffer" single ((:commit . "68e12d8788c91c7ec53a68acf1d23adb2ffa4788") (:authors ("Friedrich Paetzke" . "f.paetzke@gmail.com")) (:maintainer "Friedrich Paetzke" . "f.paetzke@gmail.com") (:url . "http://paetzke.me/project/py-autopep8.el"))]) -(px . [(20170317 2330) nil "preview inline latex in any mode" single ((:commit . "0c52f7933eab3ca1642ab0df151db9950430c9e2") (:authors ("Aurélien Aptel" . "aurelien.aptel@gmail.com")) (:maintainer "Aurélien Aptel" . "aurelien.aptel@gmail.com") (:url . "http://github.com/aaptel/preview-latex"))]) -(pushover . [(20170818 2103) ((cl-lib (0 5))) "Pushover API Access" single ((:commit . "bbe3ac8df3c532a72da4552615af960b8a577588") (:keywords "notifications") (:authors ("Samuel W. Flint" . "swflint@flintfam.org")) (:maintainer "Samuel W. Flint" . "swflint@flintfam.org") (:url . "http://github.com/swflint/pushover.el"))]) -(pushbullet . [(20140809 1232) ((grapnel (0 5 2)) (json (1 2))) "Emacs client for the PushBullet Android app" single ((:commit . "73c59a0f1dc04875b3e5a2c8afbc26c32128e445") (:keywords "convenience") (:authors ("Abhishek L" . "abhishek.lekshmanan@gmail.com")) (:maintainer "Abhishek L" . "abhishek.lekshmanan@gmail.com") (:url . "http://www.github.com/theanalyst/revolver"))]) -(purty-mode . [(20131004 2259) nil "Safely pretty-print greek letters, mathematical symbols, or anything else." single ((:commit . "8eef77317a3bab07ade212353a50fbd3f20f365a") (:authors ("James Atwood" . "jatwood@cs.umass.edu")) (:maintainer "James Atwood" . "jatwood@cs.umass.edu"))]) -(purple-haze-theme . [(20141015 229) ((emacs (24 0))) "an overtly purple color theme for Emacs24." single ((:commit . "3e245cbef7cd09e6b3ee124963e372a04e9a6485") (:authors ("Jason Milkins" . "jasonm23@gmail.com")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com") (:url . "https://github.com/jasonm23/emacs-purple-haze-theme"))]) -(purp-theme . [(20181211 1902) nil "No description available." tar ((:commit . "4f5a95b132779f5219f7dc6bd6a412b7de1d8d1b"))]) -(purescript-mode . [(20190522 2230) ((emacs (24)) (cl-lib (0 6))) "A PureScript editing mode" tar ((:commit . "8db1d0243c03da31adac4d7c5287407a4df6aff2"))]) -(puppet-mode . [(20180813 1947) ((emacs (24 1)) (pkg-info (0 4))) "Major mode for Puppet manifests" single ((:commit . "7dee1b5a5debac6e56f9107492a413b6c0edb94d") (:keywords "languages") (:authors ("Bozhidar Batsov" . "bozhidar@batsov.com") ("Sebastian Wiesner" . "swiesner@lunaryorn.com") ("Russ Allbery" . "rra@stanford.edu")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.com") (:url . "https://github.com/voxpupuli/puppet-mode"))]) -(punpun-theme . [(20161103 847) nil "A bleak theme" tar ((:commit . "cce8b10b2df6f9187a9eaa0c3f21ff0dda175968"))]) -(pungi . [(20150222 1246) ((jedi (0 2 0 -3 2)) (pyvenv (1 5))) "Integrates jedi with virtualenv and buildout python environments" single ((:commit . "a2d4d439ea371be0b064a12248288903b8a521a0") (:keywords "convenience") (:authors ("Matthew Russell" . "matthew.russell@horizon5.org")) (:maintainer "Matthew Russell" . "matthew.russell@horizon5.org"))]) -(punctuality-logger . [(20141120 2031) nil "Punctuality logger for Emacs" single ((:commit . "e09e5dd37bc92289fa2f7dc44aed51a7b5e04bb0") (:keywords "reminder" "calendar") (:authors ("Philip Woods" . "elzairthesorcerer@gmail.com")) (:maintainer "Philip Woods" . "elzairthesorcerer@gmail.com") (:url . "https://gitlab.com/elzair/punctuality-logger"))]) -(pulseaudio-control . [(20190420 541) nil "Use `pactl' to manage PulseAudio volumes." single ((:commit . "552206807c9af6ec150540bbdda5d08393196e0a") (:keywords "multimedia" "hardware" "sound" "pulseaudio") (:authors ("Alexis" . "flexibeast@gmail.com") ("Ellington Santos" . "ellingtonsantos@gmail.com") ("Sergey Trofimov" . "sarg@sarg.org.ru")) (:maintainer "Alexis" . "flexibeast@gmail.com") (:url . "https://github.com/flexibeast/pulseaudio-control"))]) -(pug-mode . [(20180513 2126) ((emacs (24 4)) (cl-lib (0 5))) "Major mode for jade/pug template files" single ((:commit . "685fd3414d89736bf232f5d1a6bed9e0353b98fe") (:keywords "markup" "language" "jade" "pug") (:authors ("Nathan Weizenbaum")) (:maintainer "Henrik Lissner" . "henrik@lissner.net") (:url . "https://github.com/hlissner/emacs-pug-mode"))]) -(pubmed . [(20190502 2121) ((emacs (25 1)) (deferred (0 5 1)) (esxml (0 3 4)) (s (1 12 0))) "Interface to PubMed" tar ((:commit . "67fbb6e8834feda85e8301adc5c17d9e38395d6a") (:keywords "pubmed" "hypermedia") (:authors ("Folkert van der Beek" . "folkertvanderbeek@gmail.com")) (:maintainer "Folkert van der Beek" . "folkertvanderbeek@gmail.com") (:url . "https://gitlab.com/fvdbeek/emacs-pubmed"))]) -(pt . [(20161226 1959) nil "A front-end for pt, The Platinum Searcher." single ((:commit . "6d99b2aaded3ece3db19a20f4b8f1d4abe382622") (:keywords "pt" "ack" "ag" "grep" "search") (:authors ("Bailey Ling")) (:maintainer "Bailey Ling") (:url . "https://github.com/bling/pt.el"))]) -(psysh . [(20181128 1722) ((emacs (24 3)) (s (1 9 0)) (f (0 17))) "PsySH, PHP interactive shell (REPL)" single ((:commit . "4709a57cdcf7103c4a606be89849ea3ead2d38a5") (:keywords "processes" "php") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/psysh.el"))]) -(psession . [(20190502 1838) ((emacs (24)) (cl-lib (0 5)) (async (1 9 3))) "Persistent save of elisp objects." single ((:commit . "2557ca67a7a81f5270fb98a0b0a92838d09343b8") (:authors ("Thierry Volpiatto" . "thierry.volpiatto@gmail.com")) (:maintainer "Thierry Volpiatto" . "thierry.volpiatto@gmail.com") (:url . "https://github.com/thierryvolpiatto/psession"))]) -(psci . [(20190308 24) ((emacs (24 4)) (purescript-mode (13 10)) (dash (2 9 0))) "Major mode for purescript repl psci" tar ((:commit . "3c10918a3a1d1dc613c222801deb465d4fbb2143") (:keywords "languages" "purescript" "psci" "repl") (:authors ("Antoine R. Dumont <eniotna.t AT gmail.com>")) (:maintainer "Antoine R. Dumont <eniotna.t AT gmail.com>") (:url . "https://github.com/purescript-emacs/emacs-psci"))]) -(psc-ide . [(20190326 2110) ((emacs (25)) (dash (2 13 0)) (dash-functional (1 2 0)) (company (0 8 7)) (s (1 10 0)) (flycheck (0 24)) (let-alist (1 0 4)) (seq (1 11))) "Minor mode for PureScript's psc-ide tool." tar ((:commit . "a10cc85565f330ee277698b27f3f715fef2e1ce2") (:keywords "languages") (:authors ("Erik Post" . "erik@shinsetsu.nl") ("Dmitry Bushenko" . "d.bushenko@gmail.com") ("Christoph Hegemann") ("Brian Sermons")) (:maintainer "Erik Post" . "erik@shinsetsu.nl") (:url . "https://github.com/epost/psc-ide-emacs"))]) -(proxy-mode . [(20190130 8) ((emacs (25))) "A minor mode to toggle proxy." single ((:commit . "a6c55e97dbe4ec4df9dc21d234cabe806dce3a29") (:keywords "comm" "proxy") (:url . "https://github.com/stardiviner/proxy-mode"))]) -(protocols . [(20170802 1132) ((cl-lib (0 5))) "Protocol database access functions." single ((:commit . "d0f7c4acb05465f1a0d4be54363bbd2802647e77") (:keywords "convenience" "net" "protocols") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/protocols.el"))]) -(protobuf-mode . [(20170526 1650) nil "major mode for editing protocol buffers." single ((:commit . "f2a919f58f12574ac04ca79e6b84577dec6f2b43") (:keywords "google" "protobuf" "languages") (:authors ("Alexandre Vassalotti" . "alexandre@peadrop.com")) (:maintainer "Alexandre Vassalotti" . "alexandre@peadrop.com"))]) -(prosjekt . [(20151127 1416) ((dash (2 8 0))) "a software project tool for emacs" tar ((:commit . "a864a8be5842223043702395f311e3350c28e9db") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/prosjekt"))]) -(proportional . [(20171025 2337) ((emacs (25 1))) "use a proportional font everywhere" single ((:commit . "f671ffe8fd803e2fc462e2e1844aeeab1a13918e") (:keywords "faces") (:authors ("Johannes Goslar")) (:maintainer "Johannes Goslar") (:url . "https://github.com/ksjogo/proportional"))]) -(propfont-mixed . [(20150113 2211) ((emacs (24)) (cl-lib (0 5))) "Use proportional fonts with space-based indentation." single ((:commit . "0b461ef4754a469610dba71874a34b6da42176bf") (:keywords "faces") (:authors ("Kirill Ignatiev <github.com/ikirill>")) (:maintainer "Kirill Ignatiev <github.com/ikirill>") (:url . "https://github.com/ikirill/propfont-mixed"))]) -(prop-menu . [(20150728 1118) ((emacs (24 3)) (cl-lib (0 5))) "Create and display a context menu based on text and overlay properties" single ((:commit . "50b102c1c0935fd3e0c465feed7f27d66b21cdf3") (:keywords "convenience") (:authors ("David Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Christiansen" . "david@davidchristiansen.dk") (:url . "https://github.com/david-christiansen/prop-menu-el"))]) -(proof-general . [(20190617 1606) ((emacs (24 3))) "A generic front-end for proof assistants (interactive theorem provers)" tar ((:commit . "cdc630c3d453fe0c1384e3faca268f9818828c26"))]) -(prompts . [(20160916 1041) ((dash (2 13 0))) "utilities for working with text prompts." single ((:commit . "1cd5e732ff2a86b47836eb7252e5b59cd4b6ab26") (:keywords "input" "minibuffer") (:authors ("Ben Moon" . "guiltydolphin@gmail.com")) (:maintainer "Ben Moon" . "guiltydolphin@gmail.com") (:url . "https://github.com/guiltydolphin/prompts.el"))]) -(prompt-text . [(20190408 310) nil "Configure your minibuffer prompt" single ((:commit . "0a75ecd5058c9a006e02d1ecd3f1c84194881abd") (:keywords "utility" "minibuffer") (:authors ("10sr <8slashes+el [at] gmail [dot] com>")) (:maintainer "10sr <8slashes+el [at] gmail [dot] com>") (:url . "https://github.com/10sr/prompt-text-el"))]) -(promise . [(20190415 650) ((emacs (25)) (async (1 9))) "Promises/A+" tar ((:commit . "7ac038c9ef96f07b14919dd2ae648dce82324510") (:keywords "async" "promise" "convenience") (:authors ("chuntaro" . "chuntaro@sakura-games.jp")) (:maintainer "chuntaro" . "chuntaro@sakura-games.jp") (:url . "https://github.com/chuntaro/emacs-promise"))]) -(projmake-mode . [(20161031 1715) ((dash (20150611 922)) (indicators (20130217 1405))) "Project oriented automatic builder and error highlighter, flymake for projects" tar ((:commit . "a897701f7e8f8cc11459ed44eb0e454db2a460c1"))]) -(projekt . [(20150324 848) ((emacs (24))) "some kind of staging for CVS" single ((:commit . "a65e554e5d8b0def08c5d06f3fe34fec40bebd83") (:authors ("Engelke Eschner" . "tekai@gmx.li")) (:maintainer "Engelke Eschner" . "tekai@gmx.li"))]) -(projector . [(20190107 2125) ((alert (1 1)) (projectile (0 11 0)) (cl-lib (0 5))) "Lightweight library for managing project-aware shell and command buffers" single ((:commit . "b7ee3f78e54525c969316c3c717ec3b83f074b00") (:authors ("Justin Talbott" . "justin@waymondo.com")) (:maintainer "Justin Talbott" . "justin@waymondo.com") (:url . "https://github.com/waymondo/projector"))]) -(projectile-variable . [(20170208 1718) ((emacs (24)) (cl-lib (0 5))) "Store project local variables." single ((:commit . "8d348ac70bdd6dc320c13a12941b32b38140e264") (:keywords "project" "convenience") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/projectile-variable"))]) -(projectile-trailblazer . [(20170928 1624) ((emacs (24 4)) (projectile (0 12 0)) (inflections (1 1)) (inf-ruby (2 2 6)) (f (0 13 0)) (rake (0 3 2))) "Minor mode for Rails projects using trailblazer" single ((:commit . "a37a4f7b7f727d98e4c74c0256e059e84263553d") (:keywords "rails" "projectile" "trailblazer" "languages") (:authors ("Michael Dahl" . "michael.dahl84@gmail.com")) (:maintainer "Michael Dahl" . "michael.dahl84@gmail.com") (:url . "https://github.com/micdahl/projectile-trailblazer"))]) -(projectile-speedbar . [(20170517 243) ((projectile (0 11 0)) (sr-speedbar (0))) "projectile integration for speedbar" single ((:commit . "dcab13db72c2084edbebe808e35f1126fe0b3bcd") (:keywords "project" "convenience" "speedbar" "projectile") (:authors ("Anshul Verma" . "anshul.verma86@gmail.com")) (:maintainer "Anshul Verma" . "anshul.verma86@gmail.com") (:url . "https://github.com/anshulverma/projectile-speedbar"))]) -(projectile-sift . [(20160107 1015) ((sift (0 2 0)) (projectile (0 13 0))) "Run a sift with Projectile" single ((:commit . "33b2c9ff964fe53bb55b37429faaa4e903bead7a") (:keywords "sift" "projectile") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/sift.el"))]) -(projectile-ripgrep . [(20180914 1500) ((ripgrep (0 3 0)) (projectile (0 14 0))) "Run ripgrep with Projectile" single ((:commit . "40e871dcc4519a70981e9f28acea304692a60978") (:keywords "ripgrep" "projectile") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/ripgrep.el"))]) -(projectile-rails . [(20190421 1901) ((emacs (24 3)) (projectile (0 12 0)) (inflections (1 1)) (inf-ruby (2 2 6)) (f (0 13 0)) (rake (0 3 2))) "Minor mode for Rails projects based on projectile-mode" single ((:commit . "3f8226c1136bd91bc919dce27cf952742aa254d0") (:keywords "rails" "projectile") (:authors ("Adam Sokolnicki" . "adam.sokolnicki@gmail.com")) (:maintainer "Adam Sokolnicki" . "adam.sokolnicki@gmail.com") (:url . "https://github.com/asok/projectile-rails"))]) -(projectile-hanami . [(20160505 1311) ((emacs (24 3)) (projectile (0 12 0)) (rake (0 3 2)) (inf-ruby (2 2 6))) "Minor mode for Hanami projects based on projectile" single ((:commit . "c4b8e7d4dfec789ef8493a7c5d4ce0cf7937e579") (:keywords "hanami" "ruby" "projectile") (:authors ("Arjan van der Gaag")) (:maintainer "Arjan van der Gaag") (:url . "https://github.com/avdgaag/projectile-hanami"))]) -(projectile-git-autofetch . [(20190417 1959) ((emacs (25 1)) (projectile (0 14 0)) (alert (1 2))) "automatically fetch git repositories" single ((:commit . "8d8d090fdff42671e9926f095deb3448d24730b1") (:keywords "tools" "vc") (:authors ("Andreas Müller" . "code@0x7.ch")) (:maintainer "Andreas Müller" . "code@0x7.ch") (:url . "https://github.com/andrmuel/projectile-git-autofetch"))]) -(projectile-direnv . [(20160306 138) ((emacs (24)) (s (1 11 0)) (dash (2 12 0)) (projectile (0 13 0))) "Set environment variables from .envrc" single ((:commit . "d5d29e5228f840b7a25358a2fd50353ef2dc9b16") (:keywords "convenience") (:authors ("Christian Romney" . "crommney@pointslope.com")) (:maintainer "Christian Romney" . "crommney@pointslope.com") (:url . "https://github.com/christianromney/projectile-direnv"))]) -(projectile-codesearch . [(20180508 1522) ((codesearch (20171122 431)) (projectile (20150405 126))) "Integration of codesearch into projectile" single ((:commit . "f6eb96f034a925444412cfa03e45e0ccbbafe3f2") (:keywords "tools" "development" "search") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/emacs-codesearch"))]) -(projectile . [(20190617 1338) ((emacs (25 1)) (pkg-info (0 4))) "Manage and navigate projects in Emacs easily" single ((:commit . "b46bb7070f3745ef8b35785afa27eb3e9f13353a") (:keywords "project" "convenience") (:authors ("Bozhidar Batsov" . "bozhidar@batsov.com")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.com") (:url . "https://github.com/bbatsov/projectile"))]) -(project-shells . [(20171107 851) ((emacs (24 3)) (seq (2 19))) "Manage the shell buffers of each project" single ((:commit . "d9401de750e444697c2eb9de1ff79f2a2eba4af8") (:keywords "processes" "terminals") (:authors ("\"Huang, Ying\"" . "huang.ying.caritas@gmail.com")) (:maintainer "\"Huang, Ying\"" . "huang.ying.caritas@gmail.com") (:url . "https://github.com/hying-caritas/project-shells"))]) -(project-root . [(20110206 2030) nil "Define a project root and take actions based upon it." single ((:commit . "843ca1f4ab2bc9c25e0f7cd585ceb1f2693b23f2") (:authors ("Philip Jackson" . "phil@shellarchive.co.uk")) (:maintainer "Philip Jackson" . "phil@shellarchive.co.uk"))]) -(project-persist-drawer . [(20151108 1222) ((project-persist (0 3))) "Use a project drawer with project-persist." tar ((:commit . "35bbe132a4fab6a0fec15ce6c0fd2fe6a4aa9626"))]) -(project-persist . [(20180906 1302) nil "A minor mode to allow loading and saving of project settings." tar ((:commit . "26d9435bef44da2a1b0892eba822f9f487b98eec"))]) -(project-explorer . [(20150504 14) ((cl-lib (0 3)) (es-lib (0 3)) (es-windows (0 1)) (emacs (24))) "A project explorer sidebar" single ((:commit . "589a09008706f5f4ef91393dc4306eede0d15ca9") (:authors ("sabof")) (:maintainer "sabof") (:url . "https://github.com/sabof/project-explorer"))]) -(project-abbrev . [(20190517 521) ((emacs (24 4))) "Customize abbreviation expansion in the project." single ((:commit . "b94f829bb24570782b9f6bbcfdec4b391091b778") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:url . "https://github.com/jcs090218/project-abbrev"))]) -(programmer-dvorak . [(20150427 137) nil "Input method for Programmer Dvorak." single ((:commit . "3288a8f058eca4cab390a564babbbcb17cfa0350") (:keywords "dvorak" "programmer-dvorak" "input-method") (:authors ("Chenyun Yang" . "yangchenyun@gmail.com")) (:maintainer "Chenyun Yang" . "yangchenyun@gmail.com") (:url . "https://github.com/yangchenyun/programmer-dvorak"))]) -(prognth . [(20130920 1759) nil "Extend prog1 to arbitrary index" single ((:commit . "2f1ca4d34b1fd581163e1df122c85418137e8e62") (:keywords "lisp") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com"))]) -(prog-fill . [(20180607 132) ((emacs (25 1)) (cl-lib (0 6 1))) "Smartly format lines to use vertical space." single ((:commit . "3fbf7da6dd826e95c9077d659566ee29814a31d8") (:keywords "ahungry" "convenience" "c" "formatting" "editing") (:authors ("Matthew Carter" . "m@ahungry.com")) (:maintainer "Matthew Carter" . "m@ahungry.com") (:url . "https://github.com/ahungry/prog-fill"))]) -(professional-theme . [(20150315 1100) nil "Emacs port of Vim's professional theme" single ((:commit . "0927d1474049a193f9f366bde5eb1887b9ba20ed") (:keywords "theme" "light" "professional") (:authors ("Juanjo Alvarez" . "juanjo@juanjoalvarez.net")) (:maintainer "Juanjo Alvarez" . "juanjo@juanjoalvarez.net") (:url . "https://github.com/juanjux/emacs-professional-theme"))]) -(prodigy . [(20180511 938) ((s (1 8 0)) (dash (2 4 0)) (f (0 14 0)) (emacs (24))) "Manage external services from within Emacs" single ((:commit . "701dccaa56de9e6a330c05bde33bce4f3b3d6a97") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/prodigy.el"))]) -(processing-snippets . [(20140426 1428) ((yasnippet (0 8 0))) "Snippets for processing-mode" tar ((:commit . "448aba82970c98322629eaf2746e73be6c30c98e"))]) -(processing-mode . [(20171022 2302) nil "Major mode for Processing 2.0" single ((:commit . "448aba82970c98322629eaf2746e73be6c30c98e") (:keywords "languages" "snippets") (:authors ("Peter Vasil" . "mail@petervasil.net")) (:maintainer "Peter Vasil" . "mail@petervasil.net") (:url . "https://github.com/ptrv/processing2-emacs"))]) -(proc-net . [(20130322 12) nil "network process tools" single ((:commit . "10861112a1f3994c8e6374d6c5bb5d734cfeaf73") (:keywords "processes") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk") (:url . "http://github.com/nicferrier/emacs-procnet"))]) -(private-diary . [(20151216 1657) ((emacs (24 0))) "maintain a private diary in Emacs" single ((:commit . "0c86fb6150ad8ed14f94def3504f5a68f4147283") (:keywords "diary" "encryption") (:authors ("James P. Ascher" . "jpa4q@virginia.edu")) (:maintainer "James P. Ascher" . "jpa4q@virginia.edu") (:url . "https://github.com/cacology/private-diary"))]) -(private . [(20150122 157) ((aes (0 6))) "take care of your private configuration files." single ((:commit . "9266d01c095895cc3ee9de95bc20511e88353755") (:keywords "private" "configuration" "backup" "recover") (:authors ("Cheung Mou Wai" . "yeannylam@gmail.com")) (:maintainer "Cheung Mou Wai" . "yeannylam@gmail.com") (:url . "https://github.com/cheunghy/private"))]) -(pretty-symbols . [(20140814 959) nil "Draw tokens as Unicode glyphs." single ((:commit . "582cbe51ecfe1cc0a5b185bc06113c8a661e3956") (:keywords "faces") (:authors ("David Röthlisberger" . "david@rothlis.net")) (:maintainer "David Röthlisberger" . "david@rothlis.net") (:url . "http://github.com/drothlis/pretty-symbols"))]) -(pretty-sha-path . [(20141105 1826) nil "Prettify Guix/Nix store paths" single ((:commit . "a2b43dd9de423a38d67cda2e3bd9412f7d363257") (:keywords "faces" "convenience") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://gitorious.org/alezost-emacs/pretty-sha-path"))]) -(pretty-mode . [(20190615 2045) nil "Redisplay parts of the buffer as pretty Unicode symbols." single ((:commit . "5154355e90fdd70d3647257280a89eeb725ef084") (:keywords "pretty" "unicode" "symbols") (:authors ("Arthur Danskin" . "arthurdanskin@gmail.com")) (:maintainer "Grant Rettke" . "grant@wisdomandwonder.com") (:url . "https://github.com/akatov/pretty-mode"))]) -(pretty-hydra . [(20190530 2053) ((hydra (0 15 0)) (s (1 12 0)) (dash (2 15 0)) (dash-functional (1 2 0)) (emacs (24))) "A macro for creating nice-looking hydras" single ((:commit . "a93eb369e0ffd553f1fe9da2cdb7cee2edd02206") (:authors ("Jerry Peng" . "pr2jerry@gmail.com")) (:maintainer "Jerry Peng" . "pr2jerry@gmail.com") (:url . "https://github.com/jerrypnz/major-mode-hydra.el"))]) -(prettify-greek . [(20160603 908) nil "Greek letters for prettify-symbols" single ((:commit . "698d07a6ffe85f6fb53f3bfec4f49380c25cfd90") (:keywords "faces") (:url . "https://gitlab.com/fommil/emacs-prettify-greek"))]) -(prettier-js . [(20180109 726) nil "Minor mode to format JS code on file save" single ((:commit . "e9b73e81d3e1642aec682195f127a42dfb0b5774") (:keywords "convenience" "wp" "edit" "js") (:authors ("James Long and contributors")) (:maintainer "James Long and contributors") (:url . "https://github.com/prettier/prettier-emacs"))]) -(presentation . [(20180427 224) ((emacs (24 4)) (cl-lib (0 5))) "Display large character for presentation" single ((:commit . "f53f67aeab97e8eea6d1f12df5f7ce3b1b03b879") (:keywords "environment" "faces" "frames") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/emacs-presentation-mode"))]) -(preseed-generic-mode . [(20180210 500) nil "Debian preseed file major mode" single ((:commit . "3aa8806c4a659064baa01751400c53fbaf847f66") (:authors ("Tong Sun" . "suntong@users.sourceforge.net")) (:maintainer "Tong Sun" . "suntong@users.sourceforge.net") (:url . "https://github.com/suntong/preseed-generic-mode"))]) -(prescient . [(20190529 1613) ((emacs (25 1))) "Better sorting and filtering." single ((:commit . "1964f605f1f1e50c64a33aa3910cde7a23b45afc") (:keywords "extensions") (:authors ("Radon Rosborough" . "radon.neon@gmail.com")) (:maintainer "Radon Rosborough" . "radon.neon@gmail.com") (:url . "https://github.com/raxod502/prescient.el"))]) -(preproc-font-lock . [(20151107 2018) nil "Highlight C-style preprocessor directives." single ((:commit . "565fda9f5fdeb0598986174a07e9fb09f7604397") (:keywords "c" "languages" "faces") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/preproc-font-lock"))]) -(prassee-theme . [(20180709 1004) ((emacs (24))) "A high contrast color theme for Emacs." single ((:commit . "81126f69cdbaab836c00ae7a49aaf89d4229fde1") (:keywords "dark" "high-contrast" "faces") (:authors ("Prassee " . "prassee.sathian@gmail.com")) (:maintainer "Prassee " . "prassee.sathian@gmail.com") (:url . "https://github.com/prassee/prassee-emacs-theme"))]) -(ppd-sr-speedbar . [(20151108 1224) ((sr-speedbar (20140914 2339)) (project-persist-drawer (0 0 4))) "Sr Speedbar adaptor for project-persist-drawer." tar ((:commit . "d88d7f63f695824c435dd996405454d1e46d2aa3"))]) -(powerthesaurus . [(20180719 908) ((emacs (24)) (request (0 3 0)) (s (1 12 0))) "Powerthesaurus integration" single ((:commit . "ab39b050e801934872f3dcaa60b50b0d30ecf367") (:keywords "convenience" "writing") (:url . "http://github.com/SavchenkoValeriy/emacs-powerthesaurus"))]) -(powershell . [(20190421 2038) ((emacs (24))) "Mode for editing PowerShell scripts" single ((:commit . "87826777bd3ebd53740be99b4546bfc11ccc625d") (:keywords "powershell" "languages") (:authors ("Frédéric Perrin <frederic (dot) perrin (arobas) resel (dot) fr>")) (:maintainer "Frédéric Perrin <frederic (dot) perrin (arobas) resel (dot) fr>") (:url . "http://github.com/jschaf/powershell.el"))]) -(powerline-evil . [(20190603 340) ((evil (1 0 8)) (powerline (2 3))) "Utilities for better Evil support for Powerline" tar ((:commit . "b77e2cf571e9990734f2b30d826f3a362b559fd1") (:keywords "evil" "mode-line" "powerline") (:authors ("Chris Johnson" . "chris@christophermjohnson.net")) (:maintainer "Chris Johnson" . "chris@christophermjohnson.net") (:url . "http://github.com/johnson-christopher/powerline-evil/"))]) -(powerline . [(20190323 213) ((cl-lib (0 2))) "Rewrite of Powerline" tar ((:commit . "6ef4a06c3c583045accbc957b6f449b7c0c57cd8") (:keywords "mode-line") (:authors ("Donald Ephraim Curtis" . "dcurtis@milkbox.net")) (:maintainer "Donald Ephraim Curtis" . "dcurtis@milkbox.net") (:url . "http://github.com/milkypostman/powerline/"))]) -(pow . [(20140420 806) ((emacs (24)) (cl-lib (0 5))) "pow (http://pow.cx/) manager for emacs" tar ((:commit . "ea83986b8ca8e27cb996290d6463b111ec0966ce") (:keywords "develop" "web" "pow") (:authors ("yukihiro hara" . "yukihr@gmail.com")) (:maintainer "yukihiro hara" . "yukihr@gmail.com") (:url . "http://github.com/yukihr/emacs-pow"))]) -(pov-mode . [(20161115 743) nil "Major mode for editing POV-Ray scene files." tar ((:commit . "9fc1db3aab7c27155674dd1a87ec62606035d074"))]) -(postcss-sorting . [(20180211 956) ((emacs (24))) "postcss-sorting interface" single ((:commit . "deb0c935d2904c11a965758a9aee5a0e905f21fc") (:authors ("Peiwen Lu" . "hi@peiwen.lu")) (:maintainer "Peiwen Lu" . "hi@peiwen.lu") (:url . "https://github.com/P233/postcss-sorting.el"))]) -(posframe . [(20190608 2318) ((emacs (26))) "Pop a posframe (just a frame) at point" single ((:commit . "fc90a1a558200e5c3688c65add9afdea695a2c10") (:keywords "tooltip") (:authors ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/posframe"))]) -(pos-tip . [(20150318 1513) nil "Show tooltip at point" single ((:commit . "051e08fec5cf30b7574bdf439f79fef7d42d689d") (:keywords "tooltip") (:authors ("S. Irie")) (:maintainer "S. Irie"))]) -(portage-navi . [(20141208 1355) ((concurrent (0 3 1)) (ctable (0 1 2))) "portage viewer" single ((:commit . "8016c3e99fe6cef101d479a3d69185796b22ca2f") (:keywords "tools" "gentoo") (:authors ("<m.sakurai at kiwanami.net>")) (:maintainer "<m.sakurai at kiwanami.net>") (:url . "https://github.com/kiwanami/emacs-portage-navi"))]) -(popwin . [(20150315 1300) nil "Popup Window Manager." single ((:commit . "95dea14c60019d6cccf9a3b33e0dec4e1f22c304") (:keywords "convenience") (:authors ("Tomohiro Matsuyama" . "m2ym.pub@gmail.com")) (:maintainer "Tomohiro Matsuyama" . "m2ym.pub@gmail.com"))]) -(popup-switcher . [(20171205 851) ((cl-lib (0 3)) (popup (0 5 3))) "switch to other buffers and files via popup." single ((:commit . "f5788a31918e37bb5c04139048c667bcec9f1b62") (:keywords "popup" "switch" "buffers" "functions") (:authors ("Kostafey" . "kostafey@gmail.com")) (:maintainer "Kostafey" . "kostafey@gmail.com") (:url . "https://github.com/kostafey/popup-switcher"))]) -(popup-kill-ring . [(20131020 1854) ((popup (0 4)) (pos-tip (0 4))) "interactively insert item from kill-ring" single ((:commit . "5773dfadc104a906c088a3ec62e8cdd3e01e57fa") (:keywords "popup" "kill-ring" "pos-tip") (:authors ("khiker" . "khiker.mail+elisp@gmail.com")) (:maintainer "khiker" . "khiker.mail+elisp@gmail.com") (:url . "https://github.com/waymondo/popup-kill-ring"))]) -(popup-imenu . [(20170326 1040) ((dash (2 12 1)) (popup (0 5 3)) (flx-ido (0 6 1))) "imenu index popup" single ((:commit . "c5e2e69adbd3a630e4cb750965a1aee8c10c1f09") (:keywords "popup" "imenu") (:authors ("Igor Shymko" . "igor.shimko@gmail.com")) (:maintainer "Igor Shymko" . "igor.shimko@gmail.com") (:url . "https://github.com/ancane/popup-imenu"))]) -(popup-edit-menu . [(20170404 1425) ((emacs (24))) "a popup context edit menu package" single ((:commit . "925600a6e29183841199e866cf55e566a6a1b002") (:keywords "lisp" "pop-up" "context" "edit" "menu") (:authors ("Debugfan Chin" . "debugfanchin@gmail.com")) (:maintainer "Debugfan Chin" . "debugfanchin@gmail.com"))]) -(popup-complete . [(20141109 308) ((popup (0 5 0))) "completion with popup" single ((:commit . "caa655a6d8472e9a4bfa1311126d90d7d1b07fca") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-popup-complete"))]) -(popup . [(20160709 1429) ((cl-lib (0 5))) "Visual Popup User Interface" single ((:commit . "80829dd46381754639fb764da11c67235fe63282") (:keywords "lisp") (:authors ("Tomohiro Matsuyama" . "m2ym.pub@gmail.com")) (:maintainer "Tomohiro Matsuyama" . "m2ym.pub@gmail.com"))]) -(poporg . [(20170403 751) nil "Pop a comment or string to an empty buffer for text editing" single ((:commit . "2c58d68c81ecca4140bf179f19ed153ec804b65a") (:keywords "outlines" "tools") (:authors ("François Pinard" . "pinard@iro.umontreal.ca") ("Joseph Rabinoff" . "rabinoff@post.harvard.edu")) (:maintainer "Joseph Rabinoff" . "rabinoff@post.harvard.edu") (:url . "https://github.com/QBobWatson/poporg"))]) -(pophint . [(20170918 248) ((log4e (0 2 0)) (yaxception (0 3))) "Provide navigation using pop-up tips, like Firefox's Vimperator Hint Mode" tar ((:commit . "909025c5a871ca4b9ec7aed7f1a27c819a94dba1") (:keywords "popup") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/emacs-pophint"))]) -(ponylang-mode . [(20180804 1521) ((dash (2 10 0))) "Major mode for Pony code" single ((:commit . "be6f9dce623415656320f32e350e28da75c53437") (:keywords "languages" "programming") (:url . "https://github.com/seantallen/ponylang-mode"))]) -(pony-snippets . [(20160205 411) ((yasnippet (0 8 0))) "Yasnippets for Pony" tar ((:commit . "a6615ab0693f17fc47ec45753202010238157810") (:keywords "snippets" "pony") (:url . "https://github.com/seantallen/pony-snippets"))]) -(pony-mode . [(20170807 1522) nil "Minor mode for working with Django Projects" tar ((:commit . "760684d30b6c234d1b88c9a4673a808f36f7f341"))]) -(pomodoro . [(20190201 2152) nil "A timer for the Pomodoro Technique" single ((:commit . "6cd665ceeaca1f70954aa4caef6f085179f94c69") (:authors ("David Kerschner" . "dkerschner@gmail.com")) (:maintainer "David Kerschner" . "dkerschner@gmail.com"))]) -(pomidor . [(20190523 1414) ((emacs (24 3)) (alert (1 2))) "Simple and cool pomodoro timer" tar ((:commit . "590e64d316d9210bd00cb4eb39d2f07ddc16809a") (:keywords "tools" "time" "applications" "pomodoro technique") (:authors ("TatriX" . "tatrics@gmail.com")) (:maintainer "TatriX" . "tatrics@gmail.com") (:url . "https://github.com/TatriX/pomidor"))]) -(polymode . [(20190613 1211) ((emacs (25))) "Extensible framework for multiple major modes" tar ((:commit . "e7cd8660e6fba292be66f2465ffe104e0c7d9050") (:keywords "languages" "multi-modes" "processes") (:authors ("Vitalie Spinu")) (:maintainer "Vitalie Spinu") (:url . "https://github.com/vitoshka/polymode"))]) -(poly-slim . [(20190605 2103) ((emacs (25)) (polymode (0 2)) (slim-mode (1 1))) "Polymodes for slim" single ((:commit . "a4fb8166d110b82eb3f1d0b4fc87045c3308bd7d") (:keywords "emacs") (:authors ("Siavash Sajjadi and Vitalie Spinu")) (:maintainer "Vitalie Spinu") (:url . "https://github.com/polymode/poly-slim"))]) -(poly-ruby . [(20180905 929) ((emacs (25)) (polymode (0 1 2))) "Provides poly-ruby-mode" single ((:commit . "794ebb926ace23e9c1398da934701951432dcea2") (:keywords "languages") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/poly-ruby.el"))]) -(poly-rst . [(20190605 2103) ((emacs (25)) (polymode (0 2))) "poly-rst-mode polymode" single ((:commit . "1a7d38e1c1d35cf64e4dad408db486a8e1931e61") (:keywords "languages" "multi-modes") (:authors ("Gustaf Waldemarson, Vitalie Spinu")) (:maintainer "Gustaf Waldemarson, Vitalie Spinu") (:url . "https://github.com/polymode/poly-rst"))]) -(poly-org . [(20190605 2103) ((emacs (25)) (polymode (0 2))) "Polymode for org-mode" single ((:commit . "8b0de75b1f9b65c22f7e3fbc205c9408214c8a1f") (:keywords "languages" "multi-modes") (:authors ("Vitalie Spinu")) (:maintainer "Vitalie Spinu") (:url . "https://github.com/polymode/poly-org"))]) -(poly-noweb . [(20190605 2102) ((emacs (25)) (polymode (0 2))) "Polymode for noweb" single ((:commit . "4e65cb22d6bca901021205257f867f868989c665") (:keywords "languages" "multi-modes") (:authors ("Vitalie Spinu")) (:maintainer "Vitalie Spinu") (:url . "https://github.com/polymode/poly-noweb"))]) -(poly-markdown . [(20190605 2102) ((emacs (25)) (polymode (0 2)) (markdown-mode (2 3))) "Polymode for markdown-mode" single ((:commit . "b0de1a9f3e4d7191b1b23b65ebf03dd0ac007afc") (:keywords "emacs") (:authors ("Vitalie Spinu")) (:maintainer "Vitalie Spinu") (:url . "https://github.com/polymode/poly-markdown"))]) -(poly-erb . [(20190605 2102) ((emacs (25)) (polymode (0 2))) "Polymode for erb" single ((:commit . "304204f415b9e46ee36b64531b7d170540828335") (:keywords "emacs") (:authors ("Siavash Sajjadi and Vitalie Spinu")) (:maintainer "Vitalie Spinu") (:url . "https://github.com/polymode/poly-erb"))]) -(poly-ansible . [(20181222 1517) ((ansible (0)) (ansible-doc (0 4)) (jinja2-mode (0 2)) (polymode (0 1 5)) (yaml-mode (0 0 13))) "Polymode for Ansible: Jinja2 in YAML" tar ((:commit . "2cb970a0e27b41ae85bc51d24ef36fa2c7b34bbc") (:keywords "languages") (:authors ("Peter Oliver" . "poly-ansible@mavit.org.uk")) (:maintainer "Peter Oliver" . "poly-ansible@mavit.org.uk") (:url . "https://gitlab.com/mavit/poly-ansible/"))]) -(poly-R . [(20190605 2103) ((emacs (25)) (polymode (0 2)) (poly-markdown (0 2)) (poly-noweb (0 2))) "Various polymodes for R language" single ((:commit . "0443c89b4d2bc2ed235a0c017109c2dbd342aa02") (:keywords "languages" "multi-modes") (:authors ("Vitalie Spinu")) (:maintainer "Vitalie Spinu") (:url . "https://github.com/polymode/poly-R"))]) -(pollen-mode . [(20190310 538) ((emacs (24 3)) (cl-lib (0 5))) "major mode for editing pollen files" single ((:commit . "819edf830e9519f8ca57e9cef31211e3f444d11a") (:keywords "languages" "pollen" "pollenpub") (:authors ("Junsong Li <ljs.darkfish AT GMAIL>")) (:maintainer "Junsong Li") (:url . "https://github.com/lijunsong/pollen-mode"))]) -(pointback . [(20100210 1552) nil "Restore window points when returning to buffers" single ((:commit . "e3a02c1784d81b5a1d2477338d049af581ed19f8") (:keywords "convenience") (:authors ("Markus Triska" . "markus.triska@gmx.at")) (:maintainer "Markus Triska" . "markus.triska@gmx.at"))]) -(point-stack . [(20170808 1658) nil "Back and forward navigation through buffer locations" single ((:commit . "76e17311e3a810314c7d31ac46dc55450ff30fa2") (:authors ("Matt Harrison" . "matthewharrison@gmail.com") ("Dmitry Gutov" . "dgutov@yandex.ru")) (:maintainer "Matt Harrison" . "matthewharrison@gmail.com"))]) -(point-pos . [(20170421 1632) nil "Save and restore point positions" single ((:commit . "442bccb40791832cbc2d6f5c8f53be745aea2b73") (:keywords "tools" "convenience") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/point-pos.el"))]) -(poet-theme . [(20190127 2220) nil "A theme for prose." tar ((:commit . "e16d47de40c9ec434adb8b861223f0bf95495240") (:authors ("Kunal Bhalla" . "bhalla.kunal@gmail.com")) (:maintainer "Kunal Bhalla" . "bhalla.kunal@gmail.com") (:url . "https://github.com/kunalb/poet/"))]) -(poet-client . [(20190124 654) ((emacs (24 4)) (request (0 3 0))) "Client for po.et network api" single ((:commit . "32382057b3e4b8a02ec5ac3190dbe4b93d058741") (:authors ("W.Yahia")) (:maintainer "W.Yahia") (:url . "https://github.com/wailo/emacs-poet"))]) -(poe-lootfilter-mode . [(20190330 1117) ((emacs (24 3))) "Major mode for editing Path of Exile lootfilters" single ((:commit . "5ef06684cb2b17b090ee1f303c2b789fa71bc106") (:keywords "languages" "games") (:authors ("Jeremiah Dodds" . "jeremiah.dodds@gmail.com")) (:maintainer "Jeremiah Dodds" . "jeremiah.dodds@gmail.com") (:url . "https://github.com/jdodds/poe-lootfilter-mode"))]) -(podcaster . [(20161020 1535) ((cl-lib (0 5))) "Podcast client" single ((:commit . "9854517025deb5d556168a68955fb7b662239f5c") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/podcaster"))]) -(pocket-reader . [(20181219 930) ((emacs (25 1)) (dash (2 13 0)) (kv (0 0 19)) (pocket-lib (0 1)) (s (1 10)) (ov (1 0 6)) (rainbow-identifiers (0 2 2)) (org-web-tools (0 1)) (ht (2 2))) "Client for Pocket reading list" single ((:commit . "86c51c65d97819e11b3df403beea424f30125d30") (:keywords "pocket") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "https://github.com/alphapapa/pocket-reader.el"))]) -(pocket-mode . [(20171201 1315) ((emacs (24 4)) (pocket-api (0 1))) "Manage your pocket" single ((:commit . "229de7d35b7e5605797591c46aa8200d7efc363c") (:keywords "convenience" "pocket") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com"))]) -(pocket-lib . [(20180712 23) ((emacs (25 1)) (request (0 2)) (dash (2 13 0)) (kv (0 0 19)) (s (1 12 0))) "Library for accessing getpocket.com API" single ((:commit . "d36fb90ca62e99b27518913012cb4bc620edd747") (:keywords "pocket") (:authors (nil . "Adam Porter <adam@alphapapa.net")) (:maintainer nil . "Adam Porter <adam@alphapapa.net") (:url . "https://github.com/alphapapa/pocket-lib.el"))]) -(pocket-api . [(20180403 109) ((emacs (24 4)) (request (0 2))) "another pocket api" single ((:commit . "3eb9430b9db90bc02e736e433eb86389f7655189") (:keywords "convenience" "pocket") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/pocket-api.el"))]) -(po-mode . [(20190511 1542) nil "major mode for GNU gettext PO files" single ((:commit . "1916142f6a817c733d5ec37e3b4fbae3da67e499") (:keywords "i18n" "gettext"))]) -(pmdm . [(20151109 1836) nil "poor man's desktop-mode alternative." single ((:commit . "f50a547741568cee40bdc80fa3223157a49896e4") (:authors ("Iñigo Serna" . "inigoserna@gmail.com")) (:maintainer "Iñigo Serna" . "inigoserna@gmail.com") (:url . "https://bitbucket.com/inigoserna/pmdm.el"))]) -(plur . [(20160504 924) ((emacs (24 4))) "Easily search and replace multiple variants of a word" single ((:commit . "5bdd3b9a2f0624414bd596e798644713cd1545f0") (:authors ("Chunyang Xu" . "xuchunyang.me@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang.me@gmail.com") (:url . "https://github.com/xuchunyang/plur"))]) -(plsense-direx . [(20140520 2008) ((direx (0 1 -3)) (plsense (0 3 2)) (log4e (0 2 0)) (yaxception (0 3 2))) "Perl Package Explorer" single ((:commit . "8a2f465264c74e04524cc789cdad0190ace43f6c") (:keywords "perl" "convenience") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/plsense-direx"))]) -(plsense . [(20151104 1445) ((auto-complete (1 4 0)) (log4e (0 2 0)) (yaxception (0 2 0))) "provide interface for PlSense that is a development tool for Perl." single ((:commit . "d50f9dccc98f42bdb42f1d1c8142246e03879218") (:keywords "perl" "completion") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/emacs-plsense"))]) -(plim-mode . [(20140813 13) nil "Major mode for editing Plim files" single ((:commit . "92e39190286f172567ceb02c80e1df3b81abfa2d") (:keywords "markup" "language") (:authors ("Dong Weiming")) (:maintainer "Dong Weiming") (:url . "http://github.com/dongweiming/plim-mode"))]) -(plenv . [(20130707 616) nil "A plenv wrapper for Emacs" single ((:commit . "ee937d0f3a1a7ba2d035f45be896d3ed8fefaee2") (:keywords "emacs" "perl") (:authors ("Kenta Sato" . "karupa@cpan.org")) (:maintainer "Kenta Sato" . "karupa@cpan.org"))]) -(playground . [(20180624 326) ((emacs (24 4))) "Manage sandboxes for alternative configurations" single ((:commit . "9212790026bea9ab5fb4ecf0da1163be8ab00776") (:keywords "maint") (:authors ("Akira Komamura" . "akira.komamura@gmail.com")) (:maintainer "Akira Komamura" . "akira.komamura@gmail.com") (:url . "https://github.com/akirak/emacs-playground"))]) -(playerctl . [(20180301 1354) nil "Control your music player (e.g. Spotify) with playerctl" single ((:commit . "3eee541423c2e5eb9f23a26fa9aa88c9c5a19ad1") (:keywords "multimedia" "playerctl" "music") (:authors ("Thomas Luquet" . "thomas@luquet.net")) (:maintainer "Thomas Luquet" . "thomas@luquet.net") (:url . "https://github.com/thomasluquet/playerctl.el"))]) -(play-routes-mode . [(20170426 733) nil "Play Framework Routes File Support" single ((:commit . "22d7b87e0eaf0330f2b2283872f8dc08a3258771") (:keywords "play" "scala") (:authors ("M.Riehl <max@flatmap.ninja>, P.Haun" . "bomgar85@googlemail.com")) (:maintainer "M.Riehl <max@flatmap.ninja>, P.Haun" . "bomgar85@googlemail.com") (:url . "https://github.com/brocode/play-routes-mode/"))]) -(play-crystal . [(20180114 1024) ((emacs (24 4)) (dash (2 12 0)) (request (0 2 0))) "https://play.crystal-lang.org integration." single ((:commit . "0b4810a9025213bd11dbcbfd38b3ca928829e0a5") (:keywords "convenience") (:authors ("Vitalii Elenhaupt")) (:maintainer "Vitalii Elenhaupt") (:url . "https://github.com/veelenga/play-crystal.el"))]) -(platformio-mode . [(20161210 1339) ((projectile (0 13 0))) "PlatformIO integration" single ((:commit . "1466aed132a77f48fcb31938d64abb1a1e58ec42") (:authors ("Zach Massia" . "zmassia@gmail.com")) (:maintainer "Zach Massia" . "zmassia@gmail.com") (:url . "https://github.com/zachmassia/platformio-mode"))]) -(plaster . [(20180127 2050) ((emacs (24 3))) "Pasting to a plaster host with buffers." single ((:commit . "56646475b770747992226bb563e0dcbcdd158f72") (:keywords "convenience" "paste service") (:authors ("Nicolas Hafner" . "shinmera@tymoon.eu")) (:maintainer "Nicolas Hafner" . "shinmera@tymoon.eu") (:url . "http://github.com/shirakumo/plaster/"))]) -(plantuml-mode . [(20190531 853) ((dash (2 0 0)) (emacs (25 0))) "Major mode for PlantUML" single ((:commit . "e9c8e76ff25013e05ab83de9462bbcdd74e27237") (:keywords "uml" "plantuml" "ascii") (:authors ("Zhang Weize (zwz)")) (:maintainer "Carlo Sciolla (skuro)"))]) -(planet-theme . [(20161031 217) ((emacs (24))) "A dark theme inspired by Gmail's 'Planets' theme of yore" single ((:commit . "b0a310ff36565fe22224c407cf59569986698a32") (:keywords "themes") (:authors ("Charlie McMackin" . "charlie.mac@gmail.com")) (:maintainer "Charlie McMackin" . "charlie.mac@gmail.com") (:url . "https://github.com/cmack/emacs-planet-theme"))]) -(plan9-theme . [(20180804 1441) nil "A color theme for Emacs based on Plan9" single ((:commit . "c2da2fcb241e9800d931a1ff19ecd9fd84d30382") (:authors ("John Louis Del Rosario" . "john2x@gmail.com")) (:maintainer "John Louis Del Rosario" . "john2x@gmail.com") (:url . "https://github.com/john2x/plan9-theme.el"))]) -(plain-theme . [(20171124 410) ((emacs (24))) "Plain theme without syntax highlighting" single ((:commit . "a3d5389a44326314da21f147bad2ede60e2cf986"))]) -(pkgbuild-mode . [(20181216 1331) ((emacs (25 1))) "Interface to the ArchLinux package manager" single ((:commit . "e30e37730b5f30bc0dd5b9328fbf4cb3e6f46fdd") (:keywords "languages") (:authors ("Juergen Hoetzel" . "juergen@hoetzel.info")) (:maintainer "Juergen Hoetzel" . "juergen@hoetzel.info") (:url . "https://github.com/juergenhoetzel/pkgbuild-mode"))]) -(pkg-info . [(20150517 1143) ((epl (0 8))) "Information about packages" single ((:commit . "76ba7415480687d05a4353b27fea2ae02b8d9d61") (:keywords "convenience") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Sebastian Wiesner" . "swiesner@lunaryorn.com") (:url . "https://github.com/lunaryorn/pkg-info.el"))]) -(pixiv-novel-mode . [(20160220 1421) nil "Major mode for pixiv novel" single ((:commit . "0d1ca524d92b91f20a7105402a773bc21779b434") (:keywords "novel" "pixiv") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me"))]) -(pixie-mode . [(20180626 541) ((clojure-mode (3 0 1)) (inf-clojure (1 0 0))) "Major mode for Pixie-lang" single ((:commit . "a40c2632cfbe948852a5cdcfd44e6a65db11834d") (:authors ("John Walker" . "john.lou.walker@gmail.com")) (:maintainer "John Walker" . "john.lou.walker@gmail.com") (:url . "https://github.com/johnwalker/pixie-mode"))]) -(pivotal-tracker . [(20170720 1516) nil "Interact with Pivotal Tracker through its API" single ((:commit . "0311d117037c74512149a4a78b269c2e46d7dfba") (:authors ("John Andrews")) (:maintainer "John Andrews") (:url . "http://github.com/jxa/pivotal-tracker"))]) -(pippel . [(20180710 856) ((emacs (25 1)) (s (1 11 0)) (dash (2 12 0))) "Frontend to python package manager pip" tar ((:commit . "21a5200e8e5ccaa1911abb4ebf090b76ca839756") (:authors ("Fritz Stelzer" . "brotzeitmacher@gmail.com")) (:maintainer "Fritz Stelzer" . "brotzeitmacher@gmail.com") (:url . "https://github.com/brotzeitmacher/pippel"))]) -(pipenv . [(20190522 803) ((emacs (25 1)) (f (0 19 0)) (s (1 12 0)) (pyvenv (1 20))) "A Pipenv porcelain." single ((:commit . "03edaaa44a5a4212d2e5a14e3ae6303189d76703") (:authors ("Paul Walsh" . "paulywalsh@gmail.com")) (:maintainer "Paul Walsh" . "paulywalsh@gmail.com") (:url . "https://github.com/pwalsh/pipenv.el"))]) -(pip-requirements . [(20181027 1629) ((dash (2 8 0))) "A major mode for editing pip requirements files." single ((:commit . "216cd1690f80cc965d4ae47b8753fc185f778ff6") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(pinyinlib . [(20170827 2142) nil "Convert first letter of Pinyin to Simplified/Traditional Chinese characters" single ((:commit . "45f05d3dbb4fe957f7ab332ca6f94675848b6aa3") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com"))]) -(pinyin-search . [(20160515 358) ((pinyinlib (0 1 0))) "Search Chinese by Pinyin" single ((:commit . "2e877a76851009d41bde66eb33182a03a7f04262") (:keywords "chinese" "search") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:url . "https://github.com/xuchunyang/pinyin-search.el"))]) -(pinyin . [(20180620 1241) ((cl-lib (0 5)) (emacs (24))) "Convert Hanzi to Pinyin (汉å—转拼音)" tar ((:commit . "a325e790e9dd7c5028c4c8d110b08e9d78227382") (:keywords "extensions") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/pinyin.el"))]) -(pinot . [(20140211 2026) nil "Emacs interface to pinot-search" tar ((:commit . "67fda555a155b22bb2ce44ba618b4bd6fc5f144a") (:authors ("Takafumi Arakaki <aka.tkf at gmail.com>")) (:maintainer "Takafumi Arakaki <aka.tkf at gmail.com>"))]) -(pine-script-mode . [(20181110 151) ((emacs (24))) "Trading View Pine Script major mode" single ((:commit . "f7892d373e30df0b2e8d2191e4ddb2064a92dd3c") (:keywords "extensions") (:authors ("Eric Crosson" . "eric.s.crosson@utexas.edu")) (:maintainer "Eric Crosson" . "eric.s.crosson@utexas.edu") (:url . "https://github.com/ericcrosson/pine-script-mode"))]) -(pinboard-popular . [(20180511 1726) ((loop (1 4))) "Displays links from the pinboard.in popular page." single ((:commit . "c0bc76cd35f8ecf34723c64a702b82eec2751318") (:keywords "pinboard") (:url . "https://github.com/asimpson/pinboard-popular"))]) -(pinboard-api . [(20140324 1148) nil "Rudimentary http://pinboard.in integration" single ((:commit . "b7b5214d0c35178f8dca08cf22d6ef3c21f0fce4") (:keywords "pinboard" "www") (:authors ("Danie Roux" . "danie@danieroux.com")) (:maintainer "Danie Roux" . "danie@danieroux.com") (:url . "https://github.com/danieroux/pinboard-api-el"))]) -(pillar . [(20141112 1811) ((makey (0 3))) "Major mode for editing Pillar files" tar ((:commit . "13a7f676544cc66005ccd8e6fc1c25e4ccd6f909") (:keywords "markup" "major-mode") (:authors ("Damien Cassou" . "damien.cassou@gmail.com")) (:maintainer "Damien Cassou" . "damien.cassou@gmail.com") (:url . "http://github.com/DamienCassou/pillar-mode"))]) -(pig-snippets . [(20130913 624) ((yasnippet (0 8 0))) "Snippets for pig-mode" tar ((:commit . "4c6c6e1b1bb719d8adc6c47cc24665f6fe558959"))]) -(pig-mode . [(20180520 1400) nil "Major mode for Pig files" single ((:commit . "4c6c6e1b1bb719d8adc6c47cc24665f6fe558959") (:maintainer "David A. Shamma"))]) -(picpocket . [(20180914 1819) ((emacs (24 4))) "Image viewer" single ((:commit . "6fd88b8711c4370662c0f9c462170187d092a046") (:keywords "multimedia") (:authors ("Johan Claesson" . "johanclaesson@bredband.net")) (:maintainer "Johan Claesson" . "johanclaesson@bredband.net") (:url . "https://github.com/johanclaesson/picpocket"))]) -(picolisp-mode . [(20190105 720) nil "Major mode for PicoLisp programming." single ((:commit . "39e54f31b5d10483aac2765bf5cc4ad92f9e4467") (:keywords "picolisp" "lisp" "programming") (:authors ("Alexis" . "flexibeast@gmail.com")) (:maintainer "Alexis" . "flexibeast@gmail.com") (:url . "https://github.com/flexibeast/picolisp-mode"))]) -(pickle . [(20190122 1748) ((emacs (25 1)) (cl-lib (0 6 1))) "Major mode for editing cucumber gherkin files." single ((:commit . "0d0b1925b7b79e2c80a1877351e3c6ce52935c4b") (:keywords "languages" "cucumber" "gherkin") (:authors ("Matthew Carter" . "m@ahungry.com")) (:maintainer "Matthew Carter" . "m@ahungry.com") (:url . "https://github.com/ahungry/pickle-mode"))]) -(pianobar . [(20180417 104) nil "thin wrapper for Pianobar, a Pandora Radio client" single ((:commit . "3154c4cb7401017fd441fcd6a7a0b669a4406882") (:authors ("Aaron Griffith" . "aargri@gmail.com")) (:maintainer "Aaron Griffith" . "aargri@gmail.com") (:url . "http://github.com/agrif/pianobar.el"))]) -(phpunit . [(20180829 1438) ((s (1 12 0)) (f (0 19 0)) (pkg-info (0 6)) (cl-lib (0 5)) (emacs (24 3))) "Launch PHP unit tests using phpunit" tar ((:commit . "fe6bc91c3bd8b329c6d26ad883a025f06b5121ee") (:keywords "tools" "php" "tests" "phpunit") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com") ("Eric Hansen" . "hansen.c.eric@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/phpunit.el"))]) -(phpt-mode . [(20190512 1809) ((emacs (25)) (polymode (0 1 5)) (php-mode (1 21 2))) "Major mode for editing PHPT test code" single ((:commit . "deb386f1a81003074c476f15e1975d445ff6df01") (:keywords "languages" "php") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/emacs-php/phpt-mode"))]) -(phpstan . [(20190618 724) ((emacs (24 3))) "Interface to PHPStan." single ((:commit . "525792fc4a9ecb5dc577a7c416e298e0c45c6183") (:keywords "tools" "php") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/emacs-php/phpstan.el"))]) -(phpcbf . [(20181228 423) ((s (1 9 0))) "Format PHP code in Emacs using PHP_CodeSniffer's phpcbf" single ((:commit . "fb0bc6073a57126cf1a8404723aa0a715dd761aa") (:keywords "tools" "php") (:authors ("nishimaki10")) (:maintainer "nishimaki10") (:url . "https://github.com/nishimaki10/emacs-phpcbf"))]) -(phpactor . [(20190531 1500) ((emacs (24 4)) (cl-lib (0 5)) (f (0 17)) (php-runtime (0 2)) (composer (0 1))) "Interface to Phpactor" tar ((:commit . "57f9dbbc0ef1d7adfa77725c0f158d0302999e39") (:keywords "tools" "php") (:authors ("USAMI Kenta" . "tadsan@zonu.me") ("Mikael Kermorgant" . "mikael@kgtech.fi")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/emacs-php/phpactor.el"))]) -(php-scratch . [(20161103 2217) ((emacs (24 3)) (s (1 11 0)) (php-mode (1 17 0))) "A scratch buffer to interactively evaluate php code" single ((:commit . "3aa66d1d53b84b779374edff7a7e6b5f2cd7575d") (:authors ("Tijs Mallaerts" . "tijs.mallaerts@gmail.com")) (:maintainer "Tijs Mallaerts" . "tijs.mallaerts@gmail.com"))]) -(php-runtime . [(20181212 1825) ((emacs (25)) (cl-lib (0 5)) (f (0 20)) (s (1 7))) "Language binding bridge to PHP" single ((:commit . "017e0e70f07d6b25e37d5c5f4d271a914b677631") (:keywords "processes" "php") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/emacs-php/php-runtime.el"))]) -(php-refactor-mode . [(20171124 635) nil "Minor mode to quickly and safely perform common refactorings" single ((:commit . "7a794b0618df2882b1bd586fdd698dba0bc5130d") (:keywords "php" "refactor") (:authors ("Matthew M. Keeler" . "keelerm84@gmail.com")) (:maintainer "Matthew M. Keeler" . "keelerm84@gmail.com") (:url . "https://github.com/keelerm84/php-refactor-mode.el"))]) -(php-mode . [(20190530 1910) ((emacs (24 3)) (cl-lib (0 5))) "Major mode for editing PHP code" tar ((:commit . "e377358c5e1f1370dc410f776f5e594ab236fb4c") (:keywords "languages" "php") (:authors ("Eric James Michael Ritz")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/emacs-php/php-mode"))]) -(php-eldoc . [(20140202 1941) nil "eldoc backend for php" tar ((:commit . "df05064146b884d9081e10657e32dc480f070cfe") (:authors ("sabof")) (:maintainer "sabof") (:url . "https://github.com/sabof/php-eldoc"))]) -(php-cs-fixer . [(20190207 1126) ((cl-lib (0 5))) "php-cs-fixer wrapper." single ((:commit . "6540006710daf2b2d47576968ea826a83a40a6bf") (:keywords "languages" "php") (:authors ("Philippe Ivaldi for OVYA")) (:maintainer "Philippe Ivaldi for OVYA") (:url . "https://github.com/OVYA/php-cs-fixer"))]) -(php-boris-minor-mode . [(20140209 1835) ((php-boris (0 0 1)) (highlight (0))) "a minor mode to evaluate PHP code in the Boris repl" single ((:commit . "c70e176dd6545f2d42ca3427e87b469635616d8a") (:keywords "php" "repl" "eval") (:authors ("steckerhalter")) (:maintainer "steckerhalter") (:url . "https://github.com/steckerhalter/php-boris-minor-mode"))]) -(php-boris . [(20130527 821) nil "Run boris php REPL" single ((:commit . "f2faebf610c917f7091f7ec0cd97645629c4f819") (:keywords "php" "commint" "repl" "boris") (:authors ("Tom Regner")) (:maintainer "Tom Regner" . "tom@goochesa.de"))]) -(php-auto-yasnippets . [(20170331 114) ((php-mode (1 11)) (yasnippet (0 8 0))) "Creates snippets for PHP functions" tar ((:commit . "03e1f0899c081813901ac15c2f7a675a37cca9f5") (:authors ("Eric James Michael Ritz")) (:maintainer "Eric James Michael Ritz") (:url . "https://github.com/ejmr/php-auto-yasnippets"))]) -(phoenix-dark-pink-theme . [(20170729 1403) nil "Originally a port of the Sublime Text 2 theme" single ((:commit . "4defbb76b00c1a29f060813898578152d6be623d") (:authors ("J Irving" . "j@lollyshouse.ca")) (:maintainer "J Irving" . "j@lollyshouse.ca") (:url . "http://github.com/j0ni/phoenix-dark-pink"))]) -(phoenix-dark-mono-theme . [(20170729 1406) nil "Monochromatic version of the Phoenix theme" single ((:commit . "a54f515d162148bcb38676980bc2316adb3d7b8b") (:authors ("J Irving" . "j@lollyshouse.ca")) (:maintainer "J Irving" . "j@lollyshouse.ca") (:url . "http://github.com/j0ni/phoenix-dark-mono"))]) -(phi-search-migemo . [(20170618 921) ((phi-search (2 2 0)) (migemo (1 9 1))) "migemo extension for phi-search" single ((:commit . "308909ebfc8003d16673f97ca9eb26a667b72969") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(phi-search-mc . [(20160324 1503) ((phi-search (2 0 0)) (multiple-cursors (1 2 1))) "multiple-cursors extension for phi-search" single ((:commit . "7aa671910f766437089aec26c3aa7814222d1356") (:keywords "search" "cursors") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/phi-search-mc.el"))]) -(phi-search-dired . [(20150405 714) ((phi-search (2 2 0))) "interactive filtering for dired powered by phi-search" single ((:commit . "162a5e4507c72512affae22744bb606a906d4193") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(phi-search . [(20180322 129) nil "another incremental search & replace, compatible with \"multiple-cursors\"" tar ((:commit . "9a089b8271cb1cff9640848850298c9ec855286c") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(phi-rectangle . [(20151208 654) nil "another rectangle-mark command (rewrite of rect-mark)" single ((:commit . "0c12716afc71d803d1f39417469521dc465762d9") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(phi-grep . [(20170606 807) ((cl-lib (0 1))) "Interactively-editable recursive grep implementation in elisp" single ((:commit . "ab9bd8d25e751a9cbfa108b49839293230b6e8b5") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://github.com/zk-phi/phi-grep"))]) -(phi-autopair . [(20170217 353) ((paredit (20))) "another simple-minded autopair implementation" single ((:commit . "3c7556779c3a53b045f5df33ae2a0c67469cbf60") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(phan . [(20190521 203) ((emacs (24)) (composer (0 0 8)) (f (0 17))) "Utility functions for Phan (PHP static analizer)" single ((:commit . "82c2d962cd5cab647e8f2f5636bc83511ea40cb4") (:keywords "tools" "php") (:authors ("USAMI Kenta" . "tadsan@pixiv.com")) (:maintainer "USAMI Kenta" . "tadsan@pixiv.com") (:url . "https://github.com/emacs-php/phan.el"))]) -(phabricator . [(20160510 1425) ((emacs (24 4)) (dash (1 0)) (projectile (0 13 0)) (s (1 10 0)) (f (0 17 2))) "Phabricator/Arcanist helpers for Emacs." single ((:commit . "d09d6f059aea92d3b11c68664a5e80c901182ab8") (:keywords "phabricator" "arcanist" "diffusion") (:authors ("Andrew Tulloch")) (:maintainer "Andrew Tulloch") (:url . "https://github.com/ajtulloch/phabricator.el"))]) -(ph . [(20161029 1522) ((emacs (24 3))) "A global minor mode for managing multiple projects." tar ((:commit . "ed80dad9211583ed0db633448b3624c99b7fac23"))]) -(pgdevenv . [(20150105 2236) nil "Manage your PostgreSQL development envs" tar ((:commit . "7f1d5bc734750aca98cf67a9491cdbd5615fd132") (:keywords "emacs" "postgresql" "development" "environment" "shell" "debug" "gdb") (:authors ("Dimitri Fontaine" . "dim@tapoueh.org")) (:maintainer "Dimitri Fontaine" . "dim@tapoueh.org"))]) -(pg . [(20130731 2142) nil "Emacs Lisp interface to the PostgreSQL RDBMS" single ((:commit . "4f6516ec3946d95dcef49abb6703cc89ecb5183d") (:keywords "data" "comm" "database" "postgresql") (:authors ("Eric Marsden" . "emarsden@laas.fr")) (:maintainer "Helmut Eller" . "heller@common-lisp.net"))]) -(pfuture . [(20190505 1006) ((emacs (25 2))) "a simple wrapper around asynchronous processes" single ((:commit . "368254ee30692c709400db413c347e18e76a8a55") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/pfuture"))]) -(perspeen . [(20171203 1021) ((emacs (25 0)) (powerline (2 4))) "An package for multi-workspace" tar ((:commit . "edb70c530bda50ff3d1756e32a703d5fef5e5480") (:keywords "lisp") (:authors ("Peng Li" . "seudut@gmail.com")) (:maintainer "Peng Li" . "seudut@gmail.com") (:url . "https://github.com/seudut/perspeen"))]) -(perspective . [(20181120 114) ((cl-lib (0 5))) "switch between named \"perspectives\" of the editor" single ((:commit . "2c8cf56d170c3eb1fcc1a8fe41026b780e0ffead") (:keywords "workspace" "convenience" "frames") (:authors ("Natalie Weizenbaum" . "nex342@gmail.com")) (:maintainer "Natalie Weizenbaum" . "nex342@gmail.com") (:url . "http://github.com/nex3/perspective-el"))]) -(persp-projectile . [(20180616 1944) ((perspective (1 9)) (projectile (0 11 0)) (cl-lib (0 3))) "Perspective integration with Projectile" single ((:commit . "533808b3e4f8f95a1e3ed9c55d9aa720277ebd5f") (:keywords "project" "convenience") (:authors ("Daniel Wu")) (:maintainer "Daniel Wu"))]) -(persp-mode-projectile-bridge . [(20170315 1120) ((persp-mode (2 9)) (projectile (0 13 0)) (cl-lib (0 5))) "persp-mode + projectile integration." single ((:commit . "f6453cd7b8b4352c06e771706f2c5b7e2cdff1ce") (:keywords "persp-mode" "projectile") (:authors ("Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com")) (:maintainer "Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com") (:url . "https://github.com/Bad-ptr/persp-mode-projectile-bridge.el"))]) -(persp-mode . [(20190511 1402) nil "windows/buffers sets shared among frames + save/load." single ((:commit . "e330e6240bbb82589077f30472b05b95d1ff430d") (:keywords "perspectives" "session" "workspace" "persistence" "windows" "buffers" "convenience") (:authors ("Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com")) (:maintainer "Constantin Kulikov (Bad_ptr)" . "zxnotdead@gmail.com") (:url . "https://github.com/Bad-ptr/persp-mode.el"))]) -(persp-fr . [(20180801 727) ((emacs (25 0)) (persp-mode (2 9 6)) (dash (2 13 0))) "In persp-mode, show perspective list in the GUI window title" single ((:commit . "3f536440b120499464106fd25f182d7580192870") (:keywords "perspectives" "workspace" "windows" "convenience") (:authors ("Francesc Rocher" . "francesc.rocher@gmail.com")) (:maintainer "Francesc Rocher" . "francesc.rocher@gmail.com") (:url . "http://github.com/rocher/persp-fr"))]) -(persistent-soft . [(20150223 1853) ((pcache (0 3 1)) (list-utils (0 4 2))) "Persistent storage, returning nil on failure" single ((:commit . "a1e0ddf2a12a6f18cab565dee250f070384cbe02") (:keywords "data" "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/persistent-soft"))]) -(persistent-scratch . [(20190128 1843) ((emacs (24))) "Preserve the scratch buffer across Emacs sessions" single ((:commit . "71371a7ce9846754276350fd577dc7543eb52878") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/persistent-scratch"))]) -(persistent-overlays . [(20161128 700) nil "Minor mode to store selected overlays to be loaded later" tar ((:commit . "f563c8b966edc78c9d806661c4eb80e4781c4eab") (:keywords "overlays" "persistent") (:authors ("Michael Neilly" . "mneilly@yahoo.com")) (:maintainer "Michael Neilly" . "mneilly@yahoo.com") (:url . "https://github.com/mneilly/Emacs-Persistent-Overlays"))]) -(perlbrew . [(20161109 709) nil "A perlbrew wrapper for Emacs" single ((:commit . "3a3406c3307c92aa30f9400d430925c434a3b6f0") (:keywords "emacs" "perl") (:authors ("Kentaro Kuribayashi" . "kentarok@gmail.com")) (:maintainer "Kentaro Kuribayashi" . "kentarok@gmail.com"))]) -(perl6-mode . [(20180619 1159) ((emacs (24 4)) (pkg-info (0 1))) "Major mode for editing Perl 6 code" tar ((:commit . "88de065795d6863b23b6042576b9e90f8cbf8798") (:keywords "languages") (:authors ("Hinrik Örn Sigurðsson" . "hinrik.sig@gmail.com")) (:maintainer "Hinrik Örn Sigurðsson" . "hinrik.sig@gmail.com") (:url . "https://github.com/hinrik/perl6-mode"))]) -(perfect-margin . [(20190426 245) ((emacs (24 0)) (cl-lib (0 5))) "auto center windows, work with minimap and/or linum-mode" single ((:commit . "a64336810929ecf801a4b65bb722e401e2cccf09") (:keywords "convenience" "frames") (:authors ("Randall Wang" . "randall.wjz@gmail.com")) (:maintainer "Randall Wang" . "randall.wjz@gmail.com") (:url . "https://github.com/mpwang/perfect-margin"))]) -(per-buffer-theme . [(20160318 2201) ((cl-lib (0 5))) "Change theme according to buffer name or major mode." single ((:commit . "9e6200da91b30814d2a6c6518c06472cd95d3ccf") (:keywords "themes") (:authors ("Iñigo Serna" . "inigoserna@gmail.com")) (:maintainer "Iñigo Serna" . "inigoserna@gmail.com") (:url . "https://bitbucket.com/inigoserna/per-buffer-theme.el"))]) -(pepita . [(20190604 1725) ((emacs (25)) (csv (2 1))) "Run Splunk search commands, export results to CSV/HTML/JSON" single ((:commit . "f4f13f9723b7d8c2ea5b3f5579224a0451f2defd") (:keywords "tools" "convenience" "matching") (:authors ("Sebastian Monia" . "smonia@outlook.com")) (:maintainer "Sebastian Monia" . "smonia@outlook.com") (:url . "https://github.com/sebasmonia/pepita.git"))]) -(pelican-mode . [(20190124 2336) ((emacs (25))) "Minor mode for editing Pelican sites" single ((:commit . "65d7caf5d926599a5007eb7bc279215908aa5252") (:keywords "convenience" "editing") (:authors ("Joe Wreschnig" . "joe.wreschnig@gmail.com")) (:maintainer "Joe Wreschnig" . "joe.wreschnig@gmail.com") (:url . "https://git.korewanetadesu.com/pelican-mode.git"))]) -(peg . [(20150708 641) nil "Parsing Expression Grammars in Emacs Lisp" single ((:commit . "081efeca91d790c7fbc90871ac22c40935f4833b"))]) -(peep-dired . [(20160321 2237) nil "Peep at files in another window from dired buffers" single ((:commit . "c88a9a3050197840edfe145f11e0bb9488de32f4") (:keywords "files" "convenience") (:authors ("Adam Sokolnicki" . "adam.sokolnicki@gmail.com")) (:maintainer "Adam Sokolnicki" . "adam.sokolnicki@gmail.com"))]) -(peek-mode . [(20130620 1946) ((elnode (0 9 8 1))) "Serve buffers live over HTTP with elnode backend" tar ((:commit . "55a7dd011375330c7d57322257a5167516702c71") (:authors ("Erik Iverson" . "erik@sigmafield.org")) (:maintainer "Erik Iverson" . "erik@sigmafield.org") (:url . "https://github.com/erikriverson/peek-mode"))]) -(peacock-theme . [(20170808 1320) ((emacs (24 0))) "an Emacs 24 theme based on Peacock (tmTheme)" single ((:commit . "9e46fbfb562b6e26c6e3d6d618b044b3694da4c8") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) -(pdfgrep . [(20181007 1728) ((emacs (24 4))) "run `pdfgrep' and display the results." single ((:commit . "e251cd5c88a4ba5cb69008ba412d329f4d59e1d2") (:keywords "extensions" "mail" "pdf" "grep") (:authors ("Jérémy Compostella" . "jeremy.compostella@gmail.com")) (:maintainer "Jérémy Compostella" . "jeremy.compostella@gmail.com") (:url . "https://github.com/jeremy-compostella/pdfgrep"))]) -(pdf-view-restore . [(20190423 1625) ((pdf-tools (0 90)) (emacs (26 0))) "Support for opening last known pdf position in pdfview mode" single ((:commit . "12d9734d2133dead548497193016c86ab28e9477") (:keywords "files" "convenience") (:authors ("Kevin Kim" . "kevinkim1991@gmail.com")) (:maintainer "Kevin Kim" . "kevinkim1991@gmail.com") (:url . "https://github.com/007kevin/pdf-view-restore"))]) -(pdf-tools . [(20190413 2018) ((emacs (24 3)) (tablist (1 0)) (let-alist (1 0 4))) "Support library for PDF documents." tar ((:commit . "d780b82a5ea5eb64140a3a68fa278f877771a1fc") (:keywords "files" "multimedia") (:authors ("Andreas Politz" . "politza@fh-trier.de")) (:maintainer "Andreas Politz" . "politza@fh-trier.de"))]) -(pdb-mode . [(20150128 1751) nil "Major mode for editing Protein Data Bank files" single ((:commit . "855fb18ebb73b5df30c8d7677c2bcd0f361b138a") (:keywords "data" "pdb") (:authors (nil . "charles.bond@uwa.edu.au")) (:maintainer nil . "aix.bing@gmail.com") (:url . "http://bondxray.org/software/pdb-mode/"))]) -(pcsv . [(20150220 1131) nil "Parser of csv" single ((:commit . "798e0933f8d0818beb17aebf3b1056bbf74e03d0") (:keywords "data") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-pcsv/raw/master/pcsv.el"))]) -(pcre2el . [(20161120 2103) ((emacs (24)) (cl-lib (0 3))) "regexp syntax converter" single ((:commit . "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d") (:authors ("joddie <jonxfield at gmail.com>")) (:maintainer "joddie <jonxfield at gmail.com>") (:url . "https://github.com/joddie/pcre2el"))]) -(pcomplete-extension . [(20180707 455) ((emacs (24)) (cl-lib (0 5))) "additional completion for pcomplete" single ((:commit . "bb941272b54f49f780819f7ce4fd2c802de9a0da") (:authors ("Thierry Volpiatto" . "thierry.volpiatto@gmail.com")) (:maintainer "Thierry Volpiatto" . "thierry.volpiatto@gmail.com") (:url . "https://github.com/thierryvolpiatto/pcomplete-extension"))]) -(pcmpl-pip . [(20181229 1420) ((s (1 12 0)) (f (0 19 0)) (seq (2 15))) "pcomplete for pip" single ((:commit . "bc79228674ad5c1bc458c90dd8839790fb0a09e8") (:keywords "pcomplete" "pip" "python" "tools") (:authors ("zwild" . "judezhao@outlook.com")) (:maintainer "zwild" . "judezhao@outlook.com"))]) -(pcmpl-homebrew . [(20190213 318) nil "pcomplete for homebrew" single ((:commit . "39f2e8faf4d866410a625bbcf88f2504940c8982") (:keywords "pcomplete" "homebrew" "tools" "cask" "services") (:authors ("zwild" . "judezhao@outlook.com")) (:maintainer "zwild" . "judezhao@outlook.com"))]) -(pcmpl-git . [(20170121 59) nil "pcomplete for git" tar ((:commit . "9472ac70baeda025ef7becd1cf141d72aec93f32") (:keywords "tools") (:authors ("Leo Liu" . "sdl.web@gmail.com")) (:maintainer "Leo Liu" . "sdl.web@gmail.com"))]) -(pcmpl-args . [(20190223 1613) nil "Enhanced shell command completion" single ((:commit . "0b8a05fc6e370fa9c466250659619f8d6b53d446") (:keywords "abbrev" "completion" "convenience" "processes" "terminals" "unix") (:authors ("Jonathan Waltman" . "jonathan.waltman@gmail.com")) (:maintainer "Jonathan Waltman" . "jonathan.waltman@gmail.com") (:url . "https://github.com/JonWaltman/pcmpl-args.el"))]) -(pcap-mode . [(20161025 1448) ((emacs (24 3))) "Major mode for working with PCAP files" single ((:commit . "52780669af0ade136f84d73f21b4dbb7ab655416") (:keywords "pcap" "packets" "tcpdump" "wireshark" "tshark") (:authors ("Aaron Conole" . "aconole@bytheb.org")) (:maintainer "Aaron Conole" . "aconole@bytheb.org"))]) -(pcache . [(20170105 2214) ((eieio (1 3))) "persistent caching for Emacs." single ((:commit . "1f8086077d770e524492e6fa59b07856e85a6fea") (:authors ("Yann Hodique" . "yann.hodique@gmail.com")) (:maintainer "Yann Hodique" . "yann.hodique@gmail.com"))]) -(pc-bufsw . [(20181221 856) nil "PC style quick buffer switcher" single ((:commit . "762d47b2f278c072643cf2a1ddc785516483d74a") (:keywords "buffer") (:authors ("Igor Bukanov" . "igor@mir2.org")) (:maintainer "Igor Bukanov" . "igor@mir2.org") (:url . "https://github.com/ibukanov/pc-bufsw"))]) -(pbcopy . [(20150225 459) nil "Emacs Interface to pbcopy" single ((:commit . "338f7245746b5de1bb96c5cc2b32bfd9b5d83272") (:keywords "mac" "osx" "pbcopy") (:authors ("Daniel Nelson")) (:maintainer "Daniel Nelson") (:url . "https://github.com/jkp/pbcopy.el"))]) -(paxedit . [(20160730 1727) ((cl-lib (0 5)) (paredit (23))) "Structured, Context Driven LISP Editing and Refactoring" single ((:commit . "09f3d5aeb108937a801e77ef413e29eaa4ecc4be") (:keywords "lisp" "refactoring" "context") (:authors ("Mustafa Shameem")) (:maintainer "Mustafa Shameem") (:url . "https://github.com/promethial/paxedit"))]) -(pathify . [(20160423 846) nil "Symlink your scripts into a PATH directory" single ((:commit . "401b184c743694a60b3bc4273fc43de05cd5ac4b") (:keywords "convenience") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://gitlab.com/alezost-emacs/pathify"))]) -(path-helper . [(20181208 2229) ((emacs (24))) "Set PATH environment variables from config files" single ((:commit . "34538affb3f341b3c56a875bb094ddb2b859a8ef") (:keywords "tools" "unix") (:authors ("Arnaud Rouanet" . "arnaud@rouanet.org")) (:maintainer "Arnaud Rouanet" . "arnaud@rouanet.org") (:url . "https://github.com/arouanet/path-helper"))]) -(path-headerline-mode . [(20140423 1332) nil "Displaying file path on headerline." single ((:commit . "b5b2725c6a8b1cb592fc242b7dbbd54b4dff2e69") (:keywords "headerline") (:authors ("7696122")) (:maintainer "7696122") (:url . "https://github.com/7696122/path-headerline-mode"))]) -(pastery . [(20171114 349) ((emacs (24 4)) (request (0 2 0))) "paste snippets to pastery.net." tar ((:commit . "4493be98b743b4d062cb4e00760125e394a55022") (:keywords "tools") (:authors ("Bruno Dias" . "dias.h.bruno@gmail.com")) (:maintainer "Bruno Dias" . "dias.h.bruno@gmail.com") (:url . "https://github.com/diasbruno/pastery.el"))]) -(pastelmac-theme . [(20151031 236) ((emacs (24 1))) "a soothing theme with a pastel color palette" single ((:commit . "bead21741e3f46f6506e8aef4469d4240a819389") (:keywords "themes") (:authors ("Brian Mastenbrook" . "brian@mastenbrook.net")) (:maintainer "Brian Mastenbrook" . "brian@mastenbrook.net") (:url . "https://github.com/bmastenbrook/pastelmac-theme-el"))]) -(pastehub . [(20140615 620) nil "A client for the PasteHub cloud service" single ((:commit . "37b045c67659c078f1517d0fbd5282dab58dca23") (:authors ("Kiyoka Nishiyama")) (:maintainer "Kiyoka Nishiyama") (:url . "https://github.com/kiyoka/pastehub"))]) -(pastebin . [(20101125 2002) nil "A simple interface to the www.pastebin.com webservice" single ((:commit . "8e9a829298ce0f747ab80758aa26caeb2af6cb30"))]) -(paste-of-code . [(20170709 2355) ((emacs (24 3)) (request (0 2 0))) "paste code on https://paste.ofcode.org" single ((:commit . "92d258e8ec98598d847ecab82903f9224c7c2050") (:keywords "lisp") (:authors ("Bernhard Specht" . "bernhard@specht.net")) (:maintainer "Bernhard Specht" . "bernhard@specht.net"))]) -(password-vault . [(20160126 1820) ((cl-lib (0 2)) (emacs (24))) "A Password manager for Emacs." single ((:commit . "dc56e6c2f5da66f1ab63736cecf08fb2c6c2b30f") (:keywords "password" "productivity") (:authors ("Javier \"PuercoPop\" Olaechea" . "pirata@gmail.com")) (:maintainer "Javier \"PuercoPop\" Olaechea" . "pirata@gmail.com") (:url . "http://github.com/PuercoPop/password-vault"))]) -(password-store-otp . [(20180815 610) ((emacs (25)) (s (1 9 0)) (password-store (0 1))) "Password store (pass) OTP extension support" single ((:commit . "1819cd88463cd98a5be9a63273b09202dc2bba63") (:keywords "tools" "pass") (:authors ("Daniel Barreto")) (:maintainer "Daniel Barreto") (:url . "https://github.com/volrath/password-store-otp.el"))]) -(password-store . [(20190611 418) ((emacs (25)) (f (0 11 0)) (s (1 9 0)) (with-editor (2 5 11))) "Password store (pass) support" single ((:commit . "5a52772156b44ef9785e91ab78ab2e1c3b1e510e") (:keywords "tools" "pass" "password" "password-store") (:authors ("Svend Sorensen" . "svend@svends.net")) (:maintainer "Svend Sorensen" . "svend@svends.net") (:url . "https://www.passwordstore.org/"))]) -(password-mode . [(20170412 629) nil "Hide password text using overlays" single ((:commit . "ed764a4ec1011526457c71b7c37fa9a659a866ab") (:keywords "docs" "password" "passphrase") (:authors ("Jürgen Hötzel" . "juergen@archlinux.org")) (:maintainer "Jürgen Hötzel" . "juergen@archlinux.org"))]) -(password-generator . [(20150222 2040) nil "Password generator for humans. Good, Bad, Phonetic passwords included." single ((:commit . "904cdb591a04305ba882ce19e1d117f5fa60f7d3") (:authors ("Zargener" . "zargener@gmail.com")) (:maintainer "Zargener" . "zargener@gmail.com") (:url . "http://github.com/zargener/emacs-password-genarator"))]) -(passthword . [(20141201 923) ((cl-lib (0 5))) "Simple password manager" single ((:commit . "30bace842eaaa6b48cb2251fb84868ebca0467d6") (:authors ("Peter Stiernström" . "peter@stiernstrom.se")) (:maintainer "Peter Stiernström" . "peter@stiernstrom.se"))]) -(passmm . [(20181130 1612) ((emacs (24 4)) (password-store (0))) "A minor mode for pass (Password Store)." single ((:commit . "b25a92048c788a8477cc5ffe14c0c4a4df19d79a") (:authors ("Peter Jones" . "pjones@devalot.com")) (:maintainer "Peter Jones" . "pjones@devalot.com") (:url . "https://github.com/pjones/passmm"))]) -(pass . [(20190611 2001) ((emacs (24 3)) (password-store (0 1)) (password-store-otp (0 1 5)) (f (0 17))) "Major mode for password-store.el" single ((:commit . "62d60790ad99c0a00ae8ca54f1a581b1f17ca9f6") (:keywords "password-store" "password" "keychain") (:authors ("Nicolas Petton" . "petton.nicolas@gmail.com") ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Nicolas Petton" . "petton.nicolas@gmail.com"))]) -(pasp-mode . [(20180404 1700) ((emacs (24 3))) "- A major mode for editing Answer Set Programs." single ((:commit . "59385eb0e8ebcfc8c11dd811fb145d4b0fa3cc92") (:keywords "asp" "pasp" "answer set programs" "potassco answer set programs" "major mode" "languages") (:authors ("Henrik Jürges" . "juerges.henrik@gmail.com")) (:maintainer "Henrik Jürges" . "juerges.henrik@gmail.com") (:url . "https://github.com/santifa/pasp-mode"))]) -(parseedn . [(20190331 1058) ((emacs (25)) (a (0 1 0 -3 4)) (parseclj (0 1 0))) "Clojure/EDN parser" single ((:commit . "ddf824bc1df1585867cb7f27f2dd8ca8df760569") (:keywords "lisp" "clojure" "edn" "parser") (:authors ("Arne Brasseur" . "arne@arnebrasseur.net")) (:maintainer "Arne Brasseur" . "arne@arnebrasseur.net"))]) -(parseclj . [(20190531 711) ((emacs (25)) (a (0 1 0 -3 4))) "Clojure/EDN parser" tar ((:commit . "b34d3e13a249d4b92f1a008cdc1df20a92f866c5") (:keywords "lisp" "clojure" "edn" "parser") (:authors ("Arne Brasseur" . "arne@arnebrasseur.net")) (:maintainer "Arne Brasseur" . "arne@arnebrasseur.net"))]) -(parsec . [(20180730 16) ((emacs (24)) (cl-lib (0 5))) "Parser combinator library" single ((:commit . "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com") (:url . "https://github.com/cute-jumper/parsec.el"))]) -(parsebib . [(20181219 928) ((emacs (24 3))) "A library for parsing bib files" single ((:commit . "9a5f1730b8ef1fb6c29262a8ba79f8136e5548d4") (:keywords "text" "bibtex") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm"))]) -(parse-csv . [(20160512 1723) nil "Parse strings with CSV fields into s-expressions" single ((:commit . "96bef1ffbc89ea12d13311c9fa239c5c3e864890") (:keywords "csv") (:authors ("Edward Marco Baringer (Common Lisp)") ("Matt Curtis" . "matt.r.curtis@gmail.com")) (:maintainer "Matt Curtis" . "matt.r.curtis@gmail.com") (:url . "https://github.com/mrc/el-csv"))]) -(parrot . [(20190311 2325) ((emacs (24 1))) "Party Parrot rotates gracefully in mode-line." tar ((:commit . "4d77eafc6bfacfe45dae805ceca101331d3d08d0") (:keywords "party" "parrot" "rotate" "sirocco" "kakapo" "games") (:authors ("Daniel Ting" . "deep.paren.12@gmail.com")) (:maintainer "Daniel Ting" . "deep.paren.12@gmail.com") (:url . "https://github.com/dp12/parrot.git"))]) -(parinfer . [(20180904 844) ((dash (2 13 0)) (cl-lib (0 5))) "Simpler Lisp editing" tar ((:commit . "a7c041454e05ec2b88333a73e72debaa671ed596") (:keywords "parinfer") (:authors ("Shi Tianshu")) (:maintainer "Shi Tianshu") (:url . "https://github.com/DogLooksGood/parinfer-mode"))]) -(parent-mode . [(20150824 2300) nil "get major mode's parent modes" single ((:commit . "db692cf08deff2f0e973e6e86e26662b44813d1b") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/parent-mode"))]) -(paren-face . [(20180318 2025) nil "a face for parentheses in lisp modes" single ((:commit . "6d9358295911f1b44efe81054c535eb2c2bb5a2e") (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/paren-face"))]) -(paren-completer . [(20160501 1052) ((emacs (24 3))) "Automatically, language agnostically, fill in delimiters." single ((:commit . "74183a8e13fa1266271bdcbcb4bfb29a4f915f0a") (:keywords "convenience") (:authors ("Matthew Bregg")) (:maintainer "Matthew Bregg") (:url . "https://github.com/MatthewBregg/paren-completer"))]) -(paredit-menu . [(20160128 1733) ((paredit (25))) "Adds a menu to paredit.el as memory aid" single ((:commit . "cc0ae85bd819f9ebfa4f2a419ab3b2d70e39c9c8") (:keywords "paredit") (:authors ("Phillip Lord" . "phillip.lord@newcastle.ac.uk")) (:maintainer "Phillip Lord" . "phillip.lord@newcastle.ac.uk"))]) -(paredit-everywhere . [(20180506 849) ((paredit (22))) "Enable some paredit features in non-lisp buffers" single ((:commit . "653d7a58fb370d5f7df367464d8d05e23a70b29d") (:keywords "languages" "convenience") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com"))]) -(paredit . [(20171127 205) nil "minor mode for editing parentheses" single ((:commit . "acbe10fdd85d2e91831adf70b6a828bc7e900da0") (:keywords "lisp") (:authors ("Taylor R. Campbell" . "campbell+paredit@mumble.net")) (:maintainer "Taylor R. Campbell" . "campbell+paredit@mumble.net"))]) -(parchment-theme . [(20190615 1852) ((emacs (24))) "Light theme inspired by Acme and Leuven" single ((:commit . "5123092484aeaed6a7d5659672307ead8c4a0027") (:authors ("Alex Griffin" . "a@ajgrf.com")) (:maintainer "Alex Griffin" . "a@ajgrf.com") (:url . "https://github.com/ajgrf/parchment"))]) -(paradox . [(20190429 1157) ((emacs (24 4)) (seq (1 7)) (let-alist (1 0 3)) (spinner (1 7 3)) (hydra (0 13 2))) "A modern Packages Menu. Colored, with package ratings, and customizable." tar ((:commit . "906cf2a944c3ef0cd7bf08dc76ec5049e461f5d6") (:keywords "package" "packages") (:authors ("Artur Malabarba" . "emacs@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com") (:url . "https://github.com/Malabarba/paradox"))]) -(paperless . [(20180224 1245) ((emacs (24 4)) (f (0 11 0)) (s (1 10 0)) (cl-lib (0 6 1))) "A major mode for sorting and filing PDF documents." tar ((:commit . "b3b6c05da393f6b1292a3d5937bc4499baabd0b6") (:keywords "pdf" "convenience") (:authors ("Anthony Green" . "green@moxielogic.com")) (:maintainer "Anthony Green" . "green@moxielogic.com") (:url . "http://github.com/atgreen/paperless"))]) -(paper-theme . [(20190124 1828) ((emacs (24))) "A minimal Emacs colour theme." single ((:commit . "1c4b082f6f19c2563dbfbc48b996a915843624bb") (:keywords "theme" "paper") (:authors ("GöktuÄŸ Kayaalp")) (:maintainer "GöktuÄŸ Kayaalp") (:url . "https://dev.gkayaalp.com/elisp/index.html#paper"))]) -(pangu-spacing . [(20190422 514) nil "Minor-mode to add space between Chinese and English characters." single ((:commit . "3a741c1b669c7194fb766b784c10d52a8de9b87f") (:authors ("coldnew" . "coldnew.tw@gmail.com")) (:maintainer "coldnew" . "coldnew.tw@gmail.com") (:url . "http://github.com/coldnew/pangu-spacing"))]) -(pandoc-mode . [(20190613 1040) ((hydra (0 10 0)) (dash (2 10 0))) "Minor mode for interacting with Pandoc" tar ((:commit . "d2b4d5068370402aefcdfc204b89525428c53e79") (:keywords "text" "pandoc") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm"))]) -(pandoc . [(20161128 1157) ((emacs (24 4))) "Pandoc interface" single ((:commit . "198d262d09e30448f1672338b0b5a81cf75e1eaa") (:keywords "hypermedia" "documentation" "markup" "converter") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/pandoc.el"))]) -(panda-theme . [(20181128 1738) ((emacs (24))) "Panda Theme" single ((:commit . "60aa47c7a930377807da0d601351ad91e8ca446a") (:authors ("jamiecollinson" . "jamiecollinson@gmail.com")) (:maintainer "jamiecollinson" . "jamiecollinson@gmail.com") (:url . "https://github.com/jamiecollinson/emacs-panda-theme"))]) -(panda . [(20190604 2207) ((emacs (25))) "Client for Bamboo's REST API." single ((:commit . "85a8552e1131442afdf6354e67d79bf5bdb3a469") (:keywords "maint" "tool") (:authors ("Sebastian Monia" . "smonia@outlook.com")) (:maintainer "Sebastian Monia" . "smonia@outlook.com") (:url . "https://github.com/sebasmonia/panda"))]) -(pamparam . [(20190122 1412) ((emacs (24 3)) (lispy (0 26 0)) (worf (0 1 0)) (hydra (0 13 4))) "Simple and fast flashcards." tar ((:commit . "d33ef114823df4ca0d17542fa2e91ad74f86f527") (:keywords "outlines" "hypermedia" "flashcards" "memory") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/pamparam"))]) -(pallet . [(20150512 702) ((dash (2 10 0)) (s (1 9 0)) (f (0 17 1)) (cask (0 7))) "A package management tool for Emacs, using Cask." tar ((:commit . "b8d0df1883224a371ac0a3bc9b9c1c4dc61e6ac0"))]) -(palimpsest . [(20170119 2032) nil "Various deletion strategies when editing" single ((:commit . "e6d5944393c260ceb724462c84046cc62c9ae916") (:authors ("Daniel Szmulewicz" . "daniel.szmulewicz@gmail.com")) (:maintainer "Daniel Szmulewicz" . "daniel.szmulewicz@gmail.com"))]) -(pager-default-keybindings . [(20130719 2057) ((pager (1 0))) "Add the default keybindings suggested for pager.el" single ((:commit . "dbbd49c2ac5906d1dabf9e9c832bfebc1ab405b3") (:authors ("Nathaniel Flath" . "nflath@gmail.com")) (:maintainer "Nathaniel Flath" . "nflath@gmail.com") (:url . "http://github.com/nflath/pager-default-keybindings"))]) -(pager . [(20151202 120) nil "windows-scroll commands" single ((:commit . "5c791ed23f1136e04040d6f4bc9b4ca5b6dc919f") (:authors (nil . "Mikael Sjödin -- mic@docs.uu.se")) (:maintainer nil . "Mikael Sjödin -- mic@docs.uu.se"))]) -(page-break-lines . [(20190519 2238) ((emacs (24 4))) "Display ^L page breaks as tidy horizontal lines" single ((:commit . "6f19d894bda6a981c10a58df5e23419f4d2ba353") (:keywords "convenience" "faces") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/page-break-lines"))]) -(paganini-theme . [(20180815 1921) ((emacs (24 0))) "A colorful, dark and warm theme." single ((:commit . "255c5a2a8abee9c5935465ec42b9c3604c178c3c") (:authors ("Onur Temizkan")) (:maintainer "Onur Temizkan") (:url . "https://github.com/onurtemizkan/paganini"))]) -(pact-mode . [(20180905 1647) ((emacs (24 3))) "Mode for Pact, a LISPlike smart contract language." single ((:commit . "e4e4487c1d55b3fb8775abd948be28442efcffec") (:keywords "pact" "lisp" "languages" "blockchain" "smartcontracts" "tools" "mode") (:authors ("Stuart Popejoy")) (:maintainer "Stuart Popejoy" . "stuart@kadena.io") (:url . "https://github.com/kadena-io/pact-mode"))]) -(pacmacs . [(20160131 832) ((emacs (24 4)) (dash (2 11 0)) (dash-functional (1 2 0)) (cl-lib (0 5)) (f (0 18 0))) "Pacman for Emacs" tar ((:commit . "d813e9c62c2540fe619234824fc60e128c786442") (:authors ("Codingteam" . "codingteam@conference.jabber.ru")) (:maintainer "Alexey Kutepov" . "reximkut@gmail.com") (:url . "http://github.com/codingteam/pacmacs.el"))]) -(packed . [(20180318 1729) ((emacs (24 3))) "package manager agnostic Emacs Lisp package utilities" single ((:commit . "f350cc446c65b85bcc213265cd6dcadee1568762") (:keywords "compile" "convenience" "lisp" "package" "library") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/emacscollective/packed"))]) -(package-utils . [(20180514 1415) ((restart-emacs (0 1 1))) "Extensions for package.el" single ((:commit . "5621b95c56b55499f0463fd8b29501da25d861bd") (:keywords "package" "convenience") (:authors ("Philippe Vaucher" . "philippe.vaucher@gmail.com")) (:maintainer "Philippe Vaucher" . "philippe.vaucher@gmail.com") (:url . "https://github.com/Silex/package-utils"))]) -(package-safe-delete . [(20150116 1607) ((emacs (24)) (epl (0 7 -4))) "Safely delete package.el packages" single ((:commit . "138171e4fc03c0ef05a8260cbb5cd2e114c1c194") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/package-safe-delete"))]) -(package-lint-flymake . [(20181117 856) ((emacs (26)) (package-lint (0 5))) "A package-lint Flymake backend" single ((:commit . "110edb00e23eb266da068de9a404beb6202a4814") (:url . "https://github.com/purcell/package-lint"))]) -(package-lint . [(20190617 315) ((cl-lib (0 5)) (emacs (24))) "A linting library for elisp package authors" single ((:commit . "110edb00e23eb266da068de9a404beb6202a4814") (:keywords "lisp") (:authors ("Steve Purcell" . "steve@sanityinc.com") ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/package-lint"))]) -(package-filter . [(20161122 719) nil "package archive whitelist and blacklist" single ((:commit . "bc73b41aea1d65ca44ef1593ca13126df9bbb39e") (:authors ("Donald Ephraim Curtis" . "dcurtis@milkbox.net")) (:maintainer "Donald Ephraim Curtis" . "dcurtis@milkbox.net") (:url . "https://github.com/milkypostman/package-filter"))]) -(package-build . [(20190314 440) ((cl-lib (0 5))) "Tools for assembling a package archive" tar ((:commit . "d023f14b78feddf890cb7e1ded47704c9e2b0303") (:keywords "tools") (:authors ("Donald Ephraim Curtis" . "dcurtis@milkbox.net")) (:maintainer "Donald Ephraim Curtis" . "dcurtis@milkbox.net"))]) -(package+ . [(20170816 256) nil "Extensions for the package library." single ((:commit . "9213f6134eabc2cff5826779ced437714324c066") (:keywords "extensions" "tools") (:authors ("Ryan Davis" . "ryand-ruby@zenspider.com")) (:maintainer "Ryan Davis" . "ryand-ruby@zenspider.com") (:url . "TBA"))]) -(pack . [(20190613 425) ((emacs (24)) (cl-lib (0 5))) "Pack and unpack archive files" single ((:commit . "e0ab7ea1115451b229fae663a110854ab998d8c0") (:keywords "files" "dired") (:authors ("10sr" . "8.slashes@gmail.com")) (:maintainer "10sr" . "8.slashes@gmail.com") (:url . "https://github.com/10sr/pack-el"))]) -(pacfiles-mode . [(20181028 1744) ((emacs (26)) (cl-lib (0 5))) "pacnew and pacsave merging tool" tar ((:commit . "ff58f387e0f85ca20c4c9f119bf13303bf8b5a76") (:keywords "files" "pacman" "arch" "pacnew" "pacsave" "update" "linux") (:authors ("Carlos G. Cordero <http://github/UndeadKernel>")) (:maintainer "Carlos G. Cordero" . "pacfiles@binarycharly.com") (:url . "https://github.com/UndeadKernel/pacfiles-mode"))]) -(pabbrev . [(20160320 2101) nil "Predictive abbreviation expansion" single ((:commit . "56400d5d256b42ffe45c229ea9827f026b650cf5") (:authors ("Phillip Lord" . "phillip.lord@newcastle.ac.uk")) (:maintainer "Phillip Lord" . "phillip.lord@newcastle.ac.uk"))]) -(p4 . [(20150721 1937) nil "Simple Perforce-Emacs Integration" single ((:commit . "eff047caa75dbe4965defca9d1212454cdb755d5") (:authors ("Gareth Rees" . "gdr@garethrees.org")) (:maintainer "Gareth Rees" . "gdr@garethrees.org") (:url . "https://github.com/gareth-rees/p4.el"))]) -(ox-wk . [(20190526 1024) ((emacs (24 4)) (org (8 3))) "Wiki Back-End for Org Export Engine" single ((:commit . "3da2213be1874d9d3e8a9337b09003d9c102b943") (:keywords "org" "wp" "wiki") (:authors ("Vilibald WanÄa" . "vilibald@wvi.cz")) (:maintainer "Vilibald WanÄa" . "vilibald@wvi.cz") (:url . "https://github.com/w-vi/ox-wk.el"))]) -(ox-twiki . [(20170803 2039) ((org (8)) (cl-lib (0 5))) "org Twiki and Foswiki export" single ((:commit . "99d0c25d56dbf75ce894a84e776ba4459208dbc2") (:keywords "org") (:authors ("Derek Feichtinger" . "derek.feichtinger@psi.ch")) (:maintainer "Derek Feichtinger" . "derek.feichtinger@psi.ch") (:url . "https://github.com/dfeich/org8-wikiexporters"))]) -(ox-twbs . [(20161103 2016) nil "Bootstrap compatible HTML Back-End for Org" single ((:commit . "2414e6b1de7deb6dd2ae79a7be633fdccb9c2f28") (:keywords "org" "html" "publish" "twitter" "bootstrap") (:authors ("Carsten Dominik <carsten at orgmode dot org>") ("Jambunathan K <kjambunathan at gmail dot com>") ("Brandon van Beekum <marsmining at gmail dot com>")) (:maintainer "Carsten Dominik <carsten at orgmode dot org>") (:url . "https://github.com/marsmining/ox-twbs"))]) -(ox-tufte . [(20160926 1607) ((org (8 2)) (emacs (24))) "Tufte HTML org-mode export backend" single ((:commit . "49d7ea78fde063b407ce6fa57739f90c83500682") (:keywords "org" "tufte" "html") (:authors ("M. Lee Hinman")) (:maintainer "M. Lee Hinman") (:url . "https://github.com/dakrone/ox-tufte"))]) -(ox-trac . [(20171026 1823) ((org (9 0))) "Org Export Backend to Trac WikiFormat" single ((:commit . "03cc31efb1aa06991918f1071e250a9d58f96cfb") (:keywords "org-mode" "trac") (:authors ("Brian J. Carlson <hacker (at) abutilize (dot) com>")) (:maintainer "Brian J. Carlson <hacker (at) abutilize (dot) com>") (:url . "https://github.com/JalapenoGremlin/ox-trac"))]) -(ox-tiddly . [(20180626 2052) ((org (8)) (cl-lib (0 5))) "org TiddlyWiki exporter" single ((:commit . "99d0c25d56dbf75ce894a84e776ba4459208dbc2") (:keywords "org") (:authors ("Derek Feichtinger" . "derek.feichtinger@psi.ch")) (:maintainer "Derek Feichtinger" . "derek.feichtinger@psi.ch") (:url . "https://github.com/dfeich/org8-wikiexporters"))]) -(ox-textile . [(20180502 947) ((org (8 1))) "Textile Back-End for Org Export Engine" single ((:commit . "b179abaa6616604c6efe32cb509e62ad46e7374e") (:keywords "org" "textile") (:authors ("Yasushi SHOJI" . "yasushi.shoji@gmail.com")) (:maintainer "Yasushi SHOJI" . "yasushi.shoji@gmail.com") (:url . "https://github.com/yashi/org-textile"))]) -(ox-spectacle . [(20181211 953) ((org (8 3))) "spectacle.js Presentation Back-End for Org Export Engine" single ((:commit . "9d3ec9a6326289074d8620e97d65e3105307ff51") (:keywords "presentation") (:authors ("imfine" . "lorniu@gmail.com")) (:maintainer "imfine" . "lorniu@gmail.com"))]) -(ox-slimhtml . [(20181219 850) ((emacs (24)) (cl-lib (0 6))) "a minimal HTML org export backend" single ((:commit . "a5070cb2c67425aa33da8503c83361e8814a86ec") (:keywords "files") (:authors ("Elo Laszlo <hello at bald dot cat>")) (:maintainer "Elo Laszlo <hello at bald dot cat>") (:url . "http://bald.cat/slimhtml"))]) -(ox-slack . [(20181119 1131) ((org (9 1 4)) (ox-gfm (1 0))) "Slack Exporter for org-mode" single ((:commit . "96d90914e6df1a0141657fc51f1dc5bb8f1da6bd") (:keywords "org" "slack" "outlines") (:authors ("Matt Price")) (:maintainer "Matt Price") (:url . "https://github.com/titaniumbones/ox-slack"))]) -(ox-rst . [(20180315 13) ((emacs (24 4)) (org (8 2 4))) "Export reStructuredText using org-mode." single ((:commit . "a74b60883b0d844c80efb364dac1560b85f2548f") (:keywords "org" "rst" "rest" "restructuredtext") (:authors ("Masanao Igarashi" . "syoux2@gmail.com")) (:maintainer "Masanao Igarashi" . "syoux2@gmail.com") (:url . "https://github.com/masayuko/ox-rst"))]) -(ox-rfc . [(20190429 1133) ((emacs (24 3)) (org (8 3))) "RFC Back-End for Org Export Engine" tar ((:commit . "4cac33c387bc10e32f18940298aa5095d060ed3e") (:keywords "org" "rfc" "wp" "xml") (:authors ("Christian Hopps" . "chopps@devhopps.com")) (:maintainer "Christian Hopps" . "chopps@devhopps.com") (:url . "https://github.com/choppsv1/org-rfc-export"))]) -(ox-reveal . [(20190616 1545) ((org (8 3))) "reveal.js Presentation Back-End for Org Export Engine" single ((:commit . "ad5038b839cbdb54795cee363109e67331ba0b51") (:keywords "outlines" "hypermedia" "slideshow" "presentation") (:authors ("Yujie Wen <yjwen.ty at gmail dot com>")) (:maintainer "Yujie Wen <yjwen.ty at gmail dot com>"))]) -(ox-qmd . [(20170402 1657) ((org (8 0))) "Qiita Markdown Back-End for Org Export Engine" single ((:commit . "3a24c7a0b3ec80e494b977e14a3dfb94c9f1d8ec") (:keywords "org" "wp" "markdown" "qiita") (:authors ("0x60DF" . "0x60DF@gmail.com")) (:maintainer "0x60DF" . "0x60DF@gmail.com") (:url . "https://github.com/0x60df/ox-qmd"))]) -(ox-pukiwiki . [(20150124 1716) ((org (8 1))) "Pukiwiki Back-End for Org Export Engine" single ((:commit . "bdbde2c294f5d3de11f08a3fe19f01175d2e011a") (:keywords "org" "pukiwiki") (:authors ("Yasushi SHOJI" . "yasushi.shoji@gmail.com")) (:maintainer "Yasushi SHOJI" . "yasushi.shoji@gmail.com") (:url . "https://github.com/yashi/org-pukiwiki"))]) -(ox-pandoc . [(20180510 1338) ((org (8 2)) (emacs (24)) (dash (2 8)) (ht (2 0)) (cl-lib (0 5))) "org exporter for pandoc." single ((:commit . "aa37dc7e94213d4ebedb85c384c1ba35007da18e") (:keywords "tools") (:authors ("KAWABATA, Taichi" . "kawabata.taichi@gmail.com")) (:maintainer "KAWABATA, Taichi" . "kawabata.taichi@gmail.com") (:url . "https://github.com/kawabata/ox-pandoc"))]) -(ox-nikola . [(20151114 1116) ((emacs (24 4)) (org (8 2 4)) (ox-rst (0 2))) "Export Nikola articles using org-mode." single ((:commit . "5bcbc1a38f6619f62294194f13ca0cd4ca14dd48") (:keywords "org" "nikola") (:authors ("IGARASHI Masanao" . "syoux2@gmail.com")) (:maintainer "IGARASHI Masanao" . "syoux2@gmail.com") (:url . "https://github.com/masayuko/ox-nikola"))]) -(ox-minutes . [(20180202 1734) ((emacs (24 4))) "Plain text backend for Org for Meeting Minutes" single ((:commit . "27c29f3fdb9181322ae56f8bace8d95e621230e5") (:keywords "org" "exporter" "notes") (:authors ("Kaushal Modi" . "kaushal.modi@gmail.com")) (:maintainer "Kaushal Modi" . "kaushal.modi@gmail.com") (:url . "https://github.com/kaushalmodi/ox-minutes"))]) -(ox-mediawiki . [(20180105 2154) ((cl-lib (0 5)) (s (1 9 0))) "Mediawiki Back-End for Org Export Engine" single ((:commit . "a9327150293e370e500ba55bddfe5fc435c6bf9b") (:keywords "org" "wp" "mediawiki") (:authors ("Tom Alexander" . "tomalexander@paphus.com")) (:maintainer "Tom Alexander" . "tomalexander@paphus.com") (:url . "https://github.com/tomalexander/orgmode-mediawiki"))]) -(ox-mdx-deck . [(20181115 1847) ((emacs (24)) (ox-hugo (0 7))) "org-mode to mdx-deck exporter" single ((:commit . "2e46ac76f7ac279c371474cbbf39634bbe40f4c7") (:keywords "lisp" "org" "ox" "mdx" "deck") (:authors ("Joshua Wolfe")) (:maintainer "Joshua Wolfe") (:url . "https://github.com/WolfeCub/ox-mdx-deck/"))]) -(ox-jira . [(20171001 916) ((org (8 3))) "JIRA Backend for Org Export Engine" single ((:commit . "db2ec528f46c9e611624ba28611c440a99bff255") (:keywords "outlines" "hypermedia" "wp") (:authors ("Stig Brautaset" . "stig@brautaset.org")) (:maintainer "Stig Brautaset" . "stig@brautaset.org") (:url . "https://github.com/stig/ox-jira.el"))]) -(ox-jekyll-md . [(20180831 1732) nil "Export Jekyll on Markdown articles using org-mode." single ((:commit . "ff7b81733354c2b427293e531bb51647fa84fc88") (:keywords "org" "jekyll") (:authors ("Elsa Gonsiorowski" . "gonsie@me.com")) (:maintainer "Elsa Gonsiorowski" . "gonsie@me.com"))]) -(ox-ioslide . [(20161015 1338) ((emacs (24 1)) (org (8 0)) (cl-lib (0 5)) (f (0 17 2)) (makey (0 3))) "Export org-mode to Google I/O HTML5 slide." tar ((:commit . "6555680be5364c8ddd2bf446865cb1a82adb6b9e") (:keywords "html" "presentation") (:authors ("coldnew" . "coldnew.tw@gmail.com")) (:maintainer "coldnew" . "coldnew.tw@gmail.com") (:url . "http://github.com/coldnew/org-ioslide"))]) -(ox-impress-js . [(20150412 1716) ((org (8))) "impress.js Back-End for Org Export Engine" tar ((:commit . "91c6d2af6af308ade352a03355c4fb551b238c6b") (:keywords "outlines" "hypermedia" "calendar" "wp") (:authors ("Takumi Kinjo <takumi dot kinjo at gmail dot org>")) (:maintainer "Takumi Kinjo <takumi dot kinjo at gmail dot org>") (:url . "https://github.com/kinjo/org-impress-js.el"))]) -(ox-hugo . [(20190611 1338) ((emacs (24 4)) (org (9 0))) "Hugo Markdown Back-End for Org Export Engine" tar ((:commit . "98e6b69f969fa4cbfeaacb0b9e0bad6347059ebd") (:keywords "org" "markdown" "docs") (:url . "https://ox-hugo.scripter.co"))]) -(ox-html5slide . [(20131228 606) ((org (8 0))) "Export org-mode to HTML5 slide." single ((:commit . "4703dfbd9d79161509def673d2c1e118d722a58f") (:keywords "html" "presentation") (:authors ("coldnew" . "coldnew.tw@gmail.com")) (:maintainer "coldnew" . "coldnew.tw@gmail.com") (:url . "http://github.com/coldnew/org-html5slide"))]) -(ox-gfm . [(20170628 2102) nil "Github Flavored Markdown Back-End for Org Export Engine" single ((:commit . "99f93011b069e02b37c9660b8fcb45dab086a07f") (:keywords "org" "wp" "markdown" "github") (:authors ("Lars Tveito")) (:maintainer "Lars Tveito"))]) -(ox-epub . [(20181101 1854) ((emacs (24 3)) (org (9))) "Export org mode projects to EPUB" single ((:commit . "a66eeb00daa01ad403ac1a1db953ddbf9054be07") (:keywords "hypermedia") (:authors ("Mark Meyer" . "mark@ofosos.org")) (:maintainer "Mark Meyer" . "mark@ofosos.org") (:url . "http://github.com/ofosos/org-epub"))]) -(ox-clip . [(20180306 340) ((org (8 2)) (htmlize (0))) "Cross-platform formatted copying for org-mode" single ((:commit . "594c90953a91948505bb394350adf110e041f19a") (:keywords "org-mode") (:authors ("John Kitchin" . "jkitchin@andrew.cmu.edu")) (:maintainer "John Kitchin" . "jkitchin@andrew.cmu.edu") (:url . "https://github.com/jkitchin/ox-clip/ox-clip.el"))]) -(ox-bibtex-chinese . [(20170723 309) ((emacs (24 4))) "Let ox-bibtex work well for Chinese users" tar ((:commit . "2ad2364399229144110db7ef6365ad0461d6a38c"))]) -(ox-asciidoc . [(20181230 620) ((org (8 1))) "AsciiDoc Back-End for Org Export Engine" single ((:commit . "e931362e641f97d17dc738d22bb461e54045786d") (:keywords "org" "asciidoc") (:authors ("Yasushi SHOJI" . "yasushi.shoji@gmail.com")) (:maintainer "Yasushi SHOJI" . "yasushi.shoji@gmail.com") (:url . "https://github.com/yashi/org-asciidoc"))]) -(owdriver . [(20170401 1312) ((smartrep (0 0 3)) (log4e (0 2 0)) (yaxception (0 2 0))) "Quickly perform various actions on other windows" single ((:commit . "d934f182bafe29aa16c173440eff3fef08b0ec10") (:keywords "convenience") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/owdriver"))]) -(ovpn-mode . [(20190615 48) ((emacs (24)) (cl-lib (0 5))) "an openvpn management mode" single ((:commit . "c424e269bd1132182bc26d371ed0dcf818b41262") (:keywords "comm") (:authors ("Bas Alberts" . "bas@anti.computer")) (:maintainer "Bas Alberts" . "bas@anti.computer") (:url . "https://github.com/anticomputer/ovpn-mode"))]) -(overseer . [(20180226 619) ((emacs (24)) (dash (2 10 0)) (pkg-info (0 4)) (f (0 18 1))) "Ert-runner Integration Into Emacs" single ((:commit . "02d49f582e80e36b4334c9187801c5ecfb027789") (:authors ("Samuel Tonini" . "tonini.samuel@gmail.com")) (:maintainer "Samuel Tonini" . "tonini.samuel@gmail.com") (:url . "http://www.github.com/tonini/overseer.el"))]) -(overcast-theme . [(20190326 1646) ((emacs (24))) "A dark but vibrant color theme for Emacs" single ((:commit . "afb8098ad2234a65ec614f4028f7cf2555134f46") (:keywords "theme") (:authors ("Mohammed Ismail Ansari" . "team.terminal@gmail.com")) (:maintainer "Mohammed Ismail Ansari" . "team.terminal@gmail.com") (:url . "http://ismail.teamfluxion.com"))]) -(ov . [(20150312 528) ((emacs (24 3))) "Overlay library for Emacs Lisp" single ((:commit . "fae7215b3dedba2a9ced145284332e4609bfdc38") (:keywords "overlay") (:authors ("Shingo Fukuyama - http://fukuyama.co")) (:maintainer "Shingo Fukuyama - http://fukuyama.co") (:url . "https://github.com/ShingoFukuyama/ov.el"))]) -(outshine . [(20190313 1153) ((outorg (2 0)) (cl-lib (0 5))) "outline with outshine outshines outline" tar ((:commit . "c3bfa4aa72dcbceabd552345b58a9100805ec6ef") (:keywords "convenience" "outlines" "org") (:authors ("Thorsten Jolitz")) (:maintainer "Thibault Polge" . "thibault@thb.lt") (:url . "https://github.com/alphapapa/outshine"))]) -(outrespace . [(20180711 1432) ((emacs (24 4))) "c++ namespace utility functions" single ((:commit . "7dafed7e1cabf4a0bb55e5c6465e83796e3fdabe") (:keywords "tools" "c++" "namespace") (:authors ("Dan Harms" . "danielrharms@gmail.com")) (:maintainer "Dan Harms" . "danielrharms@gmail.com") (:url . "https://github.com/articuluxe/outrespace.git"))]) -(outorg . [(20181224 921) ((emacs (24 4))) "Org-style comment editing" single ((:commit . "91065d2c1700e8da0ca360373391f1d8741128e6") (:maintainer "Adam Porter") (:url . "https://github.com/alphapapa/outorg"))]) -(outlook . [(20180428 1430) ((emacs (24 4))) "send emails in MS Outlook style" tar ((:commit . "359683aff91b38bd1398a6ed4058a06f09a02d65") (:keywords "mail") (:authors ("Andrew Savonichev")) (:maintainer "Andrew Savonichev") (:url . "https://github.com/asavonic/outlook.el"))]) -(outlined-elisp-mode . [(20131108 1127) nil "outline-minor-mode settings for emacs lisp" single ((:commit . "c16cb02b540448919ad148f2be6a41523ee5489c") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(outline-toc . [(20170730 1130) nil "Sidebar showing a \"table of contents\"." single ((:commit . "31f04bea19cfcfb01a94d1fd2b72391cb02b7463") (:keywords "convenience" "outlines") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/outline-toc.el"))]) -(outline-minor-faces . [(20181122 1121) ((emacs (25 1))) "Headings faces for outline-minor-mode" single ((:commit . "38cb0c5ce6bee61a8fbc1040e102792725735bfa") (:keywords "outlines") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/bicycle"))]) -(outline-magic . [(20180619 1819) nil "outline mode extensions for Emacs" single ((:commit . "2a5f07417b696cf7541d435c43bafcc64817636b") (:keywords "outlines") (:authors ("Carsten Dominik" . "dominik@science.uva.nl")) (:maintainer "Thorsten Jolitz <tjolitz AT gmail DOT com>"))]) -(other-emacs-eval . [(20180408 1348) ((emacs (25 1)) (async (1 9 2))) "Evaluate the Emacs Lisp expression in other Emacs" single ((:commit . "8ace5acafef65daabf0c6619eff60733d7f5d792") (:keywords "tools") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/other-emacs-eval"))]) -(otama . [(20160404 1032) nil "Org-table Manipulator" single ((:commit . "c114fd8006762f891bc120a7c0ea213872e7ab31") (:keywords "database" "org-mode") (:authors ("Yoshinari Nomura" . "nom@quickhack.net")) (:maintainer "Yoshinari Nomura" . "nom@quickhack.net"))]) -(osx-trash . [(20160520 1300) ((emacs (24 1))) "System trash for OS X" tar ((:commit . "0f1dc052d0a750b8c75f14530a4897f5d4324b4e") (:keywords "files" "convenience" "tools" "unix") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Sebastian Wiesner" . "swiesner@lunaryorn.com") (:url . "https://github.com/lunaryorn/osx-trash.el"))]) -(osx-pseudo-daemon . [(20170722 607) nil "Daemon mode that plays nice with OSX." single ((:commit . "d235680a72677f11925b912428ad1a57b664e3e8") (:keywords "convenience" "osx") (:authors ("Ryan C. Thompson")) (:maintainer "Ryan C. Thompson") (:url . "https://github.com/DarwinAwardWinner/osx-pseudo-daemon"))]) -(osx-org-clock-menubar . [(20150205 2111) nil "simple menubar integration for org-clock" tar ((:commit . "9964d2a97cc2fb6570dc4116da44f73bd8eb7cb3") (:keywords "org" "osx") (:authors ("Jordon Biondo" . "jordonbiondo@gmail.com")) (:maintainer "Jordon Biondo" . "jordonbiondo@gmail.com") (:url . "https://github.com/jordonbiondo/osx-org-clock-menubar"))]) -(osx-location . [(20150613 917) nil "Watch and respond to changes in geographical location on OS X" tar ((:commit . "8bb3a94cc9f04b922d2d730fe08596cc6ee12bf2"))]) -(osx-lib . [(20160920 0) ((emacs (24 4))) "Basic function for Apple/OSX." single ((:commit . "fdbbb41e07ba64d6a09b54bd142a7c7b83bfd09f") (:keywords "apple" "applescript" "osx" "finder" "emacs" "elisp" "vpn" "speech") (:authors ("Raghav Kumar Gautam" . "raghav@apache.org")) (:maintainer "Raghav Kumar Gautam" . "raghav@apache.org"))]) -(osx-dictionary . [(20171026 734) ((cl-lib (0 5))) "Interface for OSX Dictionary.app" tar ((:commit . "b16630ecf69f87ac873486d8b9c8c03e6c9ea7fa") (:keywords "mac" "dictionary") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/osx-dictionary.el"))]) -(osx-clipboard . [(20141012 717) nil "Use the OS X clipboard from terminal Emacs" single ((:commit . "e46dd31327a3f92f77b013b4c9b1e5fdd0e5c73d") (:authors ("Jon Oddie <jonxfield at gmail.com>")) (:maintainer "Jon Oddie <jonxfield at gmail.com>") (:url . "https://github.com/joddie/osx-clipboard-mode"))]) -(osx-browse . [(20140508 2041) ((string-utils (0 3 2)) (browse-url-dwim (0 6 6))) "Web browsing helpers for OS X" single ((:commit . "44ded7cc3a7ee426c1c3257fae534c121f7e752e") (:keywords "hypermedia" "external") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/osx-browse"))]) -(origami . [(20180101 1553) ((s (1 9 0)) (dash (2 5 0)) (emacs (24)) (cl-lib (0 5))) "Flexible text folding" tar ((:commit . "1f38085c8f9af7842765ed63f7d6dfe4dab59366") (:keywords "folding") (:authors ("Greg Sexton" . "gregsexton@gmail.com")) (:maintainer "Greg Sexton" . "gregsexton@gmail.com") (:url . "https://github.com/gregsexton/origami.el"))]) -(orgtbl-show-header . [(20141023 837) nil "Show the header of the current column in the minibuffer" single ((:commit . "112d54a44682f065318ed0c9c89a8f5b8907342a") (:authors ("Damien Cassou" . "damien.cassou@gmail.com")) (:maintainer "Damien Cassou" . "damien.cassou@gmail.com"))]) -(orgtbl-join . [(20150121 2246) ((cl-lib (0 5))) "join columns from another table" tar ((:commit . "ccf5e0d96e053dc289da39a048715fcf36835ff2") (:keywords "org" "table" "join" "filtering") (:authors ("Thierry Banel tbanelwebmin at free dot fr")) (:maintainer "Thierry Banel tbanelwebmin at free dot fr"))]) -(orgtbl-ascii-plot . [(20151215 2151) nil "ascii-art bar plots in org-mode tables" single ((:commit . "cd91f6ae26a7402e192a1f4fd6248f5797edf19e") (:keywords "org" "table" "ascii" "plot") (:authors ("Thierry Banel tbanelwebmin at free dot fr") ("Michael Brand")) (:maintainer "Thierry Banel tbanelwebmin at free dot fr"))]) -(orgtbl-aggregate . [(20180731 2154) nil "Create an aggregated Org table from another one" tar ((:commit . "7e87e0fb0784be9370462614ec0ffc9d9ae6ef1c") (:keywords "org" "table" "aggregation" "filtering"))]) -(orgnav . [(20170608 1713) ((helm (2 7 0)) (s (1 11 0)) (dash (1 11 0)) (emacs (24))) "Org tree navigation using helm" tar ((:commit . "9e2cac9c1a67af5f0080e60022e821bf7b70312d") (:keywords "convenience" "outlines") (:authors ("Facet Framer" . "facet@facetframer.com")) (:maintainer "Facet Framer" . "facet@facetframer.com") (:url . "http://github.com/facetframer/orgnav"))]) -(orglue . [(20171220 1226) ((org (8 1)) (epic (0 2))) "more functionality to org-mode." tar ((:commit . "ae2a45c19b52e45db7891093a3ff17ba2e51c507") (:keywords "org") (:authors ("Yoshinari Nomura" . "nom@quickhack.net")) (:maintainer "Yoshinari Nomura" . "nom@quickhack.net"))]) -(orglink . [(20180318 2023) ((emacs (24 3)) (dash (2 12 1)) (org (8 3))) "use Org Mode links in other modes" single ((:commit . "e9e90e16ddaceaf99c9b251a215d6338b9762b4d") (:keywords "hypertext") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/orglink"))]) -(orgit . [(20190417 1724) ((emacs (25 1)) (dash (2 14 1)) (magit (2 90 0)) (org (8 3 3))) "support for Org links to Magit buffers" single ((:commit . "d7e773e1b60f61c858bacd0e9bf01e66904433b4") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/orgit"))]) -(orgbox . [(20180827 218) ((org (8 0)) (cl-lib (0 5))) "Mailbox-like task scheduling Org." single ((:commit . "609e5e37348815ec3ba53ab6d643e38b0cc4fe17") (:keywords "org") (:authors ("Yasuhito Takamiya" . "yasuhito@gmail.com")) (:maintainer "Yasuhito Takamiya" . "yasuhito@gmail.com") (:url . "https://github.com/yasuhito/orgbox"))]) -(organize-imports-java . [(20190517 426) ((emacs (26)) (f (0 20 0)) (s (1 12 0)) (cl-lib (0 6))) "Automatically organize imports in Java code." single ((:commit . "e1604b86673476444593906f024f541371305b67") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:url . "https://github.com/jcs090218/organize-imports-java"))]) -(organic-green-theme . [(20180522 1620) nil "Low-contrast green color theme." single ((:commit . "200ac4a636eeb6faf1793d1937e62a343debc437"))]) -(org2web . [(20171005 2317) ((cl-lib (1 0)) (ht (1 5)) (mustache (0 22)) (htmlize (1 47)) (org (8 0)) (dash (2 0 0)) (el2org (0 10)) (simple-httpd (0 1))) "A static site generator based on org mode." tar ((:commit . "5243b399927a4c474bb3b8d1c8a00799df1f27d7"))]) -(org2jekyll . [(20170225 915) ((dash-functional (2 11 0)) (s (1 9 0)) (deferred (0 3 1)) (kv (0 0 19))) "Minor mode to publish org-mode post to jekyll without specific yaml" tar ((:commit . "52a19a5d372116262b9d613f4ec8490a3b49e329") (:keywords "org-mode" "jekyll" "blog" "publish") (:authors ("Antoine R. Dumont <eniotna.t AT gmail.com>")) (:maintainer "Antoine R. Dumont <eniotna.t AT gmail.com>") (:url . "https://github.com/ardumont/org2jekyll"))]) -(org2issue . [(20190531 941) ((org (8 0)) (emacs (24 4)) (ox-gfm (0 1)) (gh (0 1)) (s (20160405 920))) "export org to github issue" single ((:commit . "910b98c858762fd14b11d261626c5e979dde0833") (:keywords "convenience" "github" "org") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/org2issue"))]) -(org2elcomment . [(20170324 945) ((org (8 3 4))) "Convert Org file to Elisp comments" single ((:commit . "c88a75d9587c484ead18f7adf08592b09c1cceb0") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com"))]) -(org2ctex . [(20181012 151) ((emacs (24 4))) "Export org to ctex (a latex macro for Chinese)" single ((:commit . "2143992462594ce63733305f75f7c7d08123710a") (:authors ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/org2ctex"))]) -(org2blog . [(20190309 442) ((org (8 3)) (xml-rpc (1 6 12)) (metaweblog (1 0 1)) (htmlize (1 51)) (hydra (0 13 0))) "Blog from Org mode to wordpress" tar ((:commit . "bd6dd6b1b3ce57a72e7c229d3f035fc7c0d3860b"))]) -(org-wunderlist . [(20150818 213) ((request-deferred (0 2 0)) (alert (1 1)) (emacs (24)) (cl-lib (0 5)) (org (8 2 4)) (s (1 9 0))) "Org sync with Wunderlist" single ((:commit . "f7f1ca73661356b9fa072efd73431592ff1182e1") (:keywords "convenience") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/org-wunderlist.el"))]) -(org-wild-notifier . [(20190608 410) ((alert (1 2)) (async (1 9 3)) (dash (2 13 0)) (dash-functional (1 2 0)) (emacs (24 4))) "Customizable org-agenda notifications" single ((:commit . "6e194d0f0a21b7d2b09ebdef5ffcd5ffe3633339") (:keywords "notification" "alert" "org" "org-agenda" "agenda") (:authors ("Artem Khramov" . "futu.fata@gmail.com")) (:maintainer "Artem Khramov" . "futu.fata@gmail.com") (:url . "https://github.com/akhramov/org-wild-notifier.el"))]) -(org-web-tools . [(20190115 1752) ((emacs (25 1)) (org (9 0)) (dash (2 12)) (esxml (0 3 4)) (s (1 10 0)) (request (0 3 0))) "Display and capture web content with Org-mode" tar ((:commit . "65c118a3614e75a4fda47248f44f120a20c15738") (:keywords "hypermedia" "outlines" "org" "web") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/org-web-tools"))]) -(org-wc . [(20180610 253) nil "Count words in org mode trees." single ((:commit . "0716c1e8276f6953e139e357e97566e792c8be19") (:authors ("Simon Guest")) (:maintainer "Simon Guest"))]) -(org-vcard . [(20170929 1110) nil "org-mode support for vCard export and import." tar ((:commit . "dbe266b79df4fb31f1766010322bf4e383ce1c03") (:keywords "outlines" "org" "vcard") (:authors ("Alexis" . "flexibeast@gmail.com")) (:maintainer "Alexis" . "flexibeast@gmail.com") (:url . "https://github.com/flexibeast/org-vcard"))]) -(org-variable-pitch . [(20190409 1815) ((emacs (25))) "Minor mode for variable pitch text in org mode." single ((:commit . "1c4b082f6f19c2563dbfbc48b996a915843624bb") (:keywords "faces") (:authors ("GöktuÄŸ Kayaalp" . "self@gkayaalp.com")) (:maintainer "GöktuÄŸ Kayaalp" . "self@gkayaalp.com") (:url . "https://dev.gkayaalp.com/elisp/index.html#ovp"))]) -(org-trello . [(20190304 900) ((request-deferred (0 2 0)) (deferred (0 4 0)) (s (1 11 0)) (dash-functional (2 12 1)) (dash (2 12 1))) "Minor mode to synchronize org-mode buffer and trello board" tar ((:commit . "f02e92f5d7be03289f774875fc4e6877fe7b1aaa"))]) -(org-tree-slide . [(20181226 947) nil "A presentation tool for org-mode" single ((:commit . "603a383117b8c19004baeecfe34837e20568fdbd") (:keywords "convenience" "org-mode" "presentation" "narrowing") (:authors ("Takaaki ISHIKAWA <takaxp at ieee dot org>")) (:maintainer "Takaaki ISHIKAWA <takaxp at ieee dot org>") (:url . "https://github.com/takaxp/org-tree-slide"))]) -(org-transform-tree-table . [(20150110 1433) ((dash (2 10 0)) (s (1 3 0))) "Transform org-mode tree with properties to a table, and the other way around" single ((:commit . "0a9bf07f01bc5fc3b349aff64e83999a8de83b52") (:keywords "org-mode" "table" "org-table" "tree" "csv" "convert") (:authors (nil . "Johan Lindstrom <buzzwordninja not_this_bit@googlemail.com>")) (:maintainer nil . "Johan Lindstrom <buzzwordninja not_this_bit@googlemail.com>") (:url . "https://github.com/jplindstrom/emacs-org-transform-tree-table"))]) -(org-tracktable . [(20161118 1329) ((emacs (24)) (cl-lib (0 5))) "Track your writing progress in an org-table" single ((:commit . "8e0e60a582a034bd66d5efb72d513140b7d4d90a") (:keywords "org" "writing") (:authors ("tty-tourist" . "andreasrasholm@protonmail.com")) (:maintainer "tty-tourist" . "andreasrasholm@protonmail.com") (:url . "https://github.com/tty-tourist/org-tracktable"))]) -(org-toodledo . [(20150301 1113) ((request-deferred (0 2 0)) (emacs (24)) (cl-lib (0 5))) "Toodledo integration for Emacs Org mode" tar ((:commit . "2c91a92bd07ae4a546771b018a6faa0e06399968") (:keywords "outlines" "data") (:authors ("Christopher J. White" . "emacs@grierwhite.com")) (:maintainer "Christopher J. White" . "emacs@grierwhite.com"))]) -(org-timeline . [(20190612 1759) ((dash (2 13 0)) (emacs (24 3))) "Add graphical view of agenda to agenda buffer." single ((:commit . "f628519a12ce3d534b9aa5043b0273880cf29790") (:keywords "calendar") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/org-timeline/"))]) -(org-time-budgets . [(20151111 801) ((alert (0 5 10)) (cl-lib (0 5))) "Define time budgets and display clocked time." single ((:commit . "baa1ce6333157fed3b3799a80e6cf8c73c9e2c18") (:authors ("Arthur Leonard Andersen" . "leoc.git@gmail.com")) (:maintainer "Arthur Leonard Andersen" . "leoc.git@gmail.com"))]) -(org-themis . [(20160122 404) ((cl-lib (0 4))) "Experimental project management mode for org-mode" single ((:commit . "78aadbbe22b1993be5c4accd0d3f91a4e85c9a3c") (:keywords "org-mode" "elisp" "project") (:maintainer "Zachary Elliott" . "contact@zell.io") (:url . "http://github.com/zellio/org-themis"))]) -(org-tfl . [(20170923 1218) ((org (0 16 2)) (cl-lib (0 5)) (emacs (24 1))) "Transport for London meets Orgmode" tar ((:commit . "f0d7d39106a1de5457f5160cddd98ab892b61066") (:keywords "org" "tfl") (:authors ("storax (David Zuber), <zuber [dot] david [at] gmx [dot] de>")) (:maintainer "storax (David Zuber), <zuber [dot] david [at] gmx [dot] de>") (:url . "https://github.com/storax/org-tfl"))]) -(org-table-sticky-header . [(20170409 114) ((org (8 2 10)) (emacs (24 4))) "Sticky header for org-mode tables" single ((:commit . "93dc69efc00ac9fd3cc2ece5100f51df33ec7d8b") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com"))]) -(org-table-comment . [(20120209 1851) nil "Org table comment modes." single ((:commit . "33b9966c33ecbc3e27cca67c2f2cdea04364d74e") (:keywords "org-mode" "orgtbl") (:authors ("Matthew L. Fidler <matthew dot fidler at gmail . com>")) (:maintainer "Matthew L. Fidler") (:url . "http://github.com/mlf176f2/org-table-comment.el"))]) -(org-sync-snippets . [(20190318 1744) ((org (8 3 5)) (emacs (24 3)) (f (0 17 3))) "Export snippets to org-mode and vice versa" single ((:commit . "50cefe5a37196ed1af3d330d6871c3b37fa90d41") (:keywords "snippet" "org-mode" "yasnippet" "tools") (:authors ("Adrien Brochard")) (:maintainer "Adrien Brochard") (:url . "https://github.com/abrochard/org-sync-snippets"))]) -(org-sync . [(20181204 23) ((cl-lib (0 5)) (org (8 2)) (emacs (24))) "Synchronize Org documents with External Issue Trackers" tar ((:commit . "e34a385fa9e658c8341a0a6e6bc3472d4d536bb8") (:keywords "org" "synchronization" "issue tracking" "github" "redmine") (:authors ("Aurelien Aptel <aurelien dot aptel at gmail dot com>")) (:maintainer "Andrei Beliankou" . "arbox@yandex.ru") (:url . "https://github.com/arbox/org-sync"))]) -(org-super-agenda . [(20190315 621) ((emacs (25 1)) (s (1 10 0)) (dash (2 13)) (org (9 0)) (ht (2 2))) "Supercharge your agenda" tar ((:commit . "8934ff10afed5d49c4ba3c9df9550796f727fbc2") (:keywords "hypermedia" "outlines" "org" "agenda") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/org-super-agenda"))]) -(org-sticky-header . [(20190406 2313) ((emacs (24 4)) (org (8 3 5))) "Show off-screen Org heading at top of window" single ((:commit . "32c13a56a78a4de239010031fea4b9583bac2512") (:keywords "hypermedia" "outlines" "org") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/org-sticky-header"))]) -(org-static-blog . [(20190528 457) ((emacs (24 3))) "a simple org-mode based static blog generator" single ((:commit . "2d12090a645b6b13b9fb5a188b0ae254429d84ab") (:authors ("Bastian Bechtold")) (:maintainer "Bastian Bechtold") (:url . "https://github.com/bastibe/org-static-blog"))]) -(org-starter . [(20190615 215) ((emacs (25 1)) (dash (2 12)) (dash-functional (1 2 0))) "A basic configuration framework for org mode" tar ((:commit . "c130f09bf60f74f313766a0748f8150090d88795") (:authors ("Akira Komamura" . "akira.komamura@gmail.com")) (:maintainer "Akira Komamura" . "akira.komamura@gmail.com") (:url . "https://github.com/akirak/org-starter"))]) -(org-sql . [(20190530 259) ((emacs (25)) (dash (2 15))) "Org-Mode SQL converter" single ((:commit . "63035d4df5b67ebf7a37b2e006ddc5299cd3eb90") (:keywords "org-mode" "data") (:authors ("Nathan Dwarshuis" . "natedwarshuis@gmail.com")) (:maintainer "Nathan Dwarshuis" . "natedwarshuis@gmail.com") (:url . "https://github.com/ndwarshuis/org-sql"))]) -(org-snooze . [(20181229 1424) ((emacs (24 4))) "Snooze your code, doc and feed" single ((:commit . "8799adc14a20f3489063d279ff69312de3180bf9") (:keywords "extensions") (:authors ("Bill Xue")) (:maintainer "Bill Xue") (:url . "https://github.com/xueeinstein/org-snooze.el"))]) -(org-send-ebook . [(20181016 800) ((emacs (25)) (cl-lib (0 5)) (seq (2 20))) "Send org link file to ebook reader." single ((:commit . "b4913a709f9206115c3e3ea73e217029cc0fb3de") (:keywords "org" "link" "ebook" "kindle" "epub" "mobi") (:url . "https://github.com/stardiviner/org-send-ebook"))]) -(org-seek . [(20161217 502) ((emacs (24 3)) (ag (0 48))) "Searching Org-mode files with search tools." single ((:commit . "1f51e6634e3b9a6a29d335d0d14370a6ffef2265") (:keywords "org" "search" "ag" "pt") (:authors ("stardiviner" . "numbchild@gmail.com")) (:maintainer "stardiviner" . "numbchild@gmail.com") (:url . "https://github.com/stardiviner/org-seek.el"))]) -(org-rtm . [(20160214 1236) ((rtm (0 1))) "Simple import/export from rememberthemilk to org-mode" single ((:commit . "adc42ad1fbe92ab447ccc9553780f4456f2508d2") (:keywords "outlines" "data") (:authors ("Philipp Middendorf" . "pmidden@secure.mailbox.org")) (:maintainer "Philipp Middendorf" . "pmidden@secure.mailbox.org") (:url . "https://github.com/pmiddend/org-rtm"))]) -(org-rich-yank . [(20181120 1354) ((emacs (24 4))) "paste with org-mode markup and link to source" single ((:commit . "d2f350c5296cf05d6c84b02762ba44f09a02b4e3") (:keywords "convenience" "hypermedia" "org") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org") (:url . "https://github.com/unhammer/org-rich-yank"))]) -(org-review . [(20160907 537) nil "schedule reviews for Org entries" single ((:commit . "058e75b7f28d2ad2390290fe17a63d98ef5ab763") (:keywords "org" "review") (:authors ("Alan Schmitt" . "alan.schmitt@polytechnique.org")) (:maintainer "Alan Schmitt" . "alan.schmitt@polytechnique.org") (:url . "https://github.com/brabalan/org-review"))]) -(org-reverse-datetree . [(20190527 1440) ((emacs (26 1)) (dash (2 12))) "Create reverse date trees in org-mode" single ((:commit . "4ad43bb2895c2ec99e6b2338aceb4c18387f03b4") (:keywords "outlines") (:authors ("Akira Komamura" . "akira.komamura@gmail.com")) (:maintainer "Akira Komamura" . "akira.komamura@gmail.com") (:url . "https://github.com/akirak/org-reverse-datetree"))]) -(org-repo-todo . [(20171228 119) nil "Simple repository todo management with org-mode" single ((:commit . "f73ebd91399c5760ad52c6ad9033de1066042003") (:keywords "convenience") (:authors ("justin talbott" . "justin@waymondo.com")) (:maintainer "justin talbott" . "justin@waymondo.com") (:url . "https://github.com/waymondo/org-repo-todo"))]) -(org-ref . [(20190607 25) ((dash (2 11 0)) (htmlize (1 51)) (helm (1 5 5)) (helm-bibtex (2 0 0)) (ivy (0 8 0)) (hydra (0 13 2)) (key-chord (0)) (s (1 10 0)) (f (0 18 0)) (emacs (24 4)) (pdf-tools (0 7))) "citations, cross-references and bibliographies in org-mode" tar ((:commit . "9ce113f8e702816a1dc1e380f9a050f24c64786c") (:keywords "org-mode" "cite" "ref" "label") (:authors ("John Kitchin" . "jkitchin@andrew.cmu.edu")) (:maintainer "John Kitchin" . "jkitchin@andrew.cmu.edu") (:url . "https://github.com/jkitchin/org-ref"))]) -(org-redmine . [(20160711 1114) nil "Redmine tools using Emacs OrgMode" single ((:commit . "e77d013bc3784947c46a5c53f03cd7d3c68552fc") (:keywords "redmine" "org") (:authors ("Wataru MIYAGUNI" . "gonngo@gmail.com")) (:maintainer "Wataru MIYAGUNI" . "gonngo@gmail.com") (:url . "https://github.com/gongo/org-redmine"))]) -(org-recur . [(20190304 1035) ((emacs (24)) (org (9 0))) "Recurring org-mode tasks." single ((:commit . "2a2927a5f217cab0232f0d8f26f9493ff30d26e6") (:authors ("Marcin Swieczkowski" . "marcin.swieczkowski@gmail.com")) (:maintainer "Marcin Swieczkowski" . "marcin.swieczkowski@gmail.com") (:url . "https://github.com/m-cat/org-recur"))]) -(org-recent-headings . [(20190115 1540) ((emacs (25 1)) (org (9 0 5)) (dash (2 13 0)) (frecency (0 1))) "Jump to recently used Org headings" single ((:commit . "03b4ad3683d086516737f4aaea32709c1ecd0813") (:keywords "hypermedia" "outlines" "org") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/org-recent-headings"))]) -(org-readme . [(20151204 1217) ((http-post-simple (1 0)) (yaoddmuse (0 1 1)) (header2 (21 0)) (lib-requires (21 0)) (cl-lib (0 5))) "Integrates Readme.org and Commentary/Change-logs." tar ((:commit . "4cb9f768d282a2835b4510b6504ff9ede487007d") (:keywords "header2" "readme.org" "emacswiki" "git") (:authors ("Matthew L. Fidler")) (:maintainer "Matthew L. Fidler") (:url . "https://github.com/mlf176f2/org-readme"))]) -(org-re-reveal-ref . [(20190301 1504) ((emacs (24 4)) (org-ref (1 1 1)) (org-re-reveal (0 9 3))) "Citations and bibliography for org-re-reveal" tar ((:commit . "81c0621e86c92d5abc441f2e5cad876ffc4679b2") (:keywords "hypermedia" "tools" "slideshow" "presentation" "bibliography") (:authors ("Jens Lechtenbörger")) (:maintainer "Jens Lechtenbörger") (:url . "https://gitlab.com/oer/org-re-reveal-ref"))]) -(org-re-reveal . [(20190518 700) ((emacs (24 4)) (org (8 3)) (htmlize (1 34))) "Org export to reveal.js presentations" tar ((:commit . "9d4a1bee112db8007c0e0a1fcb6be725f787a79a") (:keywords "tools" "outlines" "hypermedia" "slideshow" "presentation" "oer") (:url . "https://gitlab.com/oer/org-re-reveal"))]) -(org-randomnote . [(20190403 1633) ((f (0 19 0)) (dash (2 12 0)) (org (0))) "Find a random note in your Org-Mode files" single ((:commit . "f35a9d948751ad409aa057bfb68f1d008fdf9442") (:authors ("Michael Fogleman" . "michaelwfogleman@gmail.com")) (:maintainer "Michael Fogleman" . "michaelwfogleman@gmail.com") (:url . "http://github.com/mwfogleman/org-randomnote"))]) -(org-random-todo . [(20190214 2057) ((emacs (24 3)) (alert (1 3))) "show a random TODO (with alert) every so often" single ((:commit . "4f7677af740e8f3f7cfaf630ae2e594a125af760") (:keywords "org" "todo" "notification" "calendar") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org") (:url . "https://github.com/unhammer/org-random-todo"))]) -(org-radiobutton . [(20180612 1028) ((dash (2 13 0)) (emacs (24))) "Radiobutton for org-mode lists." single ((:commit . "4182aafbe5ae1bdfb0b07efa435bdba8bbd7199d") (:keywords "outlines") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/org-radiobutton"))]) -(org-protocol-jekyll . [(20170328 1639) ((cl-lib (0 5))) "Jekyll's handler for org-protocol" single ((:commit . "dec064a42d6dfe81dfde7ba59ece5ca103ac6334") (:authors ("Vladimir S. Ivanov" . "ivvl82@gmail.com")) (:maintainer "Vladimir S. Ivanov" . "ivvl82@gmail.com"))]) -(org-projectile-helm . [(20180601 1822) ((org-projectile (1 0 0)) (helm (2 3 1)) (emacs (25))) "helm functions for org-projectile" single ((:commit . "de37d0094791ab1146276904f3a37eba699e0b60") (:keywords "org" "projectile" "todo" "helm" "outlines") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:url . "https://github.com/IvanMalison/org-projectile"))]) -(org-projectile . [(20190130 1439) ((projectile (0 11 0)) (dash (2 10 0)) (emacs (24)) (s (1 9 0)) (org-category-capture (0 0 0))) "Repository todo management for org-mode" single ((:commit . "de37d0094791ab1146276904f3a37eba699e0b60") (:keywords "org-mode" "projectile" "todo" "tools" "outlines") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:url . "https://github.com/IvanMalison/org-projectile"))]) -(org-preview-html . [(20180625 619) ((org (8 0)) (emacs (24 4))) "automatically use eww to preview the current org file on save" single ((:commit . "8ba7ecd7ac624f33b3e2395f477bbff4f1ec4efe") (:keywords "convenience" "eww" "org") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/org-preview-html"))]) -(org-pretty-tags . [(20190527 855) ((emacs (25))) "Surrogates for tags" single ((:commit . "9cc14f19bffd6efc733f6b1ab43198659c61a7ef") (:keywords "reading" "outlines") (:authors ("Marco Wahl" . "marcowahlsoft@gmail.com")) (:maintainer "Marco Wahl" . "marcowahlsoft@gmail.com") (:url . "https://gitlab.com/marcowahl/org-pretty-tags"))]) -(org-present-remote . [(20181001 2141) ((org-present (9)) (elnode (0 9)) (emacs (24))) "A web-based remote control for org-present" single ((:commit . "d0f96dd57c152e7aa311ecbe03e7be287fd5979f") (:keywords "comm" "docs") (:authors ("Duncan Bayne" . "duncan@bayne.id.au")) (:maintainer "Duncan Bayne" . "duncan@bayne.id.au") (:url . "https://gitlab.com/duncan-bayne/org-present-remote"))]) -(org-present . [(20180303 2330) ((org (7))) "Minimalist presentation minor-mode for Emacs org-mode." single ((:commit . "d13acd70eff6a1608bc991920232146a0de76b21") (:authors ("Ric Lister")) (:maintainer "Ric Lister") (:url . "https://github.com/rlister/org-present"))]) -(org-pomodoro . [(20190530 1445) ((alert (0 5 10)) (cl-lib (0 5))) "Pomodoro implementation for org-mode." tar ((:commit . "aa07c11318f91219336197e62c47bc7a3d090479") (:authors ("Arthur Leonard Andersen" . "leoc.git@gmail.com")) (:maintainer "Arthur Leonard Andersen" . "leoc.git@gmail.com") (:url . "https://github.com/lolownia/org-pomodoro"))]) -(org-pivotal . [(20181216 1436) ((a (0 1 1)) (dash (2 14 1)) (dash-functional (1 2 0)) (emacs (26 1)) (request (0 3 0))) "Sync Pivotal Tracker to org buffer" tar ((:commit . "84b026741a3f06ac4979b970a04f5c9bc38b8be1") (:authors ("Huy Duong" . "qhuyduong@hotmail.com")) (:maintainer "Huy Duong" . "qhuyduong@hotmail.com") (:url . "https://github.com/org-pivotal/org-pivotal"))]) -(org-pdfview . [(20180225 1006) ((org (8 2 10)) (pdf-tools (0 80))) "Support for links to documents in pdfview mode" single ((:commit . "09ef4bf8ff8319c1ac78046c7e6b89f6a0beb82c") (:keywords "org" "pdf-view" "pdf-tools") (:authors ("Markus Hauck" . "markus1189@gmail.com")) (:maintainer "Markus Hauck" . "markus1189@gmail.com"))]) -(org-password-manager . [(20180227 1810) ((org (8 2 10)) (s (1 9 0)) (dash (2 13 0))) "Password manager for Org Mode." single ((:commit . "4b30a36e71182553a02e4dd415369290d98ec03a") (:keywords "password") (:authors ("Leandro Facchinetti" . "me@leafac.com")) (:maintainer "Leandro Facchinetti" . "me@leafac.com") (:url . "https://git.leafac.com/org-password-manager"))]) -(org-parser . [(20190207 521) ((emacs (25 1)) (dash (2 12 0)) (ht (2 1))) "parse org files into structured datatypes." single ((:commit . "8610aef8dc878fc001975780bcbcbab30dc929b7") (:keywords "files" "outlines" "tools") (:url . "https://bitbucket.org/zck/org-parser.el"))]) -(org-page . [(20170807 224) ((ht (1 5)) (simple-httpd (1 4 6)) (mustache (0 22)) (htmlize (1 47)) (org (8 0)) (dash (2 0 0)) (cl-lib (0 5)) (git (0 1 1))) "a static site generator based on org mode" tar ((:commit . "d539731d7a38899ef034b905f834f383ed102881"))]) -(org-outlook . [(20160705 1338) nil "Outlook org" tar ((:commit . "ec32d8d9d8ffd17e6de4de0b52fc3f5ad9b4cc0d") (:keywords "org-outlook") (:authors ("Matthew L. Fidler")) (:maintainer "Matthew L. Fidler") (:url . "https://github.com/mlf176f2/org-outlook.el"))]) -(org-outline-numbering . [(20180705 1501) ((emacs (24)) (org (8 3)) (cl-lib (0 6)) (ov (1 0 6))) "Show outline numbering as overlays in org-mode" single ((:commit . "b95b6a7ed9289637cb512232470633b330ca9713") (:keywords "wp" "convenience") (:authors ("Anders Johansson")) (:maintainer "Anders Johansson") (:url . "https://gitlab.com/andersjohansson/org-outline-numbering"))]) -(org-onenote . [(20171008 500) ((oauth2 (0 11)) (request (0 2 0)) (org (8 2 10))) "export org-mode document to onenote." single ((:commit . "5ce5cf4edb143180e0b185ac26826d39ae5bc929") (:keywords "tools" "docs" "org-mode" "onenote") (:authors ("Frei Zhang" . "ifree0@gmail.com")) (:maintainer "Frei Zhang" . "ifree0@gmail.com") (:url . "https://github.com/ifree/org-onenote"))]) -(org-octopress . [(20170821 415) ((org (9 0)) (orglue (0 1)) (ctable (0 1 1))) "Compose octopress articles using org-mode." tar ((:commit . "38598ef98d04076a8eb78d549907ddfde8d3a652") (:keywords "org" "jekyll" "octopress" "blog") (:authors ("Yoshinari Nomura" . "nom@quickhack.net")) (:maintainer "Yoshinari Nomura" . "nom@quickhack.net"))]) -(org-noter . [(20190502 1425) ((emacs (24 4)) (cl-lib (0 6)) (org (9 0))) "A synchronized, Org-mode, document annotator" single ((:commit . "920798e2a977ca74b77cf728ee40bb48450f941b") (:keywords "lisp" "pdf" "interleave" "annotate" "external" "sync" "notes" "documents" "org-mode") (:authors (nil . "Gonçalo Santos (aka. weirdNox@GitHub)")) (:maintainer nil . "Gonçalo Santos (aka. weirdNox@GitHub)") (:url . "https://github.com/weirdNox/org-noter"))]) -(org-notebook . [(20170322 452) ((emacs (24)) (org (8)) (cl-lib (0 5))) "Ease the use of org-mode as a notebook" single ((:commit . "86042d866bf441e2c9bb51f995e5994141b78517") (:keywords "convenience" "tools") (:authors ("Paul Elder" . "paul.elder@amanokami.net")) (:maintainer "Paul Elder" . "paul.elder@amanokami.net"))]) -(org-multiple-keymap . [(20150329 106) ((org (8 2 4)) (emacs (24)) (cl-lib (0 5))) "Set keymap to elements, such as timestamp and priority." single ((:commit . "8ebc532df7f0dd6e6c3aa7c380a51d4166c668e8") (:keywords "convenience" "org-mode") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/org-multiple-keymap.el"))]) -(org-msg . [(20181111 1815) ((emacs (24 4)) (htmlize (1 54))) "Org mode to send and reply to email in HTML." single ((:commit . "9c9ae7b37dc1404ff6d4de4b543ae01dd1562914") (:keywords "extensions" "mail") (:authors ("Jérémy Compostella" . "jeremy.compostella@gmail.com")) (:maintainer "Jérémy Compostella" . "jeremy.compostella@gmail.com") (:url . "https://github.com/jeremy-compostella/org-msg"))]) -(org-mru-clock . [(20190610 2005) ((emacs (24 3))) "clock in/out of tasks with completion and persistent history" single ((:commit . "1547191254f6fc58b62864d0224356e72bd7d933") (:keywords "convenience" "calendar") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org") (:url . "https://github.com/unhammer/org-mru-clock"))]) -(org-mobile-sync . [(20180606 524) ((emacs (24 3 50)) (org (8 0))) "automatically sync org-mobile on changes" single ((:commit . "06764b943a528827df1e2acc6bc7806cc2c1351f") (:keywords "org-mode" "org" "mobile" "sync" "todo") (:authors ("steckerhalter")) (:maintainer "steckerhalter") (:url . "https://framagit.org/steckerhalter/org-mobile-sync"))]) -(org-mind-map . [(20180826 2340) ((emacs (24)) (dash (1 8 0)) (org (8 2 10))) "Creates a directed graph from org-mode files" single ((:commit . "16a8aac5462c01c4e7b6b7915381fde42fd3caf6") (:keywords "orgmode" "extensions" "graphviz" "dot") (:authors ("Ted Wiles" . "theodore.wiles@gmail.com")) (:maintainer "Ted Wiles" . "theodore.wiles@gmail.com") (:url . "https://github.com/theodorewiles/org-mind-map"))]) -(org-mime . [(20190513 1337) ((emacs (24 4)) (cl-lib (0 5))) "org html export for text/html MIME emails" single ((:commit . "95c33ec35339477f24daa1a43cf6f155e2a64e85") (:keywords "mime" "mail" "email" "html") (:authors ("Eric Schulte")) (:maintainer "Chen Bin (redguardtoo)") (:url . "http://github.com/org-mime/org-mime"))]) -(org-make-toc . [(20190104 512) ((emacs (25 1)) (dash (2 12)) (s (1 10 0)) (org (9 0))) "Automatic tables of contents for Org files" single ((:commit . "9adeaf9da23fd3f7600821526f7e41f4ed17dd4a") (:keywords "org" "convenience") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/org-make-toc"))]) -(org-listcruncher . [(20180815 603) ((cl-lib (0 5)) (seq (2 3)) (emacs (24 4))) "Parse Org mode list contents into table" single ((:commit . "50bd8c22cde3b9b091889861e44a5043b53556f7") (:keywords "convenience") (:authors ("Derek Feichtinger" . "dfeich@gmail.com")) (:maintainer "Derek Feichtinger" . "dfeich@gmail.com") (:url . "https://github.com/dfeich/org-listcruncher"))]) -(org-linkany . [(20160207 411) ((log4e (0 2 0)) (yaxception (0 1))) "Insert link using anything.el/helm.el on org-mode" single ((:commit . "8cfe2f1a46e6654a79f56505349d1396263cecb3") (:keywords "org" "completion") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/org-linkany"))]) -(org-link-travis . [(20140405 2327) ((org (7))) "Insert/Export the link of Travis CI on org-mode" single ((:commit . "596615ad8373d9090bd4138da683524f0ad0bda5") (:keywords "org") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/org-link-travis"))]) -(org-link-minor-mode . [(20170805 1852) ((org (8))) "Enable org-mode links in non-org modes" single ((:commit . "7b92df60f3fee7f609d649d80ef243b45771ebea") (:authors ("Sean O'Halpin <sean dot ohalpin at gmail dot com>")) (:maintainer "Sean O'Halpin <sean dot ohalpin at gmail dot com>") (:url . "https://github.com/seanohalpin/org-link-minor-mode"))]) -(org-kindle . [(20190315 439) ((emacs (25)) (cl-lib (0 5)) (seq (2 20))) "Send org link file to ebook reader." single ((:commit . "612a2894bbbff8a6cf54709d591fee86005755de") (:keywords "org" "link" "ebook" "kindle" "epub" "mobi") (:url . "https://github.com/stardiviner/org-kindle"))]) -(org-kanban . [(20190528 507) ((s (0)) (dash (2 13 0)) (emacs (24 4)) (org (9 1))) "kanban dynamic block for org-mode." single ((:commit . "dcf5e8c0a2d82bc4101c03ba21a2d38b406ea00b") (:keywords "org-mode" "org" "kanban" "tools") (:authors ("Christian Köstlin" . "christian.koestlin@gmail.com")) (:maintainer "Christian Köstlin" . "christian.koestlin@gmail.com") (:url . "http://github.com/gizmomogwai/org-kanban"))]) -(org-journal-list . [(20190221 2052) ((emacs (25))) "Org mode Journal List" single ((:commit . "2b26d00181bb49bff64b31ad020490acd1b6ae02") (:authors ("Huy Tran" . "huytd189@gmail.com")) (:maintainer "Huy Tran" . "huytd189@gmail.com") (:url . "https://github.com/huytd/org-journal-list"))]) -(org-journal . [(20190611 1912) ((emacs (25 1))) "a simple org-mode based journaling mode" single ((:commit . "159794a3f5f28eeab8f87a0378d81d0b2d2cb6fc") (:authors ("Bastian Bechtold")) (:maintainer "Bastian Bechtold") (:url . "http://github.com/bastibe/org-journal"))]) -(org-jira . [(20190502 1337) ((emacs (24 5)) (cl-lib (0 5)) (request (0 2 0)) (s (0 0 0)) (dash (2 14 1))) "Syncing between Jira and Org-mode." tar ((:commit . "883501bf57ee99d9add9c6eac47c79d372c0f61e") (:keywords "ahungry" "jira" "org" "bug" "tracker") (:maintainer "Matthew Carter" . "m@ahungry.com") (:url . "https://github.com/ahungry/org-jira"))]) -(org-iv . [(20171001 1022) ((impatient-mode (1 0 0)) (org (8 0)) (cl-lib (0 5))) "a tool used to view html (in browser) generated by org-file once the org-file changes" tar ((:commit . "7f2bb1b32647655fd9d6684f6f09dcc66b61b0cd"))]) -(org-index . [(20190330 735) ((emacs (24 4))) "A personal adaptive index for org" single ((:commit . "4b6f5f743bcdba14e2c2fd71a32caa21b11ef739") (:authors ("Marc Ihm" . "org-index@2484.de")) (:maintainer "Marc Ihm" . "org-index@2484.de") (:url . "https://github.com/marcIhm/org-index"))]) -(org-if . [(20150920 1513) nil "Interactive Fiction Authoring System for Org-Mode." tar ((:commit . "fab602cc1bbee7a4e99c0083e129219d3f9ed2e8"))]) -(org-grep . [(20151202 1229) ((cl-lib (0 5))) "Kind of M-x rgrep adapted for Org mode." single ((:commit . "5bdd04c0f53b8a3d656f36ea17bba3df7f0cb684") (:authors ("François Pinard" . "pinard@iro.umontreal.ca")) (:maintainer "François Pinard" . "pinard@iro.umontreal.ca") (:url . "https://github.com/pinard/org-grep"))]) -(org-gnome . [(20150614 1457) ((alert (1 2)) (telepathy (0 1)) (gnome-calendar (0 1))) "Orgmode integration with the GNOME desktop" single ((:commit . "122e14cf6f8104150a65246a9a7c10e1d7939862") (:keywords "org" "gnome") (:authors ("Nicolas Petton" . "petton.nicolas@gmail.com")) (:maintainer "Nicolas Petton" . "petton.nicolas@gmail.com"))]) -(org-gcal . [(20190401 1741) ((request-deferred (0 2 0)) (alert (1 1)) (emacs (24)) (cl-lib (0 5)) (org (8 2 4))) "Org sync with Google Calendar" single ((:commit . "3874040bd86050db60b982bb62acafb69b6a4d9b") (:keywords "convenience") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "Raimon Grau" . "raimonster@gmail.com") (:url . "https://github.com/kidd/org-gcal.el"))]) -(org-fancy-priorities . [(20180328 2331) nil "Display org priorities as custom strings" single ((:commit . "819bb993b71e7253cefef7047306ab4e0f9d0a86") (:keywords "convenience" "faces" "outlines") (:authors ("Harry Bournis" . "harrybournis@gmail.com")) (:maintainer "Harry Bournis" . "harrybournis@gmail.com") (:url . "https://github.com/harrybournis/org-fancy-priorities"))]) -(org-evil . [(20180620 1517) ((dash (2 13 0)) (evil (0)) (monitor (0)) (org (0))) "Evil extensions for Org." tar ((:commit . "3b4620edc606412ef75c0b5aa637af22486eb126") (:keywords "convenience" "evil" "org") (:authors ("Ben Moon" . "software@guiltydolphin.com")) (:maintainer "Ben Moon" . "software@guiltydolphin.com") (:url . "https://github.com/guiltydolphin/org-evil"))]) -(org-emms . [(20181010 1114) ((emacs (24))) "Play multimedia files from org-mode" single ((:commit . "07a8917f3d628c32e5de1dbd118ac08203772533") (:keywords "multimedia") (:authors ("Jonathan Gregory <jgrg at autistici dot org>")) (:maintainer "Jonathan Gregory <jgrg at autistici dot org>") (:url . "https://gitlab.com/jagrg/org-emms"))]) -(org-elisp-help . [(20161122 55) ((cl-lib (0 5)) (org (9 0))) "org links to emacs-lisp documentation" single ((:commit . "3e33ab1a2933dd7f2782ef91d667a37f12d633ab") (:keywords "org" "remember" "lisp") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/org-elisp-help"))]) -(org-ehtml . [(20150506 2358) ((web-server (20140109 2200)) (emacs (24 3))) "Export Org-mode files as editable web pages" tar ((:commit . "9df85de1a0fe1e7b2d6c000777c1a0c0217f92d0"))]) -(org-edit-latex . [(20170908 1522) ((emacs (24 4)) (auctex (11 90))) "Edit embedded LaTeX in a dedicated buffer" single ((:commit . "1f228310ef2f3f2959a527f6d99e42ce977384c8") (:keywords "org" "latex") (:authors ("James Wong" . "jianwang.academic@gmail.com")) (:maintainer "James Wong" . "jianwang.academic@gmail.com") (:url . "https://github.com/et2010/org-edit-latex"))]) -(org-easy-img-insert . [(20160915 2008) ((emacs (24 4))) "An easier way to add images from the web in org mode" single ((:commit . "9f8aaa7f68ff1f0d8d7b1e9b618abb15002f971e") (:keywords "convenience" "hypermedia" "files") (:authors ("Tashrif Sanil" . "tashrifsanil@kloke-source.com")) (:maintainer "Tashrif Sanil" . "tashrifsanil@kloke-source.com") (:url . "https://github.com/tashrifsanil/org-easy-img-insert"))]) -(org-dropbox . [(20150114 509) ((dash (2 2)) (names (20150000)) (emacs (24))) "move Dropbox notes from phone into org-mode datetree" single ((:commit . "75dab6d6f0438a7a8a18ccf3a5d55f50bf531f6e") (:keywords "dropbox" "android" "notes" "org-mode") (:authors ("Heikki Lehvaslaiho" . "heikki.lehvaslaiho@gmail.com")) (:maintainer "Heikki Lehvaslaiho" . "heikki.lehvaslaiho@gmail.com") (:url . "https://github.com/heikkil/org-dropbox"))]) -(org-drill-table . [(20180115 1009) ((s (1 7 0)) (dash (2 2 0)) (cl-lib (0 3)) (org (8 2)) (emacs (24 1))) "Generate drill cards from org tables" single ((:commit . "2729aaa42c1e2720d9bf7bcc125e92dcf48b7f7d") (:authors ("Chris Barrett" . "chris.d.barrett@me.com")) (:maintainer "Chris Barrett" . "chris.d.barrett@me.com"))]) -(org-dp . [(20180311 923) ((cl-lib (0 5))) "Declarative Local Programming with Org Elements" tar ((:commit . "e720f1c155a795a5b65a04790ad195c413449716") (:authors ("Thorsten Jolitz <tjolitz AT gmail DOT com>")) (:maintainer "Thorsten Jolitz <tjolitz AT gmail DOT com>") (:url . "https://github.com/tj64/org-dp"))]) -(org-download . [(20190604 1340) ((async (1 2))) "Image drag-and-drop for Emacs org-mode" single ((:commit . "ac72bf8fce3e855da60687027b6b8601cf1de480") (:keywords "images" "screenshots" "download") (:authors ("Oleh Krehel")) (:maintainer "Oleh Krehel") (:url . "https://github.com/abo-abo/org-download"))]) -(org-dotemacs . [(20190116 2155) ((org (7 9 3)) (cl-lib (0 5))) "Store your emacs config as an org file, and choose which bits to load." single ((:commit . "5f504f36af6bcb9dbe9869c7ed54851d3db742e7") (:keywords "local") (:authors ("Joe Bloggs" . "vapniks@yahoo.com")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "https://github.com/vapniks/org-dotemacs"))]) -(org-doing . [(20161017 1620) nil "Keep track of what you're doing" tar ((:commit . "07ddbfc238cba31e4990c9b52e9a2757b39111da") (:keywords "tools" "org") (:authors ("Rudolf Olah")) (:maintainer "Rudolf Olah") (:url . "https://github.com/omouse/org-doing"))]) -(org-dashboard . [(20171223 1924) ((cl-lib (0 5))) "Visually summarize progress in org files" single ((:commit . "02c0699771d199075a286e4502340ca6e7c9e831") (:keywords "outlines" "calendar") (:authors ("Massimiliano Mirra" . "hyperstruct@gmail.com")) (:maintainer "Massimiliano Mirra" . "hyperstruct@gmail.com") (:url . "http://github.com/bard/org-dashboard"))]) -(org-d20 . [(20190415 2010) ((s (1 11 0)) (seq (2 19)) (dash (2 12 0)) (emacs (24))) "minor mode for d20 tabletop roleplaying games" single ((:commit . "e0fb2c04a55c55cbf59a85a0b2e23ef18370ca61") (:keywords "outlines" "games") (:authors ("Sean Whitton" . "spwhitton@spwhitton.name")) (:maintainer "Sean Whitton" . "spwhitton@spwhitton.name") (:url . "https://spwhitton.name/tech/code/org-d20/"))]) -(org-cua-dwim . [(20120203 534) nil "Org-mode and Cua mode compatibility layer" single ((:commit . "a55d6c7009fc0b22f1110c07de629acc955c85e4") (:keywords "org-mode" "cua-mode") (:authors ("Matthew L. Fidler")) (:maintainer "Matthew L. Fidler"))]) -(org-context . [(20170107 1337) nil "Contextual capture and agenda commands for Org-mode" single ((:commit . "a3b4a4ce6d15e3c2d45eb5dcb78bea81913f3e21") (:keywords "org" "capture" "agenda" "convenience") (:authors ("Sylvain Rousseau <thisirs at gmail dot com>")) (:maintainer "Sylvain Rousseau <thisirs at gmail dot com>") (:url . "https://github.com/thisirs/org-context"))]) -(org-commentary . [(20160802 637) ((dash (2 0)) (emacs (24 4)) (org (8 0))) "generate or update conventional library headers using Org mode files" tar ((:commit . "821ccb994811359c42f4e3d459e0e88849d42b75") (:keywords "convenience" "docs" "tools") (:authors ("Sergei Maximov" . "s.b.maximov@gmail.com")) (:maintainer "Sergei Maximov" . "s.b.maximov@gmail.com") (:url . "https://github.com/smaximov/org-commentary"))]) -(org-clock-today . [(20161014 920) ((emacs (25))) "Show the total clocked time of the current day in the mode line" single ((:commit . "02b8fd541a01040405a9a1400c46dcb68b7c2a3a") (:authors ("Tijs Mallaerts" . "tijs.mallaerts@gmail.com")) (:maintainer "Tijs Mallaerts" . "tijs.mallaerts@gmail.com"))]) -(org-clock-split . [(20180909 2047) ((emacs (24))) "Split clock entries" single ((:commit . "b2f1497b62e7f4a767be02e249e4ac95d4f8f21c") (:keywords "calendar") (:authors ("Justin Taft <https://github.com/justintaft>")) (:maintainer "Justin Taft <https://github.com/justintaft>") (:url . "https://github.com/justintaft/emacs-org-clock-split"))]) -(org-clock-csv . [(20190418 1505) ((org (8 3)) (s (1 0))) "Export `org-mode' clock entries to CSV format." single ((:commit . "e2fbaa1ad1a1be40fceecde603a600b292b76acc") (:keywords "calendar" "data" "org") (:authors ("Aaron Jacobs" . "atheriel@gmail.com")) (:maintainer "Aaron Jacobs" . "atheriel@gmail.com") (:url . "https://github.com/atheriel/org-clock-csv"))]) -(org-clock-convenience . [(20190130 1610) ((cl-lib (0 5)) (org (8)) (emacs (24 3))) "convenience functions for org time tracking" single ((:commit . "7d14699a15ad6c5b9a63246a11188c77f8800e94") (:keywords "org") (:authors ("Derek Feichtinger <dfeich.gmail.com>")) (:maintainer "Derek Feichtinger <dfeich.gmail.com>") (:url . "https://github.com/dfeich/org-clock-convenience"))]) -(org-cliplink . [(20190608 2134) ((emacs (24 4))) "insert org-mode links from the clipboard" tar ((:commit . "82402cae7e118d67de7328417fd018a18f95fac2") (:authors ("Alexey Kutepov" . "reximkut@gmail.com")) (:maintainer "Alexey Kutepov" . "reximkut@gmail.com") (:url . "http://github.com/rexim/org-cliplink"))]) -(org-chef . [(20190608 1559) ((org (0)) (emacs (24))) "Cookbook and recipe management with org-mode." tar ((:commit . "8f1a1845542925e4ecafe8d68ee752b404ecc51c") (:keywords "convenience" "abbrev" "outlines" "org" "food" "recipes" "cooking") (:authors ("Calvin Beck" . "hobbes@ualberta.ca")) (:maintainer "Calvin Beck" . "hobbes@ualberta.ca") (:url . "https://github.com/Chobbes/org-chef"))]) -(org-category-capture . [(20180601 242) ((org (9 0 0)) (emacs (24))) "Contextualy capture of org-mode TODOs." single ((:commit . "de37d0094791ab1146276904f3a37eba699e0b60") (:keywords "org-mode" "todo" "tools" "outlines") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:url . "https://github.com/IvanMalison/org-projectile"))]) -(org-capture-pop-frame . [(20160518 1008) ((emacs (24 4))) "Run org-capture in a new pop frame" single ((:commit . "b16fd712de62cf0d1f9befd03be6ab5983cb3301") (:authors ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/org-capture-pop-frame.git"))]) -(org-caldav . [(20180403 2036) ((org (7))) "Sync org files with external calendar through CalDAV" single ((:commit . "8d3492c27a09f437d2d94f2736c56d7652e87aa0") (:keywords "calendar" "caldav") (:authors ("David Engster" . "deng@randomsample.de")) (:maintainer "David Engster" . "deng@randomsample.de"))]) -(org-bullets . [(20180208 2343) nil "Show bullets in org-mode as UTF-8 characters" single ((:commit . "b56f2e3812626f2c4ac1686073d102c71f4a8513") (:authors ("sabof")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/emacsorphanage/org-bullets"))]) -(org-brain . [(20190614 1501) ((emacs (25)) (org (9))) "Org-mode concept mapping" single ((:commit . "358a6fe10010853263b446a662400782138cb48a") (:keywords "outlines" "hypermedia") (:authors ("Erik Sjöstrand" . "sjostrand.erik@gmail.com")) (:maintainer "Erik Sjöstrand" . "sjostrand.erik@gmail.com") (:url . "http://github.com/Kungsgeten/org-brain"))]) -(org-bookmark-heading . [(20180904 1709) ((emacs (24 4)) (f (0 17 2))) "Emacs bookmark support for org-mode" single ((:commit . "eba5ef7a3c992c4a9da86f64d12fca0c1158208a") (:keywords "hypermedia" "outlines") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/org-bookmark-heading"))]) -(org-board . [(20190203 1424) nil "bookmarking and web archival system for Org mode." single ((:commit . "2e01e801abc04b8fb718ca4bc19636242ac0cb52") (:keywords "org" "bookmarks" "archives") (:authors ("Charles A. Roelli " . "charles@aurox.ch")) (:maintainer "Charles A. Roelli " . "charles@aurox.ch") (:url . "https://github.com/scallywag/org-board"))]) -(org-beautify-theme . [(20170908 2218) nil "A sub-theme to make org-mode more beautiful." single ((:commit . "df6a1114fda313e1689363e196c8284fbe2a2738") (:keywords "org" "theme") (:authors ("Jonathan Arkell" . "jonnay@jonnay.net")) (:maintainer "Jonathan Arkell" . "jonnay@jonnay.net"))]) -(org-babel-eval-in-repl . [(20170511 1214) ((eval-in-repl (0 9 2)) (matlab-mode (3 3 6)) (ess (16 10)) (emacs (24))) "Eval org-mode babel code blocks in various REPLs." tar ((:commit . "bfa72c582ac1531ad42aba23e2b1267ab68e31f6") (:keywords "literate programming" "reproducible research" "async execution") (:authors ("Takeshi Teshima" . "diadochos.developer@gmail.com")) (:maintainer "Takeshi Teshima" . "diadochos.developer@gmail.com") (:url . "https://github.com/diadochos/org-babel-eval-in-repl"))]) -(org-autolist . [(20170924 1901) nil "Improved list management in org-mode" single ((:commit . "c82d1e83e982b5f0c106b8800e5b0cfd5f73fdc1") (:keywords "lists" "checklists" "org-mode") (:authors ("Calvin Young")) (:maintainer "Calvin Young") (:url . "https://github.com/calvinwyoung/org-autolist"))]) -(org-attach-screenshot . [(20180420 525) nil "screenshots integrated with org attachment dirs" single ((:commit . "6b1edbd2384191122a30788ac72f2233c2df0294") (:keywords "org") (:authors ("Derek Feichtinger" . "derek.feichtinger@psi.ch")) (:maintainer "Derek Feichtinger" . "derek.feichtinger@psi.ch") (:url . "https://github.com/dfeich/org-screenshot"))]) -(org-alert . [(20180524 133) ((s (1 10 0)) (dash (2 11 0)) (alert (1 2))) "Notify org deadlines via notify-send" single ((:commit . "f87bff4acbd839acb4d2245b56b2c3d21f950911") (:keywords "org" "org-mode" "notify" "notifications" "calendar") (:authors ("Stephen Pegoraro" . "spegoraro@tutive.com")) (:maintainer "Stephen Pegoraro" . "spegoraro@tutive.com") (:url . "https://github.com/groksteve/org-alert"))]) -(org-agenda-property . [(20140626 2116) ((emacs (24 2))) "Display org properties in the agenda buffer." single ((:commit . "3b469f3e93de0036547f3631cd0366d53f7584c8") (:keywords "calendar") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com") (:url . "http://github.com/Bruce-Connor/org-agenda-property"))]) -(org-ac . [(20170401 1307) ((auto-complete-pcmp (0 0 1)) (log4e (0 2 0)) (yaxception (0 1))) "Some auto-complete sources for org-mode" single ((:commit . "41e3ef8e4039619d0370c23c66730b3b2e9e32ed") (:keywords "org" "completion") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/org-ac"))]) -(ordinal . [(20190104 1421) ((emacs (24)) (cl-lib (0 5))) "Convert number to ordinal number notation" single ((:commit . "75af95abbac3e30c4dd804411cb3e867c741a747") (:keywords "lisp") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/ordinal.el"))]) -(orca . [(20171030 1916) ((emacs (24 3))) "Org Capture" single ((:commit . "5e1744afb793dda744ddc6fe342144b5e90bea08") (:keywords "org" "convenience") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/orca"))]) -(operate-on-number . [(20150707 623) nil "Operate on number at point with arithmetic functions" single ((:commit . "ceb3be565a29326c1098244fac0c50606723a56e") (:keywords "editing") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/operate-on-number.el"))]) -(openwith . [(20120531 2136) nil "Open files with external programs" single ((:commit . "aeb78782ec87680ea9f082a3f20a3675b3770cf9") (:keywords "files" "processes") (:authors ("Markus Triska" . "markus.triska@gmx.at")) (:maintainer "Markus Triska" . "markus.triska@gmx.at") (:url . "https://bitbucket.org/jpkotta/openwith"))]) -(openstack-cgit-browse-file . [(20130819 927) nil "Browse the current file in OpenStack cgit" single ((:commit . "244219288b9aef41155044697bb114b7af83ab8f") (:keywords "convenience" "vc" "git" "cgit" "gerrit" "openstack") (:authors ("Chmouel Boudjnah" . "chmouel@chmouel.com")) (:maintainer "Chmouel Boudjnah" . "chmouel@chmouel.com") (:url . "https://github.com/chmouel/openstack-cgit-browse-file"))]) -(opensource . [(20160926 1616) ((s (1 11 0)) (dash (2 12 1)) (pkg-info (0 6 0)) (request (0 2 0))) "Client for Opensource API" tar ((:commit . "13499b7ae602c735e40c1c494bda6252a2f1c98f") (:keywords "opensource") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/OpenSourceOrg/el-opensourceorg"))]) -(opener . [(20161207 1810) ((request (0 2 0)) (emacs (24)) (cl-lib (0 5))) "opening urls as buffers" tar ((:commit . "c384f67278046fdcd220275fdd212ab85672cbeb") (:keywords "url" "http" "files") (:authors ("Tim Reddehase" . "tr@rightsrestricted.com")) (:maintainer "Tim Reddehase" . "tr@rightsrestricted.com") (:url . "https://github.com/0robustus1/opener.el"))]) -(opencl-mode . [(20190615 1957) nil "Syntax coloring for opencl kernels" single ((:commit . "55cb49c8243e6420961d719faced035bc547c1ef") (:keywords "c" "opencl") (:authors ("Salmane Bah" . "salmane.bah@u-bordeaux.fr")) (:maintainer "Salmane Bah" . "salmane.bah@u-bordeaux.fr") (:url . "https://github.com/salmanebah/opencl-mode"))]) -(opencc . [(20170722 816) ((emacs (24 4))) "䏿–‡ç®€ç¹è½¬æ¢ <-> 䏿–‡ç°¡ç¹è½‰æ› (Convert Chinese with OpenCC)" single ((:commit . "8c539f72669ba9a99d8b5198db5ea930897ad1b9") (:keywords "chinese") (:authors ("徿˜¥é˜³" . "mail@xuchunyang.me")) (:maintainer "徿˜¥é˜³" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/emacs-opencc"))]) -(open-junk-file . [(20161210 1114) nil "Open a junk (memo) file to try-and-error" single ((:commit . "558bec7372b0fed4c4cb6074ab906535fae615bd") (:keywords "convenience" "tools") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/open-junk-file.el"))]) -(open-in-msvs . [(20170123 2228) nil "Open current file:line:column in Microsoft Visual Studio" tar ((:commit . "e0d071c83188ad5db8f3297d6ce784b4ed554a04") (:keywords "convenience" "usability" "integration" "visual studio" "msvs" "ide") (:authors ("Evgeny Panasyuk")) (:maintainer "Evgeny Panasyuk") (:url . "https://github.com/evgeny-panasyuk/open-in-msvs"))]) -(opam . [(20150719 1220) ((emacs (24 1))) "OPAM tools" single ((:commit . "4d589de5765728f56af7078fae328b6792de8600") (:keywords "convenience") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Sebastian Wiesner" . "swiesner@lunaryorn.com") (:url . "https://github.com/lunaryorn/opam.el"))]) -(one-time-pad-encrypt . [(20160329 1513) nil "One time pad encryption within file" single ((:commit . "87cc1f124024ce3d277299ca0ac703f182937d9f") (:keywords "convenience") (:authors ("Garvin Guan" . "garvin.guan@gmail.com")) (:maintainer "Garvin Guan" . "garvin.guan@gmail.com") (:url . "https://github.com/garvinguan/emacs-one-time-pad/"))]) -(one-themes . [(20190424 740) ((emacs (24))) "One Colorscheme" tar ((:commit . "e62e4ebef7ef8ccb1e90781d613638d30cf24d7a") (:authors ("Balaji Sivaraman" . "balaji@balajisivaraman.com")) (:maintainer "Balaji Sivaraman" . "balaji@balajisivaraman.com") (:url . "http://github.com/balajisivaraman/emacs-one-themes"))]) -(on-screen . [(20160302 950) ((cl-lib (0))) "guide your eyes while scrolling" single ((:commit . "206468aa4de299ad26c2db12b757f5ad7290912f") (:keywords "convenience") (:authors ("Michael Heerdegen" . "michael_heerdegen@web.de")) (:maintainer "Michael Heerdegen" . "michael_heerdegen@web.de") (:url . "https://github.com/michael-heerdegen/on-screen.el"))]) -(on-parens . [(20180202 2241) ((dash (2 10 0)) (emacs (24)) (evil (1 1 6)) (smartparens (1 6 3))) "smartparens wrapper to fit with evil-mode/vim normal-state" single ((:commit . "7a41bc02bcffd265f8a69ed4b4e0df3c3009aaa4") (:keywords "evil" "smartparens") (:authors ("William G Hatch")) (:maintainer "William G Hatch"))]) -(omtose-phellack-theme . [(20161111 2120) nil "A dark theme, with cold bluish touch." tar ((:commit . "66f99633e199e65bd28641626435e8e59246529a"))]) -(omnisharp . [(20190613 626) ((emacs (24 4)) (flycheck (30)) (dash (2 12 0)) (auto-complete (1 4)) (popup (0 5 1)) (csharp-mode (0 8 7)) (cl-lib (0 5)) (s (1 10 0)) (f (0 19 0))) "Omnicompletion (intellisense) and more for C#" tar ((:commit . "dfcb9e7b7f909224b90d476d8158553e9160c2e7") (:keywords "languages" "csharp" "c#" "ide" "auto-complete" "intellisense") (:authors ("Mika Vilpas and others")) (:maintainer "Mika Vilpas and others") (:url . "https://github.com/Omnisharp/omnisharp-emacs"))]) -(omnibox . [(20180423 49) ((emacs (26 1)) (dash (2 13)) (frame-local (0 0 1))) "Selection package" single ((:commit . "8ee75c71c20c438ebc43ba24ef6f543633d118f3") (:keywords "completion" "selection" "convenience" "frames") (:authors ("Sebastien Chapuis" . "sebastien@chapu.is")) (:maintainer "Sebastien Chapuis" . "sebastien@chapu.is") (:url . "https://github.com/sebastiencs/omnibox"))]) -(omni-tags . [(20170426 2109) ((pcre2el (1 7)) (cl-lib (0 5))) "Highlight and Actions for 'Tags'" tar ((:commit . "8f0f6c302fab900b7681e5c039f90850cbbabd33") (:keywords "convenience") (:authors ("Adrien Becchis" . "adriean.khisbe@live.fr")) (:maintainer "Adrien Becchis" . "adriean.khisbe@live.fr") (:url . "http://github.com/AdrieanKhisbe/omni-tags.el"))]) -(omni-scratch . [(20171009 2151) nil "Easy and mode-specific draft buffers" single ((:commit . "9eee3161e5cb6df58618548a2173f4da7d194814") (:keywords "convenience" "languages" "tools") (:authors ("Adrien Becchis" . "adriean.khisbe@live.fr")) (:maintainer "Adrien Becchis" . "adriean.khisbe@live.fr") (:url . "https://github.com/AdrieanKhisbe/omni-scratch.el"))]) -(omni-quotes . [(20170425 1832) ((dash (2 8)) (omni-log (0 3 3)) (f (0 19 0)) (s (1 11 0)) (ht (2 1))) "Random quotes displayer" tar ((:commit . "454116c1dd6581baaeefd6b9310b1b6b7a5c36d0") (:keywords "convenience") (:authors ("Adrien Becchis" . "adriean.khisbe@live.fr")) (:maintainer "Adrien Becchis" . "adriean.khisbe@live.fr") (:url . "https://github.com/AdrieanKhisbe/omni-quotes.el"))]) -(omni-log . [(20170930 1235) ((emacs (24)) (ht (2 0)) (s (1 6 1)) (dash (2 13 0))) "Logging utilities" tar ((:commit . "11e959473c1bd9415d0cda785940c36ba6ad44ab") (:keywords "convenience" "languages" "tools") (:authors ("Adrien Becchis" . "adriean.khisbe@live.fr")) (:maintainer "Adrien Becchis" . "adriean.khisbe@live.fr") (:url . "https://github.com/AdrieanKhisbe/omni-log.el"))]) -(omni-kill . [(20171016 2140) nil "Kill all the things" single ((:commit . "904549c8fd6ac3cf22b5d7111ca8944e179cffea") (:keywords "convenience" "editing" "tools") (:authors ("Adrien Becchis" . "adriean.khisbe@live.fr")) (:maintainer "Adrien Becchis" . "adriean.khisbe@live.fr"))]) -(om-mode . [(20140915 2110) nil "Insert Om component template with life cycle." single ((:commit . "cdc0c2912321f8438b0f3449ba8aca50ec150bba") (:keywords "clojurescript") (:authors ("Daniel Szmulewicz" . "daniel.szmulewicz@gmail.com")) (:maintainer "Daniel Szmulewicz" . "daniel.szmulewicz@gmail.com"))]) -(olivetti . [(20190519 1316) ((emacs (24 5))) "Minor mode for a nice writing environment" single ((:commit . "343bf1e9c9b31fdb608569cfa795f6176f9c91dc") (:keywords "wp" "text") (:authors ("Paul Rankin" . "hello@paulwrankin.com")) (:maintainer "Paul Rankin" . "hello@paulwrankin.com"))]) -(oldlace-theme . [(20150705 1300) ((emacs (24))) "Emacs 24 theme with an 'oldlace' background." single ((:commit . "5c6f437203b0783b36a7aff4a578de4a0c8c4ee6") (:authors ("martin haesler")) (:maintainer "martin haesler"))]) -(old-norse-input . [(20170816 1842) ((emacs (24))) "An input method for Old Norse" single ((:commit . "c2e21ee72c3768e9152aff6baf12a19cde1d0c53") (:keywords "languages") (:authors ("David Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Christiansen" . "david@davidchristiansen.dk") (:url . "https://github.com/david-christiansen/emacs-old-norse-input"))]) -(offlineimap . [(20150916 1158) nil "Run OfflineIMAP from Emacs" single ((:commit . "cc3e067e6237a1eb7b21c575a41683b1febb47f1") (:authors ("Julien Danjou" . "julien@danjou.info")) (:maintainer "Julien Danjou" . "julien@danjou.info") (:url . "http://julien.danjou.info/offlineimap-el.html"))]) -(oer-reveal . [(20190607 1500) ((emacs (24 4)) (org-re-reveal (1 0 3))) "OER with reveal.js, plugins, and org-re-reveal" tar ((:commit . "ea36678d9a8bd07b323c6c4bbca7b615672b9bf1") (:keywords "hypermedia" "tools" "slideshow" "presentation" "oer") (:authors ("Jens Lechtenbörger")) (:maintainer "Jens Lechtenbörger") (:url . "https://gitlab.com/oer/oer-reveal"))]) -(octopress . [(20190123 107) nil "A lightweight wrapper for Jekyll and Octopress." tar ((:commit . "f2c92d5420f14fc9167c7de1873836510e652de2") (:keywords "octopress" "blog") (:authors ("Aaron Bieber" . "aaron@aaronbieber.com")) (:maintainer "Aaron Bieber" . "aaron@aaronbieber.com") (:url . "https://github.com/aaronbieber/octopress.el"))]) -(octo-mode . [(20161008 1229) ((emacs (24))) "Major mode for Octo assembly language" single ((:commit . "bd4db7e5e3275b24c74e6a23c11d04f54e9feca5") (:keywords "languages") (:authors ("John Olsson" . "john@cryon.se")) (:maintainer "John Olsson" . "john@cryon.se") (:url . "https://github.com/cryon/octo-mode"))]) -(octicons . [(20151101 340) ((cl-lib (0 5))) "octicons utility" tar ((:commit . "a61e561966ffd8faa3b48ce5b3a4eec10c59708b") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-octicons"))]) -(ocp-indent . [(20180417 1549) nil "automatic indentation with ocp-indent" single ((:commit . "87e76f201c478d81fc24004848080dd7cbfc69c7") (:keywords "ocaml" "languages") (:url . "http://www.typerex.org/ocp-indent.html"))]) -(ocodo-svg-modelines . [(20150516 1419) ((svg-mode-line-themes (0))) "A collection of beautiful SVG modelines" tar ((:commit . "c7b0789a177219f117c4de5659ecfa8622958c40"))]) -(oceanic-theme . [(20161015 819) nil "Oceanic theme." single ((:commit . "a92ee9b470843c923e6cdcafdd65106ff994d04d") (:keywords "oceanic" "color" "theme") (:authors ("Tengfei Guo")) (:maintainer "Tengfei Guo") (:url . "https://github.com/terry3/oceanic-theme"))]) -(occur-x . [(20130610 1343) nil "Extra functionality for occur" single ((:commit . "352f5fab207d8a1d3dd048073ff127a83e97c82b") (:keywords "occur" "search" "convenience") (:authors ("Juan-Leon Lahoz" . "juanleon1@gmail.com")) (:maintainer "Juan-Leon Lahoz" . "juanleon1@gmail.com"))]) -(occur-context-resize . [(20170904 2309) nil "dynamically resize context around matches in occur-mode" single ((:commit . "cdee5a631ceed9337579d4090e0acf8140747f80") (:keywords "matching") (:authors ("Charles L.G. Comstock" . "dgtized@gmail.com")) (:maintainer "Charles L.G. Comstock" . "dgtized@gmail.com") (:url . "https://github.com/dgtized/occur-context-resize.el"))]) -(occidental-theme . [(20130312 1958) nil "Custom theme for faces based on Adwaita" single ((:commit . "fd2db7256d4f78c43d99c3cddb1c39106d479816") (:authors ("William Stevenson" . "yhvh2000@gmail.com") ("Erik Timan" . "dev@timan.info")) (:maintainer "William Stevenson" . "yhvh2000@gmail.com") (:url . "http://github.com/olcai/occidental-theme"))]) -(obsidian-theme . [(20170719 948) nil "port of the eclipse obsidian theme" single ((:commit . "f45efb2ebe9942466c1db6abbe2d0e6847b785ea") (:authors ("martin haesler")) (:maintainer "martin haesler") (:url . "http://github.com/mswift42/obsidian-theme"))]) -(objed . [(20190530 1436) ((emacs (25)) (cl-lib (0 5))) "Navigate and edit text objects." tar ((:commit . "70cf23ee694651e9b6feada6e380318e519b649b") (:keywords "convenience") (:authors ("Clemens Radermacher" . "clemera@posteo.net")) (:maintainer "Clemens Radermacher" . "clemera@posteo.net") (:url . "https://github.com/clemera/objed"))]) -(objc-font-lock . [(20141021 1822) nil "Highlight Objective-C method calls." single ((:commit . "34b457d577f97ca94b8792d025f9a909c7610612") (:keywords "languages" "faces") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/objc-font-lock"))]) -(obfusurl . [(20170809 1524) ((cl-lib (0 5))) "Obfuscate URLs so they aren't spoilers" single ((:commit . "7a5a41905000ce2ec1fd72509a5567e5fd9f47e5") (:keywords "convenience" "web" "text") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/obfusurl.el"))]) -(oberon . [(20120715 909) nil "Major mode for editing Oberon/Oberon-2 program texts" single ((:commit . "fb57d18ce13835a8a69b6bafecdd9193ca9a59a3") (:keywords "oberon" "oberon-2" "languages" "oop") (:authors ("Karl Landström" . "karl@karllandstrom.se")) (:maintainer "Karl Landström" . "karl@karllandstrom.se"))]) -(ob-uart . [(20170521 858) nil "org-babel support for UART communication" single ((:commit . "90daeac90a9e75c20cdcf71234c67b812110c50e") (:keywords "tools" "comm" "org-mode" "uart" "literate programming" "reproducible development") (:authors ("Andreas Müller")) (:maintainer "Andreas Müller") (:url . "https://www.0x7.ch"))]) -(ob-typescript . [(20150804 1230) ((emacs (24)) (org (8 0))) "org-babel functions for typescript evaluation" single ((:commit . "9dcbd226cbfb75e790dd9de91d9401dde85a889a") (:keywords "literate programming" "reproducible research" "typescript") (:authors ("KURASHIKI Satoru")) (:maintainer "KURASHIKI Satoru") (:url . "https://github.com/lurdan/ob-typescript"))]) -(ob-translate . [(20170720 1919) ((google-translate (0 11)) (org (8))) "Translation of text blocks in org-mode." single ((:commit . "9d9054a51bafd5a29a8135964069b4fa3a80b169") (:keywords "org" "babel" "translate" "translation") (:authors ("Kris Jenkins" . "krisajenkins@gmail.com")) (:maintainer "Kris Jenkins" . "krisajenkins@gmail.com") (:url . "https://github.com/krisajenkins/ob-translate"))]) -(ob-tmux . [(20180831 1017) ((emacs (25 1)) (seq (2 3)) (s (1 9 0))) "Babel Support for Interactive Terminal" single ((:commit . "73bed0ebad27f0ad57ea67582494543eb2fab73d") (:keywords "literate programming" "interactive shell" "tmux") (:authors ("Allard Hendriksen")) (:maintainer "Allard Hendriksen") (:url . "https://github.com/ahendriksen/ob-tmux"))]) -(ob-swift . [(20170921 1325) ((org (8))) "org-babel functions for swift evaluation" single ((:commit . "ed478ddbbe41ce5373efde06b4dd0c3663c9055f") (:keywords "org" "babel" "swift") (:authors ("Feng Zhou" . "zf.pascal@gmail.com")) (:maintainer "Feng Zhou" . "zf.pascal@gmail.com") (:url . "http://github.com/zweifisch/ob-swift"))]) -(ob-sql-mode . [(20190421 1539) ((emacs (24 4))) "SQL code blocks evaluated by sql-mode" single ((:commit . "b31a016585324ad91f1742ff6205bcb76f3ece6e") (:keywords "languages" "org" "org-babel" "sql") (:authors (nil . "Nik Clayton nik@google.com")) (:maintainer nil . "Nik Clayton nik@google.com") (:url . "http://github.com/nikclayton/ob-sql-mode"))]) -(ob-sml . [(20130829 1843) ((sml-mode (6 4))) "org-babel functions for template evaluation" single ((:commit . "958165c92b6cff6cada5c85c8ae5887806b8451b") (:keywords "literate programming" "reproducible research") (:authors ("David Nolen")) (:maintainer "David Nolen") (:url . "http://orgmode.org"))]) -(ob-sagemath . [(20170131 233) ((sage-shell-mode (0 0 8)) (s (1 8 0)) (emacs (24))) "org-babel functions for SageMath evaluation" tar ((:commit . "68d3e516c712bc7aa5042f305f3eb5bbb6d656c2") (:keywords "sagemath" "org-babel") (:authors ("Sho Takemori" . "stakemorii@gmail.com")) (:maintainer "Sho Takemori" . "stakemorii@gmail.com") (:url . "https://github.com/stakemori/ob-sagemath"))]) -(ob-rust . [(20180911 1535) nil "Org-babel functions for Rust" tar ((:commit . "6a82587598cd097e9642be916243c31f1231b24a") (:keywords "rust" "languages" "org" "babel") (:authors ("Mican Zhang")) (:maintainer "Mican Zhang") (:url . "https://github.com/micanzhang/ob-rust"))]) -(ob-restclient . [(20190519 1145) ((restclient (0))) "org-babel functions for restclient-mode" single ((:commit . "fab4559d07993ce554ab6b06b50f4b445b36716c") (:keywords "literate programming" "reproducible research") (:authors ("Alf LervÃ¥g")) (:maintainer "Alf LervÃ¥g") (:url . "https://github.com/alf/ob-restclient.el"))]) -(ob-prolog . [(20190410 2130) nil "org-babel functions for prolog evaluation." single ((:commit . "149abd3832fc5a6a1cb01a586a1622a8f25887dc") (:keywords "literate programming" "reproducible research") (:authors ("Bjarte Johansen")) (:maintainer "Bjarte Johansen") (:url . "https://github.com/ljos/ob-prolog"))]) -(ob-nim . [(20170809 1830) ((cl-lib (0 5))) "Babel Functions for nim" single ((:commit . "bf1642cb93f0a898804dc13fd9408d2964403bd2") (:keywords "literate programming" "reproducible research") (:authors ("Lompik")) (:maintainer "Lompik"))]) -(ob-mongo . [(20170720 1919) ((org (8))) "Execute mongodb queries within org-mode blocks." single ((:commit . "371bf19c7c10eab2f86424f8db8ab685997eb5aa") (:keywords "org" "babel" "mongo" "mongodb") (:authors ("Kris Jenkins" . "krisajenkins@gmail.com")) (:maintainer "Kris Jenkins" . "krisajenkins@gmail.com") (:url . "https://github.com/krisajenkins/ob-mongo"))]) -(ob-ml-marklogic . [(20190312 1314) nil "org-babel functions for MarkLogic evaluation" tar ((:commit . "d5660ad14f29e17cd26ae92eeb585b24030e9570") (:keywords "marklogic" "xquery" "javascript" "sparql") (:authors ("Norman Walsh" . "ndw@nwalsh.com")) (:maintainer "Norman Walsh" . "ndw@nwalsh.com") (:url . "http://github.com/ndw/ob-ml-marklogic"))]) -(ob-mermaid . [(20180522 1659) nil "org-babel support for mermaid evaluation" single ((:commit . "5deaea757b3a5de874d94e40c03116fbc8195308") (:keywords "lisp") (:authors ("Alexei Nunez" . "alexeirnunez@gmail.com")) (:maintainer "Alexei Nunez" . "alexeirnunez@gmail.com") (:url . "https://github.com/arnm/ob-mermaid"))]) -(ob-lfe . [(20170725 1420) ((org (8))) "org-babel functions for lfe evaluation" single ((:commit . "f7780f58e650b4d29dfd834c662b1d354b620a8e") (:keywords "org" "babel" "lfe" "lisp" "erlang") (:authors ("ZHOU Feng" . "zf.pascal@gmail.com")) (:maintainer "ZHOU Feng" . "zf.pascal@gmail.com") (:url . "http://github.com/zweifisch/ob-lfe"))]) -(ob-kotlin . [(20180823 1321) ((org (8))) "org-babel functions for kotlin evaluation" single ((:commit . "96e420cbd2e9ea8a77043e5dcaebdfc6da17492a") (:keywords "org" "babel" "kotlin") (:authors ("ZHOU Feng" . "zf.pascal@gmail.com")) (:maintainer "ZHOU Feng" . "zf.pascal@gmail.com") (:url . "http://github.com/zweifisch/ob-kotlin"))]) -(ob-ipython . [(20180224 953) ((s (1 9 0)) (dash (2 10 0)) (dash-functional (1 2 0)) (f (0 17 2)) (emacs (24))) "org-babel functions for IPython evaluation" tar ((:commit . "7147455230841744fb5b95dcbe03320313a77124") (:keywords "literate programming" "reproducible research") (:authors ("Greg Sexton" . "gregsexton@gmail.com")) (:maintainer "Greg Sexton" . "gregsexton@gmail.com") (:url . "http://www.gregsexton.org"))]) -(ob-hy . [(20180702 540) ((emacs (24 4))) "org-babel functions for Hy-lang evaluation" tar ((:commit . "a42ecaf440adc03e279afe43ee5ef6093ddd542a") (:keywords "hy" "literate programming" "reproducible research") (:authors ("Brantou" . "brantou89@gmail.com")) (:maintainer "Brantou" . "brantou89@gmail.com") (:url . "https://github.com/brantou/ob-hy"))]) -(ob-http . [(20180707 1448) ((s (1 9 0)) (cl-lib (0 5))) "http request in org-mode babel" tar ((:commit . "b1428ea2a63bcb510e7382a1bf5fe82b19c104a7") (:authors ("ZHOU Feng" . "zf.pascal@gmail.com")) (:maintainer "ZHOU Feng" . "zf.pascal@gmail.com") (:url . "http://github.com/zweifisch/ob-http"))]) -(ob-html-chrome . [(20181219 1042) ((emacs (24 4)) (f (0 20 0)) (s (1 7 0))) "HTML code blocks converted to PNG using Chrome" single ((:commit . "7af6e4a24ed0aaf67751bdf752c7ca0ba02bb8d4") (:keywords "languages" "org" "org-babel" "chrome" "html") (:authors (nil . "Nik Clayton nik@ngo.org.uk")) (:maintainer nil . "Nik Clayton nik@ngo.org.uk") (:url . "http://github.com/nikclayton/ob-html-chrome"))]) -(ob-go . [(20190201 2040) nil "org-babel functions for go evaluation" tar ((:commit . "2067ed55f4c1d33a43cb3f6948609d240a8915f5") (:keywords "golang" "go" "literate programming" "reproducible research") (:authors ("K. Adam Christensen")) (:maintainer "K. Adam Christensen") (:url . "http://orgmode.org"))]) -(ob-fsharp . [(20170618 1429) ((emacs (25)) (fsharp-mode (1 9 8))) "Org-Babel F#" single ((:commit . "0b2fdd9bb4f38af8b5cf4914627af52f5b43d9f7") (:keywords "literate programming" "reproducible research") (:authors ("Jürgen Hötzel" . "juergen@archlinux.org")) (:maintainer "Jürgen Hötzel" . "juergen@archlinux.org") (:url . "https://github.com/juergenhoetzel/ob-fsharp"))]) -(ob-elvish . [(20180427 1900) nil "org-babel functions for Elvish shell" single ((:commit . "369181ceae1190bf971c71aebf9fc6133bd98c39") (:keywords "literate programming" "elvish" "shell" "languages" "processes" "tools") (:authors ("Diego Zamboni" . "diego@zzamboni.org")) (:maintainer "Diego Zamboni" . "diego@zzamboni.org") (:url . "https://github.com/zzamboni/ob-elvish"))]) -(ob-elixir . [(20170725 1419) ((org (8))) "org-babel functions for elixir evaluation" single ((:commit . "8990a8178b2f7bd93504a9ab136622aab6e82e32") (:keywords "org" "babel" "elixir") (:authors ("ZHOU Feng" . "zf.pascal@gmail.com")) (:maintainer "ZHOU Feng" . "zf.pascal@gmail.com") (:url . "http://github.com/zweifisch/ob-elixir"))]) -(ob-diagrams . [(20160407 1237) nil "org-babel functions for diagrams evaluation" single ((:commit . "ed6649616325ca5b2d2109f74aded8bcb8aa5186") (:keywords "literate programming" "reproducible research") (:authors ("Daniel Bergey")) (:maintainer "Daniel Bergey") (:url . "http://orgmode.org"))]) -(ob-dart . [(20170106 1624) nil "org-babel functions for Dart evaluation" single ((:commit . "04d63b922a5469506560ca0c00678e57131e0269") (:keywords "literate programming" "reproducible research" "emacs" "org" "babel" "dart") (:authors ("Milan Zimmermann")) (:maintainer "Milan Zimmermann") (:url . "http://github.org/mzimmerm/ob-dart"))]) -(ob-dao . [(20170816 1558) ((org (8))) "Org Babel Functions for Dao" single ((:commit . "fa92f62a63c684d689f57e790e5dd614c5bba270") (:keywords "literate programming" "reproducible research" "org" "babel" "dao") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/ob-dao"))]) -(ob-cypher . [(20170725 1420) ((s (1 9 0)) (cypher-mode (0 0 6)) (dash (2 10 0)) (dash-functional (1 2 0))) "query neo4j using cypher in org-mode blocks" single ((:commit . "114bdf6db20ee0ade060bb5df379ddee48ff4f26") (:keywords "org" "babel" "cypher" "neo4j") (:authors ("ZHOU Feng" . "zf.pascal@gmail.com")) (:maintainer "ZHOU Feng" . "zf.pascal@gmail.com") (:url . "http://github.com/zweifisch/ob-cypher"))]) -(ob-crystal . [(20180126 718) ((emacs (24 3))) "org-babel functions for Crystal evaluation" tar ((:commit . "d84c1adee4b269cdba06a97caedb8071561a09af") (:keywords "crystal" "literate programming" "reproducible research") (:authors ("Brantou" . "brantou89@gmail.com")) (:maintainer "Brantou" . "brantou89@gmail.com") (:url . "https://github.com/brantou/ob-crystal"))]) -(ob-coffeescript . [(20180126 719) ((emacs (24 4))) "org-babel functions for coffee-script evaluation, and fully implementation!" single ((:commit . "5a5bb04aea9c2a6eab5b05f90f5c7cb6de7b4261") (:keywords "coffee-script" "literate programming" "reproducible research") (:authors ("Brantou" . "brantou89@gmail.com")) (:maintainer "Brantou" . "brantou89@gmail.com") (:url . "https://github.com/brantou/ob-coffeescript"))]) -(ob-coffee . [(20170725 1424) ((org (8))) "org-babel functions for coffee-script evaluation" tar ((:commit . "7f0b330273e8af7777de87a75fe52a89798e4548") (:keywords "org" "babel" "coffee-script") (:authors ("ZHOU Feng" . "zf.pascal@gmail.com")) (:maintainer "ZHOU Feng" . "zf.pascal@gmail.com") (:url . "http://github.com/zweifisch/ob-coffee"))]) -(ob-clojurescript . [(20180406 1828) ((emacs (24 4)) (org (9 0))) "org-babel functions for ClojureScript evaluation" single ((:commit . "17ee1558aa94c7b0246fd03f684884122806cfe7") (:keywords "literate programming" "reproducible research") (:authors ("Larry Staton Jr.")) (:maintainer "Larry Staton Jr.") (:url . "https://gitlab.com/statonjr/ob-clojurescript"))]) -(ob-cfengine3 . [(20190520 1929) nil "Org Babel functions for CFEngine 3" single ((:commit . "e95f01b34011ff0ab94dedae2fb68efef236985b") (:keywords "tools" "convenience") (:authors ("Nick Anderson" . "nick@cmdln.org")) (:maintainer "Nick Anderson" . "nick@cmdln.org") (:url . "https://github.com/nickanderson/ob-cfengine3"))]) -(ob-browser . [(20170720 1918) ((org (8))) "Render HTML in org-mode blocks." tar ((:commit . "a347d9df1c87b7eb660be8723982c7ad2563631a") (:keywords "org" "babel" "browser" "phantomjs") (:authors ("Kris Jenkins" . "krisajenkins@gmail.com")) (:maintainer "Kris Jenkins" . "krisajenkins@gmail.com") (:url . "https://github.com/krisajenkins/ob-browser"))]) -(ob-blockdiag . [(20170728 101) nil "org-babel functions for blockdiag evaluation" single ((:commit . "634fcf64a4ae735afe7001d865b03f5d71e23046") (:keywords "tools" "convenience") (:authors ("Dmitry Moskowski")) (:maintainer "Dmitry Moskowski") (:url . "https://github.com/corpix/ob-blockdiag.el"))]) -(ob-axiom . [(20190223 1231) ((emacs (24 2)) (axiom-environment (20171021))) "An org-babel backend for the axiom-environment system" single ((:commit . "e3444570fa081410171a089f6c118ea6627e5d48") (:keywords "axiom" "openaxiom" "fricas") (:authors ("Paul Onions")) (:maintainer "Paul Onions"))]) -(ob-async . [(20190220 710) ((async (1 9)) (org (9 0 1)) (emacs (24 4)) (dash (2 14 1))) "Asynchronous org-babel src block execution" single ((:commit . "73e57a9297849bb50336799ae7858777b6b386ee") (:keywords "tools") (:authors ("Andrew Stahlman" . "andrewstahlman@gmail.com")) (:maintainer "Andrew Stahlman" . "andrewstahlman@gmail.com") (:url . "https://github.com/astahlman/ob-async"))]) -(ob-applescript . [(20160914 2027) nil "org-babel functions for template evaluation" single ((:commit . "bc708af6cf45707d4e8d8f00ea59a7e413bfaca7") (:keywords "literate programming" "reproducible research" "mac") (:authors ("Stig Brautaset")) (:maintainer "Stig Brautaset") (:url . "http://github.com/stig/ob-applescript.el"))]) -(ob-ammonite . [(20190604 1351) ((s (1 12 0)) (ammonite-term-repl (0 1)) (xterm-color (1 7))) "org-babel for scala evaluation in Ammonite." single ((:commit . "e9d431acc014fb064d77fab0201c626126e7922c") (:keywords "tools" "ammnite" "org-mode" "scala" "org-babel") (:authors ("zwild" . "judezhao@outlook.com")) (:maintainer "zwild" . "judezhao@outlook.com") (:url . "https://github.com/zwild/ob-ammonite"))]) -(oauth . [(20130128 151) nil "Oauth library." tar ((:commit . "ee4744ad76a1560281b0c4944575a3bd598c6458") (:keywords "comm") (:authors ("Peter Sanford <peter AT petersdanceparty.com>")) (:maintainer "Peter Sanford <peter AT petersdanceparty.com>"))]) -(o-blog . [(20151202 2339) nil "Standalone orgmode blog exporter" tar ((:commit . "e466c59478feddc8126c43c1b98550474af484c0") (:keywords "emacs") (:authors ("Sébastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>")) (:maintainer "Sébastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>"))]) -(nz-holidays . [(20190415 703) nil "New Zealand public holidays for calendar." single ((:commit . "afc875cf40789fa45a4a811685b0a7c4f239392f") (:keywords "calendar") (:authors ("Sod Oscarfono" . "sod@oscarfono.com")) (:maintainer "Sod Oscarfono" . "sod@oscarfono.com") (:url . "https://github.com/techquila/nz-holidays"))]) -(nyx-theme . [(20170910 1307) ((emacs (24))) "Dark theme" single ((:commit . "afe2b8c3b5421b4c292d182dcf77079b278e93d8") (:keywords "themes" "dark-theme") (:authors ("Guido Schmidt")) (:maintainer "Guido Schmidt" . "guido.schmidt.2912@gmail.com") (:url . "https://github.com/GuidoSchmidt/emacs-nyx-theme"))]) -(nyan-mode . [(20170423 740) nil "Nyan Cat shows position in current buffer in mode-line." tar ((:commit . "a85ac925367ddc542827182a2d9f0133b421c41b") (:keywords "nyan" "cat" "lulz" "scrolling" "pop tart cat" "build something amazing") (:authors ("Jacek \"TeMPOraL\" Zlydach" . "temporal.pl@gmail.com")) (:maintainer "Jacek \"TeMPOraL\" Zlydach" . "temporal.pl@gmail.com") (:url . "https://github.com/TeMPOraL/nyan-mode/"))]) -(nvm . [(20190601 813) ((s (1 8 0)) (dash (2 4 0)) (f (0 14 0)) (dash-functional (2 4 0))) "Manage Node versions within Emacs" single ((:commit . "4aeb672d543ce2372dcca289719092aa4c38a6cd") (:keywords "node" "nvm") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/nvm.el"))]) -(nv-delete-back . [(20170224 1249) ((emacs (24))) "backward delete like modern text editors" single ((:commit . "44d506105989873dc1725e0cfc675925b35c9c98") (:keywords "lisp") (:authors ("Nicolas Vaughan <n.vaughan [at] oxon.org>")) (:maintainer "Nicolas Vaughan <n.vaughan [at] oxon.org>"))]) -(nummm-mode . [(20131117 1014) nil "Display the number of minor modes instead of their names" single ((:commit . "81951e12032274543c5f7a585b29bd93961e94e4") (:authors ("Andreu Gil" . "agpchil@gmail.com")) (:maintainer "Andreu Gil" . "agpchil@gmail.com") (:url . "http://github.com/agpchil/nummm-mode"))]) -(numbers . [(20170802 1134) ((emacs (24))) "Display information and trivia about numbers" single ((:commit . "dd02508b788a13b7d4dbcc4923fa23134b783ab3") (:keywords "games" "trivia" "maths" "numbers") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/numbers.el"))]) -(number-lock . [(20160830 200) nil "Enter symbols on your number keys without pressing shift" single ((:commit . "74417b1238953bf485961a0dd7d20f5c36ae25ea") (:keywords "convenience") (:authors ("Liu233w" . "wwwlsmcom@outlook.com")) (:maintainer "Liu233w" . "wwwlsmcom@outlook.com") (:url . "https://github.com/Liu233w/number-lock.el"))]) -(number . [(20170901 1312) nil "Working with numbers at point." single ((:commit . "bbc278d34dbcca83e70e3be855ec98b23debfb99"))]) -(nubox . [(20170619 910) nil "Nubox color theme (dark, light and tty versions)" tar ((:commit . "1ccb8035ae42727ba6bdd5c1106fbceddeeed370") (:keywords "faces") (:authors ("Martijn Terpstra" . "bigmartijn@gmail.com")) (:maintainer "Martijn Terpstra" . "bigmartijn@gmail.com"))]) -(nu-mode . [(20190404 2032) ((undo-tree (0 6 5)) (ace-window (0)) (lv (0)) (avy (0)) (which-key (0)) (transpose-frame (0))) "Modern Emacs Prompts Based Keybinding." tar ((:commit . "d5fb4d26d1b0bb383ea2827cc5af5dfb2a269d2b"))]) -(nswbuff . [(20190320 740) ((emacs (25 1))) "Quick switching between buffers." single ((:commit . "362da7f3687e2eb5bb11667347de85f4a9d002bc") (:keywords "extensions" "convenience") (:authors ("David Ponce" . "david@dponce.com") ("Kahlil (Kal) HODGSON" . "dorge@tpg.com.au") ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm") (:url . "https://github.com/joostkremers/nswbuff"))]) -(nsis-mode . [(20190615 1827) nil "NSIS-mode" tar ((:commit . "0a2e6ece2fe682dced4d31688b38bb472a877cdf") (:keywords "nsis") (:authors ("Matthew L. Fidler")) (:maintainer "Matthew L. Fidler") (:url . "http://github.com/mlf176f2/nsis-mode"))]) -(ns-auto-titlebar . [(20181022 2154) ((emacs (24 4))) "Set the MacOS transparent titlebar to match theme" single ((:commit . "b16092e8058af63ad2bc222f166b0aa3cb66bf9d") (:keywords "frames") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/ns-auto-titlebar"))]) -(nrepl-sync . [(20140807 1554) ((cider (0 6))) "connect to nrepl port and eval .sync.clj." single ((:commit . "bab53a2361526d63a24cda176d07a1247bf5b399") (:authors ("Phillip Lord" . "phillip.lord@newcastle.ac.uk")) (:maintainer "Phillip Lord" . "phillip.lord@newcastle.ac.uk") (:url . "https://github.com/phillord/lein-sync"))]) -(nrepl-eval-sexp-fu . [(20140311 1041) ((highlight (0 0 0)) (smartparens (0 0 0)) (thingatpt (0 0 0))) "Tiny functionality enhancements for evaluating sexps." single ((:commit . "3a24b7d4bca13e87c987a4ddd212da914ff59191") (:keywords "lisp" "highlight" "convenience") (:authors ("Takeshi Banse" . "takebi@laafc.net")) (:maintainer "Takeshi Banse" . "takebi@laafc.net"))]) -(npm-mode . [(20190616 2025) ((emacs (24 1))) "minor mode for working with npm projects" single ((:commit . "3ee7c0bad5b7a041d4739ef3aaa06a3dc764e5eb") (:keywords "convenience" "project" "javascript" "node" "npm") (:authors ("Allen Gooch" . "allen.gooch@gmail.com")) (:maintainer "Allen Gooch" . "allen.gooch@gmail.com") (:url . "https://github.com/mojochao/npm-mode"))]) -(noxml-fold . [(20170823 1357) nil "Fold away XML things." single ((:commit . "46c7f6a008672213238a9f8d7a416ce80916aa62") (:keywords "xml" "folding") (:authors ("Patrick McAllister" . "pma@rdorte.org")) (:maintainer "Patrick McAllister" . "pma@rdorte.org") (:url . "https://github.com/paddymcall/noxml-fold"))]) -(nova-theme . [(20190520 1632) ((emacs (24 3))) "A dark, pastel color theme" single ((:commit . "7f7d6568f9d0d49600b03b74ad0f8ae3121fab8c") (:keywords "theme" "dark" "nova" "pastel" "faces") (:authors ("Muir Manders" . "muir+emacs@mnd.rs")) (:maintainer "Muir Manders" . "muir+emacs@mnd.rs") (:url . "https://github.com/muirmanders/emacs-nova-theme"))]) -(nov . [(20190611 922) ((dash (2 12 0)) (esxml (0 3 3)) (emacs (24 4))) "Featureful EPUB reader mode" single ((:commit . "b57fae0814502496796ce5b8170d779b64df42a9") (:keywords "hypermedia" "multimedia" "epub") (:authors ("Vasilij Schneidermann" . "mail@vasilij.de")) (:maintainer "Vasilij Schneidermann" . "mail@vasilij.de") (:url . "https://github.com/wasamasa/nov.el"))]) -(notmuch-labeler . [(20131230 1719) ((notmuch (0))) "Improve notmuch way of displaying labels" tar ((:commit . "d65d1129555d368243df4770ecc1e7ccb88efc58") (:keywords "emacs" "package" "elisp" "notmuch" "emails") (:authors ("Damien Cassou" . "damien.cassou@gmail.com")) (:maintainer "Damien Cassou" . "damien.cassou@gmail.com") (:url . "https://github.com/DamienCassou/notmuch-labeler"))]) -(notmuch . [(20190525 1602) nil "run notmuch within emacs" tar ((:commit . "b23902a61158ecdbca2d9d96c6eaf509d6e3d205") (:url . "https://notmuchmail.org/"))]) -(nose . [(20140520 1648) nil "Easy Python test running in Emacs" single ((:commit . "194d7789bf797f31ea0adc45f08beb66ae9ea98e") (:keywords "nose" "python" "testing"))]) -(northcode-theme . [(20180423 1649) ((emacs (24))) "A dark theme focused on blue and orange colors." single ((:commit . "4d3750461ba25ec45321318b5f1af4e8fdf16147") (:authors ("Andreas Larsen" . "andreas@northcode.no")) (:maintainer "Andreas Larsen" . "andreas@northcode.no") (:url . "https://github.com/Northcode/northcode-theme.el"))]) -(nordless-theme . [(20180613 750) nil "A mostly colorless theme" single ((:commit . "e4da9d2465a123ea28e33a507cc7ab69692cde86") (:keywords "theme" "dark") (:authors ("Thomas Letan" . "contact@thomasletan.fr")) (:maintainer "Thomas Letan" . "contact@thomasletan.fr") (:url . "https://github.com/lethom/nordless-theme.el"))]) -(nord-theme . [(20190616 1757) ((emacs (24))) "An arctic, north-bluish clean and elegant theme" single ((:commit . "52756cdc909b29691eef228897b3de561cd99f43") (:authors ("Arctic Ice Studio" . "development@arcticicestudio.com")) (:maintainer "Arctic Ice Studio" . "development@arcticicestudio.com") (:url . "https://github.com/arcticicestudio/nord-emacs"))]) -(nofrils-acme-theme . [(20180620 1248) ((emacs (24))) "Port of \"No Frils Acme\" Vim theme." tar ((:commit . "98ad7bfaff1d85b33dc162645670285b067c6f92") (:authors ("Eric Sessoms" . "esessoms@protonmail.com")) (:maintainer "Eric Sessoms" . "esessoms@protonmail.com") (:url . "https://gitlab.com/esessoms/nofrils-theme"))]) -(noflet . [(20141102 1454) nil "locally override functions" single ((:commit . "7ae84dc3257637af7334101456dafe1759c6b68a") (:keywords "lisp") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk") (:url . "https://github.com/nicferrier/emacs-noflet"))]) -(nodenv . [(20181023 1543) ((emacs (24 4))) "Integration with nodenv" tar ((:commit . "832fb0cbac4513edde7ebd6d1ab971c54313be36") (:keywords "node" "environment" "tools") (:authors ("Gong Qijian" . "gongqijian@gmail.com")) (:maintainer "Gong Qijian" . "gongqijian@gmail.com") (:url . "https://github.com/twlz0ne/nodenv.el"))]) -(nodemcu-mode . [(20180501 2225) ((emacs (25))) "Minor mode for NodeMCU" single ((:commit . "8effd9f3df40b6b92a2f05e4d54750b624afc4a7") (:keywords "tools") (:authors ("Andreas Müller" . "code@0x7.ch")) (:maintainer "Andreas Müller" . "code@0x7.ch") (:url . "https://github.com/andrmuel/nodemcu-mode"))]) -(nodejs-repl . [(20190616 1753) nil "Run Node.js REPL" single ((:commit . "d43b8b276a90ccf980150a7d6fbb1f4d2a7cbe20") (:authors ("Takeshi Arabiki")) (:maintainer "Takeshi Arabiki"))]) -(node-resolver . [(20140930 1723) ((cl-lib (0 5))) "hook to install node modules in background" single ((:commit . "ef9d0486907a746a80b02ffc6208a09c168a9f7c") (:keywords "convenience" "nodejs" "javascript" "npm") (:authors ("Dave Justice")) (:maintainer "Dave Justice") (:url . "https://github.com/meandavejustice/node-resolver.el"))]) -(noctilux-theme . [(20161113 1442) ((emacs (24))) "Dark theme inspired by LightTable" single ((:commit . "a3265a1be7f4d73f44acce6d968ca6f7add1f2ca") (:authors ("Simon Manning" . "simon@ecksdee.org")) (:maintainer "Simon Manning" . "simon@ecksdee.org") (:url . "https://github.com/sjrmanning/noctilux-theme"))]) -(nocomments-mode . [(20170213 2037) nil "Minor mode that makes comments invisible." single ((:commit . "5a41a20cc44dfe4a9ea584354ed6dbc15dd92f46") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/nocomments-mode"))]) -(noccur . [(20150514 2120) nil "Run multi-occur on project/dired files" single ((:commit . "6cc02ce07178a61ae38a849f80472c01969272bc") (:keywords "convenience") (:authors ("Nicolas Petton" . "petton.nicolas@gmail.com")) (:maintainer "Nicolas Petton" . "petton.nicolas@gmail.com"))]) -(noaa . [(20190202 1634) ((request (0 2 0)) (cl-lib (0 5)) (emacs (24)) (dash (2 14 1))) "Get NOAA weather data" single ((:commit . "532eb14328027ee29e124768feec23a8ef7ee798") (:authors ("David Thompson")) (:maintainer "David Thompson") (:url . "https://github.com/thomp/noaa"))]) -(no-littering . [(20190409 1154) ((cl-lib (0 5))) "help keeping ~/.emacs.d clean" single ((:commit . "16a4917fbb4d3aee7a705ef9e0f9dcdc70985862") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/emacscollective/no-littering"))]) -(no-emoji . [(20180515 1837) ((emacs (24))) "Show :emoji-name: instead of emoji characters" single ((:commit . "ebceeab50dbfe4d60235180a57633745dbc18c77") (:keywords "extensions") (:authors ("Peter" . "craven@gmx.net")) (:maintainer "Peter" . "craven@gmx.net") (:url . "https://github.com/ecraven/no-emoji"))]) -(nnir-est . [(20180710 2103) nil "Gnus nnir interface for HyperEstraier" single ((:commit . "6d0d5c8e33f4e4ccbc22350324c0990d2676fb5a") (:keywords "mail") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "https://github.com/kawabata/nnir-est"))]) -(nm . [(20151110 1910) ((notmuch (0 21)) (peg (0 6)) (company (0)) (emacs (24 3))) "NEVERMORE: an email interface for Notmuch" tar ((:commit . "5a3f29174b3a4b2b2e7a700a862f3b16a942687e") (:authors ("Trevor Jim")) (:maintainer "Trevor Jim") (:url . "https://github.com/tjim/nevermore"))]) -(nlinum-relative . [(20160526 708) ((emacs (24 4)) (nlinum (1 5))) "Relative line number with nlinum" single ((:commit . "5b9950c97ba79a6f0683e38b13da23f39e01031c") (:keywords "convenience") (:authors ("codefalling" . "code.falling@gmail.com")) (:maintainer "codefalling" . "code.falling@gmail.com"))]) -(nlinum-hl . [(20190301 2117) ((emacs (24 4)) (nlinum (1 7)) (cl-lib (0 5))) "heal nlinum's line numbers" single ((:commit . "dc6b365a58e06c7d637a76a31c71a40b20da8b56") (:keywords "nlinum" "highlight" "current" "line" "faces") (:authors ("Henrik Lissner <http://github/hlissner>")) (:maintainer "Henrik Lissner" . "henrik@lissner.net") (:url . "https://github.com/hlissner/emacs-nlinum-hl"))]) -(nixos-options . [(20160209 1841) ((emacs (24))) "Interface for browsing and completing NixOS options." single ((:commit . "45c8d90748304c90e1503c9fa8db0443f3d4bd89") (:keywords "unix") (:authors ("Diego Berrocal" . "cestdiego@gmail.com") ("Travis B. Hartwell" . "nafai@travishartwell.net")) (:maintainer "Diego Berrocal" . "cestdiego@gmail.com") (:url . "http://www.github.com/travisbhartwell/nix-emacs/"))]) -(nix-update . [(20190124 1935) ((emacs (25))) "Update \"fetch\" blocks in .nix expressions" single ((:commit . "fc6c39c2da3fcfa62f4796816c084a6389c8b6e7") (:keywords "nix") (:authors ("John Wiegley" . "johnw@newartisans.com")) (:maintainer "John Wiegley" . "johnw@newartisans.com") (:url . "https://github.com/jwiegley/nix-update-el"))]) -(nix-sandbox . [(20171004 1706) ((dash (2 12 1)) (s (1 10 0))) "Utility functions to work with nix-shell sandboxes" single ((:commit . "45c8d90748304c90e1503c9fa8db0443f3d4bd89") (:authors ("Sven Keidel" . "svenkeidel@gmail.com")) (:maintainer "Sven Keidel" . "svenkeidel@gmail.com") (:url . "https://github.com/travisbhartwell/nix-emacs"))]) -(nix-mode . [(20190615 1838) ((emacs (24 3))) "Major mode for editing .nix files" tar ((:commit . "2f4bd0f09c829c2c5f49be2c5455352eaa4c2e3d") (:keywords "nix" "languages" "tools" "unix") (:maintainer "Matthew Bauer" . "mjbauer95@gmail.com") (:url . "https://github.com/NixOS/nix-mode"))]) -(nix-haskell-mode . [(20190615 135) ((emacs (25)) (haskell-mode (16 0)) (nix-mode (1 3 0))) "haskell-mode integrations for Nix" single ((:commit . "68efbcbf949a706ecca6409506968ed2ef928a20") (:keywords "nix" "haskell" "languages" "processes") (:authors ("Matthew Bauer" . "mjbauer95@gmail.com")) (:maintainer "Matthew Bauer" . "mjbauer95@gmail.com") (:url . "https://github.com/matthewbauer/nix-haskell"))]) -(nix-buffer . [(20180212 1518) ((f (0 17 3)) (emacs (24 4))) "Set up buffer environments with nix" single ((:commit . "db57cda36e7477bdc7ef5a136357b971b1d4d099") (:authors ("Shea Levy")) (:maintainer "Shea Levy") (:url . "https://github.com/shlevy/nix-buffer/tree/master/"))]) -(ninja-mode . [(20181024 1439) ((emacs (24))) "Major mode for editing .ninja files" single ((:commit . "e6aeab857894226475489f55bba4ec6e01672a41"))]) -(nimbus-theme . [(20190611 1120) ((emacs (24))) "An awesome dark theme." single ((:commit . "03c0387f42bd88e05f039db9866f442a65969055") (:keywords "faces") (:authors ("Marcin Swieczkowski" . "marcin.swieczkowski@gmail.com") ("See README.md for full list of contributors.")) (:maintainer "Marcin Swieczkowski" . "marcin.swieczkowski@gmail.com") (:url . "https://github.com/m-cat/nimbus-theme"))]) -(nim-mode . [(20190503 1027) ((emacs (24 4)) (epc (0 1 1)) (let-alist (1 0 1)) (commenter (0 5 1)) (flycheck-nimsuggest (0 8 1))) "A major mode for the Nim programming language" tar ((:commit . "52a54e71da8445e7e92d62343facdcbcbda5ec6c") (:keywords "nim" "languages") (:authors ("Simon Hafner")) (:maintainer "Simon Hafner" . "hafnersimon@gmail.com"))]) -(nikola . [(20170703 2021) ((async (1 5)) (emacs (24 3))) "Simple wrapper for nikola" single ((:commit . "964715ac30943c9d6976999cad208dc60d09def0") (:keywords ":" "nikola") (:authors (": drymer <drymer [ AT ] autistici.org>")) (:maintainer ": drymer <drymer [ AT ] autistici.org>") (:url . ": https://git.daemons.it/drymer/nikola.el"))]) -(night-owl-theme . [(20180630 2131) ((emacs (24))) "A color theme for the night owls out there" single ((:commit . "6c73732986015c6a36919f16096d5e4f81b516ad") (:authors ("Aaron Jensen" . "aaronjensen@gmail.com")) (:maintainer "Aaron Jensen" . "aaronjensen@gmail.com") (:url . "http://github.com/aaronjensen/night-owl-theme"))]) -(niconama . [(20170910 1501) ((emacs (24)) (request (20170131 1747)) (cl-lib (0 5))) "Tools for Niconico Live Broadcast" single ((:commit . "96e7553e50e6bf7b58aac50f52c9b0b8edb41c56") (:keywords "comm") (:url . "https://github.com/NOBUTOKA/niconama.el"))]) -(niceify-info . [(20160416 1244) nil "improve usability of Info pages" single ((:commit . "38df5062bc3b99d1074cab3e788b5ed66732111c"))]) -(nginx-mode . [(20170612 437) nil "major mode for editing nginx config files" single ((:commit . "a2bab83c2eb233d57d76b236e7c141c2ccc97005") (:keywords "languages" "nginx") (:authors ("Andrew J Cosgriff" . "andrew@cosgriff.name")) (:maintainer "Andrew J Cosgriff" . "andrew@cosgriff.name"))]) -(ng2-mode . [(20190524 1912) ((typescript-mode (0 1))) "Major modes for editing Angular 2" tar ((:commit . "52fdfe27247548b46f6171eebaf887a90dd67463") (:keywords "typescript" "angular" "angular2" "template") (:authors ("Adam Niederer" . "adam.niederer@gmail.com")) (:maintainer "Adam Niederer" . "adam.niederer@gmail.com") (:url . "http://github.com/AdamNiederer/ng2-mode"))]) -(nexus . [(20140114 1305) nil "REST Client for Nexus Maven Repository servers" tar ((:commit . "c46f499951b90839aa8683779fe43d8f01672a60") (:keywords "comm") (:authors ("Juergen Hoetzel" . "juergen@archlinux.org")) (:maintainer "Juergen Hoetzel" . "juergen@archlinux.org"))]) -(newlisp-mode . [(20160226 1545) nil "newLISP editing mode for Emacs" single ((:commit . "ac23be40c81a360988ab803d365f1510733f6db4") (:keywords "language" "lisp" "newlisp") (:authors ("KOBAYASHI Shigeru <shigeru.kb[at]gmail.com>")) (:maintainer "KOBAYASHI Shigeru <shigeru.kb[at]gmail.com>") (:url . "https://github.com/kosh04/newlisp-mode"))]) -(never-comment . [(20140104 2207) nil "Never blocks are comment" single ((:commit . "74ded8f1e7f23240f5f6032d0451fb0a51733bc4") (:authors ("Scott Frazer")) (:maintainer "Toon Claes") (:url . "http://stackoverflow.com/a/4554658/89376"))]) -(network-watch . [(20171123 1146) ((emacs (24 3))) "Support for intermittent network connectivity" single ((:commit . "958dd0d419e4f9402648a86b754091ba346e01b8") (:keywords "unix" "tools" "hardware" "lisp") (:authors ("Juan Amiguet Vercher" . "jamiguet@gmail.com")) (:maintainer "Juan Amiguet Vercher" . "jamiguet@gmail.com") (:url . "https://github.com/jamiguet/network-watch"))]) -(netrunner . [(20160910 2332) ((popup (0 5 3)) (company (0 9 0)) (helm (1 9 5))) "Create Android: Netrunner decklists using Company, Helm and org-mode" single ((:commit . "c64672992175c8c1073c0f56c2e471839db71a0f") (:keywords "games") (:authors ("Erik Sjöstrand")) (:maintainer "Erik Sjöstrand") (:url . "http://github.com/Kungsgeten/netrunner"))]) -(netherlands-holidays . [(20150202 1617) nil "Netherlands holidays for Emacs calendar." single ((:commit . "26236178cdd650df9958bf5a086e184096559f00") (:keywords "calendar") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/netherlands-holidays"))]) -(netease-music . [(20181028 1254) ((names (0 5)) (emacs (25))) "listen netease music" single ((:commit . "31c31cff44d2889c0456ac11d5d38227f15f03b6") (:keywords "multimedia" "chinese" "music") (:authors ("hiro方圆" . "wfy11235813@gmail.com")) (:maintainer "hiro方圆" . "wfy11235813@gmail.com") (:url . "https://github.com/nicehiro/netease-music"))]) -(nerdtab . [(20180811 339) ((emacs (24 5))) "Keyboard-oriented tabs" single ((:commit . "74ccc14d7956712e477a34b4a733284e8b3832a6") (:keywords "convenience") (:authors ("Yuan Fu" . "casouri@gmail.com")) (:maintainer "Yuan Fu" . "casouri@gmail.com") (:url . "https://github.com/casouri/nerdtab"))]) -(neotree . [(20181121 2026) ((cl-lib (0 5))) "A tree plugin like NerdTree for Vim" tar ((:commit . "c2420a4b344a9337760981c451783f0ff9df8bbf") (:authors ("jaypei" . "jaypei97159@gmail.com")) (:maintainer "jaypei" . "jaypei97159@gmail.com") (:url . "https://github.com/jaypei/emacs-neotree"))]) -(neon-mode . [(20180406 1156) nil "Simple major mode for editing neon files" single ((:commit . "99d15e46beaf1e7d71e39a00cce810df1f33229d") (:keywords "conf") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(nemerle . [(20161029 2023) nil "major mode for editing nemerle programs" single ((:commit . "c07d828e8e9f8aeb502bfeaf203589e38f563fd0") (:keywords "nemerle" "mode" "languages") (:authors ("Jacek Sliwerski (rzyjontko)" . "rzyj@o2.pl")) (:maintainer "Jacek Sliwerski (rzyjontko)" . "rzyj@o2.pl"))]) -(neato-graph-bar . [(20181130 1649) ((emacs (24 3))) "Neat-o graph bars CPU/memory etc." single ((:commit . "a7ae35afd67911e8924f36e646bce0d3e3c1bbe6") (:authors ("Robert Cochran" . "robert-git@cochranmail.com")) (:maintainer "Robert Cochran" . "robert-git@cochranmail.com") (:url . "https://gitlab.com/RobertCochran/neato-graph-bar"))]) -(nclip . [(20130617 2015) nil "Network (HTTP) Clipboard" tar ((:commit . "af88e38b1f04be02bf2e57affc662dbd0f828e67") (:keywords "nclip" "clipboard" "network") (:authors ("Marian Schubert" . "marian.schubert@gmail.com")) (:maintainer "Marian Schubert" . "marian.schubert@gmail.com") (:url . "http://www.github.com/maio/nclip.el"))]) -(ncl-mode . [(20180129 703) ((emacs (24))) "Major Mode for editing NCL scripts and other goodies" tar ((:commit . "602292712a9e6b7e7c25155978999e77d06b7338"))]) -(navorski . [(20141203 1824) ((s (1 9 0)) (dash (1 5 0)) (multi-term (0 8 14))) "Helping you live in the terminal, like Viktor did." single ((:commit . "698c1c62da70164aebe9a7a5d034778fbc30ea5b") (:keywords "terminal") (:authors ("Roman Gonzalez <romanandreg@gmail.com>, Tavis Rudd" . "tavis@birdseye-sw.com")) (:maintainer "Roman Gonzalez" . "romanandreg@gmail.com"))]) -(navi2ch . [(20150330 216) nil "Navigator for 2ch for Emacsen" tar ((:commit . "f39d93c32acd5b9c3a7fb1a9fe14c5e1c4b5288e") (:keywords "network" "2ch") (:authors ("Taiki SUGAWARA" . "taiki@users.sourceforge.net")) (:maintainer "Taiki SUGAWARA" . "taiki@users.sourceforge.net"))]) -(navi-mode . [(20190102 123) ((outshine (2 0)) (outorg (2 0))) "major-mode for easy buffer-navigation" single ((:commit . "d3b66180e93e009c1bae352a7e74edf58f81487e") (:maintainer "Adam Porter") (:url . "https://github.com/alphapapa/navi"))]) -(nav-flash . [(20140508 2041) nil "Briefly highlight the current line" single ((:commit . "53f5bc59e3f32c1192d15637d3979732dacb2c35") (:keywords "extensions" "navigation" "interface") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/nav-flash"))]) -(nav . [(20120507 707) nil "Emacs mode for filesystem navigation" tar ((:commit . "c5eb234c063f435dbdcd1f8bdc46cfc68c973ebe") (:authors ("Issac Trotts" . "issactrotts@google.com")) (:maintainer "Issac Trotts" . "issactrotts@google.com"))]) -(nasm-mode . [(20190410 342) ((emacs (24 3))) "NASM x86 assembly major mode" single ((:commit . "65ca6546fc395711fac5b3b4299e76c2303d43a8") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/nasm-mode"))]) -(nash-mode . [(20160830 1212) nil "Nash major mode" single ((:commit . "2cd96535eb7d669a94306183e95ee37333872c1a") (:keywords "nash" "languages") (:authors ("Tiago Natel de Moura")) (:maintainer "Tiago Natel de Moura") (:url . "https://github.com/tiago4orion/nash-mode.el"))]) -(narrowed-page-navigation . [(20150109 519) ((emacs (24)) (cl-lib (0 5))) "A minor mode for showing one page at a time" single ((:commit . "b215adbac4873f56fbab65772062f0f5be8058a1") (:keywords "outlines") (:authors ("David Raymond Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Raymond Christiansen" . "david@davidchristiansen.dk"))]) -(narrow-reindent . [(20150722 1906) ((emacs (24 4))) "Defines a minor mode to left-align narrowed regions." single ((:commit . "87466aac4dbeb79597124dd077bf5c704872fd3d") (:authors ("J David Smith" . "emallson@atlanis.net")) (:maintainer "J David Smith" . "emallson@atlanis.net") (:url . "https://github.com/emallson/narrow-reindent.el"))]) -(naquadah-theme . [(20190225 1427) nil "A theme based on Tango color set" single ((:commit . "430c3b7bd51922cb616b3f60301f4e2604816ed8"))]) -(nanowrimo . [(20151105 228) nil "Track progress for nanowrimo" single ((:commit . "25e2ca20ed3486e3241a1b9a6cbca77f0d4bac61") (:authors ("Ivan Andrus <darthandrus at gmail.com>")) (:maintainer "Ivan Andrus <darthandrus at gmail.com>") (:url . "https://bitbucket.org/gvol/nanowrimo-mode"))]) -(nand2tetris-assembler . [(20171201 1813) ((nand2tetris (1 1 0))) "Assembler For the Nand2tetris Course" single ((:commit . "33acee34d24b1c6a87db833b7d23449cf858f64f") (:keywords "nand2tetris-assembler" "hdl") (:authors ("Diego Berrocal" . "cestdiego@gmail.com")) (:maintainer "Diego Berrocal" . "cestdiego@gmail.com") (:url . "http://www.github.com/CestDiego/nand2tetris-assembler.el/"))]) -(nand2tetris . [(20171201 1813) ((emacs (24))) "Major mode for HDL files in the nand2tetris course" tar ((:commit . "33acee34d24b1c6a87db833b7d23449cf858f64f") (:keywords "nand2tetris" "hdl") (:authors ("Diego Berrocal" . "cestdiego@gmail.com")) (:maintainer "Diego Berrocal" . "cestdiego@gmail.com") (:url . "http://www.github.com/CestDiego/nand2tetris.el/"))]) -(namespaces . [(20130326 2250) nil "An implementation of namespaces for Elisp, with an emphasis on immutabilty." single ((:commit . "3d02525d9b9a5ae6e7be3adefd880121436e6270") (:authors ("Chris Barrett")) (:maintainer "Chris Barrett") (:url . "https://github.com/chrisbarrett/elisp-namespaces"))]) -(names . [(20180321 1155) ((emacs (24 1)) (cl-lib (0 5))) "Namespaces for emacs-lisp. Avoid name clobbering without hiding symbols." tar ((:commit . "d8baba5360e5253938a25d3e005455b6d2d86971") (:keywords "extensions" "lisp") (:authors ("Artur Malabarba" . "emacs@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com") (:url . "https://github.com/Malabarba/names"))]) -(nameless . [(20190429 1202) ((emacs (24 4))) "Hide package namespace in your emacs-lisp code" single ((:commit . "a3a1ce3ec0c5724bcbfe553d831bd4f6b3fe863a") (:keywords "convenience" "lisp") (:authors ("Artur Malabarba" . "emacs@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com") (:url . "https://github.com/Malabarba/nameless"))]) -(nameframe-projectile . [(20160928 403) ((nameframe (0 4 1 -2)) (projectile (0 13 0))) "Nameframe integration with Projectile" single ((:commit . "aafb8c5c5fbe0510e2f5d5b6b6b5dd0b73abe5d8") (:authors ("John Del Rosario" . "john2x@gmail.com")) (:maintainer "John Del Rosario" . "john2x@gmail.com") (:url . "https://github.com/john2x/nameframe"))]) -(nameframe-perspective . [(20170406 119) ((nameframe (0 4 1 -2)) (perspective (1 12))) "Nameframe integration with perspective.el" single ((:commit . "aafb8c5c5fbe0510e2f5d5b6b6b5dd0b73abe5d8") (:authors ("John Del Rosario" . "john2x@gmail.com")) (:maintainer "John Del Rosario" . "john2x@gmail.com") (:url . "https://github.com/john2x/nameframe"))]) -(nameframe . [(20171107 56) nil "Manage frames by name." single ((:commit . "aafb8c5c5fbe0510e2f5d5b6b6b5dd0b73abe5d8") (:authors ("John Del Rosario" . "john2x@gmail.com")) (:maintainer "John Del Rosario" . "john2x@gmail.com") (:url . "https://github.com/john2x/nameframe"))]) -(named-timer . [(20181120 2224) ((emacs (24 4))) "Simplified timer management for Emacs Lisp" single ((:commit . "670b81e3eddef2e7353a4eedc9553a85306445db") (:keywords "tools") (:authors ("Ryan C. Thompson")) (:maintainer "Ryan C. Thompson") (:url . "https://github.com/DarwinAwardWinner/emacs-named-timer"))]) -(name-this-color . [(20151014 2030) ((emacs (24)) (cl-lib (0 5)) (dash (2 11 0))) "Match RGB codes to names easily and precisely" single ((:commit . "e37cd1291d5d68d4c8d6386eab9cb9d94fd3bcfa") (:keywords "lisp" "color" "hex" "rgb" "shade" "name") (:url . "https://github.com/knl/name-this-color.el"))]) -(n4js . [(20150714 231) ((emacs (24)) (cypher-mode (0))) "Neo4j Shell" single ((:commit . "3991ed8975151d5e8d568e952362df810f7ffab7") (:keywords "neo4j" "shell" "comint") (:authors ("TruongTx" . "me@truongtx.me")) (:maintainer "TruongTx" . "me@truongtx.me") (:url . "https://github.com/tmtxt/n4js.el"))]) -(myterminal-controls . [(20190426 421) ((emacs (24))) "Quick toggle controls at a key-stroke" single ((:commit . "733cdd7ab4f172b6dca09720fc5ae7dbc248c822") (:keywords "convenience" "shortcuts") (:authors ("Mohammed Ismail Ansari" . "team.terminal@gmail.com")) (:maintainer "Mohammed Ismail Ansari" . "team.terminal@gmail.com") (:url . "http://ismail.teamfluxion.com"))]) -(mysql2sqlite . [(20170725 2216) nil "Convert mysql databases into sqlite databases." single ((:commit . "8e6e74451c942e2e92f90dc13222b95a7dbb285e"))]) -(mysql-to-org . [(20181012 2034) ((emacs (24 3)) (s (1 11 0))) "Minor mode to output the results of mysql queries to org tables" single ((:commit . "7c986065adcbe13a525e1da5db8aa4c80b0ef7a3") (:authors ("Tijs Mallaerts" . "tijs.mallaerts@gmail.com")) (:maintainer "Tijs Mallaerts" . "tijs.mallaerts@gmail.com"))]) -(mynt-mode . [(20150512 2049) ((virtualenvwrapper (20131514))) "Minor mode to work with the mynt static site generator" single ((:commit . "23d4489167bfa899634548cb41ed32fdeb3600c9") (:keywords "convenience") (:authors ("Christian Brassat")) (:maintainer "Christian Brassat") (:url . "https://github.com/crshd/mynt-mode"))]) -(mykie . [(20150808 2205) ((emacs (24 3)) (cl-lib (0 5))) "Command multiplexer: Register multiple functions to a keybind" tar ((:commit . "7676f0e883af1d1054e404e97691f3c13aba196f") (:keywords "emacs" "configuration" "keybind") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:url . "https://github.com/yuutayamada/mykie-el"))]) -(myanmar-input-methods . [(20160106 1537) nil "Emacs Input Method for Myanmar" single ((:commit . "9d4e0d6358c61bde7a2274e430ef71683faea32e") (:keywords "myanmar" "unicode" "keyboard") (:authors ("Ye Lin Kyaw" . "yelinkyaw@gmail.com")) (:maintainer "Ye Lin Kyaw" . "yelinkyaw@gmail.com") (:url . "http://github.com/yelinkyaw/emacs-myanmar-input-methods"))]) -(mxf-view . [(20180501 740) ((emacs (25))) "Simple MXF viewer" single ((:commit . "6ca3cc93d995fac5fc4d72275e1e984e9857ffcb") (:keywords "data" "multimedia") (:authors ("Tomotaka SUWA" . "tomotaka.suwa@gmail.com")) (:maintainer "Tomotaka SUWA" . "tomotaka.suwa@gmail.com") (:url . "https://github.com/t-suwa/mxf-view"))]) -(mwim . [(20181110 1900) nil "Switch between the beginning/end of line or code" single ((:commit . "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85") (:keywords "convenience") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/mwim.el"))]) -(mw-thesaurus . [(20180629 525) ((emacs (25))) "Merriam-Webster Thesaurus" single ((:commit . "aaa4b7b71b5b08535c294cad1517863167f97fa8") (:keywords "wp" "matching") (:authors ("Ag Ibragimov")) (:maintainer "Ag Ibragimov") (:url . "https://github.com/agzam/mw-thesaurus.el"))]) -(mvn . [(20181002 1617) nil "helpers for compiling with maven" single ((:commit . "ffa40235b7dabb6c6c165f64f32a963cde8031f0") (:keywords "compilation" "maven" "java") (:authors ("Andrew Gwozdziewycz" . "git@apgwoz.com")) (:maintainer "Andrew Gwozdziewycz" . "git@apgwoz.com") (:url . "https://github.com/apgwoz/mvn-el"))]) -(mutt-mode . [(20190302 1515) ((emacs (24))) "major mode for editing mutt configuration" single ((:commit . "92763c5ff9abbf4ef91ce15fa7cc6b23da1cfa2d") (:keywords "languages") (:authors ("Felix Weilbach" . "felix.weilbach@t-online.de")) (:maintainer "Felix Weilbach" . "felix.weilbach@t-online.de") (:url . "https://gitlab.com/flexw/mutt-mode"))]) -(mutant . [(20160124 1353) ((emacs (24 4)) (dash (2 1 0))) "An interface for the Mutant testing tool" single ((:commit . "de9cdefe48c880128a8f62c6699d7416e9c8ced1") (:keywords "mutant" "testing") (:authors ("Pedro Lambert")) (:maintainer "Pedro Lambert") (:url . "http://github.com/p-lambert/mutant.el"))]) -(mustard-theme . [(20170808 1319) ((emacs (24 0))) "an Emacs 24 theme based on Mustard (tmTheme)" single ((:commit . "3b15d992c79590d7ea2503004e2a863b57e274b5") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) -(mustang-theme . [(20170719 946) nil "port of vim's mustang theme" single ((:commit . "dda6d04803f1c9b196b620ef564e7768fee15de2") (:authors ("martin haesler")) (:maintainer "martin haesler") (:url . "http://github.com/mswift42/mustang-theme"))]) -(mustache-mode . [(20141024 1432) nil "A major mode for editing Mustache files." single ((:commit . "bf9897eb287ca47ced65d7d4e07ea61ea0aec39f") (:authors ("Tony Gentilcore") ("Chris Wanstrath") ("Daniel Hackney")) (:maintainer "Tony Gentilcore"))]) -(mustache . [(20170923 1233) ((ht (0 9)) (s (1 3 0)) (dash (1 2 0))) "a mustache templating library in emacs lisp" tar ((:commit . "5e39654b933a18131146a0f3b3e3dc55c5058124"))]) -(multitran . [(20190402 2004) ((emacs (24)) (cl-lib (0 5))) "Interface to multitran" single ((:commit . "a0521a3455f95638ab4c37ac112026928eab09a2") (:keywords "dictionary" "hypermedia") (:authors ("Zajcev Evgeny" . "zevlg@yandex.ru")) (:maintainer "Zajcev Evgeny" . "zevlg@yandex.ru"))]) -(multiple-cursors . [(20190317 1211) ((cl-lib (0 5))) "Multiple cursors for Emacs." tar ((:commit . "5ffb19af48bf8a76ddc9f81745be052f050bddef"))]) -(multifiles . [(20130615 2133) nil "View and edit parts of multiple files in one buffer" single ((:commit . "dddfe64b8e1c1cd1f9ccc1f03405477fc0d53897") (:keywords "multiple" "files") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(multicolumn . [(20150202 2251) nil "Creating and managing multiple side-by-side windows." single ((:commit . "c7a3afecd470859b2e60aa7c554d6e4d436df7fa") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/multicolumn"))]) -(multi-web-mode . [(20130824 354) nil "multiple major mode support for web editing" tar ((:commit . "ad1c8d1c870334052d244c7ae3636cb7b9357b7c") (:keywords "convenience" "languages" "wp") (:authors ("Fabián E. Gallina" . "fabian@anue.biz")) (:maintainer "Fabián E. Gallina" . "fabian@anue.biz") (:url . "https://github.com/fgallina/multi-web-mode"))]) -(multi-term . [(20160619 933) nil "Managing multiple terminal buffers in Emacs." single ((:commit . "f954e4e18b0a035151d34852387e724d87a3316f") (:keywords "term" "terminal" "multiple buffer") (:authors ("Andy Stewart" . "lazycat.manatee@gmail.com")) (:maintainer "Andy Stewart" . "lazycat.manatee@gmail.com") (:url . "http://www.emacswiki.org/emacs/download/multi-term.el"))]) -(multi-run . [(20190507 2349) ((emacs (24)) (window-layout (1 4))) "Efficiently manage multiple remote nodes" tar ((:commit . "c6256b0cc2876c29faf381d8324b31b911045a27") (:keywords "multiple shells" "multi-run" "remote nodes") (:authors ("Sagar Jha")) (:maintainer "Sagar Jha") (:url . "https://www.github.com/sagarjha/multi-run"))]) -(multi-project . [(20190217 1632) ((emacs (25))) "Find files, compile, and search for multiple projects." single ((:commit . "13bd8441223675783a59a411c9b086a0fc20a19d") (:keywords "convenience" "project" "management") (:authors ("Shawn Ellis" . "shawn.ellis17@gmail.com")) (:maintainer "Shawn Ellis" . "shawn.ellis17@gmail.com") (:url . "https://bitbucket.org/ellisvelo/multi-project/overview"))]) -(multi-line . [(20170822 226) ((emacs (24 3)) (s (1 9 0)) (cl-lib (0 5)) (dash (2 12 0)) (shut-up (0 3 2))) "multi-line statements" tar ((:commit . "d5ae863ced0adeb7032ada398005f27a6c669d79") (:keywords "multi" "line" "length" "whitespace" "programming" "tools" "convenience" "files") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:url . "https://github.com/IvanMalison/multi-line"))]) -(multi-compile . [(20160306 2223) ((emacs (24)) (dash (2 12 1))) "Multi target interface to compile." single ((:commit . "bd0331854774e7a269ce8a7dd49580cd397c0ec2") (:keywords "tools" "compile" "build") (:authors ("Kvashnin Vladimir" . "reangd@gmail.com")) (:maintainer "Kvashnin Vladimir" . "reangd@gmail.com") (:url . "https://github.com/ReanGD/emacs-multi-compile"))]) -(multi . [(20131013 1544) ((emacs (24))) "Clojure-style multi-methods for emacs lisp" single ((:commit . "0987ab71692717ed457cb3984de184db9185806d") (:keywords "multimethod" "generic" "predicate" "dispatch") (:authors ("Christina Whyte" . "kurisu.whyte@gmail.com")) (:maintainer "Christina Whyte" . "kurisu.whyte@gmail.com") (:url . "http://github.com/kurisuwhyte/emacs-multi"))]) -(muban . [(20180415 1219) ((emacs (25))) "Lightweight template expansion tool" single ((:commit . "7078e439ee0433a8fbd1cb174464496f9a9d00fa") (:keywords "abbrev" "tools") (:authors ("Jiahao Li" . "jiahaowork@gmail.com")) (:maintainer "Jiahao Li" . "jiahaowork@gmail.com") (:url . "https://github.com/jiahaowork/muban.el"))]) -(mu4e-query-fragments . [(20170923 1322) ((emacs (24 4))) "mu4e query fragments extension" single ((:commit . "34ddad4e6785f575333efcc66153d892daa1c884") (:keywords "mu4e" "mail" "convenience") (:authors ("Yuri D'Elia" . "wavexx@thregr.org")) (:maintainer "Yuri D'Elia" . "wavexx@thregr.org") (:url . "https://github.com/wavexx/mu4e-query-fragments.el"))]) -(mu4e-overview . [(20190421 612) ((emacs (26))) "Show overview of maildir" single ((:commit . "eb2d1e39c77c4725a8ee36dc68917aaf7b717b46") (:keywords "mail" "tools") (:authors ("MichaÅ‚ Krzywkowski" . "k.michal@zoho.com")) (:maintainer "MichaÅ‚ Krzywkowski" . "k.michal@zoho.com") (:url . "https://github.com/mkcms/mu4e-overview"))]) -(mu4e-maildirs-extension . [(20180606 812) ((dash (0 0 0))) "Show mu4e maildirs summary in mu4e-main-view" single ((:commit . "3ef4c48516be66e73d24fe764aadbcfc126b7964") (:authors ("Andreu Gil Pà mies" . "agpchil@gmail.com")) (:maintainer "Andreu Gil Pà mies" . "agpchil@gmail.com") (:url . "http://github.com/agpchil/mu4e-maildirs-extension"))]) -(mu4e-jump-to-list . [(20190419 1442) ((emacs (24 4)) (cl-lib (0 5))) "mu4e jump-to-list extension" single ((:commit . "358bba003543b49ffa266e503e54aebd0ebe614b") (:keywords "mu4e" "mail" "convenience") (:authors ("Yuri D'Elia" . "wavexx@thregr.org")) (:maintainer "Yuri D'Elia" . "wavexx@thregr.org") (:url . "https://github.com/wavexx/mu4e-jump-to-list.el"))]) -(mu4e-conversation . [(20190609 812) ((emacs (25 1))) "Show a complete thread in a single buffer" single ((:commit . "98110bb9c300fc9866dee8e0023355f9f79c9b96") (:keywords "mail" "convenience" "mu4e") (:authors ("Pierre Neidhardt" . "mail@ambrevar.xyz")) (:maintainer "Pierre Neidhardt" . "mail@ambrevar.xyz") (:url . "https://gitlab.com/Ambrevar/mu4e-conversation"))]) -(mu4e-alert . [(20190418 558) ((alert (1 2)) (s (1 10 0)) (ht (2 0)) (emacs (24 3))) "Desktop notification for mu4e" single ((:commit . "91f0657c5b245a9de57aa38391221fb5d141d9bd") (:keywords "mail" "convenience") (:authors ("Iqbal Ansari" . "iqbalansari02@yahoo.com")) (:maintainer "Iqbal Ansari" . "iqbalansari02@yahoo.com") (:url . "https://github.com/iqbalansari/mu4e-alert"))]) -(mu2tex . [(20190520 503) nil "Convert plain text molecule names and units to TeX" single ((:commit . "9467076ee4115d7fc19abaeadecc603e9115bf8d") (:keywords "tex") (:authors ("Carsten Dominik" . "dominik@.uva.nl")) (:maintainer "Carsten Dominik" . "dominik@.uva.nl") (:url . "https://github.com/cdominik/mu2tex"))]) -(mu-cite . [(20160130 1100) ((flim (1 14 9))) "A library to provide MIME features." tar ((:commit . "aea3c2d01eb3284d5e0124059d368e8c6b6ffddc"))]) -(mtg-deck-mode . [(20180613 2010) ((emacs (25 1))) "Major mode to edit MTG decks" tar ((:commit . "8265b8ed17fcd4406760c19aa6ee9c76068b1ab0") (:keywords "data" "mtg" "magic") (:authors ("Mattias Bengtsson" . "mattias.jc.bengtsson@gmail.com")) (:maintainer "Mattias Bengtsson" . "mattias.jc.bengtsson@gmail.com") (:url . "https://github.com/mattiasb/mtg-deck-mode"))]) -(msvc . [(20190426 1045) ((emacs (24)) (cl-lib (0 5)) (cedet (1 0)) (ac-clang (2 0 0))) "Microsoft Visual C/C++ mode" tar ((:commit . "c3b86fb517e95c9ae4d6b851984f4f4ed1864c06") (:keywords "languages" "completion" "syntax check" "mode" "intellisense") (:authors ("yaruopooner [https://github.com/yaruopooner]")) (:maintainer "yaruopooner [https://github.com/yaruopooner]") (:url . "https://github.com/yaruopooner/msvc"))]) -(ms-python . [(20190413 516) ((emacs (26 1)) (lsp-mode (5 0))) "A lsp client for microsoft python language server." single ((:commit . "d95ac8f1633764cdb4bb43bf44c2eb6b225f9f93") (:keywords "tools") (:authors ("Yong Cheng" . "xhcoding@163.com")) (:maintainer "Yong Cheng" . "xhcoding@163.com") (:url . "https://github.com/xhcoding/ms-python"))]) -(mqtt-mode . [(20180605 1731) ((emacs (25)) (dash (2 12 0))) "client for interaction with MQTT servers" single ((:commit . "36d1d4296d79e17b8f35e8e14f2708980eb502db") (:keywords "tools") (:authors ("Andreas Müller" . "code@0x7.ch")) (:maintainer "Andreas Müller" . "code@0x7.ch") (:url . "https://github.com/andrmuel/mqtt-mode"))]) -(mqr . [(20180527 1204) ((emacs (24 4))) "Multi-dimensional query and replace" single ((:commit . "4ade19d4620b8b61340290bf63fa56d5e493859f") (:keywords "convenience" "extensions" "lisp") (:authors ("Tino Calancha" . "tino.calancha@gmail.com")) (:maintainer "Tino Calancha" . "tino.calancha@gmail.com") (:url . "https://github.com/calancha/multi-replace"))]) -(mpv . [(20180602 1014) ((cl-lib (0 5)) (emacs (24)) (json (1 3)) (org (8 0))) "control mpv for easy note-taking" single ((:commit . "9dedf3b7c1bfd778284df7f394207ce0447ea7aa") (:keywords "tools" "multimedia") (:authors ("Johann Klähn" . "kljohann@gmail.com")) (:maintainer "Johann Klähn" . "kljohann@gmail.com") (:url . "https://github.com/kljohann/mpv.el"))]) -(mpmc-queue . [(20180303 2029) ((emacs (26 0)) (queue (0 2 0))) "a multiple-producer-multiple-consumer queue" single ((:commit . "df07d6bef7468edb1d73ef73b8331b94d0e5d0ca") (:keywords "lisp" "async") (:authors ("Sho Mizoe" . "sho.mizoe@gmail.com")) (:maintainer "Sho Mizoe" . "sho.mizoe@gmail.com") (:url . "https://github.com/smizoe/mpmc-queue"))]) -(mpdel . [(20190428 918) ((emacs (25 1)) (libmpdel (1 0 0))) "Play and control your MPD music" tar ((:commit . "a2da2f2fe2357641909514da788f7c6cbe5801f4") (:keywords "multimedia") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://gitlab.petton.fr/mpdel/mpdel"))]) -(mpages . [(20150710 1404) nil "An Emacs buffer for quickly writing your Morning Pages" single ((:commit . "39a72a0931ab1cdbfdf0ab9f412dc12d43a3829f") (:authors ("Sean Levin")) (:maintainer "Sean Levin") (:url . "https://github.com/slevin/mpages"))]) -(mozc-temp . [(20160228 840) ((emacs (24)) (dash (2 10 0)) (mozc (0))) "Use mozc temporarily" single ((:commit . "01f09b6c0b308e9f7057fb2aa80171e2ce328bb8") (:authors ("Hiroki YAMAKAWA" . "s06139@gmail.com")) (:maintainer "Hiroki YAMAKAWA" . "s06139@gmail.com") (:url . "https://github.com/HKey/mozc-temp"))]) -(mozc-popup . [(20150224 34) ((popup (0 5 2)) (mozc (0))) "Mozc with popup" single ((:commit . "f0684b875a7427ec08f8df13939a486e5d5cf420") (:keywords "i18n" "extentions") (:authors ("Daisuke Kobayashi" . "d5884jp@gmail.com")) (:maintainer "Daisuke Kobayashi" . "d5884jp@gmail.com"))]) -(mozc-im . [(20160412 22) ((mozc (0))) "Mozc with input-method-function interface." single ((:commit . "df614a1076c28a11551fb3e822868bae47e855a5") (:keywords "i18n" "extentions") (:authors ("Daisuke Kobayashi" . "d5884jp@gmail.com")) (:maintainer "Daisuke Kobayashi" . "d5884jp@gmail.com"))]) -(mozc . [(20180101 800) nil "minor mode to input Japanese with Mozc" single ((:commit . "afb03ddfe72dde4cf2409863a3bfea160f7a66d8") (:keywords "mule" "multilingual" "input method"))]) -(moz-controller . [(20151209 206) ((moz (0))) "Control Firefox from Emacs" single ((:commit . "46f665c03574fa922de767fc29795e0db4a7c5c6") (:authors ("任文山 (Ren Wenshan) <renws1990 at gmail.com>")) (:maintainer "任文山 (Ren Wenshan) <renws1990 at gmail.com>") (:url . "https://github.com/RenWenshan/emacs-moz-controller"))]) -(moz . [(20150805 1706) nil "Lets current buffer interact with inferior mozilla." single ((:commit . "ab3e79914445039ceb62f7f2dc342358fec3492e") (:authors ("Massimiliano Mirra, <bard [at] hyperstruct [dot] net>")) (:maintainer "Massimiliano Mirra, <bard [at] hyperstruct [dot] net>") (:url . "http://github.com/bard/mozrepl/raw/master/chrome/content/moz.el"))]) -(mowedline . [(20161122 235) nil "elisp utilities for using mowedline" single ((:commit . "6121b7d4aacd18f7b24da226e61dbae054e50a7c") (:authors ("John Foerch" . "jjfoerch@earthlink.net")) (:maintainer "John Foerch" . "jjfoerch@earthlink.net"))]) -(move-text . [(20170909 330) nil "Move current line or region with M-up or M-down." single ((:commit . "7cbc941a9150468609010a93c429117da2523903") (:keywords "edit") (:authors ("Jason Milkins" . "jasonm23@gmail.com")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com") (:url . "https://github.com/emacsfodder/move-text"))]) -(move-dup . [(20190408 1246) nil "Eclipse-like moving and duplicating lines or rectangles." single ((:commit . "19f1c075d939084279b190c38412b4cfda96840d") (:keywords "convenience" "text" "edit") (:authors ("Jimmy Yuen Ho Wong" . "wyuenho@gmail.com")) (:maintainer "Jimmy Yuen Ho Wong" . "wyuenho@gmail.com") (:url . "https://github.com/wyuenho/move-dup"))]) -(mouse-slider-mode . [(20161021 1914) ((emacs (24 3)) (cl-lib (0 3))) "scale numbers dragged under the mouse" single ((:commit . "b3c19cd231edecce76787c5a9bbe5e4046d91f88") (:authors ("Christopher Wellons" . "mosquitopsu@gmail.com")) (:maintainer "Christopher Wellons" . "mosquitopsu@gmail.com") (:url . "https://github.com/skeeto/mouse-slider-mode"))]) -(motion-mode . [(20140920 156) ((flymake-easy (0 7)) (flymake-cursor (1 0 2))) "major mode for RubyMotion enviroment" tar ((:commit . "4c94180e3ecea611a61240a0c0cd48f1032c4a55") (:authors ("Satoshi Namai")) (:maintainer "Satoshi Namai") (:url . "https://github.com/ainame/motion-mode"))]) -(mote-mode . [(20160123 29) ((ruby-mode (1 1))) "Mote minor mode" single ((:commit . "666c6641addbd3b337a7aa01fd2742ded2f41b83") (:authors ("Leandro López (inkel)" . "inkel.ar@gmail.com")) (:maintainer "Leandro López (inkel)" . "inkel.ar@gmail.com") (:url . "http://inkel.github.com/mote-mode/"))]) -(mosey . [(20180614 1649) ((emacs (24 4))) "Mosey around your buffers" single ((:commit . "2e3ac9d334fa2937ed5267193dfd25d8e1f14dc2") (:keywords "convenience") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/mosey.el"))]) -(morlock . [(20180318 2023) nil "more font-lock keywords for elisp" single ((:commit . "b883d48024ddfffebe2d0dd69f5ed54c617f8834") (:keywords "convenience") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/morlock"))]) -(morganey-mode . [(20170118 934) ((emacs (24 4))) "Major mode for editing Morganey files" single ((:commit . "5cf3870432a2aeb69d373abe63b3be1f325f6d21") (:authors ("Alexey Kutepov" . "reximkut@gmail.com")) (:maintainer "Alexey Kutepov" . "reximkut@gmail.com") (:url . "https://github.com/morganey-lang/morganey-mode"))]) -(moonscript . [(20170831 2226) ((cl-lib (0 5)) (emacs (24))) "Major mode for editing MoonScript code" tar ((:commit . "56f90471e2ced2b0a177aed4d8c2f854797e9cc7") (:authors ("@GriffinSchneider, @k2052, @EmacsFodder")) (:maintainer "@GriffinSchneider, @k2052, @EmacsFodder"))]) -(moom . [(20180910 438) ((emacs (25 1))) "Commands to control frame position and size" tar ((:commit . "a8820f19a8168ab395ba835872606280ad96916d") (:keywords "frames" "faces" "convenience") (:authors ("Takaaki ISHIKAWA <takaxp at ieee dot org>")) (:maintainer "Takaaki ISHIKAWA <takaxp at ieee dot org>") (:url . "https://github.com/takaxp/Moom"))]) -(moody . [(20190203 1747) ((emacs (25 3))) "Tabs and ribbons for the mode line" single ((:commit . "58af7973742bf381f5980413dfb21bf5f21b44f8") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/moody"))]) -(mood-one-theme . [(20190606 1111) ((emacs (24 4))) "A dark color scheme inspired by the Doom One theme." single ((:commit . "47fc825547664c3e3eb8f47f1a9cf74b23efc2c6") (:keywords "mode-line" "faces") (:authors ("Jessie Hildebrandt <jessieh.net>")) (:maintainer "Jessie Hildebrandt <jessieh.net>") (:url . "https://gitlab.com/jessieh/mood-one-theme"))]) -(mood-line . [(20190606 1046) ((emacs (24 4))) "A minimal mode-line inspired by doom-modeline." single ((:commit . "3560d8aafd8c856a218ff8fab5a30e1aa0db25b6") (:keywords "mode-line" "faces") (:authors ("Jessie Hildebrandt <jessieh.net>")) (:maintainer "Jessie Hildebrandt <jessieh.net>") (:url . "https://gitlab.com/jessieh/mood-line"))]) -(monroe . [(20190109 1347) nil "Yet another client for nREPL" single ((:commit . "2f472fdc09c1b36c291ddb5ed9aecc331fd7e082") (:keywords "languages" "clojure" "nrepl" "lisp") (:authors ("Sanel Zukan" . "sanelz@gmail.com")) (:maintainer "Sanel Zukan" . "sanelz@gmail.com") (:url . "http://www.github.com/sanel/monroe"))]) -(monotropic-theme . [(20181015 1230) ((emacs (24))) "Monotropic Theme" single ((:commit . "36df566aa8225e303f6c9d90c00740dd678a415e") (:authors ("caffo")) (:maintainer "caffo") (:url . "https://github.com/caffo/monotropic-theme"))]) -(monokai-theme . [(20180730 1329) nil "A fruity color theme for Emacs." single ((:commit . "f4ef092129f4a35edaee0a9b2219c17e86309730") (:authors ("Kelvin Smith" . "oneKelvinSmith@gmail.com")) (:maintainer "Kelvin Smith" . "oneKelvinSmith@gmail.com") (:url . "http://github.com/oneKelvinSmith/monokai-emacs"))]) -(monokai-pro-theme . [(20190425 2303) nil "A simple theme based on the Monokai Pro Sublime color schemes" single ((:commit . "747556c0cb38993c83ea8b6665869f42249d885a") (:authors ("Kaleb Elwert" . "kaleb@coded.io")) (:maintainer "Kaleb Elwert" . "kaleb@coded.io") (:url . "https://github.com/belak/emacs-monokai-pro-theme"))]) -(monokai-alt-theme . [(20170630 2048) ((emacs (24))) "Theme with a dark background. Based on sublime monokai theme." single ((:commit . "f342b6afc31f929be0626eca2d696ee9fab78011") (:authors ("Dmytro Koval")) (:maintainer "Dmytro Koval") (:url . "https://github.com/dawidof/emacs-monokai-theme"))]) -(monochrome-theme . [(20140326 1050) nil "A dark Emacs 24 theme for your focused hacking sessions" tar ((:commit . "bfca67fe7365310bc47ae9ca96c417caada54896") (:authors ("Xavier Noria" . "fxn@hashref.com")) (:maintainer "Xavier Noria" . "fxn@hashref.com"))]) -(monky . [(20190617 1457) nil "Control Hg from Emacs." tar ((:commit . "c319339803e44541a55b9c8f02a4e8ef84b6f98c") (:keywords "tools") (:authors ("Anantha kumaran" . "ananthakumaran@gmail.com")) (:maintainer "Anantha kumaran" . "ananthakumaran@gmail.com") (:url . "http://github.com/ananthakumaran/monky"))]) -(monitor . [(20161018 1144) ((dash (2 13 0))) "Utilities for monitoring expressions." tar ((:commit . "63f4643a0ee81616dbb692b8b03bae21df2283e2") (:keywords "lisp" "monitor" "utility") (:authors ("Ben Moon" . "software@guiltydolphin.com")) (:maintainer "Ben Moon" . "software@guiltydolphin.com") (:url . "https://github.com/guiltydolphin/monitor"))]) -(mongo . [(20150315 1219) nil "MongoDB driver for Emacs Lisp" tar ((:commit . "595529ddd70ecb9fab8b11daad2c3929941099d6") (:keywords "convenience") (:authors ("Tomohiro Matsuyama" . "m2ym.pub@gmail.com")) (:maintainer "Tomohiro Matsuyama" . "m2ym.pub@gmail.com"))]) -(molokai-theme . [(20151016 1545) nil "molokai theme with Emacs theme engine" single ((:commit . "04a44f21184b6a26caae4f2c92db9019d883309c") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/alloy-d/color-theme-molokai"))]) -(molecule . [(20180527 743) ((emacs (25 1))) "Simple wrapper for molecule" single ((:commit . "2ef72b81d9aa24ea782b71a061a3abdad6cae162") (:keywords ":" "languages" "terminals") (:authors (": drymer <drymer [ AT ] autistici.org>")) (:maintainer ": drymer <drymer [ AT ] autistici.org>") (:url . "https://git.daemons.it/drymer/molecule.el"))]) -(moe-theme . [(20180617 200) nil "A colorful eye-candy theme. Moe, moe, kyun!" tar ((:commit . "6e086d855d6bb446bbd1090742815589a81a915f") (:url . "https://github.com/kuanyui/moe-theme.el"))]) -(modtime-skip-mode . [(20140128 2201) nil "Minor mode for disabling modtime and supersession checks on files." single ((:commit . "c0e49523aa26b2263a8693691ac775988015f592") (:authors ("Jordon Biondo" . "biondoj@mail.gvsu.edu")) (:maintainer "Jordon Biondo" . "biondoj@mail.gvsu.edu") (:url . "http://www.github.com/jordonbiondo/modtime-skip-mode"))]) -(modern-cpp-font-lock . [(20190331 1528) nil "Font-locking for \"Modern C++\"" single ((:commit . "02f104701bc34c146d22e3143ae59ef362999098") (:keywords "languages" "c++" "cpp" "font-lock") (:authors ("Ludwig PACIFICI" . "ludwig@lud.cc")) (:maintainer "Ludwig PACIFICI" . "ludwig@lud.cc") (:url . "https://github.com/ludwigpacifici/modern-cpp-font-lock"))]) -(mode-line-debug . [(20180318 2225) nil "show status of `debug-on-error' in the mode-line" single ((:commit . "a0fcc394b07d2414bd6f722da10f1c7567333f6b") (:keywords "convenience" "lisp") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/mode-line-debug"))]) -(mode-line-bell . [(20181029 516) nil "Flash the mode line instead of ringing the bell" single ((:commit . "4985ba42f5a19f46ddbf9b3622453a9694995ce5") (:keywords "convenience") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com"))]) -(mode-icons . [(20190521 547) ((emacs (24)) (cl-lib (0 5))) "Show icons for modes" tar ((:commit . "33aad72386952308c69bb98956b6735b23628501") (:keywords "multimedia") (:authors ("Tom Willemse" . "tom@ryuslash.org")) (:maintainer "Tom Willemse" . "tom@ryuslash.org") (:url . "http://ryuslash.org/projects/mode-icons.html"))]) -(modalka . [(20190101 700) ((emacs (24 4))) "Easily introduce native modal editing of your own design" single ((:commit . "657d0b15c21558d4758b10bda401c806876a800c") (:keywords "modal" "editing") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/modalka"))]) -(mocker . [(20150917 154) ((eieio (1 3)) (el-x (0 2 4))) "mocking framework for emacs" single ((:commit . "6a1d7c9189bd721debd1a60707526e43a733f537") (:keywords "lisp" "testing") (:authors ("Yann Hodique" . "yann.hodique@gmail.com")) (:maintainer "Yann Hodique" . "yann.hodique@gmail.com"))]) -(mocha-snippets . [(20190417 1931) ((yasnippet (0 8 0))) "Yasnippets for the Mocha JS Testing Framework" tar ((:commit . "361a3809f755577406e109b9e44d473dfa7c08e0") (:keywords "test" "javascript") (:authors ("Charles Lowell" . "cowboyd@frontside.io")) (:maintainer "Charles Lowell" . "cowboyd@frontside.io"))]) -(mocha . [(20180321 2322) ((js2-mode (20150909)) (f (0 18))) "Run Mocha or Jasmine tests" single ((:commit . "33e1b521a8a8d0225df353b51f1e8a4588ee32d0") (:keywords "javascript" "mocha" "jasmine") (:authors ("Al Scott")) (:maintainer "Al Scott") (:url . "http://github.com/scottaj/mocha.el"))]) -(mobdebug-mode . [(20140110 346) ((lua-mode (20130419)) (emacs (24))) "Major mode for MobDebug" single ((:commit . "e1d483bc4e341c762bc5c0a8c52306a8d01ea0da") (:authors ("Shihpin Tseng" . "deftsp@gmail.com")) (:maintainer "Shihpin Tseng" . "deftsp@gmail.com") (:url . "https://github.com/deftsp/mobdebug-mode"))]) -(mo-vi-ment-mode . [(20181217 206) nil "Provide vi-like cursor movement that's easy on the fingers" single ((:commit . "e8b525ffc5faa31d36ecc5496b40f0f5c3603c08") (:keywords "convenience") (:authors ("Ajay MT" . "ajay.tatachar@gmail.com")) (:maintainer "Ajay MT" . "ajay.tatachar@gmail.com"))]) -(mo-git-blame . [(20160129 1759) nil "An interactive, iterative 'git blame' mode for Emacs" single ((:commit . "254a675eb794cdbbdef9fa2b4b7bb510b70089c0") (:keywords "tools") (:authors ("Moritz Bunkus" . "moritz@bunkus.org")) (:maintainer "Moritz Bunkus" . "moritz@bunkus.org"))]) -(mmt . [(20190101 707) ((emacs (24 1)) (cl-lib (0 3))) "Missing macro tools for Emacs Lisp" single ((:commit . "524ecbe637e558c92873a5c5df746c62cbd31b42") (:keywords "macro" "emacs-lisp") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/mmt"))]) -(mmm-mako . [(20121020 651) ((mmm-mode (0 4 8))) "MMM submode class for Mako Templates" single ((:commit . "5c9ff92137b547569264eeca1ab2a86e4ba12f55") (:authors ("Philip Jenvey" . "pjenvey@underboss.org")) (:maintainer "Philip Jenvey" . "pjenvey@underboss.org") (:url . "https://bitbucket.org/pjenvey/mmm-mako"))]) -(mmm-jinja2 . [(20170313 1420) ((mmm-mode (0 5 4))) "MMM submode class for Jinja2 Templates" single ((:commit . "c8cb763174fa2fb61b9a0e5e0ff8cb0210f8492f") (:authors ("Ben Hayden" . "hayden767@gmail.com")) (:maintainer "Ben Hayden" . "hayden767@gmail.com") (:url . "https://github.com/glynnforrest/mmm-jinja2"))]) -(mkdown . [(20140517 1418) ((markdown-mode (2 0))) "Pretty Markdown previews based on mkdown.com" tar ((:commit . "8e23de82719af6c5b53b52b3308a02b3a1fb872e") (:keywords "markdown") (:authors ("Andrew Tulloch")) (:maintainer "Andrew Tulloch") (:url . "https://github.com/ajtulloch/mkdown.el"))]) -(mixed-pitch . [(20190307 2210) ((emacs (24 3))) "Use a variable pitch, keeping fixed pitch where it's sensible" single ((:commit . "15bb9ec6d8be0812a46917205be6c3a1c78f68ff") (:authors ("J. Alexander Branham" . "branham@utexas.edu")) (:maintainer "J. Alexander Branham" . "branham@utexas.edu") (:url . "https://gitlab.com/jabranham/mixed-pitch"))]) -(mips-mode . [(20180502 1457) nil "Major-mode for MIPS assembly" single ((:commit . "75152fc78baa762af4f83602f6cb3c8b9bcebca3") (:keywords "languages" "mips" "assembly") (:authors ("Henrik Lissner <http://github/hlissner>")) (:maintainer "Henrik Lissner" . "henrik@lissner.net") (:url . "https://github.com/hlissner/emacs-mips-mode"))]) -(mip-mode . [(20151127 617) nil "virtual projects for emacs." single ((:commit . "7c88c383b4c7ed0a4c1dc397735f365c1fcb461c") (:keywords "workspaces" "workspace" "project" "projects" "mip-mode") (:authors ("Eeli Reilin" . "gaudecker@fea.st")) (:maintainer "Eeli Reilin" . "gaudecker@fea.st"))]) -(minor-mode-hack . [(20170926 34) nil "Change priority of minor-mode keymaps" single ((:commit . "9688994e23ccb2de568225ef125b41c46e5667c3") (:keywords "lisp") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/minor-mode-hack.el"))]) -(minizinc-mode . [(20180201 1450) ((emacs (24 1))) "Major mode for MiniZinc code" single ((:commit . "2512521ba7f8e263a06db88df663fc6b3cca7e16") (:keywords "languages" "minizinc") (:url . "http://github.com/m00nlight/minizinc-mode"))]) -(minitest . [(20160628 1820) ((dash (1 0 0))) "An Emacs mode for ruby minitest files" tar ((:commit . "1aadb7865c1dc69c201cecee275751ecec33a182") (:authors ("Arthur Neves")) (:maintainer "Arthur Neves") (:url . "https://github.com/arthurnn/minitest-emacs"))]) -(minions . [(20181030 2101) ((emacs (25 2)) (dash (2 13 0))) "A minor-mode menu for the mode line" single ((:commit . "62f1d60a0852b4f83f64e6fc4c199eea967a34f7") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/minions"))]) -(minimal-theme . [(20190113 2132) nil "A light/dark minimalistic Emacs 24 theme." tar ((:commit . "063b4d8ca33d55d04c341f0b2b777ec241a3e201") (:keywords "color" "theme" "minimal") (:authors ("Anler Hp <anler86 [at] gmail.com>")) (:maintainer "Anler Hp <anler86 [at] gmail.com>") (:url . "http://github.com/ikame/minimal-theme"))]) -(minimal-session-saver . [(20140508 2041) nil "Very lean session saver" single ((:commit . "cf654ac549850746dc21091746e4bcc1aef7668e") (:keywords "tools" "frames" "project") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/minimal-session-saver"))]) -(miniedit . [(20100419 1745) nil "Enhanced editing for minibuffer fields." single ((:commit . "e12bf659c3eb92dd8a4cb77642dc0865c54667a3"))]) -(minibuffer-cua . [(20130906 1134) nil "Make CUA mode's S-up/S-down work in minibuffer" single ((:commit . "adc4979a64f8b36e05960e9afa0746dfa9e2e4c7") (:keywords "completion" "editing") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/minibuffer-cua.el"))]) -(minibuffer-complete-cycle . [(20130813 1645) nil "Cycle through the *Completions* buffer" single ((:commit . "3df80135887d0169e02294a948711f6dfeca4a6f") (:keywords "completion") (:authors ("Akinori MUSHA" . "knu@iDaemons.org") ("Kevin Rodgers" . "ihs_4664@yahoo.com")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/minibuffer-complete-cycle"))]) -(minibuf-isearch . [(20151226 1943) nil "incremental search on minibuffer history" single ((:commit . "2846c6ac369ee623dad4cd3c8a7a6d9078965516") (:keywords "minibuffer" "history" "incremental search") (:authors ("Keiichiro Nagano" . "knagano@sodan.org") ("Hideyuki SHIRAI " . "shirai@meadowy.org")) (:maintainer "Keiichiro Nagano" . "knagano@sodan.org"))]) -(mini-header-line . [(20170621 1221) ((emacs (24 4))) "a minimal header-line" single ((:commit . "73b6724e0a26c4528d93768191c8aa59e6bce2e5") (:keywords "header-line" "mode-line") (:authors ("Johannes Goslar")) (:maintainer "Johannes Goslar") (:url . "https://github.com/ksjogo/mini-header-line"))]) -(mingus . [(20190106 1443) ((libmpdee (2 1))) "MPD Interface" tar ((:commit . "4223be618f57f10f18114a74393a71955b568884") (:keywords "multimedia" "elisp" "music" "mpd") (:authors ("Niels Giesen <pft on #emacs>")) (:maintainer "Niels Giesen <pft on #emacs>") (:url . "https://github.com/pft/mingus"))]) -(minesweeper . [(20150414 522) nil "play minesweeper in Emacs" single ((:commit . "d29af12fc6115399c11bdf7461a74cb810c97336") (:keywords "game" "fun" "minesweeper" "inane" "diversion") (:authors ("Zachary Kanfer" . "zkanfer@gmail.com")) (:maintainer "Zachary Kanfer" . "zkanfer@gmail.com") (:url . "https://bitbucket.org/zck/minesweeper.el"))]) -(milkode . [(20140927 529) nil "Command line search and direct jump with Milkode" single ((:commit . "ba97e2aeefa1d9d0b3835bf08edd0de248b0c513") (:keywords "milkode" "search" "grep" "jump" "keyword") (:authors ("ongaeshi")) (:maintainer "ongaeshi"))]) -(migemo . [(20190112 516) ((cl-lib (0 5))) "Japanese incremental search through dynamic pattern expansion" single ((:commit . "f42832c8ac462ecbec9a16eb781194f876fba64a") (:authors ("Satoru Takabayashi" . "satoru-t@is.aist-nara.ac.jp")) (:maintainer "Satoru Takabayashi" . "satoru-t@is.aist-nara.ac.jp") (:url . "https://github.com/emacs-jp/migemo"))]) -(midje-mode . [(20170809 403) ((cider (0 1 4)) (clojure-mode (1 0))) "Minor mode for running Midje tests in emacs" tar ((:commit . "10ad5b6084cd03d5cd268b486a7c3c246d85535f"))]) -(micgoline . [(20160415 326) ((emacs (24 3)) (powerline (2 3))) "powerline mode, color schemes from microsoft and google's logo." single ((:commit . "837504263bb1711203b0f7efecd6b7b5f272fae0") (:keywords "mode-line" "powerline" "theme") (:authors ("yzprofile" . "yzprofiles@gmail.com")) (:maintainer "yzprofile" . "yzprofiles@gmail.com") (:url . "https://github.com/yzprofile/micgoline"))]) -(mic-paren . [(20170731 1907) nil "advanced highlighting of matching parentheses" single ((:commit . "d0410c7d805c9aaf51a1bcefaaef092bed5824c4") (:keywords "languages" "faces" "parenthesis" "matching") (:authors ("Mikael Sjödin" . "mic@docs.uu.se") ("Klaus Berndl " . "berndl@sdm.de") ("Jonathan Kotta" . "jpkotta@gmail.com")) (:maintainer "ttn"))]) -(mhc . [(20190506 633) ((calfw (20150703))) "Message Harmonized Calendaring system." tar ((:commit . "88b5f938e57c28e9e2db202770f952fc0ecba945") (:keywords "calendar") (:authors ("Yoshinari Nomura" . "nom@quickhack.net")) (:maintainer "Yoshinari Nomura" . "nom@quickhack.net") (:url . "http://www.quickhack.net/mhc"))]) -(mgmtconfig-mode . [(20190324 1908) ((emacs (24 3))) "mgmt configuration management language" single ((:commit . "191a2495a5008ac76c25a6af0e832dff63571d27") (:keywords "languages") (:authors ("Peter Oliver" . "mgmtconfig@mavit.org.uk")) (:maintainer "Mgmt contributors <https://github.com/purpleidea/mgmt>") (:url . "https://github.com/purpleidea/mgmt/misc/emacs"))]) -(mexican-holidays . [(20190506 245) nil "Mexico holidays for Emacs calendar." single ((:commit . "663633be1d693f6081d7d000e05d15ddbf71aa10") (:keywords "calendar") (:authors ("Saúl Gutiérrez" . "me@sggc.me")) (:maintainer "Saúl Gutiérrez" . "me@sggc.me") (:url . "https://github.com/shopClerk/mexican-holidays"))]) -(mew . [(20190415 338) nil "Messaging in the Emacs World" tar ((:commit . "70d6da044a4f6ac8e40e489d4963b8a3d530b8a9") (:authors ("Kazu Yamamoto" . "Kazu@Mew.org")) (:maintainer "Kazu Yamamoto" . "Kazu@Mew.org"))]) -(metaweblog . [(20190212 238) ((xml-rpc (1 6 8))) "An emacs library to access metaweblog based weblogs" tar ((:commit . "ec85ea7ec97347573613a578d2e91d5f8be74bae"))]) -(metascript-mode . [(20150709 57) ((emacs (24 3))) "Major mode for the Metascript programming language" single ((:commit . "edb361c7b0e5de231e5334a17b90652fb1df78f9") (:keywords "languages" "metascript" "mjs") (:url . "http://github.com/metascript/metascript-mode"))]) -(metamorph . [(20180930 2028) ((emacs (24 4))) "Transform your buffers with lisp" single ((:commit . "d9dc7037b7eed7b3fe85ea50e91f332e3f831514") (:keywords "metaprogramming" "wp") (:authors ("Adam Niederer" . "adam.niederer@gmail.com")) (:maintainer "Adam Niederer" . "adam.niederer@gmail.com") (:url . "http://github.com/AdamNiederer/metamorph"))]) -(metalheart-theme . [(20160710 641) ((emacs (24))) "Low-contrast theme with a dark blue-green background." single ((:commit . "ec98ea2c11dc1213dae8cbe1fe0cee73ca138bb2") (:authors ("Martin Haesler")) (:maintainer "Martin Haesler"))]) -(meta-presenter . [(20190414 1720) nil "A simple multi-file presentation tool for Emacs" single ((:commit . "704a2e0f2a3e6bb72578e00eccb772dfcf0670fc") (:keywords "productivity" "presentation") (:authors ("Mohammed Ismail Ansari" . "team.terminal@gmail.com")) (:maintainer "Mohammed Ismail Ansari" . "team.terminal@gmail.com") (:url . "http://ismail.teamfluxion.com"))]) -(messages-are-flowing . [(20170219 120) nil "visible indication when composing \"flowed\" emails" single ((:commit . "ef879726957c850c3a5afd7f1118604991e37e32") (:keywords "mail") (:authors ("Magnus Henoch" . "magnus.henoch@gmail.com")) (:maintainer "Magnus Henoch" . "magnus.henoch@gmail.com"))]) -(meson-mode . [(20181115 2125) ((emacs (24 3))) "Major mode for the Meson build system files" single ((:commit . "b507a87455af906e6c49aa4af70eba5b1d1af9ef") (:keywords "languages" "tools") (:authors ("Michal Sojka" . "sojkam1@fel.cvut.cz")) (:maintainer "Michal Sojka" . "sojkam1@fel.cvut.cz") (:url . "https://github.com/wentasah/meson-mode"))]) -(mermaid-mode . [(20190503 1726) ((f (0 20 0)) (emacs (25 3))) "major mode for working with mermaid graphs" single ((:commit . "6b3cc82cf68528d9056dd3803dc5fab62300a44a") (:keywords "mermaid" "graphs" "tools" "processes") (:authors ("Adrien Brochard")) (:maintainer "Adrien Brochard") (:url . "https://github.com/abrochard/mermaid-mode"))]) -(merlin-eldoc . [(20190314 806) ((emacs (24 4)) (merlin (3 0))) "eldoc for OCaml and Reason" single ((:commit . "09760346e34ac22f2b55f43f0e36a2865c3b8026") (:keywords "merlin" "ocaml" "languages" "eldoc") (:authors ("Louis Roché" . "louis@louisroche.net")) (:maintainer "Louis Roché" . "louis@louisroche.net") (:url . "https://github.com/khady/merlin-eldoc"))]) -(merlin . [(20190531 949) nil "Mode for Merlin, an assistant for OCaml." tar ((:commit . "f64516562d582885a4e5451ed9eab858dc4ee224") (:keywords "ocaml" "languages") (:authors ("Frédéric Bour <frederic.bour(_)lakaban.net>")) (:maintainer "Frédéric Bour <frederic.bour(_)lakaban.net>") (:url . "https://github.com/ocaml/merlin"))]) -(mentor . [(20190511 1638) ((xml-rpc (1 6 9)) (seq (1 11)) (cl-lib (0 5)) (async (1 9 3))) "Frontend for the rTorrent bittorrent client" tar ((:commit . "b5e441b7dc077d5532a3818b5441e52baefad839") (:keywords "comm" "processes" "bittorrent") (:authors ("Stefan Kangas" . "stefankangas@gmail.com")) (:maintainer "Stefan Kangas" . "stefankangas@gmail.com"))]) -(memolist . [(20150804 1721) ((markdown-mode (22 0)) (ag (0 45))) "memolist.el is Emacs port of memolist.vim." single ((:commit . "c437a32d3955f859d9bbcbadf0911bbe27d877ff") (:keywords "markdown" "memo") (:authors ("mikanfactory <k952i4j14x17_at_gmail.com>")) (:maintainer "mikanfactory") (:url . "http://github.com/mikanfactory/emacs-memolist"))]) -(memoize . [(20180614 1930) nil "Memoization functions" single ((:commit . "9a561268ffb550b257a08710489a95cd087998b6") (:authors ("Christopher Wellons" . "mosquitopsu@gmail.com")) (:maintainer "Christopher Wellons" . "mosquitopsu@gmail.com") (:url . "https://github.com/skeeto/emacs-memoize"))]) -(melpa-upstream-visit . [(20130720 1033) ((s (1 6 0))) "A set of kludges to visit a melpa-hosted package's homepage" single ((:commit . "7310c74fdead3c0f86ad6eff76cf989e63f70f66") (:keywords "convenience") (:authors ("Alessandro Piras" . "laynor@gmail.com")) (:maintainer "Alessandro Piras" . "laynor@gmail.com"))]) -(mellow-theme . [(20170808 1317) ((emacs (24 0))) "an Emacs 24 theme based on Mellow (tmTheme)" single ((:commit . "2bdf18f05f5212b6f269d9a94afe2cf201766891") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) -(melancholy-theme . [(20190504 220) nil "No description available." single ((:commit . "37e7f9a83995d9a53cd4343843139660fa0ca59d"))]) -(meghanada . [(20190526 548) ((emacs (24 3)) (yasnippet (0 6 1)) (company (0 9 0)) (flycheck (0 23))) "A better java development mode" tar ((:commit . "24813cf364f1c857c2ee412d0a088f0ceff53842") (:keywords "languages" "java") (:authors ("Yutaka Matsubara" . "yutaka.matsubara@gmail.com")) (:maintainer "Yutaka Matsubara" . "yutaka.matsubara@gmail.com") (:url . "https://github.com/mopemope/meghanada-emacs"))]) -(mediawiki . [(20170813 555) nil "mediawiki frontend" single ((:commit . "8473e12d1839f5287a4227586bf117dad820f867") (:keywords "mediawiki" "wikipedia" "network" "wiki") (:authors ("Mark A. Hershberger" . "mah@everybody.org")) (:maintainer "Mark A. Hershberger" . "mah@everybody.org") (:url . "https://github.com/hexmode/mediawiki-el"))]) -(md4rd . [(20190313 240) ((emacs (25 1)) (hierarchy (0 7 0)) (request (0 3 0)) (cl-lib (0 6 1)) (dash (2 12 0)) (s (1 12 0)) (tree-mode (1 0 0))) "Mode for reddit (browse it)." single ((:commit . "443c8059af4925d11c93a1293663165c52472f08") (:keywords "ahungry" "reddit" "browse" "news") (:authors ("Matthew Carter" . "m@ahungry.com")) (:maintainer "Matthew Carter" . "m@ahungry.com") (:url . "https://github.com/ahungry/md4rd"))]) -(md-readme . [(20160811 1646) nil "Markdown-formatted READMEs for your ELisp" tar ((:commit . "bf818dd847c8b06b3b5100c5d3cf24cf96662528") (:keywords "lisp" "help" "readme" "markdown" "header" "documentation" "github") (:authors ("Thomas Kappler" . "tkappler@gmail.com")) (:maintainer "Thomas Kappler" . "tkappler@gmail.com") (:url . "http://github.com/thomas11/md-readme/tree/master"))]) -(mc-extras . [(20181109 1735) ((multiple-cursors (1 2 1))) "Extra functions for multiple-cursors mode." tar ((:commit . "053abc52181b8718559d7361a587bbb795faf164") (:keywords "editing" "cursors") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/mc-extras.el"))]) -(mbsync . [(20181002 640) nil "run mbsync to fetch mails" single ((:commit . "f549eccde6033449d24cd5b6148599484850c403") (:authors ("Dimitri Fontaine" . "dim@tapoueh.org")) (:maintainer "Dimitri Fontaine" . "dim@tapoueh.org") (:url . "https://github.com/dimitri/mbsync-el"))]) -(mbo70s-theme . [(20170808 1315) ((emacs (24 0))) "70s style palette, with similarities to mbo theme" single ((:commit . "bed3db8965708ed4e9482b224a9b084765c052f2") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) -(mbe . [(20151126 1134) ((emacs (24)) (cl-lib (0 5))) "Macros by Example" single ((:commit . "bb10aa8f26bb7e9b1d5746934c94edb00402940c") (:keywords "tools" "macros") (:authors ("Ian Price" . "ianprice90@googlemail.com")) (:maintainer "Ian Price" . "ianprice90@googlemail.com") (:url . "https://github.com/ijp/mbe.el"))]) -(mb-url . [(20181225 1724) ((cl-lib (0))) "Multiple Backends for Emacs URL package." tar ((:commit . "23078f2e59808890268401f294d860ba51bc71d9") (:url . "https://github.com/dochang/mb-url") (:keywords "url"))]) -(maxframe . [(20170120 1705) nil "maximize the emacs frame based on display size" single ((:commit . "daeb5c35bb677a23df69336b4843ea59517e57ed") (:keywords "display" "frame" "window" "maximize") (:authors ("Ryan McGeary")) (:maintainer "Ryan McGeary"))]) -(maven-test-mode . [(20141220 557) ((s (1 9)) (emacs (24))) "Utilities for navigating test files and running maven test tasks." single ((:commit . "a19151861df2ad8ae4880a2e7c86ddf848cb569a") (:keywords "java" "maven" "test") (:authors ("Renan Ranelli")) (:maintainer "Renan Ranelli") (:url . "http://github.com/rranelli/maven-test-mode"))]) -(maude-mode . [(20160222 1607) nil "Emacs mode for the programming language Maude" single ((:commit . "c9543bb8a172fa77af592388e7f520a4a6d38987") (:keywords "maude") (:authors ("Ellef Gjelstad <ellefg+maude*ifi.uio.no>")) (:maintainer "Rudi Schlatte" . "rudi@constantly.at"))]) -(matlab-mode . [(20180928 1526) nil "Major mode for MATLAB(R) dot-m files" tar ((:commit . "3fbca4259b2584bde08df07ba51944d7e3e2b4f4") (:url . "http://sourceforge.net/projects/matlab-emacs/") (:keywords "matlab" "programming" "language" "(X)emacs"))]) -(math-symbols . [(20170818 1459) ((helm (1 0))) "Math Symbol Input methods and conversion tools" tar ((:commit . "3f8b466f002e1b28ddbe9a6f236c9a1352adb17d") (:keywords "i18n" "languages" "tex") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "https://github.com/kawabata/math-symbols"))]) -(math-symbol-lists . [(20190605 2058) nil "Lists of Unicode math symbols and latex commands" tar ((:commit . "dc7531cff0c845d5470a50c24d5d7309b2ced7eb") (:keywords "unicode" "symbols" "mathematics") (:authors ("Vitalie Spinu" . "spinuvit@gmail.com")) (:maintainer "Vitalie Spinu" . "spinuvit@gmail.com") (:url . "https://github.com/vspinu/math-symbol-lists"))]) -(material-theme . [(20171123 1840) ((emacs (24 1))) "A Theme based on the colors of the Google Material Design" tar ((:commit . "b66838d220ad380a16da1d8878936974b26f815d") (:keywords "themes") (:authors ("Christoph Paulik" . "cpaulik@gmail.com")) (:maintainer "Christoph Paulik" . "cpaulik@gmail.com") (:url . "http://github.com/cpaulik/emacs-material-theme"))]) -(mastodon . [(20190305 344) ((emacs (24 4))) "Client for Mastodon" tar ((:commit . "5095797ef32b922d2a624fa6beb970b5e9cf5ca0") (:authors ("Johnson Denen" . "johnson.denen@gmail.com")) (:maintainer "Johnson Denen" . "johnson.denen@gmail.com") (:url . "https://github.com/jdenen/mastodon.el"))]) -(maruo-macro-mode . [(20160616 1349) ((emacs (24 3))) "Major mode for editing Hidemaru/Maruo macro script" single ((:commit . "8fc9a38ad051eafa8eb94038711acc52c5d1d8d5") (:keywords "programming" "editor" "macro") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me"))]) -(marshal . [(20180124 1239) ((eieio (1 4)) (json (1 3)) (ht (2 1))) "eieio extension for automatic (un)marshalling" single ((:commit . "f038689cbd5b3680b80b44edd0c7a63ca3038e26") (:keywords "eieio") (:authors ("Yann Hodique" . "hodiquey@vmware.com")) (:maintainer "Yann Hodique" . "hodiquey@vmware.com") (:url . "https://github.com/sigma/marshal.el"))]) -(marmalade-client . [(20141231 2007) ((web (0 5 2)) (kv (0 0 19)) (gh (0 8 0))) "client for marmalade API from emacs" tar ((:commit . "f315dea57e4fbebd9ee0668c0bafd4c45c7b754a") (:keywords "lisp") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk") (:url . "https://github.com/nicferrier/emacs-marmalade-upload"))]) -(markup-faces . [(20141110 817) nil "collection of faces for markup language modes" single ((:commit . "98a807ed82473eb41c6a201ed7ef816d6bcd67b0") (:keywords "wp" "faces") (:authors ("Florian Kaufmann" . "sensorflo@gmail.com")) (:maintainer "Florian Kaufmann" . "sensorflo@gmail.com") (:url . "https://github.com/sensorflo/markup-faces"))]) -(markup . [(20170420 1129) ((cl-lib (0 5))) "Simple markup generation helpers." single ((:commit . "876da2d3f23473475bb0fd0a1480ae11d2671291") (:keywords "convenience" "markup" "html") (:authors ("Arthur Leonard Andersen" . "leoc.git@gmail.com")) (:maintainer "Arthur Leonard Andersen" . "leoc.git@gmail.com") (:url . "http://github.com/leoc/markup.el"))]) -(markless . [(20190306 1002) ((emacs (24 4))) "Major mode for Markless documents" single ((:commit . "78632f86e3b5a1e3d74b2ab86f4c95b10e5eae94") (:keywords "languages" "wp") (:authors ("Nicolas Hafner" . "shinmera@tymoon.eu")) (:maintainer "Nicolas Hafner" . "shinmera@tymoon.eu") (:url . "http://github.com/shirakumo/markless.el/"))]) -(markdownfmt . [(20160609 1241) ((emacs (24))) "Format markdown using markdownfmt" single ((:commit . "187a74eb4fd9e8520ce08da42d1d292b9af7f2b7") (:keywords "markdown") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/emacs-markdownfmt"))]) -(markdown-toc . [(20170711 1949) ((s (1 9 0)) (dash (2 11 0)) (markdown-mode (2 1))) "A simple TOC generator for markdown file" tar ((:commit . "7038f4f6d5c2bc7e4aea89699a607ac2b7dd16a8"))]) -(markdown-preview-mode . [(20181213 1339) ((emacs (24 3)) (websocket (1 6)) (markdown-mode (2 0)) (cl-lib (0 5)) (web-server (0 1 1))) "markdown realtime preview minor mode." tar ((:commit . "f98d9114ca87e3e8e5ce70e601d13061eda15415") (:keywords "markdown" "gfm" "convenience") (:authors ("Igor Shymko" . "igor.shimko@gmail.com")) (:maintainer "Igor Shymko" . "igor.shimko@gmail.com") (:url . "https://github.com/ancane/markdown-preview-mode"))]) -(markdown-preview-eww . [(20160111 1502) ((emacs (24 4))) "Realtime preview by eww" single ((:commit . "5853f836425c877c8a956501f0adda137ef1d3b7") (:authors ("niku" . "niku@niku.name")) (:maintainer "niku" . "niku@niku.name") (:url . "https://github.com/niku/markdown-preview-eww"))]) -(markdown-mode . [(20190305 319) ((emacs (24 4)) (cl-lib (0 5))) "Major mode for Markdown-formatted text" single ((:commit . "115f77df9755c6a453f3e5d9623ff885d207ea82") (:keywords "markdown" "github flavored markdown" "itex") (:authors ("Jason R. Blevins" . "jblevins@xbeta.org")) (:maintainer "Jason R. Blevins" . "jblevins@xbeta.org") (:url . "https://jblevins.org/projects/markdown-mode/"))]) -(markdown-mode+ . [(20170320 2104) ((markdown-mode (20111229))) "extra functions for markdown-mode" tar ((:commit . "411d079f4430a33c34ec0bbcb1535fe1145a2509") (:keywords "markdown" "latex" "osx" "rtf") (:authors ("Donald Ephraim Curtis")) (:maintainer "Donald Ephraim Curtis") (:url . "http://github.com/milkypostman/markdown-mode-plus"))]) -(mark-tools . [(20130614 1025) nil "Some simple tools to access the mark-ring in Emacs" single ((:commit . "a11b61effa90bd0abc876d12573674d36fc17f0c") (:authors ("Alex Bennée" . "alex@bennee.com")) (:maintainer "Alex Bennée" . "alex@bennee.com") (:url . "https://github.com/stsquad/emacs-mark-tools"))]) -(mark-multiple . [(20121118 1554) nil "Sorta lets you mark several regions at once." tar ((:commit . "f6a53c7c5283d640ae718f4548b0fda78877a375"))]) -(marcopolo . [(20160421 1004) ((s (1 9 0)) (dash (2 9 0)) (pkg-info (0 5 0)) (request (0 1 0))) "Emacs client to the Docker HUB/Registry API" tar ((:commit . "9193aabdf12223087b5ed58f1507d5d8a24a4381") (:keywords "docker") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/marcopolo"))]) -(map-regexp . [(20190128 18) ((cl-lib (0 6 1))) "map over matches of a regular expression" single ((:commit . "ae2d1c22f786ad987aef3e319925e80160a887a0") (:keywords "convenience") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/map-regexp"))]) -(map-progress . [(20190128 16) ((cl-lib (0 6 1))) "mapping macros that report progress" single ((:commit . "1fb916159cd054c233ce3c80d9d01adfae640297") (:keywords "convenience") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/map-progress"))]) -(mandoku-tls . [(20171118 240) ((emacs (24 4)) (mandoku (20170301)) (github-clone (0 2)) (hydra (0 13 6)) (helm (1 7 0)) (org (9 0)) (helm-charinfo (20170601))) "A tool to access the TLS database" single ((:commit . "ffeebf5bd451ac1806ddfe1744fbbd036a56f902") (:keywords "convenience") (:authors ("Christian Wittern" . "cwittern@gmail.com")) (:maintainer "Christian Wittern" . "cwittern@gmail.com") (:url . "https://github.com/mandoku/mandoku-tls"))]) -(mandoku . [(20180403 1106) ((org (8 0)) (magit (20151028)) (github-clone (20150705)) (git (20140128))) "A tool to access repositories of premodern Chinese texts" tar ((:commit . "d65dbaa329ecf931f4142be72862972ea6a24e63"))]) -(mandm-theme . [(20180915 1940) nil "An M&M color theme." single ((:commit . "b560aa0129c55a2f4fcc5e67a7d6c66ee4dc3124") (:authors ("Christian Hopps" . "chopps@gmail.com")) (:maintainer "Christian Hopps" . "chopps@gmail.com") (:url . "https://github.com/choppsv1/emacs-mandm-theme.git"))]) -(manage-minor-mode . [(20140310 1600) ((emacs (24 3))) "Manage your minor-modes easily" single ((:commit . "1bed33b0752380b548b822fe72e6858c5fe70c8e") (:keywords "minor-mode" "manage" "emacs") (:authors ("Shingo Fukuyama - http://fukuyama.co")) (:maintainer "Shingo Fukuyama - http://fukuyama.co") (:url . "https://github.com/ShingoFukuyama/manage-minor-mode"))]) -(man-commands . [(20151221 2221) ((cl-lib (0 5))) "Add interactive commands for every manpages installed in your computer." single ((:commit . "f4ba0c3790855d7544dff92d470d212f24de1d9d") (:authors ("Nathaniel Flath" . "nflath@gmail.com")) (:maintainer "Nathaniel Flath" . "nflath@gmail.com") (:url . "http://github.com/nflath/man-commands"))]) -(malyon . [(20161208 2125) ((cl-lib (0 5))) "mode to execute Z-code files version 3, 5, 8" single ((:commit . "0d9882650720b4a791556f5e2d917388965d6fc0") (:keywords "games" "emulations") (:authors ("Peter Ilberg <peter.ilberg@gmail.com>, Christopher Madsen <cjm@cjmweb.net>, Erik Selberg" . "erik@selberg.org")) (:maintainer "Christopher Madsen <cjm@cjmweb.net>, Erik Selberg" . "erik@selberg.org") (:url . "https://github.com/speedenator/malyon"))]) -(mallard-snippets . [(20131023 1851) ((yasnippet (0 8 0)) (mallard-mode (0 1 1))) "Yasnippets for Mallard" tar ((:commit . "70c5293f10722f2ace73bdf74d9a18f95b040edc") (:keywords "snippets" "mallard") (:authors ("Jaromir Hradilek" . "jhradilek@gmail.com")) (:maintainer "Jaromir Hradilek" . "jhradilek@gmail.com") (:url . "https://github.com/jhradilek/emacs-mallard-snippets"))]) -(mallard-mode . [(20131204 425) nil "Major mode for editing Mallard files" tar ((:commit . "c48170c1ace4959abcc5fb1df0d4cb149cff44c1") (:keywords "xml" "mallard") (:authors ("Jaromir Hradilek" . "jhradilek@gmail.com")) (:maintainer "Jaromir Hradilek" . "jhradilek@gmail.com") (:url . "https://github.com/jhradilek/emacs-mallard-mode"))]) -(malinka . [(20171202 1021) ((s (1 9 0)) (dash (2 4 0)) (f (0 11 0)) (cl-lib (0 3)) (rtags (0 0)) (projectile (0 11 0))) "A C/C++ project configuration package for Emacs" single ((:commit . "d4aa517c7a9022eae16c758c7efdb3a0403542d7") (:keywords "c" "c++" "project-management") (:authors ("Lefteris Karapetsas" . "lefteris@refu.co")) (:maintainer "Lefteris Karapetsas" . "lefteris@refu.co") (:url . "https://github.com/LefterisJP/malinka"))]) -(makey . [(20131231 1430) ((cl-lib (0 2))) "interactive commandline mode" single ((:commit . "a61781e69d3b451551e269446e1c5f624ab81137") (:authors ("Mickey Petersen" . "mickey@masteringemacs.org")) (:maintainer "Mickey Petersen" . "mickey@masteringemacs.org"))]) -(makefile-executor . [(20180720 832) ((emacs (24 3)) (dash (2 11 0)) (f (0 11 0)) (s (1 10 0))) "Commands for conveniently running makefile targets" single ((:commit . "9a7d78f814a4b372d8f8179819cb1b37b83b1973") (:keywords "processes") (:authors ("Lowe Thiderman" . "lowe.thiderman@gmail.com")) (:maintainer "Lowe Thiderman" . "lowe.thiderman@gmail.com") (:url . "https://github.com/thiderman/makefile-executor.el"))]) -(make-it-so . [(20180128 2107) ((swiper (0 8 0)) (emacs (24))) "Transform files with Makefile recipes." tar ((:commit . "bc3b01d6b9ed6ff66ebbd524234f9d6df60dd4be") (:keywords "make" "dired") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/make-it-so"))]) -(make-color . [(20140625 1150) nil "Alternative to picking color - update fg/bg color by pressing r/g/b/... keys" single ((:commit . "5ca1383ca9228bca82120b238bdc119f302b75c0") (:keywords "color") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/make-color.el"))]) -(major-mode-icons . [(20170301 714) ((emacs (24 3)) (powerline (2 4)) (all-the-icons (2 3 0))) "display icon for major-mode on mode-line." tar ((:commit . "e6117a236b2ad52e948576550b183053321dfc91") (:keywords "frames" "multimedia") (:url . "http://github.com/stardiviner/major-mode-icons"))]) -(major-mode-hydra . [(20190227 346) ((dash (2 15 0)) (pretty-hydra (0 1 1)) (emacs (25))) "Major mode keybindings managed by Hydra" single ((:commit . "a93eb369e0ffd553f1fe9da2cdb7cee2edd02206") (:authors ("Jerry Peng" . "pr2jerry@gmail.com")) (:maintainer "Jerry Peng" . "pr2jerry@gmail.com") (:url . "https://github.com/jerrypnz/major-mode-hydra.el"))]) -(majapahit-theme . [(20160817 1848) nil "Color theme with a dark and light versions" tar ((:commit . "77c96df7619666b2102d90d452eeadf04adc89a6") (:keywords "color" "theme") (:url . "https://gitlab.com/franksn/majapahit-theme"))]) -(magnatune . [(20151030 1935) ((dash (2 9 0)) (s (1 9 0))) "browse magnatune's music catalog" tar ((:commit . "605b01505ba30589c77ebb4c96834b5072ccbdd4"))]) -(magma-mode . [(20181205 1708) ((cl-lib (0 3)) (dash (2 6 0)) (f (0 17 1))) "Magma mode for Emacs" tar ((:commit . "9b734abbdf15fddecb58dc9eed1cbc39b78be2e1") (:url . "https://github.com/ThibautVerron/magma-mode"))]) -(magithub . [(20190512 2316) ((emacs (25)) (magit (2 12)) (s (1 12 0)) (ghub+ (0 3)) (git-commit (2 12)) (markdown-mode (2 3))) "Magit interfaces for GitHub" tar ((:commit . "9fb9c653d0dad3da7ccff3ae321fa6e54c08f41b") (:keywords "git" "tools" "vc") (:authors ("Sean Allred" . "code@seanallred.com")) (:maintainer "Sean Allred" . "code@seanallred.com") (:url . "https://github.com/vermiculus/magithub"))]) -(magit-topgit . [(20160313 1954) ((emacs (24 4)) (magit (2 1 0))) "TopGit extension for Magit" single ((:commit . "11489ea798bc88d0ea5244bbf725285eedfefbef") (:keywords "vc" "tools") (:authors ("Yann Hodique" . "yann.hodique@gmail.com")) (:maintainer "Robin Green" . "greenrd@greenrd.org"))]) -(magit-todos . [(20190508 757) ((emacs (25 2)) (async (1 9 2)) (dash (2 13 0)) (f (0 17 2)) (hl-todo (1 9 0)) (magit (2 13 0)) (pcre2el (1 8)) (s (1 12 0))) "Show source file TODOs in Magit" single ((:commit . "3c59aa03b217b55b1baa0e88470e10996aaeea9b") (:keywords "magit" "vc") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/magit-todos"))]) -(magit-tbdiff . [(20190507 236) ((emacs (24 4)) (magit (2 10 0))) "Magit extension for range diffs" single ((:commit . "fcde2e718974acb2b8905b623e0eca74c58b6b0f") (:keywords "vc" "tools") (:authors ("Kyle Meyer" . "kyle@kyleam.com")) (:maintainer "Kyle Meyer" . "kyle@kyleam.com") (:url . "https://github.com/magit/magit-tbdiff"))]) -(magit-svn . [(20190324 1459) ((emacs (24 4)) (magit (2 1 0))) "Git-Svn extension for Magit" single ((:commit . "f7dad9b0f6b81b23550ea5cca0f3219f184b746c") (:keywords "vc" "tools") (:authors ("Phil Jackson" . "phil@shellarchive.co.uk")) (:maintainer "Phil Jackson" . "phil@shellarchive.co.uk"))]) -(magit-stgit . [(20190313 1155) nil "No description available." single ((:commit . "d1ba02851071326bc2d58dd8e95093c666e3ceb8"))]) -(magit-reviewboard . [(20190211 2244) ((emacs (25 2)) (magit (2 13 0)) (s (1 12 0)) (request (0 3 0))) "Show open Reviewboard reviews in Magit" single ((:commit . "f3d5ed914243e3930f9c06f59021305e7e43e67d") (:keywords "magit" "vc") (:authors ("Jules Tamagnan" . "jtamagnan@gmail.com")) (:maintainer "Jules Tamagnan" . "jtamagnan@gmail.com") (:url . "http://github.com/jtamagnan/magit-reviewboard"))]) -(magit-rbr . [(20181009 2016) ((magit (2 13 0)) (emacs (24 3))) "Support for git rbr in Magit" single ((:commit . "029203b3e48537205052a058e964f058cd802c3c") (:keywords "git" "magit" "rbr" "tools") (:authors ("Anatoly Fayngelerin" . "fanatoly+magitrbr@gmail.com")) (:maintainer "Anatoly Fayngelerin" . "fanatoly+magitrbr@gmail.com") (:url . "https://github.com/fanatoly/magit-rbr"))]) -(magit-popup . [(20190223 2234) ((emacs (24 4)) (async (1 9 2)) (dash (2 13 0))) "Define prefix-infix-suffix command combos" tar ((:commit . "4250c3a606011e3ff2477e3b5bbde2b493f3c85c") (:keywords "bindings") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/magit-popup"))]) -(magit-p4 . [(20170414 1246) ((magit (2 1)) (magit-popup (2 1)) (p4 (12 0)) (cl-lib (0 5))) "git-p4 plug-in for Magit" single ((:commit . "01e8bb24830861c50109878812550b4265cba82b") (:keywords "vc" "tools") (:authors ("Damian T. Dobroczy\\\\'nski" . "qoocku@gmail.com")) (:maintainer "Aleksey Fedotov" . "lexa@cfotr.com") (:url . "https://github.com/qoocku/magit-p4"))]) -(magit-org-todos . [(20180709 1950) ((magit (2 0 0)) (emacs (24))) "Add local todo items to the magit status buffer" single ((:commit . "9ffa3efb098434d837cab4bacd1601fdfc6fe999") (:keywords "org-mode" "magit" "tools") (:authors ("Daniel Ma")) (:maintainer "Daniel Ma") (:url . "http://github.com/danielma/magit-org-todos"))]) -(magit-libgit . [(20190419 1545) ((emacs (26 1)) (magit (0)) (libgit (0))) "Libgit functionality" single ((:commit . "66fa30b5ebeefa4dd4adf2c8f4f917262dbe5da1") (:keywords "git" "tools" "vc") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/magit"))]) -(magit-lfs . [(20190504 1909) ((emacs (24 4)) (magit (2 10 3)) (dash (2 13 0))) "Magit plugin for Git LFS" single ((:commit . "5ff5648158413aec01ba178f349c33862e6e140a") (:keywords "magit" "git" "lfs" "tools" "vc") (:authors ("Junyoung Clare Jang" . "jjc9310@gmail.com")) (:maintainer "Junyoung Clare Jang" . "jjc9310@gmail.com") (:url . "https://github.com/ailrun/magit-lfs"))]) -(magit-imerge . [(20190219 553) ((emacs (24 4)) (magit (2 10 0))) "Magit extension for git-imerge" single ((:commit . "54f2e25eb5f9e9763a60808ecfc1edef7f276ce0") (:keywords "vc" "tools") (:authors ("Kyle Meyer" . "kyle@kyleam.com")) (:maintainer "Kyle Meyer" . "kyle@kyleam.com") (:url . "https://github.com/magit/magit-imerge"))]) -(magit-gitflow . [(20170929 824) ((magit (2 1 0)) (magit-popup (2 2 0))) "gitflow extension for magit" single ((:commit . "cc41b561ec6eea947fe9a176349fb4f771ed865b") (:keywords "vc" "tools") (:authors ("Jan Tatarik" . "Jan.Tatarik@gmail.com")) (:maintainer "Jan Tatarik" . "Jan.Tatarik@gmail.com") (:url . "https://github.com/jtatarik/magit-gitflow"))]) -(magit-gh-pulls . [(20180716 1636) ((emacs (24 4)) (gh (0 9 1)) (magit (2 12 0)) (pcache (0 2 3)) (s (1 6 1))) "GitHub pull requests extension for Magit" single ((:commit . "6949e973f3e951cb0bfe75d889e0fcccc33ba733") (:keywords "git" "tools") (:authors ("Yann Hodique" . "yann.hodique@gmail.com")) (:maintainer "Yann Hodique" . "yann.hodique@gmail.com") (:url . "https://github.com/sigma/magit-gh-pulls"))]) -(magit-gerrit . [(20160226 930) ((magit (2 3 1))) "Magit plugin for Gerrit Code Review" single ((:commit . "ece6f369694aca17f3ac166ed2801b432acfe20d") (:authors ("Brian Fransioli" . "assem@terranpro.org")) (:maintainer "Brian Fransioli" . "assem@terranpro.org") (:url . "https://github.com/terranpro/magit-gerrit"))]) -(magit-find-file . [(20150702 830) ((magit (2 1 0)) (dash (2 8 0))) "completing-read over all files in Git" single ((:commit . "c3ea91bab37d10a814a829728ec972811f728d60") (:keywords "git") (:authors ("Bradley Wright" . "brad@intranation.com")) (:maintainer "Bradley Wright" . "brad@intranation.com") (:url . "https://github.com/bradleywright/magit-find-file.el"))]) -(magit-filenotify . [(20151116 2340) ((magit (1 3 0)) (emacs (24 4))) "Refresh status buffer when git tree changes" single ((:commit . "c0865b3c41af20b6cd89de23d3b0beb54c8401a4") (:keywords "tools") (:authors ("Rüdiger Sonderfeld" . "ruediger@c-plusplus.de")) (:maintainer "Rüdiger Sonderfeld" . "ruediger@c-plusplus.de"))]) -(magit-diff-flycheck . [(20190524 551) ((magit (2)) (flycheck (31)) (seq (2)) (emacs (25 1))) "Report errors in diffs" single ((:commit . "28acf74f59e385865746cccf4b1e4c4025ae9433") (:keywords "convenience" "matching") (:authors ("Alex Ragone" . "ragonedk@gmail.com")) (:maintainer "Alex Ragone" . "ragonedk@gmail.com") (:url . "https://github.com/ragone/magit-diff-flycheck"))]) -(magit-annex . [(20190421 241) ((cl-lib (0 3)) (magit (2 90 0))) "Control git-annex from Magit" single ((:commit . "d5d819c609256a3b7b11ccaf6664be61aa3597b6") (:keywords "vc" "tools") (:authors ("Kyle Meyer" . "kyle@kyleam.com") ("Rémi Vanicat" . "vanicat@debian.org")) (:maintainer "Kyle Meyer" . "kyle@kyleam.com") (:url . "https://github.com/magit/magit-annex"))]) -(magit . [(20190617 1527) ((emacs (25 1)) (async (20180527)) (dash (20180910)) (git-commit (20181104)) (transient (20190528)) (with-editor (20181103))) "A Git porcelain inside Emacs." tar ((:commit . "66fa30b5ebeefa4dd4adf2c8f4f917262dbe5da1") (:keywords "git" "tools" "vc"))]) -(magik-mode . [(20190616 1606) nil "mode for editing Magik + some utils." tar ((:commit . "eb672bbb35093f4e819bbe85ffbb7db733d13049") (:keywords "languages") (:url . "http://github.com/roadrunner1776/magik"))]) -(magic-latex-buffer . [(20170531 5) ((cl-lib (0 5)) (emacs (24 3))) "Magically enhance LaTeX-mode font-locking for semi-WYSIWYG editing" single ((:commit . "c03277d5619d9adcd871f3e6480a1a27985810cb") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(magic-filetype . [(20180219 1552) ((emacs (24)) (s (1 9 0))) "Enhance filetype major mode" single ((:commit . "019494add5ff02dd36cb3f500142fc51125522cc") (:keywords "emulations" "vim" "ft" "file" "magic-mode") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/magic-filetype.el"))]) -(mag-menu . [(20150505 1850) ((splitter (0 1 0))) "Intuitive keyboard-centric menu system" single ((:commit . "9b9277021cd09fb1dba64b1d2a00705d20914bd6") (:keywords "convenience") (:authors ("Steven Thomas")) (:maintainer "Steven Thomas") (:url . "https://github.com/chumpage/mag-menu"))]) -(madhat2r-theme . [(20170203 30) ((emacs (24))) "dark color theme that is easy on the eyes" single ((:commit . "6b387f09de055cfcc15d74981cd4f32f8f9a7323") (:keywords "color" "theme") (:authors ("Micah Duke")) (:maintainer "Micah Duke") (:url . "https://github.com/madhat2r/madhat2r-theme"))]) -(macrostep . [(20161120 2106) ((cl-lib (0 5))) "interactive macro expander" tar ((:commit . "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267") (:keywords "lisp" "languages" "macro" "debugging") (:authors ("joddie" . "j.j.oddie@gmail.com")) (:maintainer "joddie" . "j.j.oddie@gmail.com") (:url . "https://github.com/joddie/macrostep"))]) -(macro-math . [(20130328 1604) nil "in-buffer mathematical operations" single ((:commit . "216e59371e9ee39c34117ba79b9acd78bb415750") (:keywords "convenience") (:authors ("Nikolaj Schumacher <bugs * nschum de>")) (:maintainer "Nikolaj Schumacher <bugs * nschum de>") (:url . "http://nschum.de/src/emacs/macro-math/"))]) -(maces-game . [(20170903 1551) ((dash (2 12 0)) (cl-lib (0 5)) (emacs (24))) "another anagram game." tar ((:commit . "c0fb795f5642467ea528d2f04d904547e8a77ecd") (:keywords "games" "word games" "anagram") (:authors ("Pawel Bokota" . "pawelb.lnx@gmail.com")) (:maintainer "Pawel Bokota" . "pawelb.lnx@gmail.com") (:url . "https://github.com/pawelbx/anagram-game"))]) -(mac-pseudo-daemon . [(20170728 1940) ((cl-lib (0 1))) "Daemon mode that plays nice with Mac OS." single ((:commit . "d235680a72677f11925b912428ad1a57b664e3e8") (:keywords "convenience" "osx" "mac") (:authors ("Ryan C. Thompson")) (:maintainer "Ryan C. Thompson") (:url . "https://github.com/DarwinAwardWinner/osx-pseudo-daemon"))]) -(m-buffer . [(20170407 2141) ((seq (2 14))) "List-Oriented, Functional Buffer Manipulation" tar ((:commit . "8681342aaffa187e5c54945ab91b812965a96d19") (:authors ("Phillip Lord" . "phillip.lord@russet.org.uk")) (:maintainer "Phillip Lord" . "phillip.lord@russet.rg.uk"))]) -(lyrics . [(20180812 1841) ((emacs (25 1)) (seq (2 15))) "Show lyrics" single ((:commit . "d0b920be634a5be81ad49418cfaada0f0a57d6cd") (:keywords "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/lyrics.el"))]) -(lxd-tramp . [(20181023 7) ((emacs (24 4)) (cl-lib (0 6))) "TRAMP integration for LXD containers" single ((:commit . "f335c76245f62b02cf67a9376eca6f3863c8a75a") (:keywords "lxd" "lxc" "convenience") (:authors ("Yc.S" . "onixie@gmail.com")) (:maintainer "Yc.S" . "onixie@gmail.com") (:url . "https://github.com/onixie/lxd-tramp.git"))]) -(lxc-tramp . [(20180523 2024) ((emacs (24)) (cl-lib (0 6))) "TRAMP integration for LXC containers" single ((:commit . "1aab85fef50df2067902bff13e1bac5e6366908b") (:keywords "lxc" "convenience") (:authors ("montag451")) (:maintainer "montag451") (:url . "https://github.com/montag451/lxc-tramp"))]) -(lxc . [(20140410 2022) nil "lxc integration with Emacs" single ((:commit . "88bed56c954d1edd9ff5ce0ced2c02dcf9f71835") (:keywords "processes") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk") (:url . "https://github.com/nicferrier/emacs-lxc"))]) -(lv . [(20181110 1740) nil "Other echo area" single ((:commit . "82ff12666e08485c6b8f0e346878c4e0b16c992d") (:authors ("Oleh Krehel")) (:maintainer "Oleh Krehel"))]) -(lusty-explorer . [(20180628 1346) nil "Dynamic filesystem explorer and buffer switcher" single ((:commit . "fc4b2f0f8a07db107234490fdfbf72f8b76a6643") (:keywords "convenience" "files" "matching"))]) -(lush-theme . [(20180816 2200) ((emacs (24))) "A dark theme with lush colors" single ((:commit . "7cfc993709d712f75c51b505078608c9e1c11466") (:keywords "theme" "dark" "strong colors") (:authors ("Andre Richter" . "andre.o.richter@gmail.com")) (:maintainer "Andre Richter" . "andre.o.richter@gmail.com") (:url . "https://github.com/andre-richter/emacs-lush-theme"))]) -(luarocks . [(20170430 2305) ((emacs (24)) (cl-lib (0 5))) "luarocks tools" single ((:commit . "cee27ba0716edf338077387969883226dd2b7484") (:keywords "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/luarocks.el"))]) -(lua-mode . [(20190113 1050) nil "a major-mode for editing Lua scripts" tar ((:commit . "95c64bb5634035630e8c59d10d4a1d1003265743") (:keywords "languages" "processes" "tools") (:authors ("2011-2013 immerrr" . "immerrr+lua@gmail.com") ("2010-2011 Reuben Thomas" . "rrt@sc3d.org") ("2006 Juergen Hoetzel" . "juergen@hoetzel.info") ("2004 various (support for Lua 5 and byte compilation)") ("2001 Christian Vogler" . "cvogler@gradient.cis.upenn.edu") ("1997 Bret Mogilefsky" . "mogul-lua@gelatinous.com") ("tcl-mode by Gregor Schmid" . "schmid@fb3-s7.math.tu-berlin.de") ("with tons of assistance from") ("Paul Du Bois" . "pld-lua@gelatinous.com") ("Aaron Smith" . "aaron-lua@gelatinous.com")) (:maintainer "2011-2013 immerrr" . "immerrr+lua@gmail.com") (:url . "http://immerrr.github.com/lua-mode"))]) -(lsp-vue . [(20181030 1136) ((emacs (25 1)) (lsp-mode (3 0))) "Vue support for lsp-mode" single ((:commit . "85567342323943b37bb4e90376d3fae740be4aeb") (:authors ("Nikita Sivakov" . "cryptomaniac.512@gmail.com")) (:maintainer "Nikita Sivakov" . "cryptomaniac.512@gmail.com") (:url . "https://github.com/emacs-lsp/lsp-vue"))]) -(lsp-ui . [(20190523 1521) ((emacs (25 1)) (dash (2 14)) (dash-functional (1 2 0)) (lsp-mode (6 0)) (markdown-mode (2 3))) "UI modules for lsp-mode" tar ((:commit . "3ccc3e3386732c3ee22c151e6b5215a0e4c99173") (:keywords "lsp") (:authors ("Sebastien Chapuis <sebastien@chapu.is>, Fangrui Song" . "i@maskray.me")) (:maintainer "Sebastien Chapuis <sebastien@chapu.is>, Fangrui Song" . "i@maskray.me") (:url . "https://github.com/emacs-lsp/lsp-ui"))]) -(lsp-typescript . [(20181219 442) ((lsp-mode (3 0)) (typescript-mode (0 1)) (emacs (25 1))) "Javascript/Typescript support for lsp-mode" single ((:commit . "0a67626c383fa1ca64be3b994e5df3fe115c6f44") (:keywords "languages" "tools") (:authors ("George Pittarelli" . "g@gjp.cc")) (:maintainer "George Pittarelli" . "g@gjp.cc") (:url . "https://github.com/emacs-lsp/lsp-javascript"))]) -(lsp-treemacs . [(20190529 1926) ((emacs (25 1)) (dash (2 14 1)) (dash-functional (2 14 1)) (f (0 20 0)) (ht (2 0)) (treemacs (2 5)) (lsp-mode (6 0))) "LSP treemacs" single ((:commit . "1eb072aef80de74063e8da513e4a09abc304476c") (:keywords "languages") (:authors ("Ivan Yonchovski")) (:maintainer "Ivan Yonchovski"))]) -(lsp-sourcekit . [(20181216 1450) ((emacs (25 1)) (lsp-mode (5))) "sourcekit-lsp client for lsp-mode" single ((:commit . "04d75b6a0be5894fea4a55fec0b2ccedf5b3be58") (:keywords "languages" "lsp" "swift" "objective-c" "c++") (:authors ("Daniel MartÃn")) (:maintainer "Daniel MartÃn") (:url . "https://github.com/emacs-lsp/lsp-sourcekit"))]) -(lsp-sh . [(20180913 158) ((lsp-mode (3 0))) "Shell support for lsp-mode" single ((:commit . "d9e94837ccbb54eafa381833d2a9a0089e01096b") (:keywords "sh" "shell" "bash") (:authors ("Mike Wilkerson" . "wilkystyle@gmail.com")) (:maintainer "Mike Wilkerson" . "wilkystyle@gmail.com") (:url . "https://github.com/wilkystyle/lsp-sh"))]) -(lsp-scala . [(20190604 1237) ((emacs (24 4)) (lsp-mode (5 0)) (sbt-mode (2 0))) "Scala support for lsp-mode" single ((:commit . "06f189aa5cafe93cecbdaa234bccd900def7bc68") (:keywords "languages" "tools" "scala" "lsp" "metals") (:authors ("Ross A. Baker" . "ross@rossabaker.com")) (:maintainer "Ross A. Baker" . "ross@rossabaker.com") (:url . "https://github.com/rossabaker/lsp-scala"))]) -(lsp-rust . [(20180305 1308) ((emacs (25)) (lsp-mode (3 0)) (rust-mode (0 3 0)) (dash (1 0)) (markdown-mode (2 3))) "Rust support for lsp-mode" single ((:commit . "ecc889cc8735b280e0e6e84d2f4526b0048148b3") (:keywords "rust") (:authors ("Vibhav Pant" . "vibhavp@gmail.com")) (:maintainer "Vibhav Pant" . "vibhavp@gmail.com") (:url . "https://github.com/emacs-lsp/lsp-rust"))]) -(lsp-ruby . [(20181219 507) ((lsp-mode (3 0)) (emacs (25 1))) "Ruby support for lsp-mode" single ((:commit . "9cbc4ac0f2e2431cff36f0f46a0e0dc8ef477903") (:keywords "languages" "tools") (:authors ("George Pittarelli" . "g@gjp.cc")) (:maintainer "George Pittarelli" . "g@gjp.cc") (:url . "https://github.com/emacs-lsp/lsp-ruby"))]) -(lsp-python-ms . [(20190614 814) ((cl-lib (0 6 1)) (lsp-mode (6 0)) (python (0 26 1)) (json (1 4)) (emacs (24 4))) "lsp-mode client for Microsoft python-language-server" single ((:commit . "809b59a944fb1ac6fe3467dde026d4389dad16ef") (:keywords "languages" "tools") (:authors ("Charl Botha")) (:maintainer "Andrew Christianson") (:url . "https://github.com/andrew-christianson/lsp-python-ms"))]) -(lsp-python . [(20181108 754) ((lsp-mode (3 0))) "Python support for lsp-mode" single ((:commit . "9b67b63c4c8c53c77eda8b8081b8d458e655ba55") (:keywords "python") (:authors ("Vibhav Pant" . "vibhavp@gmail.com")) (:maintainer "Vibhav Pant" . "vibhavp@gmail.com") (:url . "https://github.com/emacs-lsp/lsp-python"))]) -(lsp-pyre . [(20190406 335) ((lsp-mode (6 0))) "lsp-mode client for python using pyre" single ((:commit . "e177b8f5efd1a955b5753aeb5d1894e6d21be35a") (:authors ("John Allen" . "oss@porcnick.com")) (:maintainer "John Allen" . "oss@porcnick.com") (:url . "https://github.com/jra3/lsp-pyre"))]) -(lsp-php . [(20180331 1644) ((emacs (25 1)) (lsp-mode (3 4))) "PHP support for lsp-mode" single ((:commit . "f96e23570120eca765132504df852a78d8b4d042") (:authors ("Declspeck" . "declspeck@declblog.com") ("zg" . "13853850881@163.com")) (:maintainer "Declspeck" . "declspeck@declblog.com") (:url . "https://github.com/emacs-lsp/lsp-php"))]) -(lsp-p4 . [(20190127 1049) ((lsp-mode (3 0))) "P4 support for lsp-mode" tar ((:commit . "156ba380cd6adc5df663420ae25c45046faeb68e") (:keywords "lsp" "p4") (:authors ("Dmitri Makarov")) (:maintainer "Dmitri Makarov") (:url . "https://github.com/dmakarov/p4ls"))]) -(lsp-origami . [(20190331 1723) ((origami (1 0)) (lsp-mode (20190326 522))) "origami.el support for lsp-mode" single ((:commit . "c7653602a2f2396b1a42d6053fd2be55fce8e0a2") (:keywords "languages" "lsp-mode") (:authors ("Vibhav Pant")) (:maintainer "Vibhav Pant") (:url . "https://github.com/emacs-lsp/lsp-origami"))]) -(lsp-ocaml . [(20180610 1854) ((emacs (25 1)) (lsp-mode (3 0))) "OCaml support for lsp-mode" single ((:commit . "5a8c776b6d75b502703243b3d628fccd813481b0") (:keywords "languages" "ocaml" "reason" "lsp") (:authors ("Antonio N. Monteiro" . "anmonteiro@gmail.com")) (:maintainer "Antonio N. Monteiro" . "anmonteiro@gmail.com") (:url . "https://github.com/emacs-lsp/lsp-ocaml"))]) -(lsp-mode . [(20190618 848) ((emacs (25 1)) (dash (2 14 1)) (dash-functional (2 14 1)) (f (0 20 0)) (ht (2 0)) (spinner (1 7 3)) (markdown-mode (2 3))) "LSP mode" tar ((:commit . "5c87411559fb4c87cd47facaf79dd04734548dd6") (:keywords "languages") (:authors ("Vibhav Pant, Fangrui Song, Ivan Yonchovski")) (:maintainer "Vibhav Pant, Fangrui Song, Ivan Yonchovski") (:url . "https://github.com/emacs-lsp/lsp-mode"))]) -(lsp-javascript-typescript . [(20181219 442) ((lsp-mode (3 0)) (typescript-mode (0 1)) (emacs (25 1))) "Javascript/Typescript support for lsp-mode" single ((:commit . "0a67626c383fa1ca64be3b994e5df3fe115c6f44") (:keywords "languages" "tools") (:authors ("George Pittarelli" . "g@gjp.cc")) (:maintainer "George Pittarelli" . "g@gjp.cc") (:url . "https://github.com/emacs-lsp/lsp-javascript"))]) -(lsp-javascript-flow . [(20181219 442) ((lsp-mode (3 0)) (emacs (25 1))) "Javascript/Flow support for lsp-mode" single ((:commit . "0a67626c383fa1ca64be3b994e5df3fe115c6f44") (:keywords "languages" "tools") (:authors ("Ozan Sener" . "hi@ozan.email")) (:maintainer "Ozan Sener" . "hi@ozan.email") (:url . "https://github.com/emacs-lsp/lsp-javascript"))]) -(lsp-javacomp . [(20190124 1755) ((emacs (25 1)) (lsp-mode (3 0)) (s (1 2 0))) "Provide Java IDE features powered by JavaComp." single ((:commit . "82aa4ad6ca03a74565c35e855b318b1887bcd89b") (:keywords "java" "tools" "lsp") (:url . "https://github.com/tigersoldier/lsp-javacomp"))]) -(lsp-java . [(20190618 426) ((emacs (25 1)) (lsp-mode (6 0)) (markdown-mode (2 3)) (dash (2 14 1)) (f (0 20 0)) (ht (2 0)) (dash-functional (1 2 0)) (request (0 3 0))) "Java support for lsp-mode" tar ((:commit . "e60bca0925bbc25e9a3c52773f0137a00736f526") (:keywords "java") (:url . "https://github.com/emacs-lsp/lsp-java"))]) -(lsp-intellij . [(20180831 2051) ((emacs (25 1)) (lsp-mode (4 1))) "intellij lsp client" single ((:commit . "cf30f0ac63bd0140e758840b8ab070e8313697b2") (:keywords "languages" "processes" "tools") (:authors ("Ruin0x11" . "ipickering2@gmail.com")) (:maintainer "Ruin0x11" . "ipickering2@gmail.com") (:url . "https://github.com/Ruin0x11/lsp-intellij"))]) -(lsp-html . [(20180629 725) ((lsp-mode (4 2))) "HTML support for lsp-mode" single ((:commit . "53b3c30511cab7e5f1e4ad15094b407b27cdc7f5") (:keywords "languages" "html" "lsp") (:authors ("Vibhav Pant" . "vibhavp@gmail.com")) (:maintainer "Vibhav Pant" . "vibhavp@gmail.com") (:url . "https://github.com/emacs-lsp/lsp-html"))]) -(lsp-haskell . [(20190602 825) ((lsp-mode (3 0)) (haskell-mode (1 0))) "Haskell support for lsp-mode" single ((:commit . "8f2dbb6e827b1adce6360c56f795f29ecff1d7f6") (:keywords "haskell") (:url . "https://github.com/emacs-lsp/lsp-haskell"))]) -(lsp-hack . [(20190329 1931) ((lsp-mode (20190328 2018))) "lsp-mode client for hacklang" single ((:commit . "7c3305c30bffda6fcb74d8f3b0dfecd0369713dc") (:authors ("John Allen" . "oss@porcnick.com")) (:maintainer "John Allen" . "oss@porcnick.com") (:url . "https://github.com/jra3/lsp-hack"))]) -(lsp-go . [(20180914 515) ((lsp-mode (3 0))) "Go support for lsp-mode" single ((:commit . "2327556e78682770a7a434610b08115f20ea5b1a") (:keywords "go" "golang") (:authors ("Vibhav Pant" . "vibhavp@gmail.com")) (:maintainer "Vibhav Pant" . "vibhavp@gmail.com") (:url . "https://github.com/emacs-lsp/lsp-go"))]) -(lsp-fortran . [(20180904 1636) ((lsp-mode (3 0))) "Fortran support for lsp-mode" single ((:commit . "f2200439dc86f688a1e41b6ec92deb24555d24fe") (:keywords "fortran" "fortran" "language server") (:authors ("Magnus Badel")) (:maintainer "Magnus Badel") (:url . "https://github.com/MagB93/lsp-fortran"))]) -(lsp-elixir\.el . [(20190105 2059) nil "No description available." tar ((:commit . "9fd091c092144a09c0df2d477257c1f4c37bb985"))]) -(lsp-elixir . [(20190105 2059) ((lsp-mode (20190104 2105)) (emacs (24 4))) "Elixir tooling integration into Emacs" tar ((:commit . "9fd091c092144a09c0df2d477257c1f4c37bb985") (:keywords "languages" "elixir" "elixirc" "mix" "hex" "alchemist") (:authors ("Aldric Giacomoni" . "trevoke@gmail.com")) (:maintainer "Aldric Giacomoni" . "trevoke@gmail.com") (:url . "http://www.github.com/trevoke/lsp-elixir.el"))]) -(lsp-dart . [(20181021 1708) ((emacs (25 1)) (lsp-mode (3 0))) "Dart support for lsp-mode" single ((:commit . "4979ccf88f09a8576fb739597eca22f4ece0a7e8") (:keywords "languages" "lsp" "dart") (:authors ("Gong Qijian" . "gongqijian@gmail.com")) (:maintainer "Gong Qijian" . "gongqijian@gmail.com") (:url . "https://github.com/twlz0ne/lsp-dart"))]) -(lsp-css . [(20181219 504) ((lsp-mode (3 0)) (emacs (25 1))) "CSS/LESS/SASS support for lsp-mode" single ((:commit . "723700e8f56a8b3e2a1475ce775ad2a63f3f72f9") (:keywords "languages" "tools") (:authors ("George Pittarelli" . "g@gjp.cc")) (:maintainer "George Pittarelli" . "g@gjp.cc") (:url . "https://github.com/emacs-lsp/lsp-css"))]) -(lsp-clangd . [(20180828 1657) ((lsp-mode (3 0)) (emacs (24 3))) "clangd support for lsp-mode" single ((:commit . "27b595110a0b7d83c26751505b374aa214e302d3") (:keywords "lsp" "clang" "clangd" "c" "c++" "objective-c" "objective-c++") (:authors ("Thomas Brown" . "tabsoftwareconsulting@gmail.com")) (:maintainer "Thomas Brown" . "tabsoftwareconsulting@gmail.com") (:url . "https://github.com/emacs-lsp/lsp-clangd"))]) -(love-minor-mode . [(20170727 536) ((lua-mode (20130419))) "Minor mode for working on LÖVE projects" single ((:commit . "3ca8f3405338f2d6f4fbcdd5e89342a46378543a") (:authors ("Eric James Michael Ritz")) (:maintainer "Eric James Michael Ritz") (:url . "https://github.com/ejmr/love-minor-mode"))]) -(lorem-ipsum . [(20140911 2108) nil "Insert dummy pseudo Latin text." single ((:commit . "4b39f6fed455d67f635b3837cf5668bf74d0f6cd") (:keywords "tools" "language" "convenience") (:authors ("Jean-Philippe Theberge" . "jphil21@sourceforge.net")) (:maintainer "Joe Schafer" . "joe@jschaf.com"))]) -(loop . [(20160813 1407) nil "friendly imperative loop structures" single ((:commit . "e22807f83a0890dc8a904c51ee0742c34efccc6c") (:keywords "loop" "while" "for each" "break" "continue") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(look-mode . [(20151211 1826) nil "quick file viewer for image and text file browsing" single ((:commit . "d65f75e8ea24eff2ac31c53b4835b45127eedd56") (:authors ("Peter H. Mao <peter.mao@gmail.com>" . "peterm@srl.caltech.edu")) (:maintainer "Peter H. Mao <peter.mao@gmail.com>" . "peterm@srl.caltech.edu"))]) -(look-dired . [(20160729 2323) ((look-mode (1 0))) "Extensions to look-mode for dired buffers" single ((:commit . "9bfa4e5e6f3810705b6426c88493ea0bf6b15640") (:keywords "convenience") (:authors ("Joe Bloggs" . "vapniks@yahoo.com")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "https://github.com/vapniks/look-dired"))]) -(lolcode-mode . [(20111002 847) nil "Major mode for editing LOLCODE" single ((:commit . "1914f1ba87587ecf5f175eeb2144c28e9f039317") (:keywords "lolcode" "major" "mode") (:authors ("Bodil Stokke" . "lolcode@bodil.tv")) (:maintainer "Bodil Stokke" . "lolcode@bodil.tv") (:url . "http://github.com/bodil/lolcode-mode"))]) -(lolcat . [(20190527 1145) ((emacs (24 3))) "Rainbows and unicorns!" single ((:commit . "4855e587a3b9681c077dac4b9f166dd860f439a4") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/lolcat.el"))]) -(logview . [(20181027 1757) ((emacs (24 4)) (datetime (0 6 1)) (extmap (1 0))) "Major mode for viewing log files" single ((:commit . "bd662d467dbd7c93cfe1e3058e4f11c49314fd6a") (:keywords "files" "tools") (:authors ("Paul Pogonyshev" . "pogonyshev@gmail.com")) (:maintainer "Paul Pogonyshev" . "pogonyshev@gmail.com") (:url . "https://github.com/doublep/logview"))]) -(logstash-conf . [(20170524 1929) nil "basic mode for editing logstash configuration" single ((:commit . "4e127f9aec190786613445aa88efa307ff7c6748") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(logpad . [(20180607 1915) nil "Simulate Windows Notepad for logging." single ((:commit . "506ace0e996f4d130ba9ccbc323caada7d516ff5") (:keywords "files" "outlines" "notepad") (:authors ("Jens K. Loewe" . "git@tuxproject.de")) (:maintainer "Jens K. Loewe" . "git@tuxproject.de") (:url . "https://bitbucket.org/tux_/logpad.el"))]) -(lognav-mode . [(20190217 1632) ((emacs (24 3))) "Navigate Log Error Messages" single ((:commit . "bec9f3eba66e1b58153f3d74ea21e6022d735791") (:keywords "log" "error" "lognav-mode" "convenience") (:authors ("Shawn Ellis" . "shawn.ellis17@gmail.com")) (:maintainer "Shawn Ellis" . "shawn.ellis17@gmail.com") (:url . "https://bitbucket.org/ellisvelo/lognav-mode"))]) -(logito . [(20120225 2055) ((eieio (1 3))) "logging library for Emacs" single ((:commit . "824acb89d2cc18cb47281a4fbddd81ad244a2052") (:keywords "lisp" "tool") (:authors ("Yann Hodique" . "yann.hodique@gmail.com")) (:maintainer "Yann Hodique" . "yann.hodique@gmail.com"))]) -(logalimacs . [(20131021 1829) ((popwin (0 6 2)) (popup (0 5 0)) (stem (20130120))) "Front-end to logaling-command for Ruby gems" single ((:commit . "8286e39502250fc6c3c6656a7f46a8eee8e9a713") (:keywords "translation" "logaling-command") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:url . "https://github.com/logaling/logalimacs"))]) -(log4j-mode . [(20160108 1918) nil "major mode for viewing log files" single ((:commit . "26171b1e723502055e085393b0ecdcb6db406010") (:keywords "tools") (:authors ("Johan Dykstrom" . "jody4711-sf@yahoo.se")) (:maintainer "Johan Dykstrom" . "jody4711-sf@yahoo.se") (:url . "http://log4j-mode.sourceforge.net"))]) -(log4e . [(20170401 1304) nil "provide logging framework for elisp" single ((:commit . "c69424e407be0d9d0e54b427d8b18b1ac5a607e2") (:keywords "log") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/log4e"))]) -(lodgeit . [(20150312 1349) nil "Paste to a lodgeit powered pastebin" single ((:commit . "ec9b8e5cbb17bcf8ac4bdddd1d361cb60e59384c") (:keywords "pastebin" "lodgeit") (:authors ("Eric Larson" . "eric@ionrock.org")) (:maintainer "Eric Larson" . "eric@ionrock.org") (:url . "https://github.com/ionrock/lodgeit-el"))]) -(lockfile-mode . [(20170625 507) nil "Major mode for .lock files" single ((:commit . "fcfef88460cb3cd67c4d83a1801d0326d282feac") (:authors ("Preetpal S. Sohal")) (:maintainer "Preetpal S. Sohal") (:url . "https://github.com/preetpalS/emacs-lockfile-mode"))]) -(loccur . [(20181203 2038) ((emacs (24 3))) "Perform an occur-like folding in current buffer" single ((:commit . "194d70e6be82c4622b7460ca46ced38109ac0507") (:keywords "matching") (:authors ("Alexey Veretennikov" . "alexey.veretennikov@gmail.com")) (:maintainer "Alexey Veretennikov" . "alexey.veretennikov@gmail.com") (:url . "https://github.com/fourier/loccur"))]) -(loc-changes . [(20160801 1708) nil "keep track of positions even after buffer changes" single ((:commit . "4d1dcdf7631c23b1259ad4f72bf9686cf95fb46c") (:authors ("Rocky Bernstein" . "rocky@gnu.org")) (:maintainer "Rocky Bernstein" . "rocky@gnu.org") (:url . "http://github.com/rocky/emacs-loc-changes"))]) -(load-theme-buffer-local . [(20120702 2036) nil "Install emacs24 color themes by buffer." single ((:commit . "e606dec66f16a06140b9aad625a4fd52bca4f936") (:keywords "faces") (:authors ("Victor Borja" . "vic.borja@gmail.com")) (:maintainer "Victor Borja" . "vic.borja@gmail.com") (:url . "http://github.com/vic/color-theme-buffer-local"))]) -(load-relative . [(20190601 1221) nil "Relative file load (within a multi-file Emacs package)" tar ((:commit . "dbcd7cbcca6503ef93f4b8d19bf7a9efd7f6bf9b") (:keywords "internal") (:authors ("Rocky Bernstein" . "rocky@gnu.org")) (:maintainer "Rocky Bernstein" . "rocky@gnu.org") (:url . "http://github.com/rocky/emacs-load-relative"))]) -(load-env-vars . [(20180511 2210) ((emacs (24))) "Load environment variables from files" single ((:commit . "3808520efaf9492033f6e11a9bffd68eabf02a0f") (:keywords "lisp") (:authors ("Jorge Dias" . "jorge@mrdias.com")) (:maintainer "Jorge Dias" . "jorge@mrdias.com") (:url . "https://github.com/diasjorge/emacs-load-env-vars"))]) -(load-bash-alias . [(20181220 1755) ((emacs (24 1)) (seq (2 16))) "Convert bash aliases into eshell ones" single ((:commit . "50df445bace7896318f10c58d26b673635704215") (:keywords "emacs" "bash" "eshell" "alias") (:authors ("Davide Restivo" . "davide.restivo@yahoo.it")) (:maintainer "Davide Restivo" . "davide.restivo@yahoo.it") (:url . "https://github.com/daviderestivo/load-bash-alias"))]) -(lms . [(20181216 2246) ((emacs (25 1))) "Squeezebox / Logitech Media Server frontend" single ((:commit . "38302acf2aa3718ce62cc4c5f1fde96feb25a2ed") (:keywords "multimedia") (:authors ("Iñigo Serna" . "inigoserna@gmail.com")) (:maintainer "Iñigo Serna" . "inigoserna@gmail.com") (:url . "https://bitbucket.com/inigoserna/lms.el"))]) -(livid-mode . [(20131116 1344) ((skewer-mode (1 5 3)) (s (1 8 0))) "Live browser eval of JavaScript every time a buffer changes" single ((:commit . "dfe5212fa64738bc4138bfebf349fbc8bc237c26") (:authors ("Murphy McMahon")) (:maintainer "Murphy McMahon") (:url . "https://github.com/pandeiro/livid-mode"))]) -(livescript-mode . [(20140613 421) nil "Major mode for editing LiveScript files" single ((:commit . "90a918d9686e256e6d4d439cc20f24dad8d3b804") (:keywords "languages" "livescript") (:authors ("Hisamatsu Yasuyuki" . "yas@null.net")) (:maintainer "Hisamatsu Yasuyuki" . "yas@null.net") (:url . "https://github.com/yhisamatsu/livescript-mode"))]) -(livereload . [(20170629 650) ((emacs (25)) (websocket (1 8))) "Livereload server" tar ((:commit . "1e501d7e46dbd476c2c7cc9d20b5ac9d41fb1955") (:keywords "convenience") (:authors ("João Távora" . "joaotavora@gmail.com")) (:maintainer "João Távora" . "joaotavora@gmail.com"))]) -(lively . [(20171005 754) nil "interactively updating text" single ((:commit . "348675828c6a81bfa1ac311ca465aad813542c1b") (:authors ("Luke Gorrie" . "luke@bup.co.nz")) (:maintainer "Steve Purcell" . "steve@sanityinc.com"))]) -(live-py-mode . [(20190614 433) ((emacs (24 3))) "Live Coding in Python" tar ((:commit . "4c378e4afdffb09ab3ca338d3b37d9a2b69d9584") (:keywords "live" "coding") (:authors ("Don Kirkby http://donkirkby.github.io")) (:maintainer "Don Kirkby http://donkirkby.github.io") (:url . "http://donkirkby.github.io/live-py-plugin/"))]) -(live-preview . [(20190415 2214) ((emacs (24 4))) "Live preview by any shell command while editing" single ((:commit . "bc3f79b58c4e428485b2cf800278004220f7433d") (:keywords "languages" "util") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:url . "https://github.com/lassik/emacs-live-preview"))]) -(live-code-talks . [(20180907 1647) ((emacs (24)) (cl-lib (0 5)) (narrowed-page-navigation (0 1))) "Support for slides with live code in them" single ((:commit . "97f16a9ee4e6ff3e0f9291eaead772c66e3e12ae") (:keywords "docs" "multimedia") (:authors ("David Raymond Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Raymond Christiansen" . "david@davidchristiansen.dk"))]) -(literate-starter-kit . [(20150730 1854) ((emacs (24 3))) "A literate starter kit to configure Emacs using Org-mode files." tar ((:commit . "6dce1d01781966c14558aa553cfc85008c06e115"))]) -(literate-elisp . [(20190609 840) ((cl-lib (0 6)) (emacs (24 4))) "literate program to write elisp codes in org mode" single ((:commit . "d00a7fe92c9e74aaa60574e9109fd38c471e606f") (:keywords "lisp" "docs" "extensions" "tools") (:authors ("Jingtao Xu" . "jingtaozf@gmail.com")) (:maintainer "Jingtao Xu" . "jingtaozf@gmail.com") (:url . "https://github.com/jingtaozf/literate-elisp"))]) -(literate-coffee-mode . [(20170211 1515) ((coffee-mode (0 5 0))) "major-mode for Literate CoffeeScript" single ((:commit . "55ce0305495f4a38c8063c4bd63deb1e1252373d") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-literate-coffee-mode"))]) -(literal-string . [(20170301 1530) ((markdown-mode (2 0)) (emacs (25))) "edit string literals in a dedicated buffer" single ((:commit . "2ca4fc08b8e19e6183b1f1db747bb0a4aa4f98eb") (:keywords "lisp" "tools" "docs") (:authors ("Joost Diepenmaat" . "joost@zeekat.nl")) (:maintainer "Joost Diepenmaat" . "joost@zeekat.nl") (:url . "https://github.com/joodie/literal-string-mode/"))]) -(litecoin-ticker . [(20160612 11) ((json (1 2))) "litecoin price in modeline" single ((:commit . "3d8047c736e4ee0b8638953f8cc63eaefad34106") (:authors ("Zhe Lei")) (:maintainer "Zhe Lei"))]) -(litable . [(20160922 1559) ((dash (2 6 0))) "dynamic evaluation replacement with emacs" single ((:commit . "b0278f3f8dcff424bfbdfdefb545b1fbff33206f") (:keywords "lisp") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com"))]) -(lit-mode . [(20141123 1736) nil "Major mode for lit" single ((:commit . "c61c403afc8333a5649c5421ab1a6341dc1c7d92") (:keywords "languages" "tools") (:authors ("Hector A Escobedo" . "ninjahector.escobedo@gmail.com")) (:maintainer "Hector A Escobedo" . "ninjahector.escobedo@gmail.com"))]) -(list-utils . [(20160414 1402) nil "List-manipulation utility functions" single ((:commit . "acf18aca1131a90f8d673974673e3c5d8fdc6a86") (:keywords "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/list-utils"))]) -(list-unicode-display . [(20181121 2316) ((emacs (24 3))) "Search for and list unicode characters by name" single ((:commit . "0ecc2402b258990e7a0cf7e60847712c69444070") (:keywords "convenience") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com"))]) -(list-packages-ext . [(20151115 1716) ((s (1 6 0)) (ht (1 5 0)) (persistent-soft (0 8 6))) "Extras for list-packages" single ((:commit . "b4dd644e4369c9aa66f5bb8895ea49ebbfd0a27a") (:keywords "convenience" "tools") (:authors ("Alessandro Piras" . "laynor@gmail.com")) (:maintainer "Alessandro Piras" . "laynor@gmail.com"))]) -(list-environment . [(20151227 256) nil "A tabulated process environment editor" single ((:commit . "b7ca30b05905047be2e55199a6475f8d98ce318b") (:keywords "processes" "unix") (:authors ("Charles L.G. Comstock" . "dgtized@gmail.com")) (:maintainer "Charles L.G. Comstock" . "dgtized@gmail.com"))]) -(lispyville . [(20181217 1447) ((lispy (0)) (evil (1 2 12)) (cl-lib (0 5)) (emacs (24 4))) "A minor mode for integrating evil with lispy." single ((:commit . "d28b937f0cabd8ce61e2020fe9a733ca80d82c74") (:keywords "vim" "evil" "lispy" "lisp" "parentheses") (:authors ("Fox Kiester" . "noct@openmailbox.org")) (:maintainer "Fox Kiester" . "noct@openmailbox.org") (:url . "https://github.com/noctuid/lispyville"))]) -(lispyscript-mode . [(20170720 1917) nil "Major mode for LispyScript code." single ((:commit . "def632e3335b0c481fbcf5a17f18b0a8c58dd12f") (:keywords "lisp" "languages") (:authors ("Kris Jenkins" . "krisajenkins@gmail.com")) (:maintainer "Kris Jenkins" . "krisajenkins@gmail.com") (:url . "https://github.com/krisajenkins/lispyscript-mode"))]) -(lispy . [(20190608 1150) ((emacs (24 3)) (ace-window (0 9 0)) (iedit (0 9 9)) (swiper (0 11 0)) (hydra (0 14 0)) (zoutline (0 1 0))) "vi-like Paredit" tar ((:commit . "8a8328ea94009a008f678da5f45f7553d31cf533"))]) -(lispxmp . [(20170926 23) nil "Automagic emacs lisp code annotation" single ((:commit . "7ad077b4ee91ce8a42f84eeddb9fc7ea4eac7814") (:keywords "lisp" "convenience") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/lispxmp.el"))]) -(lisp-extra-font-lock . [(20181008 1921) nil "Highlight bound variables and quoted exprs." single ((:commit . "4605eccbe1a7fcbd3cacf5b71249435413b4db4f") (:keywords "languages" "faces") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/lisp-extra-font-lock"))]) -(liso-theme . [(20160410 2029) nil "Eclectic Dark Theme for GNU Emacs" single ((:commit . "844688245eb860d23043455e165ee24503454c81") (:keywords "theme" "themes") (:authors ("Vlad Piersec" . "vlad.piersec@gmail.com")) (:maintainer "Vlad Piersec" . "vlad.piersec@gmail.com") (:url . "https://github.com/caisah/liso-theme"))]) -(liquid-types . [(20151202 735) ((flycheck (0 13)) (dash (1 2)) (emacs (24 1)) (popup (0 5 2)) (pos-tip (0 5 0)) (flycheck-liquidhs (0 0 1)) (button-lock (1 0 2))) "show inferred liquid-types" single ((:commit . "cc4bacbbf204ef9cf0756f78dfebee2c6ae14d7b") (:authors ("Ranjit Jhala" . "jhala@cs.ucsd.edu")) (:maintainer "Ranjit Jhala" . "jhala@cs.ucsd.edu"))]) -(linum-relative . [(20180124 1047) nil "display relative line number in emacs." single ((:commit . "c74a6981b688a5e1e6b8e0809363963ff558ce4d") (:keywords "converience") (:authors ("coldnew" . "coldnew.tw@gmail.com")) (:maintainer "coldnew" . "coldnew.tw@gmail.com") (:url . "http://github.com/coldnew/linum-relative"))]) -(linum-off . [(20160217 2137) nil "Provides an interface for turning line-numbering off" single ((:commit . "116e66ac259b183e0763b85616888316ab196822") (:keywords "line" "numbering") (:authors ("Matthew L. Fidler, Florian Adamsky (see wiki)")) (:maintainer "Matthew L. Fidler") (:url . "http://www.emacswiki.org/emacs/auto-indent-mode.el "))]) -(linphone . [(20130524 1109) nil "Emacs interface to Linphone" tar ((:commit . "99af3db941b7f4e5272bb48bff96c1ce4ceac302") (:keywords "comm") (:authors ("Yoni Rabkin" . "yonirabkin@member.fsf.org")) (:maintainer "Yoni Rabkin" . "yonirabkin@member.fsf.org") (:url . "https://github.com/zabbal/emacs-linphone"))]) -(link-hint . [(20190312 2304) ((avy (0 4 0)) (emacs (24 1)) (cl-lib (0 5))) "Use avy to open, copy, etc. visible links." single ((:commit . "d74a483652486260c052941fedeadddb1ea71f88") (:keywords "convenience" "url" "avy" "link" "links" "hyperlink") (:authors ("Fox Kiester" . "noct@openmailbox.org")) (:maintainer "Fox Kiester" . "noct@openmailbox.org") (:url . "https://github.com/noctuid/link-hint.el"))]) -(link . [(20140718 329) nil "Hypertext links in text buffers" single ((:commit . "6edc1d0a4156d33c3da0c1649c308b809fda46e1") (:keywords "interface" "hypermedia") (:authors ("Torsten Hilbrich" . "torsten.hilbrich@gmx.net")) (:maintainer "Torsten Hilbrich" . "torsten.hilbrich@gmx.net"))]) -(linguistic . [(20181129 2116) nil "A package for basic linguistic analysis." tar ((:commit . "23e47e98cdb09ee61883669b6d8a11bf6449862c") (:keywords "linguistics" "text analysis" "matching") (:authors ("Andrew Favia <drewlinguistics01 at gmail dot com>")) (:maintainer "Andrew Favia <drewlinguistics01 at gmail dot com>") (:url . "https://github.com/andcarnivorous/linguistic"))]) -(lingr . [(20100807 1731) nil "Lingr Client for GNU Emacs" single ((:commit . "4215a8704492d3c860097cbe2649936c22c196df") (:keywords "chat" "client" "internet") (:authors ("lugecy" . "lugecy@gmail.com")) (:maintainer "lugecy" . "lugecy@gmail.com") (:url . "http://github.com/lugecy/lingr-el"))]) -(lines-at-once . [(20180422 247) ((emacs (25))) "Insert and edit multiple lines at once" single ((:commit . "a018ba90549384d52ec58c2685fd14a0f65252be") (:keywords "abbrev" "tools") (:authors ("Jiahao Li" . "jiahaowork@gmail.com")) (:maintainer "Jiahao Li" . "jiahaowork@gmail.com") (:url . "https://github.com/jiahaowork/lines-at-once.el"))]) -(line-up-words . [(20180219 1024) nil "Align words in an intelligent way" single ((:commit . "4abfd658dd0985b960da08a3ec426cd860d57d2a") (:url . "https://github.com/janestreet/line-up-words"))]) -(line-reminder . [(20190517 525) ((emacs (24 4)) (cl-lib (0 6))) "Line annotation similar to Visual Studio." single ((:commit . "9ba13659dd831e7c62230baadb079ecc370a8aa9") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:url . "https://github.com/jcs090218/line-reminder"))]) -(light-soap-theme . [(20150607 1445) ((emacs (24))) "Emacs 24 theme with a light background." single ((:commit . "76a787bd40c6b567ae68ced7f5d9f9f10725e00d"))]) -(lice . [(20170220 943) nil "License And Header Template" tar ((:commit . "4339929927c62bd636f89bb39ea999d18d269250") (:keywords "template" "license" "tools") (:authors ("Taiki Sugawara" . "buzz.taiki@gmail.com")) (:maintainer "Taiki Sugawara" . "buzz.taiki@gmail.com") (:url . "https://github.com/buzztaiki/lice-el"))]) -(libmpdel . [(20190427 528) ((emacs (25 1))) "Communication with an MPD server" single ((:commit . "38633ef7a1a40740d1a9528c4f0f0d40d489d9fe") (:keywords "multimedia") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://gitlab.petton.fr/mpdel/libmpdel"))]) -(libmpdee . [(20160117 2301) nil "Client end library for mpd, a music playing daemon" single ((:commit . "a6ca3b7d6687f3ba60996b9b5044ad1d3b228290") (:keywords "music" "mpd") (:authors ("Ramkumar R. Aiyengar" . "andyetitmoves@gmail.com")) (:maintainer "Ramkumar R. Aiyengar" . "andyetitmoves@gmail.com"))]) -(libgit . [(20190419 1223) ((emacs (25 1))) "Thin bindings to libgit2." tar ((:commit . "e85e02ab3bfb6bf43c361bc4e78dd5b5ff93bccc") (:keywords "git" "vc") (:authors ("Eivind Fonn" . "evfonn@gmail.com")) (:maintainer "Eivind Fonn" . "evfonn@gmail.com") (:url . "https://github.com/TheBB/libegit2"))]) -(libelcouch . [(20180604 753) ((emacs (25 1)) (request (0 3 0))) "Communication with CouchDB" single ((:commit . "1faa877fd83c31f612eacb1d12645b2b4cfb57ed") (:keywords "tools") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://gitlab.petton.fr/elcouch/libelcouch/"))]) -(lfe-mode . [(20170121 1254) nil "Lisp Flavoured Erlang mode" tar ((:commit . "0775432025f43cafbb7063b5923286bbd700cdf0"))]) -(lexbind-mode . [(20141027 1429) nil "Puts the value of lexical-binding in the mode line" single ((:commit . "fa0a6848c1cfd3fbf45db43dc2deef16377d887d") (:keywords "convenience" "lisp") (:authors ("Andrew Kirkpatrick" . "ubermonk@gmail.com")) (:maintainer "Andrew Kirkpatrick" . "ubermonk@gmail.com") (:url . "https://github.com/spacebat/lexbind-mode"))]) -(levenshtein . [(20090830 1040) nil "Edit distance between two strings." single ((:commit . "070925197ebf6b704e6e00c4f2d2ec783f3df38c") (:keywords "lisp") (:authors ("Aaron S. Hawley <ashawley at uvm dot edu>,") ("Art Taylor")) (:maintainer "Aaron S. Hawley <ashawley at uvm dot edu>,"))]) -(leuven-theme . [(20190308 1534) nil "Awesome Emacs color theme on white background" tar ((:commit . "916c0f3b562b5b0e4f4294b83decda941fb183b1") (:keywords "color" "theme") (:authors ("Fabrice Niessen <(concat \"fniessen\" at-sign \"pirilampo.org\")>")) (:maintainer "Fabrice Niessen <(concat \"fniessen\" at-sign \"pirilampo.org\")>") (:url . "https://github.com/fniessen/emacs-leuven-theme"))]) -(letterbox-mode . [(20170702 125) ((emacs (24 3))) "hide sensitive text on a buffer" single ((:commit . "88c67a51d67216d569a28e8423200883fde096dd") (:keywords "password" "convenience") (:authors ("Fernando Leboran" . "f.leboran@gmail.com")) (:maintainer "Fernando Leboran" . "f.leboran@gmail.com") (:url . "http://github.com/pacha64/letterbox-mode"))]) -(letcheck . [(20160202 1948) nil "Check the erroneous assignments in let forms" single ((:commit . "edf188ca2f85349e971b83f164c6484264e79426") (:keywords "convenience") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/letcheck"))]) -(less-css-mode . [(20161001 453) nil "Major mode for editing LESS CSS files (lesscss.org)" single ((:commit . "c7fa3d56d83206b28657f2e56439dc62280a2bf2") (:keywords "less" "css" "mode") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/less-css-mode"))]) -(lentic-server . [(20160717 2052) ((lentic (0 8)) (web-server (0 1 1))) "Web Server for Emacs Literate Source" single ((:commit . "8e809fafbb27a98f815b544d9d9ee15843eb6a36") (:authors ("Phillip Lord" . "phillip.lord@newcastle.ac.uk")) (:maintainer "Phillip Lord" . "phillip.lord@newcastle.ac.uk"))]) -(lentic . [(20190102 2124) ((emacs (24 4)) (m-buffer (0 13)) (dash (2 5 0)) (f (0 17 2)) (s (1 9 0))) "One buffer as a view of another" tar ((:commit . "e6d013bf570bb235817f6c8f0abdd31d3b456d53") (:authors ("Phillip Lord" . "phillip.lord@russet.org.uk")) (:maintainer "Phillip Lord" . "phillip.lord@russet.org.uk"))]) -(lenlen-theme . [(20170329 245) ((color-theme-solarized (20150110))) "a solarized-based kawaii light theme" single ((:commit . "b8a6412c81633b10fb98ba0930f55b25071c084a") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(lemon-mode . [(20130216 1304) nil "A major mode for editing lemon grammar files" single ((:commit . "155bfced6c9afc8072a0133d3d1baa54c6d67430") (:keywords "lemon") (:authors ("mooz" . "stillpedant@gmail.com")) (:maintainer "mooz" . "stillpedant@gmail.com"))]) -(legalese . [(20150820 1724) nil "Add legalese to your program files" single ((:commit . "ec23e69d18329456beed9546a1d6c72f96db91cf") (:keywords "convenience") (:authors ("Jorgen Schaefer" . "forcer@forcix.cx")) (:maintainer "Jorgen Schaefer" . "forcer@forcix.cx") (:url . "https://github.com/jorgenschaefer/legalese"))]) -(leetcode . [(20190615 1249) ((emacs (25)) (dash (2 15 0)) (request-deferred (0 2 0)) (graphql (0 1 1)) (spinner (1 7 3))) "An leetcode client." single ((:commit . "6f43be2ff3bc45bf26c874a8e4315847cc1a3102") (:keywords "extensions" "tools") (:authors ("Wang Kai" . "kaiwkx@gmail.com")) (:maintainer "Wang Kai" . "kaiwkx@gmail.com") (:url . "https://github.com/kaiwk/leetcode.el"))]) -(leerzeichen . [(20170422 1313) nil "Minor mode to display whitespace characters." single ((:commit . "5acf9855ecb2b2cd5da4402bb48df149e7525cc5") (:keywords "whitespace" "characters") (:authors ("Felix Geller" . "fgeller@gmail.com")) (:maintainer "Felix Geller" . "fgeller@gmail.com") (:url . "http://github.com/fgeller/leerzeichen.el"))]) -(ledger-mode . [(20190616 2349) ((emacs (24 3))) "Helper code for use with the \"ledger\" command-line tool" tar ((:commit . "9b3b97303b196013eb3da65380184b60c130f246"))]) -(ledger-import . [(20190502 456) ((emacs (25 1)) (ledger-mode (3 1 1))) "Fetch OFX files from bank and push them to Ledger" single ((:commit . "6911708e373e2cbdb3868df7711ef07925ed36bf") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://gitlab.petton.fr/mpdel/libmpdel"))]) -(leanote . [(20161223 139) ((emacs (24 4)) (cl-lib (0 5)) (request (0 2)) (let-alist (1 0 3)) (pcache (0 4 0)) (s (1 10 0)) (async (1 9))) "A minor mode writing markdown leanote" single ((:commit . "d499e7b59bb1f1a2fabc0e4c26fb101ed62ebc7b") (:keywords "leanote" "note" "markdown") (:authors ("Aborn Jiang" . "aborn.jiang@gmail.com")) (:maintainer "Aborn Jiang" . "aborn.jiang@gmail.com") (:url . "https://github.com/aborn/leanote-emacs"))]) -(lean-mode . [(20180906 1645) ((emacs (24 3)) (dash (2 12 0)) (dash-functional (1 2 0)) (s (1 10 0)) (f (0 19 0)) (flycheck (30))) "A major mode for the Lean language" tar ((:commit . "9d6b8471e2044310b4cd7cd3213b1fc8f78ec499") (:keywords "languages") (:authors ("Leonardo de Moura" . "leonardo@microsoft.com") ("Soonho Kong " . "soonhok@cs.cmu.edu") ("Gabriel Ebner " . "gebner@gebner.org") ("Sebastian Ullrich" . "sebasti@nullri.ch")) (:maintainer "Sebastian Ullrich" . "sebasti@nullri.ch") (:url . "https://github.com/leanprover/lean-mode"))]) -(leaf-keywords . [(20190614 923) ((emacs (24 4)) (leaf (3 1 0))) "Additional leaf.el keywords for external packages" single ((:commit . "18162ca169f4e74ab0f7f90730607afa26da5500") (:keywords "lisp" "settings") (:authors ("Naoya Yamashita" . "conao3@gmail.com")) (:maintainer "Naoya Yamashita" . "conao3@gmail.com") (:url . "https://github.com/conao3/leaf-keywords.el"))]) -(leaf . [(20190618 1041) ((emacs (24 4))) "Simplify your init.el configuration, extended use-package" single ((:commit . "cecaaed04bd0f756b3ac98922768d61229ed2322") (:keywords "lisp" "settings") (:authors ("Naoya Yamashita" . "conao3@gmail.com")) (:maintainer "Naoya Yamashita" . "conao3@gmail.com") (:url . "https://github.com/conao3/leaf.el"))]) -(lcr . [(20180902 1919) ((dash (2 12 0)) (emacs (25 1))) "lightweight coroutines" single ((:commit . "c14f40692292d59156c7632dbdd2867c086aa75f") (:keywords "tools") (:authors ("Jean-Philippe Bernardy" . "jeanphilippe.bernardy@gmail.com")) (:maintainer "Jean-Philippe Bernardy" . "jeanphilippe.bernardy@gmail.com") (:url . "https://github.com/jyp/lcr"))]) -(lcb-mode . [(20160816 540) ((emacs (24))) "LiveCode Builder major mode" single ((:commit . "be0768e9aa6f9b8e76f2230f4f7f4d152a766b9a") (:keywords "languages") (:authors ("Peter TB Brett" . "peter@peter-b.co.uk")) (:maintainer "Peter TB Brett" . "peter@peter-b.co.uk") (:url . "https://github.com/peter-b/lcb-mode"))]) -(lavender-theme . [(20170808 1313) ((emacs (24 0))) "an Emacs 24 theme based on Lavender (tmTheme)" single ((:commit . "ef5e959b95d7fb8152137bc186c4c24e986c1e3c") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) -(launchctl . [(20150518 1309) ((emacs (24 1))) "Interface to launchctl on Mac OS X." single ((:commit . "73f8f52a5aa9a0be9bdcf68c29ad0fa2b4a115a4") (:keywords "tools" "convenience") (:authors ("Peking Duck <github.com/pekingduck>")) (:maintainer "Peking Duck <github.com/pekingduck>") (:url . "http://github.com/pekingduck/launchctl-el"))]) -(launch-mode . [(20170106 512) ((emacs (24 4))) "Major mode for launch-formatted text" tar ((:commit . "25ebd4ba77afcbe729901eb74923dbe9ae81c313") (:authors ("iory" . "ab.ioryz@gmail.com")) (:maintainer "iory" . "ab.ioryz@gmail.com") (:url . "https://github.com/iory/launch-mode"))]) -(launch . [(20130619 2204) nil "launch files with OS-standard associated applications." single ((:commit . "e7c3b573fc05fe4d3d322389079909311542e799") (:keywords "convenience" "processes") (:authors ("Simon Law" . "sfllaw@sfllaw.ca")) (:maintainer "Simon Law" . "sfllaw@sfllaw.ca") (:url . "https://github.com/sfllaw/emacs-launch"))]) -(latexdiff . [(20180521 2232) ((emacs (24 4))) "Latexdiff integration in Emacs" single ((:commit . "024ee7a4fd235695dacd9f53594fef3d79bee88b") (:keywords "tex" "vc" "tools" "git" "helm") (:authors ("Launay Gaby" . "gaby.launay@tutanota.com")) (:maintainer "Launay Gaby" . "gaby.launay@tutanota.com") (:url . "http://github.com/galaunay/latexdiff.el"))]) -(latex-unicode-math-mode . [(20170123 1816) nil "Input method for Unicode math symbols" tar ((:commit . "eb4a5c9f9b00a58d2ca80f90782a851f4c8497b8") (:authors ("Christoph Dittmann" . "github@christoph-d.de")) (:maintainer "Christoph Dittmann" . "github@christoph-d.de") (:url . "https://github.com/Christoph-D/latex-unicode-math-mode"))]) -(latex-preview-pane . [(20181008 1822) nil "Makes LaTeX editing less painful by providing a updatable preview pane" tar ((:commit . "5297668a89996b50b2b62f99cba01cc544dbed2e"))]) -(latex-pretty-symbols . [(20151112 1044) nil "Display many latex symbols as their unicode counterparts" single ((:commit . "ef4ea64c09ea182f38ecb88dfb31d58ed5e6063e") (:keywords "convenience" "display") (:authors ("Erik Parmann" . "eparmann@gmail.com") ("PÃ¥l Drange")) (:maintainer "Erik Parmann" . "eparmann@gmail.com") (:url . "https://bitbucket.org/mortiferus/latex-pretty-symbols.el"))]) -(latex-math-preview . [(20190123 802) nil "preview LaTeX mathematical expressions." single ((:commit . "90fd86da2d9514882146a5db40cb916fc533cf55") (:keywords "latex" "tex") (:authors ("Takayuki YAMAGUCHI" . "d@ytak.info")) (:maintainer "Takayuki YAMAGUCHI" . "d@ytak.info") (:url . "https://gitlab.com/latex-math-preview/latex-math-preview"))]) -(latex-extra . [(20170817 147) ((auctex (11 86 1)) (cl-lib (0 5))) "Adds several useful functionalities to LaTeX-mode." single ((:commit . "82d99b8b0c2db20e5270749582e03bcc2443ffb5") (:keywords "tex") (:authors ("Artur Malabarba" . "artur@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "artur@endlessparentheses.com") (:url . "http://github.com/Malabarba/latex-extra"))]) -(lastpass . [(20171208 1016) ((emacs (24 4)) (seq (1 9)) (cl-lib (0 5))) "LastPass command wrapper" single ((:commit . "a4529ce70b8187ed9ac4972997df152af58ef2eb") (:keywords "extensions" "processes" "lpass" "lastpass") (:authors ("Petter Storvik")) (:maintainer "Petter Storvik") (:url . "https://github.com/storvik/emacs-lastpass"))]) -(language-id . [(20190207 1057) ((emacs (24)) (cl-lib (0 5))) "Library to work with programming language identifiers" single ((:commit . "9145c75eaa41a7a9deda928f704b99db056d3e9d") (:keywords "languages" "util") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:url . "https://github.com/lassik/emacs-language-id"))]) -(language-detection . [(20161123 1813) ((emacs (24)) (cl-lib (0 5))) "Automatic language detection from code snippets" single ((:commit . "54a6ecf55304fba7d215ef38a4ec96daff2f35a4") (:authors ("Andreas Jansson" . "andreas@jansson.me.uk")) (:maintainer "Andreas Jansson" . "andreas@jansson.me.uk") (:url . "https://github.com/andreasjansson/language-detection.el"))]) -(langtool . [(20190303 2227) ((cl-lib (0 3))) "Grammar check utility using LanguageTool" single ((:commit . "81f2b8a07b29bbdd558db4b68dd904f4c0eb10a4") (:keywords "docs") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-langtool"))]) -(langdoc . [(20150218 645) ((cl-lib (0 2))) "Help to define help document mode for various languages" single ((:commit . "2c7223bacb116992d700ecb19a60df5c09c63424") (:keywords "convenience" "eldoc") (:authors ("Tomoya Tanjo" . "ttanjo@gmail.com")) (:maintainer "Tomoya Tanjo" . "ttanjo@gmail.com") (:url . "https://github.com/tom-tan/langdoc/"))]) -(lang-refactor-perl . [(20131122 2127) nil "Simple refactorings, primarily for Perl" single ((:commit . "691bd69639de6b7af357e3b7143563ececd9c497") (:keywords "languages" "refactoring" "perl") (:authors (nil . "Johan Lindstrom <buzzwordninja not_this_bit@googlemail.com>")) (:maintainer nil . "Johan Lindstrom <buzzwordninja not_this_bit@googlemail.com>") (:url . "https://github.com/jplindstrom/emacs-lang-refactor-perl"))]) -(lammps-mode . [(20180801 1319) ((emacs (24 4))) "basic syntax highlighting for LAMMPS files" single ((:commit . "a5b68d7a59975770b56ee8f6e66fa4f703a72ffe") (:keywords "languages" "faces") (:authors ("Aidan Thompson <athomps at sandia.gov>")) (:maintainer "Rohit Goswami <r95g10 at gmail.com>") (:url . "https://github.com/lammps/lammps/tree/master/tools/emacs"))]) -(labburn-theme . [(20170502 907) nil "A lab color space zenburn theme." single ((:commit . "e95334acd8a73fbe8e156f70e047014a87e92e66") (:keywords "theme" "zenburn") (:authors ("Johannes Goslar")) (:maintainer "Johannes Goslar") (:url . "https://github.com/ksjogo/labburn-theme"))]) -(lab-themes . [(20190320 1827) ((emacs (24))) "A custom theme carefully constructed in the LAB space" tar ((:commit . "d32477943ff6a2ea158c560a7b0c67537432bc2b") (:keywords "lisp") (:authors ("MetroWind" . "chris.corsair@gmail.com")) (:maintainer "MetroWind" . "chris.corsair@gmail.com") (:url . "https://github.com/MetroWind/lab-theme"))]) -(kwin . [(20150308 1812) nil "communicatewith the KWin window manager" single ((:commit . "d4f8f3593598b71ee596e0a87b2c1d6a912a9566") (:authors ("Simon Hafner")) (:maintainer "Simon Hafner") (:url . "http://github.com/reactormonk/kwin-minor-mode"))]) -(kv . [(20140108 1534) nil "key/value data structure functions" single ((:commit . "721148475bce38a70e0b678ba8aa923652e8900e") (:keywords "lisp") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk"))]) -(kurecolor . [(20180401 1221) ((emacs (24 1)) (s (1 0))) "color editing goodies for Emacs" single ((:commit . "a27153f6a01f38226920772dc4917b73166da5e6") (:authors ("Jason Milkins" . "jasonm23@gmail.com")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com"))]) -(kubernetes-tramp . [(20181228 922) ((emacs (24)) (cl-lib (0 5))) "TRAMP integration for kubernetes containers" single ((:commit . "8713571b66940f8f3f496b55baa23cdf1df7a869") (:keywords "kubernetes" "convenience") (:authors ("Giovanni Ruggiero" . "giovanni.ruggiero+github@gmail.com")) (:maintainer "Giovanni Ruggiero" . "giovanni.ruggiero+github@gmail.com") (:url . "https://github.com/gruggiero/kubernetes-tramp"))]) -(kubernetes-helm . [(20190201 320) ((yaml-mode (0 0 13)) (emacs (25 3))) "extension for helm, the package manager for kubernetes" single ((:commit . "bdf9280899b5efab6d55ffd96bad716c5f8e75bc") (:keywords "kubernetes" "helm" "k8s" "tools" "processes") (:authors ("Adrien Brochard")) (:maintainer "Adrien Brochard") (:url . "https://github.com/abrochard/kubernetes-helm"))]) -(kubernetes-evil . [(20171123 219) ((kubernetes (0 12 0)) (evil (1 2 12))) "Kubernetes keybindings for evil-mode." single ((:commit . "95d5c934f2955388bdd2f568b8e5c706ce15c21b") (:authors ("Chris Barrett" . "chris+emacs@walrus.cool")) (:maintainer "Chris Barrett" . "chris+emacs@walrus.cool"))]) -(kubernetes . [(20190605 134) ((emacs (25 1)) (dash (2 12 0)) (magit (2 8 0)) (magit-popup (2 13 0))) "Magit-like porcelain for Kubernetes." tar ((:commit . "95d5c934f2955388bdd2f568b8e5c706ce15c21b") (:authors ("Chris Barrett" . "chris+emacs@walrus.cool")) (:maintainer "Chris Barrett" . "chris+emacs@walrus.cool"))]) -(kubel . [(20190314 1707) ((magit-popup (2 4 0)) (emacs (25 3))) "extension for controlling Kubernetes with limited permissions" single ((:commit . "4d34f477310096e84d5dd86c6d1fd0adbb2e6a76") (:keywords "kubernetes" "k8s" "tools" "processes") (:authors ("Adrien Brochard")) (:maintainer "Adrien Brochard") (:url . "https://github.com/abrochard/kubel"))]) -(ksp-cfg-mode . [(20190414 2348) ((emacs (24)) (cl-lib (0 5))) "major mode for editing KSP CFG files" single ((:commit . "faec8bd8456c67276d065eb68c88a30efcef59ef") (:keywords "data") (:authors ("Emily Backes" . "lucca@accela.net")) (:maintainer "Emily Backes" . "lucca@accela.net") (:url . "http://github.com/lashtear/ksp-cfg-mode"))]) -(kroman . [(20150827 2340) nil "Korean hangul romanization" single ((:commit . "90402b6ae40383e75d8ba97d66eee93eebf40f70") (:keywords "korean" "roman") (:authors ("Zhang Kai Yu" . "yeannylam@gmail.com")) (:maintainer "Zhang Kai Yu" . "yeannylam@gmail.com"))]) -(kpm-list . [(20170924 1352) nil "An emacs buffer list that tries to intelligently group together buffers." single ((:commit . "e0f5112e5ce8ec1b603f4428fa51681c68bb28f5") (:authors ("Kevin Mahoney")) (:maintainer "Kevin Mahoney") (:url . "https://github.com/KMahoney/kpm-list/"))]) -(kotlin-mode . [(20190116 2055) ((emacs (24 3))) "Major mode for kotlin" single ((:commit . "0e542ae2f78420618df8b0123dfe168a37dce333") (:keywords "languages") (:authors ("Shodai Yokoyama" . "quantumcars@gmail.com")) (:maintainer "Shodai Yokoyama" . "quantumcars@gmail.com"))]) -(kosmos-theme . [(20170502 1850) ((emacs (24))) "Black and lightgray theme with not so much syntax highlighting." single ((:commit . "616456d2376a75dc31190ad65137d179fbad4336") (:authors ("Maxim Kim" . "habamax@gmail.com")) (:maintainer "Maxim Kim" . "habamax@gmail.com") (:url . "https://github.com/habamax/kosmos-theme"))]) -(korean-holidays . [(20190102 1558) nil "Korean holidays for calendar." single ((:commit . "3f90ed86f46f8e5533f23baa40e2513ac497ca2b") (:keywords "calendar") (:authors ("SeungKi Kim" . "tttuuu888@gmail.com")) (:maintainer "SeungKi Kim" . "tttuuu888@gmail.com") (:url . "https://github.com/tttuuu888/korean-holidays"))]) -(kooten-theme . [(20161023 905) ((emacs (24 1))) "Dark color theme" single ((:commit . "d10197b4dd7af02cd14aeab2573c273a294798c3") (:keywords "themes") (:authors ("Pascal van Kooten" . "kootenpv@gmail.com")) (:maintainer "Pascal van Kooten" . "kootenpv@gmail.com") (:url . "http://github.com/kootenpv/emacs-kooten-theme"))]) -(kolon-mode . [(20140122 1134) nil "Syntax highlighting for Text::Xslate's Kolon syntax" single ((:commit . "5af0955e280ae991862189ebecd3937c5fc8fb9f") (:keywords "xslate" "perl") (:authors ("Sam Tran")) (:maintainer "Sam Tran") (:url . "https://github.com/samvtran/kolon-mode"))]) -(kodi-remote . [(20190613 1035) ((request (0 2 0)) (let-alist (1 0 4)) (json (1 4)) (cl-lib (0 5)) (f (20190109 906))) "Remote Control for Kodi" single ((:commit . "c588c40dbf68cb3964a68829b1a6a696ae4d2ddf") (:keywords "kodi" "tools" "convinience") (:authors ("Stefan Huchler" . "stefan.huchler@mail.de")) (:maintainer "Stefan Huchler" . "stefan.huchler@mail.de") (:url . "http://github.com/spiderbit/kodi-remote.el"))]) -(know-your-http-well . [(20160208 2304) nil "Look up the meaning of HTTP headers, methods, relations, status codes" tar ((:commit . "3cc5ab6d2764ab7aacb1b6e026abaccbeb6c37f2"))]) -(klere-theme . [(20180415 1823) ((emacs (24))) "A dark theme with lambent color highlights and incremental grays" single ((:commit . "c064f9e5c44173c239fce239a62c8d5e61827672") (:authors ("Wamm K. D." . "jaft.r@outlook.com")) (:maintainer "Wamm K. D." . "jaft.r@outlook.com") (:url . "https://github.com/WammKD/emacs-klere-theme"))]) -(kixtart-mode . [(20150611 1604) ((emacs (24))) "major mode for Kixtart scripting files" single ((:commit . "1c2356797e7b766bbaaa2b341176a8b10499cd79") (:keywords "languages") (:authors ("Ryrun <https://github.com/ryrun>")) (:maintainer "Ryrun <https://github.com/ryrun>") (:url . "https://github.com/ryrun/kixtart-mode"))]) -(kiwix . [(20190325 352) ((emacs (24 4)) (cl-lib (0 5))) "Searching offline Wikipedia through Kiwix." single ((:commit . "c662f3dc5d924a4b64b7af4af28f15f27b7cea1e") (:keywords "kiwix" "wikipedia") (:authors ("stardiviner" . "numbchild@gmail.com")) (:maintainer "stardiviner" . "numbchild@gmail.com") (:url . "https://github.com/stardiviner/kiwix.el"))]) -(kivy-mode . [(20180702 2029) nil "Emacs major mode for editing Kivy files" single ((:commit . "d9bf764be7fc7826d7080482e770d522dd20c0a1") (:authors ("Dean Serenevy" . "dean@serenevy.net")) (:maintainer "Dean Serenevy" . "dean@serenevy.net"))]) -(kite-mini . [(20160508 1106) ((dash (2 11 0)) (websocket (1 5))) "Remotely evaluate JavaScript in the WebKit debugger" tar ((:commit . "a68619dbc109c7989f3448426d8c1ee9e797c11f") (:keywords "webkit") (:authors ("Tung Dao" . "me@tungdao.com")) (:maintainer "Tung Dao" . "me@tungdao.com") (:url . "https://github.com/tungd/kite-mini.el"))]) -(kite . [(20130201 1938) ((json (1 2)) (websocket (0 93 1))) "WebKit inspector front-end" tar ((:commit . "7ed74d1147a6ddd152d3da65dc30df3517d53144") (:keywords "tools") (:authors ("Julian Scheid" . "julians37@gmail.com")) (:maintainer "Julian Scheid" . "julians37@gmail.com"))]) -(killer . [(20190128 10) nil "kill and delete text" single ((:commit . "ace0547944933440384ceeb5876b1f68c082d540") (:keywords "convenience") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "http://github.com/tarsius/killer"))]) -(kill-ring-search . [(20140422 1555) nil "incremental search for the kill ring" single ((:commit . "23535b4a01a1cb1574604e36c49614e84e85c883") (:keywords "convenience" "matching") (:authors ("Nikolaj Schumacher <bugs * nschum de>")) (:maintainer "Nikolaj Schumacher <bugs * nschum de>") (:url . "http://nschum.de/src/emacs/kill-ring-search/"))]) -(kill-or-bury-alive . [(20190101 704) ((emacs (24 4)) (cl-lib (0 5))) "Precise control over buffer killing in Emacs" single ((:commit . "e76c5dd32a1f26f85bfee7ea7b72998553f5229c") (:keywords "buffer" "killing" "convenience") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/kill-or-bury-alive"))]) -(kibit-helper . [(20150508 1533) ((s (0 8)) (emacs (24))) "Conveniently use the Kibit Leiningen plugin from Emacs" single ((:commit . "16bdfff785ee05d8e74a5780f6808506d990cef7") (:keywords "languages" "clojure" "kibit") (:authors ("Jonas Enlund") ("James Elliott" . "james@brunchboy.com")) (:maintainer "Jonas Enlund") (:url . "http://www.github.com/brunchboy/kibit-helper"))]) -(kfg . [(20140909 538) ((f (0 17 1))) "an emacs configuration system" single ((:commit . "d2c9dd26618fb2f7bf1e7b6eae193b1cceba3c97") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/kfg"))]) -(keyword-search . [(20180424 1102) nil "browser keyword search from Emacs" tar ((:commit . "f8475ecaddb8804a9be6bee47678207c86ac8dee") (:keywords "web" "search" "keyword") (:maintainer "Jens Petersen") (:url . "https://github.com/juhp/keyword-search"))]) -(keyswap . [(20160813 957) ((emacs (24 3))) "swap bindings between key pairs" single ((:commit . "cd682a7c4a8d64d6bae6a005db5045232e5e7b95") (:keywords "convenience") (:authors ("Matthew Malcomson" . "hardenedapple@gmail.com")) (:maintainer "Matthew Malcomson" . "hardenedapple@gmail.com") (:url . "http://github.com/hardenedapple/keyswap.el"))]) -(keystore-mode . [(20190409 1946) ((emacs (24 3)) (origami (1 0)) (s (1 12 0)) (seq (2 20))) "A major mode for viewing and managing (java) keystores" tar ((:commit . "43bd5926348298d077c7221f37902c990df3f951") (:keywords "tools") (:authors ("Peterpaul Taekele Klein Haneveld" . "pp.kleinhaneveld@gmail.com")) (:maintainer "Peterpaul Taekele Klein Haneveld" . "pp.kleinhaneveld@gmail.com") (:url . "https://github.com/peterpaul/keystore-mode"))]) -(keyset . [(20150220 530) ((dash (2 8 0)) (cl-lib (0 5))) "A small library for structuring key bindings." single ((:commit . "41bbfc4dbed5de6ecf3ec1dba634c7c26241ca84") (:authors ("Hiroki YAMAKAWA" . "s06139@gmail.com")) (:maintainer "Hiroki YAMAKAWA" . "s06139@gmail.com") (:url . "https://github.com/HKey/keyset"))]) -(keypress-multi-event . [(20190109 530) ((emacs (24 3))) "Perform different actions for the same keypress." single ((:commit . "9de65a27e10d8ae47aa6d28c02c3eb82ee8c0b2e") (:keywords "abbrev" "convenience" "wp" "keyboard") (:authors ("Boruch Baum" . "boruch_baum@gmx.com")) (:maintainer "Boruch Baum" . "boruch_baum@gmx.com") (:url . "https://www.github.com/Boruch_Baum/emacs-keypress-multi-event"))]) -(keymap-utils . [(20180318 2237) ((cl-lib (0 3))) "keymap utilities" single ((:commit . "1ad766dbc111ec78b1a292da97b9bd4856cd2ff7") (:keywords "convenience" "extensions") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/keymap-utils"))]) -(keyfreq . [(20160516 1416) ((cl-lib (0 5))) "track command frequencies" single ((:commit . "9c665c8c219d18866403897936427bb408e3d6b9") (:authors ("Ryan Yeske, Michal Nazarewicz (mina86/AT/mina86.com)")) (:maintainer "David Capello, Xah lee"))]) -(keydef . [(20090428 1931) nil "a simpler way to define keys, with kbd syntax" single ((:commit . "dff2be9f58d12d8c6a490ad0c1b2b10b55528dc0") (:keywords "convenience" "lisp" "customization" "keyboard" "keys") (:authors ("Michael John Downes" . "mjd@ams.org")) (:maintainer "Michael John Downes" . "mjd@ams.org"))]) -(keychain-environment . [(20180318 2223) nil "load keychain environment variables" single ((:commit . "d3643196de6dc79ea77f9f4805028350fd76100b") (:keywords "gnupg" "pgp" "ssh") (:authors ("Paul Tipper <bluefoo at googlemail dot com>")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/keychain-environment"))]) -(keycast . [(20190317 135) ((emacs (25 3))) "Show current command and its key in the mode line" single ((:commit . "7bbebe6442720031e4f5d1fd909c5be2fbb1c1dc") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/keycast"))]) -(key-seq . [(20150907 756) ((key-chord (0 6))) "map pairs of sequentially pressed keys to commands" single ((:commit . "e29b083a6427d061638749194fc249ef69ad2cc0") (:keywords "convenience" "keyboard" "keybindings") (:authors ("Vyacheslav Levit" . "dev@vlevit.org")) (:maintainer "Vyacheslav Levit" . "dev@vlevit.org") (:url . "http://github.com/vlevit/key-seq.el"))]) -(key-quiz . [(20190609 2330) ((emacs (26))) "Emacs Keys Quiz" single ((:commit . "83c71692054e685c5539df29fd01c1450a220bd9") (:keywords "games") (:authors ("Federico Tedin" . "federicotedin@gmail.com")) (:maintainer "Federico Tedin" . "federicotedin@gmail.com") (:url . "https://github.com/federicotdn/key-quiz"))]) -(key-leap . [(20160831 1447) ((emacs (24 3))) "Leap between lines by typing keywords" single ((:commit . "b3f6ef15c8a13870475d5af159fa24b30f97dea0") (:keywords "point" "convenience") (:authors ("Martin Rykfors" . "martinrykfors@gmail.com")) (:maintainer "Martin Rykfors" . "martinrykfors@gmail.com") (:url . "https://github.com/MartinRykfors/key-leap"))]) -(key-intercept . [(20140211 749) nil "Intercept prefix keys" single ((:commit . "d9a60edb4ce893f2d3d94f242164fdcc62d43cf2") (:keywords "keyboard") (:authors ("INA Lintaro <tarao.gnn at gmail.com>")) (:maintainer "INA Lintaro <tarao.gnn at gmail.com>") (:url . "http://github.com/tarao/key-intercept-el"))]) -(key-combo . [(20150324 1439) nil "map key sequence to commands" single ((:commit . "2fb5c65bc82d5bd2964e2b163822429ab45d90a1") (:keywords "keyboard" "input") (:authors ("Yuuki Arisawa" . "yuuki.ari@gmail.com")) (:maintainer "Vitalie Spinu" . "spinuvit@gmail.com") (:url . "https://github.com/uk-ar/key-combo"))]) -(key-chord . [(20160227 1238) nil "map pairs of simultaneously pressed keys to commands" single ((:commit . "72443e9ff3c4f1c3ccaced3130236801efde3d83") (:keywords "keyboard" "chord" "input") (:authors ("David Andersson <l.david.andersson(at)sverige.nu>")) (:maintainer "David Andersson <l.david.andersson(at)sverige.nu>"))]) -(kerl . [(20150424 2005) nil "Emacs integration for kerl" single ((:commit . "1732ee26213f021bf040919c45ad276aafcaae14") (:keywords "tools") (:authors ("Correl Roush" . "correl@gmail.com")) (:maintainer "Correl Roush" . "correl@gmail.com") (:url . "http://github.com/correl/kerl.el/"))]) -(kdeconnect . [(20180126 2340) nil "An interface for KDE Connect" single ((:commit . "ca0cbf9a628ba7b519b43fa85e0d988ca26bf853") (:keywords "kdeconnect" "android") (:authors ("Carl Lieberman" . "dev@carl.ac")) (:maintainer "Carl Lieberman" . "dev@carl.ac"))]) -(karma . [(20160220 1245) ((pkg-info (0 4)) (emacs (24))) "Karma Test Runner Emacs Integration" single ((:commit . "31d3e7708246183d7ed0686be92bf23140af348c") (:keywords "language" "javascript" "js" "karma" "testing") (:authors ("Samuel Tonini")) (:maintainer "Samuel Tonini") (:url . "http://github.com/tonini/karma.el"))]) -(kapacitor . [(20190414 1908) ((emacs (25 1)) (magit (2 13 0)) (magit-popup (2 12 4))) "Main file for kapacitor-mode" single ((:commit . "e3300d8b4017a2f66b0d929cb85bcc7ee2612072") (:keywords "kapacitor" "emacs" "magit" "tools") (:authors ("Manoj Kumar Manikchand" . "manojm.321@gmail.com")) (:maintainer "Manoj Kumar Manikchand" . "manojm.321@gmail.com") (:url . "http://github.com/Manoj321/kapacitor-el"))]) -(kaomoji . [(20171227 440) ((emacs (24 3)) (helm-core (1 9 1))) "Input kaomoji superb easily" tar ((:commit . "90a1490743b2a30762f5454c9d9309018eff83dd") (:keywords "tools" "fun") (:authors ("Ono Hiroko" . "azazabc123@gmail.com")) (:maintainer "Ono Hiroko" . "azazabc123@gmail.com") (:url . "https://github.com/kuanyui/kaomoji.el"))]) -(kaolin-themes . [(20190608 955) ((emacs (25 1)) (autothemer (0 2 2)) (cl-lib (0 6))) "A set of eye pleasing themes" tar ((:commit . "8f88a8a5281eed55935af6364e5c0279ae449a92") (:keywords "dark" "light" "teal" "blue" "violet" "purple" "brown" "theme" "faces") (:authors ("Ogden Webb" . "ogdenwebb@gmail.com")) (:maintainer "Ogden Webb" . "ogdenwebb@gmail.com") (:url . "https://github.com/ogdenwebb/emacs-kaolin-themes"))]) -(kanji-mode . [(20160826 1139) nil "View stroke order for kanji characters at cursor" tar ((:commit . "eda4f8666486689d36317db7dbda54fb73d3e3d2") (:authors ("Wojciech Gac" . "wojciech.s.gac@gmail.com")) (:maintainer "Wojciech Gac" . "wojciech.s.gac@gmail.com") (:url . "http://github.com/wsgac/kanji-mode "))]) -(kanban . [(20170418 810) nil "Parse org-todo headlines to use org-tables as Kanban tables" single ((:commit . "dd11d722b20ae720f29b8aa93a3b1cad87650b33") (:keywords "outlines" "convenience") (:authors ("Arne Babenhauserheide" . "arne_bab@web.de")) (:maintainer "Arne Babenhauserheide" . "arne_bab@web.de"))]) -(kaleidoscope-evil-state-flash . [(20170728 1020) ((evil (1 2 12)) (kaleidoscope (0 1 0)) (s (1 11 0))) "Flash keyboard LEDs when changing Evil state" single ((:commit . "52b5be3277f65cb5ca657973e9bd7f914b996356") (:authors ("Gergely Nagy")) (:maintainer "Gergely Nagy") (:url . "https://github.com/algernon/kaleidoscope.el"))]) -(kaleidoscope . [(20170808 817) ((s (1 11 0))) "Controlling Kaleidoscope-powered devices." single ((:commit . "52b5be3277f65cb5ca657973e9bd7f914b996356") (:authors ("Gergely Nagy")) (:maintainer "Gergely Nagy") (:url . "https://github.com/algernon/kaleidoscope.el"))]) -(kakoune . [(20190601 2338) ((ryo-modal (0 4)) (multiple-cursors (1 4)) (expand-region (0 11 0)) (emacs (24 3))) "A simulation, but not emulation, of kakoune" tar ((:commit . "50488df2eeb6e8bfe72cfad4de24060819b148eb") (:authors ("Joseph Morag" . "jm4157@columbia.edu")) (:maintainer "Joseph Morag" . "jm4157@columbia.edu") (:url . "https://github.com/jmorag/kakoune.el"))]) -(kakapo-mode . [(20171004 451) ((cl-lib (0 5))) "TABS (hard or soft) for indentation (leading whitespace), and SPACES for alignment." single ((:commit . "292e07203c676361a1d918deb5acf2123cd70eaf") (:keywords "indentation") (:url . "https://github.com/listx/kakapo-mode"))]) -(kaesar-mode . [(20160128 1008) ((kaesar (0 1 4)) (cl-lib (0 3))) "Encrypt/Decrypt buffer by AES with password." single ((:commit . "d087075cb1a46c2c85cd075220e09b2eaef9b86e") (:keywords "data" "convenience") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-kaesar"))]) -(kaesar-file . [(20160128 1008) ((kaesar (0 1 1))) "Encrypt/Decrypt file by AES with password." single ((:commit . "d087075cb1a46c2c85cd075220e09b2eaef9b86e") (:keywords "data" "files") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-kaesar"))]) -(kaesar . [(20160128 1008) ((cl-lib (0 3))) "Another AES algorithm encrypt/decrypt string with password." single ((:commit . "d087075cb1a46c2c85cd075220e09b2eaef9b86e") (:keywords "data") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-kaesar"))]) -(k8s-mode . [(20181231 741) ((emacs (24 3)) (yaml-mode (0 0 10))) "Major mode for Kubernetes configuration file" tar ((:commit . "1580ffd6ec7749ec6d069ccea95f8c926ca5db15") (:authors ("Giap Tran" . "txgvnn@gmail.com")) (:maintainer "Giap Tran" . "txgvnn@gmail.com") (:url . "https://github.com/TxGVNN/emacs-k8s-mode"))]) -(jvm-mode . [(20150422 708) ((dash (2 6 0)) (emacs (24))) "Monitor and manage your JVMs" single ((:commit . "3355dbaf5b0185aadfbad24160399abb32c5bea0") (:keywords "convenience") (:authors ("Martin Trojer" . "martin.trojer@gmail.com")) (:maintainer "Martin Trojer" . "martin.trojer@gmail.com") (:url . "https://github.com/martintrojer/jvm-mode.el"))]) -(jupyter . [(20190613 2109) ((emacs (26)) (zmq (0 10 3)) (cl-lib (0 5)) (simple-httpd (1 5 0)) (websocket (1 9))) "Jupyter" tar ((:commit . "e87f26dee348c9365ddf74fee54c32031e3bbe39") (:authors ("Nathaniel Nicandro" . "nathanielnicandro@gmail.com")) (:maintainer "Nathaniel Nicandro" . "nathanielnicandro@gmail.com") (:url . "https://github.com/dzop/emacs-jupyter"))]) -(jumplist . [(20151120 345) ((cl-lib (0 5))) "Jump like vim jumplist or ex jumplist" single ((:commit . "c482d137d95bc5e1bcd790cdbde25b7f729b2502") (:keywords "jumplist" "vim") (:authors ("ganmacs <ganmacs_at_gmail.com>")) (:maintainer "ganmacs <ganmacs_at_gmail.com>") (:url . "https://github.com/ganmacs/jumplist"))]) -(jump-tree . [(20171014 1551) nil "Treat position history as a tree" tar ((:commit . "282267dc6305889e31d46b405b7ad4dfe5923b66") (:keywords "convenience" "position" "jump" "tree") (:authors ("Wen Yang" . "yangwen0228@foxmail.com")) (:maintainer "Wen Yang" . "yangwen0228@foxmail.com") (:url . "https://github.com/yangwen0228/jump-tree"))]) -(jump-to-line . [(20130122 1653) nil "Jump to line number at point." single ((:commit . "01ef8c3529d85e6c59cc20840acbc4a8e8325bc8") (:keywords "jump" "line" "back" "file" "ruby" "csharp" "python" "perl") (:authors ("ongaeshi")) (:maintainer "ongaeshi"))]) -(jump-char . [(20180601 1348) nil "navigation by char" single ((:commit . "1e31a3c687f2b3c71bbfab881c6d75915534bb9e") (:authors ("Le Wang")) (:maintainer "Le Wang") (:url . "https://github.com/lewang/jump-char"))]) -(jump . [(20161127 128) ((findr (0 7)) (inflections (2 4)) (cl-lib (0 5))) "build functions which contextually jump between files" single ((:commit . "e4f1372cf22e811faca52fc86bdd5d817498a4d8") (:keywords "project" "convenience" "navigation") (:authors ("Eric Schulte")) (:maintainer "Eric Schulte") (:url . "http://github.com/eschulte/jump.el"))]) -(jumblr . [(20170727 2043) ((s (1 8 0)) (dash (2 2 0))) "an anagram game for emacs" tar ((:commit . "34533dfb9db8538c005f4eaffafeff7ed193729f") (:keywords "anagram" "word game" "games") (:url . "https://github.com/mkmcc/jumblr"))]) -(julia-shell . [(20161125 1910) ((julia-mode (0 3))) "Major mode for an inferior Julia shell" tar ((:commit . "583a0b2ca20461ab4356929fd0f2212c22341b69") (:authors ("Dennis Ogbe" . "dogbe@purdue.edu")) (:maintainer "Dennis Ogbe" . "dogbe@purdue.edu"))]) -(julia-repl . [(20190420 1455) ((emacs (25))) "A minor mode for a Julia REPL" single ((:commit . "71380e8139e28ea527a85ddb9146f2980d62c1f8") (:keywords "languages") (:authors ("Tamas Papp" . "tkpapp@gmail.com")) (:maintainer "Tamas Papp" . "tkpapp@gmail.com") (:url . "https://github.com/tpapp/julia-repl"))]) -(julia-mode . [(20190407 2119) nil "Major mode for editing Julia source code" tar ((:commit . "8449c95a05ab5d75a48192c2da7f0e7f4d16714c") (:keywords "languages") (:url . "https://github.com/JuliaLang/julia"))]) -(jtags . [(20160211 2029) nil "enhanced tags functionality for Java development" tar ((:commit . "b50daa48510f71e74ce0ec2eb85030896a79cf96") (:keywords "languages" "tools") (:authors ("Alexander Baltatzis" . "alexander@baltatzis.com") ("Johan Dykstrom" . "jody4711-sf@yahoo.se")) (:maintainer "Johan Dykstrom" . "jody4711-sf@yahoo.se") (:url . "http://jtags.sourceforge.net"))]) -(jsx-mode . [(20130908 1724) nil "major mode for JSX" single ((:commit . "47213429c09259126cddb5742482cfc444c70d50") (:authors ("Takeshi Arabiki (abicky)")) (:maintainer "Takeshi Arabiki (abicky)") (:url . "https://github.com/jsx/jsx-mode.el"))]) -(jst . [(20150604 1138) ((s (1 9)) (f (0 17)) (dash (2 10)) (pcache (0 3)) (emacs (24 4))) "JS test mode" single ((:commit . "2a3fd16c992f7790dc67134ef06a814c3d20579c") (:keywords "js" "javascript" "jasmine" "coffee" "coffeescript") (:authors ("Cheung Hoi Yu" . "yeannylam@gmail.com")) (:maintainer "Cheung Hoi Yu" . "yeannylam@gmail.com") (:url . "https://github.com/cheunghy/jst-mode"))]) -(jss . [(20130508 1423) ((emacs (24 1)) (websocket (0)) (js2-mode (0))) "An emacs interface to webkit and mozilla debuggers" tar ((:commit . "41749257aecf13c7bd6ed489b5ab3304d06e40bc") (:keywords "languages") (:authors ("Marco Baringer" . "mb@bese.it")) (:maintainer "Marco Baringer" . "mb@bese.it"))]) -(jsonnet-mode . [(20181211 1853) ((emacs (24))) "Major mode for editing jsonnet files" single ((:commit . "2b90b4e12a11c42df0f1e5db327a50555b6ff023") (:keywords "languages") (:authors ("Nick Lanham")) (:maintainer "Nick Lanham") (:url . "https://github.com/mgyucht/jsonnet-mode"))]) -(json-snatcher . [(20150512 347) ((emacs (24))) "Grabs the path to JSON values in a JSON file" single ((:commit . "c4cecc0a5051bd364373aa499c47a1bb7a5ac51c") (:authors ("Sterling Graham" . "sterlingrgraham@gmail.com")) (:maintainer "Sterling Graham" . "sterlingrgraham@gmail.com") (:url . "http://github.com/sterlingg/json-snatcher"))]) -(json-rpc . [(20180104 1528) ((emacs (24 1)) (cl-lib (0 5))) "JSON-RPC library" single ((:commit . "0992ae71964055230aa5d4d934a1b93b5dfd7eb4") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/elisp-json-rpc"))]) -(json-reformatter-jq . [(20190425 925) ((emacs (24)) (reformatter (0 3))) "reformat json using jq" single ((:commit . "86bb6f7f7e116bcb0d52f37db308085b5b6ecb16") (:keywords "languages") (:authors ("wouter bolsterlee" . "wouter@bolsterl.ee")) (:maintainer "wouter bolsterlee" . "wouter@bolsterl.ee") (:url . "https://github.com/wbolster/emacs-json-reformatter-jq"))]) -(json-reformat . [(20160212 853) nil "Reformatting tool for JSON" single ((:commit . "8eb6668ed447988aea06467ba8f42e1f2178246f") (:keywords "json") (:authors ("Wataru MIYAGUNI" . "gonngo@gmail.com")) (:maintainer "Wataru MIYAGUNI" . "gonngo@gmail.com") (:url . "https://github.com/gongo/json-reformat"))]) -(json-navigator . [(20190131 1031) ((emacs (24 3)) (hierarchy (0 6 0))) "View and navigate JSON structures" single ((:commit . "f4cde60c4203fc70cc7ff22ed1d6579159ce2598") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://github.com/DamienCassou/json-navigator"))]) -(json-mode . [(20190123 422) ((json-reformat (0 0 5)) (json-snatcher (1 0 0))) "Major mode for editing JSON files." single ((:commit . "0e819e519ae17a2686e0881c4ca51fa873fa9b83") (:authors ("Josh Johnston")) (:maintainer "Josh Johnston") (:url . "https://github.com/joshwnj/json-mode"))]) -(jsfmt . [(20180920 1008) nil "Interface to jsfmt command for javascript files" single ((:commit . "ca141a135c7700eaedef92561d334e1fb7dc28a1") (:authors ("Brett Langdon" . "brett@blangdon.com")) (:maintainer "Brett Langdon" . "brett@blangdon.com") (:url . "https://github.com/brettlangdon/jsfmt.el"))]) -(jscs . [(20151015 1749) ((emacs (24 1)) (cl-lib (0 5))) "Consistent JavaScript editing using JSCS" single ((:commit . "9d39d0f2355e69a020bf76242504f3a33e013ccf") (:keywords "languages" "convenience") (:authors ("papaeye" . "papaeye@gmail.com")) (:maintainer "papaeye" . "papaeye@gmail.com") (:url . "https://github.com/papaeye/emacs-jscs"))]) -(js3-mode . [(20160515 1550) nil "An improved JavaScript editing mode" tar ((:commit . "229aeb374f1b1f3ee5c59b8ba3eebb6385c232cb") (:keywords "javascript" "languages") (:authors ("Thom Blake" . "webmaster@thomblake.com")) (:maintainer "Thom Blake" . "webmaster@thomblake.com"))]) -(js2-refactor . [(20180502 1042) ((js2-mode (20101228)) (s (1 9 0)) (multiple-cursors (1 0 0)) (dash (1 0 0)) (s (1 0 0)) (yasnippet (0 9 0 1))) "A JavaScript refactoring library for emacs." tar ((:commit . "79124b3274c43ad1f9ec6205fa362576552db02f"))]) -(js2-mode . [(20190606 1008) ((emacs (24 1)) (cl-lib (0 5))) "Improved JavaScript editing mode" tar ((:commit . "999c0e7d96f4d5be0950b6506d732dc3d7c53635") (:keywords "languages" "javascript") (:authors ("Steve Yegge" . "steve.yegge@gmail.com") ("mooz" . "stillpedant@gmail.com") ("Dmitry Gutov" . "dgutov@yandex.ru")) (:maintainer "Steve Yegge" . "steve.yegge@gmail.com") (:url . "https://github.com/mooz/js2-mode/"))]) -(js2-highlight-vars . [(20170418 1829) ((emacs (24 4)) (js2-mode (20150908))) "highlight occurrences of the variable under cursor" single ((:commit . "e3bb177e50f76b272e8073a94d4f46be6512a163") (:authors ("Mihai Bazon" . "mihai.bazon@gmail.com")) (:maintainer "Mihai Bazon" . "mihai.bazon@gmail.com") (:url . "http://mihai.bazon.net/projects/editing-javascript-with-emacs-js2-mode/js2-highlight-vars-mode"))]) -(js2-closure . [(20170816 1918) ((js2-mode (20150909))) "Google Closure dependency manager" single ((:commit . "f59db386d7d0693935d0bf52babcd2c203c06d04") (:keywords "javascript" "closure") (:authors ("Justine Tunney" . "jart@google.com")) (:maintainer "Justine Tunney" . "jart@google.com") (:url . "http://github.com/jart/js2-closure"))]) -(js-import . [(20190218 1319) ((emacs (24 4)) (f (0 19 0)) (projectile (0 14 0)) (dash (2 13 0))) "Import Javascript files from your current project or dependencies" single ((:commit . "2ab3b120cc94ebf4bee2d959c8869440bc4c7484") (:keywords "tools") (:authors ("Jakob Lind" . "karl.jakob.lind@gmail.com")) (:maintainer "Jakob Lind" . "karl.jakob.lind@gmail.com") (:url . "https://github.com/jakoblind/js-import"))]) -(js-format . [(20170119 102) ((emacs (24 1)) (js2-mode (20101228))) "Format or transform code style using NodeJS server with different javascript formatter" tar ((:commit . "544bda9be72b74ec2d442543ba60cff727d96669") (:keywords "js" "javascript" "format" "standard" "jsbeautify" "esformatter" "airbnb") (:authors ("James Yang" . "jamesyang999@gmail.com")) (:maintainer "James Yang" . "jamesyang999@gmail.com") (:url . "http://github.com/futurist/js-format.el"))]) -(js-doc . [(20160715 434) nil "Insert JsDoc style comment easily" single ((:commit . "f0606e89d5aa89146f96edb38cf69af0068a9d1e") (:keywords "document" "comment") (:authors ("mooz" . "stillpedant@gmail.com")) (:maintainer "mooz" . "stillpedant@gmail.com") (:url . "https://github.com/mooz/js-doc"))]) -(js-comint . [(20190606 6) ((emacs (24 3))) "JavaScript interpreter in window." single ((:commit . "ab8953bdf0176b1fadd7a3bb621f848ec5dc1f0c") (:keywords "javascript" "node" "inferior-mode" "convenience") (:authors ("Paul Huff" . "paul.huff@gmail.com")) (:maintainer "Chen Bin <chenbin.sh AT gmail DOT com>") (:url . "https://github.com/redguardtoo/js-comint"))]) -(js-codemod . [(20171104 1154) ((emacs (24 4))) "Run js-codemod on current line or selected region" tar ((:commit . "014e56c846487d1eeaf8a91dd503b9d96eb1510a") (:keywords "js" "codemod" "region") (:authors (nil . "Torgeir Thoresen <@torgeir>")) (:maintainer nil . "Torgeir Thoresen <@torgeir>"))]) -(js-auto-format-mode . [(20180807 1352) ((emacs (24))) "Minor mode for auto-formatting JavaScript code" single ((:commit . "17df4436cffeb426eb9a9e8b9220e74af0a7d18d") (:keywords "languages") (:authors ("Masafumi Koba" . "ybiquitous@gmail.com")) (:maintainer "Masafumi Koba" . "ybiquitous@gmail.com") (:url . "https://github.com/ybiquitous/js-auto-format-mode"))]) -(js-auto-beautify . [(20161031 509) ((web-beautify (0 3 1)) (web-mode (14 0 27))) "auto format you js/jsx file" single ((:commit . "180d15af7b5dfaab4ee1954cca2fdc797932f9de") (:authors (nil . "quanwei9958@126.com")) (:maintainer nil . "quanwei9958@126.com"))]) -(jquery-doc . [(20150812 758) nil "jQuery api documentation interface for emacs" tar ((:commit . "24032284919b942ec27707d929bdd8bf48420062") (:keywords "docs" "jquery") (:authors ("Anantha kumaran" . "ananthakumaran@gmail.com")) (:maintainer "Anantha kumaran" . "ananthakumaran@gmail.com"))]) -(jq-mode . [(20181103 1258) ((emacs (25 1))) "Edit jq scripts." tar ((:commit . "d6bbd83baf0746f22564f7ae92db44e06da6e08c") (:authors ("Bjarte Johansen <Bjarte dot Johansen at gmail dot com>")) (:maintainer "Bjarte Johansen <Bjarte dot Johansen at gmail dot com>") (:url . "https://github.com/ljos/jq-mode"))]) -(jq-format . [(20190428 1434) ((emacs (24)) (reformatter (0 3))) "Reformat JSON and JSONLines using jq" single ((:commit . "47e1c5adb89b37b4d53fe01302d8c675913c20e7") (:keywords "languages") (:authors ("wouter bolsterlee" . "wouter@bolsterl.ee")) (:maintainer "wouter bolsterlee" . "wouter@bolsterl.ee") (:url . "https://github.com/wbolster/emacs-jq-format"))]) -(jpop . [(20170410 1250) ((emacs (24)) (dash (2 11 0)) (cl-lib (0 5))) "Lightweight project caching and navigation framework" tar ((:commit . "7628b03260be96576b34459d45959ee77d8b2110") (:keywords "project" "convenience") (:authors ("Dom Charlesworth" . "dgc336@gmail.com")) (:maintainer "Dom Charlesworth" . "dgc336@gmail.com") (:url . "https://github.com/domtronn/jpop.el"))]) -(jonprl-mode . [(20160819 59) ((emacs (24 3)) (cl-lib (0 5)) (yasnippet (0 8 0))) "A major mode for editing JonPRL files" tar ((:commit . "6059bb64891fae45827174e044d6a87ac07172d8") (:keywords "languages") (:authors ("David Raymond Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Raymond Christiansen" . "david@davidchristiansen.dk"))]) -(jknav . [(20121006 2025) nil "Automatically enable j/k keys for line-based navigation" single ((:commit . "861245715c728503dad6573278fdd75c271dbf8b") (:keywords "keyboard" "navigation") (:authors ("Aaron Culich" . "aculich@gmail.com")) (:maintainer "Aaron Culich" . "aculich@gmail.com"))]) -(jist . [(20161229 1721) ((emacs (24 4)) (dash (2 12 0)) (seq (1 11)) (let-alist (1 0 4)) (magit (2 1 0)) (request (0 2 0))) "Gist integration" single ((:commit . "da0692452e312a99bb27d8708504b521798aca48") (:keywords "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/jist.el"))]) -(jira-markup-mode . [(20150601 2109) nil "Emacs Major mode for JIRA-markup-formatted text files" single ((:commit . "4fc534c47df26a2f402bf835ebe2ed89474a4062") (:keywords "jira" "markup") (:authors ("Matthias Nuessler" . "m.nuessler@web.de>")) (:maintainer "Matthias Nuessler" . "m.nuessler@web.de>") (:url . "https://github.com/mnuessler/jira-markup-mode"))]) -(jinja2-mode . [(20141128 1007) nil "A major mode for jinja2" single ((:commit . "cfaa7bbe7bb290cc500440124ce89686f3e26f86") (:authors ("Florian Mounier aka paradoxxxzero")) (:maintainer "Florian Mounier aka paradoxxxzero"))]) -(jg-quicknav . [(20170809 130) ((s (1 9 0)) (cl-lib (0 5))) "Quickly navigate the file system to find a file." single ((:commit . "c8d53e774d63e68a944092c08a026b57da741038") (:keywords "navigation") (:authors ("Jeff Gran" . "jeff@jeffgran.com")) (:maintainer "Jeff Gran" . "jeff@jeffgran.com") (:url . "https://github.com/jeffgran/jg-quicknav"))]) -(jetbrains . [(20180301 502) ((emacs (24 3)) (cl-lib (0 5)) (f (0 17))) "JetBrains IDE bridge" single ((:commit . "56f71a17d455581c10d48f6dbb31d9e2126227bf") (:keywords "tools" "php") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/emacs-php/jetbrains.el"))]) -(jest . [(20181216 459) ((emacs (24 4)) (dash (2 12 0)) (dash-functional (2 12 0)) (magit-popup (2 12 0)) (projectile (0 14 0)) (s (1 12 0)) (js2-mode (20180301)) (cl-lib (0 6 1))) "helpers to run jest" single ((:commit . "4c3b718b6a6fd4bf1d6209be1beffa33f6156b90") (:keywords "jest" "javascript" "testing") (:authors ("Edmund Miller" . "edmund.a.miller@gmail.com")) (:maintainer "Edmund Miller" . "edmund.a.miller@gmail.com") (:url . "https://github.com/emiller88/emacs-jest/"))]) -(jenkins-watch . [(20121004 2326) nil "Watch continuous integration build status" single ((:commit . "37b84dfbd98240a57ff798e1ff8bc7dba2913577") (:authors ("Andrew Taylor" . "ataylor@redtoad.ca")) (:maintainer "Andrew Taylor" . "ataylor@redtoad.ca") (:url . "https://github.com/ataylor284/jenkins-watch"))]) -(jenkins . [(20190521 400) ((dash (2 12)) (emacs (24 3)) (json (1 4))) "Minimalistic Jenkins client for Emacs" single ((:commit . "9c7b9d4cb39eff7d6ac4d0cbd5ebc103dc86cac2") (:keywords "jenkins" "convenience") (:authors ("Rustem Muslimov" . "r.muslimov@gmail.com")) (:maintainer "Rustem Muslimov" . "r.muslimov@gmail.com"))]) -(jemdoc-mode . [(20170704 2027) ((emacs (24 3))) "Major mode for editing jemdoc files" single ((:commit . "529b4d4681e1198b9892f340fdd6c3f1592a047a") (:keywords "convenience" "usability") (:authors ("Dimitar Dimitrov" . "mail.mitko@gmail.com")) (:maintainer "Dimitar Dimitrov" . "mail.mitko@gmail.com") (:url . "https://github.com/drdv/jemdoc-mode"))]) -(jekyll-modes . [(20141117 1314) ((polymode (0 2))) "Major modes (markdown and HTML) for authoring Jekyll content" single ((:commit . "7cb10b50fd2883e3f7b10fdfd98f19f2f0b2381c") (:keywords "docs") (:authors ("Fredrik Appelberg" . "fredrik@milgrim.local")) (:maintainer "Fredrik Appelberg" . "fredrik@milgrim.local") (:url . "https://github.com/fred-o/jekyll-modes"))]) -(jedi-direx . [(20140310 936) ((jedi (0 1 2)) (direx (0 1 -3))) "Tree style source code viewer for Python buffer" single ((:commit . "7a2e677400717ed12b959cb5988e7b3fb1c12117") (:authors ("Takafumi Arakaki <aka.tkf at gmail.com>")) (:maintainer "Takafumi Arakaki <aka.tkf at gmail.com>"))]) -(jedi-core . [(20181207 1) ((emacs (24)) (epc (0 1 0)) (python-environment (0 0 2)) (cl-lib (0 5))) "Common code of jedi.el and company-jedi.el" tar ((:commit . "615544c6ca81bbc53140aefe345e2120110c1660") (:authors ("Takafumi Arakaki <aka.tkf at gmail.com>")) (:maintainer "Takafumi Arakaki <aka.tkf at gmail.com>"))]) -(jedi . [(20160426 456) ((emacs (24)) (jedi-core (0 2 2)) (auto-complete (1 4))) "a Python auto-completion for Emacs" single ((:commit . "615544c6ca81bbc53140aefe345e2120110c1660") (:authors ("Takafumi Arakaki <aka.tkf at gmail.com>")) (:maintainer "Takafumi Arakaki <aka.tkf at gmail.com>"))]) -(jdee . [(20190418 1626) ((emacs (24 3)) (flycheck (30)) (memoize (1 0 1)) (dash (2 13 0)) (s (1 12 0))) "Java Development Environment for Emacs" tar ((:commit . "b9ce633d68ece00dac03d3eeddc4477de53e5e38") (:keywords "java" "tools") (:authors ("Paul Kinnucan" . "pkinnucan@attbi.com")) (:maintainer "Paul Landes") (:url . "http://github.com/jdee-emacs/jdee"))]) -(jdecomp . [(20170224 2200) ((emacs (24 5))) "Interface to Java decompilers" single ((:commit . "692866abc83deedce62be8d6040cf24dda7fb7a8") (:keywords "decompile" "java" "languages" "tools") (:authors ("Tianxiang Xiong" . "tianxiang.xiong@gmail.com")) (:maintainer "Tianxiang Xiong" . "tianxiang.xiong@gmail.com") (:url . "https://github.com/xiongtx/jdecomp"))]) -(jbeans-theme . [(20180309 1625) ((emacs (24))) "Jbeans theme for GNU Emacs 24 (deftheme)" single ((:commit . "3caa95998d8492a2ca6c17971de499ca15609871") (:authors ("Adam Olsen" . "arolsen@gmail.com")) (:maintainer "Adam Olsen" . "arolsen@gmail.com") (:url . "https://github.com/synic/jbeans-emacs"))]) -(jazz-theme . [(20170411 1411) nil "A warm color theme for Emacs 24+." single ((:commit . "b1cb78a97cc4050f19d88a89e455c3e52d98240e") (:authors ("Roman Parykin" . "donderom@ymail.com")) (:maintainer "Roman Parykin" . "donderom@ymail.com") (:url . "https://github.com/donderom/jazz-theme"))]) -(jaword . [(20170426 627) ((tinysegmenter (0 1))) "Minor-mode for handling Japanese words better" single ((:commit . "ac062b0e5ab4bd3270497e80aa0f3ac033a0493f") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(javap-mode . [(20120223 2208) nil "Javap major mode" single ((:commit . "864c1130e204b2072e1d19cd027b6fce8ebe6629") (:url . "http://github.com/hiredman/javap-mode"))]) -(javadoc-lookup . [(20160214 31) ((cl-lib (0 3))) "Javadoc Emacs integration with Maven" tar ((:commit . "507a2dd443d60b537b8f779c1847e2cd0ccd1382") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/javadoc-lookup"))]) -(java-snippets . [(20160627 252) ((yasnippet (0 8 0))) "Yasnippets for Java" tar ((:commit . "6d0e2768823be27dbe07448f4cb244cd657a7136") (:authors ("Takayoshi Kimura")) (:maintainer "Takayoshi Kimura") (:url . "https://github.com/nekop/yasnippet-java-mode"))]) -(java-imports . [(20170913 1410) ((emacs (24 4)) (s (1 10 0)) (pcache (0 3 2))) "Code for dealing with Java imports" single ((:commit . "e96ff44ed48b362ab6227b8b802b84d84f78bcaa") (:keywords "java") (:authors ("Lee Hinman" . "lee@writequit.org")) (:maintainer "Lee Hinman" . "lee@writequit.org") (:url . "http://www.github.com/dakrone/emacs-java-imports"))]) -(jastadd-ast-mode . [(20161219 926) ((emacs (24))) "Major mode for editing JastAdd AST files" single ((:commit . "a29fdb470cbf0a398164950a3b0d2217de48e0c0") (:keywords "languages") (:authors ("Rudi Schlatte" . "rudi@constantly.at")) (:maintainer "Rudi Schlatte" . "rudi@constantly.at") (:url . "https://github.com/rudi/jastadd-ast-mode"))]) -(jasminejs-mode . [(20150527 5) nil "A minor mode for manipulating jasmine test files" tar ((:commit . "9f8044bf81ab5b4841a30b0bd099916e1b7ff54a") (:keywords "javascript" "jasmine") (:authors ("Eric Stolten" . "stoltene2@gmail.com")) (:maintainer "Eric Stolten" . "stoltene2@gmail.com") (:url . "https://github.com/stoltene2/jasminejs-mode"))]) -(jar-manifest-mode . [(20160501 26) nil "Major mode to edit JAR manifest files" single ((:commit . "270dae14c481300f75ed96dad3a5ae42ca928a1d") (:keywords "convenience" "languages") (:authors ("Omair Majid" . "omair.majid@gmail.com")) (:maintainer "Omair Majid" . "omair.majid@gmail.com") (:url . "http://github.com/omajid/jar-manifest-mode"))]) -(jape-mode . [(20140903 1506) nil "An Emacs editing mode mode for GATE's JAPE files" single ((:commit . "85b9182850707b5d107391f6caee5bd401507a7d") (:keywords "languages" "jape" "gate") (:url . "http://github.com/tanzoniteblack/jape-mode"))]) -(japanlaw . [(20160615 643) ((cl-lib (0 5))) "Japan law from law.e-gov.go.jp" single ((:commit . "1bbdef942f28c61a0adb89d1b3c2cca5b10ca2dc") (:keywords "docs" "help") (:authors ("Kazushi NODA (http://www.ne.jp/asahi/alpha/kazu/)")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com"))]) -(japanese-holidays . [(20190317 1220) ((cl-lib (0 3))) "calendar functions for the Japanese calendar" single ((:commit . "45e70a6eaf4a555fadc58ab731d522a037a81997") (:keywords "calendar") (:authors ("Takashi Hattori" . "hattori@sfc.keio.ac.jp") ("Hiroya Murata" . "lapis-lazuli@pop06.odn.ne.jp")) (:maintainer "Takashi Hattori" . "hattori@sfc.keio.ac.jp") (:url . "https://github.com/emacs-jp/japanese-holidays"))]) -(janet-mode . [(20190605 443) ((emacs (24 3))) "Defines a major mode for Janet" single ((:commit . "d5555cc83c1893a1c0ea04d48857d5e71b138c06") (:authors ("Adam Schwalm" . "adamschwalm@gmail.com")) (:maintainer "Adam Schwalm" . "adamschwalm@gmail.com") (:url . "https://github.com/ALSchwalm/janet-mode"))]) -(jammer . [(20160310 859) nil "Punish yourself for using Emacs inefficiently" single ((:commit . "48aa795df6df7ae6484518bcd0398293ca49d7c6") (:keywords "games") (:authors ("Vasilij Schneidermann" . "v.schneidermann@gmail.com")) (:maintainer "Vasilij Schneidermann" . "v.schneidermann@gmail.com") (:url . "https://github.com/wasamasa/jammer"))]) -(jade-mode . [(20160525 1441) nil "Major mode for editing .jade files" single ((:commit . "4dbde92542fc7ad61df38776980905a4721d642e") (:authors ("Brian M. Carlson and other contributors")) (:maintainer "Brian M. Carlson and other contributors") (:url . "https://github.com/brianc/jade-mode"))]) -(jack-connect . [(20190311 1920) nil "Manage jack connections within Emacs" single ((:commit . "3be5f03ba39ffab65e974cf1624cf38588639dcb") (:authors ("Stefano Barbi" . "stefanobarbi@gmail.com")) (:maintainer "Stefano Barbi" . "stefanobarbi@gmail.com"))]) -(jabber-otr . [(20150918 1144) ((emacs (24)) (jabber (0 8 92))) "Off-The-Record messaging for jabber.el" tar ((:commit . "2692b1530234e0ba9a0d6c1eaa1cbe8679f193c0") (:keywords "comm") (:authors ("Magnus Henoch" . "magnus.henoch@gmail.com")) (:maintainer "Magnus Henoch" . "magnus.henoch@gmail.com") (:url . "https://github.com/legoscia/emacs-jabber-otr/"))]) -(jabber . [(20180927 2325) ((fsm (0 2)) (srv (0 2))) "A Jabber client for Emacs." tar ((:commit . "fff33826f42e040dad7ef64ea312d85215d3b0a1"))]) -(j-mode . [(20171224 1856) nil "Major mode for editing J programs" tar ((:commit . "e8725ac8af95498faabb2ca3ab3bd809a8f148e6") (:keywords "j" "languages") (:url . "http://github.com/zellio/j-mode"))]) -(iy-go-to-char . [(20141029 1546) nil "Go to next CHAR which is similar to \"f\" and \"t\" in vim" single ((:commit . "04ab4f5f3a241cbbc9b8c178a22b412a62f632f9") (:keywords "navigation" "search") (:authors ("Ian Yang <doit dot ian (at) gmail dot com>")) (:maintainer "Ian Yang <doit dot ian (at) gmail dot com>") (:url . "https://github.com/doitian/iy-go-to-char"))]) -(ix . [(20131027 1629) ((grapnel (0 5 3))) "Emacs client for http://ix.io pastebin" single ((:commit . "aea4c54a5cc5a6f26637353c16a3a0e70fc76963") (:authors ("Abhishek L" . "abhishekl.2006@gmail.com")) (:maintainer "Abhishek L" . "abhishekl.2006@gmail.com") (:url . "http://www.github.com/theanalyst/ix.el"))]) -(ivy-youtube . [(20181126 1039) ((request (0 2 0)) (ivy (0 8 0)) (cl-lib (0 5))) "Query YouTube and play videos in your browser" single ((:commit . "849b6db7ef02b080a86c1b887488e2935c31059a") (:keywords "youtube" "multimedia" "mpv" "vlc") (:authors ("Brunno dos Santos")) (:maintainer "Brunno dos Santos") (:url . "https://github.com/squiter/ivy-youtube"))]) -(ivy-ycmd . [(20180909 1225) ((ycmd (1 3)) (emacs (24)) (ivy (0 10 0)) (dash (2 14 1))) "Ivy interface to ycmd" single ((:commit . "25bfee8f676e4ecbb645e4f30b47083410a00c58") (:keywords "tools") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/emacs-ivy-ycmd"))]) -(ivy-yasnippet . [(20181002 1655) ((emacs (24)) (ivy (0 10 0)) (yasnippet (0 12 2)) (dash (2 14 1)) (cl-lib (0))) "Preview yasnippets with ivy" single ((:commit . "32580b4fd23ebf9ca7dde96704f7d53df6e253cd") (:keywords "convenience") (:authors ("MichaÅ‚ Krzywkowski" . "k.michal@zoho.com")) (:maintainer "MichaÅ‚ Krzywkowski" . "k.michal@zoho.com") (:url . "https://github.com/mkcms/ivy-yasnippet"))]) -(ivy-xref . [(20190611 1305) ((emacs (25 1)) (ivy (0 10 0))) "Ivy interface for xref results" single ((:commit . "1a35fc0f070388701b05b0a455cbe262e924d547") (:authors ("Alex Murray" . "murray.alex@gmail.com")) (:maintainer "Alex Murray" . "murray.alex@gmail.com") (:url . "https://github.com/alexmurray/ivy-xref"))]) -(ivy-xcdoc . [(20160917 1055) ((ivy (0 8 0)) (emacs (24 4))) "Search Xcode documents with ivy interface." single ((:commit . "5ea22af36c4c2737fb0bec53432c233482d8b314") (:keywords "ivy" "xcode" "xcdoc") (:authors ("C.T.Chen" . "chenct@7adybird.com")) (:maintainer "C.T.Chen" . "chenct@7adybird.com") (:url . "https://github.com/hex2010/emacs-ivy-xcdoc"))]) -(ivy-todo . [(20171208 1609) ((ivy (0 8 0)) (emacs (24 3))) "Manage org-mode TODOs with ivy" single ((:commit . "964e347cea1a6097854d7113f5b07f6c5ef81df0") (:keywords "convenience") (:authors ("Erik Sjöstrand" . "sjostrand.erik@gmail.com")) (:maintainer "Erik Sjöstrand" . "sjostrand.erik@gmail.com") (:url . "http://github.com/Kungsgeten/ivy-todo"))]) -(ivy-rtags . [(20170523 454) ((ivy (0 7 0)) (rtags (2 10))) "RTags completion back-end for ivy" single ((:commit . "d49e49f46b878e0d10f6ddc3951d690d50e75277") (:authors ("Jan Erik Hanssen" . "jhanssen@gmail.com") ("Anders Bakken" . "agbakken@gmail.com")) (:maintainer "Jan Erik Hanssen" . "jhanssen@gmail.com") (:url . "http://rtags.net"))]) -(ivy-rich . [(20190613 2345) ((emacs (24 4)) (ivy (0 8 0))) "More friendly display transformer for ivy." single ((:commit . "58da08aeff58267c5a982ebbfc5cce0ea66db107") (:keywords "ivy") (:authors ("Yevgnen Koh" . "wherejoystarts@gmail.com")) (:maintainer "Yevgnen Koh" . "wherejoystarts@gmail.com"))]) -(ivy-purpose . [(20160724 1003) ((emacs (24)) (ivy (0 8)) (window-purpose (1 5))) "Ivy Interface for Purpose" single ((:commit . "0495f2f3aed64d7e0028125e76a9a68f8fc4107e") (:authors ("Bar Magal (2016)")) (:maintainer "Bar Magal (2016)") (:url . "https://github.com/bmag/ivy-purpose"))]) -(ivy-prescient . [(20190523 1734) ((emacs (25 1)) (prescient (3 1)) (ivy (0 11 0))) "prescient.el + Ivy" single ((:commit . "1964f605f1f1e50c64a33aa3910cde7a23b45afc") (:keywords "extensions") (:authors ("Radon Rosborough" . "radon.neon@gmail.com")) (:maintainer "Radon Rosborough" . "radon.neon@gmail.com") (:url . "https://github.com/raxod502/prescient.el"))]) -(ivy-posframe . [(20190610 2215) ((emacs (26 0)) (posframe (0 1 0)) (ivy (0 11 0))) "Using posframe to show Ivy" single ((:commit . "c6543667223ee69ff2214a0116cf1883f19de2a1") (:keywords "abbrev" "convenience" "matching" "ivy") (:authors ("Feng Shu")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/ivy-posframe"))]) -(ivy-phpunit . [(20180219 915) ((ivy (0 10 0)) (phpunit (0 7 0)) (emacs (25))) "Ivy integration for phpunit.el" single ((:commit . "ffedb0138d36564e8e36a28fd9bc71ea8944681f") (:keywords "convenience" "tools" "ivy" "phpunit" "php") (:authors ("12pt")) (:maintainer "12pt") (:url . "https://github.com/12pt/ivy-phpunit"))]) -(ivy-pass . [(20170812 1955) ((emacs (24)) (ivy (0 8 0)) (password-store (1 6 5))) "ivy interface for pass" single ((:commit . "5b523de1151f2109fdd6a8114d0af12eef83d3c5") (:keywords "pass" "password" "convenience" "data") (:authors ("ecraven")) (:maintainer "ecraven") (:url . "https://github.com/ecraven/ivy-pass/"))]) -(ivy-pages . [(20160728 1920) ((emacs (24 1)) (ivy (0 8 0))) "Complete current buffer's pages with Ivy" single ((:commit . "47b03a1f9384502cf22369ff31a2898c863d3aff") (:keywords "convenience" "matching") (:authors ("Igor Epstein" . "igorepst@gmail.com")) (:maintainer "Igor Epstein" . "igorepst@gmail.com") (:url . "https://github.com/igorepst/ivy-pages"))]) -(ivy-omni-org . [(20190420 1238) ((emacs (25 1)) (ivy (0 10)) (dash (2 12))) "Browse anything in Org mode" single ((:commit . "7e51f8a1643d44eb930e1a04f11eb381ac6b8d92") (:keywords "outlines") (:authors ("Akira Komamura" . "akira.komamura@gmail.com")) (:maintainer "Akira Komamura" . "akira.komamura@gmail.com") (:url . "https://github.com/akirak/ivy-omni-org"))]) -(ivy-mpdel . [(20190428 920) ((emacs (25 1)) (ivy (0 10 0)) (libmpdel (1 0 0)) (mpdel (1 0 0))) "Ivy interface to navigate MPD" single ((:commit . "a42dcc943914c71975c115195d38c739f25e475c") (:keywords "multimedia") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://gitlab.petton.fr/mpdel/ivy-mpdel"))]) -(ivy-lobsters . [(20171202 2041) ((ivy (0 8 0)) (cl-lib (0 5))) "Browse lobste.rs stories with ivy." single ((:commit . "4364df4b3685fd1b50865ac9360fb948c0288dd1") (:authors ("Julien Blanchard <https://github.com/julienXX>")) (:maintainer "Julien Blanchard <https://github.com/julienXX>") (:url . "https://github.com/julienXX/ivy-lobsters"))]) -(ivy-hydra . [(20190328 1545) ((emacs (24 1)) (ivy (0 11 0)) (hydra (0 13 4))) "Additional key bindings for Ivy" single ((:commit . "44b2d7d6a8a81d1ed5c2aaa613eabe7e25c0b9a3") (:keywords "convenience") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/swiper"))]) -(ivy-historian . [(20190111 313) ((emacs (24 4)) (historian (20170111)) (ivy (0 8 0)) (flx (0 6 1))) "Persistently store selected minibuffer candidates" single ((:commit . "64f4ef8cd4e417dfa090138a2d4ea1e72fd4456a") (:keywords "convenience" "ivy") (:authors ("PythonNut" . "pythonnut@pythonnut.com")) (:maintainer "PythonNut" . "pythonnut@pythonnut.com") (:url . "https://github.com/PythonNut/historian.el"))]) -(ivy-gitlab . [(20181228 826) ((s (1 9 0)) (dash (2 9 0)) (ivy (0 8 0)) (gitlab (0 8))) "Ivy interface to Gitlab" single ((:commit . "8c2324c02119500f094c2f92dfaba4c9977ce1ba") (:keywords "gitlab" "ivy") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/emacs-gitlab"))]) -(ivy-feedwrangler . [(20180618 1522) nil "No description available." single ((:commit . "051eac49cae32b16fab2e06ff0115cd8fb5dc499"))]) -(ivy-explorer . [(20190318 1608) ((emacs (25)) (ivy (0 10 0))) "Dynamic file browsing grid using ivy" single ((:commit . "5bf3b915bdb78f58fc657e616262d967266a4500") (:keywords "convenience" "files" "matching") (:authors ("Clemens Radermacher" . "clemera@posteo.net")) (:maintainer "Clemens Radermacher" . "clemera@posteo.net") (:url . "https://github.com/clemera/ivy-explorer"))]) -(ivy-erlang-complete . [(20190406 1736) ((async (1 9)) (counsel (0 11 0)) (ivy (0 11 0)) (erlang (19 2)) (emacs (24 4))) "Erlang context sensitive completion at point using ivy. It also support xref and eldoc." tar ((:commit . "f3a7088ba62746932ac0084e254e4235b93febcc"))]) -(ivy-dired-history . [(20170626 556) ((ivy (0 9 0)) (counsel (0 9 0)) (cl-lib (0 5))) "use ivy to open recent directories" single ((:commit . "c9c67ea1ee5e68443f0e6006ba162d6c8d868b69") (:authors ("纪秀峰" . "jixiuf@gmail.com")) (:maintainer "纪秀峰" . "jixiuf@gmail.com") (:url . "https://github.com/jixiuf/ivy-dired-history"))]) -(ivy-bibtex . [(20190430 1818) ((swiper (0 7 0)) (parsebib (1 0)) (s (1 9 0)) (dash (2 6 0)) (f (0 16 2)) (cl-lib (0 5)) (biblio (0 2))) "A bibliography manager based on Ivy" tar ((:commit . "e1391a4be629b506f06d678bcdfd17d290904482") (:authors ("Justin Burkett" . "justin@burkett.cc")) (:maintainer "Titus von der Malsburg" . "malsburg@posteo.de"))]) -(ivy . [(20190613 1539) ((emacs (24 1))) "Incremental Vertical completYon" tar ((:commit . "44b2d7d6a8a81d1ed5c2aaa613eabe7e25c0b9a3") (:keywords "matching") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/swiper"))]) -(ivs-edit . [(20170818 1441) ((emacs (24 3)) (dash (2 6 0)) (cl-lib (1 0))) "IVS (Ideographic Variation Sequence) editing tool" tar ((:commit . "5db39c234aa7393b591168a4fd0a9a4cbbca347d") (:keywords "text") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "http://github.com/kawabata/ivs-edit"))]) -(ivariants . [(20170823 224) ((emacs (24 3)) (ivs-edit (1 0))) "Ideographic variants editor and browser" tar ((:commit . "ca0b74d32b5d2d77a45cc6ad6edc00be0ee85284") (:keywords "i18n" "languages") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "http://github.com/kawabata/ivariants"))]) -(iterator . [(20170207 838) ((emacs (24)) (cl-lib (0 5))) "A library to create and use elisp iterators objects." single ((:commit . "9da54f9aed945b46866782cdf962c9e530419297") (:authors ("Thierry Volpiatto <thierry dot volpiatto at gmail dot com>")) (:maintainer "Thierry Volpiatto <thierry dot volpiatto at gmail dot com>") (:url . "https://github.com/thierryvolpiatto/iterator"))]) -(iter2 . [(20190113 1424) ((emacs (25 1))) "Reimplementation of Elisp generators" single ((:commit . "fc1fcea5379bc7728a25dd81546886213e3db6fa") (:keywords "elisp" "extensions") (:authors ("Paul Pogonyshev" . "pogonyshev@gmail.com")) (:maintainer "Paul Pogonyshev" . "pogonyshev@gmail.com") (:url . "https://github.com/doublep/iter2"))]) -(itasca . [(20170601 1622) ((emacs (24 3))) "Major modes for Itasca software data files." tar ((:commit . "3d15dd1b70d6db69b0f4758a3e28b8b506cc84ca") (:keywords "itasca" "flac" "3dec" "udec" "flac3d" "pfc" "pfc2d" "pfc3d" "fish") (:authors ("Jason Furtney" . "jkfurtney@gmail.com")) (:maintainer "Jason Furtney" . "jkfurtney@gmail.com") (:url . "http://github.com/jkfurtney/itasca-emacs/"))]) -(itail . [(20171112 804) nil "An interactive tail mode" single ((:commit . "6e43c20da03be3b9c6ece93b7dc3495975ec1888") (:keywords "tail") (:authors ("atom smith")) (:maintainer "atom smith") (:url . "https://github.com/re5et/itail"))]) -(iss-mode . [(20141001 1913) nil "Mode for InnoSetup install scripts" single ((:commit . "3b517aff31529bab33f8d7b562bd17aff0107fd1") (:authors ("Stefan Reichoer," . "stefan@xsteve.at")) (:maintainer "Stefan Reichoer," . "stefan@xsteve.at"))]) -(isortify . [(20190315 2004) ((emacs (25)) (pythonic (0 1 0))) "(automatically) format python buffers using isort." single ((:commit . "4d8ecfcadf58ea51368e66ecf6f2a95a95953fcf") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/isortify"))]) -(isolate . [(20190206 329) ((emacs (25))) "Surrounding tool with flexible customizations." single ((:commit . "3bb82f52b0df39c9b57fb68ba622b2906d0eecff") (:keywords "convenience") (:authors ("Yuan Fu" . "casouri@gmail.com")) (:maintainer "Yuan Fu" . "casouri@gmail.com") (:url . "https://github.com/casouri/isolate"))]) -(isgd . [(20150414 936) nil "Shorten URLs using the isgd.com shortener service" single ((:commit . "764306dadd5a9213799081a48aba22f7c75cca9a") (:authors ("Chmouel Boudjnah" . "chmouel@chmouel.com")) (:maintainer "Chmouel Boudjnah" . "chmouel@chmouel.com") (:url . "https://github.com/chmouel/isgd.el"))]) -(isend-mode . [(20190201 832) nil "Interactively send parts of an Emacs buffer to an interpreter" single ((:commit . "38ace354d579eb364d4f95b9ea16081c171ea604") (:authors ("François Févotte" . "fevotte@gmail.com")) (:maintainer "François Févotte" . "fevotte@gmail.com") (:url . "https://github.com/ffevotte/isend-mode.el"))]) -(isearch-symbol-at-point . [(20130728 2221) nil "Use isearch to search for the symbol at point" single ((:commit . "51a1029bec1ec414885f9edb7e5947603dffdab2") (:keywords "isearch") (:authors ("atom smith")) (:maintainer "atom smith") (:url . "https://github.com/re5et/isearch-symbol-at-point"))]) -(isearch-project . [(20190505 819) ((emacs (25)) (cl-lib (0 6))) "Incremental search through the whole project." single ((:commit . "462b8100451b947367aed2970c2669ea6d15edbd") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:url . "https://github.com/jcs090218/isearch-project"))]) -(isearch-dabbrev . [(20141224 622) ((cl-lib (0 5))) "Use dabbrev in isearch" single ((:commit . "1efe7abba4923015cbc2462395deaec5446a9cc8") (:keywords "dabbrev" "isearch") (:authors ("Dewdrops" . "v_v_4474@126.com")) (:maintainer "Dewdrops" . "v_v_4474@126.com") (:url . "https://github.com/Dewdrops/isearch-dabbrev"))]) -(irony-eldoc . [(20170502 1908) ((emacs (24)) (cl-lib (0 5)) (irony (0 1))) "irony-mode support for eldoc-mode" single ((:commit . "0df5831eaae264a25422b061eb2792aadde8b3f2") (:keywords "c" "c++" "objc" "convenience" "tools") (:authors ("Kirill Ignatiev <github.com/ikirill>")) (:maintainer "Kirill Ignatiev <github.com/ikirill>") (:url . "https://github.com/ikirill/irony-eldoc"))]) -(irony . [(20190516 2348) ((cl-lib (0 5)) (json (1 2))) "C/C++ minor mode powered by libclang" tar ((:commit . "c3ae899b61124a747ebafc705086345e460ac08e") (:keywords "c" "convenience" "tools") (:authors ("Guillaume Papin" . "guillaume.papin@epitech.eu")) (:maintainer "Guillaume Papin" . "guillaume.papin@epitech.eu") (:url . "https://github.com/Sarcasm/irony-mode"))]) -(iregister . [(20150515 2107) nil "Interactive register commands for Emacs." tar ((:commit . "6a48c66187289de5f300492be11c83e98410c018") (:keywords "convenience") (:authors ("Andrey Tykhonov" . "atykhonov@gmail.com")) (:maintainer "Andrey Tykhonov" . "atykhonov@gmail.com") (:url . "https://github.com/atykhonov/iregister.el"))]) -(ir-black-theme . [(20130303 755) nil "Port of ir-black theme" single ((:commit . "36e930d107604b5763c80294a6f92aaa02e6c272") (:keywords "faces") (:authors ("Jon-Michael Deldin" . "dev@jmdeldin.com")) (:maintainer "Jon-Michael Deldin" . "dev@jmdeldin.com"))]) -(iqa . [(20181024 2253) ((emacs (24 3))) "Init file(and directory) Quick Access." single ((:commit . "b45614f5204ed851de0abe93907aa94de5e37379") (:url . "https://github.com/a13/iqa.el"))]) -(ipython-shell-send . [(20190220 2246) ((emacs (24))) "Send code (including magics) to ipython shell" single ((:commit . "0faed86faff02a361f23ce5fc923d0e9b09bb2da") (:keywords "tools" "processes") (:authors ("Jack Kamm" . "jackkamm@gmail.com")) (:maintainer "Jack Kamm" . "jackkamm@gmail.com") (:url . "https://github.com/jackkamm/ipython-shell-send-el"))]) -(ipretty . [(20180606 522) nil "Interactive Emacs Lisp pretty-printing" single ((:commit . "042f5cc4e6f81d59115e8335c582bb5c571c2585") (:keywords "pretty-print" "elisp" "buffer") (:authors ("steckerhalter")) (:maintainer "steckerhalter") (:url . "https://framagit.org/steckerhalter/ipretty"))]) -(iplayer . [(20161120 2120) nil "Browse and download BBC TV/radio shows" single ((:commit . "b788fffa4b36bbd558047ffa6be51b1f0f462f23") (:keywords "multimedia" "bbc") (:authors ("Christophe Rhodes" . "csr21@cantab.net")) (:maintainer "Christophe Rhodes" . "csr21@cantab.net") (:url . "https://github.com/csrhodes/iplayer-el"))]) -(ipcalc . [(20170926 805) ((cl-lib (0 5))) "IP subnet calculator" single ((:commit . "2720f7e3e662e04e195f8338b81a499cf321296a") (:keywords "networking" "tools") (:authors ("\"Aleksandar Simic\"" . "asimic@gmail.com")) (:maintainer "\"Aleksandar Simic\"" . "asimic@gmail.com") (:url . "http://github.com/dotemacs/ipcalc.el"))]) -(iodine-theme . [(20151031 1639) ((emacs (24))) "A light emacs color theme" single ((:commit . "02fb780e1d8d8a6b9c709bfac399abe1665c6999") (:keywords "themes") (:authors ("SrÄ‘an Panić" . "srdja.panic@gmail.com")) (:maintainer "SrÄ‘an Panić" . "srdja.panic@gmail.com") (:url . "https://github.com/srdja/iodine-theme"))]) -(ioccur . [(20130822 548) nil "Incremental occur" single ((:commit . "4c0ef992a6fcd2aed62e3866d56650463108ab5a") (:authors ("Thierry Volpiatto <thierry dot volpiatto at gmail dot com>")) (:maintainer "Thierry Volpiatto <thierry dot volpiatto at gmail dot com>") (:url . "https://github.com/thierryvolpiatto/ioccur"))]) -(io-mode-inf . [(20140128 1934) nil "Interaction with an Io interpreter." single ((:commit . "6dd2bac3fd87484bb7d97e135b06c29d70b444b6") (:keywords "io" "languages") (:url . "https://github.com/slackorama/io-emacs"))]) -(io-mode . [(20161004 756) nil "Major mode to edit Io language files in Emacs" single ((:commit . "fd65ae769093defcf554d6d637eba6e6dfc29f56") (:keywords "languages" "io") (:authors ("Sergei Lebedev" . "superbobry@gmail.com")) (:maintainer "Sergei Lebedev" . "superbobry@gmail.com") (:url . "https://github.com/superbobry/io-mode"))]) -(inverse-acme-theme . [(20170823 254) ((autothemer (0 2)) (cl-lib (0 5))) "A theme that looks like an inverse of Acme's color scheme." single ((:commit . "74d6f3e2f6534371509dd2d77006435156c276d6") (:authors ("Dylan Johnson")) (:maintainer "Dylan Johnson") (:url . "http://github.com/djohnson/inverse-acme-theme"))]) -(interval-tree . [(20130325 1407) ((dash (1 1 0))) "Interval tree data structure for 1D range queries" single ((:commit . "301302f480617091cf3ab6989caac385d52543dc") (:keywords "extensions" "data structure") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/interval-tree"))]) -(interval-list . [(20150327 1718) ((dash (2 4 0)) (cl-lib (0 5)) (emacs (24 4))) "Interval list data structure for 1D selections" single ((:commit . "38af7ecf0a493ad8f487074938a2a115f3531177") (:keywords "extensions" "data structure") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/interval-list"))]) -(intero . [(20190530 1308) ((flycheck (0 25)) (company (0 8)) (emacs (24 4)) (haskell-mode (13 0))) "Complete development mode for Haskell" single ((:commit . "188211d1238a108ea47ab93216d0ae9c4a426dee") (:keywords "haskell" "tools") (:authors ("Chris Done" . "chrisdone@fpcomplete.com")) (:maintainer "Chris Done" . "chrisdone@fpcomplete.com") (:url . "https://github.com/commercialhaskell/intero"))]) -(interleave . [(20171004 624) nil "Interleaving text books since 2015" single ((:commit . "87549df30cbc681baf86b238bd14c7cf7ec11fc4") (:authors ("Sebastian Christ" . "rudolfo.christ@gmail.com")) (:maintainer "Sebastian Christ" . "rudolfo.christ@gmail.com") (:url . "https://github.com/rudolfochrist/interleave"))]) -(interaction-log . [(20160305 1301) ((cl-lib (0))) "exhaustive log of interactions with Emacs" single ((:commit . "a49a06746d4df6bcfceec3c48dece065d635f9f9") (:keywords "convenience") (:authors ("Michael Heerdegen" . "michael_heerdegen@web.de")) (:maintainer "Michael Heerdegen" . "michael_heerdegen@web.de") (:url . "https://github.com/michael-heerdegen/interaction-log.el"))]) -(intellij-theme . [(20171017 1415) nil "Inspired by IntelliJ's default theme" single ((:commit . "1bbfff8e6742d18e9b77ed796f44da3b7bd10606") (:keywords "faces") (:authors ("Vladimir Polushin" . "vovapolu@gmail.com")) (:maintainer "Vladimir Polushin" . "vovapolu@gmail.com"))]) -(intel-hex-mode . [(20180423 31) nil "Mode for Intel Hex files." single ((:commit . "e83c94e1c31a8435a88b3ae395f2bc842ef83217") (:keywords "tools" "hex") (:maintainer "Michael Schuldt" . "mbschuldt@gmail.com") (:url . "https://github.com/mschuldt/intel-hex-mode"))]) -(instapaper . [(20130104 1421) nil "add URLs to instapaper from emacs" single ((:commit . "8daa0058ede70025e9f020656abe0e0d01cd8f89") (:authors ("Jason F. McBrayer" . "jmcbray@carcosa.net")) (:maintainer "Jason F. McBrayer" . "jmcbray@carcosa.net") (:url . "htts://bitbucket.org/jfm/emacs-instapaper"))]) -(insfactor . [(20141117 2) nil "Client for a Clojure project with insfactor in it" single ((:commit . "7ef5446cebb08a17d4106d2e6f3c053e49e1e829") (:keywords "clojure") (:authors ("John D. Hume" . "duelin.markers@gmail.com")) (:maintainer "John D. Hume" . "duelin.markers@gmail.com") (:url . "http://github.com/duelinmarkers/insfactor.el"))]) -(insert-shebang . [(20180403 1214) nil "Insert shebang line automatically." single ((:commit . "7bfea92ba1dae9d13d442e2f84f9fb6c05a0a9bd") (:keywords "shebang" "tool" "convenience") (:authors ("Sachin Patil" . "iclcoolster@gmail.com")) (:maintainer "Sachin Patil" . "iclcoolster@gmail.com") (:url . "http://github.com/psachin/insert-shebang"))]) -(inlineR . [(20120520 1432) nil "insert Tag for inline image of R graphics" single ((:commit . "29357186beca825e3d0451b700ec09b9ed65e37b") (:keywords "convenience" "iimage.el" "cacoo.el") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/inlineR.el"))]) -(inline-docs . [(20170523 450) ((emacs (24 3))) "Show inline contextual docs." single ((:commit . "b57f1681be6147f999cdc12abff414a0442e8897") (:keywords "inline" "docs" "overlay") (:authors ("stardiviner" . "numbchild@gmail.com")) (:maintainer "stardiviner" . "numbchild@gmail.com") (:url . "https://github.com/stardiviner/inline-docs.el"))]) -(inline-crypt . [(20170824 900) nil "Simple inline encryption via openssl" tar ((:commit . "281385b383f850fd2e895926b1cef804dd052633"))]) -(inkpot-theme . [(20181119 706) nil "port of vim's inkpot theme" single ((:commit . "054c125b49247a08af5a391992817776fd0e8af6") (:keywords "color" "theme") (:authors ("Sarah Iovan" . "sarah@hwaetageek.com") ("Campbell Barton" . "ideasman42@gmail.com")) (:maintainer "Sarah Iovan" . "sarah@hwaetageek.com") (:url . "https://github.com/ideasman42/emacs-inkpot-theme"))]) -(ink-mode . [(20160814 1116) ((emacs (24 3))) "Major mode for writing interactive fiction in Ink" single ((:commit . "e35f26abbaf8ea23c5aa0a0c7ef15334cdfb7b48") (:keywords "languages") (:authors ("Erik Sjöstrand")) (:maintainer "Erik Sjöstrand") (:url . "http://github.com/Kungsgeten/ink-mode"))]) -(initsplit . [(20160919 1818) nil "code to split customizations into different files" single ((:commit . "c941d436eb2b10b01c76a582c5a2b23fb30751aa") (:keywords "lisp") (:authors ("John Wiegley <johnw@gnu.org>, Dave Abrahams" . "dave@boostpro.com")) (:maintainer "John Wiegley <johnw@gnu.org>, Dave Abrahams" . "dave@boostpro.com") (:url . "http://www.gci-net.com/users/j/johnw/emacs.html"))]) -(init-open-recentf . [(20161206 1445) ((emacs (24 4))) "Open recentf immediately after Emacs is started" single ((:commit . "7d8fb124806291f7f6ef2ec3a664ea25899b6d68") (:keywords "files" "recentf" "after-init-hook") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/init-open-recentf.el"))]) -(init-loader . [(20160528 1315) nil "Loader for configuration files" single ((:commit . "5d3cea1004c11ff96b33020e337b03b925c67c42") (:authors ("IMAKADO" . "ken.imakado@gmail.com")) (:maintainer "IMAKADO" . "ken.imakado@gmail.com") (:url . "https://github.com/emacs-jp/init-loader/"))]) -(ini-mode . [(20170424 909) nil "Major mode for Windows-style ini files." single ((:commit . "2194cfa2fd13196a37350ec20b3f00dcf6162b7c") (:keywords "languages" "faces") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/ini-mode"))]) -(inherit-local . [(20170409 1649) ((emacs (24 3))) "Inherited buffer-local variables" single ((:commit . "b1f4ff9c41f9d64e4adaf5adcc280b82f084cdc7") (:authors ("Shea Levy")) (:maintainer "Shea Levy") (:url . "https://github.com/shlevy/inherit-local/tree-master/"))]) -(info-colors . [(20180205 1150) ((emacs (24)) (cl-lib (0 5))) "Extra colors for Info-mode" single ((:commit . "a8ebb7b8efa314c08ea8110d8b1876afb562bb45") (:keywords "faces") (:authors ("Tuấn-Anh Nguyá»…n" . "ubolonton@gmail.com")) (:maintainer "Tuấn-Anh Nguyá»…n" . "ubolonton@gmail.com") (:url . "https://github.com/ubolonton/info-colors"))]) -(info-buffer . [(20170112 1422) nil "Display info topics in separate buffers" single ((:commit . "d35dad6e766c6e2ddb8dc6acb4ce5b6e10fbcaa7") (:keywords "docs" "info") (:authors ("LluÃs Vilanova" . "vilanova@ac.upc.edu")) (:maintainer "LluÃs Vilanova" . "vilanova@ac.upc.edu") (:url . "http://www.github.com/llvilanova/info-buffer"))]) -(info-beamer . [(20180604 2122) ((emacs (24 4))) "Utilities for working with info-beamer" single ((:commit . "af443795af20481af91ac54a489b20f6a9d90b0a") (:keywords "tools" "processes" "comm") (:authors ("Daniel Kraus" . "daniel@kraus.my")) (:maintainer "Daniel Kraus" . "daniel@kraus.my") (:url . "https://github.com/dakra/info-beamer.el"))]) -(inflections . [(20170913 916) ((cl-lib (0 5)) (emacs (24))) "convert english words between singular and plural" single ((:commit . "e4f1372cf22e811faca52fc86bdd5d817498a4d8") (:keywords "languages" "tools" "wp") (:authors ("Dmitry Galinsky, Howard Yeh")) (:maintainer "Dmitry Galinsky, Howard Yeh") (:url . "https://github.com/eschulte/jump.el"))]) -(inferior-spim . [(20160826 1346) nil "inferior mode for spim." single ((:commit . "fb9aa091f6058bf320793f1a608c1ed7322c1f47") (:keywords "spim" "inferior" "mips") (:authors ("hiddenlotus" . "kaihaosw@gmail.com")) (:maintainer "hiddenlotus" . "kaihaosw@gmail.com"))]) -(inf-ruby . [(20190609 1126) nil "Run a Ruby process in a buffer" single ((:commit . "928b1dd2c24c62be1900476cb4b7219eb2350856") (:keywords "languages" "ruby") (:authors ("Yukihiro Matsumoto") ("Nobuyoshi Nakada") ("Cornelius Mika" . "cornelius.mika@gmail.com") ("Dmitry Gutov" . "dgutov@yandex.ru") ("Kyle Hargraves" . "pd@krh.me")) (:maintainer "Yukihiro Matsumoto") (:url . "http://github.com/nonsequitur/inf-ruby"))]) -(inf-mongo . [(20180408 1338) nil "Run a MongoDB shell process in a buffer" single ((:commit . "2e498d1c88bd1904eeec18ed06b1a0cf8bdc2a92") (:keywords "databases" "mongodb") (:authors ("Tobias Svensson")) (:maintainer "Tobias Svensson") (:url . "http://github.com/endofunky/inf-mongo"))]) -(inf-crystal . [(20180119 211) ((emacs (24 3)) (crystal-mode (0 1 0))) "Run a Inferior-Crystal process in a buffer" single ((:commit . "02007b2a2a3bea44902d7c83c4acba1e39d278e3") (:keywords "languages" "crystal") (:authors ("Brantou" . "brantou89@gmail.com")) (:maintainer "Brantou" . "brantou89@gmail.com") (:url . "https://github.com/brantou/inf-crystal.el"))]) -(inf-clojure . [(20190531 1511) ((emacs (24 4)) (clojure-mode (5 6))) "Run an external Clojure process in an Emacs buffer" single ((:commit . "0fc23509a1e66bcc3e694066f5067fdbd7b7961d") (:keywords "processes" "clojure") (:url . "http://github.com/clojure-emacs/inf-clojure"))]) -(indy . [(20150610 1706) nil "A minor mode and EDSL to manage your mode's indentation rules." single ((:commit . "4604867d8111f0e186a5351e68e054a77cb14abf") (:keywords "convenience" "matching" "tools") (:authors ("Kevin W. van Rooijen" . "kevin.van.rooijen@attichacker.com")) (:maintainer "Kevin W. van Rooijen" . "kevin.van.rooijen@attichacker.com"))]) -(indium . [(20190612 2102) ((emacs (25)) (seq (2 16)) (js2-mode (20140114)) (js2-refactor (0 9 0)) (company (0 9 0))) "JavaScript Awesome Development Environment" tar ((:commit . "3a657e0dd03886e61301366406d92c2e067d9038") (:keywords "tools" "javascript") (:authors ("Nicolas Petton" . "nicolas@petton.fr")) (:maintainer "Nicolas Petton" . "nicolas@petton.fr") (:url . "https://github.com/NicolasPetton/indium"))]) -(indicators . [(20161211 1126) ((dash (2 13 0)) (cl-lib (0 5 0))) "Display the buffer relative location of line in the fringe." single ((:commit . "f62a1201f21453e3aca93f48483e65ae8251432e") (:keywords "fringe" "frames") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/indicators.el"))]) -(indian-ext . [(20190424 1547) ((emacs (24))) "Extension to Indian language utilities" single ((:commit . "a5450fe467393194bc2458c0d5e0a06c91bf117a") (:keywords "i18n" "tools" "wp" "indian" "devanagari" "encoding") (:authors ("Patrick McAllister" . "pma@rdorte.org")) (:maintainer "Patrick McAllister" . "pma@rdorte.org") (:url . "https://github.com/paddymcall/indian-ext"))]) -(indent-tools . [(20190606 1642) ((s (0)) (hydra (0)) (yafolding (0))) "Indent, navigate (and more) by blocks of indentation: yaml, python etc." tar ((:commit . "c419874e6fb296ecdba94b2f4b73c9eecdd5329d") (:keywords "indentation" "movements" "navigation" "kill" "fold" "yaml" "python") (:authors ("vindarel" . "vindarel@mailz.org")) (:maintainer "vindarel" . "vindarel@mailz.org") (:url . "https://gitlab.com/emacs-stuff/indent-tools/"))]) -(indent-info . [(20180423 1912) nil "show indentation information in status bar" single ((:commit . "d218b4cb3726476caee91db6f6c920856ab992bc") (:keywords "convenience" "tools") (:authors ("Terje Larsen" . "terlar@gmail.com")) (:maintainer "Terje Larsen" . "terlar@gmail.com") (:url . "https://github.com/terlar/indent-info.el"))]) -(indent-guide . [(20170221 1127) nil "show vertical lines to guide indentation" single ((:commit . "d64f43011c72068e008621e620009ec592b35913") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(importmagic . [(20180520 303) ((f (0 11 0)) (epc (0 1 0)) (emacs (24 3))) "Fix Python imports using importmagic." tar ((:commit . "bbc131278f8cd62f3e71b6f4a86b0c91792a3524") (:keywords "languages" "convenience") (:authors ("Nicolás Salas V." . "nikosalas@gmail.com")) (:maintainer "Nicolás Salas V." . "nikosalas@gmail.com") (:url . "https://github.com/anachronic/importmagic.el"))]) -(import-popwin . [(20170218 1407) ((emacs (24 3)) (popwin (0 6))) "popwin buffer near by import statements with popwin" single ((:commit . "bb05a9e226f8c63fe7b18a3e92010357049ab5ba") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-import-popwin"))]) -(import-js . [(20180709 1833) ((grizzl (0 1 0)) (emacs (24))) "Import Javascript dependencies" single ((:commit . "fb1f167e33c388b09a2afd32fbda90a67bfb2e40") (:keywords "javascript") (:authors ("Kevin Kehl" . "kevin.kehl@gmail.com")) (:maintainer "Kevin Kehl" . "kevin.kehl@gmail.com") (:url . "http://github.com/Galooshi/emacs-import-js/"))]) -(impatient-mode . [(20181002 1231) ((cl-lib (0 3)) (simple-httpd (1 5 0)) (htmlize (1 40))) "Serve buffers live over HTTP" tar ((:commit . "96f6a05f8de74e19d570217fe83f0734623ddb0c") (:authors ("Brian Taylor" . "el.wubo@gmail.com")) (:maintainer "Brian Taylor" . "el.wubo@gmail.com") (:url . "https://github.com/netguy204/imp.el"))]) -(immutant-server . [(20140311 2208) nil "Run your Immutant server in Emacs" single ((:commit . "2a21e65588acb6a976f2998e30b21fdabdba4dbb") (:authors ("David Leatherman" . "leathekd@gmail.com")) (:maintainer "David Leatherman" . "leathekd@gmail.com") (:url . "http://www.github.com/leathekd/immutant-server.el"))]) -(immortal-scratch . [(20160517 2118) nil "respawn the scratch buffer when it's killed" single ((:commit . "b354aba33d91a16a1878c87a931564505f6a0ee1") (:authors ("Jonathan Kotta" . "jpkotta@gmail.com")) (:maintainer "Jonathan Kotta" . "jpkotta@gmail.com"))]) -(immaterial-theme . [(20190412 1115) ((emacs (25))) "A flexible theme based on material design principles" single ((:commit . "176178a57c5b342b04bebd3107c29c6d12086cf5") (:keywords "themes") (:authors ("Peter Gardfjäll")) (:maintainer "Peter Gardfjäll") (:url . "https://github.com/petergardfjall/emacs-immaterial-theme"))]) -(imgbb . [(20180609 1649) ((emacs (24)) (request (0 3 0))) "Simple image upload client for imgbb.com" single ((:commit . "a524a46263835aa474f908827ebab4e8fa586001") (:keywords "extensions") (:authors ("Peter" . "craven@gmx.net")) (:maintainer "Peter" . "craven@gmx.net") (:url . "https://github.com/ecraven/imgbb.el"))]) -(imenus . [(20180505 1717) ((cl-lib (0 5))) "Imenu for multiple buffers and without subgroups" single ((:commit . "149cfa579ee231014d3341a0e05add69759757a5") (:keywords "tools" "convenience") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/imenus.el"))]) -(imenu-list . [(20190115 2130) ((cl-lib (0 5))) "Show imenu entries in a separate buffer" single ((:commit . "46008738f8fef578a763c308cf6695e5b4d4aa77") (:authors ("Bar Magal (2015)")) (:maintainer "Bar Magal (2015)") (:url . "https://github.com/bmag/imenu-list"))]) -(imenu-anywhere . [(20190512 1939) ((cl-lib (0 5)) (emacs (25))) "ido/ivy/helm imenu across same mode/project/etc buffers" single ((:commit . "88b0e120284058b32252e4b0ed1a07c9fe44092f") (:keywords "ido" "imenu" "tags") (:authors ("Vitalie Spinu <spinuvit.list[ aaattt ]gmail[ dot ]com>")) (:maintainer "Vitalie Spinu <spinuvit.list[ aaattt ]gmail[ dot ]com>") (:url . "https://github.com/vitoshka/imenu-anywhere"))]) -(imapfilter . [(20180318 2027) nil "run the imapfilter executable" single ((:commit . "79bbbe918319bc1e8f42a0bef53dc7c77fe868ea") (:keywords "mail") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/imapfilter"))]) -(imake . [(20180318 2259) ((emacs (24 3))) "Simple, opinionated make target runner" single ((:commit . "a61f409c517ec274e1ec81f3f00c178108c226fb") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/imake"))]) -(imakado . [(20141024 923) nil "imakado's usefull macros and functions" single ((:commit . "00a1e7eea2cb9e9066343a23927d6c747707902f") (:keywords "convenience") (:authors ("imakado <ken.imakado_at_gmail.com>")) (:maintainer "imakado") (:url . "https://github.com/imakado/emacs-imakado"))]) -(image-dired+ . [(20150430 544) ((cl-lib (0 3))) "Image-dired extensions" single ((:commit . "b68094625d963056ad64e0e44af0e2266b2eadc7") (:keywords "extensions" "multimedia") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-image-diredx"))]) -(image-archive . [(20150621 132) ((emacs (24)) (cl-lib (0 5))) "Image thumbnails in archive file with non-blocking" single ((:commit . "8d29535bd832329ffeeac780aae7aa8919af1175") (:keywords "multimedia") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-image-archive"))]) -(image+ . [(20150707 1616) ((cl-lib (0 3))) "Image manipulate extensions for Emacs" single ((:commit . "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc") (:keywords "multimedia" "extensions") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-imagex"))]) -(igv . [(20141210 1227) nil "Control Integrative Genomic Viewer within Emacs" single ((:commit . "47ac6ceede252f451348a2c696398c0cb5279555") (:authors ("Stefano Barbi" . "stefanobarbi@gmail.com")) (:maintainer "Stefano Barbi" . "stefanobarbi@gmail.com"))]) -(ignoramus . [(20160414 1409) nil "Ignore backups, build files, et al." single ((:commit . "b37dc7c07edd9d152436f9019c14df158b599be3") (:keywords "convenience" "tools") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/ignoramus"))]) -(iflipb . [(20190427 1809) nil "interactively flip between recently visited buffers" single ((:commit . "47d310a4576ae2195777d755cf86d5ea7525ef74") (:authors ("Joel Rosdahl" . "joel@rosdahl.net")) (:maintainer "Joel Rosdahl" . "joel@rosdahl.net") (:url . "https://github.com/jrosdahl/iflipb"))]) -(ietf-docs . [(20190420 851) nil "Fetch, Cache and Load IETF documents" single ((:commit . "ae157549eae5ec78dcbf215c2f48cb662b73abd0") (:keywords "ietf" "rfc") (:authors ("Christian E. Hopps" . "chopps@gmail.com")) (:maintainer "Christian E. Hopps" . "chopps@gmail.com") (:url . "https://github.com/choppsv1/ietf-docs"))]) -(iedit . [(20190419 803) nil "Edit multiple regions in the same way simultaneously." tar ((:commit . "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f") (:keywords "occurrence" "region" "simultaneous" "refactoring") (:authors ("Victor Ren" . "victorhge@gmail.com")) (:maintainer "Victor Ren" . "victorhge@gmail.com") (:url . "https://www.emacswiki.org/emacs/Iedit"))]) -(ids-edit . [(20170818 1502) ((emacs (24 3))) "IDS (Ideographic Description Sequence) editing tool" tar ((:commit . "8562a6cbfb3f2d44bc6f62ab15081a80f8fee502") (:keywords "i18n" "wp") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "http://github.com/kawabata/ids-edit"))]) -(idris-mode . [(20190427 1539) ((emacs (24)) (prop-menu (0 1)) (cl-lib (0 5))) "Major mode for editing Idris code" tar ((:commit . "acc8835449475d7cd205aba213fdd3d41c38ba40") (:keywords "languages") (:url . "https://github.com/idris-hackers/idris-mode"))]) -(idomenu . [(20141123 2120) nil "imenu tag selection a la ido" single ((:commit . "4b0152d606360c70204fb4c27f68de79ca885386") (:authors ("Georg Brandl" . "georg@python.org")) (:maintainer "Georg Brandl" . "georg@python.org"))]) -(ido-yes-or-no . [(20161108 2351) ((ido-completing-read+ (0))) "Use Ido to answer yes-or-no questions" single ((:commit . "c55383b1fce5879e87e7ca6809fc60534508e182") (:keywords "convenience" "completion" "ido") (:authors ("Ryan C. Thompson")) (:maintainer "Ryan C. Thompson") (:url . "https://github.com/DarwinAwardWinner/ido-yes-or-no"))]) -(ido-vertical-mode . [(20180618 2101) nil "Makes ido-mode display vertically." single ((:commit . "16c4c1a112796ee0bcf401ea39d3e2643a89feaf") (:keywords "convenience") (:authors ("Steven Degutis")) (:maintainer "Christopher Reichert" . "creichert07@gmail.com") (:url . "https://github.com/creichert/ido-vertical-mode.el"))]) -(ido-springboard . [(20170106 755) nil "Temporarily change default-directory for one command" single ((:commit . "687d1e5898a880878995dc9bffe93b4598366203") (:keywords "ido") (:authors ("John Wiegley" . "jwiegley@gmail.com")) (:maintainer "John Wiegley" . "jwiegley@gmail.com") (:url . "https://github.com/jwiegley/springboard"))]) -(ido-sort-mtime . [(20171121 859) nil "Sort Ido's file list by modification time" single ((:commit . "f638ff0c922af862f5211779f2311a27fde428eb") (:keywords "convenience" "files") (:authors ("PaweÅ‚ KraÅ›nicki")) (:maintainer "PaweÅ‚ KraÅ›nicki"))]) -(ido-skk . [(20151111 950) ((emacs (24 4)) (ddskk (20150912 1820))) "ido interface for skk henkan" single ((:commit . "89a2e62799bff2841ff634517c86084c4ce69246") (:keywords "languages") (:authors ("tsukimizake <shomasd_at_gmail.com>")) (:maintainer "tsukimizake <shomasd_at_gmail.com>") (:url . "https://github.com/tsukimizake/ido-skk"))]) -(ido-select-window . [(20131220 2047) ((emacs (24 1))) "Select a window using ido and buffer names" single ((:commit . "a64707d8d154664d50d12e26417d586e4c3dd78b") (:authors ("Peter Jones" . "pjones@devalot.com")) (:maintainer "Peter Jones" . "pjones@devalot.com") (:url . "https://github.com/pjones/ido-select-window"))]) -(ido-occur . [(20160820 1440) ((dash (2 13 0))) "Yet another `occur' with `ido'." single ((:commit . "522af5d55b3d4cd6885f3b4100913566c202cec4") (:keywords "inner" "buffer" "search") (:authors ("Danil" . "danil@kutkevich.org")) (:maintainer "Danil" . "danil@kutkevich.org") (:url . "https://github.com/danil/ido-occur"))]) -(ido-occasional . [(20150214 1248) ((emacs (24 1))) "Use ido where you choose." single ((:commit . "d405f1795e1e0c63be411ee2825184738d29c33a") (:keywords "completion") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/ido-occasional"))]) -(ido-migemo . [(20150921 2244) ((migemo (1 9 1))) "Migemo plug-in for Ido" single ((:commit . "e71114a92dd69cb46abf3fb71a09ce27506fcf77") (:keywords "files") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/ido-migemo.el"))]) -(ido-load-library . [(20140611 1600) ((persistent-soft (0 8 8)) (pcache (0 2 3))) "Load-library alternative using ido-completing-read" single ((:commit . "e03b55957c93aa1a7dd190e173e16ec59dbb2ba7") (:keywords "maint" "completion") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/ido-load-library"))]) -(ido-hacks . [(20190206 2153) nil "Put more IDO in your IDO" single ((:commit . "d2153a3e8d23436ee07ecae2a106f434361a10c5") (:keywords "convenience") (:authors ("Andreas Politz")) (:maintainer "Scott Jaderholm" . "jaderholm@gmail.com"))]) -(ido-grid-mode . [(20160122 1139) ((emacs (24 4))) "Display ido-prospects in the minibuffer in a grid." single ((:commit . "7cfca3988a6dc3ad18e28abe114218095ff2366f") (:keywords "convenience") (:authors ("Tom Hinton")) (:maintainer "Tom Hinton" . "t@larkery.com") (:url . "https://github.com/larkery/ido-grid-mode.el"))]) -(ido-gnus . [(20140216 1646) ((gnus (5 13))) "Access gnus groups or servers using ido" single ((:commit . "f5fe3f6aa8086f675ba216abace9e3d5f2e3a089") (:keywords "comm") (:authors ("Joe Bloggs" . "vapniks@yahoo.com")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "https://github.com/vapniks/ido-gnus"))]) -(ido-flex-with-migemo . [(20190408 350) ((flx-ido (0 6 1)) (migemo (1 9 1)) (emacs (24 4))) "use ido with flex and migemo" single ((:commit . "aa93aa05947eb6c106bb9523ff3163b8574c4eac") (:keywords "matching") (:authors ("ROCKTAKEY " . "rocktakey@gmail.com")) (:maintainer "ROCKTAKEY " . "rocktakey@gmail.com") (:url . "https://github.com/ROCKTAKEY/ido-flex-with-migemo"))]) -(ido-exit-target . [(20170717 1851) ((emacs (24 4))) "Commands and keys for selecting other window and frame targets within ido" single ((:commit . "e56fc6928649c87ccf39d56d84ab53ebaced1f73") (:keywords "convenience" "tools" "extensions") (:authors ("justin talbott" . "justin@waymondo.com")) (:maintainer "justin talbott" . "justin@waymondo.com") (:url . "https://github.com/waymondo/ido-exit-target"))]) -(ido-describe-bindings . [(20161023 1102) ((dash (2 13 0))) "Yet another `describe-bindings' with `ido'." single ((:commit . "a142ff1c33df23ed9665497d0dcae2943b3c706a") (:keywords "help") (:authors ("Danil <danil@kutkevich.org>, Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Danil <danil@kutkevich.org>, Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/danil/ido-describe-bindings"))]) -(ido-completing-read+ . [(20190502 2120) ((emacs (24 4)) (cl-lib (0 5)) (s (0 1)) (memoize (1 1))) "A completing-read-function using ido" single ((:commit . "719201643984decb48b6eb9f276b3e9a4791aca6") (:keywords "ido" "completion" "convenience") (:authors ("Ryan Thompson")) (:maintainer "Ryan Thompson") (:url . "https://github.com/DarwinAwardWinner/ido-completing-read-plus"))]) -(ido-complete-space-or-hyphen . [(20180929 150) nil "Complete SPACE or HYPHEN when type SPACE in ido" single ((:commit . "ed60ebed113e4e1552efeab0c416f7c88428268e") (:keywords "ido" "completion") (:authors ("Ian Yang <me (at) iany.me>")) (:maintainer "Ian Yang <me (at) iany.me>") (:url . "https://github.com/doitian/ido-complete-space-or-hyphen"))]) -(ido-clever-match . [(20151011 1726) ((emacs (24 4)) (cl-lib (0 5))) "Alternative matcher for ido." single ((:commit . "f173473e99c8b0756f12e4cc8f67e68fa59eadd3") (:keywords "ido" "flex") (:authors ("Bogdan Paul Popa" . "popa.bogdanp@gmail.com")) (:maintainer "Bogdan Paul Popa" . "popa.bogdanp@gmail.com") (:url . "https://github.com/Bogdanp/ido-clever-match"))]) -(ido-at-point . [(20151021 757) ((emacs (24))) "ido-style completion-at-point" single ((:commit . "e5907bbe8a3d148d07698b76bd994dc3076e16ee") (:keywords "convenience" "abbrev") (:authors ("katspaugh")) (:maintainer "katspaugh") (:url . "https://github.com/katspaugh/ido-at-point"))]) -(idle-require . [(20090715 2203) nil "load elisp libraries while Emacs is idle" single ((:commit . "33592bb098223b4432d7a35a1d65ab83f47c1ec1") (:keywords "internal") (:authors ("Nikolaj Schumacher <bugs * nschum de>")) (:maintainer "Nikolaj Schumacher <bugs * nschum de>") (:url . "http://nschum.de/src/emacs/idle-require/"))]) -(idle-org-agenda . [(20190106 1844) nil "Shows your agenda when editor is idle." single ((:commit . "8e6052fc4923c30132052d67d794b76c92851c20") (:keywords "org" "org-mode" "org-agenda" "calendar") (:authors ("John Wiegley" . "jwiegley@gmail.com")) (:maintainer "Enis Özgen" . "mail@enisozgen.com") (:url . "https://github.com/enisozgen/idle-org-agenda"))]) -(idle-highlight-mode . [(20120920 1648) nil "highlight the word the point is on" single ((:commit . "c466f2a9e291f9da1167dc879577b2e1a7880482") (:keywords "convenience") (:authors ("Phil Hagelberg, Cornelius Mika")) (:maintainer "Phil Hagelberg, Cornelius Mika") (:url . "http://www.emacswiki.org/cgi-bin/wiki/IdleHighlight"))]) -(idle-highlight-in-visible-buffers-mode . [(20181027 1531) nil "highlight the word the point is on" single ((:commit . "8d8de309d5bd4b035c01bf7f0cfc6e079c79d898") (:keywords "convenience") (:authors ("Ignacy Moryc")) (:maintainer "Ignacy Moryc") (:url . "https://github.com/ignacy/idle-highlight-in-visible-buffers"))]) -(identica-mode . [(20130204 2253) nil "Major mode API client for status.net open microblogging" tar ((:commit . "cf9183ee11ac922e85c7c908f04e2d00b03111b3") (:keywords "identica" "web") (:authors ("Gabriel Saldana" . "gsaldana@gmail.com")) (:maintainer "Gabriel Saldana" . "gsaldana@gmail.com") (:url . "http://blog.gabrielsaldana.org/identica-mode-for-emacs/"))]) -(idea-darkula-theme . [(20160416 2303) ((emacs (24 1))) "Color theme based on IntelliJ IDEA Darkula color theme" single ((:commit . "52602d9b91883e1f297d000951aeed48bf60176e") (:keywords "themes") (:authors ("Alexey Veretennikov <alexey dot veretennikov at gmail dot com>")) (:maintainer "Alexey Veretennikov <alexey dot veretennikov at gmail dot com>") (:url . "http://github.com/fourier/idea-darkula-theme"))]) -(id-manager . [(20170320 1246) nil "id-password management" single ((:commit . "14ebc35db298aac4dedc8aa188bc46bacab81f3b") (:keywords "password" "convenience") (:authors ("SAKURAI Masashi <m.sakurai atmark kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai atmark kiwanami.net>"))]) -(ibuffer-vc . [(20181225 2227) ((cl-lib (0 2))) "Group ibuffer's list by VC project, or show VC status" single ((:commit . "64cb03887bcae6127e80f0d9342c33206e21d2d2") (:keywords "themes") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "http://github.com/purcell/ibuffer-vc"))]) -(ibuffer-tramp . [(20151118 1739) nil "Group ibuffer's list by TRAMP connection" single ((:commit . "bcad0bda3a67f55d1be936bf8fa9ef735fe1e3f3") (:keywords "convenience") (:authors ("Svend Sorensen" . "svend@ciffer.net")) (:maintainer "Svend Sorensen" . "svend@ciffer.net") (:url . "http://github.com/svend/ibuffer-tramp"))]) -(ibuffer-sidebar . [(20180219 131) ((emacs (25 1))) "Sidebar for `ibuffer'" single ((:commit . "7ddf1b5a158b33e9a7d3fe5dad7ea626a464d2bc") (:keywords "ibuffer" "files" "tools") (:authors ("James Nguyen" . "james@jojojames.com")) (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/jojojames/ibuffer-sidebar"))]) -(ibuffer-rcirc . [(20150215 2118) ((cl-lib (0 2))) "Ibuffer integration for rcirc" single ((:commit . "8a4409b1c679d65c819dee4085faf929840e79f8") (:keywords "buffer" "convenience" "comm") (:authors ("Fabián Ezequiel Gallina" . "fgallina@gnu.org")) (:maintainer "Fabián Ezequiel Gallina" . "fgallina@gnu.org") (:url . "https://github.com/fgallina/ibuffer-rcirc"))]) -(ibuffer-projectile . [(20181202 352) ((projectile (0 11 0)) (emacs (24))) "Group ibuffer's list by projectile root" single ((:commit . "76496214144687cee0b5139be2e61b1e400cac87") (:keywords "convenience") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "http://github.com/purcell/ibuffer-projectile"))]) -(ibuffer-project . [(20181216 2125) ((emacs (25 1))) "Group ibuffer's list by project" single ((:commit . "7424e71062f2cb969c3e9951203022414dea37fb") (:keywords "tools") (:authors ("Andrii Kolomoiets" . "andreyk.mad@gmail.com")) (:maintainer "Andrii Kolomoiets" . "andreyk.mad@gmail.com") (:url . "https://github.com/muffinmad/emacs-ibuffer-project"))]) -(ibuffer-git . [(20110508 731) nil "show git status in ibuffer column" single ((:commit . "d326319c05ddb8280885b31f9094040c1b365876") (:keywords "convenience") (:authors ("Jonathan Rockway" . "jon@jrock.us")) (:maintainer "Jonathan Rockway" . "jon@jrock.us"))]) -(iasm-mode . [(20171023 1422) nil "interactive assembly major mode." single ((:commit . "abbec7f308f9ce97beeb57e459fff35f559b4c18") (:keywords ":" "tools") (:authors ("Rémi Attab" . "remi.attab@gmail.com")) (:maintainer "Rémi Attab" . "remi.attab@gmail.com") (:url . "https://github.com/RAttab/iasm-mode"))]) -(ialign . [(20181202 1146) ((emacs (24 4))) "visual align-regexp" single ((:commit . "e1308c8f6aea05ad6dbcaa33b9bee4eb7e05ee39") (:keywords "tools" "editing" "align" "interactive") (:authors ("MichaÅ‚ Krzywkowski" . "k.michal@zoho.com")) (:maintainer "MichaÅ‚ Krzywkowski" . "k.michal@zoho.com") (:url . "https://github.com/mkcms/interactive-align"))]) -(i3wm . [(20170822 1438) nil "i3wm integration library" single ((:commit . "71391dc61063fee77ad174f3b2ca25c60b41009e") (:keywords "convenience" "extensions") (:authors ("Samuel W. Flint" . "swflint@flintfam.org")) (:maintainer "Samuel W. Flint" . "swflint@flintfam.org") (:url . "https://git.flintfam.org/swf-projects/emacs-i3"))]) -(i2b2-mode . [(20140710 104) nil "Highlights corresponding PHI data in the text portion of an i2b2 XML Document." single ((:commit . "db10efcfc8bed369a516bbf7526ede41f98cb95a") (:keywords "xml" "phi" "i2b2" "deidi2b2") (:authors ("Dan LaManna" . "dan.lamanna@gmail.com")) (:maintainer "Dan LaManna" . "dan.lamanna@gmail.com"))]) -(hyperspace . [(20190601 1958) ((emacs (25)) (s (1 12 0))) "Get there from here" single ((:commit . "685c799abe28583769f59d3fd730da883107c5f8") (:keywords "tools" "convenience") (:authors ("Ian Eure" . "ian@retrospec.tv")) (:maintainer "Ian Eure" . "ian@retrospec.tv") (:url . "https://github.com/ieure/hyperspace-el"))]) -(hydra . [(20190617 859) ((cl-lib (0 5)) (lv (0))) "Make bindings that stick around." tar ((:commit . "82ff12666e08485c6b8f0e346878c4e0b16c992d") (:keywords "bindings") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/hydra"))]) -(hyde . [(20160508 308) nil "Major mode to help create and manage Jekyll blogs" tar ((:commit . "a8cd6ed00ecd8d7de0ded2f4867015b412b15b76"))]) -(hydandata-light-theme . [(20160816 418) nil "A light color theme that is easy on your eyes" single ((:commit . "0fbc91678ef65e1f65d7ec6792ff0b2f104d16a9") (:keywords "color-theme" "theme") (:authors ("David Chkhikvadze" . "david.chk@outlook.com")) (:maintainer "David Chkhikvadze" . "david.chk@outlook.com"))]) -(hyai . [(20170301 1447) ((cl-lib (0 5)) (emacs (24))) "Haskell Yet Another Indentation" single ((:commit . "9efad2ac6a57059b3be624588f649e276a96fdd4") (:authors ("Iku Iwasa" . "iku.iwasa@gmail.com")) (:maintainer "Iku Iwasa" . "iku.iwasa@gmail.com") (:url . "https://github.com/iquiw/hyai"))]) -(hy-mode . [(20190611 1945) ((dash (2 13 0)) (dash-functional (1 2 0)) (s (1 11 0)) (emacs (24))) "Major mode for Hylang" tar ((:commit . "f483c5bd16fe2f2453bc4ef1ddb2fdfd4ba78ba0") (:keywords "languages" "lisp" "python") (:url . "http://github.com/hylang/hy-mode"))]) -(hungry-delete . [(20170412 102) nil "hungry delete minor mode" single ((:commit . "0434458d3f6b2b585f332271feaa054bf4ec96d7") (:authors ("Nathaniel Flath" . "flat0103@gmail.com")) (:maintainer "Nathaniel Flath" . "flat0103@gmail.com") (:url . "http://github.com/nflath/hungry-delete"))]) -(hungarian-holidays . [(20161020 1138) nil "Adds a list of Hungarian public holidays to Emacs calendar" single ((:commit . "653108769279499d84a79267c90e640d98823872") (:keywords "calendar") (:authors ("Gergely Polonkai" . "gergely@polonkai.eu")) (:maintainer "Gergely Polonkai" . "gergely@polonkai.eu"))]) -(hugsql-ghosts . [(20180425 1129) ((s (1 9 0)) (dash (2 10 0)) (cider (0 14 0))) "Display hugsql defqueries in clojure code as an overlay." single ((:commit . "f3ebc60c66204ad39058cb84eb4bd5facce091df") (:authors ("Roland Kaercher" . "roland.kaercher@gmail.com")) (:maintainer "Roland Kaercher" . "roland.kaercher@gmail.com") (:url . "https://github.com/rkaercher/hugsql-ghosts"))]) -(httprepl . [(20141101 1734) ((s (1 9 0)) (dash (2 5 0)) (emacs (24))) "An HTTP REPL" single ((:commit . "cfa3693267a8ed1c96a86a126823f37dbfe077d8") (:keywords "http" "repl") (:authors ("Greg Sexton" . "gregsexton@gmail.com")) (:maintainer "Greg Sexton" . "gregsexton@gmail.com") (:url . "https://github.com/gregsexton/httprepl.el"))]) -(httpcode . [(20121002 345) nil "explains the meaning of an HTTP status code" single ((:commit . "a45e735082b09477cd704a99294d336cdbeb12ba") (:authors ("Ruslan Spivak" . "ruslan.spivak@gmail.com")) (:maintainer "Ruslan Spivak" . "ruslan.spivak@gmail.com") (:url . "http://github.com/rspivak/httpcode.el"))]) -(http-twiddle . [(20160801 1911) nil "send & twiddle & resend HTTP requests" single ((:commit . "4d0c73b7dcbde8b483d4f3a75c49c74d2fe3ca45") (:keywords "http" "rest" "soap") (:authors ("Luke Gorrie" . "luke@synap.se")) (:maintainer "Hasan Veldstra" . "h@vidiowiki.com") (:url . "https://github.com/hassy/http-twiddle/blob/master/http-twiddle.el"))]) -(http-post-simple . [(20170715 940) nil "HTTP POST requests using the url library" single ((:commit . "f53697fca278c741051aeb668b00466b5e0fd3fe") (:keywords "comm" "data" "processes" "hypermedia") (:authors ("Tom Schutzer-Weissmann")) (:maintainer "Tom Schutzer-Weissmann"))]) -(http . [(20181008 2121) ((emacs (24 4)) (request (0 2 0)) (edit-indirect (0 1 4))) "Yet another HTTP client" single ((:commit . "1bbfff5994e16ffc185c4ac28d792cb040da3351") (:keywords "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/http.el"))]) -(htmltagwrap . [(20190517 511) ((emacs (24 4))) "Wraps a chunk of HTML code in tags." single ((:commit . "3260d9267b51019328c30a6317f28e4a2dd7d522") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:url . "https://github.com/jcs090218/htmltagwrap"))]) -(htmlize . [(20180923 1829) nil "Convert buffer text and decorations to HTML." single ((:commit . "8db0aa6aab77475a732b7363f0d57bd3933c18fd") (:keywords "hypermedia" "extensions") (:authors ("Hrvoje Niksic" . "hniksic@gmail.com")) (:maintainer "Hrvoje Niksic" . "hniksic@gmail.com"))]) -(html2org . [(20170418 501) ((emacs (24 4))) "Convert html to org format text" single ((:commit . "6904aed40259ad8afccff079ebd8a07bff319ebc") (:keywords "convenience" "html" "org") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "http://github.com/lujun9972/html2org.el"))]) -(html-to-markdown . [(20151105 840) ((cl-lib (0 5))) "HTML to Markdown converter written in Emacs-lisp." single ((:commit . "60c5498c801be186478cf7c05be05b4430c4a144") (:keywords "tools" "wp" "languages") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com") (:url . "http://github.com/Bruce-Connor/html-to-markdown"))]) -(html-to-hiccup . [(20161028 1401) ((emacs (25 1)) (dash (2 13 0)) (s (1 10 0))) "Convert HTML to Hiccup syntax" single ((:commit . "99217a5058626d253ed8ada51a7642071fe54ba5") (:keywords "html" "hiccup" "clojure") (:authors ("Arne Brasseur" . "arne@arnebrasseur.net")) (:maintainer "Arne Brasseur" . "arne@arnebrasseur.net") (:url . "https://github.com/plexus/html-to-hiccup"))]) -(html-script-src . [(20120403 1815) nil "Insert <script src=\"..\"> for popular JavaScript libraries" single ((:commit . "66460f8ab1b24656e6f3ce5bd50cff6a81be8422") (:keywords "tools" "convenience") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/html-script-src"))]) -(html-check-frag . [(20160131 535) ((emacs (24 3))) "Check html-fragments" single ((:commit . "feb89765eafd69dfcf07afeebded8985dc456e7c") (:keywords "html") (:authors ("Tobias.Zawada" . "i@tn-home.de")) (:maintainer "Tobias.Zawada" . "i@tn-home.de"))]) -(ht . [(20190611 2131) ((dash (2 12 0))) "The missing hash table library for Emacs" single ((:commit . "5650a8cd190badb49d28d21e72a2f55c9380de7b") (:keywords "hash table" "hash map" "hash") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(hsluv . [(20181127 1206) ((seq (2 20))) "hsluv color space conversions" single ((:commit . "c3bc5228e30d66e7dee9ff1a0694c2b976862fc0") (:keywords "color" "hsluv") (:authors ("Geert Vermeiren")) (:maintainer "Geert Vermeiren") (:url . "https://github.com/hsluv/hsluv-emacs"))]) -(howm . [(20180929 1214) ((cl-lib (0 5))) "Wiki-like note-taking tool" tar ((:commit . "374525133b96a801d7612cb65a026740a6d0361d") (:authors ("HIRAOKA Kazuyuki" . "khi@users.osdn.me")) (:maintainer "HIRAOKA Kazuyuki" . "khi@users.osdn.me") (:url . "https://howm.osdn.jp"))]) -(howdoi . [(20150204 43) nil "Instant coding answers via Emacs." tar ((:commit . "5fbf7069ee160c597a328e5ce5fb32920e1ca88f"))]) -(how-many-lines-in-project . [(20140807 442) nil "Calculate how many lines are there in your project." single ((:commit . "8a37ef885d004fe2ce231bfe05ed4867c6192d9b") (:keywords "project" "convenience") (:authors ("Wei Zhao" . "kaihaosw@gmail.com")) (:maintainer "Wei Zhao" . "kaihaosw@gmail.com"))]) -(hound . [(20170627 1959) ((request (0 2 0)) (cl-lib (0 5))) "Display hound search results in a compilation window" single ((:commit . "0c5a250ef82870dca737a429b6e9b9db93874ed3") (:authors ("Ryan Young")) (:maintainer "Ryan Young"))]) -(horoscope . [(20180409 641) ((emacs (24))) "generate horoscopes." single ((:commit . "f4c683e991adce0a8f9023f15050f306f9b9a9ed") (:keywords "extensions" "games") (:authors ("Bob Manson" . "manson@cygnus.com")) (:maintainer "Noah Friedman" . "friedman@prep.ai.mit.edu") (:url . "https://github.com/mschuldt/horoscope.el"))]) -(hookify . [(20141216 2209) ((s (1 9 0)) (dash (1 5 0))) "Interactive commands to create temporary hooks" single ((:commit . "21baae7393b07257de5796402fde0ca72fb00d77") (:keywords "hook" "convenience") (:authors ("Philippe Vaucher" . "philippe.vaucher@gmail.com")) (:maintainer "Philippe Vaucher" . "philippe.vaucher@gmail.com") (:url . "https://github.com/Silex/hookify"))]) -(honcho . [(20180707 24) ((emacs (25 1)) (sudo-edit (0 1))) "Run and manage long-running services" single ((:commit . "f6a89a27e255b3ecb1f0b13058933558b1f0c6fb") (:keywords "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/honcho.el"))]) -(homebrew-mode . [(20160615 1320) ((emacs (24 4)) (inf-ruby (2 4 0)) (dash (1 2 0))) "minor mode for editing Homebrew formulae" single ((:commit . "d422307aee2f897d1a92e3b959c3214bc54cbe38") (:keywords "homebrew" "brew" "ruby") (:authors ("Alex Dunn" . "dunn.alex@gmail.com")) (:maintainer "Alex Dunn" . "dunn.alex@gmail.com") (:url . "https://github.com/dunn/homebrew-mode"))]) -(home-end . [(20180817 855) ((emacs (24 3)) (keypress-multi-event (1 0))) "Smart multi-purpose home / end keys" single ((:commit . "30676ceec0d4ad84038cd0d65ee45ae810ab185c") (:keywords "abbrev" "convenience" "wp" "keyboard") (:authors ("Boruch Baum" . "boruch_baum@gmx.com")) (:maintainer "Boruch Baum" . "boruch_baum@gmx.com") (:url . "https://www.github.com/Boruch_Baum/emacs-home-end"))]) -(holiday-pascha-etc . [(20160822 58) nil "Eastern Christian analog to holiday-easter-etc" single ((:commit . "eb198656f63cb8679fb0e3a8248782df071a0f3c") (:authors ("Mark A. Hershberger" . "mah@everybody.org")) (:maintainer "Mark A. Hershberger" . "mah@everybody.org") (:url . "http://github.com/hexmode/holiday-pascha-etc"))]) -(hoa-pp-mode . [(20151027 736) ((emacs (24 1)) (names (20150723 0))) "Major mode for Hoa PP grammars" single ((:commit . "925b79930a3f4377b0fb2a36b3c6d5566d4b9a8e") (:keywords "php" "hoa") (:authors ("Steven Rémot")) (:maintainer "Steven Rémot") (:url . "https://github.com/hoaproject/Contributions-Emacs-Pp"))]) -(hoa-mode . [(20151203 1650) nil "Major mode for the Hanoi Omega Automata format" single ((:commit . "3c608e15b655d2375c5f81323ac561c7848dc029") (:keywords "major-mode" "automata" "convenience") (:authors ("Alexandre Duret-Lutz" . "adl@lrde.epita.fr")) (:maintainer "Alexandre Duret-Lutz" . "adl@lrde.epita.fr") (:url . "https://gitlab.lrde.epita.fr/spot/emacs-modes"))]) -(hmac . [(20180429 2010) ((cl-lib (0 5)) (emacs (25))) "hash-based message authentication code" single ((:commit . "30132cd3fee7d3d91a9f04709d49ca0dcb96d565") (:authors ("Sean McAfee")) (:maintainer "Sean McAfee") (:url . "https://github.com/grimnebulin/emacs-hmac"))]) -(hlinum . [(20180422 412) ((cl-lib (0 2))) "Extension for linum.el to highlight current line number" single ((:commit . "f17360fe93de6df99a05b4b64b0a1ca4ee45abb6") (:keywords "convenience" "extensions") (:authors ("Tomoya Tanjo" . "ttanjo@gmail.com")) (:maintainer "Tomoya Tanjo" . "ttanjo@gmail.com") (:url . "https://github.com/tom-tan/hlinum-mode/"))]) -(hlint-refactor . [(20190115 900) nil "Apply HLint suggestions" single ((:commit . "c4307f86aad6d02e32e9b30cb6edc115584c791c") (:keywords "haskell" "refactor") (:url . "https://github.com/mpickering/hlint-refactor-mode"))]) -(hledger-mode . [(20190222 1601) ((emacs (24 4)) (popup (0 5 3)) (async (1 9)) (htmlize (1 47))) "A mode for writing journal entries for hledger." tar ((:commit . "096fdbded583ee1d99719633222baa46231d85f6") (:keywords "data") (:authors ("Narendra Joshi" . "narendraj9@gmail.com")) (:maintainer "Narendra Joshi" . "narendraj9@gmail.com") (:url . "https://github.com/narendraj9/hledger-mode.git"))]) -(hl-todo . [(20190415 2300) ((emacs (25))) "highlight TODO and similar keywords" single ((:commit . "804155bdaaf24d5d0c17c50191211fe2346c9609") (:keywords "convenience") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/hl-todo"))]) -(hl-sentence . [(20171018 1519) nil "highlight a sentence based on customizable face" single ((:commit . "86ae38d3103bd20da5485cbdd59dfbd396c45ee4") (:keywords "highlighting") (:authors ("Donald Ephraim Curtis" . "dcurtis@milkbox.net")) (:maintainer "Donald Ephraim Curtis" . "dcurtis@milkbox.net") (:url . "http://github.com/milkypostman/hl-sentence"))]) -(hl-indent . [(20170429 2104) ((emacs (24)) (cl-lib (0 5))) "Highlight irregular indentation." single ((:commit . "bdb2e0177a7c8b29af26998e688b856adc6ded93") (:keywords "convenience" "faces") (:authors ("Kirill Ignatiev <github.com/ikirill>")) (:maintainer "Kirill Ignatiev <github.com/ikirill>") (:url . "https://github.com/ikirill/hl-indent"))]) -(hl-fill-column . [(20190608 203) ((names (0 5)) (emacs (24))) "Highlight fill column." single ((:commit . "612441e69772c24f9ce67ae73e47c84f29ee653d") (:keywords "fill column" "faces") (:url . "https://github.com/laishulu/hl-fill-column"))]) -(hl-block-mode . [(20190520 30) ((emacs (26 0))) "highlighting nested blocks" single ((:commit . "fcefe78a1df2dccb85821d23e6c6ea2a60eedcbc") (:authors ("Campbell Barton" . "ideasman42@gmail.com")) (:maintainer "Campbell Barton" . "ideasman42@gmail.com") (:url . "https://github.com/ideasman42/emacs-hl-block-mode"))]) -(hl-anything . [(20160422 1708) ((emacs (24 3))) "Highlight symbols, selections, enclosing parens and more." tar ((:commit . "8696bc55a8cba408f0fc83a907a9ec529d79e558") (:authors ("boyw165")) (:maintainer "boyw165"))]) -(hiwin . [(20150825 827) nil "Visible active window mode." single ((:commit . "6ee8ed051405653bd9b7332d7e9fbb591d954051") (:keywords "faces" "editing" "emulating") (:authors ("k.sugita")) (:maintainer "k.sugita"))]) -(hive . [(20131217 1512) ((sql (3 0))) "Hive SQL mode extension" single ((:commit . "11b5172e081ad8079fc78758bef6f306f82ae32b") (:keywords "sql" "hive") (:authors ("Roman Scherer" . "roman@burningswell.com")) (:maintainer "Roman Scherer" . "roman@burningswell.com"))]) -(historyf . [(20151124 159) nil "file history library like browser" single ((:commit . "196c058ceb092fdd56b0e4ce85b7e714d6f72224") (:authors ("k1LoW (Kenichirou Oyama), <k1lowxb [at] gmail [dot] com> <k1low [at] 101000lab [dot] org>")) (:maintainer "k1LoW (Kenichirou Oyama), <k1lowxb [at] gmail [dot] com> <k1low [at] 101000lab [dot] org>") (:url . "https://github.com/k1LoW/emacs-historyf"))]) -(history . [(20160821 1602) ((emacs (24 3))) "History utility for source code navigation" tar ((:commit . "5317663fb45bbd5e96d258cb0807dcc266ce67ff") (:authors ("boyw165")) (:maintainer "boyw165") (:url . "https://github.com/boyw165/history"))]) -(historian . [(20190111 313) ((emacs (24 4))) "Persistently store selected minibuffer candidates" single ((:commit . "64f4ef8cd4e417dfa090138a2d4ea1e72fd4456a") (:keywords "convenience") (:authors ("PythonNut" . "pythonnut@pythonnut.com")) (:maintainer "PythonNut" . "pythonnut@pythonnut.com") (:url . "https://github.com/PythonNut/historian.el"))]) -(hippie-namespace . [(20140508 2041) nil "Special treatment for namespace prefixes in hippie-expand" single ((:commit . "d0d0f15c67ab8bef5e9d1e29a89ecd3613a60b49") (:keywords "convenience" "lisp" "tools" "completion") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/hippie-namespace"))]) -(hippie-expand-slime . [(20170723 146) nil "Hook slime's completion into hippie-expand" single ((:commit . "39bbae94896a62854d31754debdfae71d35fec62") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/hippie-expand-slime"))]) -(hippie-exp-ext . [(20160502 2326) nil "Extension of hippie-expand" single ((:commit . "4eda13f90da51ab217d024701f4c30f91ffcb90e") (:keywords "abbrev" "convenience" "completions" "hippie-expand") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/emacs/download/hippie-exp-ext.el"))]) -(hindent . [(20180518 902) ((cl-lib (0 5))) "Indent haskell code using the \"hindent\" program" single ((:commit . "8802a5c8eb6ad9553662cd9211852e16f3f2c60f") (:authors ("Chris Done" . "chrisdone@gmail.com")) (:maintainer "Chris Done" . "chrisdone@gmail.com") (:url . "https://github.com/chrisdone/hindent"))]) -(highlight2clipboard . [(20151020 1840) ((htmlize (1 47))) "Copy text to clipboard with highlighting." tar ((:commit . "6ce58a060d9c5843ccb8c79ec2bba7858c68ac15") (:keywords "tools") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren"))]) -(highlight-unique-symbol . [(20130612 542) ((deferred (0 3 2))) "highlight symbols which not appear in the repository" single ((:commit . "4141bf86a94e30d94d9af9c29d40b16886226e1c") (:authors ("hitode909" . "hitode909@gmail.com")) (:maintainer "hitode909" . "hitode909@gmail.com") (:url . "https://github.com/hitode909/emacs-highlight-unique-symbol"))]) -(highlight-thing . [(20181229 1301) nil "Minimalistic minor mode to highlight current thing under point." single ((:commit . "561d08a26f78f18d405d4f371f1c813db094e2f3") (:keywords "highlight" "thing" "symbol") (:authors ("Felix Geller" . "fgeller@gmail.com")) (:maintainer "Felix Geller" . "fgeller@gmail.com") (:url . "https://github.com/fgeller/highlight-thing.el"))]) -(highlight-symbol . [(20160102 2009) nil "automatic and manual symbol highlighting" single ((:commit . "7a789c779648c55b16e43278e51be5898c121b3a") (:keywords "faces" "matching") (:authors ("Nikolaj Schumacher <bugs * nschum de>")) (:maintainer "Nikolaj Schumacher <bugs * nschum de>") (:url . "http://nschum.de/src/emacs/highlight-symbol/"))]) -(highlight-stages . [(20161212 1457) nil "highlight staged (quasi-quoted) expressions" single ((:commit . "29cbc5b78261916da042ddb107420083da49b271") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(highlight-refontification . [(20170211 2024) nil "Visualize font-lock refontification." single ((:commit . "32632897d88c4611fadb08517ca00ef5cbc989b6") (:keywords "faces" "tools") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/highlight-refontification"))]) -(highlight-quoted . [(20140916 1822) ((emacs (24))) "Highlight Lisp quotes and quoted symbols" single ((:commit . "24103478158cd19fbcfb4339a3f1fa1f054f1469") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/highlight-quoted"))]) -(highlight-parentheses . [(20180704 1102) nil "highlight surrounding parentheses" single ((:commit . "f0bd58c8dadd2db703b7bfd09e911b5fda05b3df") (:keywords "faces" "matching") (:authors ("Nikolaj Schumacher <bugs * nschum de>")) (:maintainer "Tassilo Horn" . "tsdh@gnu.org") (:url . "https://github.com/tsdh/highlight-parentheses.el"))]) -(highlight-operators . [(20170213 2220) nil "a face for operators in programming modes" single ((:commit . "3938e88e78c592936fc8fc6eabbfaf7205a967c8") (:authors ("Jonathan Kotta" . "jpkotta@gmail.com")) (:maintainer "Jonathan Kotta" . "jpkotta@gmail.com"))]) -(highlight-numbers . [(20181013 1744) ((emacs (24)) (parent-mode (2 0))) "Highlight numbers in source code" single ((:commit . "8b4744c7f46c72b1d3d599d4fb75ef8183dee307") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/highlight-numbers"))]) -(highlight-leading-spaces . [(20151216 1222) ((emacs (24 4))) "Highlight leading spaces" single ((:commit . "840db19d863dd97993fd9f893f5be501627b6354") (:authors ("Thomas Winant" . "dewinant@gmail.com")) (:maintainer "Thomas Winant" . "dewinant@gmail.com") (:url . "https://github.com/mrBliss/highlight-leading-spaces"))]) -(highlight-indentation . [(20181204 839) nil "Minor modes for highlighting indentation" single ((:commit . "d03803f2c06749c430443a3d24e039cbafc9c58f") (:authors ("Anton Johansson" . "anton.johansson@gmail.com")) (:maintainer "Anton Johansson" . "anton.johansson@gmail.com") (:url . "https://github.com/antonj/Highlight-Indentation-for-Emacs"))]) -(highlight-indent-guides . [(20190108 3) ((emacs (24))) "Minor mode to highlight indentation" single ((:commit . "0b10f38c54ffc099861ce8463e16a1b07ddbb203") (:authors ("DarthFennec" . "darthfennec@derpymail.org")) (:maintainer "DarthFennec" . "darthfennec@derpymail.org") (:url . "https://github.com/DarthFennec/highlight-indent-guides"))]) -(highlight-function-calls . [(20170908 500) ((emacs (24 4))) "Highlight function/macro calls" single ((:commit . "f7a1eaf95fc64cc0db4d0567f9ff79ec4ae04787") (:keywords "faces" "highlighting") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/highlight-function-calls"))]) -(highlight-escape-sequences . [(20171117 1237) nil "Highlight escape sequences" single ((:commit . "08d846a7aa748209d65fecead2b6a766c3e5cb41") (:keywords "convenience") (:authors ("Dmitry Gutov" . "dgutov@yandex.ru") ("Pavel Matcula" . "dev.plvlml@gmail.com")) (:maintainer "Dmitry Gutov" . "dgutov@yandex.ru") (:url . "https://github.com/dgutov/highlight-escape-sequences"))]) -(highlight-doxygen . [(20180829 1818) nil "Highlight Doxygen comments" single ((:commit . "53f2250018725fa19548e1771ee79fcc23641694") (:keywords "faces") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/highlight-doxygen"))]) -(highlight-defined . [(20181106 1718) ((emacs (24))) "Syntax highlighting of known Elisp symbols" single ((:commit . "8e05be23e555ab05edc6fb188f5ce28ef495c946") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/highlight-defined"))]) -(highlight-context-line . [(20181122 2203) nil "Improve orientation when scrolling" single ((:commit . "6b334e8207c780835a05b6909b4d826898c33d26") (:keywords "faces" "services" "user") (:authors ("Stefan Kamphausen <www.skamphausen.de>")) (:maintainer "Stefan Kamphausen <www.skamphausen.de>") (:url . "https://github.com/ska2342/highlight-context-line/"))]) -(highlight-blocks . [(20190318 1557) ((emacs (24))) "Highlight the blocks point is in" single ((:commit . "33cf3d36662faa36c86c8d53e4d5a3922efa3eb8") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/highlight-blocks"))]) -(highlight . [(20181002 1151) nil "Highlighting commands." single ((:commit . "ea733e17884aeae19172407e20559fc693fdd3a7") (:keywords "faces" "help" "local") (:authors ("Drew Adams")) (:maintainer nil . "Drew Adams (concat \"drew.adams\" \"@\" \"oracle\" \".com\")") (:url . "https://www.emacswiki.org/emacs/download/highlight.el"))]) -(hierarchy . [(20190425 842) ((emacs (25 1))) "Library to create and display hierarchy structures" single ((:commit . "a5bc6bf2e1bbd48cc17c508043134f24abb41944") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://github.com/DamienCassou/hierarchy"))]) -(hideshow-org . [(20120223 2250) nil "Provides org-mode like hide and show for hideshow.el" single ((:commit . "16419e52e6cdd2f46f755144c0ab11ce00d1a626") (:keywords "c" "c++" "java" "lisp" "tools" "editing" "comments" "blocks" "hiding" "outlines" "org-mode") (:authors ("Shane Celis <shane (at) gnufoo (dot) org>")) (:maintainer "Shane Celis <shane (at) gnufoo (dot) org>"))]) -(hide-mode-line . [(20180302 1910) ((emacs (24 4))) "minor mode that hides/masks your modeline" single ((:commit . "86b9057391edad75467261c2e579603567e608f9") (:keywords "frames" "mode-line") (:authors ("Henrik Lissner <http://github/hlissner>")) (:maintainer "Henrik Lissner" . "henrik@lissner.net") (:url . "https://github.com/hlissner/emacs-hide-mode-line"))]) -(hide-lines . [(20151127 1840) nil "Commands for hiding lines based on a regexp" single ((:commit . "331122bf19361130351cfe55968c2a7820329eb3") (:keywords "convenience") (:authors ("Mark Hulme-Jones <ture at plig cucumber dot net>")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "https://github.com/vapniks/hide-lines"))]) -(hi2 . [(20141005 1931) nil "indentation module for Haskell Mode" single ((:commit . "c9d199727b5cdcb9e36a972b38131ce4611fd6c8") (:keywords "indentation" "haskell") (:authors ("Gergely Risko" . "gergely@risko.hu")) (:maintainer "Gergely Risko" . "gergely@risko.hu") (:url . "https://github.com/errge/hi2"))]) -(hgrc-mode . [(20150409 2043) nil "major mode for editing hgrc files" single ((:commit . "314e8320b82cc1ce74b1bd372f296252e7a23090") (:keywords "convenience" "vc" "hg") (:authors ("Omair Majid" . "omair.majid@gmail.com")) (:maintainer "Omair Majid" . "omair.majid@gmail.com") (:url . "http://github.com/omajid/hgrc-mode"))]) -(hgignore-mode . [(20160501 7) nil "a major mode for editing hgignore files" single ((:commit . "7aa9f3b8a9c610dbd80b952061b40194e1d9c5bd") (:keywords "convenience" "vc" "hg") (:authors ("Omair Majid" . "omair.majid@gmail.com")) (:maintainer "Omair Majid" . "omair.majid@gmail.com") (:url . "http://github.com/omajid/hgignore-mode"))]) -(hfst-mode . [(20160708 1202) nil "major mode for editing HFST files" single ((:commit . "ac1bb9dd92545d3e7fdc05c83996c227cc15c6b8") (:keywords "languages") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org") (:url . "http://wiki.apertium.org/wiki/Emacs"))]) -(hexo . [(20180815 219) ((emacs (24 3))) "Major mode & tools for Hexo" single ((:commit . "6bca18f911f6b2cd5c055ed73ddec98c385f9f86") (:keywords "tools" "hexo") (:authors ("Ono Hiroko (kuanyui)" . "azazabc123@gmail.com")) (:maintainer "Ono Hiroko (kuanyui)" . "azazabc123@gmail.com") (:url . "https://github.com/kuanyui/hexo.el"))]) -(heroku-theme . [(20150523 219) nil "Heroku color theme" single ((:commit . "8083643fe92ec3a1c3eb82f1b8dc2236c9c9691d") (:authors ("Jonathan Chu" . "me@jonathanchu.is")) (:maintainer "Jonathan Chu" . "me@jonathanchu.is") (:url . "https://github.com/jonathanchu/color-theme-heroku"))]) -(heroku . [(20120629 1813) nil "Interface to Heroku apps." single ((:commit . "92af1c073b593c4def99c8777c869992aa4d0b3a") (:keywords "convenience" "api" "database") (:authors ("Phil Hagelberg" . "technomancy@gmail.com")) (:maintainer "Phil Hagelberg" . "technomancy@gmail.com") (:url . "https://github.com/technomancy/heroku.el"))]) -(hemisu-theme . [(20130508 1844) nil "Hemisu for Emacs." tar ((:commit . "5c206561aa2c844ecdf3e3b672c3235e559ddd7f") (:authors ("Andrzej Sliwa")) (:maintainer "Andrzej Sliwa") (:url . "http://github/anrzejsliwa/django-theme"))]) -(hemera-theme . [(20180916 924) ((emacs (24))) "Light theme" single ((:commit . "b67c902b210b37b00cac68726822404543147ba8") (:keywords "themes" "light-theme") (:authors ("Guido Schmidt")) (:maintainer "Guido Schmidt" . "guido.schmidt.2912@gmail.com") (:url . "https://github.com/GuidoSchmidt/emacs-hemera-theme"))]) -(helpful . [(20190528 2116) ((emacs (25 1)) (dash (2 12 0)) (dash-functional (1 2 0)) (s (1 11 0)) (f (0 20 0)) (elisp-refs (1 2))) "a better *help* buffer" single ((:commit . "897feba75ded5c93dcfc3d950319cf19c03252db") (:keywords "help" "lisp") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk") (:url . "https://github.com/Wilfred/helpful"))]) -(help-find-org-mode . [(20181204 234) ((emacs (24 4))) "Advise help to find org source over tangled code" single ((:commit . "aeda7f92c086dab9d8dfcd580fe80b332887a548") (:keywords "convenience") (:authors ("Eric Crosson" . "eric.s.crosson@utexas.com")) (:maintainer "Eric Crosson" . "eric.s.crosson@utexas.com") (:url . "https://github.com/EricCrosson/help-find-org-mode"))]) -(helm-zhihu-daily . [(20160625 1145) ((helm (1 0)) (cl-lib (0 5)) (emacs (24 4))) "Helm interface for 知乎日报 (http://daily.zhihu.com)" single ((:commit . "be27dcc6be1eb97663b65581a9a5c0fc81cfaba7") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:url . "https://github.com/xuchunyang/helm-zhihu-daily"))]) -(helm-z . [(20171204 325) ((helm (1 0))) "Show z directory list with helm.el support." single ((:commit . "37212220bebea8b9c238cb1bbacd8332b7f26c03") (:authors ("yynozk" . "yynozk@gmail.com")) (:maintainer "yynozk" . "yynozk@gmail.com") (:url . "https://github.com/yynozk/helm-z"))]) -(helm-youtube . [(20190101 1733) ((request (0 2 0)) (helm (2 3 1)) (cl-lib (0 5))) "Query YouTube and play videos in your browser" single ((:commit . "e7272f1648c7fa836ea5ac1a61770b4931ab4709") (:keywords "youtube" "multimedia") (:authors ("Maximilian Roquemore" . "maximus12793@gmail.com")) (:maintainer "Maximilian Roquemore" . "maximus12793@gmail.com") (:url . "https://github.com/maximus12793/helm-youtube"))]) -(helm-xref . [(20190524 943) ((emacs (25 1)) (helm (1 9 4))) "Helm interface for xref results" single ((:commit . "d2744e6626fa40c9ef3c8537f858995e00f74e45") (:authors ("Fritz Stelzer" . "brotzeitmacher@gmail.com")) (:maintainer "Fritz Stelzer" . "brotzeitmacher@gmail.com") (:url . "https://github.com/brotzeit/helm-xref"))]) -(helm-xcdoc . [(20160116 1018) ((helm (1 5)) (emacs (24 4))) "Search Xcode Document by docsetutil and eww with helm interface" single ((:commit . "a85612149a6d8e18ab309b3db2d222ce39c42049") (:authors ("Ryo Fujimoto" . "fujimisakri@gmail.com")) (:maintainer "Ryo Fujimoto" . "fujimisakri@gmail.com") (:url . "https://github.com/fujimisakari/emacs-helm-xcdoc"))]) -(helm-wordnet . [(20160128 1507) ((emacs (24)) (helm (1 7 0)) (cl-lib (0 5))) "Helm interface to local wordnet dictionary" single ((:commit . "a36dbc6fcb570b812870bc1e190f203e0a0042fc") (:keywords "dictionary" "wordnet" "emacs" "elisp" "helm") (:authors ("Raghav Kumar Gautam" . "rgautam@apache.com")) (:maintainer "Raghav Kumar Gautam" . "rgautam@apache.com") (:url . "https://github.com/raghavgautam/helm-wordnet"))]) -(helm-w3m . [(20181029 726) ((helm (1 5)) (w3m (0 0)) (cl-lib (0 5)) (emacs (24 1))) "W3m bookmark - helm interface." single ((:commit . "c15d926631198d6d759ec8881837bcca5a64963b"))]) -(helm-w32-launcher . [(20141223 2014) ((emacs (24)) (helm (1 6 5)) (cl-lib (0 5))) "Start Menu entry launcher using Helm" tar ((:commit . "3e59ad62b89dd21d334af0203d445a83eb25dc5b") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/helm-w32-launcher"))]) -(helm-unicode . [(20180608 1407) ((helm (1 9 8)) (emacs (24 4))) "Helm command for unicode characters." single ((:commit . "fbeb0c5e741a6f462520884b744d43a9acbe1d34"))]) -(helm-tramp . [(20190616 125) ((emacs (24 3)) (helm (2 0))) "Tramp helm interface for ssh, docker, vagrant" single ((:commit . "924b5516270b3933e847562e8e14e3888dd24184") (:authors ("Masashı Mıyaura")) (:maintainer "Masashı Mıyaura") (:url . "https://github.com/masasam/emacs-helm-tramp"))]) -(helm-themes . [(20160918 545) ((helm-core (2 0)) (emacs (24 4))) "Color theme selection with helm interface" single ((:commit . "1160af42590b0d845a55e65e1e782d9e4027fd6e") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-helm-themes"))]) -(helm-taskswitch . [(20190304 1414) ((emacs (24)) (helm (3 0))) "Use helm to switch windows and buffers" single ((:commit . "59f7cb99defa6e6bf6e7d599559fa8d5786cf8a9") (:keywords "frames") (:authors ("Brian Caruso" . "briancaruso@gmail.com")) (:maintainer "Brian Caruso" . "briancaruso@gmail.com") (:url . "https://github.com/bdc34/helm-taskswitch"))]) -(helm-tail . [(20181124 439) ((emacs (25 1)) (helm (2 7 0))) "Read recent output from various sources" single ((:commit . "1f5a6355aa3bdb00b9b0bc93db29c17f0d6701e3") (:keywords "maint" "tools") (:authors ("Akira Komamura" . "akira.komamura@gmail.com")) (:maintainer "Akira Komamura" . "akira.komamura@gmail.com") (:url . "https://github.com/akirak/helm-tail"))]) -(helm-systemd . [(20180131 434) ((emacs (24 4)) (helm (1 9 2)) (with-editor (2 5 0))) "helm's systemd interface" single ((:commit . "96f5cd3ee3412539c2f8d145201f47c4f8e53b4f") (:keywords "convenience") (:authors (nil . "<lompik@oriontabArch>")) (:maintainer nil . "<lompik@oriontabArch>"))]) -(helm-system-packages . [(20190325 1015) ((emacs (24 4)) (helm (2 8 7)) (seq (1 8))) "Helm UI wrapper for system package managers." tar ((:commit . "9e43d446bbf2dd00dfda1d4aef2501fb2400bb1d") (:keywords "helm" "packages") (:authors ("Pierre Neidhardt" . "mail@ambrevar.xyz")) (:maintainer "Pierre Neidhardt" . "mail@ambrevar.xyz") (:url . "https://github.com/emacs-helm/helm-system-packages"))]) -(helm-swoop . [(20180215 1154) ((helm (1 0)) (emacs (24 3))) "Efficiently hopping squeezed lines powered by helm interface" single ((:commit . "c66336b8245ddc51c4206f19c119f1081920985c") (:keywords "helm" "swoop" "inner" "buffer" "search") (:authors ("Shingo Fukuyama - http://fukuyama.co")) (:maintainer "Shingo Fukuyama - http://fukuyama.co") (:url . "https://github.com/ShingoFukuyama/helm-swoop"))]) -(helm-sql-connect . [(20170319 1251) ((helm (0 0 0))) "Choose a database to connect to via Helm." single ((:commit . "5aead55b6f8636140945714d8c332b287ab9ef10") (:keywords "tools" "convenience" "comm") (:authors ("Eric Hansen" . "hansen.c.eric@gmail.com")) (:maintainer "Eric Hansen" . "hansen.c.eric@gmail.com") (:url . "https://github.com/eric-hansen/helm-sql-connect"))]) -(helm-spotify-plus . [(20181229 1145) ((emacs (24 4)) (helm (2 0 0)) (multi (2 0 1))) "Control Spotify search and select music with Helm." single ((:commit . "8404541463a398007c7a38a28df10d89f3ef9668") (:authors ("Wanderson Ferreira <https://github.com/wandersoncferreira> and Luis Moneda <https://github.com/lgmoneda>")) (:maintainer "Wanderson Ferreira <https://github.com/wandersoncferreira> and Luis Moneda <https://github.com/lgmoneda>"))]) -(helm-spotify . [(20160905 2147) ((helm (0 0 0)) (multi (2 0 0))) "Control Spotify with Helm." single ((:commit . "f7a62d1ff88e3127de9be7cd3e818b0a92268ab3") (:keywords "helm" "spotify") (:authors ("Kris Jenkins" . "krisajenkins@gmail.com")) (:maintainer "Kris Jenkins" . "krisajenkins@gmail.com") (:url . "https://github.com/krisajenkins/helm-spotify"))]) -(helm-spaces . [(20161001 1409) ((helm-core (2 2)) (spaces (0 1 0))) "helm sources for spaces" single ((:commit . "877e2b5178926308d6a7c2a37477bb12c33a96d4") (:keywords "helm" "frames" "convenience") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/yasuyk/helm-spaces"))]) -(helm-smex . [(20171004 2008) ((emacs (24)) (smex (3 0)) (helm (1 7 7))) "Helm interface for smex" single ((:commit . "2269375dfa452b88b5170d1a5d5849ebb2c1e413") (:keywords "convenience") (:authors ("Peter Vasil" . "mail@petervasil.net")) (:maintainer "Peter Vasil" . "mail@petervasil.net"))]) -(helm-slime . [(20190315 912) ((emacs (24)) (helm-core (1 9 8)) (slime (2 18)) (cl-lib (0 5))) "helm-sources and some utilities for SLIME." single ((:commit . "ebe80eebd1dfba1f1c837876c8f73cefc8c4db87") (:keywords "convenience" "helm" "slime") (:authors ("Takeshi Banse" . "takebi@laafc.net")) (:maintainer "Takeshi Banse" . "takebi@laafc.net") (:url . "https://github.com/emacs-helm/helm-slime"))]) -(helm-sheet . [(20130630 1239) ((helm (1 0))) "helm sources for sheet" single ((:commit . "d360b68d0ddb09aa1854e7b2f3cb39caeee26463") (:keywords "helm" "sheet") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/yasuyk/helm-sheet"))]) -(helm-selected . [(20171223 210) ((emacs (24 4)) (helm (2 8 6)) (selected (1 1))) "helm extension for selected.el" single ((:commit . "a9c769998bc56373d19f0ec9cbbbb4bd89a43c2d") (:keywords "extensions" "convenience") (:authors ("Takaaki ISHIKAWA <takaxp at ieee dot org>")) (:maintainer "Takaaki ISHIKAWA <takaxp at ieee dot org>") (:url . "https://github.com/takaxp/helm-selected"))]) -(helm-sage . [(20160514 745) ((cl-lib (0 5)) (helm (1 5 6)) (sage-shell-mode (0 1 0))) "A helm extension for sage-shell-mode." single ((:commit . "f14e9281d8f2162df7d8f9c2ad9ad1248a24803b") (:keywords "sage" "math" "helm") (:authors ("Sho Takemori" . "stakemorii@gmail.com")) (:maintainer "Sho Takemori" . "stakemorii@gmail.com") (:url . "https://github.com/stakemori/helm-sage"))]) -(helm-safari . [(20160404 324) ((helm (1 9 1)) (emacs (24))) "Browse your Safari bookmarks and history" single ((:commit . "664c7f4488829228eed7e90cd53002e14bec555b") (:keywords "tools") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:url . "https://github.com/xuchunyang/helm-safari"))]) -(helm-rubygems-org . [(20140826 1156) ((emacs (24)) (helm (1 6 3)) (cl-lib (0 5))) "Use helm to search rubygems.org" single ((:commit . "6aaed984f698cbdf9f9aceb0221404563e28764d") (:keywords "ruby" "rubygems" "gemfile" "helm") (:authors ("Chad Albers" . "calbers@neomantic.com")) (:maintainer "Chad Albers" . "calbers@neomantic.com") (:url . "https://github.com/neomantic/helm-rubygems-org"))]) -(helm-rubygems-local . [(20130712 111) ((helm (1 5 3))) "Installed local rubygems find-file for helm" single ((:commit . "289cb33d41c703af9791d6da46b55f070013c2e3") (:authors ("hadashiA" . "dev@hadashikick.jp")) (:maintainer "hadashiA" . "dev@hadashikick.jp") (:url . "https://github.com/f-kubotar/helm-rubygems-local"))]) -(helm-rtags . [(20170813 411) ((helm (2 0)) (rtags (2 10))) "A front-end for rtags" single ((:commit . "d49e49f46b878e0d10f6ddc3951d690d50e75277") (:authors ("Jan Erik Hanssen" . "jhanssen@gmail.com") ("Anders Bakken" . "agbakken@gmail.com")) (:maintainer "Jan Erik Hanssen" . "jhanssen@gmail.com") (:url . "http://rtags.net"))]) -(helm-ros . [(20160812 1752) ((helm (1 9 9)) (xterm-color (1 0)) (cl-lib (0 5))) "Interfaces ROS with helm" single ((:commit . "92b0b215f6a017f0f57f1af15466cc0b2a5a0135") (:keywords "helm" "ros") (:authors ("David Landry" . "davidlandry93@gmail.com")) (:maintainer "David Landry" . "davidlandry93@gmail.com") (:url . "https://www.github.com/davidlandry93/helm-ros"))]) -(helm-robe . [(20151209 355) ((helm (1 7 7))) "completing read function for robe" single ((:commit . "6e69543b4ee76c5f8f3f2510c76e6d9aed17a370") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-helm-robe"))]) -(helm-rhythmbox . [(20160524 1158) ((helm (1 5 0)) (cl-lib (0 5))) "control Rhythmbox's play queue via Helm" single ((:commit . "c92e1ded34ddd4e62e7e9a558259c232e05193fa") (:authors ("Thomas Winant" . "dewinant@gmail.com")) (:maintainer "Thomas Winant" . "dewinant@gmail.com") (:url . "https://github.com/mrBliss/helm-rhythmbox"))]) -(helm-rg . [(20190130 1734) ((emacs (25)) (cl-lib (0 5)) (dash (2 13 0)) (helm (2 8 8))) "a helm interface to ripgrep" single ((:commit . "785a80fe5cc87e27c5ea3d00a70049028d9e2847") (:keywords "find" "file" "files" "helm" "fast" "rg" "ripgrep" "grep" "search" "match") (:authors ("Danny McClanahan")) (:maintainer "Danny McClanahan") (:url . "https://github.com/cosmicexplorer/helm-rg"))]) -(helm-recoll . [(20160731 921) ((helm (1 9 9))) "helm interface for the recoll desktop search tool." single ((:commit . "cc4c4fa9c8f4f99383647baa8512b60523dc8b36") (:keywords "convenience") (:authors ("Thierry Volpiatto <thierry.volpiatto at gmail.com>")) (:maintainer "Thierry Volpiatto <thierry.volpiatto at gmail.com>") (:url . "https://github.com/emacs-helm/helm-recoll"))]) -(helm-rdefs . [(20161130 536) ((emacs (24)) (helm (1 6 4))) "rdefs with helm interface" single ((:commit . "cd3a6b3af3015ee58ef30cb7c81c79ebe5fc867b") (:keywords "matching" "tools") (:authors ("Hiroshi Saito" . "monodie@gmail.com")) (:maintainer "Hiroshi Saito" . "monodie@gmail.com") (:url . "https://github.com/saidie/helm-rdefs"))]) -(helm-rb . [(20131123 1639) ((helm (1 0)) (helm-ag-r (20131123))) "Search Ruby's method by ag and display helm" tar ((:commit . "4949d646420a9849af234dacdd8eb34a77c662fd") (:keywords "searching" "ruby") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:url . "https://github.com/yuutayamada/helm-rb"))]) -(helm-rails . [(20130424 1519) ((helm (1 5 1)) (inflections (1 1))) "Helm extension for Rails projects." single ((:commit . "506d9948d45dfbc575c9c4c0d102c1ad2f511e82") (:keywords "helm" "rails" "git") (:authors ("Adam Sokolnicki" . "adam.sokolnicki@gmail.com")) (:maintainer "Adam Sokolnicki" . "adam.sokolnicki@gmail.com") (:url . "https://github.com/asok/helm-rails"))]) -(helm-rage . [(20180118 1532) ((helm (1 9 8)) (emacs (24 4)) (dash (2 13 0)) (s (1 11 0))) "Helm command for rage characters." tar ((:commit . "5d0aefb53d859186181d4bdcfeff7d315339c7b8") (:keywords "helm" "rage" "meme") (:url . "https://github.com/bomgar/helm-rage"))]) -(helm-qiita . [(20190526 1359) ((emacs (24)) (helm (2 8 2))) "Qiita with helm interface" single ((:commit . "5f82010c595f8e122aa3f68148ba8d8ccb1333d8") (:authors ("Takashi Masuda" . "masutaka.net@gmail.com")) (:maintainer "Takashi Masuda" . "masutaka.net@gmail.com") (:url . "https://github.com/masutaka/emacs-helm-qiita"))]) -(helm-pydoc . [(20160918 542) ((helm-core (2 0)) (emacs (24 4))) "pydoc with helm interface" tar ((:commit . "85480a29b56dacde425655bc8f5a597c785afdf5") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-helm-pydoc"))]) -(helm-purpose . [(20170114 1636) ((emacs (24)) (helm (1 9 2)) (window-purpose (1 4))) "Helm Interface for Purpose" single ((:commit . "9ff4c21c1e9ebc7afb851b738f815df7343bb287") (:authors ("Bar Magal (2016)")) (:maintainer "Bar Magal (2016)") (:url . "https://github.com/bmag/helm-purpose"))]) -(helm-pt . [(20160214 2342) ((helm (1 5 6))) "Helm interface to the platinum searcher" tar ((:commit . "8acc52911dad1ed0c3975f134a468762afe0b76b") (:keywords "helm" "platinum searcher"))]) -(helm-prosjekt . [(20140129 717) ((prosjekt (0 3)) (helm (1 5 9))) "Helm integration for prosjekt." single ((:commit . "a864a8be5842223043702395f311e3350c28e9db") (:authors ("Sohail Somani" . "sohail@taggedtype.net")) (:maintainer "Sohail Somani" . "sohail@taggedtype.net") (:url . "https://github.com/abingham/prosjekt"))]) -(helm-projectile . [(20190408 1508) ((helm (1 9 9)) (projectile (0 14 0)) (cl-lib (0 3))) "Helm integration for Projectile" single ((:commit . "38d72b6b661234088bae9f3c2b3c18228a3c0564") (:keywords "project" "convenience") (:authors ("Bozhidar Batsov")) (:maintainer "Bozhidar Batsov") (:url . "https://github.com/bbatsov/helm-projectile"))]) -(helm-project-persist . [(20151210 1543) ((helm (1 5 2)) (project-persist (0 1 4))) "Helm integration for project-persist package" single ((:commit . "357950fbac18090985a750e40d5d8b10ee9dcd53") (:keywords "project-persist" "project" "helm") (:authors ("Sliim" . "sliim@mailoo.org")) (:maintainer "Sliim" . "sliim@mailoo.org"))]) -(helm-proc . [(20161006 305) ((helm (1 6 0))) "Helm interface for managing system processes" tar ((:commit . "576d31c2d74ba3897d56e2acd2b0993f52c2547c"))]) -(helm-posframe . [(20180610 1748) ((emacs (26 0)) (posframe (0 1 0)) (helm (0 1))) "Using posframe to show helm window" single ((:commit . "d28f96ea92ee9393658901bb552723db10f40dc3") (:keywords "abbrev" "convenience" "matching" "helm") (:authors ("Feng Shu")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/helm-posframe"))]) -(helm-phpunit . [(20160513 853) ((helm (1 9 5)) (phpunit (0 7 0))) "Helm integration for phpunit.el" single ((:commit . "739f26204ad2ba76c25f45e8eab1e5216f7c3518") (:keywords "phpunit" "helm" "php") (:authors ("Eric Hansen" . "hansen.c.eric@gmail.com")) (:maintainer "Eric Hansen" . "hansen.c.eric@gmail.com") (:url . "https://github.com/eric-hansen/phpunit-helm"))]) -(helm-perspeen . [(20170228 1345) ((perspeen (0 1 0)) (helm (2 5 0))) "Helm interface for perspeen." single ((:commit . "7fe2922d85608bfa9e18269fc44181428b8849ff") (:keywords "projects" "lisp") (:authors ("Yoshinobu Fujimoto")) (:maintainer "Yoshinobu Fujimoto") (:url . "https://github.com/jimo1001/helm-perspeen"))]) -(helm-perldoc . [(20160918 556) ((helm-core (2 0)) (deferred (0 3 1)) (emacs (24 4))) "perldoc with helm interface" tar ((:commit . "1979f9f67814c11ec9498502237c89a5e1153100") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-helm-perldoc"))]) -(helm-pass . [(20190315 1335) ((emacs (25)) (helm (0)) (password-store (0)) (auth-source-pass (4 0 0))) "helm interface of pass, the standard Unix password manager" single ((:commit . "ed5798f2d83937575e8f23fde33323bca9e85131") (:authors ("J. Alexander Branham" . "branham@utexas.edu")) (:maintainer "Pierre Neidhardt" . "mail@ambrevar.xyz") (:url . "https://github.com/emacs-helm/helm-pass"))]) -(helm-pages . [(20161121 226) ((helm (1 6 5)) (emacs (24)) (cl-lib (0 5))) "Pages in current buffer as Helm datasource" single ((:commit . "51dcb9374d1df9feaae85e60cfb39b970554ecba") (:keywords "convenience" "helm" "outlines") (:authors ("David Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Christiansen" . "david@davidchristiansen.dk"))]) -(helm-orgcard . [(20151001 1524) ((helm-core (1 7 7))) "browse the orgcard by helm" single ((:commit . "9655ac340d1ccc5f3d1c0f7c49be8dd3556d4d0d") (:keywords "convenience" "helm" "org") (:authors ("Yuhei Maeda <yuhei.maeda_at_gmail.com>")) (:maintainer "Yuhei Maeda") (:url . "https://github.com/emacs-jp/helm-orgcard"))]) -(helm-org-rifle . [(20181216 1129) ((emacs (24 4)) (dash (2 12)) (f (0 18 1)) (helm (1 9 4)) (s (1 10 0))) "Rifle through your Org files" single ((:commit . "23f4ae05f5a9d1894f4afdb9ef774c342eb7e787") (:keywords "hypermedia" "outlines") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/helm-org-rifle"))]) -(helm-open-github . [(20170220 159) ((emacs (24 4)) (helm-core (1 7 7)) (gh (0 8 2))) "Utilities of Opening Github Page" single ((:commit . "2f03d97552a1233db7694116d5f80ecde7612756") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-helm-open-github"))]) -(helm-notmuch . [(20190320 1048) ((helm (1 9 3)) (notmuch (0 21))) "Search emails with Notmuch and Helm" single ((:commit . "97a01497e079a7b6505987e9feba6b603bbec288") (:keywords "mail") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/emacs-helm/helm-notmuch"))]) -(helm-nixos-options . [(20151013 2309) ((nixos-options (0 0 1)) (helm (1 5 6))) "Helm Interface for nixos-options" single ((:commit . "45c8d90748304c90e1503c9fa8db0443f3d4bd89") (:keywords "unix") (:authors ("Diego Berrocal" . "cestdiego@gmail.com") ("Travis B. Hartwell" . "nafai@travishartwell.net")) (:maintainer "Diego Berrocal" . "cestdiego@gmail.com") (:url . "http://www.github.com/travisbhartwell/nix-emacs/"))]) -(helm-navi . [(20181226 29) ((emacs (24 4)) (helm (1 9 4)) (navi-mode (2 0)) (s (1 10 0))) "Helm for navi-mode" single ((:commit . "3b9abcc39ce7c657bc2dcc054b850dc2a7cf0448") (:keywords "navigation" "outlines") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/emacs-helm/helm-navi"))]) -(helm-mu . [(20190410 1718) ((helm (1 5 5))) "Helm sources for searching emails and contacts" single ((:commit . "7793d96694505380c470cb7b31b4bd8a2781e529") (:authors ("Titus von der Malsburg" . "malsburg@posteo.de")) (:maintainer "Titus von der Malsburg" . "malsburg@posteo.de") (:url . "https://github.com/emacs-helm/helm-mu"))]) -(helm-mt . [(20160918 452) ((emacs (24)) (helm (0 0)) (multi-term (0 0)) (cl-lib (0 5))) "helm multi-term management" single ((:commit . "d2bff4100118483bc398c56d0ff095294209265b") (:keywords "helm" "multi-term") (:authors ("Didier Deshommes" . "dfdeshom@gmail.com")) (:maintainer "Didier Deshommes" . "dfdeshom@gmail.com") (:url . "https://github.com/dfdeshom/helm-mt"))]) -(helm-mode-manager . [(20151124 938) ((helm (1 5 3))) "Select and toggle major and minor modes with helm" single ((:commit . "5d9c3ca4f8205d07ff4e03c4c3e88f596751c1fc") (:authors ("istib")) (:maintainer "istib") (:url . "https://github.com/istib/helm-mode-manager"))]) -(helm-migemo . [(20151010 356) ((emacs (24 4)) (helm-core (1 7 8)) (migemo (1 9)) (cl-lib (0 5))) "Migemo plug-in for helm" single ((:commit . "66c6a19d07c6a385daefd2090d0709d26b608b4e") (:keywords "matching" "convenience" "tools" "i18n") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "Yuhei Maeda <yuhei.maeda_at_gmail.com>") (:url . "https://github.com/emacs-jp/helm-migemo"))]) -(helm-make . [(20190518 1946) nil "Select a Makefile target with helm" single ((:commit . "8eabcaf29102f5ab07543f627af5d75178c86d10") (:keywords "makefile") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/helm-make"))]) -(helm-lxc . [(20190116 2050) ((emacs (25)) (cl-lib (0 5)) (helm (2 9 4)) (lxc-tramp (0 1 0))) "Helm interface to manage LXC containers" single ((:commit . "a4e17dda329ec39a3dac5751ddcef1145b3d91c1") (:keywords "helm" "lxc" "convenience") (:authors ("montag451")) (:maintainer "montag451") (:url . "https://github.com/montag451/helm-lxc"))]) -(helm-lsp . [(20190423 548) ((emacs (25 1)) (dash (2 14 1)) (lsp-mode (5 0)) (helm (2 0))) "LSP helm integration" single ((:commit . "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b") (:keywords "languages" "debug") (:authors ("Ivan Yonchovski" . "yyoncho@gmail.com")) (:maintainer "Ivan Yonchovski" . "yyoncho@gmail.com") (:url . "https://github.com/yyoncho/helm-lsp"))]) -(helm-ls-svn . [(20190316 2203) ((emacs (24 1)) (helm (1 7 0)) (cl-lib (0 5))) "helm extension to list svn files" single ((:commit . "a6043e1187282f649e2cb9f0e722a42daf41294b") (:keywords "helm" "svn") (:authors ("Chunyang Xu" . "chunyang@macports.org")) (:maintainer "Chunyang Xu" . "chunyang@macports.org") (:url . "https://svn.macports.org/repository/macports/users/chunyang/helm-ls-svn.el/helm-ls-svn.el"))]) -(helm-ls-hg . [(20150909 543) ((helm (1 7 8))) "List hg files in hg project." single ((:commit . "61b91a22fcfb62d0fc56e361ec01ce96973c7165"))]) -(helm-ls-git . [(20190105 722) ((helm (1 7 8))) "list git files." single ((:commit . "0702bc1950f26358c1a024bdbb2d0b1d7dcd2e51"))]) -(helm-lobsters . [(20150213 1546) ((helm (1 0)) (cl-lib (0 5))) "helm front-end for lobste.rs" single ((:commit . "53c5b42baf72776dcba891fc3d7cd7d47721e9b0") (:authors ("Julien BLANCHARD" . "julien@sideburns.eu")) (:maintainer "Julien BLANCHARD" . "julien@sideburns.eu") (:url . "https://github.com/julienXX/helm-lobste.rs"))]) -(helm-lines . [(20180601 2033) ((emacs (24 4)) (helm (1 9 8))) "A helm interface for completing by lines" single ((:commit . "3bfe15a60c6405682085ab289de3eb364624c4e9") (:keywords "files" "helm" "ag" "pt" "vc" "git" "lines" "complete" "tools" "languages") (:authors ("@torgeir")) (:maintainer "@torgeir") (:url . "https://github.com/torgeir/helm-lines.el/"))]) -(helm-lib-babel . [(20180510 1324) ((cl-lib (0 5)) (helm (1 9 2)) (emacs (24 4))) "helm insertion of babel function references" single ((:commit . "41bc0cdea8a604c6c8dc83ed5066644d33688fad") (:keywords "convenience") (:authors ("Derek Feichtinger" . "dfeich@gmail.com")) (:maintainer "Derek Feichtinger" . "dfeich@gmail.com") (:url . "https://github.com/dfeich/helm-lib-babel.el"))]) -(helm-lean . [(20171102 1454) ((emacs (24 3)) (dash (2 12 0)) (helm (2 8 0)) (lean-mode (3 3 0))) "Helm interfaces for lean-mode" single ((:commit . "9d6b8471e2044310b4cd7cd3213b1fc8f78ec499") (:keywords "languages") (:authors ("Leonardo de Moura" . "leonardo@microsoft.com") ("Soonho Kong " . "soonhok@cs.cmu.edu") ("Gabriel Ebner " . "gebner@gebner.org") ("Sebastian Ullrich" . "sebasti@nullri.ch")) (:maintainer "Sebastian Ullrich" . "sebasti@nullri.ch") (:url . "https://github.com/leanprover/lean-mode"))]) -(helm-lastpass . [(20180722 806) ((emacs (25 1)) (helm (2 0)) (csv (2 1))) "Helm interface of LastPass" single ((:commit . "82e1ffb6ae77d9d9e29c398eb013cd20ce963f77") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/helm-lastpass"))]) -(helm-kythe . [(20170709 726) ((emacs (25)) (dash (2 12 0)) (helm (2 0))) "Google Kythe helm interface" single ((:commit . "eabbef4948f8ec7c7b2fac498e9145dfdb10ca82") (:authors ("Fangrui Song" . "i@maskray.me")) (:maintainer "Fangrui Song" . "i@maskray.me") (:url . "https://github.com/MaskRay/emacs-helm-kythe"))]) -(helm-jstack . [(20150603 422) ((emacs (24)) (helm (1 7 0)) (cl-lib (0 5))) "Helm interface to Jps & Jstack for Java/JVM processes" single ((:commit . "2064f7215dcf4ccbd6a7b8784223251507746da4") (:keywords "java" "jps" "jstack" "jvm" "emacs" "elisp" "helm") (:authors ("Raghav Kumar Gautam" . "rgautam@apache.com")) (:maintainer "Raghav Kumar Gautam" . "rgautam@apache.com"))]) -(helm-js-codemod . [(20171106 1044) ((emacs (24 4)) (helm-core (1 9 8)) (js-codemod (1 0 0))) "A helm interface for running js-codemods" single ((:commit . "18503d94e64418e8ea5c5854f197ae9f3009cdbf") (:keywords "helm" "js" "codemod" "region") (:authors (nil . "Torgeir Thoresen <@torgeir>")) (:maintainer nil . "Torgeir Thoresen <@torgeir>"))]) -(helm-jira . [(20180802 815) ((emacs (25)) (cl-lib (0 5)) (helm (1 9 9))) "Helm bindings for JIRA/Bitbucket/stash" single ((:commit . "75d6ed5bd7a041fa8c1adb21cbbbe57b5a7c7cc7") (:keywords "tools" "helm" "jira" "bitbucket" "stash") (:authors ("Roman Decker <roman dot decker at gmail dot com>")) (:maintainer "Roman Decker <roman dot decker at gmail dot com>") (:url . "https://github.com/DeX3/helm-jira"))]) -(helm-j-cheatsheet . [(20170217 829) ((helm (1 5 3))) "Quick J reference for Emacs" single ((:commit . "6c47e7162b9ba2de4b41221d01180146973d860b") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/helm-j-cheatsheet"))]) -(helm-itunes . [(20151013 648) ((helm (1 6 1))) "Play local iTunes and Spotify tracks" single ((:commit . "966de755a5aadbe02311a6cef77bd4790e84c263") (:authors ("Adam Schwartz" . "adam@adamschwartz.io")) (:maintainer "Adam Schwartz" . "adam@adamschwartz.io") (:url . "https://github.com/daschwa/helm-itunes"))]) -(helm-ispell . [(20151231 853) ((helm-core (1 7 7))) "ispell-complete-word with helm interface" single ((:commit . "cb735695ab3a0e66c123c2f3f3e8911fb1c2d5fc") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-helm-ispell"))]) -(helm-img-tiqav . [(20151224 2322) ((helm-img (0 0 1))) "An helm-source for joking." single ((:commit . "33a7e9508bc8f37d53320b56c92b53d321a57bb0") (:keywords "convenience") (:authors ("Sho Matsumoto <l3msh0_at_gmail.com>")) (:maintainer "l3msh0") (:url . "https://github.com/l3msh0/helm-img"))]) -(helm-img . [(20151224 2321) ((helm (1 7 7)) (cl-lib (0 5))) "Utilities for making image sources for helm." tar ((:commit . "aa3f8a5dce8d0413bf07584f07153a39015c2bfc") (:keywords "convenience") (:authors ("Sho Matsumoto <l3msh0_at_gmail.com>")) (:maintainer "l3msh0") (:url . "https://github.com/l3msh0/helm-img"))]) -(helm-idris . [(20141202 1757) ((helm (0 0 0)) (idris-mode (0 9 14))) "A Helm datasource for Idris documentation, queried from the compiler" single ((:commit . "a2f45d6817974f318b55ad9b7fd19d5df132d47e") (:keywords "languages" "helm") (:authors ("David Raymond Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Raymond Christiansen" . "david@davidchristiansen.dk"))]) -(helm-hunks . [(20171217 1933) ((emacs (24 4)) (helm (1 9 8))) "A helm interface for git hunks - browsing, staging, unstaging and killing" single ((:commit . "6392bf716f618eac23ce81140aceb0dfacb9c6d0") (:keywords "helm" "git" "hunks" "vc") (:authors ("@torgeir")) (:maintainer "@torgeir"))]) -(helm-hoogle . [(20161027 534) ((helm (1 6 2)) (emacs (24 4))) "Use helm to navigate query results from Hoogle" single ((:commit . "73969a9d46d2121a849a01a9f7ed3636d01f7bbc") (:keywords "haskell" "programming" "hoogle") (:authors ("John Wiegley" . "jwiegley@gmail.com")) (:maintainer "John Wiegley" . "jwiegley@gmail.com") (:url . "https://github.com/jwiegley/haskell-config"))]) -(helm-helm-commands . [(20130902 1748) ((helm (1 5 4))) "List all helm commands with helm" single ((:commit . "3a05aa19c976501343ad9ae630a36810921a85f6") (:keywords "convenience") (:authors ("Joe Bloggs" . "vapniks@yahoo.com")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "https://github.com/vapniks/helm-helm-commands"))]) -(helm-hayoo . [(20151014 651) ((helm (1 6 0)) (json (1 2)) (haskell-mode (13 7))) "Source and configured helm for searching hayoo" single ((:commit . "dd4c0c8c87521026edf1b808c4de01fa19b7c693") (:keywords "helm") (:authors ("Markus Hauck" . "markus1189@gmail.com")) (:maintainer "Markus Hauck" . "markus1189@gmail.com"))]) -(helm-hatena-bookmark . [(20190609 1455) ((emacs (24)) (helm (2 8 2))) "Hatena::Bookmark with helm interface" single ((:commit . "10b8bfbd7fc4c3f503b2bc01f0c062dac128059e") (:authors ("Takashi Masuda" . "masutaka.net@gmail.com")) (:maintainer "Takashi Masuda" . "masutaka.net@gmail.com") (:url . "https://github.com/masutaka/emacs-helm-hatena-bookmark"))]) -(helm-gtags . [(20170116 529) ((emacs (24 4)) (helm (2 0))) "GNU GLOBAL helm interface" single ((:commit . "108e93d0d099ebb7b98847388f368311cf177033") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-helm-gtags"))]) -(helm-growthforecast . [(20140120 344) ((helm (1 5 9))) "helm extensions for growthforecast." single ((:commit . "0f94ac090d6c354058ad89a86e5c18385c136d9b") (:authors ("Daichi Hirata" . "daichi.hirat@gmail.com")) (:maintainer "Daichi Hirata" . "daichi.hirat@gmail.com") (:url . "https://github.com/daic-h/helm-growthforecast"))]) -(helm-grepint . [(20161001 1413) ((helm (1 0)) (emacs (24))) "Generic helm interface to grep" single ((:commit . "a62ca27515ff6a366b89b420500eb16d380cc653") (:keywords "grep" "grepping" "searching" "helm") (:authors ("Kalle Kankare" . "kalle.kankare@iki.fi")) (:maintainer "Kalle Kankare" . "kalle.kankare@iki.fi") (:url . "https://github.com/kopoli/helm-grepint"))]) -(helm-google . [(20180606 520) ((helm (0))) "Emacs Helm Interface for quick Google searches" single ((:commit . "48e91a73d5f48c39d7a219022a24440cff548e1a") (:keywords "helm" "google" "search" "browse" "searx") (:authors ("steckerhalter")) (:maintainer "steckerhalter") (:url . "https://framagit.org/steckerhalter/helm-google"))]) -(helm-go-package . [(20161103 153) ((emacs (24 4)) (helm-core (2 2 1)) (go-mode (1 4 0)) (deferred (0 4 0))) "helm sources for Go programming language's package" single ((:commit . "e42c563936c205ceedb930a687c11b4bb56447bc") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/yasuyk/helm-go-package"))]) -(helm-gitlab . [(20180312 1647) ((s (1 9 0)) (dash (2 9 0)) (helm (1 0)) (gitlab (0 8 0))) "Helm interface to Gitlab" single ((:commit . "8c2324c02119500f094c2f92dfaba4c9977ce1ba") (:keywords "gitlab" "helm") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/emacs-gitlab"))]) -(helm-gitignore . [(20170211 8) ((gitignore-mode (1 1 0)) (helm (1 7 0)) (request (0 1 0)) (cl-lib (0 5))) "Generate .gitignore files with gitignore.io." single ((:commit . "2a2e7da7855a6db0ab3bb6a6a087863d7abd4391") (:keywords "helm" "gitignore" "gitignore.io") (:authors ("Juan Placencia")) (:maintainer "Juan Placencia") (:url . "https://github.com/jupl/helm-gitignore"))]) -(helm-github-stars . [(20190428 1047) ((helm (1 6 8)) (emacs (24 4))) "Helm interface for your github's stars" single ((:commit . "c891690218b0d8b957ea6cb45b1b6cffd15a6950") (:keywords "helm" "github" "stars") (:authors ("Sliim" . "sliim@mailoo.org") ("xuchunyang" . "xuchunyang56@gmail.com")) (:maintainer "Sliim" . "sliim@mailoo.org") (:url . "https://github.com/Sliim/helm-github-stars"))]) -(helm-git-grep . [(20170614 1411) ((helm-core (2 2 0))) "helm for git grep, an incremental git-grep(1)" single ((:commit . "744cea07dba6e6a5effbdba83f1b786c78fd86d3") (:authors ("mechairoi")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/yasuyk/helm-git-grep"))]) -(helm-git-files . [(20141212 1317) ((helm (1 5 9))) "helm for git files" single ((:commit . "43193960774069369ac6964bbf7c026900206fa8") (:keywords "helm" "git") (:authors ("INA Lintaro <tarao.gnn at gmail.com>") ("TAKAGI Kentaro <kentaro0910_at_gmail.com>")) (:maintainer "INA Lintaro <tarao.gnn at gmail.com>"))]) -(helm-git . [(20120630 2103) nil "Helm extension for Git." single ((:commit . "cb96a52b5aecadd3c27aba7749d14e43ab128d55") (:keywords "helm" "git") (:authors ("Marian Schubert" . "marian.schubert@gmail.com")) (:maintainer "Marian Schubert" . "marian.schubert@gmail.com") (:url . "https://github.com/maio/helm-git"))]) -(helm-ghs . [(20170715 541) ((emacs (24)) (helm (2 2 0))) "ghs with helm interface" single ((:commit . "17a70bf16255d90d67c8350e88200ec8bfd47563") (:authors ("iory" . "ab.ioryz@gmail.com")) (:maintainer "iory" . "ab.ioryz@gmail.com") (:url . "https://github.com/iory/emacs-helm-ghs"))]) -(helm-ghq . [(20190526 1409) ((emacs (24)) (helm (2 2 0))) "Ghq with helm interface" single ((:commit . "d0d6aa0f407388e7012f0443df8ae657ece01779") (:authors ("Takashi Masuda" . "masutaka.net@gmail.com")) (:maintainer "Takashi Masuda" . "masutaka.net@gmail.com") (:url . "https://github.com/masutaka/emacs-helm-ghq"))]) -(helm-ghc . [(20141105 1459) ((emacs (24)) (cl-lib (0 5)) (helm (1 6 4)) (ghc (5 2 1 0))) "A Helm datasource for ghc-mod errors" single ((:commit . "e5ee7b8d3b745d162553aecfbd41381c4de85f35") (:keywords "languages" "helm") (:authors ("David Raymond Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Raymond Christiansen" . "david@davidchristiansen.dk"))]) -(helm-fuzzy-find . [(20171106 400) ((emacs (24 1)) (helm (1 7 0))) "Find file using Fuzzy Search" single ((:commit . "de2abbf7ca13609587325bacd4a1ed4376b5c927") (:keywords "helm" "fuzzy" "find" "file") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:url . "https://github.com/xuchunyang/helm-fuzzy-find"))]) -(helm-fuzzier . [(20160605 2145) ((emacs (24 3)) (helm (1 7 0))) "Better fuzzy matching for Helm" single ((:commit . "8798dcf3583b863df5b9dea7fe3b0179ba1c35bc") (:keywords "convenience" "helm" "fuzzy") (:authors ("Ephram Perdition")) (:maintainer "Ephram Perdition") (:url . "http://github.com/EphramPerdition/helm-fuzzier"))]) -(helm-frame . [(20170515 1950) ((emacs (24 4))) "open helm buffers in a dedicated frame" single ((:commit . "389e6461a423d649b7062ba99a2234bef7770059") (:keywords "lisp" "helm" "popup" "frame") (:authors ("chee" . "chee@snake.dog")) (:maintainer "chee" . "chee@snake.dog"))]) -(helm-flyspell . [(20170210 1901) ((helm (1 6 5))) "Helm extension for correcting words with flyspell" single ((:commit . "8d4d947c687cb650cb149aa2271ad5201ea92594") (:keywords "convenience") (:authors ("Andrzej Pronobis")) (:maintainer "Andrzej Pronobis") (:url . "https://github.com/pronobis/helm-flyspell"))]) -(helm-flymake . [(20160610 2) ((helm (1 0))) "helm interface for flymake" single ((:commit . "72cf18a1a1f843db9bb5d58301739ea9ccb1655b") (:authors ("Akira Tamamori" . "tamamori5917@gmail.com")) (:maintainer "Akira Tamamori" . "tamamori5917@gmail.com") (:url . "https://github.com/tam17aki"))]) -(helm-flycheck . [(20160710 829) ((dash (2 12 1)) (flycheck (28)) (helm-core (1 9 8))) "Show flycheck errors with helm" single ((:commit . "3cf7d3bb194acacc6395f88360588013d92675d6") (:keywords "helm" "flycheck") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/yasuyk/helm-flycheck"))]) -(helm-flx . [(20180103 516) ((emacs (24 4)) (helm (1 7 9)) (flx (0 5))) "Sort helm candidates by flx score" single ((:commit . "6640fac5cb16bee73c95b8ed1248a4e5e113690e") (:keywords "convenience" "helm" "fuzzy" "flx") (:authors ("PythonNut" . "pythonnut@pythonnut.com")) (:maintainer "PythonNut" . "pythonnut@pythonnut.com") (:url . "https://github.com/PythonNut/helm-flx"))]) -(helm-firefox . [(20161202 1317) ((helm (1 5)) (cl-lib (0 5)) (emacs (24 1))) "Firefox bookmarks" single ((:commit . "0ad34b7b5abc485a86cae6920c14de861cbeb085") (:url . "https://github.com/emacs-helm/helm-firefox"))]) -(helm-filesets . [(20140929 1835) ((helm (1 6 3)) (filesets+ (0))) "A helm source for emacs filesets" single ((:commit . "b352910af4c3099267a8aa0169c7f743b35bb1fa") (:keywords "filesets") (:authors ("Graham Clark" . "grclark@gmail.com")) (:maintainer "Graham Clark" . "grclark@gmail.com") (:url . "https://github.com/gcla/helm-filesets"))]) -(helm-exwm . [(20180827 837) ((emacs (25 2)) (helm (2 8 5)) (exwm (0 15))) "Helm for EXWM buffers" single ((:commit . "e21c6ffabadd2fe8d6c7805b6027cc59a6f914e9") (:keywords "helm" "exwm") (:authors ("Pierre Neidhardt" . "mail@ambrevar.xyz")) (:maintainer "Pierre Neidhardt" . "mail@ambrevar.xyz") (:url . "https://github.com/emacs-helm/helm-exwm"))]) -(helm-ext . [(20180526 350) ((emacs (24 4)) (helm (2 5 3))) "A few extensions to Helm" tar ((:commit . "90b788aced21ec467a234b6b77b5a6ebae6de75f") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com"))]) -(helm-eww . [(20190315 907) ((emacs (24 4)) (helm (2 8 6)) (seq (1 8))) "Helm UI wrapper for EWW." single ((:commit . "76ba59fda8dd6f32a1bc7c6df0b43c6f76169911") (:keywords "helm" "packages") (:authors ("Pierre Neidhardt" . "mail@ambrevar.xyz")) (:maintainer "Pierre Neidhardt" . "mail@ambrevar.xyz") (:url . "https://github.com/emacs-helm/helm-eww"))]) -(helm-etags-plus . [(20170113 1414) ((helm (1 7 8))) "Another Etags helm.el interface" single ((:commit . "704f0991ee4a2298b01c33aafc224eef322e15e3") (:keywords "helm" "etags") (:authors ("纪秀峰(Joseph)" . "jixiuf@gmail.com")) (:maintainer "纪秀峰(Joseph)" . "jixiuf@gmail.com") (:url . "https://github.com/jixiuf/helm-etags-plus"))]) -(helm-esa . [(20190609 1428) ((emacs (26 2)) (helm (3 2)) (request (0 3 0))) "Esa with helm interface" single ((:commit . "134cc1b6e144328ea998a93e348b85ce66f0ee34") (:authors ("Takashi Masuda" . "masutaka.net@gmail.com")) (:maintainer "Takashi Masuda" . "masutaka.net@gmail.com") (:url . "https://github.com/masutaka/emacs-helm-esa"))]) -(helm-emms . [(20190422 1522) ((helm (1 5)) (emms (0 0)) (cl-lib (0 5)) (emacs (24 1))) "Emms for Helm." single ((:commit . "89ec04e6548f16c5848cc49ad506e0561cea87ab") (:url . "https://github.com/emacs-helm/helm-emms"))]) -(helm-emmet . [(20160713 1231) ((helm (1 0)) (emmet-mode (1 0 2))) "helm sources for emmet-mode's snippets" single ((:commit . "f0364e736b10cf44232053a78de04133a88185ae") (:keywords "convenience" "helm" "emmet") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/yasuyk/helm-emmet"))]) -(helm-elscreen . [(20170709 914) ((helm (2 8 0)) (elscreen (0)) (cl-lib (0 5)) (emacs (24 1))) "Elscreen with helm interface" single ((:commit . "b8212866939dc4a1e1dc23ad572407b688e130e3") (:keywords "files" "convenience") (:authors ("Thierry Volpiatto" . "thierry.volpiatto@gmail.com")) (:maintainer "Thierry Volpiatto" . "thierry.volpiatto@gmail.com") (:url . "https://github.com/emacs-helm/helm-elscreen"))]) -(helm-dirset . [(20151209 12) ((f (0 16 2)) (helm (1 6 1)) (s (1 9 0)) (cl-lib (0 5))) "helm sources for multi directories" single ((:commit . "eb30810cd26e1ee73d84a863e6b2667700e9aead") (:keywords "files" "directories") (:authors ("k1LoW (Kenichirou Oyama), <k1lowxb [at] gmail [dot] com> <k1low [at] 101000lab [dot] org>")) (:maintainer "k1LoW (Kenichirou Oyama), <k1lowxb [at] gmail [dot] com> <k1low [at] 101000lab [dot] org>") (:url . "http://101000lab.org"))]) -(helm-dired-recent-dirs . [(20131228 1414) ((helm (1 0))) "Show recent dirs with helm.el support." single ((:commit . "3bcd125b44f5a707588ae3868777d91192351523") (:keywords "helm" "dired" "zsh") (:authors ("Akisute" . "akisute3@gmail.com")) (:maintainer "Akisute" . "akisute3@gmail.com"))]) -(helm-dired-history . [(20170524 1046) ((helm (1 9 8)) (cl-lib (0 5))) "Show dired history with helm.el support." single ((:commit . "281523f9fc46cf00fafd670ba5cd16552a607212") (:keywords "helm" "dired history") (:authors ("Joseph(纪秀峰)" . "jixiuf@gmail.com")) (:maintainer "Joseph(纪秀峰)" . "jixiuf@gmail.com") (:url . "https://github.com/jixiuf/helm-dired-history"))]) -(helm-directory . [(20170706 402) ((emacs (24 4)) (helm (2 0))) "selecting directory before select the file" single ((:commit . "51bd7cd6e40a84a7efda894283ec76a0107830ad") (:authors ("Masashı Mıyaura")) (:maintainer "Masashı Mıyaura") (:url . "https://github.com/masasam/emacs-helm-directory"))]) -(helm-dictionary . [(20160817 2033) ((helm (1 5 5))) "Helm source for looking up dictionaries" single ((:commit . "805ce850d4cbe811227d9c9b16cc51f652198f3f") (:authors ("Titus von der Malsburg" . "malsburg@posteo.de") ("Michael Heerdegen" . "michael_heerdegen@web.de")) (:maintainer "Titus von der Malsburg" . "malsburg@posteo.de") (:url . "https://github.com/emacs-helm/helm-dictionary"))]) -(helm-describe-modes . [(20160212 518) ((helm (1 9)) (cl-lib (0 5)) (emacs (24 1))) "Helm interface to major and minor modes." single ((:commit . "11fb36af119b784539d31c6160002de1957408aa") (:keywords "docs" "convenience") (:authors ("Tianxiang Xiong" . "tianxiang.xiong@gmail.com")) (:maintainer "Tianxiang Xiong" . "tianxiang.xiong@gmail.com") (:url . "https://github.com/emacs-helm/helm-describe-modes"))]) -(helm-descbinds . [(20190501 935) ((helm (1 5))) "A convenient `describe-bindings' with `helm'" single ((:commit . "b72515982396b6e336ad7beb6767e95a80fca192") (:keywords "helm" "help") (:authors ("Taiki SUGAWARA" . "buzz.taiki@gmail.com")) (:maintainer "Taiki SUGAWARA" . "buzz.taiki@gmail.com") (:url . "https://github.com/emacs-helm/helm-descbinds"))]) -(helm-dash . [(20190527 1118) ((emacs (24 4)) (dash-docs (1 4 0)) (helm (1 9 2)) (cl-lib (0 5))) "Offline documentation browser for +150 APIs using Dash docsets." single ((:commit . "6c76c794fec95586028633f24773451812af5df4") (:keywords "docs") (:authors ("Raimon Grau" . "raimonster@gmail.com") ("Toni Reina " . "areina0@gmail.com") ("Bryan Gilbert" . "bryan@bryan.sh")) (:maintainer "Raimon Grau" . "raimonster@gmail.com") (:url . "https://github.com/dash-docs-el/helm-dash"))]) -(helm-ctest . [(20180821 1005) ((s (1 9 0)) (dash (2 11 0)) (helm-core (1 7 4))) "Run ctest from within emacs" single ((:commit . "0c73689692a290f56080e95325c15362e90d529b") (:keywords "helm" "ctest") (:authors ("Dan LaManna" . "me@danlamanna.com")) (:maintainer "Dan LaManna" . "me@danlamanna.com"))]) -(helm-css-scss . [(20140627 25) ((helm (1 0)) (emacs (24))) "CSS/SCSS/LESS Selectors with helm interface" single ((:commit . "ab8348aa98e0daa2f1b771e35bdb06bfacbe5016") (:keywords "scss" "css" "less" "selector" "helm") (:authors ("Shingo Fukuyama - http://fukuyama.co")) (:maintainer "Shingo Fukuyama - http://fukuyama.co") (:url . "https://github.com/ShingoFukuyama/helm-css-scss"))]) -(helm-cscope . [(20190615 41) ((xcscope (1 0)) (helm (1 6 7)) (cl-lib (0 5)) (emacs (24 1))) "Helm interface for xcscope.el." single ((:commit . "af1d9e7f4460a88d7400b5a74d5da68084089ac1") (:keywords "cscope" "helm") (:authors ("alpha22jp" . "alpha22jp@gmail.com")) (:maintainer "alpha22jp" . "alpha22jp@gmail.com") (:url . "https://github.com/alpha22jp/helm-cscope.el"))]) -(helm-core . [(20190602 626) ((emacs (24 4)) (async (1 9 3))) "Development files for Helm" tar ((:commit . "08e6770471d7a6b056aadee4cb2699a8d64a6f13") (:url . "https://emacs-helm.github.io/helm/"))]) -(helm-company . [(20190523 318) ((helm (1 5 9)) (company (0 6 13))) "Helm interface for company-mode" single ((:commit . "6995b79bdfce73e398d0185eba135f1e74cf37c2") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Daniel Ralston" . "Sodel-the-Vociferous@users.noreply.github.com") (:url . "https://github.com/Sodel-the-Vociferous/helm-company"))]) -(helm-commandlinefu . [(20150611 545) ((emacs (24 1)) (helm (1 7 0)) (json (1 3)) (let-alist (1 0 3))) "Search and browse commandlinefu.com from helm" single ((:commit . "9ee7e018c5db23ae9c8d1c8fa969876f15b7280d") (:keywords "commandlinefu.com") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:url . "https://github.com/xuchunyang/helm-commandlinefu"))]) -(helm-codesearch . [(20190412 1153) ((emacs (25 1)) (s (1 11 0)) (dash (2 12 0)) (helm (1 7 7)) (cl-lib (0 5))) "helm interface for codesearch" single ((:commit . "72f1d1de746115ab7e861178b49fa3c0b6b58d90") (:keywords "tools") (:authors ("Youngjoo Lee" . "youngker@gmail.com")) (:maintainer "Youngjoo Lee" . "youngker@gmail.com"))]) -(helm-cmd-t . [(20170125 1459) nil "cmd-t style completion" tar ((:commit . "7fa3d4a9f7271512e54c5de999079b27c9eec6bf") (:keywords "helm" "project-management" "completion" "convenience" "cmd-t" "textmate") (:authors ("Le Wang")) (:maintainer "Le Wang") (:url . "https://github.com/lewang/helm-cmd-t"))]) -(helm-clojuredocs . [(20160405 723) ((edn (1 1 2)) (helm (1 5 7))) "search for help in clojuredocs.org" single ((:commit . "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea") (:keywords "helm" "clojure") (:authors ("Michal Buczko" . "michal.buczko@gmail.com")) (:maintainer "Michal Buczko" . "michal.buczko@gmail.com") (:url . "https://github.com/mbuczko/helm-clojuredocs"))]) -(helm-circe . [(20160207 652) ((emacs (24)) (helm (0 0)) (circe (0 0)) (cl-lib (0 5))) "helm circe buffer management." single ((:commit . "9091651d9fdd8d49d8ff6f9dcf3a2ae416c9f15a") (:keywords "helm" "circe") (:authors ("Les Harris" . "les@lesharris.com")) (:maintainer "Les Harris" . "les@lesharris.com") (:url . "https://github.com/lesharris/helm-circe"))]) -(helm-cider-history . [(20150719 2120) ((helm (1 4 0)) (cider (0 9 0))) "Helm interface for cider history" single ((:commit . "c391fcb2e162a02001605a0b9449783575a831fd") (:keywords "convenience") (:authors ("Andreas Klein" . "git@kungi.org")) (:maintainer "Andreas Klein" . "git@kungi.org") (:url . "https://github.com/Kungi/helm-cider-history"))]) -(helm-cider . [(20180307 458) ((emacs (24 4)) (cider (0 16)) (helm-core (2 8))) "Helm interface to CIDER" tar ((:commit . "9363cc537f06233345aa3af5cd46aa5681ad607b") (:keywords "cider" "clojure" "helm" "languages") (:authors ("Tianxiang Xiong" . "tianxiang.xiong@gmail.com")) (:maintainer "Tianxiang Xiong" . "tianxiang.xiong@gmail.com") (:url . "https://github.com/clojure-emacs/helm-cider"))]) -(helm-chronos . [(20150528 2036) ((chronos (1 2)) (helm (1 7 1))) "helm interface for chronos timers" tar ((:commit . "a14fc3d65dd96ce6616234b3f7b8b08b4c1817ef") (:keywords "calendar") (:authors ("David Knight" . "dxknight@opmbx.org")) (:maintainer "David Knight" . "dxknight@opmbx.org") (:url . "http://github.com/dxknight/helm-chronos"))]) -(helm-chrome . [(20160719 520) ((helm (1 5)) (cl-lib (0 3)) (emacs (24))) "Helm interface for Chrome bookmarks" single ((:commit . "fd630ace4b4b4f33355a973743bbfe0c90ce4830") (:keywords "tools") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "https://github.com/kawabata/helm-chrome"))]) -(helm-charinfo . [(20170810 1231) ((emacs (24)) (helm (1 7 0)) (cl-lib (0 5))) "A helm source for character information" single ((:commit . "91798a49dc115342a7e01e48b264e9a0bf5ea414") (:keywords "convenience") (:authors ("Christian Wittern" . "cwittern@gmail.com")) (:maintainer "Christian Wittern" . "cwittern@gmail.com") (:url . "https://github.com/cwittern/helm-charinfo"))]) -(helm-catkin . [(20190425 1520) ((emacs (24 3)) (helm (0)) (xterm-color (0))) "Package for compile ROS workspaces with catkin-tools" single ((:commit . "d33c71cecd35616dfa7c3b81d8f51c128405977f") (:keywords "catkin" "helm" "build" "tools" "ros") (:authors ("Thore Goll" . "thoregoll@googlemail.com")) (:maintainer "Thore Goll" . "thoregoll@googlemail.com") (:url . "https://github.com/gollth/helm-catkin"))]) -(helm-c-yasnippet . [(20170128 1542) ((helm (1 7 7)) (yasnippet (0 8 0)) (cl-lib (0 3))) "helm source for yasnippet.el" single ((:commit . "65ca732b510bfc31636708aebcfe4d2d845b59b0") (:keywords "convenience" "emulation") (:authors ("Kenji.I (Kenji Imakado)" . "ken.imakaado@gmail.com")) (:maintainer "Kenji.I (Kenji Imakado)" . "ken.imakaado@gmail.com"))]) -(helm-c-moccur . [(20151230 924) ((helm (20120811)) (color-moccur (2 71))) "helm source for color-moccur.el" single ((:commit . "b0a906f85fa352db091f88b91a9c510de607dfe9") (:keywords "convenience" "emulation") (:authors ("Kenji.I (Kenji Imakado)" . "ken.imakaado@gmail.com")) (:maintainer "Kenji.I (Kenji Imakado)" . "ken.imakaado@gmail.com"))]) -(helm-bundle-show . [(20190526 1401) ((emacs (24)) (helm (1 8 0))) "Bundle show with helm interface" single ((:commit . "70f1ca7d1847c7d5cd5a3e488562cd4a295b809f") (:authors ("Takashi Masuda" . "masutaka.net@gmail.com")) (:maintainer "Takashi Masuda" . "masutaka.net@gmail.com") (:url . "https://github.com/masutaka/emacs-helm-bundle-show"))]) -(helm-books . [(20170325 631) ((helm (1 7 7))) "Helm interface for searching books" single ((:commit . "625aadec1541a5ca36951e4ce1301f4b6fe2bf3f") (:authors ("grugrut" . "grugruglut+github@gmail.com")) (:maintainer "grugrut" . "grugruglut+github@gmail.com") (:url . "https://github.com/grugrut/helm-books"))]) -(helm-bm . [(20160321 1331) ((bm (1 0)) (cl-lib (0 5)) (helm (1 9 3)) (s (1 11 0))) "helm sources for bm.el" single ((:commit . "d66341f5646c23178d4d8bffb6cfebe3fb73f1d7") (:keywords "helm" "bookmark") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/yasuyk/helm-bm"))]) -(helm-bitbucket . [(20190422 1102) ((emacs (24)) (helm-core (3 0))) "Search Bitbucket with Helm" single ((:commit . "632495036c4a6ac30e408fc74ee9f209fd5ac429") (:keywords "matching") (:authors ("Peter Urbak" . "tolowercase@gmail.com")) (:maintainer "Peter Urbak" . "tolowercase@gmail.com") (:url . "https://github.com/dragonwasrobot/helm-bitbucket"))]) -(helm-bind-key . [(20141109 515) ((bind-key (1 0)) (helm (1 6 4))) "helm-source for for bind-key." single ((:commit . "9da6ad8b7530e72fb4ac67be8c6a482898dddc25") (:keywords "convenience" "emulation") (:authors ("Yuhei Maeda <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe"))]) -(helm-bibtexkey . [(20140214 1504) ((helm (1 5 8))) "Bibtexkey source for helm" tar ((:commit . "aa1637ea5c8c5f1817e480fc2a3750cafab3d99f") (:keywords "bib" "tex") (:authors ("TAKAGI Kentaro <kentaro0910_at_gmail.com>")) (:maintainer "TAKAGI Kentaro <kentaro0910_at_gmail.com>") (:url . "https://github.com/kenbeese/helm-bibtexkey"))]) -(helm-bibtex . [(20190430 1818) ((helm (1 5 5)) (parsebib (1 0)) (s (1 9 0)) (dash (2 6 0)) (f (0 16 2)) (cl-lib (0 5)) (biblio (0 2))) "A bibliography manager based on Helm" tar ((:commit . "e1391a4be629b506f06d678bcdfd17d290904482") (:authors ("Titus von der Malsburg" . "malsburg@posteo.de")) (:maintainer "Titus von der Malsburg" . "malsburg@posteo.de"))]) -(helm-bbdb . [(20180505 1508) ((helm (1 5)) (bbdb (3 1 2))) "Helm interface for bbdb" single ((:commit . "db286b0ee0ea18142f7d005e465832bb755bb0cb") (:url . "https://github.com/emacs-helm/helm-bbdb"))]) -(helm-backup . [(20180911 614) ((helm (1 5 5)) (s (1 8 0)) (cl-lib (0))) "Backup each file change using git" single ((:commit . "691fe542f38fc7c8cca409997f6a0ff5d76ad6c2") (:keywords "backup" "convenience" "files" "tools" "vc") (:authors ("Anthony HAMON" . "hamon.anth@gmail.com")) (:maintainer "Anthony HAMON" . "hamon.anth@gmail.com") (:url . "http://github.com/antham/helm-backup"))]) -(helm-aws . [(20180514 1032) ((helm (1 5 3)) (cl-lib (0 5)) (s (1 9 0))) "Manage AWS EC2 server instances directly from Emacs" single ((:commit . "b36c744b3f00f458635a91d1f5158fccbb5baef6") (:authors ("istib")) (:maintainer "istib") (:url . "https://github.com/istib/helm-aws"))]) -(helm-ag-r . [(20131123 1531) ((helm (1 0))) "Search something by ag and display by helm" single ((:commit . "67de4ebafe9b088db950eefa5ef590a6d78b4ac8") (:keywords "searching") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:url . "https://github.com/yuutayamada/helm-ag-r"))]) -(helm-ag . [(20170209 1545) ((emacs (24 4)) (helm (2 0))) "the silver searcher with helm interface" single ((:commit . "2fc02c4ead29bf0db06fd70740cc7c364cb650ac") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-helm-ag"))]) -(helm-addressbook . [(20170903 728) ((helm (2 8 2)) (addressbook-bookmark (1 0)) (cl-lib (0 5)) (emacs (24 4))) "Helm for addressbook bookmarks." single ((:commit . "62497f72d46afd3a9f9f94b27d062a82fb232de4") (:url . "https://github.com/emacs-helm/helm-addressbook"))]) -(helm-ad . [(20151209 1015) ((dash (2 8 0)) (helm (1 6 2))) "helm source for Active Directory" single ((:commit . "8ac044705d8620ee354a9cfa8cc1b865e83c0d55") (:keywords "comm") (:authors ("Takahiro Noda" . "takahiro.noda+github@gmail.com")) (:maintainer "Takahiro Noda" . "takahiro.noda+github@gmail.com"))]) -(helm-ack . [(20141030 1226) ((helm (1 0)) (cl-lib (0 5))) "Ack command with helm interface" single ((:commit . "889bc225318d14c6e3be80e73b1d9d6fb30e48c3") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-helm-ack"))]) -(helm-R . [(20120820 14) ((helm (20120517)) (ess (20120509))) "helm-sources and some utilities for GNU R." single ((:commit . "b0eb9d5f6a483a9dbe6eb6cf1f2024d4f5938bc2") (:keywords "convenience") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/helm-R.el"))]) -(helm . [(20190612 713) ((emacs (24 4)) (async (1 9 3)) (popup (0 5 3)) (helm-core (3 0))) "Helm is an Emacs incremental and narrowing framework" tar ((:commit . "08e6770471d7a6b056aadee4cb2699a8d64a6f13") (:url . "https://emacs-helm.github.io/helm/"))]) -(heaven-and-hell . [(20180421 921) ((emacs (24 4))) "easy toggle light/dark themes" single ((:commit . "0e4191065a1c18b50734a437f3cafb629b89edc0") (:keywords "faces") (:authors ("Valentin Ignatev" . "valentignatev@gmail.com")) (:maintainer "Valentin Ignatev" . "valentignatev@gmail.com") (:url . "https://github.com/valignatev/heaven-and-hell"))]) -(headlong . [(20150417 1526) nil "reckless completion" single ((:commit . "f6830f87f236eee88263cb6976125f72422abe72") (:keywords "completion") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/headlong"))]) -(hcl-mode . [(20170107 827) ((emacs (24 3))) "Major mode for Hashicorp" single ((:commit . "0f2c5ec7e7bcf77c8548e8cac8721ea935ca1b5e") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-hcl-mode"))]) -(hc-zenburn-theme . [(20150928 1633) nil "An higher contrast version of the Zenburn theme." single ((:commit . "fd0024a5191cdce204d91c8f1db99ba31640f6e9") (:authors ("Nantas Nardelli" . "nantas.nardelli@gmail.com")) (:maintainer "Nantas Nardelli" . "nantas.nardelli@gmail.com") (:url . "https:github.com/edran/hc-zenburn-emacs"))]) -(hayoo . [(20140831 1221) ((emacs (24)) (json (1 3))) "Query hayoo and show results in a tabulated buffer." single ((:commit . "3ca2fb0c4d5f337d0410c21b2702dd147014e984") (:keywords "hayoo" "haskell") (:authors ("Marko Bencun" . "mbencun@gmail.com")) (:maintainer "Marko Bencun" . "mbencun@gmail.com") (:url . "https://github.com/benma/hayoo.el/"))]) -(haxor-mode . [(20160618 1129) ((emacs (24 0))) "Major mode for editing Haxor Assembly Files" single ((:commit . "6fa25a8e6b6a59481bc0354c2fe1e0ed53cbdc91") (:keywords "haxor") (:authors ("Krzysztof Magosa" . "krzysztof@magosa.pl")) (:maintainer "Krzysztof Magosa" . "krzysztof@magosa.pl") (:url . "https://github.com/krzysztof-magosa/haxor-mode"))]) -(haxe-mode . [(20131004 842) nil "An Emacs major mode for Haxe" single ((:commit . "850f29d9f70ec04f30e2ad848921333e0441e829") (:authors ("Jens Peter Secher")) (:maintainer "Jens Peter Secher") (:url . "http://people.debian.org/~jps/misc/haxe-mode.el"))]) -(haxe-imports . [(20170330 2304) ((emacs (24 4)) (s (1 10 0)) (pcache (0 3 1))) "Code for dealing with Haxe imports" single ((:commit . "f104a641f3dfe698359d9aca1f28d9383cf43e04") (:keywords "haxe") (:authors ("Juan Karlo Licudine" . "karlo@accidentalrebel.com")) (:maintainer "Juan Karlo Licudine" . "karlo@accidentalrebel.com") (:url . "http://www.github.com/accidentalrebel/emacs-haxe-imports"))]) -(haste . [(20141030 2034) ((json (1 2))) "Emacs client for hastebin (http://hastebin.com/about.md)" single ((:commit . "22d05aacc3296ab50a7361222ab139fb4d447c25") (:authors ("Ric Lister")) (:maintainer "Ric Lister") (:url . "http://github.com/rlister/emacs-haste-client"))]) -(hasky-stack . [(20190304 2248) ((emacs (24 4)) (f (0 18 0)) (magit-popup (2 10))) "Interface to the Stack Haskell development tool" single ((:commit . "a3176aece9a9ab0a36ae795965f83f4c1fa243bf") (:keywords "tools" "haskell") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/hasky-mode/hasky-stack"))]) -(hasky-extensions . [(20190204 2016) ((emacs (24 4)) (avy-menu (0 2))) "Toggle Haskell language extensions" single ((:commit . "eb1437f815bd93946ecf707e8d24dc704c273586") (:keywords "programming") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/hasky-mode/hasky-extensions"))]) -(hasklig-mode . [(20181110 1859) ((emacs (25))) "Hasklig ligatures" single ((:commit . "386c098c93a744f6b30ad937d193eebf0fd79e1b") (:authors ("Daniel Mendler")) (:maintainer "Daniel Mendler") (:url . "https://github.com/minad/hasklig-mode"))]) -(haskell-tab-indent . [(20170701 958) nil "tab-based indentation for haskell-mode" single ((:commit . "b921c076c10ba996bcfb3b38654363d30567bfa5") (:keywords "indentation" "haskell") (:authors ("Sean Whitton" . "spwhitton@spwhitton.name")) (:maintainer "Sean Whitton" . "spwhitton@spwhitton.name") (:url . "https://spwhitton.name/tech/code/haskell-tab-indent/"))]) -(haskell-snippets . [(20160919 22) ((cl-lib (0 5)) (yasnippet (0 8 0))) "Yasnippets for Haskell" tar ((:commit . "07b0f460b946fd1be26c29652cb0468b47782f3a") (:keywords "snippets" "haskell") (:authors ("Luke Hoersten" . "luke@hoersten.org")) (:maintainer "Luke Hoersten" . "luke@hoersten.org") (:url . "https://github.com/haskell/haskell-snippets"))]) -(haskell-mode . [(20190606 2028) ((emacs (24 3))) "A Haskell editing mode" tar ((:commit . "5c69e571fa769148c2bc40905915f3a0526b4fe0") (:keywords "haskell" "cabal" "ghc" "repl") (:url . "https://github.com/haskell/haskell-mode"))]) -(haskell-emacs-text . [(20150713 1416) ((haskell-emacs (2 4 0))) "Haskell functions from Data.Text" tar ((:commit . "a2c6a079175904689eed7c6c200754bfa85d1ed9") (:keywords "haskell" "emacs" "ffi") (:authors ("Florian Knupfer")) (:maintainer "Florian Knupfer") (:url . "https://github.com/knupfer/haskell-emacs/modules/text"))]) -(haskell-emacs-base . [(20150714 1559) ((haskell-emacs (2 4 0))) "Haskell functions from Prelude" tar ((:commit . "a2c6a079175904689eed7c6c200754bfa85d1ed9") (:keywords "haskell" "emacs" "ffi") (:authors ("Florian Knupfer")) (:maintainer "Florian Knupfer") (:url . "https://github.com/knupfer/haskell-emacs/modules/base"))]) -(haskell-emacs . [(20160904 2026) nil "Write emacs extensions in haskell" tar ((:commit . "a2c6a079175904689eed7c6c200754bfa85d1ed9") (:keywords "haskell" "emacs" "ffi") (:authors ("Florian Knupfer")) (:maintainer "Florian Knupfer") (:url . "https://github.com/knupfer/haskell-emacs"))]) -(harvest . [(20170822 1746) ((swiper (0 7 0)) (hydra (0 13 0)) (s (1 11 0))) "Harvest integration" single ((:commit . "7acbc0564b250521b67131ee2a0a92720239454f") (:keywords "harvest") (:authors ("Kosta Harlan" . "kosta@kostaharlan.net")) (:maintainer "Kosta Harlan" . "kosta@kostaharlan.net") (:url . "https://github.com/kostajh/harvest.el"))]) -(hardhat . [(20160414 1413) ((ignoramus (0 7 0))) "Protect against clobbering user-writable files" single ((:commit . "9038a49ab55cd4c502cf7f07ed0d1b9b6bc3626e") (:keywords "convenience") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/hardhat"))]) -(hardcore-mode . [(20151114 701) nil "Disable arrow keys + optionally backspace and return" single ((:commit . "b1dda19692b4a7a58a689e81784a9b35be39e70d") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(handoff . [(20150917 600) nil "Get your hand off that mouse, damn it!" single ((:commit . "75dc7a7e352f38679f65d0ca80ad158798e168bd") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/handoff.el"))]) -(handlebars-sgml-mode . [(20130623 2333) nil "Add Handlebars contextual indenting support to sgml-mode" single ((:commit . "c76df93a9a8c1b1b3efdcc4add32bf93304192a4") (:authors ("Geoff Jacobsen" . "geoffjacobsen@gmail.com")) (:maintainer "Geoff Jacobsen" . "geoffjacobsen@gmail.com") (:url . "http://github.com/jacott/handlebars-sgml-mode"))]) -(handlebars-mode . [(20150211 1749) nil "A major mode for editing Handlebars files." single ((:commit . "81f6b73fea8f397807781a1b51568397af21a6ef") (:authors ("Tony Gentilcore") ("Chris Wanstrath") ("Daniel Hackney") ("Daniel Evans")) (:maintainer "Tony Gentilcore"))]) -(hamlet-mode . [(20131208 724) ((cl-lib (0 3)) (dash (2 3 0)) (s (1 7 0))) "Hamlet editing mode" single ((:commit . "7362b955e556a3d007fa06945a27e5b99349527d") (:keywords "wp" "languages" "comm") (:authors (nil . "Kata <lightquake@amateurtopologist.com")) (:maintainer nil . "Kata <lightquake@amateurtopologist.com") (:url . "https://github.com/lightquake/hamlet-mode"))]) -(haml-mode . [(20190219 2102) ((emacs (24)) (cl-lib (0 5))) "Major mode for editing Haml files" single ((:commit . "bf5b6c11b1206759d2b28af48765e04882dd1fc4") (:keywords "markup" "languages" "html") (:authors ("Natalie Weizenbaum")) (:maintainer "Natalie Weizenbaum") (:url . "https://github.com/nex3/haml-mode"))]) -(hamburger-menu . [(20160825 2031) ((emacs (24 5))) "Mode line hamburger menu" single ((:commit . "3568159c693c30bed7f61580e4f3b6241253ad4e") (:keywords "hamburger" "menu") (:authors ("Iain Nicol")) (:maintainer "Iain Nicol") (:url . "https://gitlab.com/iain/hamburger-menu-mode"))]) -(hamburg-theme . [(20160123 740) ((emacs (24))) "Color Theme with a dark blue background." single ((:commit . "aacefdf1501d97a5afc0e63c8ead4b2463323028") (:authors ("Martin Haesler")) (:maintainer "Martin Haesler"))]) -(ham-mode . [(20150811 1306) ((html-to-markdown (1 2)) (markdown-mode (2 0))) "Html As Markdown. Transparently edit an html file using markdown" single ((:commit . "3a141986a21c2aa6eefb428983352abb8b7907d2") (:keywords "convenience" "emulation" "wp") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com") (:url . "http://github.com/Bruce-Connor/ham-mode"))]) -(hal-mode . [(20160704 1746) nil "Major mode for editing HAL files" single ((:commit . "cd2f66f219ee520198d4586fb6b169cef7ad3f21") (:keywords "language") (:authors ("Alexander Rössler")) (:maintainer "Alexander Rössler") (:url . "https://github.com/strahlex/hal-mode/"))]) -(hackernews . [(20190529 1120) nil "Hacker News Client for Emacs" single ((:commit . "2362d7b00e59da7caddc8c0adc24dccb42fddef9") (:keywords "comm" "hypermedia" "news") (:authors ("Lincoln de Sousa" . "lincoln@comum.org")) (:maintainer "Basil L. Contovounesios" . "contovob@tcd.ie") (:url . "https://github.com/clarete/hackernews.el"))]) -(hacker-typer . [(20170206 1520) ((emacs (24))) "Pretend to write code like a pro" tar ((:commit . "d5a23714a4ccc5071580622f278597d5973f40bd") (:keywords "hacker" "typer" "multimedia" "games") (:authors ("Diego A. Mundo" . "diegoamundo@gmail.com")) (:maintainer "Diego A. Mundo" . "diegoamundo@gmail.com") (:url . "http://github.com/therockmandolinist/emacs-hacker-typer"))]) -(hack-time-mode . [(20190529 855) ((emacs (24 4))) "Forge time" single ((:commit . "df8e86ab04beb655bf5b3860f8bea41cf1fbc3eb") (:keywords "time" "convenience") (:authors ("Marco Wahl" . "marcowahlsoft@gmail.com")) (:maintainer "Marco Wahl" . "marcowahlsoft@gmail.com") (:url . "https://gitlab.com/marcowahl/hack-time-mode"))]) -(hack-mode . [(20190617 1549) ((emacs (25 1)) (s (1 11 0))) "Major mode for the Hack programming language" single ((:commit . "69cb4cc68a362d7c43080df66f33849d7908d08e") (:authors ("John Allen <jallen@fb.com>, Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "John Allen <jallen@fb.com>, Wilfred Hughes" . "me@wilfred.me.uk") (:url . "https://github.com/hhvm/hack-mode"))]) -(habitica . [(20190402 421) ((org (8 3 5)) (emacs (24 3))) "Interface for habitica.com" single ((:commit . "4f708d0fc0564fa3b624452b9f24ba4a6eeae181") (:keywords "habitica" "todo") (:authors ("Adrien Brochard")) (:maintainer "Adrien Brochard") (:url . "https://github.com/abrochard/emacs-habitica"))]) -(habamax-theme . [(20181001 850) ((emacs (24))) "Boring white background color that gets the job done." single ((:commit . "6e86a1b23b6e2aaf40d4374b5673da00a28be447") (:authors ("Maxim Kim" . "habamax@gmail.com")) (:maintainer "Maxim Kim" . "habamax@gmail.com") (:url . "https://github.com/habamax/habamax-theme"))]) -(gxref . [(20170411 1753) ((emacs (25))) "xref backend using GNU Global." single ((:commit . "380b02c3c3c2586c828456716eef6a6392bb043b") (:keywords "xref" "global" "tools") (:authors ("Dedi Hirschfeld")) (:maintainer "Dedi Hirschfeld") (:url . "https://github.com/dedi/gxref"))]) -(gvpr-mode . [(20131208 1718) nil "A major mode offering basic syntax coloring for gvpr scripts." single ((:commit . "3d6cc6f4416faf2a1913821d12ba6eb624362af0") (:keywords "graphviz" "gv" "dot" "gvpr" "graph") (:authors ("Rod Waldhoff" . "r.waldhoff@gmail.com")) (:maintainer "Rod Waldhoff" . "r.waldhoff@gmail.com") (:url . "https://raw.github.com/rodw/gvpr-lib/master/extra/gvpr-mode.el"))]) -(gvariant . [(20190513 1005) ((emacs (24)) (parsec (0 1 3))) "GVariant (GLib) helpers" single ((:commit . "b162867c03ead58784c47996ae329355ecea2869") (:keywords "languages") (:authors ("wouter bolsterlee" . "wouter@bolsterl.ee")) (:maintainer "wouter bolsterlee" . "wouter@bolsterl.ee") (:url . "https://github.com/wbolster/emacs-gvariant"))]) -(guru-mode . [(20170730 731) nil "Become an Emacs guru" single ((:commit . "c180e05ebc1484764aad245c85b69de779826e4e") (:keywords "convenience") (:authors ("Bozhidar Batsov")) (:maintainer "Bozhidar Batsov") (:url . "https://github.com/bbatsov/guru-mode"))]) -(gulp-task-runner . [(20170718 2041) nil "Gulp task runner" single ((:commit . "877990e956b1d71e2d9c7c3e5a129ad199b9debb") (:keywords "convenience" "javascript") (:authors ("Nicolas Petton" . "nicolas@petton.fr")) (:maintainer "Nicolas Petton" . "nicolas@petton.fr"))]) -(guix . [(20190507 1711) ((emacs (24 3)) (dash (2 11 0)) (geiser (0 8)) (bui (1 2 0)) (magit-popup (2 1 0)) (edit-indirect (0 1 4))) "Interface for GNU Guix" tar ((:commit . "11e0dbf6491300d250efb3dc09d634b01e86b35b") (:keywords "tools") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://emacs-guix.gitlab.io/website/"))]) -(guide-key-tip . [(20161011 823) ((guide-key (1 2 3)) (pos-tip (0 4 5))) "Show guide-key.el hints using pos-tip.el" single ((:commit . "02c5d4b0b65f3e91be5a47f0ff1ae5e86e00c64e") (:keywords "help" "convenience" "tooltip") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/guide-key-tip"))]) -(guide-key . [(20150108 635) ((dash (2 10 0)) (popwin (0 3 0)) (s (1 9 0))) "Guide the following key bindings automatically and dynamically" single ((:commit . "8f8b839f42edd53af13d588254f07727108ae312") (:keywords "help" "convenience") (:authors ("Tsunenobu Kai" . "kai2nenobu@gmail.com")) (:maintainer "Tsunenobu Kai" . "kai2nenobu@gmail.com") (:url . "https://github.com/kai2nenobu/guide-key"))]) -(guess-language . [(20190325 1436) ((cl-lib (0 5)) (emacs (24))) "Robust automatic language detection" tar ((:commit . "e64d88f287a547198e4c96e2fff543e103f2b456") (:authors ("Titus von der Malsburg" . "malsburg@posteo.de")) (:maintainer "Titus von der Malsburg" . "malsburg@posteo.de") (:url . "https://github.com/tmalsburg/guess-language.el"))]) -(gtk-pomodoro-indicator . [(20171230 1640) nil "A pomodoro indicator for the GTK tray" tar ((:commit . "eb59b229de0dde307b20654075a9bbac69899a66") (:keywords "convenience" "pomodoro") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/gtk-pomodoro-indicator"))]) -(gsettings . [(20190513 1003) ((emacs (24 3)) (dash (2 16 0)) (gvariant (1 0 0)) (s (1 12 0))) "GSettings (Gnome) helpers" single ((:commit . "3009335a077636347defd08d24fb092495d16d3e") (:keywords "languages") (:authors ("wouter bolsterlee" . "wouter@bolsterl.ee")) (:maintainer "wouter bolsterlee" . "wouter@bolsterl.ee") (:url . "https://github.com/wbolster/emacs-gsettings"))]) -(gscholar-bibtex . [(20190130 555) nil "Retrieve BibTeX from Google Scholar and other online sources(ACM, IEEE, DBLP)" single ((:commit . "3b651e3de116860eb1f1aef9b547a561784871fe") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com"))]) -(gs-mode . [(20151202 1006) nil "Major mode for editing GrADS script files" single ((:commit . "1a13051db21b999c7682a015b33a03096ff9d891") (:keywords "grads" "script" "major-mode") (:authors ("Joe Wielgosz" . "joew@cola.iges.org")) (:maintainer "Joe Wielgosz" . "joew@cola.iges.org"))]) -(gruvbox-theme . [(20190425 622) ((autothemer (0 2))) "A retro-groove colour theme for Emacs" tar ((:commit . "69a6ddf6c7e8c84174b94900ba71ddd08ec0237f") (:authors ("Jason Milkins" . "jasonm23@gmail.com")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com") (:url . "http://github.com/greduan/emacs-theme-gruvbox"))]) -(grunt . [(20160316 1528) ((dash (2 9 0)) (ansi-color (3 4 2)) (emacs (24 3))) "Some glue to stick Emacs and Gruntfiles together" single ((:commit . "4c269e2738658643ec2ed9ef61a2a3d71b08d304") (:keywords "convenience" "grunt") (:authors ("Daniel Gempesaw" . "dgempesaw@sharecare.com")) (:maintainer "Daniel Gempesaw" . "dgempesaw@sharecare.com") (:url . "https://github.com/gempesaw/grunt.el"))]) -(gruber-darker-theme . [(20180529 712) nil "Gruber Darker color theme for Emacs 24." single ((:commit . "c7687ec0511941db1371dcd70b31061d74aa5668") (:authors ("Alexey Kutepov" . "reximkut@gmail.com")) (:maintainer "Alexey Kutepov" . "reximkut@gmail.com") (:url . "http://github.com/rexim/gruber-darker-theme"))]) -(groovy-mode . [(20190407 2314) ((s (1 12 0)) (emacs (24 3)) (dash (2 13 0))) "Major mode for Groovy source files" tar ((:commit . "aa531c659758b896ff8fbd307080ce0d1d04ebfb") (:keywords "languages") (:authors ("Russel Winder" . "russel@winder.org.uk") ("Jim Morris" . "morris@wolfman.com") ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Russel Winder" . "russel@winder.org.uk"))]) -(groovy-imports . [(20161003 851) ((emacs (24 4)) (s (1 10 0)) (pcache (0 3 2))) "Code for dealing with Groovy imports" single ((:commit . "e56d7dda617555ec6205644d32ffddf2e1fa43d9") (:keywords "groovy") (:authors ("Miro Bezjak")) (:maintainer "Miro Bezjak") (:url . "http://www.github.com/mbezjak/emacs-groovy-imports"))]) -(grizzl . [(20160818 737) ((cl-lib (0 5)) (emacs (24 3))) "Fast fuzzy search index for Emacs." single ((:commit . "1e917253ce2b846f0272b8356fad3dbff9cd513a") (:keywords "convenience" "usability") (:authors ("Chris Corbyn" . "chris@w3style.co.uk")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.com") (:url . "https://github.com/grizzl/grizzl"))]) -(grin . [(20110806 658) nil "run grin and grind (python replacements for grep and find) putting hits in a grep buffer" single ((:commit . "f541aa22da52b8ff2f7af79bc5e4b58b9f5db8be") (:keywords "python" "grin" "grind" "grep" "find") (:authors ("Darius Powell" . "dariusp686@gmail.com")) (:maintainer "Darius Powell" . "dariusp686@gmail.com") (:url . "http://bitbucket.org/dariusp686/emacs-grin"))]) -(greymatters-theme . [(20150621 1123) ((emacs (24))) "Emacs 24 theme with a light background." single ((:commit . "a7220a8c6cf18ccae2b76946b6f01188a7c9d5d1") (:authors ("Martin Haesler")) (:maintainer "Martin Haesler"))]) -(grep-context . [(20181002 1654) ((emacs (24 4)) (dash (2 12 0)) (cl-lib (0 5 0))) "Increase context in compilation and grep buffers" single ((:commit . "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d") (:keywords "convenience" "search" "grep" "compile") (:authors ("MichaÅ‚ Krzywkowski" . "k.michal@zoho.com")) (:maintainer "MichaÅ‚ Krzywkowski" . "k.michal@zoho.com") (:url . "https://github.com/mkcms/grep-context"))]) -(grep-a-lot . [(20131006 1347) nil "manages multiple search results buffers for grep.el" single ((:commit . "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad") (:keywords "tools" "convenience" "search") (:authors ("Avi Rozen" . "avi.rozen@gmail.com")) (:maintainer "Avi Rozen" . "avi.rozen@gmail.com") (:url . "https://github.com/ZungBang/emacs-grep-a-lot"))]) -(gregorio-mode . [(20170705 1451) nil "Gregorio Mode for .gabc files" single ((:commit . "736fd3d05fb67f707cca1a7ce24e3ee7ca5e9567") (:keywords "gregorio" "chant") (:authors ("Fr. John Jenkins" . "jenkins@sspx.ng")) (:maintainer "Fr. John Jenkins" . "jenkins@sspx.ng") (:url . "https://jsrjenkins.github.io/gregorio-mode/"))]) -(green-screen-theme . [(20180816 1502) nil "A nice color theme for those who miss green CRTs" single ((:commit . "774e8f6c033786406267f71ec07319d906a30b75") (:keywords "faces" "theme") (:authors ("Ricardo Banffy" . "rbanffy@gmail.com")) (:maintainer "Ricardo Banffy" . "rbanffy@gmail.com") (:url . "https://github.com/rbanffy/green-screen-emacs"))]) -(green-phosphor-theme . [(20150515 1447) nil "A light color theme with muted, autumnal colors." single ((:commit . "fa42f598626adfdc5450e5c380fa2d5df6110f28") (:keywords "color" "theme") (:authors ("Adam Alpern" . "adam.alpern@gmail.com")) (:maintainer "Adam Alpern" . "adam.alpern@gmail.com") (:url . "http://github.com/aalpern/emacs-color-theme-green-phosphor"))]) -(green-is-the-new-black-theme . [(20190313 1905) nil "A cool and minimalist green blackened theme engine" single ((:commit . "65a2b7e7cc6497fbc851319225842a1624bfecc5") (:keywords "faces" "themes") (:authors ("Fred Campos" . "fred.tecnologia@gmail.com")) (:maintainer "Fred Campos" . "fred.tecnologia@gmail.com") (:url . "https://github.com/fredcamps/green-is-the-new-black-emacs"))]) -(greek-polytonic . [(20190303 1358) ((emacs (24))) "Quail package for inputting polytonic Greek" single ((:commit . "114cba0f57cc077871693c799b807df2292341ec") (:keywords "i18n" "multilingual" "input method" "greek") (:authors ("Johannes Choo" . "jhanschoo@gmail.com")) (:maintainer "Johannes Choo" . "jhanschoo@gmail.com") (:url . "https://github.com/jhanschoo/greek-polytonic"))]) -(grayscale-theme . [(20171005 802) nil "A simple grayscale theme" single ((:commit . "53ad50e10e68f2f076ebfc96e10ecef7a932d38d") (:keywords "lisp") (:authors ("Kaleb Elwert" . "belak@coded.io")) (:maintainer "Kaleb Elwert" . "belak@coded.io") (:url . "https://github.com/belak/emacs-grayscale-theme"))]) -(grass-mode . [(20170503 1500) ((cl-lib (0 2)) (dash (2 8 0))) "Provides Emacs modes for interacting with the GRASS GIS program" single ((:commit . "1ae8eae881173ddff64982d1fd0e14d4e7793fc1") (:keywords "grass" "gis") (:authors ("Tyler Smith" . "tyler@plantarum.ca")) (:maintainer "Tyler Smith" . "tyler@plantarum.ca"))]) -(grapnel . [(20131001 1534) nil "HTTP request lib with flexible callback dispatch" single ((:commit . "fbd0f9a51139973d35e4014855964fa435e8ecaf") (:authors ("David Leatherman" . "leathekd@gmail.com")) (:maintainer "David Leatherman" . "leathekd@gmail.com") (:url . "http://www.github.com/leathekd/grapnel"))]) -(graphviz-dot-mode . [(20181118 551) nil "Mode for the dot-language used by graphviz (att)." single ((:commit . "243de72e09ddd5cdc4863613af8b749827a5e1cd") (:keywords "mode" "dot" "dot-language" "dotlanguage" "graphviz" "graphs" "att") (:maintainer "Pieter Pareit" . "pieter.pareit@gmail.com") (:url . "http://ppareit.github.com/graphviz-dot-mode/"))]) -(graphql-mode . [(20190607 810) ((emacs (24 3))) "Major mode for editing GraphQL schemas" single ((:commit . "09669d4343bae77c7cc0fb40c2845699feb8d009") (:keywords "languages") (:authors ("David Vazquez Pua" . "davazp@gmail.com")) (:maintainer "David Vazquez Pua" . "davazp@gmail.com"))]) -(graphql . [(20180912 31) ((emacs (25))) "GraphQL utilities" single ((:commit . "e2b309689f4faf9225f290080f836e988c5a576d") (:keywords "hypermedia" "tools" "lisp") (:authors ("Sean Allred" . "code@seanallred.com")) (:maintainer "Sean Allred" . "code@seanallred.com") (:url . "https://github.com/vermiculus/graphql.el"))]) -(graphene-meta-theme . [(20161204 1607) nil "Integrated theming for common packages" single ((:commit . "62cc73fee31f1bd9474027b83a249feee050271e") (:keywords "defaults") (:authors ("Robert Dallas Gray" . "mail@robertdallasgray.com")) (:maintainer "Robert Dallas Gray" . "mail@robertdallasgray.com") (:url . "https://github.com/rdallasgray/graphene"))]) -(graphene . [(20180529 1112) ((dash (2 10 0)) (exec-path-from-shell (1 9)) (ppd-sr-speedbar (0 0 6)) (sr-speedbar (20140505)) (ido-completing-read+ (4 3)) (smex (3 0)) (web-mode (11 2)) (smartparens (1 8 0)) (graphene-meta-theme (0 0 2)) (flycheck (0 23)) (company (0 8 12))) "Friendly Emacs defaults" tar ((:commit . "cc8477fcfb7771ea4e5bbaf3c01f9e679234c1c1"))]) -(grandshell-theme . [(20180606 517) nil "Dark color theme for Emacs > 24 with intensive colors." tar ((:commit . "0ed8e4273607dd4fcaa742b4097259233b09eda6"))]) -(grails-projectile-mode . [(20160327 1324) ((projectile (0 10 0)) (emacs (24)) (cl-lib (0 5))) "Grails mode with Projectile for projects management." tar ((:commit . "8efca50ce92b556fe9d467b157d7aec635bcc017") (:keywords "grails" "projectile") (:authors ("Yves Zoundi" . "rimerosolutions@gmail.com")) (:maintainer "Yves Zoundi") (:url . "https://github.com/yveszoundi/grails-projectile-mode"))]) -(grails-mode . [(20160504 911) nil "minor-mode that adds some Grails project management to a grails project" single ((:commit . "aa531c659758b896ff8fbd307080ce0d1d04ebfb") (:keywords "languages") (:authors ("Jim Morris" . "morris@wolfman.com")) (:maintainer "Russel Winder" . "russel@winder.org.uk") (:url . "http://blog.wolfman.com"))]) -(grails . [(20160417 636) ((emacs (24))) "Minor mode for Grails projects" single ((:commit . "fa638abe5c37f3f8af4fcd32f212453185ce50b1") (:url . "https://github.com/lifeisfoo/emacs-grails"))]) -(gradle-mode . [(20150313 1905) ((s (1 8 0))) "Gradle integration with Emacs' compile" single ((:commit . "e4d665d5784ecda7ddfba015f07c69be3cfc45f2") (:keywords "gradle") (:authors ("Daniel Mijares" . "daniel.j.mijares@gmail.com")) (:maintainer "Daniel Mijares" . "daniel.j.mijares@gmail.com") (:url . "http://github.com/jacobono/emacs-gradle-mode"))]) -(grab-x-link . [(20180205 1146) ((emacs (24)) (cl-lib (0 5))) "Grab links from X11 apps and insert into Emacs" single ((:commit . "d19f0c0da0ddc55005a4c1cdc2b8c5de8bea1e8c") (:keywords "hyperlink") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/grab-x-link"))]) -(grab-mac-link . [(20190419 1307) ((emacs (24))) "Grab link from Mac Apps and insert it into Emacs" single ((:commit . "b52d29cd78a60cfe874667a8987ed10e8eb0f172") (:keywords "mac" "hyperlink") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/grab-mac-link.el"))]) -(gpastel . [(20181229 1404) ((emacs (25 1))) "Integrates GPaste with the kill-ring" single ((:commit . "d5fc55bc825203f998537c5834718e665bb87c29") (:keywords "tools") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://gitlab.petton.fr/DamienCassou/desktop-environment"))]) -(govet . [(20170808 1724) nil "linter/problem finder for the Go source code" single ((:commit . "1c05817cf8b96589076c7ac4e52ee58a860a0cbf") (:url . "https://godoc.org/golang.org/x/tools/cmd/vet"))]) -(govc . [(20180524 2023) ((emacs (24 3)) (dash (1 5 0)) (s (1 9 0)) (magit-popup (2 0 50)) (json-mode (1 6 0))) "Interface to govc for managing VMware ESXi and vCenter" single ((:commit . "629af053522fccb5325ae42fb355dc5e10ed47d3") (:keywords "convenience") (:authors ("The govc developers")) (:maintainer "The govc developers") (:url . "https://github.com/vmware/govmomi/tree/master/govc/emacs"))]) -(goto-line-preview . [(20190308 736) ((emacs (25))) "Preview line when executing `goto-line` command." single ((:commit . "772fb942777a321b4698add1b94cff157f23a93b") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:url . "https://github.com/jcs090218/goto-line-preview"))]) -(goto-last-point . [(20190525 1855) ((emacs (24 3))) "Record and jump to the last point in the buffer." single ((:commit . "7ea191df18ff4774cf1dc568e1726143dd54ea02") (:keywords "convenience") (:authors ("Manuel Uberti" . "manuel.uberti@inventati.org")) (:maintainer "Manuel Uberti" . "manuel.uberti@inventati.org") (:url . "https://github.com/manuel-uberti/goto-last-point"))]) -(goto-last-change . [(20150109 1823) nil "Move point through buffer-undo-list positions" single ((:commit . "58b0928bc255b47aad318cd183a5dce8f62199cc") (:keywords "convenience") (:authors ("Kevin Rodgers" . "ihs_4664@yahoo.com")) (:maintainer "Kevin Rodgers" . "ihs_4664@yahoo.com") (:url . "https://github.com/camdez/goto-last-change.el"))]) -(goto-gem . [(20140729 1845) ((s (1 9 0))) "Open dired in gem directory" single ((:commit . "e3206f11f48bb7e798514a4ca2c2f60649613e5e") (:keywords "gemfile" "convenience") (:authors ("Peter Stiernström" . "peter@stiernstrom.se")) (:maintainer "Peter Stiernström" . "peter@stiernstrom.se"))]) -(goto-chg . [(20190110 2114) ((undo-tree (0 1 3))) "goto last change" single ((:commit . "1829a13026c597e358f716d2c7793202458120b5") (:keywords "convenience" "matching") (:authors ("David Andersson <l.david.andersson(at)sverige.nu>")) (:maintainer "Vasilij Schneidermann" . "v.schneidermann@gmail.com") (:url . "https://github.com/emacs-evil/goto-chg"))]) -(goto-char-preview . [(20190418 829) ((emacs (24 3))) "Preview character when executing `goto-char` command." single ((:commit . "366cf84c30fc8e675e9cbab1091ead6f3cd0d399") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:url . "https://github.com/jcs090218/goto-char-preview"))]) -(gotham-theme . [(20171013 1916) nil "A very dark Emacs color theme." single ((:commit . "5e97554d1f9639698faedb0660e63694be33bd84") (:authors ("Vasilij Schneidermann" . "v.schneidermann@gmail.com")) (:maintainer "Vasilij Schneidermann" . "v.schneidermann@gmail.com") (:url . "https://github.com/wasamasa/gotham-theme"))]) -(gotest . [(20180617 1333) ((emacs (24 3)) (s (1 11 0)) (f (0 19 0)) (go-mode (1 5 0))) "Launch GO unit tests" single ((:commit . "36e09a6bf1face4c56d4a7707935c992786e0076") (:keywords "languages" "go" "tests") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/gotest.el"))]) -(gorepl-mode . [(20170905 945) ((emacs (24)) (s (1 11 0)) (f (0 19 0)) (hydra (0 13 0))) "Go REPL Interactive Development in top of Gore" single ((:commit . "bbd27f6a0a77f484e2a3f082d70dc69da63ae52a") (:keywords "languages" "go" "golang" "gorepl") (:authors ("Manuel Alonso" . "manuteali@gmail.com")) (:maintainer "Manuel Alonso" . "manuteali@gmail.com") (:url . "http://www.github.com/manute/gorepl-mode"))]) -(gore-mode . [(20151123 1927) ((go-mode (1 0 0))) "Simple mode for gore, a command-line evaluator for golang." single ((:commit . "94d7f3e99104e06167967c98fdc201049c433c2d") (:keywords "go" "repl") (:authors ("Sergey Pashaev" . "sergey.pashaev@gmail.com")) (:maintainer "Sergey Pashaev" . "sergey.pashaev@gmail.com"))]) -(gopher . [(20190512 1351) ((emacs (24 4)) (w3m (0))) "easily access and navigate Gopher servers" single ((:commit . "6f4accac226698b22e8388e41ad5723b12553dde") (:authors ("Matthew Snyder" . "matthew.c.snyder@gmail.com") ("and the gopher.el authors (see AUTHORS.org)")) (:maintainer "Matthew Snyder" . "matthew.c.snyder@gmail.com") (:url . "http://github.com/ardekantur/gopher.el"))]) -(goose-theme . [(20160828 1245) ((emacs (24 1))) "A gray color theme" single ((:commit . "acd017b50ab25a75fd1331eb3de66467e2042e9c") (:authors ("Stephen Whipple" . "shw@wicdmedia.org")) (:maintainer "Stephen Whipple" . "shw@wicdmedia.org") (:url . "https://github.com/thwg/goose-theme"))]) -(google-translate . [(20190206 1229) nil "Emacs interface to Google Translate." tar ((:commit . "bf119aac424994d2aa91fce9630adc01ed0ea617"))]) -(google-this . [(20170810 1215) ((emacs (24 1))) "A set of functions and bindings to google under point." single ((:commit . "8a2e3ca5da6a8c89bfe99a21486c6c7db125dc84") (:keywords "convenience" "hypermedia") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com") (:url . "http://github.com/Malabarba/emacs-google-this"))]) -(google-maps . [(20181121 1532) ((emacs (24 3))) "Access Google Maps from Emacs" tar ((:commit . "2eb16ff609f5a9f8d02c15238a111fbb7db6c146") (:keywords "comm") (:authors ("Julien Danjou" . "julien@danjou.info")) (:maintainer "Julien Danjou" . "julien@danjou.info") (:url . "https://julien.danjou.info/projects/emacs-packages#google-maps"))]) -(google-contacts . [(20180919 1314) ((oauth2 (0 10)) (cl-lib (0 5))) "Support for Google Contacts in Emacs" tar ((:commit . "2273582713712a58e71156a8a29972d42e8e690e") (:keywords "comm") (:authors ("Julien Danjou" . "julien@danjou.info")) (:maintainer "Julien Danjou" . "julien@danjou.info") (:url . "http://julien.danjou.info/projects/emacs-packages#google-contacts"))]) -(google-c-style . [(20180130 1736) nil "Google's C/C++ style for c-mode" single ((:commit . "9c6b371f419b1dd33c338846e3e7c1ce7304baff") (:keywords "c" "tools"))]) -(google . [(20140416 1748) nil "Emacs interface to the Google API" single ((:commit . "3b3189a8b201c8d36fed6e61496274e530dd40bd") (:keywords "comm" "processes" "tools") (:authors ("Edward O'Connor" . "ted@oconnor.cx")) (:maintainer "Edward O'Connor" . "ted@oconnor.cx"))]) -(gom-mode . [(20131008 253) nil "Major mode for Gomfile" single ((:commit . "972e33df1d38ff323bc97de87477305826013701") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-gom-mode"))]) -(golint . [(20180221 2015) nil "lint for the Go source code" single ((:commit . "959b441ac422379a43da2230f62be024250818b0") (:url . "https://github.com/golang/lint"))]) -(goldendict . [(20180121 920) ((emacs (24 4)) (cl-lib (0 5))) "query word smartly with goldendict.el" single ((:commit . "1aac19daaec811deb9afe45eea4929309c09ac8b") (:keywords "dict" "goldendict") (:url . "https://github.com/stardiviner/goldendict.el"))]) -(golden-ratio-scroll-screen . [(20170224 229) nil "Scroll half screen down or up, and highlight current line" single ((:commit . "44e947194d3e5cbe0fd2f3c4886a4e6e1a0c0791") (:keywords "scroll" "screen" "highlight") (:authors ("纪秀峰 <jixiuf at gmail dot com>")) (:maintainer "纪秀峰 <jixiuf at gmail dot com>") (:url . "https://github.com/jixiuf/golden-ratio-scroll-screen"))]) -(golden-ratio . [(20150819 1120) nil "Automatic resizing of Emacs windows to the golden ratio" single ((:commit . "72b028808b41d23fa3f7e8c0d23d2c475e7b46ae") (:keywords "window" "resizing") (:authors ("Roman Gonzalez" . "romanandreg@gmail.com")) (:maintainer "Roman Gonzalez" . "romanandreg@gmail.com"))]) -(gold-mode . [(20140607 206) ((sws-mode (0))) "Major mode for editing .gold files" single ((:commit . "6d3aa59602b1b835495271c8c9741ac344c2eab1") (:keywords "golang" "template" "gold") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:url . "https://github.com/yuutayamada/gold-mode-el"))]) -(godoctor . [(20180710 2152) nil "Frontend for godoctor" single ((:commit . "4b45ff3d0572f0e84056e4c3ba91fcc178199859") (:keywords "go" "golang" "refactoring") (:authors ("Sangho Na" . "microamp@protonmail.com")) (:maintainer "Sangho Na" . "microamp@protonmail.com") (:url . "https://github.com/microamp/godoctor.el"))]) -(god-mode . [(20180117 1134) nil "God-like command entering minor mode" tar ((:commit . "344167ed9b4c212273dd056e7481cf1373b461d0") (:authors ("Chris Done" . "chrisdone@gmail.com")) (:maintainer "Chris Done" . "chrisdone@gmail.com") (:url . "https://github.com/chrisdone/god-mode"))]) -(gobgen . [(20161020 1523) ((emacs (24 4))) "Generate GObject descendants using a detailed form" single ((:commit . "ed2c2b0d217deae293096f3cf14aa492791ddd4f") (:keywords "gobject" "glib" "gtk" "helper" "utilities") (:authors ("Gergely Polonkai" . "gergely@polonkai.eu")) (:maintainer "Gergely Polonkai" . "gergely@polonkai.eu"))]) -(go-tag . [(20180227 411) ((emacs (24 0)) (go-mode (1 5 0))) "Edit Golang struct field tag" single ((:commit . "59b243f2fa079d9de9d56f6e2d94397e9560310a") (:keywords "tools") (:authors ("Brantou" . "brantou89@gmail.com")) (:maintainer "Brantou" . "brantou89@gmail.com") (:url . "https://github.com/brantou/emacs-go-tag"))]) -(go-stacktracer . [(20150430 2142) nil "parse Go stack traces" single ((:commit . "a2ac6d801b389f80ca4e2fcc1ab44513a9e55976") (:keywords "tools") (:authors ("Samer Masterson" . "samer@samertm.com")) (:maintainer "Samer Masterson" . "samer@samertm.com") (:url . "https://github.com/samertm/go-stacktracer.el"))]) -(go-snippets . [(20180113 611) ((yasnippet (0 8 0))) "Yasnippets for go" tar ((:commit . "d437df148879566ffe7f2e503a3cf2602aa9fb28"))]) -(go-scratch . [(20150810 440) ((go-mode (1 3 1)) (emacs (24))) "*scratch* buffer for Go" single ((:commit . "3f68cbcce04f59eb8e83af109164731ec0454be0") (:keywords "languages" "go") (:authors ("Emanuel Evans" . "mail@emanuel.industries")) (:maintainer "Emanuel Evans" . "mail@emanuel.industries"))]) -(go-rename . [(20180627 648) ((go-mode (1 3 1))) "Integration of the 'gorename' tool into Emacs." single ((:commit . "120fb911f1d8038f828da85eed8aaad977dabd8c") (:keywords "tools"))]) -(go-projectile . [(20181023 2144) ((projectile (0 10 0)) (go-mode (0)) (go-eldoc (0 16)) (go-rename (0)) (go-guru (0))) "Go add-ons for Projectile" single ((:commit . "7910884b4de560f3fc70b53752f658ef9cdc02cd") (:keywords "project" "convenience") (:authors ("Doug MacEachern" . "dougm@vmware.com")) (:maintainer "Doug MacEachern" . "dougm@vmware.com") (:url . "https://github.com/dougm/go-projectile"))]) -(go-playground-cli . [(20160503 914) ((emacs (24)) (request (0 2 0)) (deferred (0 3 2)) (names (20151201 404)) (s (1 10 0)) (f (0 17 2)) (let-alist (1 0 4)) (cl-lib (0 5))) "Go Playground client tool" single ((:commit . "60beebd98e3930641d41cee0189c579626f223bc") (:authors ("KOBAYASHI Shigeru (kosh)" . "shigeru.kb@gmail.com")) (:maintainer "KOBAYASHI Shigeru (kosh)" . "shigeru.kb@gmail.com") (:url . "https://github.com/kosh04/go-playground-cli"))]) -(go-playground . [(20181103 1846) ((emacs (24)) (go-mode (1 4 0)) (gotest (0 13 0))) "Local Golang playground for short snippets." single ((:commit . "b107196edfe3e436caa5e763fe49f9dac159a5b3") (:keywords "tools" "golang") (:authors ("Alexander I.Grafov (axel)" . "grafov@gmail.com")) (:maintainer "Alexander I.Grafov (axel)" . "grafov@gmail.com") (:url . "https://github.com/grafov/go-playground"))]) -(go-mode . [(20181012 329) nil "Major mode for the Go programming language" single ((:commit . "120fb911f1d8038f828da85eed8aaad977dabd8c") (:keywords "languages" "go") (:authors ("The go-mode Authors")) (:maintainer "The go-mode Authors") (:url . "https://github.com/dominikh/go-mode.el"))]) -(go-imports . [(20180710 528) nil "Insert go import statement given package name" tar ((:commit . "d9950309c868aa46c45f8671413e53f97dc7fe0b") (:keywords "tools" "go" "import") (:authors ("Yaz Saito")) (:maintainer "Yaz Saito") (:url . "https://github.com/yasushi-saito/go-imports"))]) -(go-impl . [(20170125 1552) ((emacs (24 3)) (go-mode (1 3 0))) "impl integration for go-mode" single ((:commit . "69f0d0ef05771487e15abec500cd06befd171abf") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-go-impl"))]) -(go-imenu . [(20181029 1029) ((emacs (24 3))) "Enhance imenu for go language" single ((:commit . "4f3f334ed0b6f6afaca6b9775636a52ad3843053") (:keywords "tools") (:authors ("Brantou" . "brantou89@gmail.com")) (:maintainer "Brantou" . "brantou89@gmail.com") (:url . "https://github.com/brantou/go-imenu.el"))]) -(go-guru . [(20181012 330) ((go-mode (1 3 1)) (cl-lib (0 5))) "Integration of the Go 'guru' analysis tool into Emacs." single ((:commit . "120fb911f1d8038f828da85eed8aaad977dabd8c") (:keywords "tools"))]) -(go-gopath . [(20160705 1034) ((cl-lib (0 5))) "Will guess GOPATH using gb and projectile." single ((:commit . "5172fc53f21edbf9347d5ee7d1d745da1ec88a15") (:authors ("Andrew Kirilenko" . "andrew.kirilenko.main@gmail.com")) (:maintainer "Andrew Kirilenko" . "andrew.kirilenko.main@gmail.com") (:url . "http://github.com/iced/go-gopath/"))]) -(go-gen-test . [(20171023 358) ((emacs (24 3)) (s (1 12))) "Generate tests for go code with gotests" single ((:commit . "44c202ac97e728e93a35cee028a0ea8dd6e4292c") (:keywords "languages") (:authors ("Sergey Kostyaev" . "feo.me@ya.ru")) (:maintainer "Sergey Kostyaev" . "feo.me@ya.ru") (:url . "https://github.com/s-kostyaev/go-gen-test"))]) -(go-fill-struct . [(20171225 331) ((emacs (24))) "Fill struct for golang." single ((:commit . "a613d0b378473eef39e8fd5724abe790aea84321") (:keywords "tools") (:authors ("Sergey Kostyaev" . "feo.me@ya.ru")) (:maintainer "Sergey Kostyaev" . "feo.me@ya.ru") (:url . "https://github.com/s-kostyaev/go-fill-struct"))]) -(go-errcheck . [(20160723 43) nil "errcheck integration for go-mode" single ((:commit . "9db21eccecedc2490793f176246094167164af31") (:authors ("Dominik Honnef" . "dominikh@fork-bomb.org")) (:maintainer "Dominik Honnef" . "dominikh@fork-bomb.org"))]) -(go-eldoc . [(20170305 1427) ((emacs (24 3)) (go-mode (1 0 0))) "eldoc for go-mode" single ((:commit . "cbbd2ea1e94a36004432a9ac61414cb5a95a39bd") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-go-eldoc"))]) -(go-dlv . [(20190413 1623) ((go-mode (1 3 1))) "Go Delve - Debug Go programs interactively with the GUD." single ((:commit . "df03ade331d8fb46acc57ef358e696bc36129e04") (:keywords "go" "debug" "debugger" "delve" "interactive" "gud") (:authors ("Marko Bencun" . "mbencun@gmail.com")) (:maintainer "Marko Bencun" . "mbencun@gmail.com") (:url . "https://github.com/benma/go-dlv.el/"))]) -(go-direx . [(20150316 143) ((direx (1 0 0)) (cl-lib (0 5))) "Tree style source code viewer for Go language" single ((:commit . "8f2206469328ee932c7f1892f5e1fb02dec98432") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-go-direx"))]) -(go-complete . [(20190409 516) ((go-mode (0)) (cl-lib (0 5))) "Native code completion for Go" single ((:commit . "056294014f37a1004958ec17ebd6748deed63502") (:keywords "go" "golang" "completion") (:authors ("Vibhav Pant" . "vibhavp@gmail.com")) (:maintainer "Vibhav Pant" . "vibhavp@gmail.com") (:url . "https://github.com/vibhavp/go-complete"))]) -(go-autocomplete . [(20150904 240) ((auto-complete (1 4 0))) "auto-complete-mode backend for go-mode" single ((:commit . "7fb65232883f19a8305706b4b4ff32916ffbcaf5") (:keywords "languages") (:authors ("Mikhail" . "tensai@cirno.in")) (:maintainer "Mikhail" . "tensai@cirno.in"))]) -(go-add-tags . [(20161123 1227) ((emacs (24 3)) (s (1 11 0))) "Add field tags for struct fields" single ((:commit . "54879945e46a0884c5f93d7fd6c866a9cdf401ac") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-go-add-tags"))]) -(go . [(20161111 249) ((emacs (24))) "Play GO, translate and transfer between GO back ends" tar ((:commit . "ff45fb44d9cb6579d8511d8b6156ed0b34d5ac97") (:keywords "game" "go" "sgf") (:authors ("Eric Schulte" . "schulte.eric@gmail.com")) (:maintainer "Eric Schulte" . "schulte.eric@gmail.com") (:url . "http://eschulte.github.io/el-go/"))]) -(gnus-x-gm-raw . [(20140610 731) ((log4e (0 2 0)) (yaxception (0 1))) "Search mail of Gmail using X-GM-RAW as web interface" single ((:commit . "978bdfcecc8844465b71641c2e909fcdc66b22be") (:keywords "gnus") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/gnus-x-gm-raw"))]) -(gnus-summary-repo . [(20190617 1419) ((emacs (25))) "Import and export files between IMAP and local by using GNUS" single ((:commit . "3968667bfded60fbbf33f2fba3170e2b6501ec43") (:keywords "gnus" "repository") (:authors ("Giap Tran" . "txgvnn@gmail.com")) (:maintainer "Giap Tran" . "txgvnn@gmail.com") (:url . "https://github.com/TxGVNN/gnus-summary-repo"))]) -(gnus-summary-ext . [(20180113 1316) nil "Extra limit and process mark commands for the gnus summary buffer" single ((:commit . "025fd853fe9280ae696a89ec2c2cac9befd010aa") (:keywords "comm") (:authors ("Joe Bloggs" . "vapniks@yahoo.com")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "https://github.com/vapniks/gnus-summary-ext"))]) -(gnus-select-account . [(20170722 511) nil "Select an account before writing a mail in gnus" single ((:commit . "ddc8c135eeaf90f5b6692a033af2badae36e68ce") (:keywords "convenience") (:authors ("Feng Shu " . "tumashu@163.com")) (:maintainer "Feng Shu " . "tumashu@163.com") (:url . "https://github.com/tumashu/gnus-select-account"))]) -(gnus-recent . [(20190423 1146) ((emacs (25 3 2))) "article breadcrumbs for Gnus" single ((:commit . "d9375cfad0054a05c910c1210f0f37aa601aebba") (:keywords "convenience" "mail") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org") (:url . "https://github.com/unhammer/gnus-recent"))]) -(gnus-desktop-notify . [(20180623 1538) ((gnus (1 0))) "Gnus Desktop Notification global minor mode" single ((:commit . "b438feb59136621a8ab979f0e2784f7002398d06") (:authors ("Yuri D'Elia <wavexx AT thregr.org>")) (:maintainer "Yuri D'Elia <wavexx AT thregr.org>") (:url . "http://www.thregr.org/~wavexx/software/gnus-desktop-notify.el/"))]) -(gnus-alias . [(20150316 42) nil "an alternative to gnus-posting-styles" single ((:commit . "9447d3ccb4c0e75d0468899cccff7aa249657bac") (:keywords "personality" "identity" "news" "mail" "gnus") (:authors ("Joe Casadonte" . "emacs@northbound-train.com")) (:maintainer "Mark A. Hershberger" . "mah@everybody.org"))]) -(gnuplot-mode . [(20171013 1616) nil "Major mode for editing gnuplot scripts" single ((:commit . "601f6392986f0cba332c87678d31ae0d0a496ce7") (:keywords "gnuplot" "plotting") (:url . "https://github.com/mkmcc/gnuplot-mode"))]) -(gnuplot . [(20141231 2137) nil "drive gnuplot from within emacs" tar ((:commit . "21f9046e3f5caad41b750b5c9cee02fa4fd20fb9") (:keywords "gnuplot" "plotting") (:authors ("Bruce Ravel" . "bruceravel1@gmail.com")) (:maintainer "Bruce Ravel" . "bruceravel1@gmail.com"))]) -(gnu-apl-mode . [(20181217 854) ((emacs (24))) "Integrate GNU APL with Emacs" tar ((:commit . "3b5b13abeb424e8ed399379fdefc168422664def") (:keywords "languages" "apl") (:url . "https://github.com/lokedhs/gnu-apl-mode"))]) -(gntp . [(20141025 250) nil "Growl Notification Protocol for Emacs" single ((:commit . "767571135e2c0985944017dc59b0be79af222ef5") (:authors ("Engelke Eschner" . "tekai@gmx.li")) (:maintainer "Engelke Eschner" . "tekai@gmx.li"))]) -(gnomenm . [(20150316 1918) ((s (1 9 0)) (dash (2 3 0)) (kv (0 0 19))) "Emacs interface to Gnome nmcli command" single ((:commit . "9065cda44ffc9e06239b8189a0154d31314c3b4d") (:keywords "processes" "hardware") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk") (:url . "http://github.com/nicferrier/emacs-nm"))]) -(gnome-calendar . [(20161110 1256) nil "Integration with the GNOME Shell calendar" single ((:commit . "489f9f15f7bb35696b1cc19db75b554ae8328df2") (:keywords "gnome" "calendar") (:authors ("Nicolas Petton" . "nicolas@petton.fr")) (:maintainer "Nicolas Petton" . "nicolas@petton.fr"))]) -(gn-mode . [(20190428 1812) ((emacs (24)) (cl-lib (0 5))) "major mode for editing GN (generate ninja) files" single ((:commit . "fcf8e1e500d953364e97e7ebc5708a2c00fa3cd2") (:keywords "data") (:authors ("Emily Backes" . "lucca@accela.net")) (:maintainer "Emily Backes" . "lucca@accela.net") (:url . "http://github.com/lashtear/gn-mode"))]) -(gmpl-mode . [(20171031 2054) ((emacs (24))) "Major mode for editing GMPL(MathProg) files" single ((:commit . "c5d362169819ee8b8e8954145daee7e260c54921") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com"))]) -(gmail2bbdb . [(20170423 1144) nil "import email and name into bbdb from vcard." single ((:commit . "a84fa385cfaec7fc5f1518c368e52722da139f99") (:keywords "vcard" "bbdb" "email" "contact" "gmail") (:authors ("Chen Bin" . "chenbin.sh@gmail.com")) (:maintainer "Chen Bin" . "chenbin.sh@gmail.com") (:url . "http://github.com/redguardtoo/gmail2bbdb"))]) -(gmail-message-mode . [(20160627 1847) ((ham-mode (1 0))) "A major-mode for editing gmail messages using markdown syntax." single ((:commit . "ec36672a9dc93c09ebe2f77597b498d11883d008") (:keywords "mail" "convenience" "emulation") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com") (:url . "http://github.com/Bruce-Connor/gmail-message-mode"))]) -(glsl-mode . [(20190514 145) nil "major mode for Open GLSL shader files" single ((:commit . "eaea63a45d0dcb04ddbf069b4bcfd99f10919e44") (:keywords "languages" "opengl" "gpu" "spir-v" "vulkan") (:url . "https://github.com/jimhourihan/glsl-mode"))]) -(glab . [(20180821 1551) nil "minuscule client library for the Gitlab API" single ((:commit . "d75ba1bd8843f53ae3e37b206187b3b97d9f3540") (:keywords "tools") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/ghub"))]) -(gl-conf-mode . [(20170714 1310) ((emacs (24 3))) "Mode for editing gitolite config files" single ((:commit . "9136a9b737e0a5b6471a91571d104c487c43f35b") (:keywords "git" "gitolite" "languages") (:authors ("Luis Lloret")) (:maintainer "Luis Lloret") (:url . "https://github.com/llloret/gitolite-emacs"))]) -(gitter . [(20180122 856) ((emacs (24 4)) (let-alist (1 0 4))) "An Emacs Gitter client" single ((:commit . "11cb9b4b45f67bdc24f055a9bfac21d2bd19ea1a") (:keywords "gitter" "chat" "client" "internet") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/gitter.el"))]) -(gitpatch . [(20170722 410) ((emacs (24 3))) "Git-format patch toolkit" single ((:commit . "577d5adf65c8133caa325c10e89e1e2fc323c907") (:keywords "convenience") (:authors ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/gitpatch"))]) -(gitolite-clone . [(20160609 2355) ((dash (2 10 0)) (s (1 9 0)) (pcache (0 3 1)) (emacs (24))) "Clone gitolite repositories from a completing list" single ((:commit . "d8a4c2875c984e51137c980b5773f42703602721") (:keywords "gitolite" "clone" "git") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:url . "https://github.com/IvanMalison/gitolite-clone"))]) -(gitlab-ci-mode-flycheck . [(20190323 1829) ((emacs (25)) (flycheck (31)) (gitlab-ci-mode (1))) "Flycheck support for ‘gitlab-ci-mode’" single ((:commit . "eba81cfb7224fd1fa4e4da90d11729cc7ea12f72") (:keywords "tools" "vc" "convenience") (:authors ("Joe Wreschnig")) (:maintainer "Joe Wreschnig") (:url . "https://gitlab.com/joewreschnig/gitlab-ci-mode-flycheck/"))]) -(gitlab-ci-mode . [(20190425 2058) ((emacs (25)) (yaml-mode (0 0 12))) "mode for editing GitLab CI files" single ((:commit . "dac4e5125c78aa3ae12d2e35a66196d709676236") (:keywords "tools" "vc") (:authors ("Joe Wreschnig")) (:maintainer "Joe Wreschnig") (:url . "https://gitlab.com/joewreschnig/gitlab-ci-mode/"))]) -(gitlab . [(20180312 1647) ((s (1 9 0)) (dash (2 9 0)) (pkg-info (0 5 0)) (request (0 1 0))) "Emacs client for Gitlab" tar ((:commit . "8c2324c02119500f094c2f92dfaba4c9977ce1ba") (:keywords "gitlab") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/emacs-gitlab"))]) -(gitignore-templates . [(20180327 1326) ((emacs (24 3))) "Access GitHub .gitignore templates" single ((:commit . "b0705b8de4cbdd631c64c4e0024d62ba4ad68052") (:keywords "tools") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/gitignore-templates.el"))]) -(gitignore-mode . [(20180318 1956) nil "Major mode for editing .gitignore files" single ((:commit . "33c6a116a5b298e20eb39ebb154a51c4dd37c06d") (:keywords "convenience" "vc" "git") (:authors ("Sebastian Wiesner" . "lunaryorn@gmail.com")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/git-modes"))]) -(github-theme . [(20170630 2201) nil "The GitHub color theme for Emacs." single ((:commit . "29f00a51d949a248a5f6355a97131e216747c797") (:authors ("Philip Arvidsson" . "philip@philiparvidsson.com")) (:maintainer "Philip Arvidsson" . "philip@philiparvidsson.com") (:url . "https://github.com/philiparvidsson/GitHub-Theme-for-Emacs"))]) -(github-stars . [(20190517 1319) ((emacs (25 1)) (ghub (2 0 0))) "Browse your Github Stars" single ((:commit . "a9f25ab2487c886f5d50d26693d49856bd51383b") (:keywords "tools") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/github-stars.el"))]) -(github-search . [(20170824 323) ((magit (0 8 1)) (gh (1 0 0))) "Clone repositories by searching github" single ((:commit . "c5fa1d9f8f9bcf201fa31478a6f5e02ed5ac086b") (:keywords "github" "search" "clone" "api" "gh" "magit" "vc" "tools") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:url . "https://github.com/IvanMalison/github-search"))]) -(github-review . [(20190327 732) ((emacs (25)) (s (1 12 0)) (ghub (2 0)) (dash (2 11 0))) "GitHub based code review" single ((:commit . "9c3ffe30fba5d02e9951e76d1a5be2ed046663da") (:keywords "git" "tools" "vc" "github") (:authors ("Laurent Charignon" . "l.charignon@gmail.com")) (:maintainer "Laurent Charignon" . "l.charignon@gmail.com") (:url . "https://github.com/charignon/github-review"))]) -(github-pullrequest . [(20170116 616) ((emacs (24 4)) (request (0 2 0)) (dash (2 11 0)) (magit (2 10 0))) "Create and fetch Github Pull requests with ease" single ((:commit . "6ae5c38b0fc15b638b5ba4490112d9822ce5e267") (:keywords "tools") (:authors ("Jakob Lind" . "karl.jakob.lind@gmail.com")) (:maintainer "Jakob Lind" . "karl.jakob.lind@gmail.com") (:url . "https://github.com/jakoblind/github-pullrequest"))]) -(github-notifier . [(20180421 316) ((emacs (24))) "Displays your GitHub notifications unread count in mode-line" single ((:commit . "274f3812926ea371346f639fcee98066f6e8c96f") (:keywords "github" "mode-line") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/github-notifier.el"))]) -(github-modern-theme . [(20171109 1251) nil "The GitHub color theme for Emacs." single ((:commit . "a7e7b8e5e9c122138e79e837caf9b7299e748d44") (:authors ("Philip Arvidsson" . "philip@philiparvidsson.com")) (:maintainer "Philip Arvidsson" . "philip@philiparvidsson.com") (:url . "https://github.com/philiparvidsson/GitHub-Theme-for-Emacs"))]) -(github-issues . [(20160616 1841) ((emacs (24))) "Functions and modes for managing GitHub projects' issues" single ((:commit . "816f7712b0eb05bffec0add3507302862d2629c4") (:keywords "github" "issues") (:authors ("Leandro M. López (inkel)" . "inkel.ar@gmail.com")) (:maintainer "Leandro M. López (inkel)" . "inkel.ar@gmail.com") (:url . "http://inkel.github.com/github-issues.el/"))]) -(github-explorer . [(20190421 510) ((emacs (24 4)) (request (0 1 0))) "Explore a GitHub repository on the fly" single ((:commit . "27be3f515d9b163477bbd2dc0253e5eeb9c8bfd4") (:keywords "comm") (:authors ("Giap Tran" . "txgvnn@gmail.com")) (:maintainer "Giap Tran" . "txgvnn@gmail.com") (:url . "https://github.com/TxGVNN/github-explorer"))]) -(github-elpa . [(20180831 811) ((package-build (1 0)) (commander (0 7 0)) (git (0 1 1))) "Build and publish ELPA repositories with GitHub Pages" tar ((:commit . "279b6c352859cfd519ea8726eafed84d6875c418") (:authors (nil . "10sr<8slashes+el@gmail.com>")) (:maintainer nil . "10sr<8slashes+el@gmail.com>") (:url . "https://github.com/10sr/github-elpa"))]) -(github-clone . [(20160623 310) ((gh (0 7 2)) (magit (2 1 0)) (emacs (24 4))) "Fork and clone github repos" single ((:commit . "467b40ca60a6c26257466ebc43c74414df7f19cc") (:keywords "vc" "tools") (:authors ("Charles L.G. Comstock" . "dgtized@gmail.com")) (:maintainer "Charles L.G. Comstock" . "dgtized@gmail.com") (:url . "https://github.com/dgtized/github-clone.el"))]) -(github-browse-file . [(20160205 1427) ((cl-lib (0 5))) "View the file you're editing on GitHub" single ((:commit . "9742a5183af853788c6ecb83fb7ee0b00d1675ac") (:keywords "convenience" "vc" "git" "github") (:authors ("Ozan Sener" . "ozan@ozansener.com")) (:maintainer "Ozan Sener" . "ozan@ozansener.com") (:url . "https://github.com/osener/github-browse-file"))]) -(gitconfig-mode . [(20180318 1956) nil "Major mode for editing .gitconfig files" single ((:commit . "33c6a116a5b298e20eb39ebb154a51c4dd37c06d") (:keywords "convenience" "vc" "git") (:authors ("Sebastian Wiesner" . "lunaryorn@gmail.com")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/git-modes"))]) -(gitconfig . [(20130718 935) nil "Emacs lisp interface to work with git-config variables" single ((:commit . "7612a37ca14009cac8fb8d6b6f54adad739a5741") (:keywords "git" "gitconfig" "git-config") (:authors ("Samuel Tonini")) (:maintainer "Samuel Tonini"))]) -(gitattributes-mode . [(20180318 1956) nil "Major mode for editing .gitattributes files" single ((:commit . "33c6a116a5b298e20eb39ebb154a51c4dd37c06d") (:keywords "convenience" "vc" "git") (:authors ("Rüdiger Sonderfeld" . "ruediger@c-plusplus.net")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/git-modes"))]) -(git-wip-timemachine . [(20150408 1006) ((s (1 9 0))) "Walk through git-wip revisions of a file" single ((:commit . "ed4c7931a5f5233bf3e358b1e81647d063526460") (:keywords "git") (:authors ("Tim Krones" . "t.krones@gmx.net")) (:maintainer "Tim Krones" . "t.krones@gmx.net") (:url . "https://github.com/itsjeyd/git-wip-timemachine"))]) -(git-timemachine . [(20190317 1547) ((emacs (24 3)) (transient (0 1 0))) "Walk through git revisions of a file" single ((:commit . "b97f93d66cffcd69281346845d3a1e32197eda29") (:keywords "vc") (:authors ("Peter Stiernström" . "peter@stiernstrom.se")) (:maintainer "Peter Stiernström" . "peter@stiernstrom.se") (:url . "https://gitlab.com/pidu/git-timemachine"))]) -(git-time-metric . [(20181116 2011) nil "Provide function to record time with gtm ( git time metric )" single ((:commit . "287108ed1d6885dc795eb3bad4476aa08c626186") (:keywords "tools" "gtm" "productivity" "time") (:authors ("Anton Sivolapov" . "anton.sivolapov@gmail.com")) (:maintainer "Anton Sivolapov" . "anton.sivolapov@gmail.com") (:url . "https://github.com/c301/gtm-emacs-plugin"))]) -(git-ps1-mode . [(20181115 349) nil "Global minor-mode to print __git_ps1" single ((:commit . "b9188e26a64fa6f8678da6cbf5e3e865065f4f04") (:keywords "utility" "mode-line" "git") (:authors ("10sr <8slashes+el [at] gmail [dot] com>")) (:maintainer "10sr <8slashes+el [at] gmail [dot] com>") (:url . "https://github.com/10sr/git-ps1-mode-el"))]) -(git-msg-prefix . [(20180118 1446) ((emacs (24)) (s (1 10 0)) (dash (2 9 0))) "Insert commit message prefix (issue number)" single ((:commit . "848f2c7475f5e4937b09f55e85ea89a3be5f8588") (:keywords "vc" "tools") (:authors ("Raimon Grau" . "raimonster@gmail.com")) (:maintainer "Raimon Grau" . "raimonster@gmail.com") (:url . "http://github.com/kidd/git-msg-prefix.el"))]) -(git-messenger . [(20170102 440) ((emacs (24 3)) (popup (0 5 0))) "Pop up last commit information of current line" single ((:commit . "83815915eb8c1cb47443ff34bca3fecf7d2edf3a") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-git-messenger"))]) -(git-link . [(20190309 2326) ((emacs (24 3))) "Get the GitHub/Bitbucket/GitLab URL for a buffer location" single ((:commit . "1dbabfed4c5c3c5ac6ffa9035a9c3d4c6cc7f885") (:keywords "git" "vc" "github" "bitbucket" "gitlab" "sourcehut" "convenience") (:authors ("Skye Shaw" . "skye.shaw@gmail.com")) (:maintainer "Skye Shaw" . "skye.shaw@gmail.com") (:url . "http://github.com/sshaw/git-link"))]) -(git-lens . [(20190319 1342) ((emacs (24 4))) "Show new, deleted or modified files in branch" single ((:commit . "f6cc0a37c9c5c422c49c32650e70bc4721707985") (:keywords "vc" "convenience") (:authors ("Peter Stiernström" . "peter@stiernstrom.se")) (:maintainer "Peter Stiernström" . "peter@stiernstrom.se") (:url . "https://github.com/pidu/git-lens"))]) -(git-io . [(20180317 1752) ((emacs (24 4))) "git.io integration" single ((:commit . "48753acba73b48b997bb678fb5e2a938ae63b5d6") (:keywords "convenience" "files") (:authors ("Tejas Bubane" . "tejasbubane@gmail.com")) (:maintainer "Tejas Bubane" . "tejasbubane@gmail.com") (:url . "https://github.com/tejasbubane/emacs-git-io"))]) -(git-identity . [(20190424 1147) ((emacs (25 1)) (dash (2 10)) (hydra (0 14)) (f (0 20))) "Identity management for (ma)git" single ((:commit . "d20f6178a8818dcd6c5911d9cbf98934823e619e") (:keywords "vc" "convenience") (:authors ("Akira Komamura" . "akira.komamura@gmail.com")) (:maintainer "Akira Komamura" . "akira.komamura@gmail.com") (:url . "https://github.com/akirak/git-identity.el"))]) -(git-gutter-fringe . [(20170113 533) ((git-gutter (0 88)) (fringe-helper (0 1 1)) (cl-lib (0 5)) (emacs (24))) "Fringe version of git-gutter.el" single ((:commit . "16226caab44174301f1659f7bf8cc67a76153445") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-git-gutter-fringe"))]) -(git-gutter-fringe+ . [(20140729 1103) ((git-gutter+ (0 1)) (fringe-helper (1 0 1))) "Fringe version of git-gutter+.el" single ((:commit . "7a2f49d2455a3a872e90e5f7dd4e6b27f1d96cfc") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/nonsequitur/git-gutter-fringe-plus"))]) -(git-gutter . [(20161105 1356) ((emacs (24 3))) "Port of Sublime Text plugin GitGutter" single ((:commit . "00c05264af046b5ce248e5b0bc42f117d9c27a09") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-git-gutter"))]) -(git-gutter+ . [(20151204 1723) ((git-commit (0)) (dash (0))) "Manage Git hunks straight from the buffer" single ((:commit . "b7726997806d9a2da9fe84ff00ecf21d62b6f975") (:keywords "git" "vc") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/nonsequitur/git-gutter-plus"))]) -(git-dwim . [(20170126 1214) nil "Context-aware git commands such as branch handling" single ((:commit . "485c732130686c2f28a026e385366006435394b9") (:keywords "git" "tools" "convenience") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/git-dwim.el"))]) -(git-commit-insert-issue . [(20171102 1841) ((projectile (0)) (s (0)) (github-issues (0)) (gitlab (0)) (bitbucket (0))) "Get issues list when typing \"Fixes #\"" single ((:commit . "f986923b04b587206ce7ee8e0c456768600e8be7") (:keywords "git" "github" "gitlab" "bitbucket" "commit" "issues") (:authors ("Vindarel")) (:maintainer "Vindarel") (:url . "https://gitlab.com/emacs-stuff/git-commit-insert-issue/"))]) -(git-commit . [(20190501 1823) ((emacs (25 1)) (dash (20180910)) (with-editor (20181103))) "Edit Git commit messages" single ((:commit . "66fa30b5ebeefa4dd4adf2c8f4f917262dbe5da1") (:keywords "git" "tools" "vc") (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/magit/magit"))]) -(git-command . [(20190311 511) ((term-run (0 1 4)) (with-editor (2 3 1))) "Git Command-Line interface" single ((:commit . "89169f4b8e8d2546cac81d38bf584764e630812e") (:keywords "utility" "git") (:authors ("10sr <8slashes+el [at] gmail [dot] com>")) (:maintainer "10sr <8slashes+el [at] gmail [dot] com>") (:url . "https://github.com/10sr/git-command-el"))]) -(git-blamed . [(20161028 1926) nil "Minor mode for incremental blame for Git" single ((:commit . "cef196abf398e2dd11f775d1e6cd8690567408aa") (:keywords "git" "version control" "release management"))]) -(git-auto-commit-mode . [(20161229 1617) nil "Emacs Minor mode to automatically commit and push" single ((:commit . "2c8197e5d7813734d6a49f9b9c0b227b7ae022a8") (:keywords "vc") (:authors ("Tom Willemse" . "tom@ryuslash.org")) (:maintainer "Tom Willemse" . "tom@ryuslash.org") (:url . "http://projects.ryuslash.org/git-auto-commit-mode/"))]) -(git-attr . [(20180925 2003) ((emacs (24 3))) "Git attributes of buffer file" tar ((:commit . "8f6290c76e7827d5a198e7dc04516bcfb2128c06") (:keywords "vc") (:authors ("Arne Jørgensen" . "arne@arnested.dk")) (:maintainer "Arne Jørgensen" . "arne@arnested.dk") (:url . "https://github.com/arnested/emacs-git-attr"))]) -(git-annex . [(20180427 1556) nil "Mode for easy editing of git-annex'd files" single ((:commit . "ebdb44aef1883f1b2b8058e05d30fb9315b03707") (:keywords "files" "data" "git" "annex") (:authors ("John Wiegley" . "jwiegley@gmail.com")) (:maintainer "John Wiegley" . "jwiegley@gmail.com") (:url . "https://github.com/jwiegley/git-annex-el"))]) -(git . [(20140128 1041) ((s (1 7 0)) (dash (2 2 0)) (f (0 10 0))) "An Elisp API for programmatically using Git" single ((:commit . "a3396a7027a7d986598c6a2d6d5599bac918f3da") (:keywords "git") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/git.el"))]) -(gist . [(20171128 406) ((emacs (24 1)) (gh (0 10 0))) "Emacs integration for gist.github.com" single ((:commit . "314fe6ab80fae35b95f0734eceb82f72813b6f41") (:keywords "tools") (:authors ("Yann Hodique" . "yann.hodique@gmail.com")) (:maintainer "Yann Hodique" . "yann.hodique@gmail.com") (:url . "https://github.com/defunkt/gist.el"))]) -(gildas-mode . [(20181022 649) ((polymode (0 1 5)) (emacs (25))) "Major mode for Gildas" single ((:commit . "d0c9e997e2aa0bcd9b8b7db082d69100448cb1b2") (:keywords "languages" "gildas") (:authors ("Sébastien Maret" . "sebastien.maret@icloud.com")) (:maintainer "Sébastien Maret" . "sebastien.maret@icloud.com") (:url . "https://github.com/smaret/gildas-mode"))]) -(gift-mode . [(20180530 1235) nil "major mode for editing GIFT format quizzes" single ((:commit . "b0441ae6e02f343be3b611a2d4b40495ecd932f0") (:authors ("Christophe Rhodes" . "christophe@rhodes.io")) (:maintainer "Christophe Rhodes" . "christophe@rhodes.io") (:url . "https://github.com/csrhodes/gift-mode"))]) -(gif-screencast . [(20190326 849) ((emacs (25 1))) "One-frame-per-action GIF recording" single ((:commit . "248d1e158405e6cba2c65ecaed40e2c59b089cd8") (:keywords "multimedia" "screencast") (:authors ("Pierre Neidhardt" . "mail@ambrevar.xyz")) (:maintainer "Pierre Neidhardt" . "mail@ambrevar.xyz") (:url . "https://gitlab.com/ambrevar/emacs-gif-screencast"))]) -(ghub . [(20190614 632) ((emacs (25 1)) (dash (2 14 1)) (let-alist (1 0 5)) (treepy (0 1 1))) "Minuscule client libraries for Git forge APIs." tar ((:commit . "2b196577d463b5685decca1d4fa20e2858725a25"))]) -(ghub+ . [(20181113 32) ((emacs (25)) (ghub (2 0)) (apiwrap (0 5))) "a thick GitHub API client built on ghub" single ((:commit . "51ebffe549286b3c0b0565a373f44f4d64fc57af") (:keywords "extensions" "multimedia" "tools") (:authors ("Sean Allred" . "code@seanallred.com")) (:maintainer "Sean Allred" . "code@seanallred.com") (:url . "https://github.com/vermiculus/ghub-plus"))]) -(ghq . [(20160803 1557) nil "Ghq interface for emacs" single ((:commit . "aae4b8cb22fd6c24d2c9e3962c7e8e9dac6d9825") (:keywords "ghq") (:authors ("Roman Coedo" . "romancoedo@gmail.com")) (:maintainer "Roman Coedo" . "romancoedo@gmail.com"))]) -(ghost-blog . [(20171023 742) ((markdown-mode (1 0))) "A package to manage Ghost blog" single ((:commit . "71b358643cc9a2db1bf752281ff94aba9b59e4cc") (:keywords "ghost" "blog") (:authors ("Javier Aguirre" . "hello@javaguirre.net")) (:maintainer "Javier Aguirre" . "hello@javaguirre.net") (:url . "https://github.com/javaguirre/ghost-blog"))]) -(gherkin-mode . [(20171224 1353) nil "An emacs major mode for editing gherkin files." single ((:commit . "0313492e7da152f0aa73ddf96c0287ded8f51253") (:keywords "languages") (:authors ("Craig Andera")) (:maintainer "Craig Andera"))]) -(ghci-completion . [(20151125 1257) ((emacs (24 1)) (cl-lib (0 5))) "Completion for GHCi commands in inferior-haskell buffers" single ((:commit . "c47e23d585d2a3c7b13aac163693fdc4f2bb90e5") (:keywords "convenience") (:authors ("Oleksandr Manzyuk" . "manzyuk@gmail.com")) (:maintainer "Oleksandr Manzyuk" . "manzyuk@gmail.com"))]) -(ghc-imported-from . [(20141124 1932) ((emacs (24 1))) "Haskell documentation lookup with ghc-imported-from" single ((:commit . "fcff08628a19f5d26151564659218cc677779b79") (:keywords "languages") (:authors ("David Raymond Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Raymond Christiansen" . "david@davidchristiansen.dk"))]) -(ghc . [(20180121 1218) ((haskell-mode (13 0))) "Sub mode for Haskell mode" tar ((:commit . "391e187a5dfef4421aab2508fa6ff7875cc8259d"))]) -(gh-md . [(20151207 1740) ((emacs (24))) "Render markdown using the Github api" single ((:commit . "693cb0dcadff70e813e1a9d303d227aff7898557") (:keywords "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/gh-md.el"))]) -(gh . [(20180308 2138) ((emacs (24 3)) (pcache (0 4 1)) (logito (0 1)) (marshal (0 6 3))) "A GitHub library for Emacs" tar ((:commit . "f029fc11f345ef04ab62ee91c38657e29c462fea"))]) -(ggtags . [(20190320 2208) ((emacs (25))) "emacs frontend to GNU Global source code tagging system" single ((:commit . "4d9000034d352cd983ae6626f560e434d0b3e9ca") (:keywords "tools" "convenience") (:authors ("Leo Liu" . "sdl.web@gmail.com")) (:maintainer "Leo Liu" . "sdl.web@gmail.com") (:url . "https://github.com/leoliu/ggtags"))]) -(ggo-mode . [(20130524 1143) nil "Gengetopt major mode" single ((:commit . "e326899d9ed8217c7a4ea6cfdc4dd7aea61d6c1b") (:keywords "extensions" "convenience" "local") (:authors ("Matthew K. Junker" . "junker@alum.mit.edu")) (:maintainer "Matthew K. Junker" . "junker@alum.mit.edu"))]) -(gf . [(20181028 1542) ((s (1 0)) (ht (2 0))) "Major mode for editing GF code" single ((:commit . "30b3127f229e0db522c7752f6957ca01b2ea2821") (:keywords "languages") (:authors ("Johan BockgÃ¥rd" . "bojohan+mail@dd.chalmers.se")) (:maintainer "bruno cuconato" . "bcclaro+emacs@gmail.com") (:url . "https://github.com/GrammaticalFramework/gf-emacs-mode"))]) -(gerrit-download . [(20150714 1408) ((emacs (24 0)) (magit (2 1 0))) "Show gerrit reviews in a diff buffer." single ((:commit . "d568acc7c5935188c9bc19ba72719a6092d9f6fd") (:keywords "tools" "gerrit" "git") (:authors ("Chmouel Boudjnah" . "chmouel@chmouel.com")) (:maintainer "Chmouel Boudjnah" . "chmouel@chmouel.com") (:url . "https://github.com/chmouel/gerrit-download.el"))]) -(german-holidays . [(20181213 644) nil "German holidays for Emacs calendar" single ((:commit . "a8462dffccaf2b665f2032e646b5370e993a386a") (:authors ("Sebastian Christ" . "rudolfo.christ@gmail.com")) (:maintainer "Sebastian Christ" . "rudolfo.christ@gmail.com") (:url . "https://github.com/rudolfochrist/german-holidays"))]) -(genrnc . [(20140612 1237) ((deferred (0 3 1)) (concurrent (0 3)) (log4e (0 2 0)) (yaxception (0 1))) "generate RELAX NG Compact Schema from RELAX NG Schema, XML Schema and DTD." tar ((:commit . "da75b1966a73ad215ec2ced4522c25f4d0bf1f9a") (:keywords "xml") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/emacs-genrnc"))]) -(general . [(20190616 1408) ((emacs (24 4)) (cl-lib (0 5))) "Convenience wrappers for keybindings." single ((:commit . "ca187fd72f91a3427663256d4b72cb5427d25ad5") (:keywords "vim" "evil" "leader" "keybindings" "keys") (:authors ("Fox Kiester" . "noct@openmailbox.org")) (:maintainer "Fox Kiester" . "noct@openmailbox.org") (:url . "https://github.com/noctuid/general.el"))]) -(geiser . [(20190515 43) nil "GNU Emacs and Scheme talk to each other" tar ((:commit . "e60e1c2b1baf8891e1af010af491faf422eacd43") (:url . "http://www.nongnu.org/geiser/"))]) -(geeknote . [(20160717 1249) ((emacs (24))) "Use Evernote in Emacs through geeknote" single ((:commit . "8ed607c76864afcc9c338972ab093caf4501cbf8") (:keywords "evernote" "geeknote" "note" "emacs-evernote" "evernote-mode") (:authors ("Evan Dale Aromin")) (:maintainer "Evan Dale Aromin") (:url . "http://github.com/avendael/emacs-geeknote"))]) -(geben-helm-projectile . [(20160611 59) ((emacs (24)) (geben (0 26)) (helm-projectile (0 13 0))) "Integrate helm-projectile with geben" single ((:commit . "31ce0faca5dcc71924884f03fd5a7a25d00ccd9b") (:keywords "ahungry" "emacs" "geben" "helm" "projectile" "debug") (:authors ("Matthew Carter" . "m@ahungry.com")) (:maintainer "Matthew Carter" . "m@ahungry.com") (:url . "https://github.com/ahungry/geben-helm-projectile"))]) -(geben . [(20170801 1251) ((emacs (24 3)) (cl-lib (0 5))) "DBGp protocol frontend, a script debugger" tar ((:commit . "ec3f5e9376cf1ea5615990bd8c212543d57f033b") (:keywords "c" "comm" "tools") (:authors ("Matthew Carter" . "m@ahungry.com")) (:maintainer "Matthew Carter" . "m@ahungry.com") (:url . "https://github.com/ahungry/geben"))]) -(gdscript-mode . [(20180118 456) ((emacs (24 3))) "Major mode for editing Godot GDScript files" single ((:commit . "31af5283eaec207bc864022a28e2824132471eaf") (:keywords "languages") (:authors ("Adam Bark" . "adam@adambark.com")) (:maintainer "Adam Bark" . "adam@adambark.com") (:url . "https://github.com/AdamBark/gdscript-mode"))]) -(gcmh . [(20190422 626) ((emacs (24))) "the Garbage Collector Magic Hack" single ((:commit . "c96bd7063a324bb042cb6baf705c0b7d3b02ce2a") (:keywords "internal") (:maintainer nil . "andrea_corallo@yahoo.it") (:url . "https://gitlab.com/koral/gcmh"))]) -(gather . [(20141230 1338) nil "Gather string in buffer." single ((:commit . "50809fbc22d70a1c724c2dd99ac5a1f818ffeb6b") (:keywords "matching" "convenience" "tools") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-gather/raw/master/gather.el"))]) -(gap-mode . [(20180809 445) nil "Major mode for editing files in the GAP programing language." tar ((:commit . "00f251070b10ba72d0548955ca125498fcaaf40c") (:keywords "gap") (:authors ("Michael Smith" . "smith@pell.anu.edu.au") ("Gary Zablackis") ("Goetz Pfeiffer") ("Ivan Andrus" . "darthandrus@gmail.com")) (:maintainer "Ivan Andrus" . "darthandrus@gmail.com") (:url . "https://bitbucket.org/gvol/gap-mode"))]) -(gandalf-theme . [(20130809 947) nil "Gandalf color theme" single ((:commit . "4e472fc851431458537d458d09c1f5895e338536") (:keywords "color" "theme") (:authors ("Peter Vasil" . "mail@petervasil.net")) (:maintainer "Peter Vasil" . "mail@petervasil.net"))]) -(gams-mode . [(20181112 601) ((emacs (24 3))) "Major mode for General Algebraic Modeling System (GAMS)" single ((:commit . "210bd355dd2075bde3fd76c880aa489a25a54cb5") (:keywords "languages" "tools" "gams") (:authors ("Shiro Takeda")) (:maintainer "Shiro Takeda") (:url . "http://shirotakeda.org/en/gams/gams-mode/"))]) -(gams-ac . [(20180423 926) ((emacs (24)) (auto-complete (1 0)) (gams-mode (4 0))) "auto-complete source file for GAMS mode" single ((:commit . "66d04ff36033f54205c19bc1d893e926d4dbf02e") (:keywords "languages" "tools" "gams-mode" "auto-complete") (:authors ("Shiro Takeda")) (:maintainer "Shiro Takeda") (:url . "https://github.com/ShiroTakeda/gams-ac"))]) -(fzf . [(20180619 145) ((emacs (24 4))) "A front-end for fzf." single ((:commit . "521d18933cb586337c4e34281bdc71ac07202c98") (:keywords "fzf" "fuzzy" "search") (:authors ("Bailey Ling")) (:maintainer "Bailey Ling") (:url . "https://github.com/bling/fzf.el"))]) -(fyure . [(20130216 1314) nil "An interface to fix Japanese hyoki-yure" tar ((:commit . "b6977f1eb148e8b63259f7233b55bb050e44d9b8") (:keywords "languages") (:authors ("Masafumi Oyamada" . "stillpedant@gmail.com")) (:maintainer "Masafumi Oyamada" . "stillpedant@gmail.com"))]) -(fxrd-mode . [(20170728 1801) ((s (1 2))) "Major mode for editing fixed field width files" tar ((:commit . "18a603474abb5a786a8d9f20c283d5f7beed3540") (:keywords "convenience") (:authors ("Marc Sherry" . "msherry@gmail.com")) (:maintainer "Marc Sherry" . "msherry@gmail.com") (:url . "https://github.com/msherry/fxrd-mode"))]) -(fwb-cmds . [(20180318 2219) nil "misc frame, window and buffer commands" single ((:commit . "90258a5c7dbbaa2ac227e0fb4ff6c7d5aec3628f") (:keywords "convenience") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/fwb-cmds"))]) -(fvwm-mode . [(20160411 1138) nil "A major mode for editing Fvwm configuration files" single ((:commit . "6832a1c1f68bf6249c3fd6672ea8e27dc7a5c79e") (:keywords "files") (:authors ("Bert Geens" . "bert@lair.be")) (:maintainer "Bert Geens" . "bert@lair.be") (:url . "https://github.com/theBlackDragon/fvwm-mode"))]) -(fuzzy . [(20150730 337) nil "Fuzzy Matching" single ((:commit . "534d723ad2e06322ff8d9bd0ba4863d243f698e7") (:keywords "convenience") (:authors ("Tomohiro Matsuyama" . "m2ym.pub@gmail.com")) (:maintainer "Tomohiro Matsuyama" . "m2ym.pub@gmail.com"))]) -(futhark-mode . [(20190412 937) ((emacs (24 3)) (cl-lib (0 5))) "major mode for editing Futhark source files" tar ((:commit . "f8e5a13b39517e62607647422914a63fe60547b2") (:keywords "languages") (:url . "https://github.com/diku-dk/futhark-mode"))]) -(furl . [(20150509 316) nil "Friendly URL retrieval" single ((:commit . "014438271e0ef27333dfcd599cb247f12a20d870") (:authors ("Natalie Weizenbaum" . "nweiz@google.com")) (:maintainer "Natalie Weizenbaum" . "nweiz@google.com"))]) -(fuo . [(20180314 1648) ((emacs (24 4))) "feeluown client." single ((:commit . "5318bef9d935b53031e6312652554920def69af2") (:keywords "feeluown" "multimedia" "unix") (:authors ("cosven" . "yinshaowen241@gmail.com")) (:maintainer "cosven" . "yinshaowen241@gmail.com") (:url . "http://github.com/cosven/emacs-fuo"))]) -(function-args . [(20171031 1704) ((ivy (0 9 1))) "C++ completion for GNU Emacs" tar ((:commit . "609b25305670fff08d5e357298e7128e4f4e3497") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/function-args"))]) -(fullframe . [(20170816 1003) ((cl-lib (0 5))) "Generalized automatic execution in a single frame" single ((:commit . "d6a5217f7f2a5a5edcb75140f3fa69b3a50f1cdd") (:keywords "fullscreen") (:authors ("Tom Regner" . "tom@goochesa.de")) (:maintainer "Tom Regner" . "tom@goochesa.de"))]) -(full-ack . [(20140223 1732) nil "a front-end for ack" single ((:commit . "761d846e105b150f8e6d13d7a8983f0248313a45") (:keywords "tools" "matching") (:authors ("Nikolaj Schumacher <bugs * nschum de>")) (:maintainer "Nikolaj Schumacher <bugs * nschum de>") (:url . "http://nschum.de/src/emacs/full-ack/"))]) -(fuff . [(20170202 1503) ((seq (2 3))) "Find files with findutils, recursively" single ((:commit . "278e849913df87bd8756c59382282d87474802c3") (:keywords "files" "project" "convenience") (:authors ("Joel Moberg")) (:maintainer "Joel Moberg") (:url . "https://github.com/joelmo/fuff"))]) -(fuel . [(20190611 1350) ((cl-lib (0 2)) (emacs (24 2))) "Major mode for the Factor programming language." tar ((:commit . "00a0edb1991b7b58088c68ff4a8f2553efeae471"))]) -(fstar-mode . [(20190613 1822) ((emacs (24 3)) (dash (2 11)) (company (0 8 12)) (quick-peek (1 0)) (yasnippet (0 11 0)) (flycheck (30 0)) (company-quickhelp (2 2 0))) "Support for F* programming" tar ((:commit . "9ce914a35c7c4a413279087c795c329ca88d0bc1") (:keywords "convenience" "languages") (:authors ("Clément Pit-Claudel" . "clement.pitclaudel@live.com")) (:maintainer "Clément Pit-Claudel" . "clement.pitclaudel@live.com") (:url . "https://github.com/FStarLang/fstar-mode.el"))]) -(fsharp-mode . [(20190609 1317) ((company (0 8 0)) (company-quickhelp (1 2 0)) (popup (0 5 3)) (pos-tip (0 4 5)) (s (1 3 1)) (dash (1 1 0)) (flycheck (0 25))) "F# mode for Emacs" tar ((:commit . "e2a63296681d65969d9c21144a22c6fd2f9dd57d"))]) -(fsbot-data-browser . [(20160921 1533) nil "browse the fsbot database using tabulated-list-mode" single ((:commit . "6bca4f7de63e31839d2542f6c678b79931dec344") (:keywords "fsbot" "irc" "tabulated-list-mode") (:authors ("Benaiah Mischenko")) (:maintainer "Benaiah Mischenko") (:url . "http://github.com/benaiah/fsbot-data-browser"))]) -(fringe-helper . [(20140620 2109) nil "helper functions for fringe bitmaps" single ((:commit . "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd") (:keywords "lisp") (:authors ("Nikolaj Schumacher <bugs * nschum de>")) (:maintainer "Nikolaj Schumacher <bugs * nschum de>") (:url . "http://nschum.de/src/emacs/fringe-helper/"))]) -(fringe-current-line . [(20140111 411) nil "show current line on the fringe." single ((:commit . "0ef000bac76abae30601222e6f06c7d133ab4942") (:authors ("Kouhei Yanagita" . "yanagi@shakenbu.org")) (:maintainer "Kouhei Yanagita" . "yanagi@shakenbu.org") (:url . "http://github.com/kyanagi/fringe-current-line/raw/master/fringe-current-line.el"))]) -(freeradius-mode . [(20190401 1743) ((emacs (24 4))) "major mode for FreeRadius server config files" single ((:commit . "cf8bf0359cf6c77848facbd24b764b3e111b4c2d") (:url . "https://github.com/VersBinarii/freeradius-mode"))]) -(free-keys . [(20160726 2050) ((cl-lib (0 3))) "Show free keybindings for modkeys or prefixes" single ((:commit . "edfd69dc369b2647447b7c28c7c1163b1ddf45b4") (:keywords "convenience") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/free-keys"))]) -(frecency . [(20170909 631) ((emacs (25 1)) (a (0 1)) (dash (2 13 0))) "Library for sorting items by frequency and recency of access" single ((:commit . "31ef9ff4af1a4fed3dcc24ea74037feea8795c87") (:keywords "libraries" "recency" "recent" "frequency" "frequent") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/frecency.el"))]) -(framesize . [(20131017 2132) ((key-chord (0 5 20080915))) "change the size of frames in Emacs" single ((:commit . "f2dbf5d2513b2bc45f2085370a55c1754b6025da") (:keywords "frames") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk") (:url . "http://github.com/nicferrier/emacs-framesize"))]) -(frameshot . [(20181219 2100) ((emacs (25 3))) "Take screenshots of a frame" single ((:commit . "d0b76e4a5d9d112690bf27155f7c34a1ae5548b4") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/frameshot"))]) -(frames-only-mode . [(20190524 1439) ((emacs (24 4)) (dash (2 13 0)) (s (1 11 0))) "Use frames instead of Emacs windows" single ((:commit . "ce55b3ad3b3cb4c4253a0172bb8e9461814b2d64") (:keywords "frames" "windows") (:authors ("David Shepherd" . "davidshepherd7@gmail.com")) (:maintainer "David Shepherd" . "davidshepherd7@gmail.com") (:url . "https://github.com/davidshepherd7/frames-only-mode"))]) -(frame-tag . [(20170111 6) ((cl-lib (0 5))) "Minor mode that assigns a unique number to each frame for easy switching" single ((:commit . "73d6163568c7d32952175e663318b872f995a4e5") (:keywords "frame" "movement") (:authors ("Wong Liang Zan" . "zan@liangzan.net")) (:maintainer "Wong Liang Zan" . "zan@liangzan.net") (:url . "http://github.com/liangzan/frame-tag.el"))]) -(frame-purpose . [(20190114 1403) ((emacs (25 1)) (dash (2 12)) (dash-functional (1 2 0))) "Purpose-specific frames" single ((:commit . "78f978f13589ec5c5370187c008c8aa83e6e71b4") (:keywords "buffers" "convenience" "frames") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/frame-purpose.el"))]) -(frame-mode . [(20190507 500) ((s (1 9 0)) (emacs (24 4))) "Use frames instead of windows" single ((:commit . "bec163a7aecae0847817fb0e36413b0ab1e47d1f") (:keywords "frames") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:url . "https://github.com/IvanMalison/frame-mode"))]) -(frame-local . [(20180330 940) ((emacs (25 1))) "Variables local to a frame" single ((:commit . "7ee1106c3bcd4022f48421f8cb1ef4f995da816e") (:keywords "frames" "tools" "local" "lisp") (:authors ("Sebastien Chapuis" . "sebastien@chapu.is")) (:maintainer "Sebastien Chapuis" . "sebastien@chapu.is") (:url . "https://github.com/sebastiencs/frame-local"))]) -(fraktur-mode . [(20160815 227) ((cl-lib (0 5))) "Easily insert Unicode mathematical Fraktur characters" single ((:commit . "514baf5546aed12a0d9fa0fe66e87cdcc7843b08") (:keywords "unicode" "fraktur" "math" "mathematical") (:authors ("Grant Rettke" . "gcr@wisdomandwonder.com")) (:maintainer nil . "<gcr@wisdomandwonder.com>") (:url . "https://github.com/grettke/fraktur-mode"))]) -(fountain-mode . [(20181226 744) ((emacs (24 5))) "Major mode for screenwriting in Fountain markup" single ((:commit . "fe6e334a8fa26ce162cd48b84ca46a40475ced03") (:keywords "wp" "text") (:authors ("Paul Rankin" . "hello@paulwrankin.com")) (:maintainer "Paul Rankin" . "hello@paulwrankin.com"))]) -(fortune-cookie . [(20181223 842) nil "Print a fortune in your scratch buffer." single ((:commit . "6c1c08f5be83822c0b762872ab25e3dbee96f333") (:keywords "fortune" "cowsay" "scratch" "startup") (:authors ("Andrew Schwartzmeyer" . "andrew@schwartzmeyer.com")) (:maintainer "Andrew Schwartzmeyer" . "andrew@schwartzmeyer.com") (:url . "https://github.com/andschwa/fortune-cookie"))]) -(fortpy . [(20150715 2032) ((epc (0 1 0)) (auto-complete (1 4)) (python-environment (0 0 2)) (pos-tip (0 4 5))) "a Fortran auto-completion for Emacs" tar ((:commit . "c614517e9396ef7a78be3b8786fbf303879cf43b") (:authors ("Conrad Rosenbrock <rosenbrockc at gmail.com>")) (:maintainer "Conrad Rosenbrock <rosenbrockc at gmail.com>"))]) -(forth-mode . [(20170527 1930) nil "Programming language mode for Forth" tar ((:commit . "522256d98d1a909983bcfd3ae20c65226d5929b6") (:keywords "languages" "forth") (:authors ("Lars Brinkhoff" . "lars@nocrew.org")) (:maintainer "Lars Brinkhoff" . "lars@nocrew.org") (:url . "http://github.com/larsbrinkhoff/forth-mode"))]) -(format-table . [(20181223 1616) ((emacs (25)) (dash (2 14 1))) "Parse and reformat tabular data." single ((:commit . "dfcae3a867e574577fc09a43b045889ff155b58f") (:keywords "data") (:authors ("Jason Duncan" . "jasond496@msn.com")) (:maintainer "Jason Duncan" . "jasond496@msn.com") (:url . "https://github.com/functionreturnfunction/format-table"))]) -(format-sql . [(20150422 1333) nil "Use format-sql to make your SQL readable in directly Emacs." single ((:commit . "97f475c245cd6c81a72a265678e2087cee66ac7b") (:authors ("Friedrich Paetzke" . "paetzke@fastmail.fm")) (:maintainer "Friedrich Paetzke" . "paetzke@fastmail.fm") (:url . "https://github.com/paetzke/format-sql.el"))]) -(format-all . [(20190606 853) ((emacs (24)) (cl-lib (0 5))) "Auto-format C, C++, JS, Python, Ruby and 30 other languages" single ((:commit . "f3ed09c430c80d17fcc34f130f32072177f4ef2b") (:keywords "languages" "util") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:url . "https://github.com/lassik/emacs-format-all-the-code"))]) -(form-feed . [(20160102 2253) nil "Display ^L glyphs as horizontal lines" single ((:commit . "799ca3e72b20a59a755a094b8cead57f654f3170") (:keywords "faces") (:authors ("Vasilij Schneidermann" . "v.schneidermann@gmail.com")) (:maintainer "Vasilij Schneidermann" . "v.schneidermann@gmail.com") (:url . "https://github.com/wasamasa/form-feed"))]) -(forge . [(20190618 1005) ((emacs (25 1)) (closql (1 0 0)) (dash (2 14 1)) (emacsql-sqlite (3 0 0)) (ghub (20190319)) (let-alist (1 0 5)) (magit (20190408)) (markdown-mode (2 3)) (transient (0 1 0))) "Access Git forges from Magit." tar ((:commit . "7d6f6f0dac6872fb8a044f958ff3ef187cc8942b"))]) -(forest-blue-theme . [(20160627 842) ((emacs (24))) "Emacs theme with a dark background." single ((:commit . "58096ce1a25615d2bae806c3775bae3e2775019d") (:authors ("olkinn")) (:maintainer "olkinn"))]) -(foreman-mode . [(20170725 1422) ((s (1 9 0)) (dash (2 10 0)) (dash-functional (1 2 0)) (f (0 17 2)) (emacs (24))) "View and manage Procfile-based applications" single ((:commit . "22b3bb13134b617870ed1e888af739f4818be929") (:keywords "foreman") (:authors ("ZHOU Feng" . "zf.pascal@gmail.com")) (:maintainer "ZHOU Feng" . "zf.pascal@gmail.com") (:url . "http://github.com/zweifisch/foreman-mode"))]) -(foreign-regexp . [(20180224 1121) nil "search and replace by foreign regexp." tar ((:commit . "2ec5c44f27c2396ee487aa0ed77ae47d143fa5aa") (:keywords "convenience" "emulations" "matching" "tools" "unix" "wp") (:authors ("K-talo Miyazaki <Keitaro dot Miyazaki at gmail dot com>")) (:maintainer "K-talo Miyazaki <Keitaro dot Miyazaki at gmail dot com>"))]) -(forecast . [(20190124 1828) ((emacs (24 4))) "Weather forecasts" single ((:commit . "1c4b082f6f19c2563dbfbc48b996a915843624bb") (:keywords "weather" "forecast") (:authors ("GöktuÄŸ Kayaalp" . "self@gkayaalp.com")) (:maintainer "GöktuÄŸ Kayaalp" . "self@gkayaalp.com") (:url . "https://dev.gkayaalp.com/elisp/index.html#forecast-el"))]) -(fontify-face . [(20180420 1624) ((emacs (24))) "Fontify symbols representing faces with that face." single ((:commit . "30ec0134f04d2b156bbc772e94edfa1a31ef0a58") (:keywords "faces") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/fontify-face"))]) -(fontawesome . [(20170305 1356) ((emacs (24 4))) "fontawesome utility" tar ((:commit . "a743f80bfd53767ca9ee32da34c5ca032172a480") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-fontawesome"))]) -(font-utils . [(20150806 1751) ((persistent-soft (0 8 8)) (pcache (0 2 3))) "Utility functions for working with fonts" single ((:commit . "9192d3f8ee6a4e75f34c3fed10378674cc2b11d3") (:keywords "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/font-utils"))]) -(font-lock-studio . [(20170127 2051) ((emacs (24 3))) "interactive debugger for Font Lock keywords." single ((:commit . "12c35967b31233e06946c70627aa3152dacfe261") (:keywords "faces" "tools") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/font-lock-studio"))]) -(font-lock-profiler . [(20170208 2008) ((emacs (24 3))) "Coverage and timing tool for font-lock keywords." single ((:commit . "6e096458416888a4f63cca0d6bc5965a052753c8") (:keywords "faces" "tools") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/font-lock-profiler"))]) -(folding . [(20190524 1632) nil "A folding-editor-like minor mode." tar ((:commit . "a1361aa154b27bd4db2e1cfe6c3b81b4fc1fdc9a") (:keywords "tools") (:maintainer "Jari Aalto <jari aalto A T cante dt net>"))]) -(fold-this . [(20190606 1742) nil "Just fold this region please" single ((:commit . "5bf939eac736da9affb410efd5a18cc04dabd837") (:keywords "convenience") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com") (:url . "https://github.com/magnars/fold-this.el"))]) -(fold-dwim-org . [(20131203 1351) ((fold-dwim (1 2))) "Fold DWIM bound to org key-strokes." single ((:commit . "c09bb2b46d65afbd1d0febc6fded7495be7a3037") (:keywords "folding" "emacs" "org-mode") (:authors ("Matthew L. Fidler & Shane Celis")) (:maintainer "Matthew L. Fidler") (:url . "https://github.com/mlf176f2/fold-dwim-org"))]) -(fold-dwim . [(20140208 1637) nil "Unified user interface for Emacs folding modes" single ((:commit . "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b") (:authors ("Peter Heslin" . "p.j.heslin@dur.ac.uk")) (:maintainer "Peter Heslin" . "p.j.heslin@dur.ac.uk") (:url . "http://www.dur.ac.uk/p.j.heslin/Software/Emacs"))]) -(foggy-night-theme . [(20190123 1614) ((emacs (24))) "Dark low contrast theme with soft and muted colors." single ((:commit . "14894e06ee5c6e14db36f2cb07387ee971c1736f") (:authors ("Martin Haesler")) (:maintainer "Martin Haesler"))]) -(focus-autosave-mode . [(20160519 2116) ((emacs (24 4))) "Automatically save files in focus-out-hook." single ((:commit . "2e0844fabb6f0dc9e0f31928e4785febf38b9e35") (:keywords "convenience" "files" "frames" "mouse") (:authors ("Wojciech Siewierski" . "wojciech.siewierski@onet.pl")) (:maintainer "Wojciech Siewierski" . "wojciech.siewierski@onet.pl"))]) -(focus . [(20190318 242) ((emacs (24 3)) (cl-lib (0 5))) "Dim the font color of text in surrounding sections" single ((:commit . "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f") (:authors ("Lars Tveito" . "larstvei@ifi.uio.no")) (:maintainer "Lars Tveito" . "larstvei@ifi.uio.no") (:url . "http://github.com/larstvei/Focus"))]) -(fn . [(20170210 204) ((emacs (24)) (cl-lib (0 5)) (dash (2 12 1)) (dash-functional (1 2 0))) "Concise anonymous functions for Emacs Lisp" single ((:commit . "f685fd0c08ec3b1d1b9974b37e62edd78a000cb8") (:keywords "functional") (:authors ("Troy Pracy")) (:maintainer "Troy Pracy"))]) -(fm-bookmarks . [(20170104 1716) ((emacs (24 3)) (cl-lib (0 5))) "Use file manager bookmarks (eg Dolphin, Nautilus, PCManFM) in Dired" single ((:commit . "11dacfd16a926bfecba96a94c6b13e162c7717f7") (:keywords "files" "convenience") (:authors ("Ono Hiroko" . "azazabc123@gmail.com")) (:maintainer "Ono Hiroko" . "azazabc123@gmail.com") (:url . "http://github.com/kuanyui/fm-bookmarks.el"))]) -(flyspell-popup . [(20170529 815) ((popup (0 5 0))) "Correcting words with Flyspell in popup menus" single ((:commit . "29311849bfd253b9b689bf331860b4c4d3bd4dde") (:keywords "convenience") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/flyspell-popup"))]) -(flyspell-lazy . [(20180224 2106) nil "Improve flyspell responsiveness using idle timers" single ((:commit . "3ebf68cc9eb10c972a2de8d7861cbabbbce69570") (:keywords "spelling") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/flyspell-lazy"))]) -(flyspell-correct-popup . [(20181205 1932) ((flyspell-correct (0 5 0)) (popup (0 5 3))) "correcting words with flyspell via popup interface" single ((:commit . "a0852074bab130a711ba6b4696a7cb8059dac8db") (:authors ("Boris Buliga" . "boris@d12frosted.io")) (:maintainer "Boris Buliga" . "boris@d12frosted.io") (:url . "https://github.com/d12frosted/flyspell-correct"))]) -(flyspell-correct-ivy . [(20181205 1932) ((flyspell-correct (0 5 0)) (ivy (0 8 0))) "correcting words with flyspell via ivy interface" single ((:commit . "a0852074bab130a711ba6b4696a7cb8059dac8db") (:authors ("Boris Buliga" . "boris@d12frosted.io")) (:maintainer "Boris Buliga" . "boris@d12frosted.io") (:url . "https://github.com/d12frosted/flyspell-correct"))]) -(flyspell-correct-helm . [(20181205 1932) ((flyspell-correct (0 5 0)) (helm (1 9 0))) "correcting words with flyspell via helm interface" single ((:commit . "a0852074bab130a711ba6b4696a7cb8059dac8db") (:authors ("Boris Buliga" . "boris@d12frosted.io")) (:maintainer "Boris Buliga" . "boris@d12frosted.io") (:url . "https://github.com/d12frosted/flyspell-correct"))]) -(flyspell-correct . [(20190408 1010) nil "correcting words with flyspell via custom interface" tar ((:commit . "a0852074bab130a711ba6b4696a7cb8059dac8db") (:authors ("Boris Buliga" . "boris@d12frosted.io")) (:maintainer "Boris Buliga" . "boris@d12frosted.io") (:url . "https://github.com/d12frosted/flyspell-correct"))]) -(flyparens . [(20140723 1846) nil "Check for unbalanced parens on the fly" tar ((:commit . "af9b8cfd647d0e5f97684d613dc2eea7cfc19398") (:keywords "faces" "convenience" "lisp" "matching" "parentheses" "parens") (:authors ("Jisang Yoo")) (:maintainer "Jisang Yoo"))]) -(flymd . [(20160617 1214) ((cl-lib (0 5))) "On the fly markdown preview" tar ((:commit . "84d5a68bcfed4a295952c33ffcd11e880978d9d7") (:keywords "markdown" "convenience") (:authors ("Mola-T" . "Mola@molamola.xyz")) (:maintainer "Mola-T" . "Mola@molamola.xyz") (:url . "https://github.com/mola-T/flymd"))]) -(flymake-yaml . [(20130423 1548) ((flymake-easy (0 1))) "A flymake handler for YAML" single ((:commit . "24cb5b744a1796e554e6dbfc6eeb237d06a00b10") (:keywords "yaml") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/yasuyk/flymake-yaml"))]) -(flymake-vnu . [(20181128 216) ((emacs (26 1))) "Flymake extension for the v.Nu HTML validator." single ((:commit . "7c4ab9d12611756ad5a80d866890b2f9b73fb611") (:keywords "languages") (:maintainer "Stefan Kuznetsov" . "skuznetsov@posteo.net") (:url . "https://github.com/theneosloth/flymake-vnu"))]) -(flymake-vala . [(20150326 531) ((flymake-easy (0 1))) "A flymake handler for vala-mode files" single ((:commit . "c3674f461fc84fb0300cd3a562fb903a59782745") (:keywords "convenience" "vala") (:authors ("Daniel Lawrence" . "dannyla@linux.com")) (:maintainer "Daniel Lawrence" . "dannyla@linux.com") (:url . "https://github.com/daniellawrence/flymake-vala"))]) -(flymake-solidity . [(20170805 644) ((flymake-easy (0 10))) "A flymake handler for solidity using solc" single ((:commit . "48bfe9525f764d8a68cc0270905dbf45bfd00bb8") (:authors ("Pascal van Kooten" . "kootenpv@gmail.com")) (:maintainer "Pascal van Kooten" . "kootenpv@gmail.com") (:url . "https://github.com/kootenvp/flymake-solidity"))]) -(flymake-shellcheck . [(20181214 24) ((emacs (26))) "A bash/sh Flymake backend powered by ShellCheck" single ((:commit . "e22385a9e752e58b18d4c6371e6ff1602bb764f2") (:authors ("Federico Tedin" . "federicotedin@gmail.com")) (:maintainer "Federico Tedin" . "federicotedin@gmail.com") (:url . "https://github.com/federicotdn/flymake-shellcheck"))]) -(flymake-shell . [(20170723 146) ((flymake-easy (0 1))) "A flymake syntax-checker for shell scripts" single ((:commit . "a16cf453056b9849cc7c912bb127fb0b08fc6dab") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-shell"))]) -(flymake-sass . [(20170723 146) ((flymake-easy (0 1))) "Flymake handler for sass and scss files" single ((:commit . "2de28148e92deb93bff3d55fe14e7c67ac476056") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-sass"))]) -(flymake-rust . [(20170729 2139) ((flymake-easy (0 1))) "A flymake handler for rust-mode files" single ((:commit . "2f42d1f2dad73ec9de460eda6176e3ab25c446f0") (:authors ("Joao Oliveira" . "joaoxsouls@gmail.com")) (:maintainer "Joao Oliveira" . "joaoxsouls@gmail.com") (:url . "https://github.com/joaoxsouls/flymake-rust"))]) -(flymake-ruby . [(20170723 146) ((flymake-easy (0 1))) "A flymake handler for ruby-mode files" single ((:commit . "6c320c6fb686c5223bf975cc35178ad6b195e073") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-ruby"))]) -(flymake-racket . [(20180912 109) ((emacs (26 1))) "Flymake extension for Racket." single ((:commit . "d20fa60d66db3f7c2df0133814564ee5b36d2aba") (:keywords "languages" "racket" "scheme") (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/jojojames/flymake-racket"))]) -(flymake-python-pyflakes . [(20170723 146) ((flymake-easy (0 8))) "A flymake handler for python-mode files using pyflakes (or flake8)" single ((:commit . "1d65c26bf65a5dcbd29fcd967e2feb90e1e7a33d") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-python-pyflakes"))]) -(flymake-puppet . [(20170801 554) ((flymake-easy (0 9))) "Flymake handler using puppet-lint" single ((:commit . "8a772395f4ccc59d883712ab53a92a17c1d9a429") (:authors ("Ben Prew")) (:maintainer "Ben Prew") (:url . "https://github.com/benprew/flymake-puppet"))]) -(flymake-phpcs . [(20140713 631) ((flymake-easy (0 9))) "making flymake work with PHP CodeSniffer" single ((:commit . "bba25dbda15955b609ceae0893cf3be74ec67230") (:keywords "flymake" "phpcs" "php") (:authors ("Akiha Senda")) (:maintainer "Akiha Senda") (:url . "https://github.com/senda-akiha/flymake-phpcs/"))]) -(flymake-php . [(20170723 146) ((flymake-easy (0 1))) "A flymake handler for php-mode files" single ((:commit . "c045d01e002ba5e09b05f40e25bf5068d02126bc") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-php"))]) -(flymake-perlcritic . [(20120328 814) ((flymake (0 3))) "Flymake handler for Perl to invoke Perl::Critic" tar ((:commit . "edfaa86500ddfa8a6a6f51f5581a81a821277df6") (:authors ("Sam Graham <libflymake-perlcritic-emacs BLAHBLAH illusori.co.uk>")) (:maintainer "Sam Graham <libflymake-perlcritic-emacs BLAHBLAH illusori.co.uk>") (:url . "https://github.com/illusori/emacs-flymake-perlcritic"))]) -(flymake-lua . [(20170129 154) nil "Flymake for Lua" single ((:commit . "84589f20066921a5b79cf3a1f914a223a2552d2a") (:keywords "lua") (:authors (nil . "Sébastien Roccaserra (format \"<%s%s@%s.%s>\" \"s\" \"roccaserra\" \"yahoo\" \"com\")")) (:maintainer nil . "Sébastien Roccaserra (format \"<%s%s@%s.%s>\" \"s\" \"roccaserra\" \"yahoo\" \"com\")"))]) -(flymake-less . [(20151111 738) ((less-css-mode (0 15)) (flymake-easy (0 1))) "Flymake handler for LESS stylesheets (lesscss.org)" single ((:commit . "32d3c28a9a5c52b82d1741ff9d715013b6498421") (:keywords "languages") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com"))]) -(flymake-ktlint . [(20180831 346) ((emacs (26 1))) "Flymake extension for Ktlint." single ((:commit . "56aab6f2d22061999050783dbc3166cdb456d0bb") (:keywords "languages" "ktlint") (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/jojojames/flymake-ktlint"))]) -(flymake-json . [(20180511 911) ((flymake-easy (0 1))) "A flymake handler for json using jsonlint" single ((:commit . "ae58795f948402e987cda4c15f10354f8ec2d0fd") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-json"))]) -(flymake-jslint . [(20170723 146) ((flymake-easy (0 1))) "A flymake handler for javascript using jslint" single ((:commit . "8edb82be605542b0ef62d38d818adcdde335eecb") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-jslint"))]) -(flymake-jshint . [(20140319 2200) ((flymake-easy (0 8))) "making flymake work with JSHint" single ((:commit . "79dd554c227883c487db38ac111306c8d5382c95") (:keywords "flymake" "jshint" "javascript") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(flymake-hlint . [(20170723 146) ((flymake-easy (0 1))) "A flymake handler for haskell-mode files using hlint" single ((:commit . "f910736b26784efc9a2fa29503f45c1f1dd0aa38") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-hlint"))]) -(flymake-haskell-multi . [(20170723 146) ((flymake-easy (0 1))) "Syntax-check haskell-mode using both ghc and hlint" tar ((:commit . "b564a94312259885b1380272eb867bf52a164020"))]) -(flymake-haml . [(20170723 146) ((flymake-easy (0 1))) "A flymake handler for haml files" single ((:commit . "22a81e8484734552d461e7ae7305664dc244447e") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-haml"))]) -(flymake-gradle . [(20190315 233) ((emacs (26 1))) "Flymake extension for Gradle." single ((:commit . "dbedd29b78d4828ef57d4de20867be5df3eaab99") (:keywords "languages" "gradle") (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/jojojames/flymake-gradle"))]) -(flymake-google-cpplint . [(20140205 1325) ((flymake-easy (0 9))) "Help to comply with the Google C++ Style Guide" single ((:commit . "426e56ae1278d7a078c368e9d495003825ada0bd") (:keywords "flymake" "c" "c++") (:authors ("Akiha Senda" . "senda.akiha@gmail.com")) (:maintainer "Akiha Senda" . "senda.akiha@gmail.com") (:url . "https://github.com/senda-akiha/flymake-google-cpplint/"))]) -(flymake-go . [(20150714 733) nil "A flymake handler for go-mode files" single ((:commit . "ae83761aa908c1a50ff34af04f00dcc46bca2ce9") (:keywords "go" "flymake") (:authors ("Michael Fellinger" . "michael@iron.io") ("Robert Zaremba" . "robert.marek.zaremba@wp.eu")) (:maintainer "Michael Fellinger" . "michael@iron.io") (:url . "https://github.com/robert-zaremba/flymake-go"))]) -(flymake-gjshint . [(20130327 1232) nil "A flymake handler for javascript using both jshint and gjslint" single ((:commit . "dc957c14cb060819585de8aedb330e24efa4b784") (:keywords "flymake" "javascript" "jshint" "gjslint") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com"))]) -(flymake-eslint . [(20190521 411) ((emacs (26 0))) "A Flymake backend for Javascript using eslint" single ((:commit . "d4be92ea779ea333b599fd125817f943a676a63a") (:authors ("Dan Orzechowski")) (:maintainer "Dan Orzechowski") (:url . "https://github.com/orzechowskid/flymake-eslint"))]) -(flymake-elixir . [(20130810 1417) nil "A flymake handler for elixir-mode .ex files." single ((:commit . "3810566cffe35d04cc3f01e27fe397d68d52f802") (:authors ("Sylvain Benner" . "syl20bnr@gmail.com")) (:maintainer "Sylvain Benner" . "syl20bnr@gmail.com"))]) -(flymake-easy . [(20140818 755) nil "Helpers for easily building flymake checkers" single ((:commit . "de41ea49503f71f997e5c359a2ad08df696c0147") (:keywords "convenience" "internal") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-easy"))]) -(flymake-diagnostic-at-point . [(20180815 1004) ((emacs (26 1)) (popup (0 5 3))) "Display flymake diagnostics at point" single ((:commit . "379616b1c6f5ebeaf08fbe54ae765008a78b3be7") (:keywords "convenience" "languages" "tools") (:authors ("Ricardo Martins" . "ricardo@scarybox.net")) (:maintainer "Ricardo Martins" . "ricardo@scarybox.net") (:url . "https://github.com/meqif/flymake-diagnostic-at-point"))]) -(flymake-cursor . [(20120322 1757) ((flymake (0 3))) "Show flymake messages in the minibuffer after delay" single ((:commit . "ecc539082c3fc9e91bba33d72c26989217411593") (:keywords "languages" "mode" "flymake") (:authors ("Unknown Original Author") ("Dino Chiesa" . "dpchiesa@hotmail.com") ("Sam Graham <libflymake-emacs BLAHBLAH illusori.co.uk>")) (:maintainer "Sam Graham <libflymake-emacs BLAHBLAH illusori.co.uk>") (:url . "https://github.com/illusori/emacs-flymake-cursor"))]) -(flymake-css . [(20170723 146) ((flymake-easy (0 1))) "Flymake support for css using csslint" single ((:commit . "de090163ba289910ceeb61b13368ce42d0f2dfd8") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-css"))]) -(flymake-cppcheck . [(20140415 1257) ((flymake-easy (0 9))) "Flymake work with Cppcheck for C/C++" single ((:commit . "7eac8c7b9c74ebb5e600686f1f3891767dc87bb2") (:keywords "flymake" "cppcheck" "c" "c++") (:authors ("Akiha Senda" . "senda.akiha@gmail.com")) (:maintainer "Akiha Senda" . "senda.akiha@gmail.com") (:url . "https://github.com/senda-akiha/flymake-cppcheck/"))]) -(flymake-coffee . [(20170723 146) ((flymake-easy (0 1))) "A flymake handler for coffee script" single ((:commit . "dee295acf30820ed15fe0de17137d50bc27fc80c") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/flymake-coffee"))]) -(flycheck-ycmd . [(20181016 618) ((emacs (24)) (dash (2 13 0)) (flycheck (0 22)) (ycmd (1 2)) (let-alist (1 0 5))) "flycheck integration for ycmd" single ((:commit . "6f4f7384b82203cccf208e3ec09252eb079439f9") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/emacs-ycmd"))]) -(flycheck-yang . [(20180312 1831) ((yang-mode (0 9 4)) (flycheck (0 18))) "YANG flycheck checker" single ((:commit . "47881fc42ef0163c47064b72b5d6dbef4f83d778") (:authors (nil . "Andrew Fort (@andaru)")) (:maintainer nil . "Andrew Fort (@andaru)"))]) -(flycheck-yamllint . [(20170325 1735) ((flycheck (30))) "Flycheck integration for YAMLLint" single ((:commit . "c2b273d84f15bd03464d6722391e595d7c179a5c") (:keywords "convenience" "languages" "tools") (:authors ("Krzysztof Magosa" . "krzysztof@magosa.pl")) (:maintainer "Krzysztof Magosa" . "krzysztof@magosa.pl") (:url . "https://github.com/krzysztof-magosa/flycheck-yamllint"))]) -(flycheck-xcode . [(20180122 651) ((emacs (25 1)) (flycheck (0 25))) "Flycheck extension for Apple's Xcode." single ((:commit . "b76f872c8985801951a095b8b3c1572b94189f9e") (:keywords "languages" "xcode") (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/jojojames/flycheck-xcode"))]) -(flycheck-vdm . [(20190304 839) ((emacs (24)) (flycheck (32 -4)) (vdm-mode (0 0 4))) "Syntax checking for vdm-mode" single ((:commit . "89e7db6ee1a89b8c1f7ce36ce6800c32b5c4ba2d") (:keywords "languages") (:authors ("Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com")) (:maintainer "Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com") (:url . "https://github.com/peterwvj/vdm-mode"))]) -(flycheck-vale . [(20190609 1533) ((emacs (24 4)) (flycheck (0 22)) (let-alist (1 0 4))) "flycheck integration for vale" single ((:commit . "f08249535348d046d0974b9c20fe1b7dd3cd2660") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/flycheck-vale"))]) -(flycheck-title . [(20170216 2346) ((flycheck (30)) (emacs (24))) "show flycheck errors in the frame title" single ((:commit . "6faea67be8661faf8152217869d16e993cc2bc49") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(flycheck-tip . [(20171020 1048) ((flycheck (29)) (emacs (24 1)) (popup (0 5 0))) "Show flycheck/flymake errors by tooltip" tar ((:commit . "9b0072d92e6b4a52834bf5a34120a0f5e1c8c2fd") (:keywords "flycheck") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:url . "https://github.com/yuutayamada/flycheck-tip"))]) -(flycheck-tcl . [(20180327 1259) ((emacs (24 4)) (flycheck (0 22))) "A flycheck checker for Tcl using tclchecker" single ((:commit . "7ca23f4673e178b9f5dcc8a82b86cf05b15d7236") (:authors ("Niels Widger" . "niels.widger@gmail.com")) (:maintainer "Niels Widger" . "niels.widger@gmail.com") (:url . "https://github.com/nwidger/flycheck-tcl"))]) -(flycheck-swiftlint . [(20180830 340) ((emacs (25 1)) (flycheck (0 25))) "Flycheck extension for Swiftlint." single ((:commit . "8861ddbd9c1c2a951630d9ea29162ad0916580cb") (:keywords "languages" "swiftlint" "swift" "emacs") (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/jojojames/flycheck-swiftlint"))]) -(flycheck-swift3 . [(20190421 110) ((emacs (24 4)) (flycheck (26))) "Flycheck: Swift support for Apple swift-mode" single ((:commit . "811a765a0106bbdc8d6a721b22a2a97f3527df7c") (:keywords "convenience" "languages" "tools") (:authors ("Goichi Hirakawa" . "gooichi@gyazsquare.com")) (:maintainer "Goichi Hirakawa" . "gooichi@gyazsquare.com") (:url . "https://github.com/GyazSquare/flycheck-swift3"))]) -(flycheck-swift . [(20170129 549) ((emacs (24 4)) (flycheck (0 25))) "Flycheck extension for Apple's Swift." single ((:commit . "4c5ad401252400a78da395fd56a71e67ff8c2761") (:keywords "languages" "swift"))]) -(flycheck-status-emoji . [(20180330 2325) ((cl-lib (0 1)) (emacs (24)) (flycheck (0 20)) (let-alist (1 0))) "Show flycheck status using cute, compact emoji" single ((:commit . "4bd113ab42dec9544b66e0a27ed9008ce8148433") (:keywords "convenience" "languages" "tools") (:authors ("Ben Liblit" . "liblit@acm.org")) (:maintainer "Ben Liblit" . "liblit@acm.org") (:url . "https://github.com/liblit/flycheck-status-emoji"))]) -(flycheck-stack . [(20160520 944) ((flycheck (26)) (haskell-mode (13))) "Flychecker using stack ghci" single ((:commit . "f04235e00998000ee2c305f5a3ee72bb5dbbc926"))]) -(flycheck-soar . [(20181106 852) ((emacs (25 1)) (flycheck (0 22))) "Analyze the SQL statements using mi soar." single ((:commit . "d2f03a0af9b625a645f3194dc24cfeee94d92760") (:keywords "convenience") (:authors ("zg" . "13853850881@163.com")) (:maintainer "zg" . "13853850881@163.com") (:url . "https://github.com/tszg/flycheck-soar"))]) -(flycheck-rust . [(20190319 1546) ((emacs (24 1)) (flycheck (28)) (dash (2 13 0)) (seq (2 3)) (let-alist (1 0 4))) "Flycheck: Rust additions and Cargo support" single ((:commit . "a139cd53c5062697e9ed94ad80b803c37d999600") (:keywords "tools" "convenience") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Sebastian Wiesner" . "swiesner@lunaryorn.com") (:url . "https://github.com/flycheck/flycheck-rust"))]) -(flycheck-rtags . [(20180619 824) ((emacs (24)) (flycheck (0 23)) (rtags (2 10))) "RTags Flycheck integration." single ((:commit . "d49e49f46b878e0d10f6ddc3951d690d50e75277") (:authors ("Christian Schwarzgruber" . "c.schwarzgruber.cs@gmail.com")) (:maintainer "Christian Schwarzgruber" . "c.schwarzgruber.cs@gmail.com") (:url . "http://rtags.net"))]) -(flycheck-rebar3 . [(20180806 2103) ((flycheck (27))) "Rebar3 flycheck integration for Erlang projects" single ((:commit . "3cca1268c54643204b5bae52e3f0bf5bc921018c") (:keywords "erlang" "flycheck" "rebar3") (:authors ("Joe DeVivo")) (:maintainer "Joe DeVivo") (:url . "https://github/joedevivo/flycheck-rebar3"))]) -(flycheck-pyre . [(20190215 1222) ((emacs (24)) (flycheck (29)) (cl-lib (0 6))) "Support Pyre in flycheck" tar ((:commit . "0560122caae207d99d8af1ac2b4e5d6f6a1ce444") (:authors ("Vyacheslav Linnik" . "vyacheslav.linnik@gmail.com")) (:maintainer "Vyacheslav Linnik" . "vyacheslav.linnik@gmail.com") (:url . "https://github.com/linnik/flycheck-pyre"))]) -(flycheck-pyflakes . [(20170330 2311) ((flycheck (0 18))) "Support pyflakes in flycheck" single ((:commit . "61b045939e3743b2162b7e4e73249c66fc2b8f65") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(flycheck-pycheckers . [(20190523 1811) ((flycheck (0 18))) "multiple syntax checker for Python, using Flycheck" tar ((:commit . "7969168b1367da6c48bf79f59ea0db0240ed66d9") (:keywords "convenience" "tools" "languages") (:url . "https://github.com/msherry/flycheck-pycheckers"))]) -(flycheck-purescript . [(20161121 1707) ((emacs (24 3)) (flycheck (0 22)) (dash (2 12 0)) (let-alist (1 0 4)) (seq (1 11))) "Flycheck: PureScript support" single ((:commit . "30f0435d5e2715053c8c6170b2bce2ae462ac819") (:keywords "convenience" "tools" "languages") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/flycheck-purescript"))]) -(flycheck-prospector . [(20180524 450) ((flycheck (0 22))) "Support prospector in flycheck" single ((:commit . "92f2680573290ba4a69a2d6e140f44680efce6a8") (:authors ("Carlos Coelho" . "carlospecter@gmail.com")) (:maintainer "Carlos Coelho" . "carlospecter@gmail.com") (:url . "https://github.com/chocoelho/flycheck-prospector"))]) -(flycheck-posframe . [(20190327 1111) ((flycheck (0 24)) (emacs (26)) (posframe (0 3 0))) "Show flycheck error messages using posframe.el" single ((:commit . "d1591cfaef04c67e1a01a32833f140ab27c33773") (:authors ("Alex Murray" . "murray.alex@gmail.com")) (:maintainer "Alex Murray" . "murray.alex@gmail.com") (:url . "https://github.com/alexmurray/flycheck-posframe"))]) -(flycheck-pos-tip . [(20180610 1615) ((emacs (24 1)) (flycheck (0 22)) (pos-tip (0 4 6))) "Display Flycheck errors in GUI tooltips" single ((:commit . "909113977d37739387c7f099d74a724cfe6efcec") (:keywords "tools" "convenience") (:authors ("Akiha Senda" . "senda.akiha@gmail.com") ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Sebastian Wiesner" . "swiesner@lunaryorn.com") (:url . "https://github.com/flycheck/flycheck-pos-tip"))]) -(flycheck-popup-tip . [(20170812 2351) ((flycheck (0 22)) (popup (0 5)) (emacs (24))) "Display Flycheck error messages using popup.el" single ((:commit . "ef86aad907f27ca076859d8d9416f4f7727619c6") (:keywords "convenience" "tools" "flycheck" "tooltip") (:authors ("SaÅ¡a Jovanić" . "sasa@simplify.ba")) (:maintainer "SaÅ¡a Jovanić" . "sasa@simplify.ba") (:url . "https://github.com/flycheck/flycheck-popup-tip/"))]) -(flycheck-pony . [(20190227 235) ((flycheck (0 25 1))) "Pony support in Flycheck" single ((:commit . "33502f8726f1b756210f907620826f0723cf8e30") (:keywords "tools" "convenience") (:url . "https://github.com/seantallen/flycheck-pony"))]) -(flycheck-plantuml . [(20171018 111) ((flycheck (0 24)) (emacs (24 4)) (plantuml-mode (1 2 2))) "Integrate plantuml with flycheck" single ((:commit . "183be89e1dbba0b38237dd198dff600e0790309d") (:authors ("Alex Murray" . "murray.alex@gmail.com")) (:maintainer "Alex Murray" . "murray.alex@gmail.com") (:url . "https://github.com/alexmurray/flycheck-plantuml"))]) -(flycheck-pkg-config . [(20180430 2243) ((dash (2 8 0)) (s (1 9 0)) (flycheck (29))) "configure flycheck using pkg-config" single ((:commit . "e72e4c1b8153611ed82695673af84096f4d52795") (:keywords "flycheck") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(flycheck-phpstan . [(20190618 724) ((emacs (24 3)) (flycheck (26)) (phpstan (0 2 1))) "Flycheck integration for PHPStan" single ((:commit . "525792fc4a9ecb5dc577a7c416e298e0c45c6183") (:keywords "convenience" "php") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/emacs-php/phpstan.el"))]) -(flycheck-perl6 . [(20180509 2201) ((emacs (24 3)) (flycheck (0 22))) "Perl 6 support in Flycheck" single ((:commit . "b804702305d7a6e26f762ff98cfdeec2e9dd4cb7") (:keywords "tools" "convenience") (:authors ("Hinrik Örn Sigurðsson" . "hinrik.sig@gmail.com")) (:maintainer "Hinrik Örn Sigurðsson" . "hinrik.sig@gmail.com") (:url . "https://github.com/hinrik/flycheck-perl6"))]) -(flycheck-pact . [(20180920 2052) ((emacs (24 3)) (flycheck (0 25)) (pact-mode (0 0 4))) "Flycheck support for pact-mode" single ((:commit . "0e10045064ef89ec8b6f5a473073d47b976a2ca3") (:keywords "pact" "lisp" "languages" "blockchain" "smartcontracts" "tools" "linting") (:authors ("Stuart Popejoy")) (:maintainer "Stuart Popejoy" . "stuart@kadena.io") (:url . "http://github.com/kadena-io/flycheck-pact"))]) -(flycheck-package . [(20161111 2251) ((flycheck (0 22)) (package-lint (0 2))) "A Flycheck checker for elisp package authors" single ((:commit . "6d99248b45eea1e5236062f38e524230efdb1a84") (:keywords "lisp") (:authors ("Steve Purcell" . "steve@sanityinc.com") ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com"))]) -(flycheck-ocaml . [(20170730 2153) ((emacs (24 1)) (flycheck (0 22)) (merlin (3 0 1)) (let-alist (1 0 3))) "Flycheck: OCaml support" single ((:commit . "8707a7bf545a8639a6a5c600a98d9a2ea1487dc9") (:keywords "convenience" "tools" "languages") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Sebastian Wiesner" . "swiesner@lunaryorn.com") (:url . "https://github.com/flycheck/flycheck-ocaml"))]) -(flycheck-objc-clang . [(20190421 1049) ((emacs (24 4)) (flycheck (26))) "Flycheck: Objective-C support using Clang" single ((:commit . "b46ad43637cebf8467cf596d3e7b5f5d371789e9") (:keywords "convenience" "languages" "tools") (:authors ("Goichi Hirakawa" . "gooichi@gyazsquare.com")) (:maintainer "Goichi Hirakawa" . "gooichi@gyazsquare.com") (:url . "https://github.com/GyazSquare/flycheck-objc-clang"))]) -(flycheck-nimsuggest . [(20171027 2208) ((flycheck (0 23)) (emacs (24 3))) "flycheck backend for Nim using nimsuggest" single ((:commit . "dc9a5de1cb3ee05db5794d824610959a1f603bc9") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:url . "https://github.com/yuutayamada/flycheck-nimsuggest"))]) -(flycheck-nim . [(20160715 428) ((dash (2 4 0)) (flycheck (0 20))) "Defines a flycheck syntax checker for nim" single ((:commit . "6d27349b66e44578851e6148299709d64d2bde41") (:authors ("Adam Schwalm" . "adamschwalm@gmail.com")) (:maintainer "Adam Schwalm" . "adamschwalm@gmail.com") (:url . "https://github.com/ALSchwalm/flycheck-nim"))]) -(flycheck-mypy . [(20180907 1016) ((flycheck (0 18))) "Support mypy in flycheck" single ((:commit . "6f99166f5229c7b4298cff1818b7eaece1c9c8bd") (:authors ("Lorenzo Bolla" . "lbolla@gmail.com")) (:maintainer "Lorenzo Bolla" . "lbolla@gmail.com"))]) -(flycheck-mmark . [(20190101 657) ((emacs (24 4)) (flycheck (0 29))) "Flycheck checker for the MMark markdown processor" single ((:commit . "a11563dcb9ed48f71274e0c6eb9e76b65d44bf40") (:keywords "convenience" "text") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mmark-md/flycheck-mmark"))]) -(flycheck-mix . [(20190511 2157) ((flycheck (27)) (elixir-mode (1 8 0))) "Elixir mix flycheck integration" single ((:commit . "0bc301cfb6627e51a83312052641df1844ebce0a") (:keywords "elixir" "flycheck" "mix") (:authors ("Tomasz Kowal" . "tomekowal@gmail.com")) (:maintainer "Tomasz Kowal" . "tomekowal@gmail.com") (:url . "https://github.com/tomekowal/flycheck-mix"))]) -(flycheck-mercury . [(20181118 1952) ((flycheck (0 22)) (s (1 9 0)) (dash (2 4 0))) "Mercury support in Flycheck" single ((:commit . "b6807a8db70981e21a91a93324c31e49de85c89f") (:keywords "convenience" "languages" "tools") (:authors ("Matthias Güdemann" . "matthias.gudemann@gmail.com")) (:maintainer "Matthias Güdemann" . "matthias.gudemann@gmail.com") (:url . "https://github.com/flycheck/flycheck-mercury"))]) -(flycheck-liquidhs . [(20170412 2326) ((flycheck (0 15))) "A flycheck checker for Haskell using liquid (i.e. liquidhaskell)" single ((:commit . "c27252ac24d77f4b6eec76a4ba9cd61761a3fba9") (:keywords "convenience" "languages" "tools") (:authors ("Ranjit Jhala" . "jhala@cs.ucsd.edu")) (:maintainer "Ranjit Jhala" . "jhala@cs.ucsd.edu") (:url . "https://github.com/ucsd-progsys/liquidhaskell/flycheck-liquid.el"))]) -(flycheck-lilypond . [(20171203 1332) ((emacs (24 3)) (flycheck (0 22))) "LilyPond support in Flycheck" single ((:commit . "cc1b7677a932c42e5dab1661ad7b923d4aae744c") (:keywords "tools" "convenience") (:authors ("Hinrik Örn Sigurðsson" . "hinrik.sig@gmail.com")) (:maintainer "Hinrik Örn Sigurðsson" . "hinrik.sig@gmail.com") (:url . "https://github.com/hinrik/flycheck-lilypond"))]) -(flycheck-ledger . [(20180819 321) ((flycheck (0 15))) "Flycheck integration for ledger files" single ((:commit . "8d7f52a4c7f80ca396ef0fc6c7d8e9f005778dfc") (:keywords "convenience" "languages" "tools") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com"))]) -(flycheck-kotlin . [(20170122 1137) ((flycheck (0 18))) "Support kotlin in flycheck" single ((:commit . "cbb9fbf70dbe8efcc3971b3606ee95c97469b1fe") (:authors ("Elric Milon" . "whirm_REMOVETHIS__@gmx.com")) (:maintainer "Elric Milon" . "whirm_REMOVETHIS__@gmx.com"))]) -(flycheck-julia . [(20170729 2141) ((emacs (24)) (flycheck (0 22))) "Julia support for Flycheck" single ((:commit . "213b60a5a9a1cb7887260e1d159b5bb27167cbb6") (:keywords "convenience" "tools" "languages") (:authors ("Guido Kraemer" . "guido.kraemer@gmx.de")) (:maintainer "Guido Kraemer" . "guido.kraemer@gmx.de") (:url . "https://github.com/gdkrmr/flycheck-julia"))]) -(flycheck-joker . [(20180913 504) ((flycheck (0 18))) "Add Clojure syntax checker (via Joker) to flycheck" single ((:commit . "51e99e697761ee8dab863930910abdba7607c1bd") (:authors ("Roman Bataev" . "roman.bataev@gmail.com")) (:maintainer "Roman Bataev" . "roman.bataev@gmail.com"))]) -(flycheck-jest . [(20180411 328) ((emacs (25 1)) (flycheck (0 25))) "Flycheck extension for Jest." single ((:commit . "08f27c5ed97c83c445f99fab58f0b6c826f14449") (:keywords "languages" "jest") (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/jojojames/flycheck-jest"))]) -(flycheck-irony . [(20180604 2152) ((emacs (24 1)) (flycheck (0 22)) (irony (0 2 0))) "Flycheck: C/C++ support via Irony" single ((:commit . "42dbecd4a865cabeb301193bb4d660e26ae3befe") (:keywords "convenience" "tools" "c") (:authors ("Guillaume Papin" . "guillaume.papin@epitech.eu")) (:maintainer "Guillaume Papin" . "guillaume.papin@epitech.eu") (:url . "https://github.com/Sarcasm/flycheck-irony/"))]) -(flycheck-inline . [(20190320 1611) ((emacs (25 1)) (flycheck (32))) "Display Flycheck errors inline" single ((:commit . "cf9eceabff8370f3b834b943a5777b9f914583f9") (:keywords "tools" "convenience") (:authors ("fmdkdd")) (:maintainer "fmdkdd") (:url . "https://github.com/flycheck/flycheck-inline"))]) -(flycheck-ini-pyinilint . [(20190312 1931) ((flycheck (31))) "Flycheck integration for PyINILint" single ((:commit . "e1c3adfc148caf721691a55cae686b5f31209204") (:keywords "convenience" "files" "tools") (:authors ("Daniel J. R. May" . "daniel.may@danieljrmay.com")) (:maintainer "Daniel J. R. May" . "daniel.may@danieljrmay.com") (:url . "https://gitlab.com/danieljrmay/flycheck-ini-pyinilint"))]) -(flycheck-hdevtools . [(20160926 702) ((flycheck (0 21 -4 1)) (dash (2 0))) "A flycheck checker for Haskell using hdevtools" single ((:commit . "eab1fc184854341a56154623a131cab6ff0ce18c") (:keywords "convenience" "languages" "tools") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/flycheck/flycheck-hdevtools"))]) -(flycheck-haskell . [(20181207 1646) ((emacs (24 3)) (flycheck (0 25)) (haskell-mode (13 7)) (dash (2 4 0)) (seq (1 11)) (let-alist (1 0 1))) "Flycheck: Automatic Haskell configuration" tar ((:commit . "32ddff87165a7d3a35e7318bee997b5b4bd41278") (:keywords "tools" "convenience") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Sebastian Wiesner" . "swiesner@lunaryorn.com") (:url . "https://github.com/flycheck/flycheck-haskell"))]) -(flycheck-grammalecte . [(20190517 1644) ((emacs (24 3)) (flycheck (26))) "Integrate Grammalecte with Flycheck" tar ((:commit . "8ba9d41dad0c9c96760614ce7594ceb823f560de") (:keywords "i18n" "text") (:authors ("Guilhem Doulcier" . "guilhem.doulcier@espci.fr") ("Étienne Deparis" . "etienne@depar.is")) (:maintainer "Guilhem Doulcier" . "guilhem.doulcier@espci.fr") (:url . "https://git.deparis.io/flycheck-grammalecte/"))]) -(flycheck-gradle . [(20190315 234) ((emacs (25 1)) (flycheck (0 25))) "Flycheck extension for Gradle." single ((:commit . "1ca08bbc343362a923cbdc2010f66e41655e92ab") (:keywords "languages" "gradle") (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/jojojames/flycheck-gradle"))]) -(flycheck-gometalinter . [(20180424 941) ((emacs (24)) (flycheck (0 22))) "flycheck checker for gometalinter" single ((:commit . "422f6e4b77b27fd7370f0c88437ac5072c9d3413") (:keywords "convenience" "tools" "go") (:authors ("Diep Pham" . "me@favadi.com")) (:maintainer "Diep Pham" . "me@favadi.com") (:url . "https://github.com/favadi/flycheck-gometalinter"))]) -(flycheck-golangci-lint . [(20190330 1412) ((emacs (24)) (flycheck (0 22))) "Flycheck checker for golangci-lint" single ((:commit . "8e446c68311048f0b87febf8ef0379e29d358851") (:keywords "convenience" "tools" "go") (:authors ("Wei Jian Gan" . "weijiangan@outlook.com")) (:maintainer "Wei Jian Gan" . "weijiangan@outlook.com") (:url . "https://github.com/weijiangan/flycheck-golangci-lint"))]) -(flycheck-ghcmod . [(20150114 632) ((flycheck (0 21 -4 1)) (dash (2 0))) "A flycheck checker for Haskell using ghcmod" single ((:commit . "6bb7b7d879f05bbae54e99eb04806c877adf3ccc") (:keywords "convenience" "languages" "tools") (:authors ("Shen Chao" . "scturtle@gmail.com")) (:maintainer "Shen Chao" . "scturtle@gmail.com") (:url . "https://github.com/scturtle/flycheck-ghcmod"))]) -(flycheck-flow . [(20190304 1459) ((flycheck (0 18)) (json (1 4))) "Support Flow in flycheck" single ((:commit . "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d") (:authors ("Lorenzo Bolla" . "lbolla@gmail.com")) (:maintainer "Lorenzo Bolla" . "lbolla@gmail.com"))]) -(flycheck-flawfinder . [(20170116 327) ((flycheck (0 24)) (emacs (24 4))) "Integrate flawfinder with flycheck" single ((:commit . "7d964d38023b088adf3ffc2fddeead81f4491a45") (:authors ("Alex Murray" . "murray.alex@gmail.com")) (:maintainer "Alex Murray" . "murray.alex@gmail.com") (:url . "https://github.com/alexmurray/flycheck-flawfinder"))]) -(flycheck-ensime . [(20190212 1042) ((emacs (26)) (ensime (2 0 0)) (flycheck (31))) "ensime for flycheck" single ((:commit . "9fe000e7004725bc8c3b7554237d717bca9cd9ac") (:authors ("ncaq" . "ncaq@ncaq.net")) (:maintainer "ncaq" . "ncaq@ncaq.net") (:url . "https://github.com/ncaq/flycheck-ensime"))]) -(flycheck-elsa . [(20190211 1921) ((emacs (25)) (seq (2 0)) (cask (0 8 4))) "Flycheck for Elsa." tar ((:commit . "c0a226d2520681bb0c16cd31504b620e43ee743c") (:keywords "convenience") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/emacs-elsa/flycheck-elsa"))]) -(flycheck-elm . [(20181107 146) ((flycheck (0 29 -4)) (emacs (24 4)) (let-alist (1 0 5)) (seq (2 20))) "Flycheck support for the elm language" single ((:commit . "debd0af563cb6c2944367a691c7fa3021d9378c1") (:authors ("Brian Sermons")) (:maintainer "Brian Sermons") (:url . "https://github.com/bsermons/flycheck-elm"))]) -(flycheck-elixir . [(20180810 642) ((flycheck (0 25))) "Support Elixir in flycheck" single ((:commit . "11998d7e3e63a33453e934d25b3673f7c558e579") (:authors ("Lorenzo Bolla" . "lbolla@gmail.com")) (:maintainer "Lorenzo Bolla" . "lbolla@gmail.com"))]) -(flycheck-dtrace . [(20180903 1630) ((emacs (25 1)) (flycheck (0 22))) "Flycheck: DTrace support" single ((:commit . "951fab3a15c11d92b9fac1ea4791a80dfe034a00") (:keywords "languages" "convenience" "tools") (:authors ("Jürgen Hötzel" . "juergen@hoetzel.info")) (:maintainer "Jürgen Hötzel" . "juergen@hoetzel.info"))]) -(flycheck-dogma . [(20170125 721) ((flycheck (29))) "flycheck checker for elixir dogma" single ((:commit . "eea1844a81e87e2488b05e703a93272d0fc3bc74") (:authors ("Aaron Jensen" . "aaronjensen@gmail.com")) (:maintainer "Aaron Jensen" . "aaronjensen@gmail.com") (:url . "https://github.com/aaronjensen/flycheck-dogma"))]) -(flycheck-dmd-dub . [(20180625 1635) ((flycheck (0 24)) (f (0 18 2))) "Sets flycheck-dmd-include-paths from dub package information" single ((:commit . "d7df2895d7d27cc39916816e3c32a60ce0e1d2d9") (:keywords "languages") (:authors ("Atila Neves" . "atila.neves@gmail.com")) (:maintainer "Atila Neves" . "atila.neves@gmail.com") (:url . "http://github.com/atilaneves/flycheck-dmd-dub"))]) -(flycheck-dialyzer . [(20160326 1430) ((flycheck (0 18))) "Support dialyzer in flycheck" single ((:commit . "a5df0db95ac69f397b5f85d325a6d88cf8974f64") (:authors ("Lorenzo Bolla" . "lbolla@gmail.com")) (:maintainer "Lorenzo Bolla" . "lbolla@gmail.com"))]) -(flycheck-dialyxir . [(20170515 1525) ((flycheck (29))) "flycheck checker for elixir dialyxir" single ((:commit . "adfb73374cb2bee75724822972f405f2ec371199") (:authors ("Aaron Jensen" . "aaronjensen@gmail.com")) (:maintainer "Aaron Jensen" . "aaronjensen@gmail.com") (:url . "https://github.com/aaronjensen/flycheck-dialyxir"))]) -(flycheck-demjsonlint . [(20161115 718) ((flycheck (30))) "Flychecker for json-mode using jsonlint from demjson" tar ((:commit . "a3dfe1df8ecdea76c076c0849901427567356228") (:keywords "convenience" "tools") (:authors ("Zenkie Zhu" . "451218651@qq.com")) (:maintainer "Zenkie Zhu" . "451218651@qq.com") (:url . "https://github.com/z4139jq/flycheck-demjsonlint"))]) -(flycheck-dedukti . [(20171103 1212) ((flycheck (0 19)) (dedukti-mode (0 1))) "Flycheck integration of Dedukti" single ((:commit . "3dbff5646355f39d57a3ec514f560a6b0082a1cd") (:keywords "convenience" "languages" "tools" "flycheck" "dedukti") (:authors ("Raphaël Cauderlier")) (:maintainer "Raphaël Cauderlier") (:url . "https://github.com/rafoo/flycheck-dedukti"))]) -(flycheck-d-unittest . [(20160522 417) ((flycheck (0 21 -4 1)) (dash (1 4 0))) "Add D unittest support to flycheck" single ((:commit . "3e614f23cb4a5566fd7988dbcaaf254af81c7718") (:keywords "flycheck" "d") (:authors ("Tomoya Tanjo" . "ttanjo@gmail.com")) (:maintainer "Tomoya Tanjo" . "ttanjo@gmail.com") (:url . "https://github.com/tom-tan/flycheck-d-unittest/"))]) -(flycheck-cython . [(20170724 958) ((flycheck (0 25))) "Support Cython in flycheck" single ((:commit . "ecc4454d35ab5317ab66a04406f36f0c1dbc0b76") (:authors ("Lorenzo Bolla" . "lbolla@gmail.com")) (:maintainer "Lorenzo Bolla" . "lbolla@gmail.com"))]) -(flycheck-cstyle . [(20160905 2341) ((flycheck (0 24)) (emacs (24 4))) "Integrate cstyle with flycheck" single ((:commit . "207285140a353d08cf1fc450cacab158bc98ba82") (:authors ("Alex Murray" . "murray.alex@gmail.com")) (:maintainer "Alex Murray" . "murray.alex@gmail.com") (:url . "https://github.com/alexmurray/flycheck-cstyle"))]) -(flycheck-css-colorguard . [(20161031 1122) ((flycheck (0 22)) (emacs (24))) "Detect similar colors in CSS" single ((:commit . "ae94fa0396acd99f9ec36d9572459df793f37fe8") (:keywords "flycheck" "css" "colorguard") (:authors ("SaÅ¡a Jovanić" . "info@simplify.ba")) (:maintainer "SaÅ¡a Jovanić" . "info@simplify.ba") (:url . "https://github.com/Simplify/flycheck-css-colorguard/"))]) -(flycheck-crystal . [(20180627 242) ((flycheck (30))) "Add support for Crystal to Flycheck" single ((:commit . "34124f546ff5c1136aed95bf0059015f9f6a1d60") (:keywords "tools" "crystal") (:url . "https://github.com/crystal-lang-tools/emacs-crystal-mode"))]) -(flycheck-credo . [(20170526 1545) ((flycheck (29))) "flycheck checker for elixir credo" single ((:commit . "e88f11ead53805c361ec7706e44c3dfee1daa19f") (:authors ("Aaron Jensen" . "aaronjensen@gmail.com")) (:maintainer "Aaron Jensen" . "aaronjensen@gmail.com") (:url . "https://github.com/aaronjensen/flycheck-credo"))]) -(flycheck-coverity . [(20170704 59) ((flycheck (0 24)) (dash (2 12 0)) (emacs (24 4))) "Integrate Coverity with flycheck" single ((:commit . "cb211e3dd50413a5042eb20175be518214591c9d") (:authors ("Alex Murray" . "murray.alex@gmail.com")) (:maintainer "Alex Murray" . "murray.alex@gmail.com") (:url . "https://github.com/alexmurray/flycheck-coverity"))]) -(flycheck-color-mode-line . [(20171122 707) ((flycheck (0 15)) (dash (1 2)) (emacs (24 1))) "Change mode line color with Flycheck status" single ((:commit . "cc474804d4e8088a627485faaf4217a5781aec7d") (:keywords "convenience" "language" "tools") (:authors ("Sylvain Benner" . "sylvain.benner@gmail.com")) (:maintainer "Sylvain Benner" . "sylvain.benner@gmail.com"))]) -(flycheck-clolyze . [(20190422 2134) ((flycheck (0 25)) (emacs (24))) "Add Clolyze to to flycheck" single ((:commit . "c8b27602dd505aeae6486feb6f584754079baf51") (:authors ("Daniel Laps" . "daniel.laps@hhu.de")) (:maintainer "Daniel Laps" . "daniel.laps@hhu.de") (:url . "https://github.com/DLaps/flycheck-clolyze"))]) -(flycheck-clojure . [(20190611 2351) ((cider (0 22 0)) (flycheck (32 -4)) (let-alist (1 0 1)) (emacs (25))) "Flycheck: Clojure support" single ((:commit . "1dc8fdd691bcf950e95a0f00b71b53854923543e") (:authors ("Peter Fraenkel" . "pnf@podsnap.com") ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Peter Fraenkel" . "pnf@podsnap.com") (:url . "https://github.com/clojure-emacs/squiggly-clojure"))]) -(flycheck-clj-kondo . [(20190410 1515) ((flycheck (0 18))) "Add clj-kondo linter to flycheck" single ((:commit . "b0d5af10e045d4eeb824058c8dc87f94b376bf1c") (:authors ("Michiel Borkent" . "michielborkent@gmail.com")) (:maintainer "Michiel Borkent" . "michielborkent@gmail.com") (:url . "https://github.com/borkdude/flycheck-clj-kondo"))]) -(flycheck-clangcheck . [(20150712 710) ((cl-lib (0 5)) (seq (1 7)) (flycheck (0 17))) "A Flycheck checker difinition for ClangCheck." single ((:commit . "24a9424c484420073a24443a829fd5779752362b") (:authors ("kumar8600" . "kumar8600@gmail.com")) (:maintainer "kumar8600" . "kumar8600@gmail.com") (:url . "https://github.com/kumar8600/flycheck-clangcheck"))]) -(flycheck-clang-tidy . [(20171024 808) ((flycheck (0 30))) "Flycheck syntax checker using clang-tidy" single ((:commit . "b8ebd49693f67e08e420ba847cc88f6721ef9e3e") (:keywords "convenience" "languages" "tools") (:authors (nil . "Sebastian Nagel<sebastian.nagel@ncoding.at>")) (:maintainer nil . "Sebastian Nagel<sebastian.nagel@ncoding.at>") (:url . "https://github.com/ch1bo/flycheck-clang-tidy"))]) -(flycheck-clang-analyzer . [(20180917 1425) ((flycheck (0 24)) (emacs (24 4))) "Integrate Clang Analyzer with flycheck" single ((:commit . "5c707505e3ea806fddb54d031ab64351293d7c2d") (:authors ("Alex Murray" . "murray.alex@gmail.com")) (:maintainer "Alex Murray" . "murray.alex@gmail.com") (:url . "https://github.com/alexmurray/flycheck-clang-analyzer"))]) -(flycheck-checkpatch . [(20170217 1025) ((emacs (25)) (flycheck (30))) "Flycheck support for checkpatch.pl tool" single ((:commit . "6461fc7b0d493eb9863814055f8bce5fa35739de") (:authors ("Alexander Yarygin" . "yarygin.alexander@gmail.com")) (:maintainer "Alexander Yarygin" . "yarygin.alexander@gmail.com") (:url . "https://github.com/zpp0/flycheck-checkpatch"))]) -(flycheck-checkbashisms . [(20190403 218) ((emacs (24)) (flycheck (0 25))) "checkbashisms checker for flycheck" single ((:commit . "2e386775f1a0eb5d80e5d70e98474ee32ecafb24") (:keywords "convenience" "tools" "sh" "unix") (:authors ("Cuong Le" . "cuong.manhle.vn@gmail.com")) (:maintainer "Cuong Le" . "cuong.manhle.vn@gmail.com") (:url . "https://github.com/cuonglm/flycheck-checkbashisms"))]) -(flycheck-cask . [(20160928 926) ((emacs (24 1)) (flycheck (0 14)) (dash (2 4 0))) "Cask support in Flycheck" single ((:commit . "c3a51147eddeb7347de81f6a498fc96538bac499") (:keywords "tools" "convenience") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Sebastian Wiesner" . "swiesner@lunaryorn.com") (:url . "https://github.com/flycheck/flycheck-cask"))]) -(flycheck-bashate . [(20160630 440) ((flycheck (0 24)) (emacs (24 4))) "Integrate bashate with flycheck" single ((:commit . "77fa03dbc578c34fe71ca44926bac2aff8f2b021") (:authors ("Alex Murray" . "murray.alex@gmail.com")) (:maintainer "Alex Murray" . "murray.alex@gmail.com") (:url . "https://github.com/alexmurray/flycheck-bashate"))]) -(flycheck-ats2 . [(20170225 1636) ((emacs (24 1)) (flycheck (0 22))) "Flycheck: ATS2 support" single ((:commit . "9f77add8408462af35bdddf87e37a661880255e3") (:keywords "convenience" "tools" "languages") (:authors ("Mark Laws" . "mdl@60hz.org")) (:maintainer "Mark Laws" . "mdl@60hz.org") (:url . "http://github.com/drvink/flycheck-ats2"))]) -(flycheck-apertium . [(20181211 1038) ((flycheck (0 25))) "Apertium checkers in flycheck" tar ((:commit . "22b60a17836477ac1edd15dc85b14f88ca871ba9") (:keywords "convenience" "tools" "xml") (:authors ("Kevin Brubeck Unhammer" . "unhammer+apertium@mm.st")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer+apertium@mm.st") (:url . "http://wiki.apertium.org/wiki/Emacs"))]) -(flycheck-ameba . [(20190512 1709) ((emacs (24 4)) (flycheck (30))) "Add support for Ameba to Flycheck" single ((:commit . "ce32da59c3215ccb90d37eb7d9e2affbdbaac1bb") (:keywords "tools" "crystal" "ameba") (:url . "https://github.com/veelenga/ameba.el"))]) -(flycheck . [(20190612 1645) ((dash (2 12 1)) (pkg-info (0 4)) (let-alist (1 0 4)) (seq (1 11)) (emacs (24 3))) "On-the-fly syntax checking" tar ((:commit . "5ae09c739a36a4f0ebe47dce9ecb08666cedb66f") (:keywords "convenience" "languages" "tools") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Clément Pit-Claudel" . "clement.pitclaudel@live.com") (:url . "http://www.flycheck.org"))]) -(flx-isearch . [(20180103 514) ((emacs (24)) (flx (20140821)) (cl-lib (0 5))) "Fuzzy incremental searching for emacs" single ((:commit . "f132fd6367e369885ab3a865fbfe20eee989bc0b") (:keywords "convenience" "search" "flx") (:authors ("PythonNut" . "pythonnut@pythonnut.com")) (:maintainer "PythonNut" . "pythonnut@pythonnut.com") (:url . "https://github.com/pythonnut/flx-isearch"))]) -(flx-ido . [(20180117 1519) ((flx (0 1)) (cl-lib (0 3))) "flx integration for ido" single ((:commit . "46040d0b096a0340d91235561f27a959a61d0fef") (:authors ("Le Wang")) (:maintainer "Le Wang") (:url . "https://github.com/lewang/flx"))]) -(flx . [(20151030 1812) ((cl-lib (0 3))) "fuzzy matching with good sorting" single ((:commit . "46040d0b096a0340d91235561f27a959a61d0fef") (:authors ("Le Wang")) (:maintainer "Le Wang") (:url . "https://github.com/lewang/flx"))]) -(fluxus-mode . [(20170210 1941) ((osc (0 1)) (emacs (24 4))) "Major mode for interfacing with Fluxus" single ((:commit . "3661d4dfdaf249138e7f215f15f291c9391ede8d") (:keywords "languages") (:authors ("modula t." . "defaultxr@gmail.com")) (:maintainer "modula t." . "defaultxr@gmail.com") (:url . "https://github.com/defaultxr/fluxus-mode"))]) -(flutter . [(20190204 601) ((emacs (24 5))) "Tools for working with Flutter SDK" single ((:commit . "4a59efee1cde408c311ef21c6d3e6fd65868ed42") (:keywords "languages") (:authors ("Aaron Madlon-Kay")) (:maintainer "Aaron Madlon-Kay") (:url . "https://github.com/amake/flutter.el"))]) -(flucui-themes . [(20190321 2313) ((emacs (24))) "Custom theme inspired by the Flat UI palette" tar ((:commit . "921ff298da71366eca3d1e4fc410126d405d5366") (:keywords "lisp") (:authors ("MetroWind" . "chris.corsair@gmail.com")) (:maintainer "MetroWind" . "chris.corsair@gmail.com") (:url . "https://github.com/MetroWind/flucui-theme"))]) -(flower . [(20190215 1746) ((emacs (24 4)) (clomacs (0 0 3))) "Emacs task tracker client." tar ((:commit . "6ef1affa2d7090714ccc4494823de28cfc11da35") (:keywords "hypermedia" "outlines" "tools" "vc") (:authors ("Sergey Sobko" . "SSobko@ptsecurity.com")) (:maintainer "Sergey Sobko" . "SSobko@ptsecurity.com") (:url . "https://github.com/PositiveTechnologies/flower"))]) -(flow-minor-mode . [(20180315 1824) ((emacs (25 1))) "Flow type mode based on web-mode." single ((:commit . "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e") (:url . "https://github.com/an-sh/flow-minor-mode"))]) -(flow-js2-mode . [(20190214 1030) ((flow-minor-mode (0)) (js2-mode (0)) (emacs (25 1))) "Support for flow annotations in js2-mode" single ((:commit . "52f5665386b1e0697a4b819a49ecdd9b9785c217") (:keywords "languages" "extensions") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(floobits . [(20180801 524) ((json (1 2)) (highlight (0))) "Floobits plugin for real-time collaborative editing" tar ((:commit . "489b294a7f30ecd2af2edc0823dead8102f27af6") (:keywords "comm" "tools") (:authors ("Matt Kaniaris") ("Geoff Greer")) (:maintainer "Matt Kaniaris") (:url . "http://github.com/Floobits/floobits-emacs"))]) -(fliptext . [(20171124 2056) nil "Input method for flipping characters upside down" single ((:commit . "fd821f645ffebae6ae3894afa7ba7fc06f91afc6") (:keywords "games" "i18n") (:authors ("André Riemann" . "andre.riemann@web.de")) (:maintainer "André Riemann" . "andre.riemann@web.de"))]) -(flimenu . [(20170418 147) ((dash (2 10 0)) (emacs (24 4))) "Flatten imenu automatically" single ((:commit . "9351201d89b05cbdaec312a6ebd7fd10c38d6112") (:keywords "imenu" "browse" "structure" "hook" "mode" "matching" "tools" "convenience" "files") (:authors ("Ivan Malison" . "IvanMalison@gmail.com")) (:maintainer "Ivan Malison" . "IvanMalison@gmail.com") (:url . "https://github.com/IvanMalison/flimenu"))]) -(flim . [(20190526 1034) ((apel (10 8))) "A library to provide basic features about message representation or encoding." tar ((:commit . "e4bd54fd7d335215b54f7ef27ed974c8cd68d472"))]) -(flex-isearch . [(20170308 2010) nil "Flex matching (like ido) in isearch." single ((:commit . "8b934ea6f1e4324088f055454a2e8b714961854a") (:keywords "convenience" "search") (:authors ("Jonathan Kotta" . "jpkotta@gmail.com")) (:maintainer "Jonathan Kotta" . "jpkotta@gmail.com") (:url . "https://bitbucket.org/jpkotta/flex-isearch"))]) -(flex-compile . [(20190617 216) ((emacs (26)) (dash (2 13 0)) (buffer-manage (0 8))) "Run, evaluate and compile for a many languages and modes." tar ((:commit . "71d4f087d452302c6c151f34ada011ba385036e7") (:keywords "compilation" "integration") (:authors ("Paul Landes")) (:maintainer "Paul Landes") (:url . "https://github.com/plandes/flex-compile"))]) -(flex-autopair . [(20120809 1218) nil "Automatically insert pair braces and quotes, insertion conditions & actions are highly customizable." single ((:commit . "4bb757f2556a4a51828e2fed8fb81e31e83052cb") (:keywords "keyboard" "input") (:authors ("Yuuki Arisawa" . "yuuki.ari@gmail.com")) (:maintainer "Yuuki Arisawa" . "yuuki.ari@gmail.com") (:url . "https://github.com/uk-ar/flex-autopair.el"))]) -(flatui-theme . [(20160619 127) nil "A color theme for Emacs based on flatuicolors.com" single ((:commit . "9c15db5526c15c8dba55023f5698372b19c2a780") (:authors ("John Louis Del Rosario" . "john2x@gmail.com")) (:maintainer "John Louis Del Rosario" . "john2x@gmail.com") (:url . "https://github.com/john2x/flatui-theme.el"))]) -(flatui-dark-theme . [(20170513 1422) ((emacs (24))) "Dark color theme with colors from https://flatuicolors.com/" single ((:commit . "5b959a9f743f891e4660b1b432086417947872ea") (:keywords "color" "theme" "dark" "flatui" "faces") (:authors ("Andrew Phillips" . "theasp@gmail.com")) (:maintainer "Andrew Phillips" . "theasp@gmail.com") (:url . "https://github.com/theasp/flatui-dark-theme"))]) -(flatland-theme . [(20171113 1521) nil "A simple theme for Emacs based on the Flatland theme for Sublime Text" single ((:commit . "a98a6f19ad4dff0fa3fad1ea487b7d0ef634a19a") (:authors ("Greg Chapple" . "info@gregchapple.com")) (:maintainer "Greg Chapple" . "info@gregchapple.com") (:url . "http://github.com/gregchapple/flatland-emacs"))]) -(flatland-black-theme . [(20170808 1312) ((emacs (24 0))) "an Emacs 24 theme based on Flatland Black (tmTheme)" single ((:commit . "348c5d5fe615e6ea13cadc17f046e506e789ce07") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/flatland-black-theme"))]) -(flash-region . [(20130923 1817) nil "Flash a region" single ((:commit . "261b3597b23cdd40e5c14262a5687bcc6c1d0901") (:keywords "utility") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com"))]) -(flappymacs . [(20171023 1004) nil "flappybird clone for emacs" single ((:commit . "27f3e21acb22f786606481e3f4e5dc1edbaaaed4") (:keywords "games") (:authors ("Takayuki Sato")) (:maintainer "Takayuki Sato") (:url . "https://github.com/taksatou/flappymacs"))]) -(flame . [(20180303 2016) ((emacs (24))) "automatic generation of flamage, as if we needed more." single ((:commit . "a749b2a77b87e505572d0f1f5d59fac76348bb73") (:keywords "games") (:authors ("Ian G. Batten" . "batten@uk.ac.bham.multics") ("Noah Friedman" . "friedman@splode.com")) (:maintainer "Noah Friedman" . "friedman@splode.com") (:url . "https://github.com/mschuldt/flame"))]) -(fixmee . [(20150223 1355) ((button-lock (1 0 2)) (nav-flash (1 0 0)) (back-button (0 6 0)) (smartrep (0 0 3)) (string-utils (0 3 2)) (tabulated-list (0))) "Quickly navigate to FIXME notices in code" single ((:commit . "1b8b3460f1e3c3c1784b2a63fb9f4fb3bb4dc084") (:keywords "navigation" "convenience") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/fixmee"))]) -(fix-word . [(20190215 2038) ((emacs (24 1)) (cl-lib (0 5))) "Convenient word transformation" single ((:commit . "36e0b9c716a8ae8ecd760c04eafb2fe433d519ee") (:keywords "word" "convenience") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/fix-word"))]) -(fix-muscle-memory . [(20160823 439) nil "Simple hacks to fix muscle memory problems" single ((:commit . "a123e04f8a1d2982cbf930efb909cad9522ac884") (:keywords "spelling" "typing") (:authors ("Jonathan Arkell" . "jonnay@jonnay.net")) (:maintainer "Jonathan Arkell" . "jonnay@jonnay.net"))]) -(fix-input . [(20190101 708) ((emacs (24 4))) "Make input methods play nicely with alternative keyboard layout on OS level" single ((:commit . "e16115c09019afa68f0524d1994354646563b7a5") (:keywords "input" "method") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/fix-input"))]) -(fish-mode . [(20180827 303) ((emacs (24))) "Major mode for fish shell scripts" single ((:commit . "35fc7c1e243a7410823088a571ecf378e9f3efa6") (:keywords "fish" "shell") (:authors ("Tony Wang" . "wwwjfy@gmail.com")) (:maintainer "Tony Wang" . "wwwjfy@gmail.com"))]) -(fish-completion . [(20190429 822) nil "Add fish completion to pcomplete (shell and Eshell)" single ((:commit . "e5b9b65a077319dfdb2faca9ef847db3ef55d0db") (:authors ("Pierre Neidhardt" . "mail@ambrevar.xyz")) (:maintainer "Pierre Neidhardt" . "mail@ambrevar.xyz") (:url . "https://gitlab.com/Ambrevar/emacs-fish-completion"))]) -(firrtl-mode . [(20190224 344) ((emacs (24 3))) "mode for working with FIRRTL files" single ((:commit . "e55c555809037b7aaf2367ad2255f0a27addd23a") (:keywords "languages" "firrtl") (:authors ("Schuyler Eldridge" . "schuyler.eldridge@ibm.com")) (:maintainer "Schuyler Eldridge" . "schuyler.eldridge@ibm.com") (:url . "https://github.com/ibm/firrtl-mode"))]) -(firestarter . [(20161219 1323) nil "Execute (shell) commands on save" single ((:commit . "4d6b106f325ac1802eabce3c8a7cd0a4c7a32864") (:keywords "convenience") (:authors ("Vasilij Schneidermann" . "v.schneidermann@gmail.com")) (:maintainer "Vasilij Schneidermann" . "v.schneidermann@gmail.com") (:url . "https://github.com/wasamasa/firestarter"))]) -(fireplace . [(20181211 1927) nil "A cozy fireplace for emacs" single ((:commit . "571ffa7dd0ce46edca838df74d055aaa83da4d78") (:keywords "games") (:authors ("Johan Sivertsen" . "johanvts@gmail.com")) (:maintainer "Johan Sivertsen" . "johanvts@gmail.com") (:url . "https://github.com/johanvts/emacs-fireplace"))]) -(firefox-controller . [(20160320 1847) ((moz (0)) (popwin (1 0 0)) (cl-lib (0 5))) "An improved Firefox controller" single ((:commit . "a8af8cbf70afaf6b89a26d6ac69af8e92afc181f") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com") (:url . "https://github.com/cute-jumper/emacs-firefox-controller"))]) -(firecode-theme . [(20170808 1311) ((emacs (24 0))) "an Emacs 24 theme based on FireCode (tmTheme)" single ((:commit . "8b7b03ecdd41e70dab145b98906017e1392eaef4") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) -(fiplr . [(20140724 645) ((grizzl (0 1 0)) (cl-lib (0 1))) "Fuzzy Search for Files in Projects" tar ((:commit . "3f50159fd42125440d5b0eb9d6398560461f030b"))]) -(fingers . [(20160817 829) nil "Modal editing with universal text manipulation helpers." tar ((:commit . "fed0f742afb1d72eaef29d8da394467550a030fa") (:keywords "fingers" "modal" "editing" "workman") (:authors ("Felix Geller" . "fgeller@gmail.com")) (:maintainer "Felix Geller" . "fgeller@gmail.com") (:url . "http://github.com/fgeller/fingers.el"))]) -(findr . [(20130127 2032) nil "Breadth-first file-finding facility for (X)Emacs" single ((:commit . "1ddbc0464bb05dcda392b62666ad17239a2152d3") (:keywords "files") (:authors ("David Bakhash" . "cadet@bu.edu")) (:maintainer "David Bakhash" . "cadet@bu.edu"))]) -(find-things-fast . [(20150519 2226) nil "Find things fast, leveraging the power of git" single ((:commit . "efc7c189019ed65430e2f9e910e8e0a5ca9d2d03") (:keywords "project" "convenience") (:authors ("Elvio Toccalino and Elliot Glaysher and Phil Hagelberg and Doug Alcorn")) (:maintainer "Elvio Toccalino and Elliot Glaysher and Phil Hagelberg and Doug Alcorn"))]) -(find-temp-file . [(20170107 1339) nil "Open quickly a temporary file" single ((:commit . "513005d19d72d71f34481ee00158dd57bd93206f") (:keywords "convenience") (:authors ("Sylvain Rousseau <thisirs at gmail dot com>")) (:maintainer "Sylvain Rousseau <thisirs at gmail dot com>") (:url . "https://github.com/thisirs/find-temp-file.git"))]) -(find-file-in-repository . [(20190404 828) nil "Quickly find files in a git, mercurial or other repository" single ((:commit . "b44d78682082270dc6b59cdc911333d0d3e7edaa") (:keywords "files" "convenience" "repository" "project" "source control") (:authors ("Samuel Hoffstaetter" . "samuel@hoffstaetter.com")) (:maintainer "Samuel Hoffstaetter" . "samuel@hoffstaetter.com") (:url . "https://github.com/hoffstaetter/find-file-in-repository"))]) -(find-file-in-project . [(20190602 1042) ((ivy (0 10 0)) (emacs (24 3))) "Find file/directory and review Diff/Patch/Commit efficiently everywhere" single ((:commit . "df9a69852c183bbcd5195b7802b4e527e97f4895") (:keywords "project" "convenience") (:authors ("Phil Hagelberg, Doug Alcorn, and Will Farrington")) (:maintainer "Chen Bin" . "chenbin.sh@gmail.com") (:url . "https://github.com/technomancy/find-file-in-project"))]) -(find-by-pinyin-dired . [(20180210 218) ((pinyinlib (0 1 0))) "Find file by first PinYin character of Chinese Hanzi" single ((:commit . "3b4781148dddc84a701ad76c0934ed991ecd59d5") (:keywords "hanzi" "chinese" "dired" "find" "file" "pinyin") (:authors ("Chen Bin" . "chenbin.sh@gmail.com")) (:maintainer "Chen Bin" . "chenbin.sh@gmail.com") (:url . "http://github.com/redguardtoo/find-by-pinyin-dired"))]) -(finalize . [(20170418 1945) ((emacs (24 1)) (cl-generic (0 3)) (cl-lib (0 3)) (eieio (1 4))) "finalizers for Emacs Lisp" tar ((:commit . "846731531e7d1d80451787992e07bfe7dedbe9ff"))]) -(fillcode . [(20171029 1625) nil "Fill (wrap) function calls and expressions in source code" single ((:commit . "d0a9e20f5fcc24a786d09ea19bfb9237681ba823") (:authors ("Ryan Barrett" . "fillcode@ryanb.org")) (:maintainer "Ryan Barrett" . "fillcode@ryanb.org") (:url . "https://snarfed.org/fillcode"))]) -(fill-function-arguments . [(20180427 1702) ((emacs (24 4))) "Convert function arguments to/from single line" single ((:commit . "7e4d6928f978a7ead825b4f49092b1d1ca63a0e1") (:keywords "convenience") (:authors ("David Shepherd" . "davidshepherd7@gmail.com")) (:maintainer "David Shepherd" . "davidshepherd7@gmail.com") (:url . "https://github.com/davidshepherd7/fill-function-arguments"))]) -(fill-column-indicator . [(20171209 1924) nil "Graphically indicate the fill column" single ((:commit . "a284bb50789c97d7ef9021214260b3ce7cc220e3") (:keywords "convenience") (:authors ("Alp Aker" . "alp.tekin.aker@gmail.com")) (:maintainer "Alp Aker" . "alp.tekin.aker@gmail.com"))]) -(filelock . [(20180524 2215) ((emacs (24)) (cl-lib (0)) (f (0))) "Functions for manipulating file locks" single ((:commit . "17a5ca6e0dee14d2e7d92c84be91143bca9d9663") (:keywords "extensions" "files" "tools") (:authors ("Ryan C. Thompson")) (:maintainer "Ryan C. Thompson") (:url . "https://github.com/DarwinAwardWinner/emacs-filelock"))]) -(figlet . [(20160218 2237) nil "Annoy people with big, ascii art text" single ((:commit . "70ca269d706eedd34838fe2435073c6860be470b") (:authors ("Philip Jackson" . "phil@shellarchive.co.uk")) (:maintainer "Philip Jackson" . "phil@shellarchive.co.uk"))]) -(fifo-class . [(20160425 558) nil "First in first out abstract class" single ((:commit . "8fe4cf690727f4ac7b67f29c55f845df023c3f21") (:keywords "lisp") (:authors ("Mola-T" . "Mola@molamola.xyz")) (:maintainer "Mola-T" . "Mola@molamola.xyz") (:url . "https://github.com/mola-T/fifo-class"))]) -(fic-mode . [(20180603 2035) nil "Show FIXME/TODO/BUG(...) in special face only in comments and strings" single ((:commit . "a05fc36ed54ba0c6dc22ac216a6a72cf191ca13d") (:url . "https://github.com/lewang/fic-mode"))]) -(fetch . [(20131201 730) nil "Fetch and unpack resources" single ((:commit . "3f2793afcbbc32f320e572453166f9354ecc6d06") (:authors ("Christian 'crshd' Brassat" . "christian.brassat@gmail.com")) (:maintainer "Christian 'crshd' Brassat" . "christian.brassat@gmail.com") (:url . "https://github.com/crshd/fetch.el"))]) -(fennel-mode . [(20190401 1808) nil "a major-mode for editing Fennel code" single ((:commit . "17678a7fc073c64cb0ec78f913154df377a42575") (:keywords "languages" "tools") (:authors ("Phil Hagelberg")) (:maintainer "Phil Hagelberg") (:url . "https://gitlab.com/technomancy/fennel-mode"))]) -(feebleline . [(20190402 1525) nil "Replace modeline with a slimmer proxy" single ((:commit . "d1df599254f4c250720ae98dd69dada89535a295") (:authors ("Benjamin Lindqvist" . "benjamin.lindqvist@gmail.com")) (:maintainer "Benjamin Lindqvist" . "benjamin.lindqvist@gmail.com") (:url . "https://github.com/tautologyclub/feebleline"))]) -(feature-mode . [(20170907 1448) nil "Major mode for editing Gherkin (i.e. Cucumber) user stories" tar ((:commit . "722b352c4f0b800a9356dd369c79612782b3b847"))]) -(fd-dired . [(20180731 1049) ((emacs (25))) "find-dired alternative using fd" single ((:commit . "fd4c3f490b0b6727592b85f1635e57638dec8f91") (:keywords "tools" "fd" "find" "dired") (:authors ("Rashawn Zhang" . "namy.19@gmail.com")) (:maintainer "Rashawn Zhang" . "namy.19@gmail.com") (:url . "https://github.com/yqrashawn/fd-dired"))]) -(fcopy . [(20150304 1403) nil "Funny Copy, set past point HERE then search copy text" single ((:commit . "e355f6ec889d8ecbdb096019c2dc660b1cec4941") (:keywords "convenience") (:authors ("Masayuki Ataka" . "masayuki.ataka@gmail.com")) (:maintainer "Masayuki Ataka" . "masayuki.ataka@gmail.com") (:url . "https://github.com/ataka/fcopy"))]) -(fcitx . [(20170914 200) nil "Make fcitx better in Emacs" single ((:commit . "095332fbeb994c908c533fe2ad068c0728211c3d") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com") (:url . "https://github.com/cute-jumper/fcitx.el"))]) -(faustine . [(20171122 1202) ((emacs (24 3)) (faust-mode (0 3))) "Edit, visualize, build and run Faust code" single ((:commit . "07a38963111518f86123802f9d477be0d4689a3f") (:keywords "languages" "faust") (:authors ("Yassin Philip" . "xaccrocheur@gmail.com")) (:maintainer "Yassin Philip" . "xaccrocheur@gmail.com") (:url . "https://bitbucket.org/yphil/faustine"))]) -(faust-mode . [(20180205 926) nil "Faust syntax colorizer for Emacs." single ((:commit . "7c31b22bdbfd2f8c16ec117d2975d56dd61ac15c") (:keywords "languages" "faust") (:authors ("rukano" . "rukano@gmail.com")) (:maintainer "Yassin Philip" . "xaccrocheur@gmail.com") (:url . "https://github.com/rukano/emacs-faust-mode"))]) -(fastnav . [(20120211 1457) nil "Fast navigation and editing routines." single ((:commit . "1019ba2b61d1a070204099b23da347278a61bc89") (:keywords "nav" "fast" "fastnav" "navigation") (:authors ("Zsolt Terek" . "zsolt@google.com")) (:maintainer "Zsolt Terek" . "zsolt@google.com"))]) -(fastdef . [(20160713 1329) ((ivy (0 7 0)) (w3m (0 0))) "Insert terminology from Google top search results" single ((:commit . "0696f41dc150d35ce31fe8d2ea74f4173818bb55") (:keywords "terminology" "org-mode" "markdown") (:authors ("Chen Bin <chenin DOT sh AT gmail DOT com>")) (:maintainer "Chen Bin <chenin DOT sh AT gmail DOT com>") (:url . "http://github.com/redguardtoo/fastdef"))]) -(fasd . [(20180606 505) nil "Emacs integration for the command-line productivity booster `fasd'" single ((:commit . "020c6a4b5fd1498a84ae142d2e32c7ff678fb029") (:keywords "cli" "bash" "zsh" "autojump") (:authors ("steckerhalter")) (:maintainer "steckerhalter") (:url . "https://framagit.org/steckerhalter/emacs-fasd"))]) -(farmhouse-theme . [(20160713 2244) nil "Farmhouse Theme, Emacs edition" tar ((:commit . "7ddc1ff13b4a3d5466bd0d33ecb86100352e83a7") (:keywords "color" "theme") (:url . "https://github.com/mattly/emacs-farmhouse-theme"))]) -(fancy-narrow . [(20171031 16) nil "narrow-to-region with more eye candy." single ((:commit . "c9b3363752c09045b8ce7a2635afae42d2ae63c7") (:keywords "faces" "convenience") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com") (:url . "http://github.com/Bruce-Connor/fancy-narrow"))]) -(fancy-battery . [(20150101 1204) ((emacs (24 1))) "Fancy battery display" single ((:commit . "9b88ae77a01aa3edc529840338bcb2db7f445822") (:keywords "convenience" "tools" "hardware") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Sebastian Wiesner" . "swiesner@lunaryorn.com") (:url . "https://github.com/lunaryorn/fancy-battery.el"))]) -(fakir . [(20140729 1652) ((noflet (0 0 8)) (dash (1 3 2)) (kv (0 0 19))) "fakeing bits of Emacs" single ((:commit . "1fca406ad7de80fece6319ff75d4230b648534b0") (:keywords "lisp" "tools") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk") (:url . "http://github.com/nicferrier/emacs-fakir"))]) -(fakespace . [(20120818 6) nil "fake namespaces with defpackage" single ((:commit . "d1bd1f4b14b2690d7a67f9a52622ec51ed84813a") (:authors ("Christopher Wellons" . "mosquitopsu@gmail.com")) (:maintainer "Christopher Wellons" . "mosquitopsu@gmail.com") (:url . "https://github.com/skeeto/elisp-fakespace"))]) -(faff-theme . [(20190506 1513) nil "Light Emacs color theme on cornsilk3 background" single ((:commit . "de12f6a11711955fbbcdf7c042459aa2206f8deb") (:keywords "color" "theme") (:authors ("James Ferguson <(concat \"wjcferguson\" at-sign \"gmail.com\")>")) (:maintainer "James Ferguson <(concat \"wjcferguson\" at-sign \"gmail.com\")>") (:url . "https://github.com/WJCFerguson/emacs-faff-theme"))]) -(factlog . [(20130210 140) ((deferred (0 3 1))) "File activity logger" single ((:commit . "6503d77ea882c995b051d22e72db336fb28770fc") (:authors ("Takafumi Arakaki <aka.tkf at gmail.com>")) (:maintainer "Takafumi Arakaki <aka.tkf at gmail.com>") (:url . "https://github.com/tkf/factlog"))]) -(faceup . [(20170925 1946) nil "Markup language for faces and font-lock regression testing" single ((:commit . "6c92dad56a133e14e7b27831e1bcf9b3a71ff154") (:keywords "faces" "languages") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/faceup"))]) -(face-explorer . [(20190517 1857) nil "Library and tools for faces and text properties" single ((:commit . "ad1300e13e5643e4c246cabfd91f833d39113052") (:keywords "faces") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/face-explorer"))]) -(fabric . [(20171116 656) nil "Launch Fabric using Emacs" tar ((:commit . "df79be341d0b34ed23850f9894136092fa5fea8c") (:keywords "python" "fabric") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@chmouel.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@chmouel.com") (:url . "https://github.com/nlamirault/fabric.el"))]) -(f3 . [(20180130 1158) ((emacs (24 3)) (helm (2 8 8)) (cl-lib (0 5))) "a helm interface to find" tar ((:commit . "000009ce4adf7a57eae80512f29c4ec2a1391ce5") (:keywords "find" "file" "files" "helm" "fast" "finder") (:authors ("Danny McClanahan")) (:maintainer "Danny McClanahan") (:url . "https://github.com/cosmicexplorer/f3"))]) -(f . [(20190109 906) ((s (1 7 0)) (dash (2 2 0))) "Modern API for working with files and directories" single ((:commit . "8191672377816a1975414cc1f116fd3b94b30bd0") (:keywords "files" "directories") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/f.el"))]) -(eziam-theme . [(20190425 1051) nil "A mostly monochrome theme, inspired by Tao and Leuven, with dark and light versions." tar ((:commit . "4402f58f6d619571c0960b2be5ce5b61962c1a67"))]) -(ez-query-replace . [(20170814 1321) ((dash (1 2 0)) (s (1 11 0))) "a smarter context-sensitive query-replace that can be reapplied" single ((:commit . "f5dbd2d3e5e62e6b7e7cc1a98fc4d0cd411e5afa") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(eyuml . [(20141028 2227) ((request (0 2 0)) (s (1 8 0))) "Write textual uml diagram from emacs using yuml.me" single ((:commit . "eb29c37316e44a14741f16e894fbcfcb7537dc80") (:keywords "uml") (:authors ("Anthony HAMON" . "hamon.anth@gmail.com")) (:maintainer "Anthony HAMON" . "hamon.anth@gmail.com") (:url . "http://github.com/antham/eyuml"))]) -(eyebrowse . [(20190322 933) ((dash (2 7 0)) (emacs (24 3 1))) "Easy window config switching" single ((:commit . "52e160997a1c4b1d463e8b9cc2ba3e27408c2a89") (:keywords "convenience") (:authors ("Vasilij Schneidermann" . "v.schneidermann@gmail.com")) (:maintainer "Vasilij Schneidermann" . "v.schneidermann@gmail.com") (:url . "https://github.com/wasamasa/eyebrowse"))]) -(exwm-x . [(20190224 1152) ((cl-lib (0 5)) (exwm (0 22)) (switch-window (0 10)) (swiper (0 9 0)) (bind-key (1 0)) (counsel (0 9 0)) (ivy (0 9 0))) "A derivative wm based on EXWM (emacs x window manager)" tar ((:commit . "02ec31cd8996b1b3fe305405fef7334c4d08e72b") (:keywords "window-manager" "exwm") (:authors ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/exwm-x"))]) -(exwm-surf . [(20171204 1140) ((emacs (24 4)) (exwm (0 16))) "Interface for Surf (surf.suckless.org) under exwm" single ((:commit . "6c17e2c1597fe4b7b454a1dac23b9127ac951e94") (:keywords "extensions") (:authors ("Peter" . "craven@gmx.net")) (:maintainer "Peter" . "craven@gmx.net") (:url . "https://github.com/ecraven/exwm-surf"))]) -(exwm-firefox-evil . [(20190608 2230) ((emacs (24 4)) (exwm (0 16)) (evil (1 0 0)) (exwm-firefox-core (1 0))) "Firefox hotkeys to functions" single ((:commit . "69e8eff0e5443183713213386c450ebfef3b4d0a") (:keywords "extensions") (:authors ("Sebastian WÃ¥linder" . "s.walinder@gmail.com")) (:maintainer "Sebastian WÃ¥linder" . "s.walinder@gmail.com") (:url . "https://github.com/walseb/exwm-firefox-evil"))]) -(exwm-firefox-core . [(20190608 2213) ((emacs (24 4)) (exwm (0 16))) "Firefox hotkeys to functions" single ((:commit . "86acbc4b4f50f497929508e59d054f97398a5218") (:keywords "extensions") (:authors ("Sebastian WÃ¥linder" . "s.walinder@gmail.com")) (:maintainer "Sebastian WÃ¥linder" . "s.walinder@gmail.com") (:url . "https://github.com/walseb/exwm-firefox-core"))]) -(exwm-edit . [(20180905 743) ((emacs (24 4))) "Edit mode for EXWM" single ((:commit . "961c0f3ea45766b888c73d7353da13d329538034") (:keywords "convenience") (:authors ("Ag Ibragimov")) (:maintainer "Ag Ibragimov") (:url . "https://github.com/agzam/exwm-edit"))]) -(exunit . [(20190511 614) ((dash (2 10 0)) (s (1 11 0)) (emacs (24 3)) (f (0 20 0))) "ExUnit test runner" single ((:commit . "7aa008cb54e7935183a19d6b81d218de7ec38ca4") (:keywords "processes" "elixir" "exunit") (:authors ("Anantha kumaran" . "ananthakumaran@gmail.com")) (:maintainer "Anantha kumaran" . "ananthakumaran@gmail.com") (:url . "http://github.com/ananthakumaran/exunit.el"))]) -(extmap . [(20181028 1645) ((emacs (24 1))) "Externally-stored constant mapping for Elisp" single ((:commit . "1139b57d8f4276fe56b8416fdaf4745f2cdfe7c3") (:keywords "lisp") (:authors ("Paul Pogonyshev" . "pogonyshev@gmail.com")) (:maintainer "Paul Pogonyshev" . "pogonyshev@gmail.com") (:url . "https://github.com/doublep/extmap"))]) -(extend-dnd . [(20151122 1850) nil "R drag and Drop" tar ((:commit . "80c966c93b82c9bb5c6225a432557c39144fc602") (:keywords "extend" "drag and drop") (:authors ("Matthew L. Fidler")) (:maintainer "Matthew L. Fidler") (:url . "https://github.com/mlf176f2/extend-dnd"))]) -(extempore-mode . [(20180105 621) ((emacs (24 4))) "Emacs major mode for Extempore source files" single ((:commit . "ae5f40d4b0883a4519e460cd7720e5fcc3a68fa5") (:keywords "extempore") (:authors ("Ben Swift" . "ben@benswift.me")) (:maintainer "Ben Swift" . "ben@benswift.me") (:url . "http://github.com/extemporelang/extempore-emacs-mode"))]) -(exsqlaim-mode . [(20170607 1003) ((s (1 10 0))) "Use variables inside sql queries" single ((:commit . "a2e0a62ec8b87193d8eaa695774bfd689324b06c") (:authors ("Ahmad Nazir Raja" . "ahmadnazir@gmail.com")) (:maintainer "Ahmad Nazir Raja" . "ahmadnazir@gmail.com") (:url . "https://github.com/ahmadnazir/exsqlaim-mode"))]) -(express . [(20140508 2041) ((string-utils (0 3 2))) "Alternatives to `message'" single ((:commit . "93dae7377eace4a5413ba99aecb6f26f90798725") (:keywords "extensions" "message" "interface") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/express"))]) -(expand-region . [(20190416 538) nil "Increase selected region by semantic units." tar ((:commit . "1c31447730443d98f90f65dfcb752f347d46ad1b"))]) -(expand-line . [(20151006 207) nil "Expand selection by line" single ((:commit . "75a5d0241f35dd0748ab8ecb4ff16891535be372") (:authors ("Kai Yu" . "yeannylam@gmail.com")) (:maintainer "Kai Yu" . "yeannylam@gmail.com"))]) -(exotica-theme . [(20180212 2329) ((emacs (24))) "A dark theme with vibrant colors" single ((:commit . "ff3ef4f6fa38c93b99becad977c7810c990a4d2f") (:keywords "faces" "theme" "dark" "vibrant colors") (:authors ("Bharat Joshi" . "jbharat@outlook.com")) (:maintainer "Bharat Joshi" . "jbharat@outlook.com") (:url . "https://github.com/jbharat/exotica-theme"))]) -(exiftool . [(20190520 1106) ((emacs (25))) "Elisp wrapper around ExifTool" single ((:commit . "e043df1bcef40cd5934a74c210e1e35d5eb0e5a6") (:keywords "data") (:authors ("Arun I" . "arunisaac@systemreboot.net")) (:maintainer "Arun I" . "arunisaac@systemreboot.net") (:url . "https://git.systemreboot.net/exiftool.el"))]) -(exec-path-from-shell . [(20190426 2227) nil "Get environment variables such as $PATH from the shell" single ((:commit . "3cfedb8791397ed50ee66bc0a7cbee5b9d78245c") (:keywords "unix" "environment") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/exec-path-from-shell"))]) -(exato . [(20180305 1042) ((evil (1 2 13)) (emacs (24))) "EXATO: Evil XML/HTML Attributes Text Object" single ((:commit . "88266fa7fcfbef704032f671b94f756f2f98bd4f") (:authors ("Filipe Silva" . "filipe.silva@gmail.com")) (:maintainer "Filipe Silva" . "filipe.silva@gmail.com") (:url . "https://github.com/ninrod/exato"))]) -(eww-lnum . [(20150102 1512) nil "Conkeror-like functionality for eww" single ((:commit . "4b0ecec769919ecb05ca4fb15ec51911ba589929") (:keywords "eww" "browse" "conkeror") (:authors ("Andrey Kotlarski" . "m00naticus@gmail.com")) (:maintainer "Andrey Kotlarski" . "m00naticus@gmail.com") (:url . "https://github.com/m00natic/eww-lnum"))]) -(ewmctrl . [(20170922 217) nil "Use `wmctrl' to manage desktop windows via EWMH/NetWM." single ((:commit . "3d0217c4d6cdb5c308b6cb4293574f470d4faacf") (:keywords "desktop" "windows" "ewmh" "netwm") (:authors ("Alexis" . "flexibeast@gmail.com") ("Adam Plaice" . "plaice.adam@gmail.com")) (:maintainer "Alexis" . "flexibeast@gmail.com") (:url . "https://github.com/flexibeast/ewmctrl"))]) -(ewal-spacemacs-themes . [(20190518 549) ((emacs (25)) (ewal (0 1)) (spacemacs-theme (0 1))) "An `ewal'-based theme" tar ((:commit . "81f0da12d0b2d2c27bce635590faa7d0492557ca") (:keywords "faces") (:authors ("Uros Perisic")) (:maintainer "Uros Perisic") (:url . "https://gitlab.com/jjzmajic/ewal"))]) -(ewal-spacemacs-theme . [(20190509 326) nil "No description available." tar ((:commit . "8a1e61938b3d6d07ea97a9d846f39351a37e944e"))]) -(ewal-evil-cursors . [(20190604 920) ((emacs (25)) (ewal (0 1))) "`ewal'-colored evil cursor for Emacs and Spacemacs" single ((:commit . "81f0da12d0b2d2c27bce635590faa7d0492557ca") (:keywords "faces") (:authors ("Uros Perisic")) (:maintainer "Uros Perisic") (:url . "https://gitlab.com/jjzmajic/ewal"))]) -(ewal . [(20190518 533) ((emacs (25))) "A pywal-based theme generator" single ((:commit . "81f0da12d0b2d2c27bce635590faa7d0492557ca") (:keywords "faces") (:authors ("Uros Perisic")) (:maintainer "Uros Perisic") (:url . "https://gitlab.com/jjzmajic/ewal"))]) -(evm . [(20141007 1156) ((dash (2 3 0)) (f (0 13 0))) "Emacs Version Manager" single ((:commit . "d0623b2355436a5fd9f7238b419782080c79196b") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/evm"))]) -(evil-visualstar . [(20160223 48) ((evil (0))) "Starts a * or # search from the visual selection" single ((:commit . "06c053d8f7381f91c53311b1234872ca96ced752") (:keywords "evil" "vim" "visualstar") (:authors ("Bailey Ling")) (:maintainer "Bailey Ling") (:url . "https://github.com/bling/evil-visualstar"))]) -(evil-visual-replace . [(20171016 613) ((evil (1 0 0))) "search/replace commands for evil visual state, inc. blocks" single ((:commit . "163fc827a1ffc106475da470c37fb26f4cc9b008") (:keywords "evil" "search" "replace" "regexp" "block" "rectangular" "region" "visual") (:authors ("Troy Pracy")) (:maintainer "Troy Pracy") (:url . "https://github.com/troyp/evil-visual-replace"))]) -(evil-visual-mark-mode . [(20190116 1557) ((evil (1 0 9)) (dash (2 10))) "Display evil marks on buffer" single ((:commit . "ac5997971972a9251f140b5542d82790ca4a43b4") (:keywords "evil") (:authors ("Roman Gonzalez" . "romanandreg@gmail.com")) (:maintainer "Roman Gonzalez" . "romanandreg@gmail.com"))]) -(evil-vimish-fold . [(20171030 1151) ((emacs (24 4)) (evil (1 0 0)) (vimish-fold (0 2 0))) "Integrate vimish-fold with evil" single ((:commit . "c617fecb91303f8c63f85a6101a503fdc88aae84") (:authors ("Alex Murray" . "murray.alex@gmail.com")) (:maintainer "Alex Murray" . "murray.alex@gmail.com") (:url . "https://github.com/alexmurray/evil-vimish-fold"))]) -(evil-tutor-ja . [(20160917 132) ((evil (1 0 9)) (evil-tutor (0 1))) "Japanese Vimtutor adapted to Evil and wrapped in a major-mode" tar ((:commit . "99af7d82e02ce3bcdfaff47c5c80b57327a7ea8d") (:keywords "convenience" "editing" "evil" "japanese") (:authors ("Kenji Miyazaki" . "kenjizmyzk@gmail.com")) (:maintainer "Kenji Miyazaki" . "kenjizmyzk@gmail.com") (:url . "https://github.com/kenjimyzk/evil-tutor-ja"))]) -(evil-tutor . [(20150103 650) ((evil (1 0 9))) "Vimtutor adapted to Evil and wrapped in a major-mode" tar ((:commit . "4e124cd3911dc0d1b6817ad2c9e59b4753638f28") (:keywords "convenience" "editing" "evil") (:authors ("Sylvain Benner" . "sylvain.benner@gmail.com")) (:maintainer "Sylvain Benner" . "sylvain.benner@gmail.com") (:url . "https://github.com/syl20bnr/evil-tutor"))]) -(evil-textobj-syntax . [(20181210 1213) ((names (0 5)) (emacs (24)) (evil (0))) "Provides syntax text objects." single ((:commit . "2d9ba8c75c754b409aea7469f46a5cfa52a872f3") (:keywords "evil" "syntax" "highlight" "text-object") (:url . "https://github.com/laishulu/evil-textobj-syntax"))]) -(evil-textobj-line . [(20150729 1522) ((evil (1 0 0))) "evil textobj line" single ((:commit . "3d401b6831bdbeec967ec8e64177a8950251e812") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-evil-textobj-line"))]) -(evil-textobj-entire . [(20150422 1254) ((emacs (24)) (evil (1 0 0))) "text object for entire lines of buffer for evil" single ((:commit . "5b3a98f3a69edc3a788f539f6ffef4a0ef5e853d") (:keywords "convenience" "emulations") (:authors ("supermomonga")) (:maintainer "supermomonga") (:url . "https://github.com/supermomonga/evil-textobj-entire"))]) -(evil-textobj-column . [(20170905 1905) ((names (0 5)) (emacs (24)) (evil (0))) "Provides column text objects." single ((:commit . "835d7036d0bc9a6e44fc9b7c54ccf2a7c01428cd") (:keywords "evil" "column" "text-object") (:authors ("Fox Kiester" . "noct@openmailbox.org")) (:maintainer "Fox Kiester" . "noct@openmailbox.org") (:url . "https://github.com/noctuid/evil-textobj-column"))]) -(evil-textobj-anyblock . [(20170905 1907) ((cl-lib (0 5)) (evil (1 1 0))) "Textobject for the closest user-defined blocks." single ((:commit . "ff00980f0634f95bf2ad9956b615a155ea8743be") (:keywords "evil") (:authors ("Fox Kiester" . "noct@openmailbox.org")) (:maintainer "Fox Kiester" . "noct@openmailbox.org") (:url . "https://github.com/noctuid/evil-textobj-anyblock"))]) -(evil-text-object-python . [(20181126 1324) ((emacs (24)) (evil (1 2 12))) "Python specific evil text objects" single ((:commit . "9a064fe6475429145cbcc3b270fcc963b67adb15") (:keywords "evil" "python" "text-object") (:authors ("Wouter Bolsterlee" . "wouter@bolsterl.ee")) (:maintainer "Wouter Bolsterlee" . "wouter@bolsterl.ee") (:url . "https://github.com/wbolster/evil-text-object-python"))]) -(evil-test-helpers . [(20190104 1026) ((evil (1 2 14))) "unit test helpers for Evil" single ((:commit . "297b8f323754d967beeaed28080311f5afbe25c8") (:authors ("Vegard Øye <vegard_oye at hotmail.com>")) (:maintainer "Vegard Øye <vegard_oye at hotmail.com>"))]) -(evil-terminal-cursor-changer . [(20170401 842) ((evil (1 0 8))) "Change cursor shape and color by evil state in terminal" single ((:commit . "b49ca4393d2f3cc6014174950059b36a5cb22949") (:keywords "evil" "terminal" "cursor") (:authors ("7696122")) (:maintainer "7696122") (:url . "https://github.com/7696122/evil-terminal-cursor-changer"))]) -(evil-tabs . [(20160217 1520) ((evil (0 0 0)) (elscreen (0 0 0))) "Integrating Vim-style tabs for Evil mode users." single ((:commit . "53d3314a810017b6056ab6796aef671f5ea1c063") (:keywords "evil" "tab" "tabs" "vim") (:authors ("Kris Jenkins" . "krisajenkins@gmail.com")) (:maintainer "Kris Jenkins" . "krisajenkins@gmail.com") (:url . "https://github.com/krisajenkins/evil-tabs"))]) -(evil-swap-keys . [(20170726 1820) ((emacs (24))) "intelligently swap keys on text input with evil" single ((:commit . "56bc201e265a6bd482a7c41a7c81d2238341ef3a") (:keywords "evil" "key" "swap" "numbers" "symbols") (:authors ("Wouter Bolsterlee" . "wouter@bolsterl.ee")) (:maintainer "Wouter Bolsterlee" . "wouter@bolsterl.ee") (:url . "https://github.com/wbolster/evil-swap-keys"))]) -(evil-surround . [(20190403 418) ((evil (1 2 12))) "emulate surround.vim from Vim" single ((:commit . "5ad01dfa86424c4b22cd1dfa375f13bd8c656f43") (:keywords "emulation" "vi" "evil") (:authors ("Tim Harper <timcharper at gmail dot com>") ("Vegard Øye <vegard_oye at hotmail dot com> ")) (:maintainer "Tim Harper <timcharper at gmail dot com>"))]) -(evil-string-inflection . [(20180313 1755) ((emacs (24)) (evil (1 2 13)) (string-inflection (1 0 6))) "snake_case -> CamelCase -> etc. for text objects" single ((:commit . "008b74a9b2994abfb4ff5b679b8a5a26fd45e98a") (:authors ("Filipe Silva" . "filipe.silva@gmail.com")) (:maintainer "Filipe Silva" . "filipe.silva@gmail.com") (:url . "https://github.com/ninrod/evil-string-inflection"))]) -(evil-space . [(20151208 1228) ((evil (1 0 0))) "Repeat motion in Evil. Correct the behaviour of what SPC should do." single ((:commit . "a9c07284d308425deee134c9d88a2d538dd229e6") (:keywords "space" "repeat" "motion") (:authors ("Quang Linh LE" . "linktohack@gmail.com")) (:maintainer "Quang Linh LE" . "linktohack@gmail.com") (:url . "http://github.com/linktohack/evil-space"))]) -(evil-snipe . [(20180731 1731) ((emacs (24 4)) (evil (1 2 12)) (cl-lib (0 5))) "emulate vim-sneak & vim-seek" single ((:commit . "8dd076cc56eb9b04494e4e303b86a959b048350b") (:keywords "emulation" "vim" "evil" "sneak" "seek") (:authors ("Henrik Lissner <http://github/hlissner>")) (:maintainer "Henrik Lissner" . "henrik@lissner.net") (:url . "https://github.com/hlissner/evil-snipe"))]) -(evil-smartparens . [(20171210 1513) ((evil (1 0)) (emacs (24 4)) (smartparens (1 10 1))) "Evil support for smartparens" single ((:commit . "026d4a3cfce415a4dfae1457f871b385386e61d3") (:keywords "evil" "smartparens") (:authors ("Lars Andersen" . "expez@expez.com")) (:maintainer "Lars Andersen" . "expez@expez.com") (:url . "https://www.github.com/expez/evil-smartparens"))]) -(evil-search-highlight-persist . [(20170523 334) ((highlight (0))) "Persistent highlights after search" single ((:commit . "979d2dec58d3b9c5ca5fdf4bb802a0209913794e") (:authors ("Juanjo Alvarez" . "juanjo@juanjoalvarez.net")) (:maintainer "Juanjo Alvarez" . "juanjo@juanjoalvarez.net"))]) -(evil-rsi . [(20160221 2104) ((evil (1 0 0))) "Use emacs motion keys in evil, inspired by vim-rsi" single ((:commit . "65ae60866be494e4622fe383e23975e04d2a42a3") (:keywords "evil" "rsi" "evil-rsi") (:authors ("Quang Linh LE" . "linktohack@gmail.com")) (:maintainer "Quang Linh LE" . "linktohack@gmail.com") (:url . "http://github.com/linktohack/evil-rsi"))]) -(evil-replace-with-register . [(20170713 925) ((evil (1 0 8))) "Port of vim plugin ReplaceWithRegister" single ((:commit . "91cc7bf21a94703c441cc9212214075b226b7f67") (:keywords "evil" "plugin") (:authors ("Dewdrops" . "v_v_4474@126.com")) (:maintainer "Dewdrops" . "v_v_4474@126.com") (:url . "https://github.com/Dewdrops/evil-ReplaceWithRegister"))]) -(evil-replace-with-char . [(20180324 2206) ((evil (1 2 13)) (emacs (24))) "replace chars of a text object with a char" single ((:commit . "ed4a12d5bff11163eb03ad2826c52fd30f51a8d3") (:authors ("Filipe Silva" . "filipe.silva@gmail.com")) (:maintainer "Filipe Silva" . "filipe.silva@gmail.com") (:url . "https://github.com/ninrod/evil-replace-with-char"))]) -(evil-rails . [(20190512 1517) ((evil (1 0)) (projectile-rails (1 0))) "Rails support for Evil Mode" single ((:commit . "b0f1c5de6720714febeb76c4b569b71bb891938c") (:keywords "ruby" "rails" "vim" "project" "convenience" "web" "evil" "projectile") (:authors ("Antono Vasiljev" . "antono.vasiljev@gmail.com")) (:maintainer "Antono Vasiljev" . "antono.vasiljev@gmail.com") (:url . "https://github.com/antono/evil-rails"))]) -(evil-quickscope . [(20160202 1924) ((evil (0))) "Highlight unique characters in words for f,F,t,T navigation" single ((:commit . "37a20e4c56c6058abf186ad4013c155e695e876f") (:keywords "faces" "emulation" "vim" "evil") (:authors ("Michael Chen" . "blorbx@gmail.com")) (:maintainer "Michael Chen" . "blorbx@gmail.com") (:url . "http://github.com/blorbx/evil-quickscope"))]) -(evil-python-movement . [(20180724 1420) ((emacs (25 1)) (cl-lib (0 5)) (dash (2 13 0)) (evil (1 0)) (s (1 12 0))) "Port Neovim's python movement to Evil" single ((:commit . "9936b3b7f8d96415d517c1f3604637889484a637") (:authors ("Felipe Lema <felipelema en mortemale punto org>")) (:maintainer "Felipe Lema <felipelema en mortemale punto org>") (:url . "https://bitbucket.org/FelipeLema/evil-python-movement.el/"))]) -(evil-paredit . [(20150413 2048) ((evil (1 0 9)) (paredit (25 -2))) "Paredit support for evil keybindings" single ((:commit . "e058fbdcf9dbf7ad6cc77f0172d7517ef233d55f") (:keywords "paredit" "evil") (:authors ("Roman Gonzalez" . "romanandreg@gmail.com")) (:maintainer "Roman Gonzalez" . "romanandreg@gmail.com") (:url . "https://github.com/roman/evil-paredit"))]) -(evil-org . [(20180323 2306) ((emacs (24 4)) (evil (1 0))) "evil keybindings for org-mode" tar ((:commit . "b6d652a9163d3430a9e0933a554bdbee5244bbf6") (:keywords "evil" "vim-emulation" "org-mode" "key-bindings" "presets") (:maintainer "Somelauw") (:url . "https://github.com/Somelauw/evil-org-mode.git"))]) -(evil-opener . [(20161207 1810) ((evil (1 2 12)) (opener (0 2 2))) "opening urls as buffers in evil" tar ((:commit . "c384f67278046fdcd220275fdd212ab85672cbeb") (:keywords "url" "http" "files") (:authors ("Tim Reddehase" . "tr@rightsrestricted.com")) (:maintainer "Tim Reddehase" . "tr@rightsrestricted.com") (:url . "https://github.com/0robustus1/opener.el"))]) -(evil-numbers . [(20140606 1251) nil "increment/decrement numbers like in vim" single ((:commit . "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e") (:keywords "numbers" "increment" "decrement" "octal" "hex" "binary") (:authors ("Michael Markert" . "markert.michael@googlemail.com")) (:maintainer "Michael Markert" . "markert.michael@googlemail.com") (:url . "http://github.com/cofi/evil-numbers"))]) -(evil-nl-break-undo . [(20181125 2054) nil "Break evil's undo sequence on CR" single ((:commit . "4a8f2bf99c978a109eeb92965a72a17bedb68762") (:authors ("VanLaser" . "Gabriel.Lazar@com.utcluj.ro")) (:maintainer "VanLaser" . "Gabriel.Lazar@com.utcluj.ro") (:url . "https://github.com/VanLaser/evil-nl-break-undo"))]) -(evil-nerd-commenter . [(20190407 828) ((emacs (24 4))) "Comment/uncomment lines efficiently. Like Nerd Commenter in Vim" tar ((:commit . "acc0f75cde9e4ffd946f7835c3b388fb77f633a7") (:keywords "commenter" "vim" "line" "evil") (:authors ("Chen Bin" . "chenbin.sh@gmail.com")) (:maintainer "Chen Bin" . "chenbin.sh@gmail.com") (:url . "http://github.com/redguardtoo/evil-nerd-commenter"))]) -(evil-multiedit . [(20190103 715) ((emacs (24 4)) (evil (1 2 12)) (iedit (0 9)) (cl-lib (0 5))) "multiple cursors for evil-mode" single ((:commit . "cb35914ffabb4f65d22ab2f812ff6e7622cc5c26") (:keywords "multiple cursors" "editing" "iedit") (:authors ("Henrik Lissner <http://github/hlissner>")) (:maintainer "Henrik Lissner" . "henrik@lissner.net") (:url . "https://github.com/hlissner/evil-multiedit"))]) -(evil-mu4e . [(20180613 1039) ((emacs (24 4)) (evil (1 2 10))) "evil-based key bindings for mu4e" single ((:commit . "5b22c1e30246318f233264506272d770f63897ca") (:authors ("Joris Engbers" . "info@jorisengbers.nl")) (:maintainer "Joris Engbers" . "info@jorisengbers.nl") (:url . "https://github.com/JorisE/evil-mu4e"))]) -(evil-mc-extras . [(20170202 1649) ((emacs (24 3)) (evil (1 2 12)) (cl-lib (0 5)) (evil-mc (0 0 2)) (evil-numbers (0 4))) "Extra functionality for evil-mc" tar ((:commit . "8c1af3232dd1e15b2ea38360b8cd1e857e11c416") (:keywords "evil" "editing" "multiple-cursors" "vim" "evil-multiple-cursors" "evil-mc" "evil-mc-extras") (:authors ("Gabriel Adomnicai" . "gabesoft@gmail.com")) (:maintainer "Gabriel Adomnicai" . "gabesoft@gmail.com") (:url . "https://github.com/gabesoft/evil-mc-extras"))]) -(evil-mc . [(20190321 1606) ((emacs (24 3)) (evil (1 2 13)) (cl-lib (0 5))) "Multiple cursors for evil-mode" tar ((:commit . "5205fe671803465149e578849bbbe803c23a8e4e") (:keywords "evil" "editing" "multiple-cursors" "vim" "evil-multiple-cursors" "evil-mc" "evil-mc") (:authors ("Gabriel Adomnicai" . "gabesoft@gmail.com")) (:maintainer "Gabriel Adomnicai" . "gabesoft@gmail.com") (:url . "https://github.com/gabesoft/evil-mc"))]) -(evil-matchit . [(20190607 212) ((evil (1 2 0)) (emacs (24 4))) "Vim matchit ported to Evil" tar ((:commit . "8fa4c1390d82036f9d51750eb6d3f054785cb396") (:keywords "matchit" "vim" "evil") (:authors ("Chen Bin" . "chenbin.sh@gmail.com")) (:maintainer "Chen Bin" . "chenbin.sh@gmail.com") (:url . "http://github.com/redguardtoo/evil-matchit"))]) -(evil-mark-replace . [(20150424 718) ((evil (1 0 8))) "replace the thing in marked area" single ((:commit . "56cf191724a3e82239ca47a17b071c20aedb0617") (:keywords "mark" "replace" "evil") (:authors ("Chen Bin" . "chenbin.sh@gmail.com")) (:maintainer "Chen Bin" . "chenbin.sh@gmail.com") (:url . "http://github.com/redguardtoo/evil-mark-replace"))]) -(evil-magit . [(20190224 2028) ((evil (1 2 3)) (magit (2 6 0))) "evil-based key bindings for magit" single ((:commit . "e2fec5877994c0c19f0c25fa01f3d22cb0ab38ba") (:authors ("Justin Burkett" . "justin@burkett.cc")) (:maintainer "Justin Burkett" . "justin@burkett.cc") (:url . "https://github.com/justbur/evil-magit"))]) -(evil-lispy . [(20190502 739) ((lispy (0 26 0)) (evil (1 2 12)) (hydra (0 13 5))) "precision Lisp editing with Evil and Lispy" tar ((:commit . "ed317f7fccbdbeea8aa04a91b1b1f48a0e2ddc4e") (:keywords "lisp") (:authors ("Brandon Carrell <brandoncarrell@gmail.com>, Mika Vilpas" . "mika.vilpas@gmail.com")) (:maintainer "Brandon Carrell <brandoncarrell@gmail.com>, Mika Vilpas" . "mika.vilpas@gmail.com") (:url . "https://github.com/sp3ctum/evil-lispy"))]) -(evil-lisp-state . [(20160404 248) ((evil (1 0 9)) (bind-map (0)) (smartparens (1 6 1))) "An evil state to edit Lisp code" single ((:commit . "3c65fecd9917a41eaf6460f22187e2323821f3ce") (:keywords "convenience" "editing" "evil" "smartparens" "lisp" "mnemonic") (:authors ("Sylvain Benner" . "sylvain.benner@gmail.com")) (:maintainer "Sylvain Benner" . "sylvain.benner@gmail.com") (:url . "https://github.com/syl20bnr/evil-lisp-state"))]) -(evil-lion . [(20170811 614) ((emacs (24 3)) (evil (1 0 0))) "Evil align operator, port of vim-lion" single ((:commit . "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab") (:keywords "emulations" "evil" "vim") (:authors ("edkolev" . "evgenysw@gmail.com")) (:maintainer "edkolev" . "evgenysw@gmail.com") (:url . "http://github.com/edkolev/evil-lion"))]) -(evil-ledger . [(20180802 1612) ((emacs (24 4)) (evil (1 2 12)) (ledger-mode (0))) "Make `ledger-mode' more `evil'." single ((:commit . "7a9f9f5d39c42fffdba8004f8982642351f2b233") (:keywords "convenience" "evil" "languages" "ledger" "vim-emulation") (:authors ("Aaron Jacobs" . "atheriel@gmail.com")) (:maintainer "Aaron Jacobs" . "atheriel@gmail.com") (:url . "https://github.com/atheriel/evil-ledger"))]) -(evil-leader . [(20140606 1243) ((evil (0))) "let there be <leader>" single ((:commit . "39f7014bcf8b36463e0c7512c638bda4bac6c2cf") (:keywords "evil" "vim-emulation" "leader") (:authors ("Michael Markert" . "markert.michael@googlemail.com")) (:maintainer "Michael Markert" . "markert.michael@googlemail.com") (:url . "http://github.com/cofi/evil-leader"))]) -(evil-indent-textobject . [(20130831 2219) ((evil (0))) "evil textobjects based on indentation" single ((:commit . "70a1154a531b7cfdbb9a31d6922482791e20a3a7") (:keywords "convenience" "evil") (:authors ("Michael Markert" . "markert.michael@gmail.com")) (:maintainer "Michael Markert" . "markert.michael@gmail.com") (:url . "http://github.com/cofi/evil-indent-textobject"))]) -(evil-indent-plus . [(20151109 1906) ((evil (0)) (cl-lib (0 5))) "Evil textobjects based on indentation" single ((:commit . "0c7501e6efed661242c3a20e0a6c79a6455c2c40") (:keywords "convenience" "evil") (:authors ("Eivind Fonn" . "evfonn@gmail.com")) (:maintainer "Eivind Fonn" . "evfonn@gmail.com") (:url . "http://github.com/TheBB/evil-indent-plus"))]) -(evil-iedit-state . [(20180607 558) ((evil (1 0 9)) (iedit (0 97))) "Evil states to interface iedit mode." single ((:commit . "f75cff4ecbd5beaa9ca64a6c157c4105f078daec") (:keywords "convenience" "editing" "evil" "iedit" "mnemonic") (:authors ("Sylvain Benner" . "sylvain.benner@gmail.com")) (:maintainer "Sylvain Benner" . "sylvain.benner@gmail.com") (:url . "https://github.com/syl20bnr/evil-iedit-state"))]) -(evil-goggles . [(20181123 1946) ((emacs (24 4)) (evil (1 0 0))) "Add a visual hint to evil operations" single ((:commit . "78454a7e8bd609edf0d93cb0a7f9ed576dd33546") (:keywords "emulations" "evil" "vim" "visual") (:authors ("edkolev" . "evgenysw@gmail.com")) (:maintainer "edkolev" . "evgenysw@gmail.com") (:url . "http://github.com/edkolev/evil-goggles"))]) -(evil-god-state . [(20141117 255) ((evil (1 0 8)) (god-mode (2 12 0))) "use god-mode keybindings in evil-mode" single ((:commit . "3d44197dc0a1fb40e7b7ff8717f8a8c339ce1d40") (:keywords "evil" "leader" "god-mode") (:authors ("Eric Seidel")) (:maintainer "Eric Seidel") (:url . "https://github.com/gridaphobe/evil-god-state"))]) -(evil-fringe-mark . [(20190320 453) ((emacs (24 3)) (evil (1 0 0)) (fringe-helper (0 1 1)) (goto-chg (1 6))) "Display evil-mode marks in the fringe" tar ((:commit . "a1689fddb7ee79aaa720a77aada1208b8afd5c20") (:authors ("Andrew Smith" . "andy.bill.smith@gmail.com")) (:maintainer "Andrew Smith" . "andy.bill.smith@gmail.com") (:url . "https://github.com/Andrew-William-Smith/evil-fringe-mark"))]) -(evil-find-char-pinyin . [(20160514 2041) ((evil (1 2 12)) (pinyinlib (0 1 0))) "Evil's f/F/t/T/evil-snipe commands with Pinyin support" single ((:commit . "04e277946d658f1a73c68dcbbadea9c21097a31c") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com"))]) -(evil-extra-operator . [(20161213 403) ((evil (1 0 7))) "Evil operator for evaluating codes, taking notes, searching via google, etc." single ((:commit . "e16a9b36f9901254da9af8a73871061616410fc3") (:keywords "evil" "plugin") (:authors ("Dewdrops" . "v_v_4474@126.com")) (:maintainer "Dewdrops" . "v_v_4474@126.com") (:url . "http://github.com/Dewdrops/evil-extra-operator"))]) -(evil-expat . [(20190521 714) ((emacs (24 3)) (evil (1 0 0))) "Evil ex commands" single ((:commit . "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2") (:keywords "emulations" "evil" "vim") (:authors ("edkolev" . "evgenysw@gmail.com")) (:maintainer "edkolev" . "evgenysw@gmail.com") (:url . "http://github.com/edkolev/evil-expat"))]) -(evil-exchange . [(20170511 259) ((evil (1 2 8)) (cl-lib (0 3))) "Exchange text more easily within Evil" single ((:commit . "47691537815150715e64e6f6ec79be7746c96120") (:keywords "evil" "plugin") (:authors ("Dewdrops" . "v_v_4474@126.com")) (:maintainer "Dewdrops" . "v_v_4474@126.com") (:url . "http://github.com/Dewdrops/evil-exchange"))]) -(evil-ex-shell-command . [(20181226 226) ((emacs (24 4)) (evil (1 1 0))) "invoke shell-command right from evil-ex" single ((:commit . "a6ca6d27c07f6a0807abfb5b8f8865f1d17f54aa") (:keywords "tools" "shell-command" "evil") (:authors ("Rashawn Zhang" . "namy.19@gmail.com")) (:maintainer "Rashawn Zhang" . "namy.19@gmail.com") (:url . "https://github.com/yqrashawn/evil-ex-shell-command"))]) -(evil-ex-fasd . [(20180903 612) ((emacs (24 4)) (evil (1 1 0)) (fasd (0))) "using fasd right from evil-ex" single ((:commit . "ed8fbbe23a8a268d9dcbf1a6132e928ba2c655c5") (:keywords "tools" "fasd" "evil" "navigation") (:authors ("Rashawn Zhang" . "namy.19@gmail.com")) (:maintainer "Rashawn Zhang" . "namy.19@gmail.com") (:url . "https://github.com/yqrashawn/evil-ex-fasd"))]) -(evil-escape . [(20180910 1234) nil "No description available." single ((:commit . "f4e9116bfbaac8c9d210c17ad488e0982291245f"))]) -(evil-embrace . [(20160519 1829) ((emacs (24 4)) (embrace (0 1 0)) (evil-surround (0))) "Evil integration of embrace.el" single ((:commit . "4379adea032b25e359d01a36301b4a5afdd0d1b7") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com"))]) -(evil-ediff . [(20170724 1923) ((evil (1 2 3))) "Make ediff a little evil" single ((:commit . "50d26cb0654fca8f8fd7227410e5cbf0b8f681cf") (:authors ("Justin Burkett" . "justin@burkett.cc")) (:maintainer "Justin Burkett" . "justin@burkett.cc") (:url . "https://github.com/justbur/evil-ediff"))]) -(evil-easymotion . [(20180114 654) ((emacs (24)) (avy (0 3 0)) (cl-lib (0 5))) "A port of vim's easymotion to emacs" single ((:commit . "79c13ed3bce018ac09d358e642e5bd7025e93603") (:keywords "convenience" "evil") (:authors ("PythonNut" . "pythonnut@pythonnut.com")) (:maintainer "PythonNut" . "pythonnut@pythonnut.com") (:url . "https://github.com/pythonnut/evil-easymotion"))]) -(evil-dvorak . [(20160416 1841) ((evil (1 0 8))) "evil keybindings for that work with dvorak mode" tar ((:commit . "824f7c56980d72a0ff04c662223540cd66f13754") (:keywords "evil" "vim-emulation" "dvorak" "keyboard") (:url . "https://github.com/jbranso/evil-dvorak.git"))]) -(evil-commentary . [(20170413 1451) ((evil (1 0 0))) "Comment stuff out. A port of vim-commentary." tar ((:commit . "395f91014b69844b81660c155f42eb9b1b3d199d") (:keywords "evil" "comment" "commentary" "evil-commentary") (:authors ("Quang Linh LE" . "linktohack@gmail.com")) (:maintainer "Quang Linh LE" . "linktohack@gmail.com") (:url . "http://github.com/linktohack/evil-commentary"))]) -(evil-collection . [(20190618 141) ((emacs (25 1)) (cl-lib (0 5)) (evil (1 2 13))) "A set of keybindings for Evil mode" tar ((:commit . "3ce6872f68f3c07bacd3e1a3a002b93c1f663449") (:keywords "evil" "tools") (:authors ("James Nguyen" . "james@jojojames.com")) (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/emacs-evil/evil-collection"))]) -(evil-colemak-minimal . [(20171006 1317) ((emacs (24)) (evil (1 2 12))) "Minimal Colemak key bindings for evil-mode" single ((:commit . "6d98b6da60f414524a0d718f76024c26dce742b3") (:keywords "colemak" "evil") (:authors ("Bryan Allred" . "bryan@revolvingcow.com")) (:maintainer "Bryan Allred" . "bryan@revolvingcow.com") (:url . "https://github.com/bmallred/evil-colemak-minimal"))]) -(evil-colemak-basics . [(20170425 1209) ((emacs (24)) (evil (1 2 12)) (evil-snipe (2 0 3))) "Basic Colemak key bindings for evil-mode" single ((:commit . "7844079b47f47bb1dc24c885b0ac2e67524fa960") (:keywords "colemak" "evil") (:authors ("Wouter Bolsterlee" . "wouter@bolsterl.ee")) (:maintainer "Wouter Bolsterlee" . "wouter@bolsterl.ee") (:url . "https://github.com/wbolster/evil-colemak-basics"))]) -(evil-cleverparens . [(20170718 413) ((evil (1 0)) (paredit (1)) (smartparens (1 6 1)) (emacs (24 4)) (dash (2 12 0))) "Evil friendly minor-mode for editing lisp." tar ((:commit . "8c45879d49bfa6d4e414b6c1df700a4a51cbb869") (:keywords "cleverparens" "parentheses" "evil" "paredit" "smartparens") (:authors ("Olli Piepponen" . "opieppo@gmail.com")) (:maintainer "Olli Piepponen" . "opieppo@gmail.com") (:url . "https://github.com/luxbock/evil-cleverparens"))]) -(evil-better-visual-line . [(20181026 1028) ((evil (1 2 13))) "gj and gk visual line mode fix" single ((:commit . "15f77e67fcc3c48db323ccd8c8c4bc249e2911b8") (:keywords "evil" "vim" "motion") (:authors ("<nuckollsp at gmail.com>")) (:maintainer "<nuckollsp at gmail.com>") (:url . "https://github.com/yourfin/evil-better-visual-line"))]) -(evil-avy . [(20150908 748) ((emacs (24 1)) (cl-lib (0 5)) (avy (0 3 0)) (evil (1 2 3))) "set-based completion" single ((:commit . "2dd955cc3ecaa7ddeb67b295298abdc6d16dd3a5") (:keywords "point" "location" "evil" "vim") (:authors ("Yufan Lou" . "loganlyf@gmail.com")) (:maintainer "Yufan Lou" . "loganlyf@gmail.com") (:url . "https://github.com/louy2/evil-avy"))]) -(evil-args . [(20180908 2157) ((evil (1 0 8))) "Motions and text objects for delimited arguments in Evil." single ((:commit . "758ad5ae54ad34202064fec192c88151c08cb387") (:keywords "evil" "vim-emulation") (:authors ("Connor Smith" . "wconnorsmith@gmail.com")) (:maintainer "Connor Smith" . "wconnorsmith@gmail.com") (:url . "http://github.com/wcsmith/evil-args"))]) -(evil-anzu . [(20170124 718) ((evil (1 0 0)) (anzu (0 46))) "anzu for evil-mode" single ((:commit . "9bca6ca14d865e7e005bc02a28a09b4ae74facc9") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com") ("Fredrik Bergroth" . "fbergroth@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-evil-anzu"))]) -(evil . [(20190222 1212) ((emacs (24 1)) (undo-tree (0 6 3)) (goto-chg (1 6)) (cl-lib (0 5))) "Extensible Vi layer for Emacs." tar ((:commit . "297b8f323754d967beeaed28080311f5afbe25c8"))]) -(eve-mode . [(20170822 2231) ((emacs (25)) (polymode (1 0)) (markdown-mode (2 0))) "Major mode for editing Eve documents." single ((:commit . "a4661114d9c18725691b76321d72167ca5a9070a") (:keywords "languages" "wp" "tools") (:authors ("Joshua Cole" . "joshuafcole@gmail.com")) (:maintainer "Joshua Cole" . "joshuafcole@gmail.com") (:url . "https://github.com/witheve/emacs-eve-mode"))]) -(evalator-clojure . [(20160208 2148) ((cider (0 10 0)) (evalator (1 0 0))) "Clojure evaluation context for evalator via CIDER." tar ((:commit . "caa4e0a137bdfada86593128a654e16aa617ad50") (:keywords "languages" "clojure" "cider" "helm") (:authors ("Sean Irby")) (:maintainer "Sean Irby" . "sean.t.irby@gmail.com") (:url . "http://www.github.com/seanirby/evalator-clojure"))]) -(evalator . [(20160213 128) ((helm-core (1 9 1))) "Package for interactive transformation of data with helm" tar ((:commit . "f30da4da48c0b3f3cfa1fc1c7cfdb53ffe79df36") (:keywords "languages" "elisp" "helm") (:authors ("Sean Irby")) (:maintainer "Sean Irby" . "sean.t.irby@gmail.com") (:url . "http://www.github.com/seanirby/evalator"))]) -(eval-sexp-fu . [(20190109 809) ((cl-lib (0))) "Tiny functionality enhancements for evaluating sexps." single ((:commit . "e1d7165383c941b3f11c2715707adc3d91d129a0") (:keywords "lisp" "highlight" "convenience") (:authors ("Takeshi Banse" . "takebi@laafc.net")) (:maintainer "Takeshi Banse" . "takebi@laafc.net"))]) -(eval-in-repl . [(20171122 1343) ((dash (0 0 0)) (paredit (0 0 0)) (ace-window (0 0 0))) "Consistent ESS-like eval interface for various REPLs" tar ((:commit . "fea05a5b81d74ac53cb2a83aa83a73d9526bcc42") (:url . "https://github.com/kaz-yos/eval-in-repl/"))]) -(eval-expr . [(20120619 647) nil "enhanced eval-expression command" single ((:commit . "a0e69e83de41df8dbccefc1962ab4f02206a3328") (:keywords "lisp" "extensions") (:authors ("Noah Friedman" . "friedman@splode.com")) (:maintainer nil . "friedman@splode.com"))]) -(euslisp-mode . [(20170830 1929) ((emacs (24 3)) (s (1 9)) (exec-path-from-shell (0)) (helm-ag (0 58))) "Major mode for Euslisp-formatted text" single ((:commit . "db62a2d148482317794727982576494596365a55") (:keywords "euslisp" "euslisp" "github") (:authors ("iory" . "ab.ioryz@gmail.com")) (:maintainer "iory" . "ab.ioryz@gmail.com") (:url . "https://github.com/iory/euslisp-mode"))]) -(ethan-wspace . [(20190522 1448) nil "whitespace customizations for emacs" single ((:commit . "0f110fc26b829093c352e8dc9e50ba51a4e483ac") (:keywords "whitespace" "tab" "newline" "trailing" "clean") (:authors ("Ethan Glasser-Camp" . "ethan@betacantrips.com")) (:maintainer "Ethan Glasser-Camp" . "ethan@betacantrips.com"))]) -(eterm-256color . [(20190123 401) ((emacs (24 4)) (xterm-color (1 7)) (f (0 19 0))) "Customizable 256 colors for term." tar ((:commit . "0f0dab497239ebedbc9c4a48b3ec8cce4a47e980") (:keywords "faces") (:authors ("Diego A. Mundo" . "diegoamundo@gmail.com")) (:maintainer "Diego A. Mundo" . "diegoamundo@gmail.com") (:url . "http://github.com/dieggsy/eterm-256color"))]) -(etable . [(20161028 2009) ((dash (2 9 0)) (interval-list (0 1)) (emacs (24 4))) "Implementation of javax.swing.JTable for Emacs." tar ((:commit . "d502141f0c69bf95256ba5cb9cd15350c7e942d2"))]) -(esxml . [(20171129 807) nil "Library for working with xml via esxml and sxml" tar ((:commit . "5548ceba17deae0c3c6d0092672edc4de3c75ce3"))]) -(esup . [(20180727 342) ((cl-lib (0 5)) (emacs (24))) "the Emacs StartUp Profiler (ESUP)" tar ((:commit . "0877d7831d0bf60e33097df135a889da153243c8") (:keywords "convenience" "processes") (:authors ("Joe Schafer" . "joe@jschaf.com")) (:maintainer "Joe Schafer" . "joe@jschaf.com") (:url . "http://github.com/jschaf/esup"))]) -(ess-view . [(20181001 1730) ((ess (15)) (s (1 8 0)) (f (0 16 0))) "View R dataframes in a spreadsheet software" single ((:commit . "d4e5a340b7bcc58c434867b97923094bd0680283") (:keywords "extensions" "ess") (:authors ("Bocci Gionata" . "boccigionata@gmail.com")) (:maintainer "Bocci Gionata" . "boccigionata@gmail.com") (:url . "https://github.com/GioBo/ess-view"))]) -(ess-smart-underscore . [(20190309 101) ((ess (0))) "Ess Smart Underscore" tar ((:commit . "aa871c5b0448515db439ea9bed6a8574e82ddb47") (:keywords "ess" "underscore") (:authors ("Matthew L. Fidler")) (:maintainer "Matthew Fidler") (:url . "http://github.com/mlf176f2/ess-smart-underscore.el"))]) -(ess-smart-equals . [(20190204 449) ((emacs (25 1)) (ess (18 10))) "flexible, context-sensitive assignment key for R/S" single ((:commit . "746cf9e78c3b86cbbf78d69c335a8a4ff3da79d6") (:keywords "r" "s" "ess" "convenience") (:authors ("Christopher R. Genovese" . "genovese@cmu.edu")) (:maintainer "Christopher R. Genovese" . "genovese@cmu.edu") (:url . "https://github.com/genovese/ess-smart-equals"))]) -(ess-R-data-view . [(20130509 1158) ((ctable (20130313 1743)) (popup (20130324 1305)) (ess (20130225 1754))) "Data viewer for GNU R" single ((:commit . "d6e98d3ae1e2a2ea39a56eebcdb73e99d29562e9") (:keywords "convenience") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/ess-R-data-view.el"))]) -(ess . [(20190616 1211) ((emacs (25 1)) (julia-mode (0 3))) "Emacs Speaks Statistics" tar ((:commit . "222e9becd0258ce09acec166d31ba73c3d422773") (:authors ("David Smith" . "dsmith@stats.adelaide.edu.au") ("A.J. Rossini" . "blindglobe@gmail.com") ("Richard M. Heiberger" . "rmh@temple.edu") ("Kurt Hornik" . "Kurt.Hornik@R-project.org") ("Martin Maechler" . "maechler@stat.math.ethz.ch") ("Rodney A. Sparapani" . "rsparapa@mcw.edu") ("Stephen Eglen" . "stephen@gnu.org") ("Sebastian P. Luque" . "spluque@gmail.com") ("Henning Redestig" . "henning.red@googlemail.com") ("Vitalie Spinu" . "spinuvit@gmail.com") ("Lionel Henry" . "lionel.hry@gmail.com") ("J. Alexander Branham" . "alex.branham@gmail.com")) (:maintainer "ESS Core Team" . "ESS-core@r-project.org") (:url . "https://ess.r-project.org/"))]) -(esqlite-helm . [(20151116 850) ((esqlite (0 2 0)) (helm (20131207 845))) "Define helm source for sqlite database" single ((:commit . "bc4047e09b8f6c34802db86095cd465935670dce") (:keywords "data") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-esqlite"))]) -(esqlite . [(20151206 1206) ((pcsv (1 3 3))) "Manipulate sqlite file from Emacs" single ((:commit . "bc4047e09b8f6c34802db86095cd465935670dce") (:keywords "data") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-esqlite"))]) -(espy . [(20180929 1602) ((emacs (24))) "Emacs Simple Password Yielder" single ((:commit . "b64a99185c96c20d4d4caa3daf1f5510b039bd6a") (:keywords "convenience") (:authors ("Sebastian WÃ¥linder" . "s.walinder@gmail.com")) (:maintainer "Sebastian WÃ¥linder" . "s.walinder@gmail.com") (:url . "https://github.com/walseb/espy"))]) -(espuds . [(20160905 1300) ((s (1 7 0)) (dash (2 2 0)) (f (0 12 1))) "Ecukes step definitions" single ((:commit . "78fc53feaf77a98d63894cd410faee2a18107b00") (:keywords "test") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/ecukes/espuds"))]) -(espresso-theme . [(20181025 826) nil "Espresso Tutti Colori port for Emacs" single ((:commit . "d2fa034eb833bf37cc6842017070725e0da9b046") (:authors ("Martin Kühl <purl.org/net/mkhl>")) (:maintainer "Martin Kühl <purl.org/net/mkhl>") (:url . "https://github.com/dgutov/espresso-theme"))]) -(esonify . [(20190110 1621) ((deferred (0 3 1)) (cl-lib (0 5))) "Sonify your code" tar ((:commit . "bdc79d4ab2e3c449b5bef46e5cabc552beeed5c6") (:authors ("Oliver Flatt" . "oflatt@gmail.com")) (:maintainer "Oliver Flatt" . "oflatt@gmail.com") (:url . "https://github.com/oflatt/esonify"))]) -(eslintd-fix . [(20180429 1455) ((dash (2 12 0)) (emacs (24 3))) "use eslint_d to automatically fix js files" single ((:commit . "90e451af4daa190d6c0e29fb714b0501a7cce89a") (:authors ("Aaron Jensen" . "aaronjensen@gmail.com")) (:maintainer "Aaron Jensen" . "aaronjensen@gmail.com") (:url . "https://github.com/aaronjensen/eslintd-fix"))]) -(eslint-fix . [(20180514 700) nil "Fix JavaScript files using ESLint" single ((:commit . "f81f3b47a47460611fbdbdae1d23275ec78f2f8d") (:keywords "tools" "javascript" "eslint" "lint" "formatting" "style") (:authors ("Neri Marschik" . "marschik_neri@cyberagent.co.jp")) (:maintainer "Neri Marschik" . "marschik_neri@cyberagent.co.jp") (:url . "https://github.com/codesuki/eslint-fix"))]) -(eshell-z . [(20170117 438) ((cl-lib (0 5))) "cd to frequent directory in eshell" single ((:commit . "c9334cbc1552234df3437f35d98e32f4d18446b8") (:keywords "convenience") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/eshell-z"))]) -(eshell-up . [(20170425 1737) ((emacs (24))) "Quickly go to a specific parent directory in eshell" single ((:commit . "9c100bae5c3020e8d9307e4332d3b64e7dc28519") (:keywords "eshell") (:authors ("Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com")) (:maintainer "Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com") (:url . "https://github.com/peterwvj/eshell-up"))]) -(eshell-toggle . [(20190526 1452) ((emacs (25 1)) (dash (2 11 0))) "Show/hide eshell under active window." single ((:commit . "2eb91974047f5caf8df3bf3af5014be2cc95ddac") (:keywords "processes") (:authors ("Dmitry Cherkassov" . "dcherkassov@gmail.com")) (:maintainer "Dmitry Cherkassov" . "dcherkassov@gmail.com") (:url . "https://github.com/4da/eshell-toggle"))]) -(eshell-prompt-extras . [(20181229 1418) nil "Display extra information for your eshell prompt." single ((:commit . "5a328e1b9112c7f31ce2da7cde340f96626546b6") (:keywords "eshell" "prompt") (:authors ("zwild" . "judezhao@outlook.com")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/zwild/eshell-prompt-extras"))]) -(eshell-git-prompt . [(20170909 1452) ((emacs (24 1)) (cl-lib (0 5)) (dash (2 11 0))) "Some Eshell prompt for Git users" single ((:commit . "b6bb2d7bd4e393b4170b29891cfefb72ae020aab") (:keywords "eshell" "git") (:authors ("Chunyang Xu" . "mail@xuchunyang.me")) (:maintainer "Chunyang Xu" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/eshell-git-prompt"))]) -(eshell-fringe-status . [(20170117 2316) nil "Show last status in fringe" single ((:commit . "adc6997c68e39c0d52a2af1b2fd5cf2057783797") (:authors ("Tom Willemse" . "tom@ryuslash.org")) (:maintainer "Tom Willemse" . "tom@ryuslash.org") (:url . "http://projects.ryuslash.org/eshell-fringe-status/"))]) -(eshell-fixed-prompt . [(20190111 2235) ((emacs (25)) (s (1 11 0))) "Restrict eshell to a single fixed prompt" single ((:commit . "2c860029354bf1f69edc1f12e4a0d9aeb9054f5d") (:authors ("Tijs Mallaerts" . "tijs.mallaerts@gmail.com")) (:maintainer "Tijs Mallaerts" . "tijs.mallaerts@gmail.com"))]) -(eshell-did-you-mean . [(20150915 1952) ((emacs (24 1)) (cl-lib (0 5))) "command not found (\"did you mean…\" feature) in Eshell" single ((:commit . "7cb6ef8e2274d0a50a9e114d412307a6543533d5") (:keywords "eshell") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:url . "https://github.com/xuchunyang/eshell-did-you-mean"))]) -(eshell-bookmark . [(20170922 1514) ((emacs (24 3))) "Integrate bookmarks with eshell." single ((:commit . "99a491c77e27ecc4626bdd4ad453ac71aa2654d4") (:keywords "convenience" "files") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/eshell-bookmark"))]) -(eshell-autojump . [(20150927 724) nil "autojump command for Eshell" single ((:commit . "c6a8b81a16576df9875e721fbbfe6690d04e7e43") (:authors ("Alex Schroeder")) (:maintainer "Yen-Chin, Lee" . "coldnew.tw@gmail.com") (:url . "http://github.com/coldnew/eshell-autojump"))]) -(esh-help . [(20170830 411) ((dash (1 4 0))) "Add some help functions and support for Eshell" single ((:commit . "8a8a9d4d9852f8bd96da3b94e95ff57097ac8ec6") (:keywords "eshell" "extensions") (:authors ("Tomoya Tanjo" . "ttanjo@gmail.com")) (:maintainer "Tomoya Tanjo" . "ttanjo@gmail.com") (:url . "https://github.com/tom-tan/esh-help/"))]) -(esh-buf-stack . [(20140107 1018) nil "Add a buffer stack feature to Eshell" single ((:commit . "ce0ea5aadca3150eaa9d2e6ec20296add4e99176") (:keywords "eshell" "extensions") (:authors ("Tomoya Tanjo" . "ttanjo@gmail.com")) (:maintainer "Tomoya Tanjo" . "ttanjo@gmail.com"))]) -(esh-autosuggest . [(20190228 401) ((emacs (24 4)) (company (0 9 4))) "History autosuggestions for eshell" single ((:commit . "972094808d231a86dc6e43862191167b1997d840") (:keywords "completion" "company" "matching" "convenience" "abbrev") (:authors ("Diego A. Mundo" . "diegoamundo@gmail.com")) (:maintainer "Diego A. Mundo" . "diegoamundo@gmail.com") (:url . "http://github.com/dieggsy/esh-autosuggest"))]) -(esa . [(20180403 1525) ((cl-lib (0 5))) "Interface to esa.io" single ((:commit . "417e0ac55abe9b17e0b7165d0df26bc018aff42e") (:keywords "tools" "esa") (:authors ("Nab Inno" . "nab@blahfe.com")) (:maintainer "Nab Inno" . "nab@blahfe.com") (:url . "https://github.com/nabinno/esa.el"))]) -(es-windows . [(20140211 904) ((cl-lib (0 3)) (emacs (24))) "Window-management utilities" single ((:commit . "239e30408cb1adb4bc8bd63e2df34711fa910b4f") (:authors ("sabof")) (:maintainer "sabof") (:url . "https://github.com/sabof/es-windows"))]) -(es-mode . [(20190512 1216) ((dash (2 11 0)) (cl-lib (0 5)) (spark (1 0)) (s (1 11 0)) (request (0 3 0))) "A major mode for editing and executing Elasticsearch queries" tar ((:commit . "8de1452e1b9181a4f6778c0aaefc011aef58b25d") (:keywords "elasticsearch") (:authors ("Lee Hinman" . "lee@writequit.org")) (:maintainer "Lee Hinman" . "lee@writequit.org") (:url . "http://www.github.com/dakrone/es-mode"))]) -(es-lib . [(20141111 1830) ((cl-lib (0 3))) "A collection of emacs utilities" tar ((:commit . "753b27363e39c10edc9e4e452bdbbbe4d190df4a") (:authors ("sabof")) (:maintainer "sabof") (:url . "https://github.com/sabof/es-lib"))]) -(ert-runner . [(20180831 1145) ((s (1 6 1)) (dash (1 8 0)) (f (0 10 0)) (commander (0 2 0)) (ansi (0 1 0)) (shut-up (0 1 0))) "Opinionated Ert testing workflow" tar ((:commit . "90b8fdd5970ef76a4649be60003b37f82cdc1a65") (:keywords "test") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/ert-runner.el"))]) -(ert-modeline . [(20140115 1015) ((s (1 3 1)) (dash (1 2 0)) (emacs (24 1)) (projectile (0 9 1))) "displays ert test results in the modeline." single ((:commit . "e7be2b81191afb437b70368a819770f8f750e4af") (:keywords "tools" "tests" "convenience") (:authors ("Chris Barrett" . "chris.d.barrett@me.com")) (:maintainer "Chris Barrett" . "chris.d.barrett@me.com"))]) -(ert-junit . [(20181118 2256) ((ert (0)) (emacs (23 4))) "JUnit XML reports from ert results" single ((:commit . "a910ab288e108c61fa3cd035d93df91f2e19e367") (:keywords "tools" "test" "unittest" "ert") (:authors ("Ola Nilsson" . "ola.nilsson@gmail.com")) (:maintainer "Ola Nilsson" . "ola.nilsson@gmail.com") (:url . "http://bitbucket.org/olanilsson/ert-junit"))]) -(ert-expectations . [(20121009 734) nil "The simplest unit test framework in the world" single ((:commit . "aed70e002c4305b66aed7f6d0d48e9addd2dc1e6") (:keywords "test" "unittest" "ert" "expectations") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/emacs/download/ert-expectations.el"))]) -(ert-async . [(20151011 1359) nil "Async support for ERT" single ((:commit . "f64a7ed5b0d2900c9a3d8cc33294bf8a79bc8526") (:keywords "test") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/ert-async.el"))]) -(eros . [(20180415 618) ((emacs (24 4))) "Evaluation Result OverlayS for Emacs Lisp" single ((:commit . "dd8910279226259e100dab798b073a52f9b4233a") (:keywords "convenience" "lisp") (:authors ("Tianxiang Xiong" . "tianxiang.xiong@gmail.com")) (:maintainer "Tianxiang Xiong" . "tianxiang.xiong@gmail.com") (:url . "https://github.com/xiongtx/eros"))]) -(erlstack-mode . [(20190204 1609) ((emacs (25 1)) (dash (2 12 0))) "Minor mode for analysing Erlang stacktraces" single ((:commit . "0ab44afa899ee7e52e712e0a1644fb9f4d40d2a6") (:keywords "tools" "erlang") (:authors ("k32")) (:maintainer "k32") (:url . "https://github.com/k32/erlstack-mode"))]) -(erlang . [(20190404 928) ((emacs (24 1))) "Erlang major mode" tar ((:commit . "df60ce8cd980664acaea19132b3116011aa3b706"))]) -(ergoemacs-status . [(20160318 538) ((powerline (2 3)) (mode-icons (0 1 0))) "Adaptive Status Bar / Mode Line" single ((:commit . "d952cc2361adf6eb4d6af60950ad4ab699c81320") (:authors ("Matthew Fidler")) (:maintainer "Matthew Fidler"))]) -(ergoemacs-mode . [(20190527 348) ((emacs (24 1)) (undo-tree (0 6 5)) (cl-lib (0 5))) "Emacs mode based on common modern interface and ergonomics." tar ((:commit . "7d3656541a00cc04ba4cefa31c0d127adb5a260a") (:keywords "convenience") (:authors ("Xah Lee" . "xah@xahlee.org") ("David Capello" . "davidcapello@gmail.com") ("Matthew L. Fidler" . "matthew.fidler@gmail.com")) (:maintainer "Matthew L. Fidler" . "matthew.fidler@gmail.com") (:url . "https://github.com/ergoemacs/ergoemacs-mode"))]) -(erefactor . [(20160121 959) ((cl-lib (0 3))) "Emacs-Lisp refactoring utilities" single ((:commit . "bf68085e5635eb94fd85709f8e1355c1f5534745") (:keywords "extensions" "tools" "maint") (:authors ("Masahiro Hayashi" . "mhayashi1120@gmail.com")) (:maintainer "Masahiro Hayashi" . "mhayashi1120@gmail.com") (:url . "https://github.com/mhayashi1120/Emacs-erefactor"))]) -(eredis . [(20181119 131) ((dash (0))) "eredis, a Redis client in emacs lisp" single ((:commit . "cfbfc25832f6fbc507bdd56b02e3a0b851a3c368") (:keywords "redis" "api" "tools" "org") (:authors ("Justin Heyes-Jones" . "justinhj@gmail.com")) (:maintainer "Justin Heyes-Jones" . "justinhj@gmail.com") (:url . "http://github.com/justinhj/eredis/"))]) -(ereader . [(20170810 501) ((emacs (24 4)) (dash (2 12 1)) (s (1 10 0)) (xml+ (0 0 0))) "Major mode for reading ebooks with org-mode integration" tar ((:commit . "f3bbd3f13195f8fba3e3c880aab0e4c60430dcf3") (:keywords "epub" "ebook") (:authors ("Ben Dean" . "bendean837@gmail.com")) (:maintainer "Ben Dean" . "bendean837@gmail.com") (:url . "https://github.com/bddean/emacs-ereader"))]) -(ercn . [(20150523 1503) nil "Flexible ERC notifications" single ((:commit . "79a4df5609046ae2e2e3375998287be6dda80615") (:authors ("David Leatherman" . "leathekd@gmail.com")) (:maintainer "David Leatherman" . "leathekd@gmail.com") (:url . "http://www.github.com/leathekd/ercn"))]) -(erc-yt . [(20150426 1249) ((dash (2 10 0))) "An erc module to display youtube links nicely" single ((:commit . "43e7d49325b17a3217a6ffb4a9daf75c5ff4e6f8") (:keywords "multimedia") (:authors ("William Stevenson" . "yhvh2000@gmail.com")) (:maintainer "William Stevenson" . "yhvh2000@gmail.com"))]) -(erc-youtube . [(20150603 2136) nil "Show info about a YouTube URL in an ERC buffer." single ((:commit . "97054ba8475b442e2aa81e5a291f668b7f28697f") (:keywords "multimedia") (:authors ("Raimon Grau Cuscó" . "raimonster@gmail.com")) (:maintainer "Raimon Grau Cuscó" . "raimonster@gmail.com"))]) -(erc-view-log . [(20140227 2039) nil "Major mode for viewing ERC logs" single ((:commit . "c5a25f0cbca84ed2e4f72068c02b66bd0ea3b266") (:keywords "erc" "viewer" "logs" "colors") (:authors ("Antoine Levitt") ("Thomas Riccardi" . "riccardi.thomas@gmail.com")) (:maintainer "Antoine Levitt") (:url . "http://github.com/Niluge-KiWi/erc-view-log/raw/master/erc-view-log.el"))]) -(erc-twitch . [(20170427 606) ((json (1 3)) (erc (5 0))) "Support for Twitch emotes for ERC." single ((:commit . "53c6af0cb72e56d897d30a40e7e5066668d6b5ec") (:keywords "twitch" "erc" "emotes") (:authors ("Vibhav Pant" . "vibhavp@gmail.com")) (:maintainer "Vibhav Pant" . "vibhavp@gmail.com") (:url . "https://github.com/vibhavp/erc-twitch"))]) -(erc-tweet . [(20150920 1258) nil "shows text of a tweet when an url is posted in erc buffers" single ((:commit . "91fed61e139fa788d66a7358f0d50acc896414b8") (:keywords "extensions") (:authors ("Raimon Grau" . "raimonster@gmail.com")) (:maintainer "Raimon Grau" . "raimonster@gmail.com"))]) -(erc-track-score . [(20130328 1215) nil "Add score support to tracked channel buffers" single ((:commit . "5b27531ea6b1a4c4b703b270dfa9128cb5bfdaa3") (:authors ("Julien Danjou" . "julien@danjou.info")) (:maintainer "Julien Danjou" . "julien@danjou.info") (:url . "http://julien.danjou.info/erc-track-score.html"))]) -(erc-terminal-notifier . [(20140115 1024) nil "OSX notifications via the terminal-notifier gem for Emacs ERC." single ((:commit . "a3dacb935845e4a20031212bbd82b2170f68d2a8") (:keywords "erc" "terminal-notifier" "nick") (:authors ("Julien Blanchard" . "julien@sideburns.eu")) (:maintainer "Julien Blanchard" . "julien@sideburns.eu") (:url . "http://github.com/julienXX/"))]) -(erc-status-sidebar . [(20171223 2124) ((emacs (24 5)) (seq (2 3))) "a hexchat-like activity overview for ERC channels" single ((:commit . "ea4189a1dbfe60117359c36e681ad7c389e2968c") (:authors ("Andrew Barbarello")) (:maintainer "Andrew Barbarello") (:url . "https://github.com/drewbarbs/erc-status-sidebar"))]) -(erc-social-graph . [(20150508 1204) nil "A social network graph module for ERC." single ((:commit . "e6ef3416a1c5064054bf054d9f0c1c7bf54a9cd0") (:keywords "erc" "graph") (:authors ("Vibhav Pant" . "vibhavp@gmail.com")) (:maintainer "Vibhav Pant" . "vibhavp@gmail.com") (:url . "https://github.com/vibhavp/erc-social-graph"))]) -(erc-scrolltoplace . [(20180608 606) ((emacs (24 0)) (switch-buffer-functions (0 0 1))) "An Erc module to scrolltobottom better with keep-place" single ((:commit . "feb0fbf1fd4bdf220ae2d31ea7c066d8e62089f9") (:keywords "erc" "module" "comm" "scrolltobottom" "keep-place") (:authors ("Jay Kamat" . "jaygkamat@gmail.com")) (:maintainer "Jay Kamat" . "jaygkamat@gmail.com") (:url . "http://gitlab.com/jgkamat/erc-scrolltoplace"))]) -(erc-image . [(20180522 1424) nil "Show received image urls in the ERC buffer" single ((:commit . "82fb3871f02e24b1e880770b9a3d187aab43d0f0") (:keywords "multimedia") (:authors ("Jon de Andrés FrÃas" . "jondeandres@gmail.com") ("Raimon Grau Cuscó" . "raimonster@gmail.com")) (:maintainer "Jon de Andrés FrÃas" . "jondeandres@gmail.com"))]) -(erc-hl-nicks . [(20180415 1946) nil "ERC nick highlighter that ignores uniquifying chars when colorizing" single ((:commit . "756c4438a8245ccd3e389bf6c9850ee8453783ec") (:authors ("David Leatherman" . "leathekd@gmail.com")) (:maintainer "David Leatherman" . "leathekd@gmail.com") (:url . "http://www.github.com/leathekd/erc-hl-nicks"))]) -(erc-hipchatify . [(20170314 1637) ((emacs (24 4)) (s (1 10 0)) (alert (1 2)) (request (0 2 0))) "Provide emoticons and html rendering for HipChat" single ((:commit . "a532275136920aa1a66a1817cfc5880a01974dab") (:keywords "erc" "bitlbee" "hipchat" "multimedia") (:authors ("Sean Farley" . "sean@farley.io")) (:maintainer "Sean Farley" . "sean@farley.io") (:url . "https://bitbucket.org/seanfarley/erc-hipchatify"))]) -(erc-crypt . [(20190318 2350) ((cl-lib (0 5))) "Symmetric Encryption for ERC" single ((:commit . "043b109409ee5b17bf06956fa46e1beb66d06ca4") (:keywords "comm") (:authors ("xristos" . "xristos@sdf.lonestar.org")) (:maintainer "xristos" . "xristos@sdf.lonestar.org") (:url . "https://github.com/atomontage/erc-crypt"))]) -(erc-colorize . [(20170107 1339) nil "Per user colorization of whole message" single ((:commit . "d026a016dcb9d63d9ac66d30627a92a8f1681bbd") (:keywords "erc" "convenience") (:authors ("Sylvain Rousseau <thisirs at gmail dot com>")) (:maintainer "Sylvain Rousseau <thisirs at gmail dot com>") (:url . "https://github.com/thisirs/erc-colorize.git"))]) -(equake . [(20190528 431) ((emacs (25)) (dash (2 14 1)) (tco (20190309 55))) "drop-drop console for eshell & terminal emulation" single ((:commit . "9b69d34fc7e79aea8a09d7f82ee3234e5dacd6ae") (:keywords "convenience" "frames" "terminals" "tools" "window-system") (:authors ("Benjamin Slade" . "slade@jnanam.net")) (:maintainer "Benjamin Slade" . "slade@jnanam.net") (:url . "https://gitlab.com/emacsomancer/equake"))]) -(eproject . [(20180312 1642) ((helm (1 6 4))) "assign files to projects, programatically" tar ((:commit . "068218d2cf2138cb2e8fc29b57e773a0097a7e8b") (:keywords "programming" "projects") (:authors ("Jonathan Rockway" . "jon@jrock.us")) (:maintainer "Jonathan Rockway" . "jon@jrock.us"))]) -(eprime-mode . [(20140513 1816) nil "An E-prime checking mode for Emacs" single ((:commit . "17a481af26496be91c07139a9bfc05cfe722506f") (:keywords "e-prime" "english" "grammar") (:authors ("Andrew Hynes" . "andrewhynes@openmailbox.org")) (:maintainer "Andrew Hynes" . "andrewhynes@openmailbox.org") (:url . "https://github.com/AndrewHynes/eprime-mode"))]) -(epresent . [(20160411 201) ((org (8)) (cl-lib (0 5))) "Simple presentation mode for Emacs Org-mode" single ((:commit . "6c8abedcf46ff08091fa2bba52eb905c6290057d") (:keywords "gui") (:url . "https://github.com/dakrone/epresent"))]) -(epm . [(20190509 443) ((emacs (24 3)) (epl (0 8))) "Emacs Package Manager" tar ((:commit . "6375ddbf93c5f25647f6ebb25b54045b3c93a5be") (:authors ("Chunyang Xu" . "xuchunyang.me@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang.me@gmail.com") (:url . "https://github.com/xuchunyang/epm"))]) -(epl . [(20180205 2049) ((cl-lib (0 3))) "Emacs Package Library" single ((:commit . "78ab7a85c08222cd15582a298a364774e3282ce6") (:keywords "convenience") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/cask/epl"))]) -(epkg . [(20190616 1237) ((closql (1 0 0)) (dash (2 14 1)) (emacs (25 1))) "browse the Emacsmirror package database" tar ((:commit . "d95151aab60223da670f125a9ad4e06ed6cbcfe4") (:keywords "tools") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/emacscollective/epkg"))]) -(epic . [(20170210 23) ((htmlize (1 47))) "Evernote Picker for Cocoa Emacs" single ((:commit . "a41826c330eb0ea061d58a08cc861b0c4ac8ec4e") (:keywords "evernote" "applescript") (:authors ("Yoshinari Nomura" . "nom@quickhack.net")) (:maintainer "Yoshinari Nomura" . "nom@quickhack.net") (:url . "https://github.com/yoshinari-nomura/epic"))]) -(epc . [(20140610 534) ((concurrent (0 3 1)) (ctable (0 1 2))) "A RPC stack for the Emacs Lisp" tar ((:commit . "e1bfa5ca163273859336e3cc89b4b6460f7f8cda") (:keywords "lisp" "rpc") (:authors ("SAKURAI Masashi <m.sakurai at kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai at kiwanami.net>") (:url . "https://github.com/kiwanami/emacs-epc"))]) -(eopengrok . [(20160904 659) ((s (1 9 0)) (dash (2 10 0)) (magit (2 1 0)) (cl-lib (0 5))) "opengrok interface for emacs" single ((:commit . "78f734328aaf19c52720415c037708ece1944c4c") (:keywords "tools") (:authors ("Youngjoo Lee" . "youngker@gmail.com")) (:maintainer "Youngjoo Lee" . "youngker@gmail.com"))]) -(envdir . [(20160221 1923) ((emacs (24)) (dash (2 10 0)) (f (0 17 2))) "Modify environment according to files in a specified directory" single ((:commit . "f29346c55ccf11d8c75628edc6d430ed63c36917") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/envdir-mode"))]) -(ensime . [(20180615 1330) ((scala-mode (0 23)) (sbt-mode (0 2)) (yasnippet (0 10 0)) (company (0 9 0)) (dash (2 12 1)) (s (1 11 0)) (popup (0 5 3))) "ENhanced Scala Interaction Mode for Emacs" tar ((:commit . "34eb11dac3ec9d1c554c2e55bf056ece6983add7") (:keywords "languages") (:url . "https://github.com/ensime/ensime-emacs"))]) -(enotify . [(20130407 1348) nil "A networked notification system for emacs" tar ((:commit . "7fd2f48ef4ff32c8f013c634ea2dd6b1d1409f80"))]) -(eno . [(20160110 1034) ((dash (2 12 1)) (edit-at-point (1 0))) "Goto/copy/cut any word/symbol/line in view, similar to ace-jump/easymotion" single ((:commit . "40075bb1ed9e62f42c5799f3d3721734742ed417") (:authors (nil . "<e.enoson@gmail.com>")) (:maintainer nil . "<e.enoson@gmail.com>") (:url . "http://github.com/enoson/eno.el"))]) -(enlive . [(20170725 1417) nil "query html document with css selectors" single ((:commit . "604a8ca272b6889f114e2b5a13adb5b1dc4bae86") (:keywords "css" "selector" "query") (:authors ("ZHOU Feng" . "zf.pascal@gmail.com")) (:maintainer "ZHOU Feng" . "zf.pascal@gmail.com") (:url . "http://github.com/zweifisch/enlive"))]) -(enh-ruby-mode . [(20190513 254) ((emacs (24 3))) "Major mode for editing Ruby files" tar ((:commit . "f334c42986e93c60fba144d732becfcbdb13bb7d") (:keywords "languages" "elisp" "ruby") (:authors ("Geoff Jacobsen")) (:maintainer "Ryan Davis") (:url . "http://github.com/zenspider/Enhanced-Ruby-Mode"))]) -(engine-mode . [(20181222 2027) ((cl-lib (0 5))) "Define and query search engines from within Emacs." single ((:commit . "117a9c0cbc1ff8ade7f17cd40d1d2f5eb24f51a3") (:authors ("Harry R. Schwartz" . "hello@harryrschwartz.com")) (:maintainer "Harry R. Schwartz" . "hello@harryrschwartz.com") (:url . "https://github.com/hrs/engine-mode"))]) -(encourage-mode . [(20151128 905) ((emacs (24 4))) "Encourages you in your work. :D" single ((:commit . "99edacf2d94d168d3da0609860dc7253db7c9815") (:keywords "fun") (:authors ("Patrick Mosby" . "patrick@schreiblogade.de")) (:maintainer "Patrick Mosby" . "patrick@schreiblogade.de") (:url . "https://github.com/halbtuerke/encourage-mode.el"))]) -(enclose . [(20121008 1614) nil "Enclose cursor within punctuation pairs." tar ((:commit . "2747653e84af39017f503064bc66ed1812a77259"))]) -(emr . [(20190414 2025) ((s (1 3 1)) (dash (1 2 0)) (cl-lib (0 2)) (popup (0 5 0)) (emacs (24 1)) (list-utils (0 3 0)) (paredit (24 0 0)) (projectile (0 9 1)) (clang-format (0)) (iedit (0 97))) "Emacs refactoring system." tar ((:commit . "73a7b2ea2db4ee6327e788f7462da9e107e5082f") (:keywords "tools" "convenience" "refactoring") (:authors ("Chris Barrett" . "chris.d.barrett@me.com")) (:maintainer "Chris Barrett" . "chris.d.barrett@me.com"))]) -(empos . [(20151011 1916) nil "Locate bibtex citations from within emacs" single ((:commit . "7b99ad30e56937adb7e6349777e5a2045597d564") (:keywords "citations" "reference" "bibtex" "reftex") (:authors ("Dimitris Alikaniotis <da352 [at] cam.ac.uk>")) (:maintainer "Dimitris Alikaniotis <da352 [at] cam.ac.uk>") (:url . "http://github.com/dimalik/empos/"))]) -(emojify-logos . [(20180814 917) ((emojify (0 4))) "Add logos to emojify" tar ((:commit . "a3e78bcbdf863092d4c9b026ac08bf7d1c7c0e8b") (:authors ("mxgoldstein" . "m_goldstein@gmx.net")) (:maintainer "mxgoldstein" . "m_goldstein@gmx.net") (:url . "https://github.com/mxgoldstein/emojify-logos"))]) -(emojify . [(20190613 607) ((seq (1 11)) (ht (2 0)) (emacs (24 3))) "Display emojis in Emacs" tar ((:commit . "a16199dcf9b4688839eba00f1e356d9beac46cfe") (:keywords "multimedia" "convenience") (:authors ("Iqbal Ansari" . "iqbalansari02@yahoo.com")) (:maintainer "Iqbal Ansari" . "iqbalansari02@yahoo.com") (:url . "https://github.com/iqbalansari/emacs-emojify"))]) -(emoji-recall . [(20160723 2208) ((emacs (24))) "How many emoji can you recall from memory?" tar ((:commit . "d9122f8fb1467309260109a1985cd14f18fdf631") (:keywords "game") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/emoji-recall.el"))]) -(emoji-fontset . [(20160726 1924) nil "Set font face for Emoji." single ((:commit . "10be897fa5165fd40fd35a89e38c759e008fa775") (:keywords "emoji" "font" "config") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me"))]) -(emoji-display . [(20140117 1013) nil "emoji displaying module" single ((:commit . "bb4217f6400151a9cfa6d4524b8427f01feb5193") (:keywords "emoji") (:authors ("Kazuhiro Ito" . "kzhr@d1.dion.ne.jp")) (:maintainer "Kazuhiro Ito" . "kzhr@d1.dion.ne.jp") (:url . "https://github.com/ikazuhiro/emoji-display"))]) -(emoji-cheat-sheet-plus . [(20150617 1331) ((emacs (24)) (helm (1 6 4))) "emoji-cheat-sheet for emacs" tar ((:commit . "96a003127d646a2683d81ca906a17eace0a6413e") (:keywords "emacs" "emoji") (:authors ("Sylvain Benner (based on the work of Shingo Fukuyama)")) (:maintainer "Sylvain Benner (based on the work of Shingo Fukuyama)") (:url . "https://github.com/syl20bnr/emacs-emoji-cheat-sheet-plus"))]) -(emms-state . [(20160504 805) ((emms (0))) "Display track description and playing time in the mode line" single ((:commit . "77930300222333b71eafd495cc1fee3a3585eb23") (:keywords "emms") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/emms-state.el"))]) -(emms-soundcloud . [(20131221 1145) ((emms (20131016)) (json (1 2))) "EMMS source for Soundcloud audio sharing platform" single ((:commit . "87e5cbf9609d1f26c24dc834fdeb78b33d453c2b") (:keywords "emms" "soundcloud") (:authors ("Ozan Sener" . "ozan@ozansener.com")) (:maintainer "Ozan Sener" . "ozan@ozansener.com") (:url . "http://github.com/osener/emms-soundcloud"))]) -(emms-player-simple-mpv . [(20180316 1549) ((emacs (24)) (cl-lib (0 5)) (emms (4 0))) "An extension of emms-player-simple.el for mpv JSON IPC" tar ((:commit . "101d120ccdee1c2c213fd2f0423c858b21649c00") (:keywords "emms" "mpv") (:authors ("momomo5717")) (:maintainer "momomo5717") (:url . "https://github.com/momomo5717/emms-player-simple-mpv"))]) -(emms-player-mpv-jp-radios . [(20180325 1117) ((emacs (24)) (cl-lib (0 5)) (emms (4 0)) (emms-player-simple-mpv (0 1 7))) "EMMS players and stream lists of Japan radio stations" tar ((:commit . "f6b37f5878c741124d5fca43c5b80af873541edd") (:keywords "emms" "mpv" "radio") (:url . "https://github.com/momomo5717/emms-player-mpv-jp-radios"))]) -(emms-mode-line-cycle . [(20160221 1120) ((emacs (24)) (emms (4 0))) "Display the emms mode line as a ticker" single ((:commit . "2c2f395e484a1d345050ddd61ff5fab71a92a6bc") (:keywords "emms" "mode-line") (:authors ("momomo5717")) (:maintainer "momomo5717") (:url . "https://github.com/momomo5717/emms-mode-line-cycle"))]) -(emms-mark-ext . [(20130529 327) ((emms (3 0))) "Extra functions for emms-mark-mode and emms-tag-edit-mode" single ((:commit . "ec68129e3e9e469e5bf160c6a1b7030e322f3541") (:keywords "convenience" "multimedia") (:authors ("Joe Bloggs" . "vapniks@yahoo.com")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "https://github.com/vapniks/emms-mark-ext"))]) -(emms-info-mediainfo . [(20131223 1300) ((emms (0))) "Info-method for EMMS using medianfo" single ((:commit . "bce16eae9eacd38719fea62a9755225a888da59d") (:keywords "multimedia" "processes") (:authors ("Fabián Ezequiel Gallina" . "fgallina@gnu.org")) (:maintainer "Fabián Ezequiel Gallina" . "fgallina@gnu.org"))]) -(emms-bilibili . [(20180103 418) ((emacs (25)) (cl-lib (0 5))) "Play Bilibili in EMMS." single ((:commit . "294bca3dfc42fe3a55fb326ab39bc0fcfc8c5090") (:keywords "emms" "bilibili") (:url . "https://github.com/stardiviner/emms-bilibili"))]) -(emms . [(20190529 1711) ((cl-lib (0 5))) "The Emacs Multimedia System" tar ((:commit . "f7e27094f09432b40ced77c7163cd29f338b7db6") (:keywords "emms" "mp3" "mpeg" "multimedia") (:authors ("Jorgen Schäfer" . "forcer@forcix.cx")) (:maintainer "Jorgen Schäfer" . "forcer@forcix.cx") (:url . "http://www.gnu.org/software/emms/"))]) -(emmet-mode . [(20180613 341) nil "Unofficial Emmet's support for emacs" single ((:commit . "1acb821e0142136344ccf40c1e5fb664d7db2e70") (:keywords "convenience") (:authors ("Shin Aoyama" . "smihica@gmail.com")) (:maintainer "Shin Aoyama" . "smihica@gmail.com") (:url . "https://github.com/smihica/emmet-mode"))]) -(emlib . [(20161126 1523) ((dash (2 13 0)) (cl-lib (0 5))) "A Machine Learning library for Emacs" tar ((:commit . "dea2af00f551ea580c641d86dd69219f7d4f3685") (:keywords "data" "ai" "neural networks" "ml") (:authors ("Narendra Joshi" . "narendraj9@gmail.com")) (:maintainer "Narendra Joshi" . "narendraj9@gmail.com") (:url . "https://github.com/narendraj9/emlib.git"))]) -(emidje . [(20190209 1726) ((emacs (25)) (cider (0 17 0)) (seq (2 16)) (magit-popup (2 4 0))) "Test runner and report viewer for Midje" single ((:commit . "7e92f053964d925c97dc8cca8d4d70a3030021db") (:keywords "tools") (:authors ("Alan Ghelardi" . "alan.ghelardi@nubank.com.br")) (:maintainer "Alan Ghelardi" . "alan.ghelardi@nubank.com.br") (:url . "https://github.com/nubank/emidje"))]) -(embrace . [(20171031 1833) ((cl-lib (0 5)) (expand-region (0 10 0))) "Add/Change/Delete pairs based on `expand-region'" single ((:commit . "dd5da196e5bcc5e6d87e1937eca0c21da4334ef2") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com"))]) -(ember-yasnippets . [(20160526 1658) ((yasnippet (0 8 0))) "Snippets for Ember.js development" tar ((:commit . "3b5bd01569646237bf1b540d097e12f9118b67f4") (:keywords "tools" "abbrev" "languages") (:authors ("Ron White" . "ronco@costite.com")) (:maintainer "Ron White" . "ronco@costite.com"))]) -(ember-mode . [(20190403 1652) ((cl-lib (0 5))) "Ember navigation mode for emacs" single ((:commit . "3510afc5023d760a66aef260ba601c15a31dc878") (:keywords "ember" "ember.js" "emberjs") (:authors ("Aad Versteden" . "madnificent@gmail.com")) (:maintainer "Aad Versteden" . "madnificent@gmail.com"))]) -(emaps . [(20180712 1916) nil "utilities for working with keymaps." single ((:commit . "823b8f72e6459c9f1a5dd62451ee4005ef71d955") (:keywords "convenience" "keyboard" "keymap" "utility") (:authors ("Ben Moon" . "software@guiltydolphin.com")) (:maintainer "Ben Moon" . "software@guiltydolphin.com") (:url . "https://github.com/GuiltyDolphin/emaps"))]) -(emamux-ruby-test . [(20130812 1639) ((emamux (0 1)) (projectile (0 9 1))) "Ruby test with emamux" single ((:commit . "23b73c650573b340351a919da3da416acfc2ac84") (:url . "https://github.com/syohex/emamux-ruby-test"))]) -(emamux . [(20170227 337) ((emacs (24 3))) "Interact with tmux" single ((:commit . "39f57786b2cdd3844888df42d71c7bd251f07158") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-emamux"))]) -(emacsshot . [(20190527 1043) nil "Snapshot a frame or window from within Emacs" tar ((:commit . "64b7152e84a72b2ebcfd436a974135cf6978ef47") (:keywords "convenience") (:authors ("Marco Wahl" . "marcowahlsoft@gmail.com")) (:maintainer "Marco Wahl") (:url . "https://github.com/marcowahl/emacsshot"))]) -(emacsql-sqlite . [(20190426 1929) ((emacs (25 1)) (emacsql (2 0 0))) "EmacSQL back-end for SQLite" tar ((:commit . "d5c37d905d133a3887bc582e4a0126671816beaa") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/emacsql"))]) -(emacsql-psql . [(20171219 227) ((emacs (25 1)) (emacsql (2 0 0))) "EmacSQL back-end for PostgreSQL via psql" tar ((:commit . "d5c37d905d133a3887bc582e4a0126671816beaa") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/emacsql"))]) -(emacsql-mysql . [(20171219 227) ((emacs (25 1)) (emacsql (2 0 0))) "EmacSQL back-end for MySQL" single ((:commit . "d5c37d905d133a3887bc582e4a0126671816beaa") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/emacsql"))]) -(emacsql . [(20190310 1322) ((emacs (25 1))) "high-level SQL database front-end" tar ((:commit . "d5c37d905d133a3887bc582e4a0126671816beaa") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/emacsql"))]) -(emacsist-view . [(20160426 1223) nil "Mode for viewing emacsist.com" single ((:commit . "f67761259ed779a9bc95c9a4e0474522990c5c6b") (:keywords "convenience" "usability") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/emacsist-view"))]) -(emacsc . [(20161028 1706) nil "helper for emacsc(1)" tar ((:commit . "421e0c567358769e32f670ae8e949d99abae0c28") (:keywords "tools") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/emacsc"))]) -(emacsagist . [(20140331 1830) ((cl-lib (0 5))) "Search Packagist.org packages without leaving Emacs" single ((:commit . "aba342ba59c254a88017f25e9fb7a8cd6f2fda83") (:keywords "tools") (:authors ("Brian Zwahr" . "echosa@icloud.com")) (:maintainer "Brian Zwahr" . "echosa@icloud.com") (:url . "http://github.com/echosa/emacsagist"))]) -(emacs-setup . [(20120727 1426) nil "Package for maintaining your emacs configuration. Clean up your .emacs!" tar ((:commit . "c783ec13e3b39093fffb6f6d64dccdce8ce4d375"))]) -(elx . [(20181111 1007) ((emacs (25 1))) "extract information from Emacs Lisp libraries" single ((:commit . "0fb87d0214d327d5543e70f0b2e952ca6cef9c2c") (:keywords "docs" "libraries" "packages") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/emacscollective/elx"))]) -(elwm . [(20150817 1007) ((dash (1 1 0))) "Minimalistic window manager for emacs" single ((:commit . "c33b183f006ad476c3a44dab316f580f8b369930") (:keywords "docs") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/elwm"))]) -(elvish-mode . [(20180809 1612) ((emacs (24 3))) "Defines a major mode for Elvish" single ((:commit . "c3a7e31564256b9755b1ab9fb40d32ad78cd1ad2") (:authors ("Adam Schwalm" . "adamschwalm@gmail.com")) (:maintainer "Adam Schwalm" . "adamschwalm@gmail.com") (:url . "https://github.com/ALSchwalm/elvish-mode"))]) -(elscreen-tab . [(20190203 1619) ((emacs (26)) (elscreen (20180321)) (dash (2 14 1))) "minor mode to display tabs of elscreen in a dedicated buffer" single ((:commit . "da79fb0b9ead2402662ff8e163039635aaae2413") (:keywords "tools" "extensions") (:authors ("Aki Syunsuke" . "sunny.day.dev@gmail.com")) (:maintainer "Aki Syunsuke" . "sunny.day.dev@gmail.com") (:url . "https://github.com/aki-s/elscreen-tab"))]) -(elscreen-separate-buffer-list . [(20161107 358) ((emacs (24 4)) (elscreen (1 4 6))) "Separate buffer list manager for elscreen" single ((:commit . "7652d827aa1b8c1b04303c5b4b0bda5e8f85565e") (:keywords "elscreen") (:authors ("wamei" . "wamei.cho@gmail.com")) (:maintainer "wamei" . "wamei.cho@gmail.com"))]) -(elscreen-multi-term . [(20151022 233) ((emacs (24 4)) (elscreen (1 4 6)) (multi-term (1 3))) "Multi term for elscreen" single ((:commit . "7b6048a0dd80f69460a62bbc6f1af8856141a5ea") (:keywords "elscreen" "multi term") (:authors ("wamei" . "wamei.cho@gmail.com")) (:maintainer "wamei" . "wamei.cho@gmail.com"))]) -(elscreen-mew . [(20160504 1835) ((elscreen (20120413 807))) "ElScreen Add-On for Mew" single ((:commit . "c90a23441d836da14a1cb12788432308ba58e2b6") (:authors ("Takashi Masuda" . "masutaka.net@gmail.com")) (:maintainer "Takashi Masuda" . "masutaka.net@gmail.com") (:url . "https://github.com/masutaka/elscreen-mew"))]) -(elscreen-fr . [(20160920 953) ((elscreen (0)) (seq (1 11))) "Use frame title as screen tab" single ((:commit . "b9c11f80d277086d5d5bf88623e15fc7adbbbe3c") (:authors ("Francesc Rocher" . "francesc.rocher@gmail.com")) (:maintainer "Francesc Rocher" . "francesc.rocher@gmail.com") (:url . "http://github.com/rocher/elscreen-fr"))]) -(elscreen-buffer-group . [(20181027 528) ((emacs (24 4)) (elscreen (0)) (cl-lib (0 5))) "elscreen buffer group" single ((:commit . "cd671c4a86ff6e481d24d060b4069e518940f9c9") (:keywords "buffer") (:authors ("Jeff Gran" . "jeff@jeffgran.com") ("Author: Ryan C. Thompson")) (:maintainer "Jeff Gran" . "jeff@jeffgran.com") (:url . "https://github.com/jeffgran/elscreen-buffer-group"))]) -(elscreen . [(20181009 451) ((emacs (24))) "Emacs window session manager" tar ((:commit . "cc58337faf5ba1eae7e87f75f6ff3758675688f2") (:keywords "window" "convenience") (:authors ("Naoto Morishima" . "naoto@morishima.net")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/elscreen"))]) -(elsa . [(20190331 1558) ((trinary (1 0 0)) (emacs (25 1)) (f (0)) (dash (2 14)) (cl-lib (0 3))) "Emacs Lisp Static Analyser" tar ((:commit . "eb88fb357e14777cf4ae71054791d1482aaeef29"))]) -(elquery . [(20180917 2217) ((emacs (25 1)) (s (1 11 0)) (dash (2 13 0))) "The HTML library for elisp." single ((:commit . "eac429d8550fbf1582c57d5e16fed9f320d6eb30") (:keywords "html" "hypermedia" "tools" "webscale") (:authors ("Adam Niederer")) (:maintainer "Adam Niederer") (:url . "https://github.com/AdamNiederer/elquery"))]) -(elpygen . [(20171225 1736) ((emacs (25)) (yasnippet (0 8 0))) "Generate a Python function/method using a symbol under point" single ((:commit . "21929c997a05968f9eefe52b85a76ceaab3b0d81") (:keywords "python" "languages" "tools") (:authors ("Vladimir Kazanov" . "vkazanov@inbox.ru")) (:maintainer "Vladimir Kazanov" . "vkazanov@inbox.ru") (:url . "https://github.com/vkazanov/elpygen"))]) -(elpy . [(20190523 2246) ((company (0 9 2)) (emacs (24 4)) (find-file-in-project (3 3)) (highlight-indentation (0 5 0)) (pyvenv (1 3)) (yasnippet (0 8 0)) (s (1 11 0))) "Emacs Python Development Environment" tar ((:commit . "2f2768e6ed52df87edad25f9238bfc1a10fa9f79"))]) -(elpher . [(20190616 907) ((emacs (25))) "A friendly gopher client." single ((:commit . "2ba8481b69e62b7d90ab969a70519ebfadb7be3e") (:keywords "comm" "gopher") (:authors ("Tim Vaughan" . "tgvaughan@gmail.com")) (:maintainer "Tim Vaughan" . "tgvaughan@gmail.com") (:url . "https://github.com/tgvaughan/elpher"))]) -(elpa-mirror . [(20190423 2118) ((emacs (24 4))) "Create local package repository from installed packages" single ((:commit . "50b92aae0b4cafc38de9767edad726c3c3915ffc") (:keywords "cloud" "mirror" "elpa") (:authors ("Chen Bin" . "chenbin.sh@gmail.com")) (:maintainer "Chen Bin" . "chenbin.sh@gmail.com") (:url . "http://github.com/redguardtoo/elpa-mirror"))]) -(elpa-clone . [(20190109 2340) ((emacs (24 4)) (cl-lib (0))) "Clone ELPA archive" single ((:commit . "5dddbab4c27ec6aca541a1f8e9792617f10fc325") (:keywords "comm" "elpa" "clone" "mirror") (:authors ("ZHANG Weiyi" . "dochang@gmail.com")) (:maintainer "ZHANG Weiyi" . "dochang@gmail.com") (:url . "https://github.com/dochang/elpa-clone"))]) -(elpa-audit . [(20141023 1331) nil "Handy functions for inspecting and comparing package archives" single ((:commit . "727da50e626977351aff2675b6540a36818bbbe6") (:keywords "maint") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/elpa-audit"))]) -(eloud . [(20160731 1557) ((emacs (24 4))) "A lightweight, interactive screen reader" single ((:commit . "82c97918585bd2a749251ae87d7732ca9d856c16") (:keywords "extensions") (:authors ("Patrick Smyth" . "patricksmyth01@gmail.com")) (:maintainer "Patrick Smyth" . "patricksmyth01@gmail.com") (:url . "https://github.com/smythp/eloud"))]) -(elogcat . [(20151121 41) ((s (1 9 0)) (dash (2 10 0))) "logcat interface" single ((:commit . "4f311b7a07565b0d060334bc68edb36f2bff703f") (:keywords "tools") (:authors ("Youngjoo Lee" . "youngker@gmail.com")) (:maintainer "Youngjoo Lee" . "youngker@gmail.com"))]) -(elog . [(20160724 2255) ((eieio (1 3))) "logging library extended from logito" single ((:commit . "a67237d9813c7591614d95e2ef31cc5e5ed3f31b") (:keywords "lisp" "tool" "log") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com"))]) -(elnode . [(20190608 1620) ((web (0 1 4)) (dash (1 1 0)) (noflet (0 0 7)) (s (1 5 0)) (creole (0 8 14)) (fakir (0 1 6)) (db (0 0 5)) (kv (0 0 17))) "The Emacs webserver." tar ((:commit . "c2cc2203932c08cfdf87cbcb43fd44c6fa663cd0"))]) -(elmine . [(20190212 1740) ((s (1 10 0))) "Redmine API access via elisp." single ((:commit . "2f020e41940b182deeca39786a3092a2d68b5eb7") (:keywords "tools") (:authors ("Arthur Andersen" . "leoc.git@gmail.com")) (:maintainer "Arthur Andersen" . "leoc.git@gmail.com") (:url . "http://github.com/leoc/elmine"))]) -(elmacro . [(20180628 1411) ((s (1 11 0)) (dash (2 13 0))) "Convert keyboard macros to emacs lisp" single ((:commit . "89b9b0feabafd01fee48111d67131c4c9b5fed9a") (:keywords "macro" "elisp" "convenience") (:authors ("Philippe Vaucher" . "philippe.vaucher@gmail.com")) (:maintainer "Philippe Vaucher" . "philippe.vaucher@gmail.com") (:url . "https://github.com/Silex/elmacro"))]) -(elm-yasnippets . [(20160401 524) ((yasnippet (0 8 0))) "Yasnippets for Elm" tar ((:commit . "45a11a0cef0c36633fb3477d3dc4167e82779ba4") (:keywords "snippets") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com"))]) -(elm-test-runner . [(20190105 1923) ((emacs (24 4))) "Enhanced support for running elm-test" single ((:commit . "a31d567a64d86d36e3675347abd696824a731e0c") (:authors ("Juan Edi")) (:maintainer "Juan Edi") (:url . "https://github.com/juanedi/elm-test-runner"))]) -(elm-mode . [(20190222 2125) ((f (0 17)) (let-alist (1 0 4)) (seq (2 2)) (s (1 7 0)) (emacs (24 4)) (dash (2 13 0)) (reformatter (0 3))) "Major mode for Elm" tar ((:commit . "b59b66a5369816c3a6d47b3702b9007431b7b4cf") (:authors ("Joseph Collard")) (:maintainer "Joseph Collard") (:url . "https://github.com/jcollard/elm-mode"))]) -(elixir-yasnippets . [(20150417 1239) ((yasnippet (0 8 0))) "Yasnippets for Elixir" tar ((:commit . "980ca7626c14ef0573bec0035ec7942796062783"))]) -(elixir-mode . [(20190422 155) ((emacs (24)) (pkg-info (0 4))) "Major mode for editing Elixir files" tar ((:commit . "694d133e847e9a6db6abd1c19850cec6d867ccce") (:keywords "languages" "elixir") (:url . "https://github.com/elixir-lang/emacs-elixir"))]) -(elisp-slime-nav . [(20160128 1909) ((cl-lib (0 2))) "Make M-. and M-, work in elisp like they do in slime" single ((:commit . "34938422929800839e2f935aca890cd4a229ca99") (:keywords "navigation" "slime" "elisp" "emacs-lisp") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/elisp-slime-nav"))]) -(elisp-sandbox . [(20131116 1842) nil "Evaluate EmacsLisp expressions in a sandbox" single ((:commit . "d894d68934ef09c42f72ac4e1173a0bedc23f139") (:keywords "lisp") (:authors ("Joel McCracken <mccracken.joel@gmail.com>, D. Goel" . "deego@gnufans.org")) (:maintainer "Joel McCracken <mccracken.joel@gmail.com>, D. Goel" . "deego@gnufans.org") (:url . "https://github.com/joelmccracken/elisp-sandbox"))]) -(elisp-refs . [(20190323 1331) ((dash (2 12 0)) (loop (1 2)) (s (1 11 0))) "find callers of elisp functions or macros" single ((:commit . "0a254e6a4dc7fa12857f8334fe6eefa72e49d1c9") (:keywords "lisp") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(elisp-lint . [(20180224 2042) ((emacs (24))) "basic linting for Emacs Lisp" single ((:commit . "04b0d36ec0e4dc1bb54c2bf4c2d16b2af8cf6a39") (:keywords "lisp" "maint" "tools") (:authors ("Nikolaj Schumacher <bugs * nschum de>,")) (:maintainer "Nikolaj Schumacher <bugs * nschum de>,") (:url . "http://github.com/gonewest818/elisp-lint/"))]) -(elisp-format . [(20160508 952) nil "Format elisp code" single ((:commit . "03cc293eb2f78ec58fc1d84279af06816a04b979") (:authors (nil . "Andy Stewart lazycat.manatee@gmail.com")) (:maintainer "Yuki Inoue inouetakahiroki _at_ gmail.com") (:url . "https://github.com/Yuki-Inoue/elisp-format"))]) -(elisp-docstring-mode . [(20170304 1615) nil "Major mode for editing elisp docstrings." single ((:commit . "f512e509dd690f65133e55563ebbfd2dede5034f") (:keywords "languages") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(elisp-depend . [(20190325 1114) nil "Parse depend libraries of elisp file." single ((:commit . "6679da9a6be5a845bb4804224c8394a9bc62168f"))]) -(elisp-demos . [(20190614 241) ((emacs (24 4))) "Elisp API Demos" tar ((:commit . "fd8c711560703536ebefc5f797ff072ac3bf2d50") (:keywords "lisp" "docs") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/elisp-demos"))]) -(elisp-def . [(20180806 723) ((dash (2 12 0)) (f (0 19 0)) (s (1 11 0)) (emacs (24 3))) "macro-aware go-to-definition for elisp" single ((:commit . "368b04da68783601b52e3169312183381871cf9e") (:keywords "lisp") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(elhome . [(20161025 2042) ((initsplit (20120630))) "A framework for a \"home\" Emacs configuration" tar ((:commit . "e789e806469af3e9705f72298683c21f6c3a516d") (:keywords "lisp") (:authors ("Dave Abrahams" . "dave@boostpro.com")) (:maintainer "Demyan Rogozhin" . "demyan.rogozhin@gmail.com") (:url . "http://github.com/demyanrogozhin/elhome"))]) -(elgrep . [(20190518 1539) ((emacs (25 1))) "Searching files for regular expressions" single ((:commit . "c2c5858f335ac1d0013dc631e5bc2dc16d9b3198") (:keywords "tools" "matching" "files" "unix") (:authors ("Tobias Zawada" . "naehring@smtp.1und1.de")) (:maintainer "Tobias Zawada" . "naehring@smtp.1und1.de") (:url . "https://github.com/TobiasZawada/elgrep"))]) -(elfeed-web . [(20180829 1716) ((simple-httpd (1 4 3)) (elfeed (1 4 0)) (emacs (24 1))) "web interface to Elfeed" tar ((:commit . "fd539da2da94ab4794fd69247ce06deca7aa66bf"))]) -(elfeed-protocol . [(20190616 301) ((emacs (24 4)) (elfeed (2 1 1)) (cl-lib (0 5))) "Provide owncloud/ttrss protocols for elfeed" tar ((:commit . "92961499adfdef3c038af3dff24b435e9fb4bc1a") (:keywords "news") (:authors ("Xu Fasheng <fasheng[AT]fasheng.info>")) (:maintainer "Xu Fasheng <fasheng[AT]fasheng.info>") (:url . "https://github.com/fasheng/elfeed-protocol"))]) -(elfeed-org . [(20181015 1100) ((elfeed (1 1 1)) (org (8 2 7)) (dash (2 10 0)) (s (1 9 0)) (cl-lib (0 5))) "Configure elfeed with one or more org-mode files" single ((:commit . "77b6bbf222487809813de260447d31c4c59902c9") (:keywords "news") (:authors ("Remy Honig" . "remyhonig@gmail.com")) (:maintainer "Remy Honig" . "remyhonig@gmail.com") (:url . "https://github.com/remyhonig/elfeed-org"))]) -(elfeed-goodies . [(20190128 1631) ((popwin (1 0 0)) (powerline (2 2)) (elfeed (2 0 0)) (cl-lib (0 5)) (noflet (0 0 10)) (ace-jump-mode (2 0))) "Elfeed goodies" tar ((:commit . "95b4ea632fbd5960927952ec8f3394eb88da4752") (:authors ("Gergely Nagy")) (:maintainer "Gergely Nagy") (:url . "https://github.com/algernon/elfeed-goodies"))]) -(elfeed . [(20190514 1725) ((emacs (24 3))) "an Emacs Atom/RSS feed reader" tar ((:commit . "fd539da2da94ab4794fd69247ce06deca7aa66bf"))]) -(elf-mode . [(20161009 748) ((emacs (24 3))) "Show symbols in binaries" single ((:commit . "cd280d683cd3341d8bb31af6db7e3b74a133e6ab") (:keywords "matching") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/elf-mode"))]) -(elein . [(20120120 1116) nil "running leiningen commands from emacs" single ((:commit . "d4c0c0491dbb7c90e953d7a16172107c37103605") (:keywords "tools" "processes") (:authors ("R.W. van 't Veer")) (:maintainer "R.W. van 't Veer") (:url . "https://github.com/remvee/elein"))]) -(electric-spacing . [(20161209 1957) nil "Insert operators with surrounding spaces smartly" single ((:commit . "9d0f8a213133f2619a4e9dfbba3b00d4348c07b0") (:authors ("William Xu" . "william.xwl@gmail.com")) (:maintainer "William Xu" . "william.xwl@gmail.com"))]) -(electric-operator . [(20190226 727) ((dash (2 10 0)) (emacs (24 4))) "Automatically add spaces around operators" tar ((:commit . "b6aec9502fffbb7b9459665122ea3908fa70a498") (:keywords "electric") (:authors ("David Shepherd" . "davidshepherd7@gmail.com")) (:maintainer "David Shepherd" . "davidshepherd7@gmail.com") (:url . "https://github.com/davidshepherd7/electric-operator"))]) -(electric-case . [(20150417 1112) nil "insert camelCase, snake_case words without \"Shift\"ing" single ((:commit . "bac64e772107e3dc721a9819f63b9ebdc28a81f7") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(eldoc-overlay . [(20190223 543) ((emacs (24 3)) (inline-docs (1 0 1)) (quick-peek (1 0))) "Display eldoc with contextual documentation overlay." single ((:commit . "cfec077d9a699c88265af2e9480d5e76a3b3f833") (:keywords "documentation" "eldoc" "overlay") (:authors ("stardiviner" . "numbchild@gmail.com")) (:maintainer "stardiviner" . "numbchild@gmail.com") (:url . "https://github.com/stardiviner/eldoc-overlay"))]) -(eldoc-eval . [(20190423 1858) nil "Enable eldoc support when minibuffer is in use." single ((:commit . "a67fe3637378dcb6c5f9e140acc8131f0d2346b3") (:authors ("Thierry Volpiatto" . "thierry.volpiatto@gmail.com")) (:maintainer "Thierry Volpiatto" . "thierry.volpiatto@gmail.com"))]) -(eldoc-cmake . [(20190419 2244) ((emacs (25 1))) "Eldoc support for CMake" single ((:commit . "4453c03b5c95ff32842f13db2fc317fb0fe2f79e") (:authors ("Kirill Ignatiev")) (:maintainer "Kirill Ignatiev") (:url . "https://github.com/ikirill/eldoc-cmake"))]) -(eldoc-box . [(20190616 437) ((emacs (26 1))) "Display documentation in childframe" single ((:commit . "ae9cbb0c5afb5eb596546c301c58ed30e08cf008") (:authors ("Sebastien Chapuis" . "sebastien@chapu.is")) (:maintainer "Yuan Fu" . "casouri@gmail.com") (:url . "https://github.com/casouri/eldoc-box"))]) -(elcouch . [(20180809 936) ((emacs (25 1)) (json-mode (1 0 0)) (libelcouch (0 8 0))) "View and manipulate CouchDB databases" single ((:commit . "ae9b6261c5167d538914bfdbc4d34a36e50b5bc2") (:keywords "data" "tools") (:authors ("Damien Cassou" . "damien@cassou.me")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://gitlab.petton.fr/DamienCassou/elcouch"))]) -(elcord . [(20190531 2211) ((emacs (25))) "Allows you to integrate Rich Presence from Discord" tar ((:commit . "0f311c2bcfd65721fe8c0ebec9da344f217d4061") (:keywords "games") (:authors ("heatingdevice") ("Wilfredo Velázquez-RodrÃguez" . "zulu.inuoe@gmail.com")) (:maintainer "heatingdevice") (:url . "https://github.com/Mstrodl/elcord"))]) -(elcontext . [(20180526 1304) ((ht (2 3)) (hydra (0 14 0)) (emacs (24 3)) (f (0 20 0)) (osx-location (0 4)) (uuidgen (0 3))) "Create context specific actions" tar ((:commit . "f434ffc655e6349a4dd52285ff68a9194bcfc949") (:keywords "calendar" "convenience") (:authors ("Thomas Sojka")) (:maintainer "Thomas Sojka") (:url . "https://github.com/rollacaster/elcontext"))]) -(elbank . [(20180316 1343) ((emacs (25)) (seq (2 16))) "Personal finances reporting application" tar ((:commit . "fa9bc7dec0a8fd489e90b9f178719344cc8d315a") (:keywords "tools" "personal-finances") (:authors ("Nicolas Petton" . "nicolas@petton.fr")) (:maintainer "Nicolas Petton" . "nicolas@petton.fr"))]) -(el2org . [(20190504 1114) ((emacs (25 1))) "Convert elisp file to org file" single ((:commit . "fbb2c5bff78564111ff1826976101555314bfc53") (:keywords "convenience") (:authors ("Feng Shu " . "tumashu@163.com")) (:maintainer "Feng Shu " . "tumashu@163.com") (:url . "https://github.com/tumashu/el2org"))]) -(el2markdown . [(20170630 1858) nil "Convert commentary section of elisp files to markdown." single ((:commit . "368d99313683cd943c99feaffca356be60bdb636") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/el2markdown"))]) -(el-x . [(20140111 2201) nil "main entry point for el-x package" tar ((:commit . "e7c333d4fc31a90f4dca951efe21129164b42605") (:keywords "lisp") (:authors ("Yann Hodique" . "yann.hodique@gmail.com")) (:maintainer "Yann Hodique" . "yann.hodique@gmail.com"))]) -(el-spy . [(20131226 2008) nil "Mocking framework for Emacs lisp. It also support spy, proxy." single ((:commit . "b1dead9d1877660856ada22d906ac4e54695aec7") (:keywords "test") (:authors ("Yuuki Arisawa" . "yuuki.ari@gmail.com")) (:maintainer "Yuuki Arisawa" . "yuuki.ari@gmail.com") (:url . "https://github.com/uk-ar/el-spy"))]) -(el-sprunge . [(20140107 139) ((web-server (20140105 2246)) (htmlize (20130207 1202)) (emacs (24 3))) "Command line paste server with Emacs highlighting" tar ((:commit . "37855ec60aeb4d565c49a4d711edc7341e9a22cb"))]) -(el-spice . [(20180128 1721) nil "Extra spice for emacs lisp programming" tar ((:commit . "4e0852ebf5d8e9cbb3eaaa6ae9c53d126b53f58c") (:keywords "languages" "extensions") (:authors ("Vedang Manerikar" . "vedang.manerikar@gmail.com")) (:maintainer "Vedang Manerikar" . "vedang.manerikar@gmail.com") (:url . "https://github.com/vedang/el-spice"))]) -(el-spec . [(20121018 704) nil "ruby's rspec like syntax test frame work" single ((:commit . "1dbc465401d4aea5560318c4f13ff30920a0718d") (:keywords "test") (:authors ("Yuuki Arisawa" . "yuuki.ari@gmail.com")) (:maintainer "Yuuki Arisawa" . "yuuki.ari@gmail.com") (:url . "https://github.com/uk-ar/el-spec"))]) -(el-pocket . [(20170922 1249) ((web (0 5 2)) (emacs (24))) "Read and write to Pocket (getpocket.com)" single ((:commit . "a80abfb67efe68ada1d7d0a73aecee57e763baaa") (:keywords "emacs" "pocket" "bookmarks") (:authors ("Tod Davies" . "davies.t.o@gmail.com")) (:maintainer "Tod Davies" . "davies.t.o@gmail.com") (:url . "http://github.com/pterygota/el-pocket"))]) -(el-patch . [(20190410 1631) ((emacs (25))) "Future-proof your Elisp." single ((:commit . "178111f98564551e18948b1f0dc4c539dbda5342") (:keywords "extensions") (:authors ("Radon Rosborough" . "radon.neon@gmail.com")) (:maintainer "Radon Rosborough" . "radon.neon@gmail.com") (:url . "https://github.com/raxod502/el-patch"))]) -(el-mock . [(20170824 1954) nil "Tiny Mock and Stub framework in Emacs Lisp" single ((:commit . "5df1d3a956544f1d3ad0bcd81daf47fff33ab8cc") (:keywords "lisp" "testing" "unittest") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/el-mock.el"))]) -(el-init-viewer . [(20150303 828) ((emacs (24)) (cl-lib (0 5)) (ctable (0 1 2)) (dash (2 10 0)) (anaphora (1 0 0)) (el-init (0 1 4))) "Record viewer for el-init" single ((:commit . "8a2ab457586962bde0da2a1c56a37ce6363ae690") (:authors ("Hiroki YAMAKAWA" . "s06139@gmail.com")) (:maintainer "Hiroki YAMAKAWA" . "s06139@gmail.com") (:url . "https://github.com/HKey/el-init-viewer"))]) -(el-init . [(20150728 920) ((emacs (24)) (cl-lib (0 5)) (anaphora (1 0 0))) "A loader inspired by init-loader" single ((:commit . "65c48ec47fea84d16ff2d1ef7015b4d220fcf5ff") (:authors ("Hiroki YAMAKAWA" . "s06139@gmail.com")) (:maintainer "Hiroki YAMAKAWA" . "s06139@gmail.com") (:url . "https://github.com/HKey/el-init"))]) -(el-get . [(20181006 225) nil "Manage the external elisp bits and pieces you depend upon" tar ((:commit . "5534e20b8a9d071f43285161a453924cc42ccd5b") (:keywords "emacs" "package" "elisp" "install" "elpa" "git" "git-svn" "bzr" "cvs" "svn" "darcs" "hg" "apt-get" "fink" "pacman" "http" "http-tar" "emacswiki") (:authors ("Dimitri Fontaine" . "dim@tapoueh.org")) (:maintainer "Dimitri Fontaine" . "dim@tapoueh.org") (:url . "http://www.emacswiki.org/emacs/el-get"))]) -(el-fly-indent-mode . [(20180422 243) ((emacs (25))) "Indent Emacs Lisp on the fly" single ((:commit . "4917f486a7be7482dedfea0a7ac3d01cab4ce21c") (:keywords "lisp" "languages") (:authors ("Jiahao Li" . "jiahaowork@gmail.com")) (:maintainer "Jiahao Li" . "jiahaowork@gmail.com") (:url . "https://github.com/jiahaowork/el-fly-indent-mode.el"))]) -(el-autoyas . [(20120918 1317) nil "Automatically create Emacs-Lisp Yasnippets" tar ((:commit . "bde0251ecb504f585dfa27c205c8e312655310cc") (:keywords "emacs" "lisp" "mode" "yasnippet") (:authors ("Matthew L. Fidler")) (:maintainer "Matthew L. Fidler") (:url . "https://github.com/mlf176f2/el-autoyas.el"))]) -(ejc-sql . [(20190617 1732) ((emacs (25 1)) (clomacs (0 0 3)) (dash (2 12 1)) (auto-complete (1 5 1)) (spinner (1 7 1)) (direx (1 0 0))) "Emacs SQL client uses Clojure JDBC." tar ((:commit . "7fe24a2f977610883bc831ef63395fe0e6da722b") (:keywords "sql" "jdbc") (:authors ("Kostafey" . "kostafey@gmail.com")) (:maintainer "Kostafey" . "kostafey@gmail.com") (:url . "https://github.com/kostafey/ejc-sql"))]) -(eink-theme . [(20190219 858) nil "E Ink color theme" single ((:commit . "326b07523dcb076d6209cdbc7fdbb73df296dbdb") (:authors ("Marian Schubert" . "marian.schubert@gmail.com")) (:maintainer "Marian Schubert" . "marian.schubert@gmail.com") (:url . "http://github.com/maio/eink-emacs"))]) -(ein-mumamo . [(20150302 28) ((ein (0 4))) "Multiple major mode support for Emacs IPython Notebook" single ((:commit . "028fefec499598add1a87b92ed991891f38f0c7b") (:authors ("Takafumi Arakaki <aka.tkf at gmail.com>") (": John Miller <millejoh at mac.com>")) (:maintainer "Takafumi Arakaki <aka.tkf at gmail.com>"))]) -(ein . [(20190611 1229) ((emacs (25)) (websocket (1 7)) (auto-complete (1 4 0)) (request (0 3)) (deferred (0 5)) (polymode (20190426 1729)) (markdown-mode (20171116 756)) (dash (2 13 0)) (s (1 11 0)) (skewer-mode (1 6 2))) "Emacs IPython Notebook" tar ((:commit . "27e9b8c9c4da24b499db32d06a18adf3a2c53efd"))]) -(eimp . [(20120826 2039) nil "Emacs Image Manipulation Package" single ((:commit . "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f") (:keywords "files" "frames") (:authors ("Matthew P. Hodges" . "MPHodges@member.fsf.org")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk"))]) -(eide . [(20190501 2122) nil "IDE interface" tar ((:commit . "0554252de694d01210e40cf071f212b6ca45e88e"))]) -(ego . [(20180301 104) ((emacs (24 5)) (ht (1 5)) (mustache (0 22)) (htmlize (1 47)) (org (8 0)) (dash (2 0 0)) (simple-httpd (1 4 5))) "a static site generator based on org mode, forked from org-page." tar ((:commit . "719809679c1a60887735db41abae53b61f08ef59"))]) -(eglot . [(20190512 1047) ((emacs (26 1)) (jsonrpc (1 0 7)) (flymake (1 0 5))) "Client for Language Server Protocol (LSP) servers" single ((:commit . "5f629ebfb680f43849ca894c7166a2b54ff5ba50") (:keywords "convenience" "languages") (:authors ("João Távora" . "joaotavora@gmail.com")) (:maintainer "João Távora" . "joaotavora@gmail.com") (:url . "https://github.com/joaotavora/eglot"))]) -(egison-mode . [(20181109 1624) nil "Egison editing mode" single ((:commit . "79e12f0d5ec0c04d9a27ce14f7ca1aa809c79702") (:authors ("Satoshi Egi" . "egisatoshi@gmail.com")) (:maintainer "Satoshi Egi" . "egisatoshi@gmail.com") (:url . "https://github.com/egisatoshi/egison3/blob/master/elisp/egison-mode.el"))]) -(egg . [(20181126 500) nil "Emacs Got Git - Emacs interface to Git" tar ((:commit . "00e768a78ac3d25f457eed667d02cac568480bf9") (:keywords "git" "version control" "release management") (:authors ("Bogolisk" . "bogolisk@gmail.com")) (:maintainer "Bogolisk" . "bogolisk@gmail.com"))]) -(eg . [(20170830 815) ((cl-lib (0 5)) (emacs (24 3))) "Norton Guide reader" single ((:commit . "1c7f1613d2aaae728ef540305f6ba030616f86bd") (:keywords "docs") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/eg.el"))]) -(efire . [(20151009 2031) ((circe (1 2))) "Use campfire from Emacs" single ((:commit . "91a644662afb352475efad0b377713656f131e5c") (:keywords "convenience" "tools") (:authors ("João Távora" . "joaotavora@gmail.com")) (:maintainer "João Távora" . "joaotavora@gmail.com") (:url . "https://github.com/capitaomorte/efire"))]) -(edts . [(20171030 709) ((auto-complete (1 3 1)) (auto-highlight-symbol (1 53)) (dash (2 13)) (erlang (2 4 1)) (f (0 19 0)) (popup (0 4)) (s (1 11 0))) "Erlang Development Tool Suite" tar ((:commit . "6ef4bdf571235ee1b078db321402270cabff7fda"))]) -(edn . [(20160215 1219) ((cl-lib (0 3)) (emacs (24 1)) (peg (0 6))) "Support for reading and writing the edn data format from elisp" single ((:commit . "be9e32d1b49e35247b263b0243df7cfdc8d413ab") (:keywords "edn" "clojure") (:authors ("Lars Andersen" . "expez@expez.com")) (:maintainer "Lars Andersen" . "expez@expez.com") (:url . "https://www.github.com/expez/edn.el"))]) -(editorconfig-generate . [(20190513 433) ((emacs (24))) "Generate .editorconfig" single ((:commit . "47a31f928f46d2a0188db8e2cffa5d6354a81573") (:keywords "tools") (:authors ("10sr" . "8.slashes@gmail.com")) (:maintainer "10sr" . "8.slashes@gmail.com") (:url . "https://github.com/10sr/editorconfig-generate-el"))]) -(editorconfig-domain-specific . [(20180505 924) ((cl-lib (0 5)) (editorconfig (0 6 0))) "Apply brace style and other \"domain-specific\" EditorConfig properties" single ((:commit . "e9824160fb2e466afa755240ee3ab7cc5657fb04") (:keywords "editorconfig" "util") (:authors ("Lassi Kortela" . "lassi@lassi.io")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:url . "https://github.com/lassik/editorconfig-emacs-domain-specific"))]) -(editorconfig-custom-majormode . [(20180816 244) ((editorconfig (0 6 0))) "Decide major-mode and mmm-mode from EditorConfig" single ((:commit . "13ad1c83f847bedd4b3a19f9df7fd925853b19de") (:keywords "editorconfig" "util") (:authors ("10sr <8slashes+el [at] gmail [dot] com>")) (:maintainer "10sr <8slashes+el [at] gmail [dot] com>") (:url . "https://github.com/10sr/editorconfig-custom-majormode-el"))]) -(editorconfig-charset-extras . [(20180223 457) ((editorconfig (0 6 0))) "Extra EditorConfig Charset Support" single ((:commit . "ddf60923c6f4841cb593b2ea04c9c710a01d262f") (:keywords "tools") (:authors ("10sr" . "8.slashes@gmail.com")) (:maintainer "10sr" . "8.slashes@gmail.com") (:url . "https://github.com/10sr/editorconfig-charset-extras-el"))]) -(editorconfig . [(20190617 543) ((cl-lib (0 5)) (emacs (24))) "EditorConfig Emacs Plugin" tar ((:commit . "d073dd44c4813536dee6eadaf9e43f36ac0a3202") (:authors ("EditorConfig Team" . "editorconfig@googlegroups.com")) (:maintainer "EditorConfig Team" . "editorconfig@googlegroups.com") (:url . "https://github.com/editorconfig/editorconfig-emacs#readme"))]) -(edit-server-htmlize . [(20130329 2248) ((edit-server (1 9))) "(de)HTMLization hooks for edit-server.el" single ((:commit . "e7f8dadfabe869c77ca241cd6fbd4c52bd908392") (:authors ("Roland McGrath" . "roland@hack.frob.com")) (:maintainer "Roland McGrath" . "roland@hack.frob.com") (:url . "https://github.com/frobtech/edit-server-htmlize"))]) -(edit-server . [(20181016 1125) nil "server that responds to edit requests from Chrome" single ((:commit . "af46de40e2991b046f04856c18a6483badce38aa") (:authors ("Alex Bennée" . "alex@bennee.com")) (:maintainer "Alex Bennée" . "alex@bennee.com") (:url . "https://github.com/stsquad/emacs_chrome"))]) -(edit-list . [(20100930 1443) nil "edit a single list" single ((:commit . "f460d3f9e208a4e606fe6ded307f1b011916ca71") (:authors ("Michael Olson" . "mwolson@gnu.org")) (:maintainer "Michael Olson" . "mwolson@gnu.org") (:url . "http://mwolson.org/static/dist/elisp/edit-list.el"))]) -(edit-indirect-region-latex . [(20161129 645) ((emacs (24 3)) (ht (2 2)) (edit-indirect (0 1 4))) "Edit LaTeX regions in separate buffers, e.g. for English grammar checks" single ((:commit . "05043f2c0c9838947d3ca4b51b695deb7c47612e") (:authors ("Hirotaka Niitsuma" . "hirotaka.niitsuma@gmail.com")) (:maintainer "Hirotaka Niitsuma" . "hirotaka.niitsuma@gmail.com") (:url . "https://github.com/niitsuma/edit-indirect-region-latex"))]) -(edit-indirect . [(20180422 1807) ((emacs (24 3))) "Edit regions in separate buffers" single ((:commit . "de645d8144e8a08f039a9c88185121ec81d957ef") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/edit-indirect"))]) -(edit-color-stamp . [(20130529 1733) ((es-lib (0 2)) (cl-lib (1 0))) "Edit a hex color stamp, using a QT or the internal color picker" tar ((:commit . "32dc1ca5bcf3dcf83fad5e39b55dc5b77becb3d3") (:authors ("sabof")) (:maintainer "sabof") (:url . "https://github.com/sabof/edit-color-stamp"))]) -(edit-at-point . [(20150716 1324) nil "edit(copy,cut..) current things(word,symbol..) under cursor" single ((:commit . "3b800c11685102e1eab62ec71c5fc1589ebb81a7") (:authors (nil . "<e.enoson@gmail.com>")) (:maintainer nil . "<e.enoson@gmail.com>") (:url . "http://github.com/enoson/edit-at-point.el"))]) -(edebug-x . [(20130616 625) nil "Extensions for Edebug" single ((:commit . "a2c2c42553d3bcbd5ac11898554865acbed1bc46") (:keywords "extensions") (:authors ("Scott Barnett" . "scott.n.barnett@gmail.com")) (:maintainer "Scott Barnett" . "scott.n.barnett@gmail.com") (:url . "https://github.com/ScottyB/edebug-x"))]) -(ede-php-autoload-drupal . [(20170316 2158) ((ede-php-autoload (1 0 0)) (f (0 19 0)) (s (1 7 0))) "Drupal support for ede-php-autoload" single ((:commit . "54a04241d94fabc4f4d16ae4dc8ba4f0c6e3b435") (:keywords "programming" "php" "drupal") (:authors ("Thomas Fini Hansen" . "xen@xen.dk")) (:maintainer "Thomas Fini Hansen" . "xen@xen.dk"))]) -(ede-php-autoload-composer-installers . [(20170221 2026) ((ede-php-autoload (1 0 0)) (f (0 19 0)) (s (1 7 0))) "Composer installers support for ede-php-autoload" single ((:commit . "7840439802c7d11ee086bbf465657f3da12f9f66") (:keywords "programming" "php") (:authors ("Thomas Fini Hansen" . "xen@xen.dk")) (:maintainer "Thomas Fini Hansen" . "xen@xen.dk") (:url . "https://github.com/xendk/ede-php-autoload-composer-installers"))]) -(ede-php-autoload . [(20180901 1255) nil "Simple EDE PHP Project" tar ((:commit . "8a4eeeaa93b8d87b65a107c4ebcbeb14528d9449") (:keywords "php" "project" "ede") (:authors ("Steven Rémot" . "steven.remot@gmail.com") ("original code for C++ by Eric M. Ludlam" . "eric@siege-engine.com")) (:maintainer "Steven Rémot" . "steven.remot@gmail.com") (:url . "https://github.com/emacs-php/ede-php-autoload"))]) -(ede-compdb . [(20150920 2033) ((ede (1 2)) (semantic (2 2)) (cl-lib (0 4))) "Support for compilation database projects in EDE" single ((:commit . "d6d8466cd62876fc90adeff5875a1a584fd846cd") (:keywords "development" "ninja" "build" "cedet" "ede") (:authors ("Alastair Rankine" . "alastair@girtby.net")) (:maintainer "Alastair Rankine" . "alastair@girtby.net"))]) -(edbi-sqlite . [(20160221 1923) ((emacs (24)) (edbi (0 1 3))) "Open sqlite files with edbi" single ((:commit . "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/edbi-sqlite"))]) -(edbi-minor-mode . [(20160706 1447) ((edbi (0 1 3))) "Use edbi with regular SQL files." single ((:commit . "566a2141a6eb9d9d5d7e1bd7c251d1c5e8f0d2ec") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/edbi-minor-mode"))]) -(edbi-django . [(20190212 1417) ((emacs (25)) (pythonic (0 1 0)) (edbi (0 1 3))) "Run edbi with django settings" single ((:commit . "9b73db66c02a222fc62dc3bc590962f58c5b43d8") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/edbi-django"))]) -(edbi-database-url . [(20160221 1923) ((emacs (24)) (edbi (0 1 3))) "Run edbi with database url" single ((:commit . "d56c580268cd93651998c4c6b1c5558e6b6ca90f") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/edbi-database-url"))]) -(edbi . [(20160225 141) ((concurrent (0 3 1)) (ctable (0 1 2)) (epc (0 1 1))) "Emacs Database Interface" tar ((:commit . "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))]) -(ecukes . [(20171216 1208) ((commander (0 6 1)) (espuds (0 2 2)) (ansi (0 3 0)) (dash (2 2 0)) (s (1 8 0)) (f (0 11 0))) "Cucumber for Emacs." tar ((:commit . "3a77ba9f1064c2bca47b401974c009e65727c46e"))]) -(eclipse-theme . [(20190122 1018) nil "Theme based on Eclipse circa 2010" single ((:commit . "485cc1e7bd7eb6a42c6db803f4170ec4da18fc28") (:keywords "themes") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/eclipse-theme"))]) -(eclim . [(20181108 1134) ((dash (2 11 0)) (json (1 2)) (popup (0 5 2)) (s (1 9 0)) (cl-lib (0 5)) (yasnippet (0 10 0))) "An interface to the Eclipse IDE." tar ((:commit . "23f5b294f833ce58516d7b9ae08a7792d70022a1"))]) -(ecb . [(20170728 1921) nil "a code browser for Emacs" tar ((:commit . "1330a44cf3c171781083b0b926ab7622f64e6e81") (:keywords "browser" "code" "programming" "tools") (:authors ("Jesper Nordenberg" . "mayhem@home.se") ("Klaus Berndl" . "klaus.berndl@sdm.de") ("Kevin A. Burton" . "burton@openprivacy.org")) (:maintainer "Klaus Berndl" . "klaus.berndl@sdm.de"))]) -(ebib . [(20190617 817) ((parsebib (2 3)) (emacs (25 1))) "a BibTeX database manager" tar ((:commit . "68545def9b9062335665c92dd48e1706199df623") (:keywords "text" "bibtex") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm"))]) -(ebf . [(20160211 1758) ((dash (2 11 0)) (dash-functional (1 2 0)) (cl-lib (0 5))) "brainfuck language transpiler to Emacs Lisp" tar ((:commit . "4cd9c26354d8be6571354b2954d21fba882e78a2") (:authors ("Alexey Kutepov" . "reximkut@gmail.com")) (:maintainer "Alexey Kutepov" . "reximkut@gmail.com") (:url . "http://github.com/rexim/ebf"))]) -(ebal . [(20180101 616) ((emacs (24 4)) (f (0 18 0))) "Emacs interface to Cabal and Stack" single ((:commit . "1740118125ae7aa6ba82d36e1fe0e69065a6fcaa") (:keywords "convenience" "cabal" "haskell") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/ebal"))]) -(easy-repeat . [(20150516 848) ((emacs (24 4))) "Repeat easily" single ((:commit . "060f0e6801c82c40c06961dc0528a00e18947a8c") (:keywords "repeat" "convenience") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:url . "https://github.com/xuchunyang/easy-repeat.el"))]) -(easy-kill-extras . [(20180920 1334) ((easy-kill (0 9 4))) "Extra functions for easy-kill." tar ((:commit . "b8ce8350cc86e0229f195082557970cd51def960") (:keywords "killing" "convenience") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/easy-kill-extras.el"))]) -(easy-kill . [(20181114 2330) ((emacs (24)) (cl-lib (0 5))) "kill & mark things easily" single ((:commit . "2a6309d98aa6b71df6bbbcdf15cab3187c521a6b") (:keywords "killing" "convenience") (:authors ("Leo Liu" . "sdl.web@gmail.com")) (:maintainer "Leo Liu" . "sdl.web@gmail.com") (:url . "https://github.com/leoliu/easy-kill"))]) -(easy-jekyll . [(20190609 146) ((emacs (24 4)) (request (0 3 0))) "Major mode managing jekyll blogs" single ((:commit . "9b065ac1bc5a85c6ad41a7b97553eeaa9e30c791") (:authors ("Masashı Mıyaura")) (:maintainer "Masashı Mıyaura") (:url . "https://github.com/masasam/emacs-easy-jekyll"))]) -(easy-hugo . [(20190506 113) ((emacs (24 4)) (popup (0 5 3)) (request (0 3 0))) "Write blogs made with hugo by markdown or org-mode" single ((:commit . "c80b972faa2c3addc472fe6412ca28dc5583b1d6") (:authors ("Masashı Mıyaura")) (:maintainer "Masashı Mıyaura") (:url . "https://github.com/masasam/emacs-easy-hugo"))]) -(easy-escape . [(20161209 1544) nil "Improve readability of escape characters in regular expressions" single ((:commit . "a6449f22cb97160ee1c90121968de89e193268df") (:keywords "convenience" "lisp" "tools") (:authors ("Clément Pit--Claudel" . "clement.pitclaudel@live.com")) (:maintainer "Clément Pit--Claudel" . "clement.pitclaudel@live.com") (:url . "https://github.com/cpitclaudel/easy-escape"))]) -(easy-after-load . [(20170817 1231) nil "eval-after-load for all files in a directory" single ((:commit . "29e20145da49ac9ea40463c552130777408040de") (:authors ("Kyle Hargraves")) (:maintainer "Kyle Hargraves") (:url . "https://github.com/pd/easy-after-load"))]) -(eacl . [(20190519 620) ((emacs (24 3)) (ivy (0 9 1))) "Auto-complete lines by grepping project" single ((:commit . "1a32676165c0e63dc85470272efaccd5f497870a") (:keywords "abbrev" "convenience" "matching") (:authors ("Chen Bin <chenbin DOT sh AT gmail DOT com>")) (:maintainer "Chen Bin <chenbin DOT sh AT gmail DOT com>") (:url . "http://github.com/redguardtoo/eacl"))]) -(e2wm-term . [(20141009 1308) ((e2wm (1 2)) (log4e (0 2 0)) (yaxception (0 3 2))) "Perspective of e2wm.el for work in terminal" single ((:commit . "65b5ac88043d5c4048920a048f3599904ca55981") (:keywords "tools" "window manager") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/e2wm-term"))]) -(e2wm-sww . [(20140524 858) ((e2wm (1 2))) "Plugin of e2wm.el to switch plugin quickly" single ((:commit . "1063f9854bd34db5ac771cd1036cecc89834729d") (:keywords "tools" "window manager") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/e2wm-sww"))]) -(e2wm-svg-clock . [(20150106 1306) ((e2wm (20130225 1602)) (svg-clock (0 4))) "e2wm plugin for svg-clock" single ((:commit . "d425925e3afffcbe2ff74edc80b714e4319d4c94") (:keywords "convenience" "e2wm") (:authors ("Yuhei Maeda <yuhei.maeda_at_gmail.com>")) (:maintainer "Yuhei Maeda") (:url . "https://github.com/myuhe/e2wm-svg-clock.el"))]) -(e2wm-pkgex4pl . [(20140525 1047) ((e2wm (1 2)) (plsense-direx (0 2 0))) "Plugin of e2wm.el for package explorer of Perl" single ((:commit . "7ea994450727190c4f3cb46cb429ba41b692ecc0") (:keywords "tools" "window manager" "perl") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/e2wm-pkgex4pl"))]) -(e2wm-direx . [(20170509 1301) ((e2wm (1 2)) (direx (0 1 -3))) "Plugin of e2wm.el for direx.el" single ((:commit . "b47f19d15436cc28233a812a1150689f61d11046") (:keywords "tools" "window manager" "convenience") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/e2wm-direx"))]) -(e2wm-bookmark . [(20151123 521) ((e2wm (1 2))) "Bookmark plugin for e2wm.el" single ((:commit . "bad816b6d8049984d69bcd277b7d325fb84d55eb") (:keywords "convenience") (:authors ("Yuhei Maeda <yuhei.maeda_at_gmail.com>")) (:maintainer "Yuhei Maeda <yuhei.maeda_at_gmail.com>"))]) -(e2wm-R . [(20151230 926) ((e2wm (1 3)) (inlineR (1 0)) (ess (15 3))) "some e2wm plugin and perspective for GNU R" single ((:commit . "4350601ee1a96bf89777b3f09f1b79b88e2e6e4d") (:keywords "convenience" "e2wm") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/e2wm-R.el"))]) -(e2wm . [(20170215 36) ((window-layout (1 4))) "simple window manager for emacs" tar ((:commit . "4353d3394c77a49f8f0291c239858c8c5e877549") (:keywords "tools" "window manager") (:authors ("SAKURAI Masashi <m.sakurai atmark kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai atmark kiwanami.net>"))]) -(e2ansi . [(20190517 1902) ((face-explorer (0 0 4))) "Syntax highlighting support for `less', powered by Emacs." tar ((:commit . "6e1bb4e4e27885d1786db08b091cfa13b184fb54") (:keywords "faces" "languages") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/e2ansi"))]) -(dynamic-spaces . [(20171027 1851) nil "When editing, don't move text separated by spaces" single ((:commit . "97ae8480c257ba573ca3d06dbf602f9b23c41d38") (:keywords "convenience") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/dynamic-spaces"))]) -(dynamic-ruler . [(20160602 808) nil "Displays a dynamic ruler at point." single ((:commit . "c9c0de6fe5721f06b50e01d9b4684b519c71b367") (:keywords "ruler" "tools" "convenience") (:authors ("Francesc Rocher" . "francesc.rocher@gmail.com")) (:maintainer "Francesc Rocher" . "francesc.rocher@gmail.com") (:url . "http://rocher.github.io/dynamic-ruler"))]) -(dynamic-fonts . [(20140731 1226) ((font-utils (0 7 0)) (persistent-soft (0 8 8)) (pcache (0 2 3))) "Set faces based on available fonts" single ((:commit . "ab0c65accbdb59acaed5b263327e22ec019b3e82") (:keywords "faces" "frames") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/dynamic-fonts"))]) -(dylan-mode . [(20190109 300) nil "Major mode for editing Dylan programs." tar ((:commit . "9a6ad5ff83f2dfc25ce3deee9d3ef71ed53964b5") (:authors ("Robert Stockton" . "rgs@cs.cmu.edu")) (:maintainer "Chris Page" . "cpage@opendylan.org"))]) -(dyalog-mode . [(20190416 1401) ((cl-lib (0 2)) (emacs (24))) "Major mode for editing Dyalog APL source code" tar ((:commit . "abe3de955fd6ad1ecfb235ae70a2965a5cf312eb") (:keywords "languages") (:authors ("Joakim HÃ¥rsman" . "joakim.harsman@gmail.com")) (:maintainer "Joakim HÃ¥rsman" . "joakim.harsman@gmail.com") (:url . "https://bitbucket.org/harsman/dyalog-mode/"))]) -(dut-mode . [(20170729 2111) ((emacs (24))) "Major mode for the Dut programming language" single ((:commit . "9235c7acaa6690942e9de8b7acd1e4be0c859dc1") (:keywords "languages" "gut") (:authors ("The dut-mode Authors")) (:maintainer "The dut-mode Authors") (:url . "https://github.com/dut-lang/dut-mode"))]) -(duplicate-thing . [(20181031 1500) nil "Duplicate current line & selection" single ((:commit . "9d8fd05e3e5caa35d3f2a0c0032c92f0c0908e21") (:keywords "convenience" "command" "duplicate" "line" "selection") (:authors ("ongaeshi")) (:maintainer "ongaeshi") (:url . "https://github.com/ongaeshi/duplicate-thing"))]) -(dune . [(20190530 305) nil "Integration with the dune build system" tar ((:commit . "c894827515a8c6fe6ace1f88075e2784b902ce3b") (:url . "https://github.com/ocaml/dune"))]) -(dummyparens . [(20141009 1024) nil "parenthesis auto-pairing and wrapping" single ((:commit . "9798ef1d0eaa24e4fe66f8aa6022a8c62714cc89") (:keywords "dummyparens" "auto-pair" "wrapping") (:authors ("Sergei Nosov <sergei.nosov [at] gmail.com>")) (:maintainer "Sergei Nosov <sergei.nosov [at] gmail.com>") (:url . "https://github.com/snosov1/dummyparens"))]) -(dumb-jump . [(20190327 1727) ((emacs (24 3)) (f (0 20 0)) (s (1 11 0)) (dash (2 9 0)) (popup (0 5 3))) "jump to definition for multiple languages without configuration." single ((:commit . "6988b21a08b53fbfeaa6e0b0f182524257dec1e4") (:keywords "programming") (:authors ("jack angers")) (:maintainer "jack angers"))]) -(dumb-diff . [(20171211 2122) ((emacs (24 3))) "fast arbitrary diffs" single ((:commit . "1a2331d283049b71a07c1b06b1e0627a950d55f4") (:keywords "programming" "diff") (:authors ("jack angers")) (:maintainer "jack angers"))]) -(ducpel . [(20140702 1154) ((cl-lib (0 5))) "Logic game with sokoban elements" tar ((:commit . "b53b935ab95c02b82ccf38f63c89e39e99477a55") (:keywords "games") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/ducpel"))]) -(dts-mode . [(20161103 1223) nil "Major mode for Devicetree source code" single ((:commit . "9ee0854446dcc6c53d2b8d2941051768dba50344") (:keywords "languages") (:authors ("Ben Gamari" . "ben@smart-cactus.org")) (:maintainer "Ben Gamari" . "ben@smart-cactus.org"))]) -(dtrt-indent . [(20190128 2101) nil "Adapt to foreign indentation offsets" tar ((:commit . "9ab9cb9d7f391fb09f61c9289c51c36374ddbcbb") (:keywords "convenience" "files" "languages" "c") (:authors ("Julian Scheid" . "julians37@googlemail.com")) (:maintainer "Reuben Thomas" . "rrt@sc3d.org"))]) -(dtrace-script-mode . [(20150214 623) nil "DTrace code editing commands for Emacs" single ((:commit . "801af1ef16075d31a19830ebb8404bbf3a322f10"))]) -(dtk . [(20190601 426) ((emacs (24 4)) (cl-lib (0 6 1)) (dash (2 12 0)) (seq (1 9)) (s (1 9))) "access SWORD content via diatheke" single ((:commit . "dd1bda6b63a1679b60fee108cf7b7de7290be986") (:keywords "hypermedia") (:authors ("David Thompson")) (:maintainer "David Thompson") (:url . "https://github.com/dtk01/dtk.el"))]) -(dsvn . [(20190316 2201) nil "Subversion interface" single ((:commit . "c37d2412ba92aad647bcf5aeb151e620e8069f8d") (:keywords "docs") (:authors ("David KÃ¥gedal" . "davidk@lysator.liu.se") (" Mattias EngdegÃ¥rd" . "mattiase@acm.org")) (:maintainer "Mattias EngdegÃ¥rd" . "mattiase@acm.org"))]) -(drupal-spell . [(20130520 1655) nil "Aspell extra dictionary for Drupal" tar ((:commit . "cddf1dbc71fb4c5c4c50317db6830467fa97cff0") (:keywords "wp") (:authors ("Arne Jørgensen" . "arne@arnested.dk")) (:maintainer "Arne Jørgensen" . "arne@arnested.dk") (:url . "https://github.com/arnested/drupal-spell"))]) -(drupal-mode . [(20171120 2309) ((php-mode (1 5 0))) "Advanced minor mode for Drupal development" tar ((:commit . "47fda0a38a5b197f4606137d9c3b7d44aaeaa886") (:keywords "programming" "php" "drupal") (:authors ("Arne Jørgensen" . "arne@arnested.dk")) (:maintainer "Arne Jørgensen" . "arne@arnested.dk") (:url . "https://github.com/arnested/drupal-mode"))]) -(dropbox . [(20181208 2248) ((json (1 2)) (oauth (1 0 3))) "Emacs backend for dropbox" single ((:commit . "9fcb70c3e4e32b1612644d65e3b98f00255a40d4") (:keywords "dropbox") (:authors ("Pavel Panchekha" . "me@pavpanchekha.com")) (:maintainer "Pavel Panchekha" . "me@pavpanchekha.com"))]) -(drone . [(20161106 918) nil "Launch your drone test suite if drone.yml is present" single ((:commit . "1d4ee037ad3208847a4235426edf0c4a3e7b1899") (:keywords "drone" "tests" "ci") (:authors ("Oliver Marks" . "oly@digitaloctave.com")) (:maintainer "Oliver Marks" . "oly@digitaloctave.com") (:url . "https://github.com/olymk2/emacs-drone"))]) -(drill-instructor-AZIK-force . [(20151123 514) ((popup (0 5))) "Support AZIK input" tar ((:commit . "008cea202dc31d7d6fb1e7d8e6334d516403b7a5"))]) -(drawille . [(20160418 1838) ((cl-lib (0 5))) "Drawille implementation in elisp" tar ((:commit . "d914845725719d8293e2f0dea3c9c7e0a1e0e62a") (:keywords "graphics") (:authors ("Josuah Demangeon" . "josuah.demangeon@gmail.com")) (:maintainer "Josuah Demangeon" . "josuah.demangeon@gmail.com") (:url . "https://github.com/sshbio/elisp-drawille"))]) -(drag-stuff . [(20161108 749) nil "Drag stuff (lines, words, region, etc...) around" tar ((:commit . "6d06d846cd37c052d79acd0f372c13006aa7e7c8"))]) -(draft-mode . [(20140609 1456) nil "Rough drafting for Emacs." single ((:commit . "4779fb32daf53746459da2def7e08004492d4f18") (:keywords "draft" "drafting") (:authors ("Eeli Reilin" . "gaudecker@fea.st")) (:maintainer "Eeli Reilin" . "gaudecker@fea.st") (:url . "https://github.com/gaudecker/draft-mode"))]) -(dracula-theme . [(20190107 2016) ((emacs (24))) "Dracula Theme" single ((:commit . "66e429f4d576346661ae3a111bafaa06febc1d94") (:authors ("film42")) (:maintainer "film42") (:url . "https://github.com/dracula/emacs"))]) -(dr-racket-like-unicode . [(20161021 1211) ((emacs (24 1))) "DrRacket-style unicode input" single ((:commit . "4953f1c8a68472e157a0dcd0a7e35a4ec2577133") (:keywords "i18n" "tools") (:authors ("David Christiansen" . "david@davidchristiansen.dk")) (:maintainer "David Christiansen" . "david@davidchristiansen.dk"))]) -(dpkg-dev-el . [(20181022 8) ((debian-el (37))) "Emacs modes for debian packaging" tar ((:commit . "a80f8ac5d81720cce90cf3bc5fbb45d50b1953d7"))]) -(dpaste_de . [(20131015 1225) ((web (0 3 7))) "Emacs mode to paste to dpaste.de" single ((:commit . "f0c39e8864299f735642f7d9fa490689398ce39d") (:keywords "pastebin") (:authors ("Thejaswi Puthraya" . "thejaswi.puthraya@gmail.com")) (:maintainer "Thejaswi Puthraya" . "thejaswi.puthraya@gmail.com"))]) -(dpaste . [(20160303 2112) nil "Emacs integration for dpaste.com" single ((:commit . "5ebabb466a6ae70882549855b6b2194fc32189f8") (:keywords "paste" "pastie" "pastebin" "dpaste" "python") (:authors ("Greg Newman" . "greg@gregnewman.org") ("Guilherme Gondim" . "semente@taurinus.org")) (:maintainer "Greg Newman" . "greg@gregnewman.org"))]) -(downplay-mode . [(20151125 2009) nil "focus attention on a region of the buffer" single ((:commit . "4a2c3addc73c8ca3816345c3c11c08af265baedb") (:authors ("Toby Crawley" . "toby@tcrawley.org")) (:maintainer "Toby Crawley" . "toby@tcrawley.org") (:url . "https://github.com/tobias/downplay-mode/"))]) -(download-region . [(20180124 133) ((cl-lib (0 3))) "Simple in-buffer download manager" single ((:commit . "bbba3ecd80818d5d940d41fe89a6e2ec5dd2c53c") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(double-saber . [(20190325 1917) ((emacs (24 4))) "Narrow and delete in search buffers." single ((:commit . "22937754c6c4f3cfc432175de86f70e826ae7470") (:keywords "double-saber" "narrow" "delete" "sort" "tools" "convenience" "matching") (:authors ("Daniel Ting" . "deep.paren.12@gmail.com")) (:maintainer "Daniel Ting" . "deep.paren.12@gmail.com") (:url . "https://github.com/dp12/double-saber.git"))]) -(dotnet . [(20190415 1237) nil "Interact with dotnet CLI tool" single ((:commit . "932d776ed739d20d57dbd6ba49f61d1b450571fc") (:keywords ".net" "tools") (:authors ("Julien BLANCHARD" . "julien@sideburns.eu")) (:maintainer "Julien BLANCHARD" . "julien@sideburns.eu") (:url . "https://github.com/julienXX/dotnet.el"))]) -(dotenv-mode . [(20180207 1914) ((emacs (24 3))) "Major mode for .env files" single ((:commit . "f4c52bcd5313379b9f2460db7f7a33119dfa96ea") (:authors ("Preetpal S. Sohal")) (:maintainer "Preetpal S. Sohal") (:url . "https://github.com/preetpalS/emacs-dotenv-mode"))]) -(dot-mode . [(20180312 2300) ((emacs (24 3))) "minor mode to repeat typing or commands" single ((:commit . "6ca22b73bcdae2363ee9641b822a60685df16a3e") (:keywords "convenience") (:authors ("Robert Wyrick" . "rob@wyrick.org")) (:maintainer "Robert Wyrick" . "rob@wyrick.org") (:url . "https://github.com/wyrickre/dot-mode"))]) -(doom-themes . [(20190521 419) ((emacs (24 4)) (all-the-icons (1 0 0)) (cl-lib (0 5))) "an opinionated pack of modern color-themes" tar ((:commit . "55c49c8fd6152ebb748e75197c064b6ae7db1a57") (:keywords "dark" "light" "blue" "atom" "one" "theme" "neotree" "icons" "faces" "nova") (:authors ("Henrik Lissner <http://github/hlissner>")) (:maintainer "Henrik Lissner" . "henrik@lissner.net") (:url . "https://github.com/hlissner/emacs-doom-theme"))]) -(doom-modeline . [(20190614 827) ((emacs (25 1)) (all-the-icons (1 0 0)) (shrink-path (0 2 0)) (dash (2 11 0))) "A minimal and modern mode-line" tar ((:commit . "1a77ba069087c3e681973e5766aaec5c2eb2740c") (:keywords "faces" "mode-line") (:authors ("Vincent Zhang" . "seagle0128@gmail.com")) (:maintainer "Vincent Zhang" . "seagle0128@gmail.com") (:url . "https://github.com/seagle0128/doom-modeline"))]) -(doom . [(20180301 2308) ((cl-lib (0 5))) "DOM implementation and manipulation library" single ((:commit . "e59040aefc92dd9b3134eb623624307fb9e4327b") (:keywords "xml" "dom") (:authors ("Alex Schroeder" . "alex@gnu.org") ("Henrik.Motakef" . "elisp@henrik-motakef.de") ("Katherine Whitlock" . "toroidal-code@gmail.com") ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Alex Schroeder") (:url . "http://www.github.com/kensanata/doom.el/"))]) -(doneburn-theme . [(20181110 1857) nil "A light theme based on Bozhidar Batsov's Zenburn" single ((:commit . "6421d9e28d57cb73212c61ab7304abfe6f950ec9") (:keywords "faces" "themes") (:authors ("Manuel Uberti" . "manuel.uberti@inventati.org")) (:maintainer "Manuel Uberti" . "manuel.uberti@inventati.org") (:url . "http://github.com/manuel-uberti/doneburn-emacs"))]) -(dollaro . [(20151123 1302) ((s (1 6 0))) "simple text templates" single ((:commit . "500127f0172ac7a1eec627e026b59136580a74ac") (:keywords "tools" "convenience") (:authors ("Alessandro Piras" . "laynor@gmail.com")) (:maintainer "Alessandro Piras" . "laynor@gmail.com"))]) -(dokuwiki-mode . [(20170223 1301) nil "Major mode for DokuWiki document" single ((:commit . "e4e116f6fcc373e3f5937c1a7daa5c2c9c6d3fa1") (:keywords "hypermedia" "text" "dokuwiki") (:authors ("Tsunenobu Kai" . "kai2nenobu@gmail.com")) (:maintainer "Tsunenobu Kai" . "kai2nenobu@gmail.com") (:url . "https://github.com/kai2nenobu/emacs-dokuwiki-mode"))]) -(dokuwiki . [(20180102 59) ((emacs (24 3)) (xml-rpc (1 6 8))) "Edit Remote DokuWiki Pages Using XML-RPC" single ((:commit . "594c4d4904dcc2796bbbd2c0845d9e7c09ccf6f7") (:keywords "convenience") (:authors ("Juan Karlo Licudine" . "accidentalrebel@gmail.com")) (:maintainer "Juan Karlo Licudine" . "accidentalrebel@gmail.com") (:url . "http://www.github.com/accidentalrebel/emacs-dokuwiki"))]) -(dockerfile-mode . [(20190505 1807) ((emacs (24)) (s (1 12))) "Major mode for editing Docker's Dockerfiles" single ((:commit . "ed73e82dcc636dad00d1a8c3b32a49136d25ee60") (:url . "https://github.com/spotify/dockerfile-mode"))]) -(docker-tramp . [(20170207 325) ((emacs (24)) (cl-lib (0 5))) "TRAMP integration for docker containers" tar ((:commit . "8e2b671eff7a81af43b76d9dfcf94ddaa8333a23") (:keywords "docker" "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/docker-tramp.el"))]) -(docker-compose-mode . [(20180324 1752) ((emacs (24 3)) (dash (2 12 0)) (yaml-mode (0 0 12))) "Major mode for editing docker-compose files" single ((:commit . "c9f131d2c90d652435d407fd36c40feebfed1dad") (:keywords "convenience") (:authors ("Ricardo Martins")) (:maintainer "Ricardo Martins") (:url . "https://github.com/meqif/docker-compose-mode"))]) -(docker-cli . [(20190524 1624) nil "Running various commands in docker containers" single ((:commit . "c4b02894466d8642ad3d49df4c4a80e023a672aa") (:keywords "processes") (:authors ("BoÅ¡ko IvaniÅ¡ević" . "bosko.ivanisevic@gmail.com")) (:maintainer "BoÅ¡ko IvaniÅ¡ević" . "bosko.ivanisevic@gmail.com") (:url . "https://github.com/bosko/docker-cli"))]) -(docker-api . [(20160525 720) ((dash (2 12 1)) (request (0 2 0)) (s (1 11 0))) "Emacs interface to the Docker API" tar ((:commit . "206144346b7fa4165223349cfeb64a75d47ddd1b") (:authors ("Philippe Vaucher" . "philippe.vaucher@gmail.com")) (:maintainer "Philippe Vaucher" . "philippe.vaucher@gmail.com") (:url . "https://github.com/Silex/docker-api.el"))]) -(docker . [(20190428 951) ((emacs (24 5)) (dash (2 14 1)) (docker-tramp (0 1)) (magit-popup (2 12 4)) (s (1 12 0)) (tablist (0 70)) (json-mode (1 7 0))) "Emacs interface to Docker" tar ((:commit . "dbd89c1cd05f9ec6f1921f8bc85d9411a80412c2") (:keywords "filename" "convenience") (:authors ("Philippe Vaucher" . "philippe.vaucher@gmail.com")) (:maintainer "Philippe Vaucher" . "philippe.vaucher@gmail.com") (:url . "https://github.com/Silex/docker.el"))]) -(docean . [(20180605 1744) ((emacs (24)) (cl-lib (0 5)) (request (0 2 0))) "Interact with DigitalOcean from Emacs." single ((:commit . "bbe2298fd21f7876fc2d5c52a69b931ff59df979") (:keywords "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/docean.el"))]) -(docbook-snippets . [(20150714 1625) ((yasnippet (0 8 0))) "Yasnippets for DocBook" tar ((:commit . "b06297fdec039a541aaa6312cb328a11062cfab4") (:keywords "snippets" "docbook") (:authors ("Jaromir Hradilek" . "jhradilek@gmail.com")) (:maintainer "Jaromir Hradilek" . "jhradilek@gmail.com") (:url . "https://github.com/jhradilek/emacs-docbook-snippets"))]) -(dna-mode . [(20170804 814) nil "a major mode for editing dna sequences" tar ((:commit . "471d374de22c33eaddd8e41dd8ae29753fab2f6a") (:keywords "dna" "emacs" "editing") (:authors ("Harley Gorrell" . "harley@panix.com")) (:maintainer "Harley Gorrell" . "harley@panix.com") (:url . "http://www.mahalito.net/~harley/elisp/dna-mode.el"))]) -(dmenu . [(20190330 310) ((cl-lib (0 5))) "simulate the dmenu command line program" single ((:commit . "162f9f513d5dbd5f61f8d7adb48546f646d7d3fe") (:keywords "convenience" "usability") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com"))]) -(dkmisc . [(20131110 1115) ((emacs (24 1))) "Miscellaneous functions required by dk* packages." tar ((:commit . "fe3d49c6f8322b6f89466361acd97585bdfe0608"))]) -(dklrt . [(20131110 1341) ((dkmisc (0 50)) (ledger-mode (20130908 1357)) (emacs (24 1))) "Ledger Recurring Transactions." tar ((:commit . "5d6c99f8018335256ab934b4c1049708ae2d48ba"))]) -(dkl . [(20161005 7) nil "Display keyboard layout." tar ((:commit . "6b4584f86037bda3383960c678d51f340229fb91") (:keywords "input" "keyboard" "layout") (:authors ("Alexis" . "flexibeast@gmail.com")) (:maintainer "Alexis" . "flexibeast@gmail.com") (:url . "https://github.com/flexibeast/dkl"))]) -(dkdo . [(20131110 1119) ((dkmisc (0 50)) (emacs (24 1))) "Do List major mode based on org-mode." tar ((:commit . "fd6bb105e8331fafb6385c5238c988c4c5bbe2da"))]) -(djinni-mode . [(20190303 139) ((emacs (24 4))) "Major-mode for editing Djinni files." single ((:commit . "6f84bc60d078725cc8b922a259ec5f4c7de83681") (:keywords "languages") (:authors ("Daniel MartÃn" . "mardani29@yahoo.es")) (:maintainer "Daniel MartÃn" . "mardani29@yahoo.es") (:url . "https://github.com/danielmartin/djinni-mode"))]) -(djangonaut . [(20180727 1544) ((emacs (25 2)) (magit-popup (2 6 0)) (pythonic (0 1 0)) (f (0 20 0)) (s (1 12 0))) "Minor mode to interact with Django projects" single ((:commit . "3e154709def09020a9b9eb29d330fb1f833a8250") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/djangonaut"))]) -(django-theme . [(20131022 902) nil "Custom face theme for Emacs" single ((:commit . "86c8142b3eb1addd94a43aa6f1d98dab06401af0") (:authors ("Andrzej Sliwa")) (:maintainer "Andrzej Sliwa") (:url . "http://github/anrzejsliwa/django-theme"))]) -(django-snippets . [(20131229 1611) ((yasnippet (0 8 0))) "Yasnippets for django" tar ((:commit . "a71b8dd984e7f724b8321246e5c353a4ae5c986e") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/myfreeweb/django-mode"))]) -(django-mode . [(20170522 714) ((projectile (0)) (s (0)) (helm-make (0))) "Major mode for Django web framework." tar ((:commit . "a71b8dd984e7f724b8321246e5c353a4ae5c986e") (:keywords "languages") (:authors ("Greg V" . "floatboth@me.com")) (:maintainer "Greg V" . "floatboth@me.com"))]) -(django-manage . [(20160819 212) ((hydra (0 13 2))) "Django minor mode for commanding manage.py" single ((:commit . "876fb2cb627d465adfdc905841279784bcdd7ee8") (:keywords "languages") (:authors ("Daniel Gopar" . "gopardaniel@yahoo.com")) (:maintainer "Daniel Gopar" . "gopardaniel@yahoo.com"))]) -(django-commands . [(20190320 722) ((emacs (25 1))) "Run django commands" single ((:commit . "1b19436a1160d1552207d4356d5e78793dabe100") (:keywords "tools") (:authors ("Andrii Kolomoiets" . "andreyk.mad@gmail.com")) (:maintainer "Andrii Kolomoiets" . "andreyk.mad@gmail.com") (:url . "https://github.com/muffinmad/emacs-django-commands"))]) -(dizzee . [(20171201 916) nil "A more pleasant way to manage your project's subprocesses in Emacs." tar ((:commit . "e3cf1c2ea5d0fc00747524b6f3c5b905d0a8c8e1"))]) -(dix-evil . [(20170105 1423) ((dix (0 3 0)) (evil (1 0 7))) "optional evil-integration with dix.el" single ((:commit . "b973de948deb7aa2995b1895e1e62bbe3129b5a5") (:keywords "languages") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org") (:url . "http://wiki.apertium.org/wiki/Emacs"))]) -(dix . [(20181210 1200) ((cl-lib (0 5)) (emacs (24 4))) "Apertium XML editing minor mode" tar ((:commit . "b973de948deb7aa2995b1895e1e62bbe3129b5a5") (:keywords "languages") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org") (:url . "http://wiki.apertium.org/wiki/Emacs"))]) -(ditz-mode . [(20150729 940) nil "Emacs interface to Ditz issue tracking system" single ((:commit . "beac4c1f3b7ef82014bb77ad8752dace482897da") (:keywords "tools") (:authors ("Glenn Hutchings" . "zondo42@gmail.com")) (:maintainer "Glenn Hutchings" . "zondo42@gmail.com"))]) -(distinguished-theme . [(20151216 2015) nil "A dark and elegant theme for emacs." single ((:commit . "9b1d25ac59465a5016d187ea84b7614c95a29b3b") (:authors ("Kim Silkebækken" . "kim.silkebaekken@gmail.com")) (:maintainer "Kim Silkebækken" . "kim.silkebaekken@gmail.com") (:url . "https://github.com/Lokaltog/distinguished-theme"))]) -(distel-completion-lib . [(20180827 1344) nil "Completion library for Erlang/Distel" single ((:commit . "acc4c0a5521904203d797fe96b08e5fae4233c7e") (:keywords "erlang" "distel" "completion") (:authors ("Sebastian Weddmark Olsson")) (:maintainer "Sebastian Weddmark Olsson") (:url . "github.com/sebastiw/distel-completion"))]) -(dist-file-mode . [(20180830 418) ((emacs (24)) (cl-lib (0 5)) (s (1 9 0))) "Dispatch major mode for *.dist files" single ((:commit . "e1ce8f592bc5d4d86d2f09e334728ac0d524c761") (:keywords "files" "convenience") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/emacs-php/dist-file-mode.el"))]) -(display-theme . [(20140115 1556) ((emacs (24))) "display current theme(s) at mode-line" single ((:commit . "b180b3be7a74ae4799a14e7e4bc2fe10e3ff7a15") (:keywords "tools") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "https://github.com/kawabata/emacs-display-theme/"))]) -(dispass . [(20140202 1531) ((dash (1 0 0))) "Emacs wrapper for DisPass" single ((:commit . "b6e8f89040ebaaf0e7609b04bc27a8979f0ae861") (:keywords "processes") (:authors ("Tom Willemsen" . "tom@ryuslash.org")) (:maintainer "Tom Willemsen" . "tom@ryuslash.org") (:url . "http://projects.ryuslash.org/dispass.el/"))]) -(disk . [(20171116 731) nil "simplified find-file, revert-file, save-buffer interface" single ((:commit . "283e54e3be7d08f959076240b2ab324e25632137") (:keywords "convenience") (:authors ("Alex Schroeder" . "alex@gnu.org") ("Peter Barabas" . "peter.barabas+disk@gmail.com")) (:maintainer "Alex Schroeder" . "alex@gnu.org") (:url . "http://www.emacswiki.org/emacs/DiskKey"))]) -(discover-my-major . [(20180606 511) ((makey (0 2))) "Discover key bindings and their meaning for the current Emacs major mode" single ((:commit . "c592e5e67454f0d1b68669ac0c270073164b16b3") (:keywords "discover" "help" "major-mode" "keys") (:authors ("steckerhalter")) (:maintainer "steckerhalter") (:url . "https://framagit.org/steckerhalter/discover-my-major"))]) -(discover-js2-refactor . [(20140129 1552) ((js2-refactor (20131221 501)) (discover (20140103 1339))) "Adds discover context menu for js2-refactor" single ((:commit . "3812abf61f39f3e73a9f3daefa6fed4f21a429ba") (:keywords "js2-refactor" "discover") (:authors ("Nicolas Petton" . "petton.nicolas@gmail.com")) (:maintainer "Nicolas Petton" . "petton.nicolas@gmail.com"))]) -(discover-clj-refactor . [(20150328 1459) ((clj-refactor (0 14 0)) (discover (0 3))) "Adds discover context menu for clj-refactor" single ((:commit . "3fbd5c1162739e606d7cf5d4f5d7426547d99647") (:keywords "clj-refactor" "discover" "convenience") (:authors ("Marian Schubert" . "marian.schubert@gmail.com")) (:maintainer "Marian Schubert" . "marian.schubert@gmail.com"))]) -(discover . [(20140103 2139) ((makey (0 3))) "discover more of Emacs" single ((:commit . "7b0044bbb3b3bd5d811fdfb0f5ac6ec8de1239df") (:authors ("Mickey Petersen" . "mickey@fyeah.org")) (:maintainer "Mickey Petersen" . "mickey@fyeah.org"))]) -(discourse . [(20160911 819) ((cl-lib (0 5)) (request (0 2)) (s (1 11 0))) "discourse api" single ((:commit . "a86c7e608851e186fe12e892a573994f08c8e65e") (:keywords "lisp" "discourse") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/discourse-api"))]) -(disaster . [(20171016 2152) nil "Disassemble C/C++ code under cursor in Emacs" single ((:commit . "10a785facc60d89d78e0d5177985ab1af1741bb4") (:keywords "tools") (:authors ("Justine Tunney" . "jtunney@gmail.com")) (:maintainer "Justine Tunney" . "jtunney@gmail.com") (:url . "https://github.com/jart/disaster"))]) -(disable-mouse . [(20181225 2206) nil "Disable mouse commands globally" single ((:commit . "74f520e8e8064d5e3f4cb33149f840fe59839c38") (:keywords "mouse") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/disable-mouse"))]) -(dirtree-prosjekt . [(20140129 904) ((prosjekt (0 3)) (dirtree (0 1))) "dirtree integration for prosjekt." single ((:commit . "a864a8be5842223043702395f311e3350c28e9db") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/prosjekt"))]) -(dirtree . [(20140129 832) ((tree-mode (1 1 1 1)) (windata (0))) "Directory tree views" single ((:commit . "ba55f1e716e386fdd37cb8e7f48616e405dc7251") (:authors ("Ye Wenbin" . "wenbinye@gmail.com")) (:maintainer "Ye Wenbin" . "wenbinye@gmail.com"))]) -(direx-grep . [(20140515 1506) ((direx (0 1 -3))) "Grep node of direx.el using incremental search like anything.el/helm.el" single ((:commit . "1109a512a80b2673a70b18b8568514049017faad") (:keywords "convenience") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/direx-grep"))]) -(direx . [(20170422 1327) nil "Simple Directory Explorer" tar ((:commit . "a79bfdb5980cf6ed7bfb3b41ddc471a7b6c0ede4") (:keywords "convenience") (:authors ("Tomohiro Matsuyama" . "m2ym.pub@gmail.com")) (:maintainer "Tomohiro Matsuyama" . "m2ym.pub@gmail.com"))]) -(direnv . [(20190607 920) ((emacs (24 4)) (dash (2 12 0))) "direnv support" single ((:commit . "5633ba200b6fb8c810ace6ef5f29595c87205c55") (:keywords "direnv" "environment" "processes" "unix" "tools") (:authors ("wouter bolsterlee" . "wouter@bolsterl.ee")) (:maintainer "wouter bolsterlee" . "wouter@bolsterl.ee") (:url . "https://github.com/wbolster/emacs-direnv"))]) -(diredful . [(20160529 2017) nil "colorful file names in dired buffers" single ((:commit . "c08e163d9d6c62f7b07e94d54c96c2e364e67e0e") (:keywords "dired" "colors" "extension" "widget") (:authors ("Thamer Mahmoud" . "thamer.mahmoud@gmail.com")) (:maintainer "Thamer Mahmoud" . "thamer.mahmoud@gmail.com") (:url . "https://github.com/thamer/diredful"))]) -(diredfl . [(20180211 214) ((emacs (24))) "Extra font lock rules for a more colourful dired" single ((:commit . "9b2a89951cee8bdf5c0cb67f9c3ad6ac73abf9cb") (:keywords "faces") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/diredfl"))]) -(dired-toggle-sudo . [(20151109 1006) nil "Browse directory with sudo privileges." single ((:commit . "02449dbda4e168f99fe5352c9628df5d39e11483") (:keywords "emacs" "dired") (:authors ("Sebastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>")) (:maintainer "Sebastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>"))]) -(dired-toggle . [(20190616 303) nil "Show dired as sidebar and will not create new buffers when changing dir" single ((:commit . "b694ba91a45d0762bd032ff1bb4109e4c62ca686") (:keywords "dired" "sidebar") (:authors ("Xu FaSheng <fasheng[AT]fasheng.info>")) (:maintainer "Xu FaSheng") (:url . "https://github.com/fasheng/dired-toggle"))]) -(dired-subtree . [(20180922 1615) ((dash (2 5 0)) (dired-hacks-utils (0 0 1))) "Insert subdirectories in a tree-like fashion" single ((:commit . "20631398b1927e2da36ac2dd818001db544e9f30") (:keywords "files") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(dired-single . [(20180824 312) nil "Reuse the current dired buffer to visit a directory" single ((:commit . "b0ccca83df0542c5525c047ae283c0eadf500f5c") (:keywords "dired" "reuse" "buffer") (:authors ("Joe Casadonte" . "emacs@northbound-train.com")) (:maintainer "crocket" . "crockabiscuit@gmail.com"))]) -(dired-sidebar . [(20190516 159) ((emacs (25 1)) (dired-subtree (0 0 1))) "Tree browser leveraging dired" single ((:commit . "2c742326a6b7a76e36666586809aaf5efa150b3f") (:keywords "dired" "files" "tools") (:authors ("James Nguyen" . "james@jojojames.com")) (:maintainer "James Nguyen" . "james@jojojames.com") (:url . "https://github.com/jojojames/dired-sidebar"))]) -(dired-rsync . [(20190508 1605) ((s (1 12 0)) (dash (2 0 0)) (emacs (24))) "Allow rsync from dired buffers" single ((:commit . "d7eb558c4efa73d9e1f50709dbd2374041c0f1a9") (:authors ("Alex Bennée" . "alex@bennee.com")) (:maintainer "Alex Bennée" . "alex@bennee.com") (:url . "https://github.com/stsquad/dired-rsync"))]) -(dired-rmjunk . [(20190526 2029) nil "A home directory cleanup utility for Dired." single ((:commit . "6a9fa6a35498e53e8c57282e3b08dedc896d880d") (:keywords "files" "matching") (:authors ("Jakob L. Kreuze" . "zerodaysfordays@sdf.lonestar.org")) (:maintainer "Jakob L. Kreuze" . "zerodaysfordays@sdf.lonestar.org") (:url . "https://git.sr.ht/~jakob/dired-rmjunk"))]) -(dired-rifle . [(20181012 2131) nil "Call rifle(1) from dired" single ((:commit . "a4f7b1e798397688b9c00d3507fcd395ece17a40") (:keywords "files" "convenience") (:authors ("Wojciech Siewierski <wojciech dot siewierski at onet dot pl>")) (:maintainer "Wojciech Siewierski <wojciech dot siewierski at onet dot pl>") (:url . "https://github.com/vifon/dired-rifle.el"))]) -(dired-recent . [(20180921 2238) ((emacs (24))) "Dired visited paths history" single ((:commit . "7c5a818ab88fdfa779674931cc6d9466308fcd86") (:keywords "files") (:authors ("Wojciech Siewierski <wojciech dot siewierski at onet dot pl>")) (:maintainer "Wojciech Siewierski <wojciech dot siewierski at onet dot pl>") (:url . "https://github.com/vifon/dired-recent.el"))]) -(dired-ranger . [(20180401 2206) ((dash (2 7 0)) (dired-hacks-utils (0 0 1))) "Implementation of useful ranger features for dired" single ((:commit . "20631398b1927e2da36ac2dd818001db544e9f30") (:keywords "files") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(dired-rainbow . [(20190522 950) ((dash (2 5 0)) (dired-hacks-utils (0 0 1))) "Extended file highlighting according to its type" single ((:commit . "20631398b1927e2da36ac2dd818001db544e9f30") (:keywords "files") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com"))]) -(dired-quick-sort . [(20161208 2112) ((hydra (0 13 0))) "Persistent quick sorting of dired buffers in various ways." single ((:commit . "1845f978d313f750a5b70b832457ed803c4ffbdb") (:keywords "convenience" "files") (:authors ("Hong Xu" . "hong@topbug.net")) (:maintainer "Hong Xu" . "hong@topbug.net") (:url . "https://gitlab.com/xuhdev/dired-quick-sort#dired-quick-sort"))]) -(dired-open . [(20180922 1113) ((dash (2 5 0)) (dired-hacks-utils (0 0 1))) "Open files from dired using using custom actions" single ((:commit . "20631398b1927e2da36ac2dd818001db544e9f30") (:keywords "files") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(dired-narrow . [(20181114 1723) ((dash (2 7 0)) (dired-hacks-utils (0 0 1))) "Live-narrowing of search results for dired" single ((:commit . "20631398b1927e2da36ac2dd818001db544e9f30") (:keywords "files") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(dired-launch . [(20180607 1841) nil "Use dired as a launcher" single ((:commit . "ad45940f76ef2f6c3bb55e998829b311de191dae") (:keywords "dired" "launch") (:authors ("David Thompson")) (:maintainer "David Thompson") (:url . "https://github.com/thomp/dired-launch"))]) -(dired-k . [(20170313 1503) ((emacs (24 3))) "highlight dired buffer by file size, modified time, git status" tar ((:commit . "c50e8f73358060a448bff66db2d330b52bbeffc1") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-dired-k"))]) -(dired-imenu . [(20140109 1610) nil "imenu binding for dired mode" single ((:commit . "610e21fe0988c85931d34894d3eee2442c79ab0a") (:keywords "dired" "imenu") (:authors ("Damien Cassou" . "damien.cassou@gmail.com")) (:maintainer "Damien Cassou" . "damien.cassou@gmail.com") (:url . "https://github.com/DamienCassou/dired-imenu"))]) -(dired-icon . [(20170223 526) ((emacs (24 3))) "A minor mode to display a list of associated icons in dired buffers." tar ((:commit . "f60e10757a5011235b519231ad35974ff25963ed") (:keywords "dired" "files") (:authors ("Hong Xu" . "hong@topbug.net")) (:maintainer "Hong Xu" . "hong@topbug.net") (:url . "https://gitlab.com/xuhdev/dired-icon"))]) -(dired-hide-dotfiles . [(20170314 2039) ((emacs (25 1))) "Hide dotfiles in dired" single ((:commit . "b715f643ec805b3b8aca334595e6589320f04a49") (:keywords "files") (:authors ("Mattias Bengtsson" . "mattias.jc.bengtsson@gmail.com")) (:maintainer "Mattias Bengtsson" . "mattias.jc.bengtsson@gmail.com") (:url . "https://github.com/mattiasb/dired-hide-dotfiles"))]) -(dired-hacks-utils . [(20190522 950) ((dash (2 5 0))) "Utilities and helpers for dired-hacks collection" single ((:commit . "20631398b1927e2da36ac2dd818001db544e9f30") (:keywords "files") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(dired-filter . [(20190211 2020) ((dash (2 10 0)) (dired-hacks-utils (0 0 1)) (f (0 17 0)) (cl-lib (0 3))) "Ibuffer-like filtering for dired" single ((:commit . "20631398b1927e2da36ac2dd818001db544e9f30") (:keywords "files") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(dired-filetype-face . [(20180907 1339) nil "Set different faces for different filetypes in dired" single ((:commit . "7ade7f7e8c2d7518c65f3f0343a10c272da0f47e") (:keywords "dired" "filetype" "face") (:authors ("纪秀峰 <jixiuf at gmail dot com>")) (:maintainer "纪秀峰 <jixiuf at gmail dot com>") (:url . "https://github.com/jixiuf/dired-filetype-face"))]) -(dired-fdclone . [(20180403 608) nil "dired functions and settings to mimic FDclone" single ((:commit . "903d7a736d240ef7352989a4e5d0ff9129c2ee3c") (:keywords "unix" "directories" "dired") (:authors ("Akinori MUSHA" . "knu@iDaemons.org")) (:maintainer "Akinori MUSHA" . "knu@iDaemons.org") (:url . "https://github.com/knu/dired-fdclone.el"))]) -(dired-explorer . [(20180607 221) ((cl-lib (0 5))) "minor-mode provides Explorer like select file at dired." single ((:commit . "3ade0a31b5340271d05e9bf443f2504960f6c6dd") (:keywords "dired" "explorer") (:maintainer "jidaikobo-shibata"))]) -(dired-efap . [(20140122 1656) nil "Edit Filename At Point in a dired buffer" single ((:commit . "624757b2e54d9a13e2183118d6c113e37684b90c") (:keywords "dired" "environment" "files" "renaming") (:authors ("Juan-Leon Lahoz" . "juanleon1@gmail.com")) (:maintainer "Juan-Leon Lahoz" . "juanleon1@gmail.com") (:url . "https://github.com/juan-leon/dired-efap"))]) -(dired-dups . [(20130527 2125) nil "Find duplicate files and display them in a dired buffer" single ((:commit . "694ad128c822c59348ced16c4a0c1356d43da47a") (:keywords "unix") (:authors ("Joe Bloggs" . "vapniks@yahoo.com")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "https://github.com/vapniks/dired-dups"))]) -(dired-collapse . [(20190515 1210) ((dash (2 10 0)) (f (0 19 0)) (dired-hacks-utils (0 0 1))) "Collapse unique nested paths in dired listing" single ((:commit . "20631398b1927e2da36ac2dd818001db544e9f30") (:keywords "files") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(dired-avfs . [(20161012 1104) ((dash (2 5 0)) (dired-hacks-utils (0 0 1))) "AVFS support for dired" single ((:commit . "20631398b1927e2da36ac2dd818001db544e9f30") (:keywords "files") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com"))]) -(dired-atool . [(20181228 1422) ((emacs (24))) "Pack/unpack files with atool on dired." single ((:commit . "09dbb769fe02f546da470369a12468ab4a0cceb2") (:keywords "files") (:authors ("Hiroki YAMAKAWA" . "s06139@gmail.com")) (:maintainer "Hiroki YAMAKAWA" . "s06139@gmail.com") (:url . "https://github.com/HKey/dired-atool"))]) -(dircmp . [(20141204 1756) nil "Compare and sync directories." tar ((:commit . "558ee0b601c2de9d247612085aafe2926f56a09f") (:keywords "unix" "tools") (:authors ("Matt McClure -- http://matthewlmcclure.com")) (:maintainer "Matt McClure -- http://matthewlmcclure.com") (:url . "https://github.com/matthewlmcclure/dircmp-mode"))]) -(dionysos . [(20160810 1056) ((libmpdee (2 1 0)) (alert (1 2)) (s (1 11 0)) (dash (2 12 1)) (pkg-info (0 5 0)) (cl-lib (0 5))) "Dionysos, a music player for Emacs" tar ((:commit . "0aac21caadabc5a7f09e18a9dcb02f3dec26588b") (:keywords "music") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/dionysos"))]) -(dimmer . [(20180218 411) ((emacs (25))) "visually highlight the selected buffer" single ((:commit . "d033fdda154e688e45cca35902dbff9915351b98") (:keywords "faces" "editing") (:authors ("Neil Okamoto")) (:maintainer "Neil Okamoto") (:url . "https://github.com/gonewest818/dimmer.el"))]) -(diminish . [(20170419 1736) nil "Diminished modes are minor modes with no modeline display" single ((:commit . "565a983a39d2e2cffab5df13b34f3b6116723208") (:keywords "extensions" "diminish" "minor" "codeprose") (:authors ("Will Mengarini" . "seldon@eskimo.com")) (:maintainer "Martin Yrjölä" . "martin.yrjola@gmail.com") (:url . "https://github.com/myrjola/diminish.el"))]) -(dim-autoload . [(20180318 2027) nil "dim or hide autoload cookie lines" single ((:commit . "2d879932741ac8e3afd4dd03071b61170eae353d") (:keywords "convenience") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/dim-autoload"))]) -(dim . [(20160818 949) ((emacs (24 4))) "Change mode-line names of major/minor modes" single ((:commit . "79b81724b951fedffdd3113f473c18990af837a9") (:keywords "convenience") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/dim.el"))]) -(digitalocean-helm . [(20180610 746) ((emacs (24 3)) (helm (2 5)) (digitalocean (0 1))) "Create and manipulate digitalocean droplets" single ((:commit . "b125c9882eded7d73ec109d152b26625f333440b") (:keywords "processes" "tools") (:authors ("Oliver Marks" . "oly@digitaloctave.com")) (:maintainer "Oliver Marks" . "oly@digitaloctave.com") (:url . "https://gitlab.com/olymk2/digitalocean-api"))]) -(digitalocean . [(20190607 726) ((request (2 5)) (emacs (24 4))) "Create and manipulate digitalocean droplets" single ((:commit . "6c32d3593286e2a62d9afab0057c829407b0d1e8") (:keywords "processes" "tools") (:authors ("Oliver Marks" . "oly@digitaloctave.com")) (:maintainer "Oliver Marks" . "oly@digitaloctave.com") (:url . "https://github.com/olymk2/emacs-digitalocean"))]) -(digit-groups . [(20160817 226) ((dash (2 11 0))) "Highlight place-value positions in numbers" single ((:commit . "ee1d6de372600cb9e1aa481b7ed0eb7ca37c5246") (:authors ("Michael D. Adams <http://michaeldadams.org>")) (:maintainer "Michael D. Adams <http://michaeldadams.org>") (:url . "http://bitbucket.com/adamsmd/digit-groups"))]) -(digistar-mode . [(20160218 1955) nil "major mode for Digistar scripts" single ((:commit . "15288b1e1a04b79b5ab7097fdd26d48b2ff41076") (:keywords "languages") (:authors ("John Foerch" . "jjfoerch@earthlink.net")) (:maintainer "John Foerch" . "jjfoerch@earthlink.net"))]) -(diffview . [(20150929 511) nil "View diffs in side-by-side format" single ((:commit . "031b70913e755c5e55222680f80185032a7d1728") (:keywords "convenience" "diff") (:authors ("Mitchel Humpherys" . "mitch.special@gmail.com")) (:maintainer "Mitchel Humpherys" . "mitch.special@gmail.com") (:url . "https://github.com/mgalgs/diffview-mode"))]) -(diffscuss-mode . [(20141014 2357) nil "Major mode for diffscuss files." single ((:commit . "e0aacd8b3d9f886f27222c1397f0655e849e0af7") (:keywords "tools") (:authors ("Edmund Jorgensen" . "edmund@hut8labs.com")) (:maintainer "Edmund Jorgensen" . "edmund@hut8labs.com"))]) -(difflib . [(20171227 1518) ((emacs (24 4)) (cl-generic (0 3)) (ht (2 2)) (s (1 12 0))) "Helpers for computing deltas between sequences." single ((:commit . "b08850251812d71e62fd6956081299590acdf37b") (:keywords "matching" "tools" "string") (:authors ("Diego A. Mundo" . "diegoamundo@gmail.com")) (:maintainer "Diego A. Mundo" . "diegoamundo@gmail.com") (:url . "http://github.com/dieggsy/difflib.el"))]) -(diff-hl . [(20190223 2333) ((cl-lib (0 2)) (emacs (24 3))) "Highlight uncommitted changes using VC" tar ((:commit . "84a5fe1900af2e5cc522f02749804f0d9f094bbf") (:keywords "vc" "diff") (:authors ("Dmitry Gutov" . "dgutov@yandex.ru")) (:maintainer "Dmitry Gutov" . "dgutov@yandex.ru") (:url . "https://github.com/dgutov/diff-hl"))]) -(dictionary . [(20190403 1918) ((connection (1 10)) (link (1 10))) "Client for rfc2229 dictionary servers" single ((:commit . "6edc1d0a4156d33c3da0c1649c308b809fda46e1") (:keywords "interface" "dictionary") (:authors ("Torsten Hilbrich" . "torsten.hilbrich@gmx.net")) (:maintainer "Torsten Hilbrich" . "torsten.hilbrich@gmx.net"))]) -(dictcc . [(20190118 2002) ((emacs (24 4)) (cl-lib (0 5)) (ivy (0 10 0))) "Look up translations on dict.cc" single ((:commit . "3244897515db954eafeed9648e7a0011b89c3ce2") (:keywords "convenience") (:authors ("Marten Lienen" . "marten.lienen@gmail.com")) (:maintainer "Marten Lienen" . "marten.lienen@gmail.com"))]) -(dic-lookup-w3m . [(20180526 1621) ((w3m (20120723 324)) (stem (20120826))) "look up dictionaries on the Internet" tar ((:commit . "3254ab10cbf0078c7162557dd1f68dac28459cf9") (:keywords "emacs-w3m" "w3m" "dictionary") (:authors ("mcprvmec")) (:maintainer "mcprvmec"))]) -(diary-manager . [(20181215 326) ((emacs (25))) "Simple personal diary." single ((:commit . "919f724bb58e36b8626dd8d7c8475f71c0c54443") (:keywords "extensions") (:authors ("Radon Rosborough" . "radon.neon@gmail.com")) (:maintainer "Radon Rosborough" . "radon.neon@gmail.com") (:url . "https://github.com/raxod502/diary-manager"))]) -(dianyou . [(20190604 1215) ((emacs (24 4))) "Search and analyze mails in Gnus" single ((:commit . "46d3328998ed20b37c4b52722d52d4d579e4f5d3") (:keywords "mail") (:authors ("Chen Bin <chenbin DOT sh AT gmail DOT com>")) (:maintainer "Chen Bin <chenbin DOT sh AT gmail DOT com>") (:url . "http://github.com/redguardtoo/dianyou"))]) -(dhall-mode . [(20190526 2113) ((emacs (24 4)) (reformatter (0 3))) "a major mode for dhall configuration language" single ((:commit . "1b71e8e7123647761d8f35916c06b7280b2929ea") (:keywords "languages") (:authors ("Sibi Prabakaran" . "sibi@psibi.in")) (:maintainer "Sibi Prabakaran" . "sibi@psibi.in") (:url . "https://github.com/psibi/dhall-mode"))]) -(dfmt . [(20170728 1023) nil "Emacs Interface to D indenting/formatting tool dfmt." single ((:commit . "21b9094e907b7ac53f5ecb4ff4539613a9d12434") (:keywords "tools" "convenience" "languages" "dlang") (:authors ("Per Nordlöw")) (:maintainer "Kirill Babikhin <qsimpleq>") (:url . "https://github.com/qsimpleq/elisp-dfmt"))]) -(devdocs . [(20170731 850) nil "Launch DevDocs search" single ((:commit . "a2d51e824f0cc48a9dd611cc740bc8b86143e611") (:authors ("Chunyang Xu" . "xuchunyang.me@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang.me@gmail.com") (:url . "https://github.com/xuchunyang/DevDocs.el"))]) -(detour . [(20181122 2138) ((emacs (24 4))) "Take a quick detour and return" single ((:commit . "1ff23c236e18971ed1077840daf047cde79a45ee") (:keywords "convenience" "abbrev") (:authors ("Stefan Kamphausen <www.skamphausen.de>")) (:maintainer "Stefan Kamphausen <www.skamphausen.de>") (:url . "https://github.com/ska2342/detour/"))]) -(desktop-registry . [(20140119 2143) nil "Keep a central registry of desktop files" single ((:commit . "244c2e7f9f0a1050aa8a47ad0b38f4e4584682dd") (:keywords "convenience") (:authors ("Tom Willemse" . "tom@ryuslash.org")) (:maintainer "Tom Willemse" . "tom@ryuslash.org") (:url . "http://projects.ryuslash.org/desktop-registry/"))]) -(desktop-environment . [(20190616 1010) ((emacs (25 1))) "Helps you control your GNU/Linux computer" single ((:commit . "a87e697a033216702beb663d79a2e49bcb3e3aba") (:authors ("Damien Cassou <damien@cassou.me>, Nicolas Petton" . "nicolas@petton.fr")) (:maintainer "Damien Cassou <damien@cassou.me>, Nicolas Petton" . "nicolas@petton.fr") (:url . "https://gitlab.petton.fr/DamienCassou/desktop-environment"))]) -(desktop+ . [(20170107 2132) ((emacs (24 4)) (dash (2 11 0)) (f (0 17 2))) "Handle special buffers when saving & restoring sessions" single ((:commit . "88055cee526a000056201898499cebbd35e3ea76") (:authors ("François Févotte" . "fevotte@gmail.com")) (:maintainer "François Févotte" . "fevotte@gmail.com") (:url . "https://github.com/ffevotte/desktop-plus"))]) -(describe-number . [(20151101 55) ((yabin (1 1))) "Describe arbitrarily large number at point." single ((:commit . "40618345a37831804b29589849a785ef5aa5ac24") (:keywords "describe" "value" "help") (:authors ("Morten Slot Kristensen <msk AT nullpointer DOT dk>")) (:maintainer "Morten Slot Kristensen <msk AT nullpointer DOT dk>") (:url . "https://github.com/netromdk/describe-number"))]) -(demo-it . [(20180404 332) nil "Create demonstrations" tar ((:commit . "2760d2eed88ef854ce489a5f77627aa641af12bf") (:keywords "demonstration" "presentation" "test") (:authors ("Howard Abrams" . "howard.abrams@gmail.com")) (:maintainer "Howard Abrams" . "howard.abrams@gmail.com"))]) -(demangle-mode . [(20190528 306) ((cl-lib (0 1)) (emacs (24))) "Automatically demangle C++ symbols" single ((:commit . "06903d731dfde110e10b979dcc7624ef6dbb5ac8") (:keywords "c" "tools") (:authors ("Ben Liblit" . "liblit@acm.org")) (:maintainer "Ben Liblit" . "liblit@acm.org") (:url . "https://github.com/liblit/demangle-mode"))]) -(delim-kill . [(20100517 620) nil "Kill text between delimiters." single ((:commit . "1dbe47344f2d2cbc8c54beedf0cf0bf10fd203c1") (:keywords "convenience" "languages") (:authors ("Thomas Kappler" . "tkappler@gmail.com")) (:maintainer "Thomas Kappler" . "tkappler@gmail.com") (:url . "http://github.com/thomas11/delim-kill/tree/master"))]) -(deft . [(20181226 1534) nil "quickly browse, filter, and edit plain text notes" single ((:commit . "f54e8a65a7e75a029657364055420374df45656d") (:keywords "plain text" "notes" "simplenote" "notational velocity") (:authors ("Jason R. Blevins" . "jrblevin@xbeta.org")) (:maintainer "Jason R. Blevins" . "jrblevin@xbeta.org") (:url . "https://jblevins.org/projects/deft/"))]) -(defrepeater . [(20180830 410) ((emacs (25 2)) (s (1 12 0))) "Easily make commands repeatable" single ((:commit . "9c027a2561fe141dcfb79f75fcaee36cd0386ec1") (:keywords "convenience") (:authors ("Adam Porter" . "adam@alphapapa.net")) (:maintainer "Adam Porter" . "adam@alphapapa.net") (:url . "http://github.com/alphapapa/defrepeater.el"))]) -(defproject . [(20151201 2219) ((emacs (24))) "Manager dir-locals and project specific variables" single ((:commit . "674d48a5e34cb4bba76faa38ee901322ec649086") (:keywords "convenience") (:authors (nil . "<kotfic@gmail.com>")) (:maintainer nil . "<kotfic@gmail.com>") (:url . "https://github.com/kotfic/defproject"))]) -(define-word . [(20190506 1525) ((emacs (24 3))) "display the definition of word at point." single ((:commit . "11bfee628aee082a9a3a2fd5f083cbdb05d5d00a") (:keywords "dictionary" "convenience") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/define-word"))]) -(deferred . [(20170901 1330) ((emacs (24 4))) "Simple asynchronous functions for emacs lisp" single ((:commit . "2239671d94b38d92e9b28d4e12fd79814cfb9c16") (:keywords "deferred" "async") (:authors ("SAKURAI Masashi <m.sakurai at kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai at kiwanami.net>") (:url . "https://github.com/kiwanami/emacs-deferred"))]) -(default-text-scale . [(20190615 247) ((emacs (24))) "Easily adjust the font size in all frames" single ((:commit . "dc7e2004be736544149643de2673a5506c83dbaf") (:keywords "frames" "faces") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/default-text-scale"))]) -(dedukti-mode . [(20171103 1212) nil "Major mode for Dedukti files" single ((:commit . "d7c3505a1046187de3c3aeb144455078d514594e") (:keywords "languages" "dedukti") (:authors ("Raphaël Cauderlier")) (:maintainer "Raphaël Cauderlier") (:url . "https://github.com/rafoo/dedukti-mode"))]) -(dedicated . [(20090428 1931) nil "A very simple minor mode for dedicated buffers" single ((:commit . "8275fb672f9cc4ba6682ebda0ef91db827e32992") (:keywords "dedicated" "buffer") (:authors ("Eric Crampton" . "eric@atdesk.com")) (:maintainer "Eric Crampton" . "eric@atdesk.com"))]) -(decl . [(20171212 1458) ((dash (2 5 0)) (emacs (24 3)) (cl-lib (0 3))) "Library for organizing code declaratively" single ((:commit . "ff7f8a4f1225cbdf141c86172104e67a4cf58c86") (:authors ("Preetpal S. Sohal")) (:maintainer "Preetpal S. Sohal") (:url . "https://github.com/preetpalS/decl.el"))]) -(decide . [(20190201 2137) nil "rolling dice and other random things" single ((:commit . "4bfcc826dd5b1c30caec455d8baa4f363159eac6") (:authors ("Pelle Nilsson" . "perni@lysator.liu.se")) (:maintainer "Pelle Nilsson" . "perni@lysator.liu.se"))]) -(debug-print . [(20140126 19) ((emacs (24))) "A nice printf debugging environment by the way Gauche do" single ((:commit . "d817fd9ea2d3f8d2c1ace4d8af155684f3a99dc5") (:keywords "extensions" "lisp" "tools" "maint") (:authors ("Ken Okada" . "keno.ss57@gmail.com")) (:maintainer "Ken Okada" . "keno.ss57@gmail.com") (:url . "https://github.com/kenoss/debug-print"))]) -(debpaste . [(20160113 2347) ((xml-rpc (1 6 7))) "Interface for getting/posting/deleting pastes from paste.debian.net" single ((:commit . "6f2a400665062468ebd03a2ce1de2a73d9084958") (:keywords "paste") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "http://github.com/alezost/debpaste.el"))]) -(debian-el . [(20181020 1513) nil "Emacs helpers specific to Debian users" tar ((:commit . "a499822afc2154ca83edf6a605ed22c5a932fa12"))]) -(deadgrep . [(20190516 2159) ((emacs (25 1)) (dash (2 12 0)) (s (1 11 0)) (spinner (1 7 3))) "fast, friendly searching with ripgrep" single ((:commit . "caeb37b8d6ab83f0eba353d6bbb29678190d4419") (:keywords "tools") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk") (:url . "https://github.com/Wilfred/deadgrep"))]) -(ddskk . [(20190423 1234) ((ccc (1 43)) (cdb (20141201 754))) "Simple Kana to Kanji conversion program." tar ((:commit . "ad61579af269291b4446f4bab0a58522cc454f1c"))]) -(db-pg . [(20130131 1902) ((pg (0 12)) (db (0 0 6))) "A PostgreSQL adapter for emacs-db" single ((:commit . "7d5ab86b74b05fe003b3b434d4835f37f3f3eded") (:keywords "data" "comm" "database" "postgresql") (:authors ("Nic Ferrier" . "nic@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nic@ferrier.me.uk"))]) -(db . [(20140421 2111) ((kv (0 0 11))) "A database for EmacsLisp" single ((:commit . "b3a423fb8e72f9013009cbe033d654df2ce31438") (:keywords "data" "lisp") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk"))]) -(dayone . [(20160105 1240) ((uuid (0 0 3)) (mustache (0 22)) (ht (1 5))) "Utility script for Day One" tar ((:commit . "ab628274f0806451f23bce16f62a6a11cbf91a2b") (:keywords "day one" "tools" "convenience") (:authors ("mori-dev" . "mori.dev.asdf@gmail.com")) (:maintainer "mori-dev" . "mori.dev.asdf@gmail.com") (:url . "https://github.com/mori-dev/emacs-dayone"))]) -(datomic-snippets . [(20180817 1045) ((s (1 4 0)) (dash (1 2 0)) (yasnippet (0 6 1))) "Yasnippets for Datomic" tar ((:commit . "4a14228840d5252e13d2bf6209670f26345bbb84"))]) -(datetime-format . [(20160612 1715) nil "Datetime functions" single ((:commit . "e6427538b547cbe02e1bd6ed4b765c73620bdae8") (:keywords "datetime" "calendar") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/emacs-datetime"))]) -(datetime . [(20190404 1837) ((emacs (24 1)) (extmap (1 0))) "Parsing, formatting and matching timestamps" tar ((:commit . "8c6d6fc991766e6bf9cefc4ea4b04eeae8116a84") (:keywords "lisp" "i18n") (:authors ("Paul Pogonyshev" . "pogonyshev@gmail.com")) (:maintainer "Paul Pogonyshev" . "pogonyshev@gmail.com") (:url . "https://github.com/doublep/datetime"))]) -(date-field . [(20141129 105) ((dash (2 9 0)) (log4e (0 2 0)) (yaxception (0 3 2))) "Date widget" single ((:commit . "11c9170d1f7b343233f7716d4c0a62be024c1654") (:keywords "widgets") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/emacs-date-field"))]) -(date-at-point . [(20150308 1243) nil "Add `date' to `thing-at-point' function" single ((:commit . "38df823d05df08ec0748a4185113fae5f99090e9") (:keywords "convenience") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/date-at-point.el"))]) -(dashboard-project-status . [(20190202 1354) ((emacs (24)) (git (0 1 1)) (dashboard (1 2 5))) "Display a git project status in a dashboard widget." single ((:commit . "7675c138e9df8fe2c626e7ba9bbb8b6717671a41") (:authors ("Jason Duncan" . "jasond496@msn.com")) (:maintainer "Jason Duncan" . "jasond496@msn.com") (:url . "https://github.com/functionreturnfunction/dashboard-project-status"))]) -(dashboard-hackernews . [(20190109 205) ((emacs (24)) (dashboard (1 2 5)) (request (0 3 0))) "Display Hacker News on dashboard" single ((:commit . "b71814716d8f78181b9d1990f06072460de0797e") (:authors ("Hayato KAJIYAMA" . "kaji1216@gmail.com")) (:maintainer "Hayato KAJIYAMA" . "kaji1216@gmail.com") (:url . "https://github.com/hyakt/emacs-dashboard-hackernews"))]) -(dashboard . [(20190607 1451) ((emacs (25 3)) (page-break-lines (0 11))) "A startup screen extracted from Spacemacs" tar ((:commit . "4e8b196130853cf57e86f7cd8fcd381f0e6a78bc") (:keywords "startup" "screen" "tools" "dashboard") (:authors ("Rakan Al-Hneiti")) (:maintainer "Rakan Al-Hneiti") (:url . "https://github.com/emacs-dashboard/emacs-dashboard"))]) -(dash-functional . [(20180107 1618) ((dash (2 0 0)) (emacs (24))) "Collection of useful combinators for Emacs Lisp" single ((:commit . "77f3bf40c9c85386a50f2dab3dc950513f6f88bd") (:keywords "lisp" "functions" "combinators"))]) -(dash-docs . [(20190516 1702) ((emacs (24 4)) (cl-lib (0 5)) (async (1 9 3))) "Offline documentation browser using Dash docsets." single ((:commit . "111fd9b97001f1ad887b45e5308a14ddd68ce70a") (:keywords "docs") (:authors ("Raimon Grau" . "raimonster@gmail.com") ("Toni Reina " . "areina0@gmail.com") ("Bryan Gilbert" . "bryan@bryan.sh")) (:maintainer "Raimon Grau" . "raimonster@gmail.com") (:url . "http://github.com/areina/helm-dash"))]) -(dash-at-point . [(20180710 1356) nil "Search the word at point with Dash" single ((:commit . "4d795a23a8428c421d5107f1b005c9d8e0d1816c") (:authors ("Shinji Tanaka" . "shinji.tanaka@gmail.com")) (:maintainer "Shinji Tanaka" . "shinji.tanaka@gmail.com") (:url . "https://github.com/stanaka/dash-at-point"))]) -(dash . [(20190424 1804) nil "A modern list library for Emacs" single ((:commit . "77f3bf40c9c85386a50f2dab3dc950513f6f88bd") (:keywords "lists") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(dart-mode . [(20190309 114) ((emacs (24 5)) (cl-lib (0 5)) (dash (2 10 0)) (flycheck (0 23)) (s (1 10))) "Major mode for editing Dart files" single ((:commit . "d5776f1e9bfeb45eb30723eba3030691a8491545") (:keywords "languages") (:authors ("Natalie Weizenbaum") ("Brady Trainor" . "mail@bradyt.com")) (:maintainer "Brady Trainor" . "mail@bradyt.com") (:url . "https://github.com/bradyt/dart-mode"))]) -(darktooth-theme . [(20190412 142) ((autothemer (0 2))) "From the darkness... it watches" single ((:commit . "5cc7fbfb08d2f1a33b85eac92b6450407b915119") (:url . "http://github.com/emacsfodder/emacs-theme-darktooth"))]) -(darkokai-theme . [(20190603 1919) nil "A darker variant on Monokai." single ((:commit . "a53815fbfb06604d7f51519c62cc11e507204a70") (:url . "http://github.com/sjrmanning/darkokai"))]) -(darkmine-theme . [(20160406 624) nil "Yet another emacs dark color theme." single ((:commit . "7f7e82ca03bcad52911fa41fb3e204e32d6ee63e") (:authors ("Pierre Lecocq" . "pierre.lecocq@gmail.com")) (:maintainer "Pierre Lecocq" . "pierre.lecocq@gmail.com") (:url . "https://github.com/pierre-lecocq/darkmine-theme"))]) -(darkburn-theme . [(20170423 1652) nil "A not-so-low contrast color theme for Emacs." single ((:commit . "0af794ff7fac19778ac8a7efb92455c6f6c2158f") (:authors ("Jonas Gorauskas" . "jgorauskas@gmail.com")) (:maintainer "Jonas Gorauskas" . "jgorauskas@gmail.com") (:url . "http://github.com/gorauskas/darkburn-theme"))]) -(dark-souls . [(20140314 1128) nil "Prepare to die" single ((:commit . "94122b1215423e58dcf18584a2bd022029d54d4b") (:keywords "games") (:authors ("Tom Jakubowski" . "tom@crystae.net")) (:maintainer "Tom Jakubowski" . "tom@crystae.net") (:url . "http://github.com/tomjakubowski/dark-souls.el"))]) -(dark-mint-theme . [(20160302 642) nil "dark & minty fresh theme" single ((:commit . "95c30a26de31549cd341184ba9ab2be8fdc67eba"))]) -(dark-krystal-theme . [(20170808 1300) ((emacs (24 0))) "an Emacs 24 theme based on Dark Krystal (tmTheme)" single ((:commit . "79084b99665dc9ffb0ec62cc092349a5ecebebbc") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) -(darcula-theme . [(20171227 1845) nil "Inspired by IntelliJ's Darcula theme" single ((:commit . "d9b82b58ded9014985be6658f4ab17e26ed9e93e") (:keywords "faces") (:authors ("Sam Halliday" . "Sam.Halliday@gmail.com")) (:maintainer "Sam Halliday" . "Sam.Halliday@gmail.com") (:url . "https://gitlab.com/fommil/emacs-darcula-theme"))]) -(darcsum . [(20190316 2215) nil "a pcl-cvs like interface for managing darcs patches" single ((:commit . "6a8b690539d133c5e3d17cb23fe4365fbb6fb493") (:keywords "completion" "convenience" "tools" "vc") (:authors ("John Wiegley" . "johnw@gnu.org")) (:maintainer "John Wiegley" . "johnw@gnu.org"))]) -(dap-mode . [(20190615 1053) ((emacs (25 1)) (dash (2 14 1)) (lsp-mode (6 0)) (dash-functional (1 2 0)) (tree-mode (1 1 1 1)) (bui (1 1 0)) (f (0 20 0)) (s (1 12 0))) "Debug Adapter Protocol mode" tar ((:commit . "09441e9dd6e127a5143969b996102540ae4f1f0c") (:keywords "languages" "debug") (:authors ("Ivan Yonchovski" . "yyoncho@gmail.com")) (:maintainer "Ivan Yonchovski" . "yyoncho@gmail.com") (:url . "https://github.com/yyoncho/dap-mode"))]) -(dante . [(20190503 645) ((dash (2 12 0)) (emacs (25 1)) (f (0 19 0)) (flycheck (0 30)) (company (0 9)) (haskell-mode (13 14)) (s (1 11 0)) (lcr (1 0))) "Development mode for Haskell" single ((:commit . "59effaf5ec8cf10c0c25694d468647a27bb6e15b") (:keywords "haskell" "tools") (:authors ("Jean-Philippe Bernardy" . "jeanphilippe.bernardy@gmail.com")) (:maintainer "Jean-Philippe Bernardy" . "jeanphilippe.bernardy@gmail.com") (:url . "https://github.com/jyp/dante"))]) -(danneskjold-theme . [(20190508 2206) nil "Beautiful high-contrast Emacs theme." tar ((:commit . "b48bc0ef6fff2d41a083006b0db040eb2b2e7a8b"))]) -(dakrone-theme . [(20170801 1933) nil "dakrone's custom dark theme" single ((:commit . "232ad1be5f3572dcbdf528f1655109aa355a6937") (:keywords "color" "themes") (:authors ("Lee Hinman <lee _AT_ writequit.org>")) (:maintainer "Lee Hinman <lee _AT_ writequit.org>") (:url . "https://github.com/dakrone/dakrone-theme"))]) -(dakrone-light-theme . [(20170808 2140) nil "dakrone's custom light theme" single ((:commit . "06f198dc8b4ca7421990b30a23d89c8e0b8c5de4") (:keywords "color" "themes" "faces") (:authors ("Lee Hinman <lee _AT_ writequit.org>")) (:maintainer "Lee Hinman <lee _AT_ writequit.org>") (:url . "https://github.com/dakrone/dakrone-light-theme"))]) -(daemons . [(20190202 1528) ((emacs (25 1))) "UI for managing init system daemons (services)" tar ((:commit . "fd7925b0c113e5bad2e4692430ce049405794910") (:keywords "unix" "convenience") (:authors ("Chris Bowdon")) (:maintainer "Chris Bowdon") (:url . "https://github.com/cbowdon/daemons.el"))]) -(dad-joke . [(20170928 658) ((emacs (24))) "Get/display dad jokes" single ((:commit . "bee47e7b746b403228fa7d7361cb095de19ac9ba") (:keywords "games") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/dad-joke.el"))]) -(dactyl-mode . [(20140906 1725) nil "Major mode for editing Pentadactyl config files" single ((:commit . "cc55fe6b987271d9647492b8df4c812d884f661f") (:keywords "languages" "vim") (:url . "https://github.com/luxbock/dactyl-mode"))]) -(d-mode . [(20181205 607) ((emacs (24 3))) "D Programming Language major mode for (X)Emacs" single ((:commit . "b5d936dfd4c1d0b68a0d911aadd4ba25df7af0e4") (:keywords "d" "programming" "language" "emacs" "cc-mode") (:authors ("William Baxter")) (:maintainer "Russel Winder" . "russel@winder.org.uk"))]) -(czech-holidays . [(20160113 1752) nil "Adds a list of Czech public holidays to Emacs calendar" single ((:commit . "d136fa09a152b3cd80db6d55c7b4ddfe07b90fbf") (:keywords "calendar") (:authors ("David Chkhikvadze" . "david.chk@outlook.com")) (:maintainer "David Chkhikvadze" . "david.chk@outlook.com"))]) -(cython-mode . [(20190111 2150) nil "Major mode for editing Cython files" single ((:commit . "8ac1a6a55fc44ff858cc367af556250a91f71d16"))]) -(cypher-mode . [(20151110 1142) nil "major mode for editing cypher scripts" single ((:commit . "ce8543d7877c736c574a17b49874c9dcdc7a06d6") (:keywords "cypher" "graph") (:authors ("François-Xavier Bois <fxbois AT Google Mail Service>")) (:maintainer "François-Xavier Bois") (:url . "http://github.com/fxbois/cypher-mode"))]) -(cyphejor . [(20190101 704) ((emacs (24 4))) "Shorten major mode names using user-defined rules" single ((:commit . "2c87bce79f15e32f914d1e3e2cd020f58899f6fb") (:keywords "mode-line" "major-mode") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/cyphejor"))]) -(cycle-themes . [(20150403 309) ((cl-lib (0 5))) "A global minor mode to make switching themes easier" single ((:commit . "6e125d11fdbc6b78fc9f219eb2609a5e29815898") (:keywords "themes" "utility" "global minor mode") (:url . "http://github.com/toroidal-code/cycle-themes.el"))]) -(cycle-resize . [(20160521 1557) nil "Cycle resize the current window horizontally or vertically" single ((:commit . "7d255d6fe85f12c967a0f7fcfcf18633be194c88") (:authors ("Pierre Lecocq")) (:maintainer "Pierre Lecocq") (:url . "https://github.com/pierre-lecocq/cycle-resize"))]) -(cycbuf . [(20131203 2037) nil "Cycle buffers, inspired by swbuff.el, swbuff-x.el, and bs.el" single ((:commit . "1079b41c3eb27d65b66d4399959bb6253f84858e") (:keywords "files" "convenience" "buffer switching") (:authors ("Martin Pohlack martinp (at) gmx.de")) (:maintainer "Martin Pohlack martinp (at) gmx.de") (:url . "https://github.com/martinp26/cycbuf"))]) -(cyberpunk-theme . [(20190110 0) nil "Cyberpunk Color Theme" single ((:commit . "eb7b21b5655af9a0fa8c745ee1f16f8e073364e6") (:keywords "color" "theme" "cyberpunk") (:authors ("Nicholas M. Van Horn" . "nvanhorn@protonmail.com")) (:maintainer "Nicholas M. Van Horn" . "nvanhorn@protonmail.com") (:url . "https://github.com/n3mo/cyberpunk-theme.el"))]) -(cyberpunk-2019-theme . [(20190228 1453) ((emacs (24 1))) "A retina-scorching cyberpunk theme" single ((:commit . "b04ee1faf9dedd94442def608e81b07a021b76ea") (:keywords "cyberpunk" "theme" "themes") (:authors ("Alex Lynham" . "alex@lynh.am")) (:maintainer "Alex Lynham" . "alex@lynh.am") (:url . "https://github.com/the-frey/cyberpunk-2019"))]) -(cwl-mode . [(20171205 945) ((yaml-mode (0 0 13)) (emacs (24 4))) "A major mode for editing CWL" single ((:commit . "bdeb9c0734126f940db80bfb8b1dc735dab671c7") (:keywords "languages" "cwl" "common workflow language") (:authors ("Tomoya Tanjo" . "ttanjo@gmail.com")) (:maintainer "Tomoya Tanjo" . "ttanjo@gmail.com") (:url . "https://github.com/tom-tan/cwl-mode"))]) -(cursor-test . [(20131207 1732) ((emacs (24))) "testing library for cursor position in emacs." single ((:commit . "e09956e048b88fd2ee8dd90b5678baed8b04d31b") (:authors ("ainame")) (:maintainer "ainame") (:url . "https://github.com/ainame/cursor-test.el"))]) -(cuda-mode . [(20151214 321) nil "NVIDIA CUDA Major Mode" single ((:commit . "9ae9eacfdba3559b5456342d0d03296290df8ff5") (:keywords "c" "languages") (:authors ("Jack Morrison" . "jackmorrison1@gmail.com")) (:maintainer "Jack Morrison" . "jackmorrison1@gmail.com"))]) -(cucumber-goto-step . [(20131210 519) ((pcre2el (1 5))) "Jump to cucumber step definition" single ((:commit . "f2713ffb26ebe1b757d1f2ea80e900b55e5895aa") (:authors ("Glen Stampoultzis" . "gstamp@gmail.com")) (:maintainer "Glen Stampoultzis" . "gstamp@gmail.com") (:url . "http://orthogonal.me"))]) -(cubicle-mode . [(20171009 1957) nil "Major mode for the Cubicle model checker" single ((:commit . "c2fba597da83b9ddc1195f1c8710d5330db24735") (:authors ("Alain Mebsout")) (:maintainer "Alain Mebsout"))]) -(cubicaltt . [(20171108 1402) ((emacs (24 1)) (cl-lib (0 5))) "Mode for cubical type theory" single ((:commit . "a5c6f94bfc0da84e214641e0b87aa9649ea114ea") (:keywords "languages") (:url . "https://github.com/mortberg/cubicaltt"))]) -(ctxmenu . [(20140303 2142) ((popup (20140205 103)) (log4e (0 2 0)) (yaxception (0 1))) "Provide a context menu like right-click." tar ((:commit . "5c2376859562b98c07c985d2b483658e4c0e888e") (:keywords "popup") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/emacs-ctxmenu"))]) -(ctune . [(20190528 25) ((emacs (26 1))) "Tune out CC Mode Noise Macros" tar ((:commit . "5633024d14957cd6eff03574b2044bb8e9b55710") (:keywords "c" "convenience") (:authors ("Mauro Aranda" . "maurooaranda@gmail.com")) (:maintainer "Mauro Aranda" . "maurooaranda@gmail.com") (:url . "https://github.com/maurooaranda/ctune"))]) -(ctl-mode . [(20151202 1006) nil "Major mode for editing GrADS script files" single ((:commit . "1a13051db21b999c7682a015b33a03096ff9d891") (:keywords "grads" "script" "major-mode") (:authors ("Joe Wielgosz" . "joew@cola.iges.org")) (:maintainer "Joe Wielgosz" . "joew@cola.iges.org"))]) -(ctags-update . [(20190609 613) nil "(auto) update TAGS in parent directory using exuberant-ctags" single ((:commit . "67faf248b92388442958a069263c62a345425a1b") (:keywords "exuberant-ctags" "etags") (:authors (nil . "Joseph(纪秀峰) jixiuf@gmail.com")) (:maintainer nil . "Joseph(纪秀峰) jixiuf@gmail.com") (:url . "https://github.com/jixiuf/ctags-update"))]) -(ctable . [(20171006 11) nil "Table component for Emacs Lisp" single ((:commit . "b8830d1ca95abb100a81bc32011bd17d5ecba000") (:keywords "table") (:authors ("SAKURAI Masashi <m.sakurai at kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai at kiwanami.net>") (:url . "https://github.com/kiwanami/emacs-ctable"))]) -(csv . [(20161113 1510) nil "Functions for reading and parsing CSV files." single ((:commit . "aa1dfa1263565d5fac3879c21d8ddf5f8915e411") (:keywords "extensions" "data" "csv") (:authors ("Ulf Jasper" . "ulf.jasper@web.de")) (:maintainer "Ulf Jasper" . "ulf.jasper@web.de"))]) -(cssh . [(20150810 1709) nil "clusterssh implementation for emacs" single ((:commit . "2fe2754235225a59b63f08b130cfd4352e2e1c3f") (:keywords "clusterssh" "ssh" "cssh") (:authors ("Dimitri Fontaine" . "dim@tapoueh.org")) (:maintainer "Dimitri Fontaine" . "dim@tapoueh.org") (:url . "http://tapoueh.org/emacs/cssh.html"))]) -(css-eldoc . [(20150125 323) nil "an eldoc-mode plugin for CSS source code" tar ((:commit . "c558ac4c470742c98a37290e6b409db28183df30") (:authors ("Zeno Zeng" . "zenoes@qq.com")) (:maintainer "Zeno Zeng" . "zenoes@qq.com"))]) -(css-comb . [(20160416 559) nil "Sort CSS properties in a particular order using CSS Comb" single ((:commit . "6fa45e5af8a8bd3af6c1154cde3540e32c4206ee") (:authors ("Charanjit Singh" . "ckhabra@gmail.com")) (:maintainer "Charanjit Singh" . "ckhabra@gmail.com") (:url . "https://github.com/channikhabra/css-comb.el"))]) -(css-autoprefixer . [(20180311 1600) ((emacs (24))) "Adds autoprefix to CSS" single ((:commit . "386a5defc8543a3b87820f1761c075c7d1d93b38") (:keywords "convenience" "usability" "css") (:authors (nil . "Kyung Mo Kweon<kkweon@gmail.com> and contributors")) (:maintainer nil . "Kyung Mo Kweon<kkweon@gmail.com> and contributors") (:url . "https://github.com/kkweon/emacs-css-autoprefixer"))]) -(csproj-mode . [(20190514 1858) ((emacs (24))) "Work with .NET project files (csproj, vbproj)" tar ((:commit . "889334f8cd08dc79d133149b4504e0e001f5a769") (:keywords "languages" "tools") (:authors ("Omair Majid" . "omair.majid@gmail.com")) (:maintainer "Omair Majid" . "omair.majid@gmail.com") (:url . "https://github.com/omajid/csproj-mode"))]) -(csound-mode . [(20190321 1559) ((emacs (25)) (shut-up (0 3 2)) (multi (2 0 1))) "A major mode for interacting and coding Csound" tar ((:commit . "f4bc9236bbc5a696f7ff32d9402749536a332546") (:authors ("Hlöðver Sigurðsson" . "hlolli@gmail.com")) (:maintainer "Hlöðver Sigurðsson" . "hlolli@gmail.com") (:url . "https://github.com/hlolli/csound-mode"))]) -(csharp-mode . [(20181011 718) nil "C# mode derived mode" single ((:commit . "239527c1f27cf5246505f1faf23269487fdbfdd2") (:keywords "c#" "languages" "oop" "mode") (:authors ("Dylan R. E. Moonfire (original)")) (:maintainer "Jostein Kjønigsen" . "jostein@gmail.com") (:url . "https://github.com/josteink/csharp-mode"))]) -(csgo-conf-mode . [(20161209 1619) nil "CS:GO Configuration files syntax highlighting" single ((:commit . "57e7224f87a3ccc76b5564cc95fa0ff43bb6807c") (:keywords "languages") (:authors ("Guillermo Robles" . "guillerobles1995@gmail.com")) (:maintainer "Guillermo Robles" . "guillerobles1995@gmail.com") (:url . "https://github.com/wynro/emacs-csgo-conf-mode"))]) -(crystal-playground . [(20180830 501) ((emacs (25)) (crystal-mode (0 1 2))) "Local crystal playground for short code snippets." single ((:commit . "fb3691b1281207b459c5be50015a626f356dc40d") (:keywords "tools" "crystal") (:authors ("Jason Howell")) (:maintainer "Jason Howell") (:url . "https://github.com/jasonrobot/crystal-playground"))]) -(crystal-mode . [(20190604 1254) ((emacs (24 4))) "Major mode for editing Crystal files" single ((:commit . "34124f546ff5c1136aed95bf0059015f9f6a1d60") (:keywords "languages" "crystal") (:url . "https://github.com/crystal-lang-tools/emacs-crystal-mode"))]) -(cryptsy-public-api . [(20141008 1228) ((json (1 2))) "Library for working with the Cryptsy public API" single ((:commit . "795c204452f880c0087663e7c35faf26ea34af4d") (:keywords "cryptsy" "bitcoin" "litecoin" "dogecoin") (:authors ("Phil Newton" . "phil@sodaware.net")) (:maintainer "Phil Newton" . "phil@sodaware.net"))]) -(cryptol-mode . [(20190531 2051) nil "Cryptol major mode for Emacs" single ((:commit . "81ebbde83f7cb75b2dfaefc09de6a1703068c769") (:keywords "cryptol" "cryptography") (:authors (nil . "Austin Seipp <aseipp [@at] pobox [dot] com>")) (:maintainer nil . "Austin Seipp <aseipp [@at] pobox [dot] com>") (:url . "http://github.com/thoughtpolice/cryptol-mode"))]) -(crux . [(20181108 827) ((seq (1 11))) "A Collection of Ridiculously Useful eXtensions" single ((:commit . "308f17d914e2cd79cbc809de66d02b03ceb82859") (:keywords "convenience") (:authors ("Bozhidar Batsov" . "bozhidar@batsov.com")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.com") (:url . "https://github.com/bbatsov/crux"))]) -(crontab-mode . [(20190304 1423) ((emacs (24))) "Major mode for crontab(5)" single ((:commit . "090ed61e919df6391df45a7645a0d8d5b0dae1cb") (:keywords "languages") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/crontab-mode"))]) -(crm-custom . [(20160117 6) ((cl-lib (0 5))) "Alternate `completing-read-multiple' that uses `completing-read'" single ((:commit . "f1aaccf64306a5f99d9bf7ba815d7ea41c15518d") (:keywords "completion" "minibuffer" "multiple elements") (:authors ("Ryan C. Thompson" . "rct@thompsonclan.org")) (:maintainer "Ryan C. Thompson" . "rct@thompsonclan.org") (:url . "https://github.com/DarwinAwardWinner/crm-custom"))]) -(cricbuzz . [(20180804 2254) ((enlive (0 0 1)) (f (0 19 0)) (dash (2 13 0)) (s (1 11 0))) "Cricket scores from cricbuzz in emacs" single ((:commit . "0b95d45991bbcd2fa58d96ce921f6a57ba42c153") (:keywords "cricket" "score") (:authors ("Abhinav Tushar" . "abhinav.tushar.vs@gmail.com")) (:maintainer "Abhinav Tushar" . "abhinav.tushar.vs@gmail.com") (:url . "https://github.com/lepisma/cricbuzz.el"))]) -(creole-mode . [(20130722 50) nil "a markup mode for creole" single ((:commit . "b5e79b2ec5f19fb5aacf689b5febc3e0b61515c4") (:keywords "hypermedia" "wp") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk") (:url . "https://github.com/nicferrier/creole-mode"))]) -(creole . [(20140924 1500) ((noflet (0 0 3)) (kv (0 0 17))) "A parser for the Creole Wiki language" single ((:commit . "7d5cffe93857f6c75ca09ac79c0e47b8d4410e53") (:keywords "lisp" "creole" "wiki") (:authors ("Nic Ferrier" . "nferrier@ferrier.me.uk")) (:maintainer "Nic Ferrier" . "nferrier@ferrier.me.uk"))]) -(creds . [(20140510 1706) ((s (1 9 0)) (dash (2 5 0))) "A parser credentials file library (not limited to credentials entries)" tar ((:commit . "b059397a7d59481f05fbb1bb9c8d3c2c69226482"))]) -(creamsody-theme . [(20170222 1058) ((autothemer (0 2))) "Straight from the soda fountain." single ((:commit . "32fa3f4e461da92700523b1b20e7b28974c19a26") (:url . "http://github.com/emacsfodder/emacs-theme-creamsody"))]) -(crappy-jsp-mode . [(20140311 931) nil "A pretty crappy major-mode for jsp." single ((:commit . "6c45ab92b452411cc0fab9bcee2f456276b4fc40") (:keywords "jsp" "major" "mode"))]) -(cquery . [(20190118 542) ((emacs (25 1)) (lsp-mode (3 4)) (dash (0 13))) "cquery client for lsp-mode" tar ((:commit . "555e50984ebda177421fdcdc8c76cb29235d9694") (:keywords "languages" "lsp" "c++") (:authors ("Tobias Pisani")) (:maintainer "Tobias Pisani") (:url . "https://github.com/jacobdufault/cquery"))]) -(cql-mode . [(20190315 225) ((emacs (24))) "Major mode for editting CQLs" single ((:commit . "d400c046850d3cf404778b2c47d6be4ff84ca04b") (:keywords "cql" "cassandra") (:authors ("Yuki Inoue <inouetakahiroki at gmail.com>")) (:maintainer "Yuki Inoue <inouetakahiroki at gmail.com>") (:url . "https://github.com/Yuki-Inoue/cql-mode"))]) -(cpputils-cmake . [(20181006 328) nil "Easy realtime C++ syntax check and IntelliSense with CMake." single ((:commit . "64b2b05eff5398b4cd522e66efaf14553ab18ff4") (:keywords "cmake" "intellisense" "flymake" "flycheck") (:authors ("Chen Bin" . "chenbin.sh@gmail.com")) (:maintainer "Chen Bin" . "chenbin.sh@gmail.com") (:url . "http://github.com/redguardtoo/cpputils-cmake"))]) -(cpanfile-mode . [(20161001 710) ((emacs (24 4))) "Major mode for cpanfiles" single ((:commit . "eda675703525198df1f76ddf250bffa40217ec5d") (:keywords "perl") (:authors ("Zak B. Elep" . "zakame@zakame.net")) (:maintainer "Zak B. Elep" . "zakame@zakame.net") (:url . "https://github.com/zakame/cpanfile-mode"))]) -(cp5022x . [(20120323 2335) nil "cp50220, cp50221, cp50222 coding system" single ((:commit . "ea7327dd75e54539576916f592ae1be98179ae35") (:keywords "languages" "cp50220" "cp50221" "cp50222" "cp51932" "cp932") (:authors ("ARISAWA Akihiro" . "ari@mbf.ocn.ne.jp")) (:maintainer "ARISAWA Akihiro" . "ari@mbf.ocn.ne.jp"))]) -(coverlay . [(20190414 940) ((emacs (24 1)) (cl-lib (0 5))) "Test coverage overlays" single ((:commit . "0beae208d0e7d746a94385428bd61aa5cd7ea828") (:keywords "coverage" "overlay") (:authors ("Takuto Wada <takuto.wada at gmail com>")) (:maintainer "Takuto Wada <takuto.wada at gmail com>") (:url . "https://github.com/twada/coverlay.el"))]) -(coverage . [(20180227 457) ((ov (1 0)) (cl-lib (0 5))) "Code coverage line highlighting" single ((:commit . "c73d984168955ca0f47f44b0464aa45282df42b6") (:keywords "coverage" "metrics" "simplecov" "ruby" "rspec") (:authors ("Kieran Trezona-le Comte" . "trezona.lecomte@gmail.com")) (:maintainer "Kieran Trezona-le Comte" . "trezona.lecomte@gmail.com") (:url . "https://github.com/trezona-lecomte/coverage"))]) -(cov . [(20180415 2031) ((emacs (24 4)) (f (0 18 2)) (s (1 11 0)) (elquery (0))) "Show coverage stats in the fringe." single ((:commit . "7c72a949b9628296af97cc7e4df0af6c3824d66e") (:keywords "coverage" "gcov" "c") (:authors ("Adam Niederer")) (:maintainer "Adam Niederer") (:url . "https://github.com/AdamNiederer/cov"))]) -(countdown . [(20190527 1136) ((emacs (25 1)) (stream (2 2 4))) "Countdown using big LCD-like digits" single ((:commit . "c60b6ff13a2c36e731132ef8775b7d09c5ad963d") (:keywords "tools") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/countdown.el"))]) -(counsel-world-clock . [(20171202 737) ((ivy (0 9 0)) (s (1 12 0))) "Display world clock using Ivy." single ((:commit . "04153fbb21e51b1cfd042bdfc6ed1e8355a1edd7") (:authors ("Kuang Chen <http://github.com/kchenphy>")) (:maintainer "Kuang Chen <http://github.com/kchenphy>") (:url . "https://github.com/kchenphy/counsel-world-clock"))]) -(counsel-tramp . [(20190616 122) ((emacs (24 3)) (counsel (0 10))) "Tramp ivy interface for ssh, docker, vagrant" single ((:commit . "da451df4c5f0ba32056ec600e8eb6a2c7ca4df08") (:authors ("Masashı Mıyaura")) (:maintainer "Masashı Mıyaura") (:url . "https://github.com/masasam/emacs-counsel-tramp"))]) -(counsel-spotify . [(20190406 2025) ((emacs (25)) (ivy (0 9 0))) "Control Spotify search and select music with Ivy." single ((:commit . "f484e6efd3994704cfd16c87c298fbfa12d442cc") (:authors ("Lautaro GarcÃa <https://github.com/Lautaro-Garcia>")) (:maintainer "Lautaro GarcÃa <https://github.com/Lautaro-Garcia>"))]) -(counsel-pydoc . [(20171018 2042) ((emacs (24 3)) (ivy (0 9 1))) "run pydoc with counsel" single ((:commit . "1d8ff8ca3b9d69453cde423b1887fbb490a95c9e") (:keywords "completion" "matching") (:authors (nil . "Hao Deng(denghao8888@gmail.com)")) (:maintainer nil . "Hao Deng(denghao8888@gmail.com)") (:url . "https://github.com/co-dh/pydoc_utils"))]) -(counsel-projectile . [(20190325 856) ((counsel (0 11 0)) (projectile (2 0 0))) "Ivy integration for Projectile" single ((:commit . "fb19569c9799e3edac7504d21a5ecf49231e9500") (:keywords "project" "convenience") (:authors ("Eric Danan")) (:maintainer "Eric Danan") (:url . "https://github.com/ericdanan/counsel-projectile"))]) -(counsel-osx-app . [(20160821 809) ((ivy (0 8 0)) (emacs (24 3))) "launch osx applications via ivy interface" single ((:commit . "b1c54cbc033c4939966910d85ce035503079e108") (:authors ("Boris Buliga" . "d12frosted@gmail.com")) (:maintainer "Boris Buliga" . "d12frosted@gmail.com") (:url . "https://github.com/d12frosted/counsel-osx-app"))]) -(counsel-org-clock . [(20190407 348) ((emacs (24 3)) (ivy (0 10 0)) (dash (2 0))) "Counsel commands for org-clock" single ((:commit . "ddf6b89652e4dbc0be5e8719213e7673c83959f1") (:authors ("Akira Komamura" . "akira.komamura@gmail.com")) (:maintainer "Akira Komamura" . "akira.komamura@gmail.com") (:url . "https://github.com/akirak/counsel-org-clock"))]) -(counsel-org-capture-string . [(20180816 724) ((emacs (25 1)) (ivy (0 10))) "Counsel for org-capture-string" single ((:commit . "0fd5d72397a9268a89dd26de2a6c355f127453ac") (:keywords "outlines") (:authors ("Akira Komamura" . "akira.komamura@gmail.com")) (:maintainer "Akira Komamura" . "akira.komamura@gmail.com") (:url . "https://github.com/akirak/counsel-org-capture-string"))]) -(counsel-notmuch . [(20181203 935) ((emacs (24)) (ivy (0 10 0)) (notmuch (0 21)) (s (1 12 0))) "Search emails in Notmuch asynchronously with Ivy" single ((:commit . "a4a1562935e4180c42524c51609d1283e9be0688") (:keywords "mail") (:authors ("Alexander Fu Xi" . "fuxialexander@gmail.com")) (:maintainer "Alexander Fu Xi" . "fuxialexander@gmail.com") (:url . "https://github.com/fuxialexander/counsel-notmuch"))]) -(counsel-gtags . [(20190422 1501) ((emacs (25 1)) (counsel (0 8 0)) (seq (1 0))) "ivy for GNU global" single ((:commit . "3ebfd4159856e9dbd9531b2a43410f72175a90bb") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-counsel-gtags"))]) -(counsel-etags . [(20190604 245) ((emacs (24 4)) (counsel (0 10 0)) (ivy (0 10 0))) "Fast and complete Ctags/Etags solution using ivy" tar ((:commit . "fbeedab4ef1a3ea7ec3071580a31a4578d2c79ea") (:keywords "tools" "convenience") (:authors ("Chen Bin" . "chenbin.sh@gmail.com")) (:maintainer "Chen Bin" . "chenbin.sh@gmail.com") (:url . "http://github.com/redguardtoo/counsel-etags"))]) -(counsel-dash . [(20190510 708) ((emacs (24 4)) (dash-docs (1 4 0)) (counsel (0 8 0)) (cl-lib (0 5))) "Browse dash docsets using Ivy" single ((:commit . "5856b8766956428c183a2df911a05f845d014041") (:keywords "dash" "ivy" "counsel") (:authors ("Nathan Kot" . "nk@nathankot.com")) (:maintainer "Nathan Kot" . "nk@nathankot.com") (:url . "https://github.com/nathankot/counsel-dash"))]) -(counsel-css . [(20180302 1036) ((emacs (24 4)) (counsel (0 7 0)) (cl-lib (0 5))) "stylesheet-selector-aware swiper" single ((:commit . "0536af00236cdce1ed08b40dd46c917e8b4b8869") (:keywords "convenience" "tools" "counsel" "swiper" "selector" "css" "less" "scss") (:authors ("Henrik Lissner <http://github/hlissner>")) (:maintainer "Henrik Lissner" . "henrik@lissner.net") (:url . "https://github.com/hlissner/emacs-counsel-css"))]) -(counsel-codesearch . [(20180925 803) ((codesearch (1)) (counsel (0 10 0)) (emacs (24)) (ivy (0 10 0))) "Counsel interface for codesearch.el" single ((:commit . "b7989fad3e06f301c31d5e896c42b6cc549a0e0c") (:keywords "tools") (:authors ("Austin Bingham" . "austin.bingham@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/emacs-counsel-codesearch"))]) -(counsel-bbdb . [(20181128 1320) ((ivy (0 8 0)) (emacs (24 3))) "Quick search&input email from BBDB based on ivy" single ((:commit . "df2890deb73b09f8055243bd91942ea887d9b7a1") (:keywords "mail" "abbrev" "convenience" "matching") (:authors ("Chen Bin <chenbin.sh AT gmail>")) (:maintainer "Chen Bin <chenbin.sh AT gmail>") (:url . "https://github.com/redguard/counsel-bbdb"))]) -(counsel . [(20190613 1539) ((emacs (24 3)) (swiper (0 11 0))) "Various completion functions using Ivy" single ((:commit . "44b2d7d6a8a81d1ed5c2aaa613eabe7e25c0b9a3") (:keywords "convenience" "matching" "tools") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/swiper"))]) -(cosmo . [(20170922 744) ((emacs (24 4))) "Cosmological Calculator" single ((:commit . "dd83b09a49a2843606b28279b674b2207040b36b") (:keywords "tools") (:authors ("Francesco Montanari" . "fmnt@fmnt.info")) (:maintainer "Francesco Montanari" . "fmnt@fmnt.info") (:url . "https://gitlab.com/montanari/cosmo-el"))]) -(corral . [(20160502 701) nil "Quickly surround text with delimiters" single ((:commit . "e7ab6aa118e46b93d4933d1364bc273f57cd6911") (:authors ("Kevin Liu" . "mail@nivekuil.com")) (:maintainer "Kevin Liu" . "mail@nivekuil.com") (:url . "http://github.com/nivekuil/corral"))]) -(coq-commenter . [(20170822 2309) ((dash (2 13 0)) (s (1 11 0)) (cl-lib (0 5))) "Coq commenting minor mode for proof" single ((:commit . "7fe9a2cc0ebdb0b1e54a24eb7971d757fb588ac3") (:keywords "comment" "coq" "proof") (:authors ("Junyoung Clare Jang" . "jjc9310@gmail.com")) (:maintainer "Junyoung Clare Jang" . "jjc9310@gmail.com") (:url . "http://github.com/ailrun/coq-commenter"))]) -(copyit-pandoc . [(20160624 2028) ((emacs (24)) (copyit (0 0 1)) (pandoc (0 0 1))) "Copy it, yank anything!" single ((:commit . "f50d033b129d467fb517a351adf3f16cabd82a62") (:keywords "convinience" "yank" "clipboard") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/emacs-copyit"))]) -(copyit . [(20161126 1229) ((emacs (24)) (cl-lib (0 5)) (s (1 9 0))) "Copy it, yank anything!" single ((:commit . "f50d033b129d467fb517a351adf3f16cabd82a62") (:keywords "convenience" "yank" "clipboard") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/emacs-copyit"))]) -(copy-file-on-save . [(20180604 1419) ((emacs (24 3)) (cl-lib (0 5)) (f (0 17)) (s (1 7 0))) "Copy file on save, automatic deployment it." single ((:commit . "5af6d5fcc35ddf9050eada96fd5f334bf0661b62") (:keywords "files" "comm" "deploy") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/emacs-php/emacs-auto-deployment"))]) -(copy-as-format . [(20190523 258) ((cl-lib (0 5))) "Copy buffer locations as GitHub/Slack/JIRA etc... formatted code" single ((:commit . "a0962b670e26b723ce304b14e3397da453aef84e") (:keywords "github" "slack" "jira" "hipchat" "gitlab" "bitbucket" "org-mode" "pod" "rst" "asciidoc" "tools" "convenience") (:authors ("Skye Shaw" . "skye.shaw@gmail.com")) (:maintainer "Skye Shaw" . "skye.shaw@gmail.com") (:url . "https://github.com/sshaw/copy-as-format"))]) -(control-mode . [(20160624 1710) nil "A \"control\" mode, similar to vim's \"normal\" mode" single ((:commit . "72d6179b60adc438aada74083b2bf4264b575de3") (:keywords "convenience" "emulations") (:authors ("Stephen Marsh" . "stephen.david.marsh@gmail.com")) (:maintainer "Stephen Marsh" . "stephen.david.marsh@gmail.com") (:url . "https://github.com/stephendavidmarsh/control-mode"))]) -(contrast-color . [(20160903 1807) ((emacs (24 3)) (cl-lib (0 5))) "Pick best contrast color for you" single ((:commit . "c5fb77a211ebbef3185ada37bea7420534c33f94") (:keywords "color" "convenience") (:authors ("Yuta Yamada <cokesboy[at]gmail.com>")) (:maintainer "Yuta Yamada <cokesboy[at]gmail.com>") (:url . "https://github.com/yuutayamada/contrast-color-el"))]) -(contextual-menubar . [(20180205 709) nil "display the menubar only on a graphical display" single ((:commit . "f76f55232ac07df76ef9a334a0c527dfab97c40b") (:authors ("Aaron Jensen" . "aaronjensen@gmail.com")) (:maintainer "Aaron Jensen" . "aaronjensen@gmail.com") (:url . "https://github.com/aaronjensen/contextual-menubar"))]) -(contextual . [(20180726 800) ((emacs (24)) (dash (2 12 1)) (cl-lib (0 5))) "Contextual profile management system" single ((:commit . "e3c0de4a2e06757a0e8407c3c6e75930026191e3") (:keywords "convenience" "tools") (:authors ("Alexander Kahl" . "ak@sodosopa.io")) (:maintainer "Alexander Kahl" . "ak@sodosopa.io") (:url . "https://github.com/lshift-de/contextual"))]) -(constant-theme . [(20180921 1012) ((emacs (24 1))) "A calm, dark, almost monochrome color theme." tar ((:commit . "23543a09729569b566175abe1efbe774048d3fa8") (:keywords "themes") (:authors ("Jannis Pohlmann" . "contact@jannispohlmann.de")) (:maintainer "Jannis Pohlmann" . "contact@jannispohlmann.de") (:url . "https://github.com/jannis/emacs-constant-theme"))]) -(connection . [(20140718 329) nil "TCP-based client connection" single ((:commit . "6edc1d0a4156d33c3da0c1649c308b809fda46e1") (:keywords "network") (:authors ("Torsten Hilbrich" . "torsten.hilbrich@gmx.net")) (:maintainer "Torsten Hilbrich" . "torsten.hilbrich@gmx.net"))]) -(conllu-mode . [(20190215 2043) ((emacs (25)) (cl-lib (0 5)) (flycheck (30)) (hydra (0 13 0)) (s (1 0))) "editing mode for CoNLL-U files" tar ((:commit . "1eb5ab3bad5cf36d30a557e64dc218b5fee735bf") (:keywords "extensions") (:authors ("bruno cuconato" . "bcclaro+emacs@gmail.com")) (:maintainer "bruno cuconato" . "bcclaro+emacs@gmail.com") (:url . "https://github.com/odanoburu/conllu-mode"))]) -(conkeror-minor-mode . [(20150114 1604) nil "Mode for editing conkeror javascript files." single ((:commit . "476e81c27b056e21c192391fe674a2bf875466b0") (:keywords "programming" "tools") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com>")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com>") (:url . "http://github.com/Bruce-Connor/conkeror-minor-mode"))]) -(confluence . [(20151021 128) ((xml-rpc (1 6 4))) "Emacs mode for interacting with confluence wikis" tar ((:commit . "4518d270a07760644c4204985c83d234ece4738b") (:keywords "confluence" "wiki" "xmlrpc") (:authors ("James Ahlborn")) (:maintainer "James Ahlborn") (:url . "http://code.google.com/p/confluence-el/"))]) -(config-parser . [(20160426 1219) ((emacs (24 4))) "a library for parsing config file" single ((:commit . "85d559e7889d8f5b98b8794b79426ae25ec3caa5") (:keywords "convenience" "config") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/el-config-parser"))]) -(config-general-mode . [(20171024 1840) nil "Config::General config file mode" single ((:commit . "b4a8e6ba0bb027a77e4a0f701409f3e57bb2e4c0") (:keywords "files") (:authors ("T.v.Dein" . "tlinden@cpan.org")) (:maintainer "T.v.Dein" . "tlinden@cpan.org") (:url . "https://github.com/tlinden/config-general-mode"))]) -(conda . [(20190607 1625) ((emacs (24 4)) (pythonic (0 1 0)) (dash (2 13 0)) (s (1 11 0)) (f (0 18 2))) "Work with your conda environments" single ((:commit . "d65f6d2a47c96e1ff1c7af0e83aee1f5acfe858e") (:keywords "python" "environment" "conda") (:authors ("Rami Chowdhury" . "rami.chowdhury@gmail.com")) (:maintainer "Rami Chowdhury" . "rami.chowdhury@gmail.com") (:url . "http://github.com/necaris/conda.el"))]) -(concurrent . [(20161229 330) ((emacs (24 3)) (deferred (0 5 0))) "Concurrent utility functions for emacs lisp" single ((:commit . "2239671d94b38d92e9b28d4e12fd79814cfb9c16") (:keywords "deferred" "async" "concurrent") (:authors ("SAKURAI Masashi <m.sakurai at kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai at kiwanami.net>") (:url . "https://github.com/kiwanami/emacs-deferred/blob/master/README-concurrent.markdown"))]) -(composer . [(20180923 1140) ((emacs (24)) (s (1 9 0)) (f (0 17)) (request (0 2 0)) (seq (1 9)) (php-runtime (0 1 0))) "Interface to PHP Composer" single ((:commit . "6c1578b2352c81cc9a22616a70db2a14b7d2b67f") (:keywords "tools" "php" "dependency" "manager") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/composer.el"))]) -(composable . [(20190520 1609) ((emacs (24 4))) "composable editing" tar ((:commit . "f5e6cf4d9fb41ab1d09bfac9aa7f5e8cf5e1d794") (:keywords "lisp") (:authors ("Simon Friis Vindum" . "simon@vindum.io")) (:maintainer "Simon Friis Vindum" . "simon@vindum.io"))]) -(company-ycmd . [(20180520 1053) ((ycmd (1 3)) (company (0 9 3)) (deferred (0 5 1)) (s (1 11 0)) (dash (2 13 0)) (let-alist (1 0 5)) (f (0 19 0))) "company-mode backend for ycmd" single ((:commit . "6f4f7384b82203cccf208e3ec09252eb079439f9") (:url . "https://github.com/abingham/emacs-ycmd"))]) -(company-ycm . [(20140904 1817) ((ycm (0 1))) "company-ycm" single ((:commit . "4da8a14abcd0f4fa3235042ade2e12b5068c0601") (:keywords "abbrev") (:authors ("Ajay Gopinathan" . "ajay@gopinathan.net")) (:maintainer "Ajay Gopinathan" . "ajay@gopinathan.net"))]) -(company-web . [(20180402 1155) ((company (0 8 0)) (dash (2 8 0)) (cl-lib (0 5 0)) (web-completion-data (0 1 0))) "Company version of ac-html, complete for web,html,emmet,jade,slim modes" tar ((:commit . "f0cc9187c9c34f72ad71f5649a69c74f996bae9a") (:keywords "html" "company") (:authors ("Olexandr Sydorchuk" . "olexandr.syd@gmail.com")) (:maintainer "Olexandr Sydorchuk" . "olexandr.syd@gmail.com") (:url . "https://github.com/osv/company-web"))]) -(company-try-hard . [(20150902 2206) ((emacs (24 3)) (company (0 8 0)) (dash (2 0))) "get all completions from company backends" single ((:commit . "70b94cfc40c576af404e743133979048e1bd2610") (:keywords "matching") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(company-terraform . [(20190607 1037) ((emacs (24 4)) (company (0 8 12)) (terraform-mode (0 6))) "A company backend for terraform" tar ((:commit . "2d11a21fee2f298e48968e479ddcaeda4d736e12") (:keywords "abbrev" "convenience" "terraform" "company") (:authors ("RafaÅ‚ CieÅ›lak" . "rafalcieslak256@gmail.com")) (:maintainer "RafaÅ‚ CieÅ›lak" . "rafalcieslak256@gmail.com") (:url . "https://github.com/rafalcieslak/emacs-company-terraform"))]) -(company-tern . [(20161004 1847) ((company (0 8 0)) (tern (0 0 1)) (dash (2 8 0)) (dash-functional (2 8 0)) (s (1 9 0)) (cl-lib (0 5 0))) "Tern backend for company-mode" single ((:commit . "10ac058b065ae73c1f30e9fb7d969dd1a79387be") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/company-tern"))]) -(company-tabnine . [(20181207 2331) ((emacs (25)) (company (0 9 3)) (cl-lib (0 5)) (unicode-escape (1 1)) (s (1 12 0))) "A company-mode backend for TabNine" single ((:commit . "2d63df791027ec2bcc8956be6b7078d17f95217c") (:keywords "convenience") (:authors ("Tommy Xiang" . "tommyx058@gmail.com")) (:maintainer "Tommy Xiang" . "tommyx058@gmail.com") (:url . "https://github.com/TommyX12/company-tabnine/"))]) -(company-suggest . [(20180527 1631) ((company (0 9 0)) (emacs (25 1))) "Company-mode back-end for search engine suggests" single ((:commit . "e1fa663b48639c76d91d1f5ac3b23215aa3dabc3") (:keywords "completion" "convenience") (:authors ("Jürgen Hötzel" . "juergen@archlinux.org")) (:maintainer "Jürgen Hötzel" . "juergen@archlinux.org") (:url . "https://github.com/juergenhoetzel/company-suggest"))]) -(company-statistics . [(20170210 1933) ((emacs (24 3)) (company (0 8 5))) "Sort candidates using completion history" single ((:commit . "e62157d43b2c874d2edbd547c3bdfb05d0a7ae5c") (:keywords "abbrev" "convenience" "matching") (:authors ("Ingo Lohmar" . "i.lohmar@gmail.com")) (:maintainer "Ingo Lohmar" . "i.lohmar@gmail.com") (:url . "https://github.com/company-mode/company-statistics"))]) -(company-sourcekit . [(20170126 1153) ((emacs (24 3)) (company (0 8 12)) (dash (2 12 1)) (dash-functional (1 2 0)) (sourcekit (0 2 0))) "company-mode completion backend for SourceKit" single ((:commit . "abf9bc5a0102eb666d3aa6d6bf22f6efcc852781") (:keywords "abbrev") (:authors ("Nathan Kot" . "nk@nathankot.com")) (:maintainer "Nathan Kot" . "nk@nathankot.com") (:url . "https://github.com/nathankot/company-sourcekit"))]) -(company-solidity . [(20181117 1518) ((company (0 9 0)) (cl-lib (0 5 0)) (solidity-mode (0 1 9))) "Company-mode back-end for solidity-mode" single ((:commit . "47f15b2663a6cf92ae6ebf655841a9509ad79017") (:keywords "solidity" "completion" "company") (:authors ("Samuel Smolkin" . "sam@future-precedent.org")) (:maintainer "Samuel Smolkin" . "sam@future-precedent.org") (:url . "https://github.com/ethereum/emacs-solidity"))]) -(company-shell . [(20170518 541) ((emacs (24 4)) (company (0 8 12)) (dash (2 12 0)) (cl-lib (0 5))) "Company mode backend for shell functions" single ((:commit . "6ae625f80d90e0779c79de38e8f83a336c1d00fa") (:keywords "company" "shell" "auto-completion") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/company-shell"))]) -(company-rtags . [(20180730 338) ((emacs (24 3)) (company (0 8 1)) (rtags (2 10))) "RTags back-end for company" single ((:commit . "d49e49f46b878e0d10f6ddc3951d690d50e75277") (:authors ("Jan Erik Hanssen" . "jhanssen@gmail.com") ("Anders Bakken" . "agbakken@gmail.com")) (:maintainer "Jan Erik Hanssen" . "jhanssen@gmail.com") (:url . "http://rtags.net"))]) -(company-restclient . [(20190426 1312) ((cl-lib (0 5)) (company (0 8 0)) (emacs (24)) (know-your-http-well (0 2 0)) (restclient (0 0 0))) "company-mode completion back-end for restclient-mode" single ((:commit . "e5a3ec54edb44776738c13e13e34c85b3085277b") (:authors ("Iku Iwasa" . "iku.iwasa@gmail.com")) (:maintainer "Iku Iwasa" . "iku.iwasa@gmail.com") (:url . "https://github.com/iquiw/company-restclient"))]) -(company-reftex . [(20181222 906) ((emacs (25 1)) (s (1 12)) (company (0 8))) "Company backend based on RefTeX." single ((:commit . "33935e96540201adab43f3a765d62289eba9e286") (:keywords "bib" "tex" "company" "latex" "reftex" "references" "labels" "citations") (:authors ("Eivind Fonn" . "evfonn@gmail.com")) (:maintainer "Eivind Fonn" . "evfonn@gmail.com") (:url . "https://github.com/TheBB/company-reftex"))]) -(company-racer . [(20171205 310) ((emacs (24 4)) (cl-lib (0 5)) (company (0 8 0)) (deferred (0 3 1))) "Company integration for racer" single ((:commit . "a00381c9d416f375f783fcb6ae8d40669ce1f567") (:keywords "convenience") (:authors ("Mario Rodas" . "marsam@users.noreply.github.com")) (:maintainer "Mario Rodas" . "marsam@users.noreply.github.com") (:url . "https://github.com/emacs-pe/company-racer"))]) -(company-quickhelp . [(20180525 1003) ((emacs (24 3)) (company (0 8 9)) (pos-tip (0 4 6))) "Popup documentation for completion candidates" single ((:commit . "479676cade80a9f03802ca3d956591820ed5c537") (:keywords "company" "popup" "documentation" "quickhelp") (:authors ("Lars Andersen" . "expez@expez.com")) (:maintainer "Lars Andersen" . "expez@expez.com") (:url . "https://www.github.com/expez/company-quickhelp"))]) -(company-qml . [(20170428 1708) ((qml-mode (0 1)) (company (0 8 12))) "Company backend for QML files" tar ((:commit . "4af4f32a7ad86d86bb9293fb0b675aec513b5736") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com"))]) -(company-prescient . [(20190523 1734) ((emacs (25 1)) (prescient (3 1)) (company (0 9 6))) "prescient.el + Company" single ((:commit . "1964f605f1f1e50c64a33aa3910cde7a23b45afc") (:keywords "extensions") (:authors ("Radon Rosborough" . "radon.neon@gmail.com")) (:maintainer "Radon Rosborough" . "radon.neon@gmail.com") (:url . "https://github.com/raxod502/prescient.el"))]) -(company-posframe . [(20190606 2254) ((emacs (26 0)) (company (0 9 0)) (posframe (0 1 0))) "Use a posframe as company candidate menu" single ((:commit . "977b7390cc4033ad087c46e7ba9f6fd7a6018869") (:keywords "abbrev" "convenience" "matching") (:authors ("Clément Pit-Claudel, Feng Shu")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/company-posframe"))]) -(company-pollen . [(20160812 1510) ((company (0 9 0)) (pollen-mode (1 0))) "company-mode completion backend for pollen" single ((:commit . "819edf830e9519f8ca57e9cef31211e3f444d11a") (:keywords "languages" "pollen" "pollenpub" "company") (:authors ("Junsong Li <ljs.darkfish AT GMAIL>")) (:maintainer "Junsong Li") (:url . "https://github.com/lijunsong/pollen-mode"))]) -(company-plsense . [(20180118 58) ((company (0 9 3)) (cl-lib (0 5 0)) (dash (2 12 0)) (s (1 12)) (emacs (24))) "Company backend for Perl" single ((:commit . "b48e3181e08ec597269621d621aa06636f02d883") (:authors ("Troy Hinckley" . "troy.hinckley@gmail.com")) (:maintainer "Troy Hinckley" . "troy.hinckley@gmail.com") (:url . "https://github.com/CeleritasCelery/company-plsense"))]) -(company-phpactor . [(20190403 216) ((emacs (24 3)) (company (0 9 6)) (phpactor (0 1 0))) "company-mode backend for Phpactor" single ((:commit . "57f9dbbc0ef1d7adfa77725c0f158d0302999e39") (:keywords "tools" "php") (:authors ("Martin Tang" . "martin.tang365@gmail.com") ("Mikael Kermorgant" . "mikael@kgtech.fi")) (:maintainer "Martin Tang" . "martin.tang365@gmail.com") (:url . "https://github.com/emacs-php/phpactor.el"))]) -(company-php . [(20190424 222) ((cl-lib (0 5)) (ac-php-core (2 0)) (company (0 9))) "A company back-end for PHP." single ((:commit . "19b34b56ebc0eaabf9b1f4a8ac6819bde9855d2b") (:keywords "completion" "convenience" "intellisense") (:authors ("jim" . "xcwenn@qq.com")) (:maintainer "jim") (:url . "https://github.com/xcwen/ac-php"))]) -(company-nixos-options . [(20160215 857) ((company (0 8 0)) (nixos-options (0 0 1)) (cl-lib (0 5 0))) "Company Backend for nixos-options" single ((:commit . "45c8d90748304c90e1503c9fa8db0443f3d4bd89") (:keywords "unix") (:authors ("Diego Berrocal" . "cestdiego@gmail.com") ("Travis B. Hartwell" . "nafai@travishartwell.net")) (:maintainer "Diego Berrocal" . "cestdiego@gmail.com") (:url . "http://www.github.com/travisbhartwell/nix-emacs/"))]) -(company-ngram . [(20170129 1913) ((cl-lib (0 5)) (company (0 8 0))) "N-gram based completion" tar ((:commit . "09a68b802e64799e95f205b438d469bbd78cd2e6") (:authors ("kshramt")) (:maintainer "kshramt") (:url . "https://github.com/kshramt/company-ngram"))]) -(company-nginx . [(20180604 2) ((emacs (24))) "company-mode keywords support for nginx-mode" single ((:commit . "3074a5d322562f36867ef67bffeb25f1c0d8aca9") (:keywords "company" "nginx") (:url . "https://github.com/stardiviner/company-nginx"))]) -(company-nand2tetris . [(20171201 1813) ((nand2tetris (1 1 0)) (company (0 5)) (cl-lib (0 5 0))) "Company backend for nand2tetris major mode" single ((:commit . "33acee34d24b1c6a87db833b7d23449cf858f64f") (:keywords "nand2tetris" "hdl" "company") (:authors ("Diego Berrocal" . "cestdiego@gmail.com")) (:maintainer "Diego Berrocal" . "cestdiego@gmail.com") (:url . "http://www.github.com/CestDiego/nand2tetris.el/"))]) -(company-math . [(20190507 2006) ((company (0 8 0)) (math-symbol-lists (1 2))) "Completion backends for unicode math symbols and latex tags" single ((:commit . "600e49449644f6835f9dc3501bc58461999e8ab9") (:keywords "unicode" "symbols" "completion") (:authors ("Vitalie Spinu" . "spinuvit@gmail.com")) (:maintainer "Vitalie Spinu" . "spinuvit@gmail.com") (:url . "https://github.com/vspinu/company-math"))]) -(company-lua . [(20171108 2306) ((company (0 8 12)) (s (1 10 0)) (f (0 17 0)) (lua-mode (20151025))) "Company backend for Lua" tar ((:commit . "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52") (:authors ("Peter Vasil" . "mail@petervasil.net")) (:maintainer "Peter Vasil" . "mail@petervasil.net"))]) -(company-lsp . [(20190612 1553) ((emacs (25 1)) (lsp-mode (6 0)) (company (0 9 0)) (s (1 2 0)) (dash (2 11 0))) "Company completion backend for lsp-mode." single ((:commit . "f921ffa0cdc542c21dc3dd85f2c93df4288e83bd") (:url . "https://github.com/tigersoldier/company-lsp"))]) -(company-lean . [(20171102 1454) ((emacs (24 3)) (dash (2 12 0)) (dash-functional (1 2 0)) (s (1 10 0)) (f (0 19 0)) (company (0 9 3)) (lean-mode (3 3 0))) "A company backend for lean-mode" single ((:commit . "9d6b8471e2044310b4cd7cd3213b1fc8f78ec499") (:keywords "languages") (:authors ("Leonardo de Moura" . "leonardo@microsoft.com") ("Soonho Kong " . "soonhok@cs.cmu.edu") ("Gabriel Ebner " . "gebner@gebner.org") ("Sebastian Ullrich" . "sebasti@nullri.ch")) (:maintainer "Sebastian Ullrich" . "sebasti@nullri.ch") (:url . "https://github.com/leanprover/lean-mode"))]) -(company-jedi . [(20151217 321) ((emacs (24)) (cl-lib (0 5)) (company (0 8 11)) (jedi-core (0 2 7))) "company-mode completion back-end for Python JEDI" single ((:commit . "2f54e791e10f5dc0ff164bfe97f1878359fab6f6") (:authors ("Boy" . "boyw165@gmail.com")) (:maintainer "Boy" . "boyw165@gmail.com"))]) -(company-irony-c-headers . [(20151018 909) ((cl-lib (0 5)) (company (0 9 0)) (irony (0 2 0))) "Company mode backend for C/C++ header files with Irony" single ((:commit . "72c386aeb079fb261d9ec02e39211272f76bbd97") (:keywords "c" "company") (:authors ("Yutian Li" . "hotpxless@gmail.com")) (:maintainer "Yutian Li" . "hotpxless@gmail.com") (:url . "https://github.com/hotpxl/company-irony-c-headers"))]) -(company-irony . [(20190124 2346) ((emacs (24 1)) (company (0 8 0)) (irony (1 1 0)) (cl-lib (0 5))) "company-mode completion back-end for irony-mode" single ((:commit . "b44711dfce445610c1ffaec4951c6ff3882b216a") (:keywords "convenience") (:authors ("Guillaume Papin" . "guillaume.papin@epitech.eu")) (:maintainer "Guillaume Papin" . "guillaume.papin@epitech.eu") (:url . "https://github.com/Sarcasm/company-irony/"))]) -(company-inf-ruby . [(20140805 2054) ((company (0 6 10)) (inf-ruby (2 2 7)) (emacs (24 1))) "company-mode completion back-end for inf-ruby" single ((:commit . "fe3e4863bc971fbb81edad447efad5795ead1b17") (:authors ("Dmitry Gutov" . "dgutov@yandex.ru")) (:maintainer "Dmitry Gutov" . "dgutov@yandex.ru") (:url . "https://github.com/company-mode/company-inf-ruby"))]) -(company-go . [(20190203 19) ((company (0 8 0)) (go-mode (1 0 0))) "company-mode backend for Go (using gocode)" single ((:commit . "7fb65232883f19a8305706b4b4ff32916ffbcaf5") (:keywords "languages") (:authors ("nsf" . "no.smile.face@gmail.com")) (:maintainer "nsf" . "no.smile.face@gmail.com"))]) -(company-glsl . [(20171015 1749) ((company (0 9 4)) (glsl-mode (2 0)) (emacs (24 4))) "Support glsl in company-mode" single ((:commit . "a262c12c3bcd0807718c4edcaf2b054e30ef0e26") (:authors ("Guido Schmidt" . "git@guidoschmidt.cc")) (:maintainer "Guido Schmidt" . "git@guidoschmidt.cc") (:url . "https://github.com/guidoschmidt/company-glsl"))]) -(company-ghci . [(20160311 200) ((company (0 8 11)) (haskell-mode (13))) "company backend which uses the current ghci process." single ((:commit . "c2d74a41166e76de2e78c87f582ba3a1179b2aa6") (:authors ("Hector Orellana" . "hofm92@gmail.com")) (:maintainer "Hector Orellana" . "hofm92@gmail.com"))]) -(company-ghc . [(20170918 833) ((cl-lib (0 5)) (company (0 8 0)) (ghc (5 4 0 0)) (emacs (24))) "company-mode ghc-mod backend" single ((:commit . "8b264b5c3c0e42c0d0c4e9315559896c9b0edfdc") (:keywords "haskell" "completion") (:authors ("Iku Iwasa" . "iku.iwasa@gmail.com")) (:maintainer "Iku Iwasa" . "iku.iwasa@gmail.com") (:url . "https://github.com/iquiw/company-ghc"))]) -(company-flx . [(20180103 518) ((emacs (24)) (company (0 8 12)) (flx (0 5))) "flx based fuzzy matching for company" single ((:commit . "16ca0d2f84e8e768bf2db8c5cfe421230a00bded") (:keywords "convenience" "company" "fuzzy" "flx") (:authors ("PythonNut" . "pythonnut@pythonnut.com")) (:maintainer "PythonNut" . "pythonnut@pythonnut.com") (:url . "https://github.com/PythonNut/company-flx"))]) -(company-flow . [(20180225 2159) ((company (0 8 0)) (dash (2 13 0))) "Flow backend for company-mode" single ((:commit . "76ef585c70d2a3206c2eadf24ba61e59124c3a16") (:authors ("Aaron Jensen" . "aaronjensen@gmail.com")) (:maintainer "Aaron Jensen" . "aaronjensen@gmail.com") (:url . "https://github.com/aaronjensen/company-flow"))]) -(company-erlang . [(20170123 538) ((emacs (24 4)) (ivy-erlang-complete (0 1)) (company (0 9 2))) "company backend based on ivy-erlang-complete" single ((:commit . "bc0524a16f17b66c7397690e4ca0e004f09ea6c5") (:keywords "tools") (:authors ("Sergey Kostyaev" . "feo.me@ya.ru")) (:maintainer "Sergey Kostyaev" . "feo.me@ya.ru"))]) -(company-emoji . [(20180925 2008) ((cl-lib (0 5)) (company (0 8 0))) "company-mode backend for emoji" tar ((:commit . "f0d91d5be0077b20b418a3ba37d36f431fae322f") (:keywords "emoji" "company") (:authors ("Alex Dunn" . "dunn.alex@gmail.com")) (:maintainer "Alex Dunn" . "dunn.alex@gmail.com") (:url . "https://github.com/dunn/company-emoji.git"))]) -(company-emacs-eclim . [(20180911 1121) ((eclim (0 3)) (company (0 7)) (cl-lib (0 5))) "Eclim company backend" single ((:commit . "23f5b294f833ce58516d7b9ae08a7792d70022a1"))]) -(company-edbi . [(20160221 1923) ((company (0 8 5)) (edbi (0 1 3)) (cl-lib (0 5 0)) (s (1 9 0))) "Edbi backend for company-mode" single ((:commit . "ffaeff75d0457285d16d11db772881542a6026ad") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/company-edbi"))]) -(company-distel . [(20180827 1344) ((distel-completion-lib (1 0 0))) "Erlang/distel completion backend for company-mode" single ((:commit . "acc4c0a5521904203d797fe96b08e5fae4233c7e") (:keywords "erlang" "distel" "company") (:authors ("Sebastian Weddmark Olsson")) (:maintainer "Sebastian Weddmark Olsson") (:url . "github.com/sebastiw/distel-completion"))]) -(company-dict . [(20190302 5) ((emacs (24 4)) (company (0 8 12)) (parent-mode (2 3))) "A backend that emulates ac-source-dictionary" single ((:commit . "cd7b8394f6014c57897f65d335d6b2bd65dab1f4") (:keywords "company" "dictionary" "ac-source-dictionary") (:authors ("Henrik Lissner <http://github/hlissner>")) (:maintainer "Henrik Lissner" . "henrik@lissner.net") (:url . "https://github.com/hlissner/emacs-company-dict"))]) -(company-dcd . [(20190116 256) ((company (0 9)) (flycheck-dmd-dub (0 7)) (yasnippet (0 8)) (popwin (0 7)) (cl-lib (0 5)) (ivy (20160804 326))) "Company backend for Dlang using DCD." single ((:commit . "11e90949e546fcff1b1cd40887ad7b6701aa1653") (:keywords "languages") (:authors ("tsukimizake <shomasd_at_gmail.com>")) (:maintainer "tsukimizake <shomasd_at_gmail.com>") (:url . "http://github.com/tsukimizake/company-dcd"))]) -(company-coq . [(20190425 1851) ((company-math (1 1)) (company (0 8 12)) (yasnippet (0 11 0)) (dash (2 12 1)) (cl-lib (0 5))) "A collection of extensions for Proof General's Coq mode" tar ((:commit . "779dabd2925fc786dc278270a20f2ff05a3c673c"))]) -(company-childframe . [(20180705 546) ((emacs (26 0)) (company-posframe (0 1 0))) "Please use company-posframe instead." single ((:commit . "562eaa1e3a0c39dd36f10cda37a3724384fde1df") (:keywords "abbrev" "convenience" "matching") (:authors ("Clément Pit-Claudel, Feng Shu")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/company-mode/company-mode"))]) -(company-cabal . [(20170917 1317) ((cl-lib (0 5)) (company (0 8 0)) (emacs (24))) "company-mode cabal backend" tar ((:commit . "62112a7259e24bd6c08885629a185afe512b7d3d") (:authors ("Iku Iwasa" . "iku.iwasa@gmail.com")) (:maintainer "Iku Iwasa" . "iku.iwasa@gmail.com") (:url . "https://github.com/iquiw/company-cabal"))]) -(company-c-headers . [(20180814 1730) ((emacs (24 1)) (company (0 8))) "Company mode backend for C/C++ header files" single ((:commit . "41331192b3961c8e3a51540678e1d11eaa346f03") (:keywords "development" "company") (:authors ("Alastair Rankine" . "alastair@girtby.net")) (:maintainer "Alastair Rankine" . "alastair@girtby.net"))]) -(company-box . [(20190311 1745) ((emacs (26 0 91)) (dash (2 13)) (dash-functional (1 2 0)) (company (0 9 6))) "Company front-end with icons" tar ((:commit . "8fc6168f2d3a0275156dd3fdf46ba496adbab226") (:keywords "company" "completion" "front-end" "convenience") (:authors ("Sebastien Chapuis" . "sebastien@chapu.is")) (:maintainer "Sebastien Chapuis" . "sebastien@chapu.is") (:url . "https://github.com/sebastiencs/company-box"))]) -(company-bibtex . [(20171105 644) ((company (0 9 0)) (cl-lib (0 5)) (parsebib (1 0))) "Company completion for bibtex keys" single ((:commit . "da67faf3a6faba8e7f1b222dedfc5521b02c7655") (:keywords "company-mode" "bibtex") (:authors ("GB Gardner" . "gbgar@users.noreply.github.com")) (:maintainer "GB Gardner" . "gbgar@users.noreply.github.com") (:url . "https://github.com/gbgar/company-bibtex"))]) -(company-axiom . [(20171024 2010) ((emacs (24)) (company (0 9)) (axiom-environment (20171021))) "A company-mode backend for the axiom-environment system" single ((:commit . "e3444570fa081410171a089f6c118ea6627e5d48") (:keywords "axiom" "openaxiom" "fricas" "axiom-environment") (:authors ("Paul Onions" . "paul.onions@acm.org")) (:maintainer "Paul Onions" . "paul.onions@acm.org"))]) -(company-auctex . [(20180725 1912) ((yasnippet (0 8 0)) (company (0 8 0)) (auctex (11 87))) "Company-mode auto-completion for AUCTeX" single ((:commit . "48c42c58ce2f0e693301b0cb2d085055410c1b25") (:authors ("Christopher Monsanto <chris@monsan.to>, Alexey Romanov" . "alexey.v.romanov@gmail.com")) (:maintainer "Christopher Monsanto <chris@monsan.to>, Alexey Romanov" . "alexey.v.romanov@gmail.com") (:url . "https://github.com/alexeyr/company-auctex/"))]) -(company-arduino . [(20160306 1739) ((emacs (24 1)) (company (0 8 0)) (irony (0 1 0)) (cl-lib (0 5)) (company-irony (0 1 0)) (company-c-headers (20140930)) (arduino-mode (1 0))) "company-mode for Arduino" single ((:commit . "d7e369702b8eee63e6dfdeba645ce28b6dc66fb1") (:keywords "convenience" "development" "company") (:authors ("Yuta Yamada" . "sleepboy.zzz@gmail.com")) (:maintainer "Yuta Yamada" . "sleepboy.zzz@gmail.com") (:url . "https://github.com/yuutayamada/company-arduino"))]) -(company-ansible . [(20190301 2111) ((emacs (24 4)) (company (0 8 12))) "A company back-end for ansible" tar ((:commit . "c31efced8a9b461de5982ed94c234fda3df96f10") (:keywords "ansible") (:authors ("Krzysztof Magosa" . "krzysztof@magosa.pl")) (:maintainer "Krzysztof Magosa" . "krzysztof@magosa.pl") (:url . "https://github.com/krzysztof-magosa/company-ansible"))]) -(company-anaconda . [(20181025 1305) ((company (0 8 0)) (anaconda-mode (0 1 1)) (cl-lib (0 5 0)) (dash (2 6 0)) (s (1 9))) "Anaconda backend for company-mode" single ((:commit . "0ab70de1740e67cee451abcf3685c7525ff9e95a") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/anaconda-mode"))]) -(company . [(20190430 1852) ((emacs (24 3))) "Modular text completion framework" tar ((:commit . "ad6ff0eecca99dc5ac8b6a8a6174df7d2ad88ae7") (:keywords "abbrev" "convenience" "matching") (:authors ("Nikolaj Schumacher")) (:maintainer "Dmitry Gutov" . "dgutov@yandex.ru") (:url . "http://company-mode.github.io/"))]) -(common-lisp-snippets . [(20180226 1523) ((yasnippet (0 8 0))) "Yasnippets for Common Lisp" tar ((:commit . "c82ebf18f4ad49f390dd96ffcc59f8683c1a868b") (:keywords "snippets") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/common-lisp-snippets"))]) -(commify . [(20161106 2334) ((s (1 9 0))) "Toggle grouping commas in numbers" single ((:commit . "78732c2fa6c1a10288b7436d7c561ec9ebdd41be") (:keywords "convenience" "editing" "numbers" "grouping" "commas") (:authors ("Daniel E. Doherty" . "ded-commify@ddoherty.net")) (:maintainer "Daniel E. Doherty" . "ded-commify@ddoherty.net") (:url . "https://github.com/ddoherty03/commify"))]) -(commenter . [(20160219 1627) ((emacs (24 4)) (let-alist (1 0 4))) "multiline-comment support package" single ((:commit . "6d1885419434ba779270c6fda0e30d390bb074bd") (:keywords "comment") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:url . "https://github.com/yuutayamada/commenter"))]) -(commentary-theme . [(20181213 1045) ((emacs (24))) "A minimal theme with contrasting comments" single ((:commit . "9a825ae98166c9dbbf106e7be62ee69dd9f0342f") (:url . "https://github.com/pzel/commentary-theme"))]) -(comment-tags . [(20170910 1735) ((emacs (24 5))) "Highlight & navigate comment tags like 'TODO'." single ((:commit . "7d914097f0a03484af71e621db533737fc692f58") (:keywords "convenience" "comments" "tags") (:authors ("Vincent Dumas" . "vincekd@gmail.com")) (:maintainer "Vincent Dumas" . "vincekd@gmail.com") (:url . "https://github.com/vincekd/comment-tags"))]) -(comment-or-uncomment-sexp . [(20190225 1122) ((emacs (24))) "Command for commenting the sexp under point." single ((:commit . "bec730d3fc1e6c17ff1339eb134af16c034a4d95") (:keywords "convenience") (:authors ("Artur Malabarba" . "artur@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "artur@endlessparentheses.com") (:url . "https://github.com/Malabarba/comment-or-uncomment-sexp"))]) -(comment-dwim-2 . [(20190105 1653) nil "An all-in-one comment command to rule them all" single ((:commit . "3dfdd58495c46a37708344a57c5c52beca6b2c1c") (:keywords "convenience") (:authors ("Rémy Ferré" . "dev@remyferre.net")) (:maintainer "Rémy Ferré" . "dev@remyferre.net") (:url . "https://github.com/remyferre/comment-dwim-2"))]) -(commander . [(20140120 1852) ((s (1 6 0)) (dash (2 0 0)) (cl-lib (0 3)) (f (0 6 1))) "Emacs command line parser" single ((:commit . "c93985dc318fe89e5a29abc21d19fb41e2fd14d2") (:keywords "cli" "argv") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/commander.el"))]) -(command-queue . [(20160328 1725) ((emacs (24 3))) "shell command queue" single ((:commit . "f327c6f852592229a755ec6de0c62c6aeafd6659") (:authors ("Yuki INOUE <inouetakahiroki at gmail.com>")) (:maintainer "Yuki INOUE <inouetakahiroki at gmail.com>") (:url . "https://github.com/Yuki-Inoue/command-queue"))]) -(command-log-mode . [(20160413 447) nil "log keyboard commands to buffer" single ((:commit . "af600e6b4129c8115f464af576505ea8e789db27") (:keywords "help") (:authors ("Michael Weber" . "michaelw@foldr.org")) (:maintainer "Michael Weber" . "michaelw@foldr.org") (:url . "https://github.com/lewang/command-log-mode"))]) -(comint-intercept . [(20170317 1228) ((emacs (24 3))) "Intercept input in comint-mode" single ((:commit . "a329abf01fa8e0c6b02b46b29bcb421a21120dc5") (:keywords "processes" "terminals") (:authors ("\"Huang, Ying\"" . "huang.ying.caritas@gmail.com")) (:maintainer "\"Huang, Ying\"" . "huang.ying.caritas@gmail.com") (:url . "https://github.com/hying-caritas/comint-intercept"))]) -(comb . [(20180831 721) ((emacs (25 1))) "Interactive grep tool for manual static analysis" tar ((:commit . "69d59284e19428794b5c0aaa9be0e7d2770cc846") (:keywords "matching") (:authors ("Andrea Cardaci" . "cyrus.and@gmail.com")) (:maintainer "Andrea Cardaci" . "cyrus.and@gmail.com") (:url . "https://github.com/cyrus-and/comb"))]) -(com-css-sort . [(20190517 752) ((emacs (24 4)) (s (1 12 0)) (cl-lib (0 6))) "Common way of sorting the CSS attributes." single ((:commit . "d002012500fbe4ccdde525d64b8f69015aded9ee") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:url . "https://github.com/jcs090218/com-css-sort"))]) -(column-enforce-mode . [(20171030 1900) nil "Highlight text that extends beyond a column" single ((:commit . "2341a2b6a33d4b8b74c35062ec9cfe1bffd61944") (:authors ("Jordon Biondo")) (:maintainer "Jordon Biondo") (:url . "www.github.com/jordonbiondo/column-enforce-mode"))]) -(colormaps . [(20171008 2224) ((emacs (25))) "Hex colormaps" single ((:commit . "19fbb64a6288d505b9cf45c9b5a3eed0bfb135e2") (:keywords "tools") (:authors ("Abhinav Tushar" . "lepisma@fastmail.com")) (:maintainer "Abhinav Tushar" . "lepisma@fastmail.com") (:url . "https://github.com/lepisma/colormaps.el"))]) -(color-theme-x . [(20180227 46) ((cl-lib (0 5))) "convert color themes to X11 resource settings" single ((:commit . "6c2264aa6c5d9a72caeae67ebaa4472090e70350") (:keywords "convenience" "faces" "frames") (:authors ("Matthew Kennedy" . "mkennedy@killr.ath.cx")) (:maintainer "Andrew Johnson" . "andrew@andrewjamesjohnson.com") (:url . "https://github.com/ajsquared/color-theme-x"))]) -(color-theme-solarized . [(20171024 1525) ((color-theme (6 5 5))) "Solarized themes for Emacs" tar ((:commit . "f3ca8902ea056fb8e46cb09f09c96294e31cd4ee"))]) -(color-theme-sanityinc-tomorrow . [(20190618 1303) nil "A version of Chris Kempson's \"tomorrow\" themes" tar ((:commit . "4f49940ee5298f80d8127c1af48df0d7a14eef55") (:keywords "faces" "themes") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "http://github.com/purcell/color-theme-sanityinc-tomorrow"))]) -(color-theme-sanityinc-solarized . [(20190206 59) ((cl-lib (0 6))) "A version of Ethan Schoonover's Solarized themes" tar ((:commit . "54daf1e5a0fbee6682cade1f59171daf185239e3") (:keywords "faces" "themes") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "http://github.com/purcell/color-theme-sanityinc-solarized"))]) -(color-theme-modern . [(20161219 1144) ((emacs (24))) "Reimplement colortheme with Emacs 24 theme framework." tar ((:commit . "42a79266f1d7b473e9328e67a455e505e6c3eff5") (:url . "https://github.com/emacs-jp/replace-colorthemes/"))]) -(color-theme-buffer-local . [(20170126 601) ((color-theme (0))) "Install color-themes by buffer." single ((:commit . "e606dec66f16a06140b9aad625a4fd52bca4f936") (:keywords "faces") (:authors ("Victor Borja" . "vic.borja@gmail.com")) (:maintainer "Victor Borja" . "vic.borja@gmail.com") (:url . "http://github.com/vic/color-theme-buffer-local"))]) -(color-theme-approximate . [(20140228 436) nil "Makes Emacs theme works on terminal transparently" single ((:commit . "f54301ca39bc5d2ffb000f233f8114184a3e7d71") (:authors ("Tung Dao" . "me@tungdao.com")) (:maintainer "Tung Dao" . "me@tungdao.com"))]) -(color-theme . [(20190220 1115) nil "An OBSOLETE color-theme implementation" tar ((:commit . "3a2f6b615f5e2401e30d93a3e0adc210bbb4b7aa") (:keywords "faces") (:authors ("Jonadab the Unsightly One" . "jonadab@bright.net")) (:maintainer "Xavier Maillard" . "zedek@gnu.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki.pl?ColorTheme"))]) -(color-moccur . [(20141223 35) nil "multi-buffer occur (grep) mode" single ((:commit . "4f1c59ffd1ccc2ab1a171cd6b721e8cb9e002fb7") (:keywords "convenience") (:url . "http://www.bookshelf.jp/elc/color-moccur.el"))]) -(color-identifiers-mode . [(20181120 1951) ((dash (2 5 0)) (emacs (24))) "Color identifiers based on their names" single ((:commit . "4ba39f0274e1f85e50c956c507f942d950891a20") (:keywords "faces" "languages") (:authors ("Ankur Dave" . "ankurdave@gmail.com")) (:maintainer "Ankur Dave" . "ankurdave@gmail.com") (:url . "https://github.com/ankurdave/color-identifiers-mode"))]) -(colonoscopy-theme . [(20170808 1309) ((emacs (24 0))) "an Emacs 24 theme based on Colonoscopy (tmTheme)" single ((:commit . "64bbb322b13dae91ce9f1e3581f836f94f800ead") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) -(colemak-evil . [(20171015 2307) ((evil (20170323 1140))) "Colemak-friendly keybindings for Evil." single ((:commit . "192c779281ae1fbf2405dcdb55b3c5b2a1d0b3d1") (:authors ("Patrick Brinich-Langlois" . "pbrinichlanglois@gmail.com")) (:maintainer "Patrick Brinich-Langlois" . "pbrinichlanglois@gmail.com") (:url . "https://github.com/patbl/colemak-evil"))]) -(coin-ticker . [(20170611 727) ((request (0 3 0)) (emacs (25))) "Show a cryptocurrency price ticker" single ((:commit . "9efab90fe4e6f29464af14e0d8fd1e20c0147b80") (:keywords "news") (:authors ("Evan Klitzke" . "evan@eklitzke.org")) (:maintainer "Evan Klitzke" . "evan@eklitzke.org") (:url . "https://github.com/eklitzke/coin-ticker-mode"))]) -(coffee-mode . [(20170324 940) ((emacs (24 3))) "Major mode for CoffeeScript code" single ((:commit . "86ab8aae8662e8eff54d3013010b9c693b16eac5") (:keywords "coffeescript" "major" "mode") (:authors ("Chris Wanstrath" . "chris@ozmm.org")) (:maintainer "Chris Wanstrath" . "chris@ozmm.org") (:url . "http://github.com/defunkt/coffee-mode"))]) -(coffee-fof . [(20131012 1230) ((coffee-mode (0 4 1))) "A coffee-mode configuration for `ff-find-other-file'." single ((:commit . "211529594bc074721c6cbc4edb73a63cc05f89ac") (:keywords "coffee-mode") (:authors ("Yasuyki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyki Oka" . "yasuyk@gmail.com") (:url . "http://github.com/yasuyk/coffee-fof"))]) -(codic . [(20150926 1127) ((emacs (24)) (cl-lib (0 5))) "Search Codic (codic.jp) naming dictionaries" tar ((:commit . "52bbb6997ef4ab9fb7fea43bbfff7f04671aa557") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-codic"))]) -(codesearch . [(20181006 1431) ((log4e (0 3 1))) "Core support for managing codesearch tools" tar ((:commit . "f6eb96f034a925444412cfa03e45e0ccbbafe3f2") (:keywords "tools" "development" "search") (:authors ("Austin Bingham" . "austin.bingham@gmail.com") ("Youngjoo Lee" . "youngker@gmail.com")) (:maintainer "Austin Bingham" . "austin.bingham@gmail.com") (:url . "https://github.com/abingham/emacs-codesearch"))]) -(codebug . [(20140929 2137) nil "Interact with codebug" single ((:commit . "ac0e4331ba94ccb5203fa492570e1ca6b90c3d52") (:authors ("Shane Dowling")) (:maintainer "Shane Dowling") (:url . "http://www.shanedowling.com/"))]) -(code-stats . [(20190407 236) ((emacs (25)) (request (0 3 0))) "Code::Stats plugin" single ((:commit . "15242297279cb0dee01fbb93ef7536e337e20bb7") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/code-stats-emacs"))]) -(code-library . [(20160426 1218) ((gist (1 3 1))) "use org-mode to collect code snippets" single ((:commit . "32d59c5c845d6dbdda18f9bd1c03a58d55417fc5") (:keywords "lisp" "code") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com"))]) -(code-archive . [(20190612 308) ((emacs (24 3))) "git supported code archive and reference for org-mode" single ((:commit . "1ad9af6679d0294c3056eab9cad673f29c562721") (:authors ("Michael Schuldt" . "mbschuldt@gmail.com")) (:maintainer "Michael Schuldt" . "mbschuldt@gmail.com") (:url . "https://github.com/mschuldt/code-archive"))]) -(cobra-mode . [(20140116 2116) nil "Major mode for .NET-based Cobra language" single ((:commit . "acd6e53f6286af5176471d01f25257e5ddb6dd01") (:keywords "languages") (:authors ("Taylor \"Nekroze\" Lawson")) (:maintainer "Taylor \"Nekroze\" Lawson") (:url . "http://github.com/Nekroze/cobra-mode"))]) -(cobalt . [(20180304 1155) ((emacs (24))) "Easily use the Cobalt.rs static site generator" single ((:commit . "634ace275697e188746ca22a30ff94380ec756be") (:keywords "convenience") (:authors ("Juan Karlo Licudine" . "accidentalrebel@gmail.com")) (:maintainer "Juan Karlo Licudine" . "accidentalrebel@gmail.com") (:url . "https://github.com/cobalt-org/cobalt.el"))]) -(cnfonts . [(20190314 1132) ((emacs (24))) "A simple Chinese fonts config tool" tar ((:commit . "c31d13cc3c320fd5bf24bf8309c6d982a25c49ee") (:keywords "convenience" "chinese" "font") (:authors ("Feng Shu" . "tumashu@163.com")) (:maintainer "Feng Shu" . "tumashu@163.com") (:url . "https://github.com/tumashu/cnfonts"))]) -(cmm-mode . [(20150225 746) nil "Major mode for C-- source code" single ((:commit . "c3ad514dff3eb30434f6b20d953276d4c00de1ee"))]) -(cmd-to-echo . [(20161203 2133) ((emacs (24 4)) (s (1 11 0)) (shell-split-string (20151224 208))) "Show the output of long-running commands in the echo area" single ((:commit . "e0e874fc0e1ad6d291e39ed76023445297ad438a") (:authors ("Tijs Mallaerts" . "tijs.mallaerts@gmail.com")) (:maintainer "Tijs Mallaerts" . "tijs.mallaerts@gmail.com"))]) -(cmake-project . [(20171121 1115) nil "Integrates CMake build process with Emacs" single ((:commit . "d3f408f226eff3f77f7e00dd519f4efc78fd292d") (:keywords "c" "cmake" "languages" "tools") (:authors ("Alexander Lamaison" . "alexander.lamaison@gmail")) (:maintainer "Alexander Lamaison" . "alexander.lamaison@gmail") (:url . "http://github.com/alamaison/emacs-cmake-project"))]) -(cmake-mode . [(20180709 1426) nil "major-mode for editing CMake sources" single ((:commit . "0a104224182565645b6bb8a1f81031c5afdc67ed"))]) -(cmake-ide . [(20190527 907) ((emacs (24 4)) (cl-lib (0 5)) (seq (1 11)) (levenshtein (0)) (s (1 11 0))) "Calls CMake to find out include paths and other compiler flags" single ((:commit . "6fc593e47d28bfe531d1029f61e4efeb2eefe982") (:keywords "languages") (:authors ("Atila Neves" . "atila.neves@gmail.com")) (:maintainer "Atila Neves" . "atila.neves@gmail.com") (:url . "http://github.com/atilaneves/cmake-ide"))]) -(cmake-font-lock . [(20190325 450) ((cmake-mode (0 0))) "Advanced, type aware, highlight support for CMake" single ((:commit . "5b71ab212f272b7c62a9e7b21aa43a2533330b39") (:keywords "faces" "languages") (:authors ("Anders Lindgren")) (:maintainer "Anders Lindgren") (:url . "https://github.com/Lindydancer/cmake-font-lock"))]) -(cm-mode . [(20170203 2107) ((cl-lib (0 5))) "Minor mode for CriticMarkup" single ((:commit . "276d49c859822265070ae5dfbb403fd7d8d06436") (:keywords "text" "markdown") (:authors ("Joost Kremers" . "joostkremers@fastmail.fm")) (:maintainer "Joost Kremers" . "joostkremers@fastmail.fm"))]) -(clues-theme . [(20161213 1127) ((emacs (24 0))) "an Emacs 24 theme which may well be fully awesome..." single ((:commit . "abd61f2b7f3e98de58ca26e6d1230e70c6406cc7") (:authors ("Jason Milkins" . "jasonm23@gmail.com")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com") (:url . "https://github.com/emacsfodder/emacs-clues-theme"))]) -(cloud-to-butt-erc . [(20130627 2308) nil "Replace 'the cloud' with 'my butt'" single ((:commit . "6710c03d1bc91736435cbfe845924940cae34e5c") (:authors ("David Leatherman" . "leathekd@gmail.com")) (:maintainer "David Leatherman" . "leathekd@gmail.com") (:url . "http://www.github.com/leathekd/cloud-to-butt-erc"))]) -(closure-lint-mode . [(20101118 2124) nil "minor mode for the Closure Linter" single ((:commit . "bc3d2fd5c35580bf1b8af43b12484c95a343b4b5") (:keywords "tools" "closure" "javascript" "lint" "flymake") (:authors ("Roman Scherer" . "roman@burningswell.com")) (:maintainer "Roman Scherer" . "roman@burningswell.com") (:url . "https://github.com/r0man/closure-lint-mode"))]) -(closql . [(20190615 353) ((emacs (25 1)) (emacsql-sqlite (3 0 0))) "store EIEIO objects using EmacSQL" single ((:commit . "7db24ab416925214b364ffe6bb36e367c43d5d35") (:keywords "extensions") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/emacscollective/closql"))]) -(clomacs . [(20190313 1517) ((emacs (24 3)) (cider (0 21 0)) (s (1 12 0)) (simple-httpd (1 4 6))) "Simplifies Emacs Lisp interaction with Clojure." single ((:commit . "461be59e5f480af292c84fd6f7d88f1f885371a5") (:keywords "clojure" "interaction") (:authors ("Kostafey" . "kostafey@gmail.com")) (:maintainer "Kostafey" . "kostafey@gmail.com") (:url . "https://github.com/clojure-emacs/clomacs"))]) -(clojure-snippets . [(20180314 1308) ((yasnippet (0 10 0))) "Yasnippets for clojure" tar ((:commit . "6068dca90467a0f4ebc2cd39338a173d6f5ddc04"))]) -(clojure-quick-repls . [(20150814 736) ((cider (0 8 1)) (dash (2 9 0))) "Quickly create Clojure and ClojureScript repls for a project." single ((:commit . "730311dd3ac4e0aceb0204f818b422017873467f") (:keywords "languages" "clojure" "cider" "clojurescript") (:url . "https://github.com/symfrog/clojure-quick-repls"))]) -(clojure-mode-extra-font-locking . [(20180114 1711) ((clojure-mode (3 0))) "Extra font-locking for Clojure mode" single ((:commit . "a9cbe6a37f51da1c37035390d43500b437e8bff2") (:keywords "languages" "lisp") (:authors ("Bozhidar Batsov" . "bozhidar@batsov.com")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.com") (:url . "http://github.com/clojure-emacs/clojure-mode"))]) -(clojure-mode . [(20190508 1522) ((emacs (25 1))) "Major mode for Clojure code" single ((:commit . "a9cbe6a37f51da1c37035390d43500b437e8bff2") (:keywords "languages" "clojure" "clojurescript" "lisp") (:url . "http://github.com/clojure-emacs/clojure-mode"))]) -(clojars . [(20180825 1951) ((request-deferred (0 2 0))) "clojars.org search interface" single ((:commit . "696c5b056e45067512a7d6dcce2515f3c639f61b") (:keywords "docs" "help" "tools") (:authors ("Joshua Miller" . "josh@joshmiller.io")) (:maintainer "Joshua Miller" . "josh@joshmiller.io") (:url . "https://github.com/joshuamiller/clojars.el"))]) -(clocker . [(20190214 1833) ((projectile (0 11 0)) (dash (2 10)) (spaceline (2 0 1))) "Note taker and clock-in enforcer" single ((:commit . "c4d76968a49287ce3bac0832bb5d5d076054c96f") (:keywords "org") (:authors ("Roman Gonzalez" . "romanandreg@gmail.com")) (:maintainer "Roman Gonzalez" . "romanandreg@gmail.com"))]) -(cloc . [(20170728 1824) ((cl-lib (0 5))) "count lines of code over emacs buffers" single ((:commit . "f30f0472e465cc8d433d2473e9d3b8dfe2c94491") (:keywords "cloc" "count" "source" "code" "lines") (:authors ("Danny McClanahan" . "danieldmcclanahan@gmail.com")) (:maintainer "Danny McClanahan" . "danieldmcclanahan@gmail.com") (:url . "https://github.com/cosmicexplorer/cloc-emacs"))]) -(clmemo . [(20160326 1623) nil "Change Log MEMO" tar ((:commit . "846a81b984d71edf8278a4d9f9b886e44d5b8365") (:keywords "convenience") (:authors ("Masayuki Ataka" . "masayuki.ataka@gmail.com")) (:maintainer "Masayuki Ataka" . "masayuki.ataka@gmail.com") (:url . "https://github.com/ataka/clmemo"))]) -(cljsbuild-mode . [(20160402 1700) nil "A minor mode for the ClojureScript 'lein cljsbuild' command" single ((:commit . "fa2315660cb3ce944b5e16c679dcf5afd6a97f4c") (:keywords "clojure" "clojurescript" "leiningen" "compilation") (:url . "http://github.com/kototama/cljsbuild-mode"))]) -(cljr-helm . [(20160913 828) ((clj-refactor (0 13 0)) (helm-core (1 7 7)) (cl-lib (0 5))) "Wraps clojure refactor commands with helm" single ((:commit . "f2fc7b698a56e4a44d5dfbc6a55d77a93c0fa9a4") (:keywords "helm" "clojure" "refactor") (:authors ("Phil Jackson" . "phil@shellarchive.co.uk")) (:maintainer "Phil Jackson" . "phil@shellarchive.co.uk") (:url . "https://github.com/philjackson/cljr-helm"))]) -(clj-refactor . [(20190618 716) ((emacs (25 1)) (seq (2 19)) (yasnippet (0 6 1)) (paredit (24)) (multiple-cursors (1 2 2)) (clojure-mode (5 6 1)) (cider (0 17 0)) (edn (1 1 2)) (inflections (2 3)) (hydra (0 13 2))) "A collection of commands for refactoring Clojure code" tar ((:commit . "50d2d8aad5e0bd8002173b300f8419d72ceab7af") (:keywords "convenience" "clojure" "cider") (:authors ("Magnar Sveen" . "magnars@gmail.com") ("Lars Andersen" . "expez@expez.com") ("Benedek Fazekas" . "benedek.fazekas@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(clips-mode . [(20170909 823) nil "Major mode for editing CLIPS code and REPL" tar ((:commit . "dd38e2822640a38f7d8bfec4f69d8dd24be27074"))]) -(clippy . [(20161028 1954) ((pos-tip (1 0))) "Show tooltip with function documentation at point" single ((:commit . "e77f6b63e54d74e243be98accad474e38f7e2a86") (:keywords "docs") (:authors ("Matus Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matus Goljer" . "matus.goljer@gmail.com") (:url . "https://github.com/Fuco1/clippy.el"))]) -(clipmon . [(20180129 1054) nil "Clipboard monitor - watch system clipboard, add changes to kill ring/autoinsert" tar ((:commit . "95dc56c7ed84a654ec90f4740eb6df1050de8cf1") (:keywords "convenience") (:authors ("Brian Burns" . "bburns.km@gmail.com")) (:maintainer "Brian Burns" . "bburns.km@gmail.com") (:url . "https://github.com/bburns/clipmon"))]) -(cliphist . [(20181229 1411) ((emacs (24 3)) (ivy (0 9 0))) "Read data from clipboard managers at Linux and Mac" tar ((:commit . "232ab0b3f6d502de61ebe76681a6a04d4223b877") (:keywords "clipboard" "manager" "history") (:authors ("Chen Bin <chenin DOT sh AT gmail DOT com>")) (:maintainer "Chen Bin <chenin DOT sh AT gmail DOT com>") (:url . "http://github.com/redguardtoo/cliphist"))]) -(click-mode . [(20180611 44) ((emacs (24))) "Major mode for the Click Modular Router Project" single ((:commit . "b94ea8cce89cf0e753b2ab915202d49ffc470fb6") (:keywords "click" "router") (:authors ("Brian Malehorn" . "bmalehorn@gmail.com")) (:maintainer "Brian Malehorn" . "bmalehorn@gmail.com") (:url . "https://github.com/bmalehorn/click-mode"))]) -(clevercss . [(20131229 155) nil "A major mode for editing CleverCSS files" single ((:commit . "b8a3c0dd674367c62b1a1ffec84d88fe0c0219bc") (:keywords "languages" "css") (:authors ("Joe Schafer" . "joesmoe10@gmail.com")) (:maintainer "Joe Schafer" . "joesmoe10@gmail.com"))]) -(clear-text . [(20160406 2043) nil "Make you use clear text" tar ((:commit . "b50669b6077d6948f72cb3c649281d206e0c2f2b") (:keywords "convenience") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:url . "https://github.com/xuchunyang/clear-text.el"))]) -(clean-buffers . [(20160529 2259) ((cl-lib (0 5))) "clean useless buffers" single ((:commit . "1be6c54e3095761b6b64bf749faae3dfce94e72a") (:keywords "convenience" "usability" "buffers") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com"))]) -(clean-aindent-mode . [(20171017 2043) nil "Simple indent and unindent, trims indent white-space" single ((:commit . "a97bcae8f43a9ff64e95473e4ef0d8bafe829211") (:keywords "indentation" "whitespace" "backspace") (:authors ("peter marinov" . "efravia@gmail.com")) (:maintainer "peter marinov" . "efravia@gmail.com") (:url . "https://github.com/pmarinov/clean-aindent-mode"))]) -(clang-format . [(20180406 1514) ((cl-lib (0 3))) "Format code using clang-format" single ((:commit . "1469728c61dcba8fa09c456e841f97e9eb75fa85") (:keywords "tools" "c"))]) -(cl-libify . [(20181130 230) ((emacs (25))) "Update elisp code to use cl-lib instead of cl" single ((:commit . "e205b96f944a4f312fd523804cbbaf00027a3c8b") (:keywords "lisp") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/cl-libify"))]) -(cl-lib-highlight . [(20140127 2112) ((cl-lib (0 3))) "full cl-lib font-lock highlighting" single ((:commit . "fd1b308e6e989791d1df14438efa6b77d20f7c7e") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/cl-lib-highlight"))]) -(cl-format . [(20160413 45) nil "CL format routine." tar ((:commit . "4380cb8009c47cc6d9098b383082b93b1aefa460"))]) -(citeproc . [(20190422 2017) ((emacs (25)) (dash (2 13 0)) (s (1 12 0)) (f (0 18 0)) (queue (0 2)) (string-inflection (1 0)) (org (9))) "A CSL 1.0.1 Citation Processor" tar ((:commit . "abab214473b7486f662c147f1c36b2a6b4b0302d") (:keywords "bib") (:authors ("András Simonyi" . "andras.simonyi@gmail.com")) (:maintainer "András Simonyi" . "andras.simonyi@gmail.com") (:url . "https://github.com/andras-simonyi/citeproc-el"))]) -(circe-notifications . [(20180102 2318) ((emacs (24 4)) (circe (2 3)) (alert (1 2))) "Add desktop notifications to Circe." single ((:commit . "291149ac12877bbd062da993479d3533a26862b0") (:authors ("Ruben Maher" . "r@rkm.id.au")) (:maintainer "Ruben Maher" . "r@rkm.id.au") (:url . "https://github.com/eqyiel/circe-notifications"))]) -(circe . [(20190322 1242) ((cl-lib (0 5))) "Client for IRC in Emacs" tar ((:commit . "6ccd4b494cbae9d28091217654f052eaea321007") (:url . "https://github.com/jorgenschaefer/circe"))]) -(circadian . [(20181024 1256) ((emacs (24 4))) "Theme-switching based on daytime" single ((:commit . "414127acad8e2e0092ca60918e6a7cb89da6e28a") (:keywords "themes") (:authors ("Guido Schmidt")) (:maintainer "Guido Schmidt" . "git@guidoschmidt.cc") (:url . "https://github.com/GuidoSchmidt/circadian"))]) -(cinspect . [(20150716 233) ((emacs (24)) (cl-lib (0 5)) (deferred (0 3 1)) (python-environment (0 0 2))) "Use cinspect to look at the CPython source of builtins and other C objects!" single ((:commit . "4e199a90f89b335cccda1518aa0963e0a1d4fbab") (:keywords "python") (:authors ("Ben Yelsey" . "ben.yelsey@gmail.com")) (:maintainer "Ben Yelsey" . "ben.yelsey@gmail.com") (:url . "https://github.com/inlinestyle/cinspect-mode"))]) -(cil-mode . [(20160622 1430) nil "Common Intermediate Language mode" single ((:commit . "a78a88ca9a66a82f069329a96e34b67478ae2d9b") (:keywords "languages") (:authors ("Friedrich von Never" . "friedrich@fornever.me")) (:maintainer "Friedrich von Never" . "friedrich@fornever.me") (:url . "https://github.com/ForNeVeR/cil-mode"))]) -(ciel . [(20180914 815) ((emacs (24))) "A command that is clone of \"ci\" in vim." single ((:commit . "429773a3c551691a463ecfddd634b8bae2f48503") (:keywords "convinience") (:authors ("Takuma Matsushita" . "cs14095@gmail.com")) (:maintainer "Takuma Matsushita" . "cs14095@gmail.com") (:url . "https://github.com/cs14095/ciel.el"))]) -(cider-hydra . [(20181015 727) ((cider (0 18 0)) (hydra (0 13 0))) "Hydras for CIDER." single ((:commit . "5956c3909cd9beae11f64973e4f0d830cea7860d") (:keywords "convenience" "tools") (:authors ("Tianxiang Xiong" . "tianxiang.xiong@gmail.com")) (:maintainer "Tianxiang Xiong" . "tianxiang.xiong@gmail.com") (:url . "https://github.com/clojure-emacs/cider-hydra"))]) -(cider-eval-sexp-fu . [(20190311 2152) ((emacs (24)) (eval-sexp-fu (0 5 0))) "Briefly highlights an evaluated sexp." single ((:commit . "7fd229f1441356866aedba611fd0cf4e89b50921") (:keywords "languages" "clojure" "cider") (:authors ("Sylvain Benner" . "sylvain.benner@gmail.com")) (:maintainer "Sylvain Benner" . "sylvain.benner@gmail.com"))]) -(cider-decompile . [(20151122 537) ((cider (0 3 0)) (javap-mode (9))) "decompilation extension for cider" single ((:commit . "5d87035f3c3c14025e8f01c0c53d0ce2c8f56651") (:keywords "languages" "clojure" "cider") (:authors ("Dmitry Bushenko")) (:maintainer "Dmitry Bushenko") (:url . "http://www.github.com/clojure-emacs/cider-decompile"))]) -(cider . [(20190607 2013) ((emacs (25)) (clojure-mode (5 9)) (parseedn (0 1)) (pkg-info (0 4)) (queue (0 2)) (spinner (1 7)) (seq (2 16)) (sesman (0 3 2))) "Clojure Interactive Development Environment that Rocks" tar ((:commit . "03257b170a047320fe2d4c313608d91a29002a40") (:keywords "languages" "clojure" "cider") (:authors ("Tim King" . "kingtim@gmail.com") ("Phil Hagelberg" . "technomancy@gmail.com") ("Bozhidar Batsov" . "bozhidar@batsov.com") ("Artur Malabarba" . "bruce.connor.am@gmail.com") ("Hugo Duncan" . "hugo@hugoduncan.org") ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Bozhidar Batsov" . "bozhidar@batsov.com") (:url . "http://www.github.com/clojure-emacs/cider"))]) -(chyla-theme . [(20180302 1658) nil "chyla.org - green color theme." single ((:commit . "ae5e7ecace2ab474151eb0ac5ef07fba2dc32f8a") (:authors ("Adam ChyÅ‚a" . "adam@chyla.org")) (:maintainer "Adam ChyÅ‚a" . "adam@chyla.org") (:url . "https://github.com/chyla/ChylaThemeForEmacs"))]) -(chruby . [(20180114 1652) ((cl-lib (0 5))) "Emacs integration for chruby" single ((:commit . "42bc6d521f832eca8e2ba210f30d03ad5529788f") (:keywords "languages") (:authors ("Arne Brasseur" . "arne@arnebrasseur.net")) (:maintainer "Arne Brasseur" . "arne@arnebrasseur.net") (:url . "https://github.com/plexus/chruby.el"))]) -(chronos . [(20150602 1529) nil "multiple simultaneous countdown / countup timers" tar ((:commit . "b360d9dae57aa553cf2a14ffa0756a51ad71de09") (:keywords "calendar") (:authors ("David Knight" . "dxknight@opmbx.org")) (:maintainer "David Knight" . "dxknight@opmbx.org") (:url . "http://github.com/dxknight/chronos"))]) -(chronometer . [(20190304 1528) ((emacs (24))) "a [not so] simple chronometer" single ((:commit . "8457b296ef87be339cbe47730b922757d60bdcd5") (:keywords "tools" "convenience") (:authors ("Marcelo Toledo" . "marcelo@marcelotoledo.com")) (:maintainer "Marcelo Toledo" . "marcelo@marcelotoledo.com") (:url . "https://github.com/marcelotoledo/chronometer"))]) -(choice-program . [(20190615 1742) ((emacs (26)) (cl-lib (1 0))) "parameter based program" tar ((:commit . "b9eabd7d20967304eb2316d6846e0046edf2df36") (:keywords "exec" "execution" "parameter" "option") (:authors ("Paul Landes")) (:maintainer "Paul Landes") (:url . "https://github.com/plandes/choice-program"))]) -(chinese-yasdcv . [(20171015 144) ((cl-lib (0 5)) (pyim (1 6 0))) "Yet another StarDict frontend" tar ((:commit . "5ab830daf1273d5a5cddcb94b56a9737f12d996f") (:keywords "convenience" "chinese" "dictionary") (:authors ("Feng Shu" . "tumashu@gmail.com")) (:maintainer "Feng Shu" . "tumashu@gmail.com") (:url . "https://github.com/tumashu/chinese-yasdcv"))]) -(chinese-word-at-point . [(20170811 941) ((cl-lib (0 5))) "Add `chinese-word' thing to `thing-at-point'" single ((:commit . "8223d7439e005555b86995a005b225ae042f0538") (:keywords "convenience" "chinese") (:authors ("Chunyang Xu" . "xuchunyang56@gmail.com")) (:maintainer "Chunyang Xu" . "xuchunyang56@gmail.com") (:url . "https://github.com/xuchunyang/chinese-word-at-point.el"))]) -(chinese-wbim . [(20150624 350) nil "Enable Wubi Input Method in Emacs." tar ((:commit . "57ff61ff3895d77335709d24b40cefc4d10b0095"))]) -(chinese-number . [(20161008 509) nil "Convert numbers between Arabic and Chinese formats" single ((:commit . "7311c2a0c5eea5f016a90d733dfe75144c302fb2") (:authors (nil . "zhcosin<zhcosin@163.com>")) (:maintainer nil . "zhcosin<zhcosin@163.com>") (:url . "https://github.com/zhcosin/chinese-number"))]) -(chinese-conv . [(20170807 2128) ((cl-lib (0 5))) "Conversion between Chinese Characters with opencc or cconv" single ((:commit . "b56815bbb163d642e97fa73093b5a7e87cc32574") (:authors ("gucong" . "gucong43216@gmail.com")) (:maintainer "gucong" . "gucong43216@gmail.com") (:url . "https://github.com/gucong/emacs-chinese-conv"))]) -(chicken-scheme . [(20141116 1939) nil "Scheme-mode extensions for Chicken Scheme" single ((:commit . "19b0b08b5592063e852cae094b394c7d1f923639") (:authors ("Daniel Leslie" . "dan@ironoxide.ca")) (:maintainer "Daniel Leslie" . "dan@ironoxide.ca") (:url . "http://github.com/dleslie/chicken-scheme"))]) -(cherry-blossom-theme . [(20150622 342) ((emacs (24 0))) "a soothing color theme for Emacs24." single ((:commit . "eea7653e00f35973857ee23b27bc2fae5e753e50") (:authors ("Ben Yelsey" . "byelsey1@gmail.com")) (:maintainer "Ben Yelsey" . "byelsey1@gmail.com") (:url . "https://github.com/inlinestyle/emacs-cherry-blossom-theme"))]) -(chef-mode . [(20180628 1453) nil "minor mode for editing an opscode chef repository" single ((:commit . "048d691cb63981ae235763d4a6ced4af5c729924") (:keywords "chef" "knife") (:authors ("Maciej Pasternacki" . "maciej@pasternacki.net")) (:maintainer "Maciej Pasternacki" . "maciej@pasternacki.net"))]) -(cheerilee . [(20160313 1835) ((xelb (0 1))) "Toolkit library" tar ((:commit . "41bd81b5b0bb657241ceda5be6af5e07254d7376") (:keywords "tools"))]) -(chee . [(20171123 2233) ((dash (2 12 1)) (s (1 10 0)) (f (0 18 2))) "Interface to chee using dired and image-dired" tar ((:commit . "669ff9ee429f24c3c2d03b83d9cb9aec5f86bb8b") (:url . "https://github.com/eikek/chee/tree/release/0.3.0/emacs"))]) -(checkbox . [(20141117 58) ((emacs (24)) (cl-lib (0 5))) "Quick manipulation of textual checkboxes" single ((:commit . "335afa4404adf72973195a580458927004664d98") (:keywords "convenience") (:authors ("Cameron Desautels" . "camdez@gmail.com")) (:maintainer "Cameron Desautels" . "camdez@gmail.com") (:url . "http://github.com/camdez/checkbox.el"))]) -(cheatsheet . [(20170126 2150) ((emacs (24)) (cl-lib (0 5))) "create your own cheatsheet" single ((:commit . "e4f8e0110167ea16a17a74517d1f10cb7ff805b8") (:keywords "convenience" "usability") (:authors ("Shirin Nikita" . "shirin.nikita@gmail.com")) (:maintainer "Shirin Nikita" . "shirin.nikita@gmail.com") (:url . "http://github.com/darksmile/cheatsheet/"))]) -(cheat-sh . [(20170802 1118) ((emacs (24))) "Interact with cheat.sh" single ((:commit . "e90445124f3f145a047779e42d070a3c5e150f70") (:keywords "docs" "help") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/cheat-sh.el"))]) -(chatwork . [(20170511 442) nil "ChatWork client for Emacs" single ((:commit . "fea231d479f06bf40dbfcf45de143eecc9ed744c") (:keywords "web") (:authors ("Masayuki Ataka" . "masayuki.ataka@gmail.com")) (:maintainer "Masayuki Ataka" . "masayuki.ataka@gmail.com") (:url . "https://github.com/ataka/chatwork"))]) -(charmap . [(20160309 946) nil "Unicode table for Emacs" single ((:commit . "bd4b3e466d7a9433cf35167e3a68ec74fe631bb2") (:keywords "unicode" "character" "ucs") (:authors ("Anan Mikami" . "lateau@gmail.com")) (:maintainer "Anan Mikami" . "lateau@gmail.com") (:url . "https://github.com/lateau/charmap"))]) -(char-menu . [(20190101 705) ((emacs (24 3)) (avy-menu (0 1))) "Create your own menu for fast insertion of arbitrary symbols" single ((:commit . "851b5d75bf0b5f2fdf3b106bb773f81891e328a3") (:keywords "convenience" "editing") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/char-menu"))]) -(chapel-mode . [(20160504 808) nil "a CC Mode for Chapel derived from derived-mode-ex.el" single ((:commit . "6e095edd7639f5f0a81e14d6412410b49466697e") (:keywords "chapel" "languages" "oop") (:authors ("Steven T Balensiefer")) (:maintainer "Russel Winder" . "russel@winder.org.uk"))]) -(change-inner . [(20150707 1544) ((expand-region (0 7))) "Change contents based on semantic units" single ((:commit . "52c543a4b9808c0d15b565fcdf646c9779de33e8") (:keywords "convenience" "extensions") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(challenger-deep-theme . [(20181205 1834) ((emacs (24))) "challenger-deep Theme" single ((:commit . "96b7b1e2a9a3f8ffcbc36a1f37251b1232539d89") (:authors ("MaxSt")) (:maintainer "MaxSt") (:url . "https://github.com/challenger-deep-theme/emacs"))]) -(cg . [(20190316 2206) ((emacs (24 3))) "major mode for editing Constraint Grammar files" single ((:commit . "9349600829ca1758306e703a649874f8c63955fa") (:keywords "languages") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org") (:url . "https://visl.sdu.dk/constraint_grammar.html"))]) -(cftag-mode . [(20190614 1301) ((emacs (25))) "Emacs mode for editing tag-based CFML files" single ((:commit . "4accb2d5e188fbd0ad642e1c64c05e6633a1b375") (:authors ("Andrew Myers" . "am2605@gmail.com")) (:maintainer "Andrew Myers" . "am2605@gmail.com") (:url . "https://github.com/am2605/cftag-mode"))]) -(cfrs . [(20190617 1536) ((emacs (25 2)) (dash (2 11 0)) (s (1 10 0)) (posframe (0 4 3))) "child-frame based read-string" single ((:commit . "aae0b9773b79673e6a52af538b32b5ee8e5971ee") (:authors ("Alexander Miller" . "alexanderm@web.de")) (:maintainer "Alexander Miller" . "alexanderm@web.de") (:url . "https://github.com/Alexander-Miller/cfrs"))]) -(cframe . [(20170917 2209) ((emacs (25)) (buffer-manage (0 6)) (dash (2 13 0))) "customize a frame and fast switch size and positions" single ((:commit . "bb99672502046e87c8f029ce98c637f762a4fc54") (:keywords "frame" "customize") (:authors ("Paul Landes")) (:maintainer "Paul Landes") (:url . "https://github.com/plandes/cframe"))]) -(cfml-mode . [(20190617 1130) ((emacs (25))) "Emacs mode for editing CFML files" single ((:commit . "b06d7cee2af0ed5d55a94f0db80fc1f429a1829a") (:authors ("Andrew Myers" . "am2605@gmail.com")) (:maintainer "Andrew Myers" . "am2605@gmail.com") (:url . "https://github.com/am2605/cfml-mode"))]) -(cff . [(20160118 2018) ((cl-lib (0 5)) (emacs (24))) "Search of the C/C++ file header by the source and vice versa" single ((:commit . "b6ab2a28e64ef06f281ec74cfe3114e450644dfa") (:keywords "find-file") (:authors ("Alexey Veretennikov" . "alexey.veretennikov@gmail.com")) (:maintainer "Alexey Veretennikov" . "alexey.veretennikov@gmail.com") (:url . "https://github.com/fourier/cff"))]) -(cfengine-code-style . [(20171115 2108) nil "C code style for CFEngine project." single ((:commit . "920b823824cf75a47e9862ed2bc86be3d71cf735") (:authors ("Mikhail Gusarov" . "mikhail.gusarov@cfengine.com")) (:maintainer "Mikhail Gusarov" . "mikhail.gusarov@cfengine.com") (:url . "https://github.com/cfengine/core"))]) -(ceylon-mode . [(20180606 1324) ((emacs (25))) "Major mode for editing Ceylon source code" single ((:commit . "948515672bc596dc118e8e3ede3ede5ec6a3c95a") (:keywords "languages" "ceylon") (:authors ("Lucas Werkmeister" . "mail@lucaswerkmeister.de")) (:maintainer "Lucas Werkmeister" . "mail@lucaswerkmeister.de") (:url . "https://github.com/lucaswerkmeister/ceylon-mode"))]) -(cerbere . [(20181113 1641) ((pkg-info (0 5))) "Unit testing in Emacs for several programming languages" tar ((:commit . "c667c165d9c1657f13d2d46f09ba21b61f9402cc") (:keywords "python" "go" "php" "phpunit" "elisp" "ert" "tests" "tdd") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com") (:url . "https://github.com/nlamirault/cerbere"))]) -(centimacro . [(20140306 1427) nil "Assign multiple macros as global key bindings" single ((:commit . "1b97a9b558ed9c49d5da1bfbf29b2506575c2742") (:keywords "macros") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/centimacro"))]) -(centered-window . [(20171127 949) ((emacs (24 4))) "Center the text when there's only one window" single ((:commit . "24f7c5be9def20879f46659082d497e67b55d7af") (:keywords "faces" "windows") (:authors ("Anler Hernández Peral" . "inbox+emacs@anler.me")) (:maintainer "Anler Hernández Peral" . "inbox+emacs@anler.me") (:url . "https://github.com/anler/centered-window-mode"))]) -(centered-cursor-mode . [(20190306 1006) nil "cursor stays vertically centered" single ((:commit . "90e6d68a74d134f67c32d0621d64db90703c46eb") (:keywords "convenience") (:authors ("André Riemann" . "andre.riemann@web.de")) (:maintainer "André Riemann" . "andre.riemann@web.de") (:url . "https://github.com/andre-r/centered-cursor-mode.el"))]) -(celestial-mode-line . [(20180518 822) ((emacs (24))) "Show lunar phase and sunrise/-set time in modeline" single ((:commit . "3f5794aca99b977f1592cf1ab4516ae7922196a1") (:keywords "extensions") (:authors ("Peter" . "craven@gmx.net")) (:maintainer "Peter" . "craven@gmx.net") (:url . "https://github.com/ecraven/celestial-mode-line"))]) -(celery . [(20170225 924) ((emacs (24)) (dash-functional (2 11 0)) (s (1 9 0)) (deferred (0 3 2))) "a minor mode to draw stats from celery and more?" single ((:commit . "51197d74f5eaa8ae09144af7663a2f4277f07d16") (:keywords "celery" "convenience") (:authors ("ardumont" . "eniotna.t@gmail.com")) (:maintainer "ardumont" . "eniotna.t@gmail.com") (:url . "https://github.com/ardumont/emacs-celery"))]) -(cedit . [(20141231 1614) nil "paredit-like commands for c-like languages" single ((:commit . "0878d851b6307c162bfbddd2bb02789e5e27bc2c") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(cdnjs . [(20161031 1522) ((dash (2 13 0)) (deferred (0 4)) (f (0 17 2)) (pkg-info (0 5))) "A front end for http://cdnjs.com" single ((:commit . "ce19880d3ec3d81e6c665d0b1dfea99cc7a3f908") (:keywords "tools") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/yasuyk/cdnjs.el"))]) -(cdlatex . [(20190130 1419) nil "Fast input methods for LaTeX environments and math" single ((:commit . "90d785a94c0db7aa0043ea62f5807af3df155438") (:keywords "tex") (:authors ("Carsten Dominik" . "carsten.dominik@gmail.com")) (:maintainer "Carsten Dominik" . "carsten.dominik@gmail.com"))]) -(cdb . [(20151205 1343) nil "constant database (cdb) reader for Emacs Lisp" single ((:commit . "ad61579af269291b4446f4bab0a58522cc454f1c") (:keywords "cdb") (:authors ("Yusuke Shinyama <yusuke at cs . nyu . edu>")) (:maintainer "SKK Development Team" . "skk@ring.gr.jp"))]) -(cd-compile . [(20141108 1957) nil "run compile in a specific directory" single ((:commit . "10284ccae86afda4a37b09ba90acd1e2efedec9f") (:authors ("Jamie Nicol" . "jamie@thenicols.net")) (:maintainer "Jamie Nicol" . "jamie@thenicols.net"))]) -(ccls . [(20190513 157) ((emacs (25 1)) (lsp-mode (4 2)) (dash (0 14)) (projectile (1 0 0))) "ccls client for lsp-mode" tar ((:commit . "2764ddd57b03646f0327ea680a954b4a67450aef") (:keywords "languages" "lsp" "c++") (:authors ("Tobias Pisani, Fangrui Song")) (:maintainer "Tobias Pisani, Fangrui Song") (:url . "https://github.com/MaskRay/emacs-ccls"))]) -(ccc . [(20151205 1343) nil "buffer local cursor color control library" single ((:commit . "ad61579af269291b4446f4bab0a58522cc454f1c") (:keywords "cursor") (:authors ("Masatake YAMATO" . "masata-y@is.aist-nara.ac.jp")) (:maintainer "SKK Development Team" . "skk@ring.gr.jp") (:url . "https://github.com/skk-dev/ddskk/blob/master/READMEs/README.ccc.org"))]) -(cc-cedict . [(20181217 1112) ((emacs (25))) "Interface to CC-CEDICT (a Chinese-English dictionary)" single ((:commit . "0dd9bcd5337c8f16fc9c8d27daba4a9362695c99") (:authors ("Xu Chunyang" . "mail@xuchunyang.me")) (:maintainer "Xu Chunyang" . "mail@xuchunyang.me") (:url . "https://github.com/xuchunyang/cc-cedict.el"))]) -(cbm . [(20171116 1240) ((cl-lib (0 5))) "Switch to similar buffers." single ((:commit . "5b41c936ba9f6d170309a85ffebc9939c1050b31") (:keywords "buffers") (:authors ("Lukas Fürmetz" . "fuermetz@mailbox.org")) (:maintainer "Lukas Fürmetz" . "fuermetz@mailbox.org") (:url . "http://github.com/akermu/cbm.el"))]) -(catmacs . [(20170826 1157) ((emacs (24))) "Simple CAT interface for Yaesu Transceivers." single ((:commit . "65d3e0563abe6ff9577202cf2278074d4130fbdd") (:keywords "comm" "hardware") (:authors ("Frank Singleton" . "b17flyboy@gmail.com")) (:maintainer "Frank Singleton" . "b17flyboy@gmail.com") (:url . "https://bitbucket.org/pymaximus/catmacs"))]) -(caskxy . [(20140513 1539) ((log4e (0 2 0)) (yaxception (0 1))) "Control Cask in Emacs" single ((:commit . "dc18dcab7ed526070ab76de071c9c5272e6ac40e") (:keywords "convenience") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/caskxy"))]) -(cask-package-toolset . [(20170921 2256) ((emacs (24)) (cl-lib (0 3)) (s (1 6 1)) (dash (1 8 0)) (f (0 10 0)) (commander (0 2 0)) (ansi (0 1 0)) (shut-up (0 1 0))) "Toolsettize your package" tar ((:commit . "2c74cd827e88c7f8360581a841e45f0b794510e7") (:keywords "convenience" "tools") (:authors ("Adrien Becchis" . "adriean.khisbe@live.fr")) (:maintainer "Adrien Becchis" . "adriean.khisbe@live.fr") (:url . "http://github.com/AdrieanKhisbe/cask-package-toolset.el"))]) -(cask-mode . [(20160410 1449) ((emacs (24 3))) "major mode for editing Cask files" single ((:commit . "7c6719d3bb4fe552958634bd5a11abc56681f3a7") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(cask . [(20181107 942) ((s (1 8 0)) (dash (2 2 0)) (f (0 16 0)) (epl (0 5)) (shut-up (0 1 0)) (cl-lib (0 3)) (package-build (1 2)) (ansi (0 4 1))) "Cask: Project management for Emacs package development" single ((:commit . "199b4380dd3e178ff9df3a9d13d044d67e522b3f") (:keywords "speed" "convenience") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/cask/cask"))]) -(caseformat . [(20160115 1615) ((emacs (24)) (cl-lib (0 5)) (dash (2 12 1)) (s (1 10 0))) "Format based letter case converter" single ((:commit . "92a31f6a7cae0b4e2af106cd6f2b0abe6c2d8921") (:keywords "convenience") (:authors ("Hiroki YAMAKAWA" . "s06139@gmail.com")) (:maintainer "Hiroki YAMAKAWA" . "s06139@gmail.com") (:url . "https://github.com/HKey/caseformat"))]) -(caroline-theme . [(20160318 520) ((emacs (24))) "A trip down to New Orleans..." single ((:commit . "222fd483db304509f9e422dc82883d808e023ceb") (:authors ("Jack Killilea" . "jaaacckz1@gmail.com")) (:maintainer "Jack Killilea" . "jaaacckz1@gmail.com") (:url . "https://github.com/xjackk/carolines-theme"))]) -(cargo . [(20190614 2036) ((emacs (24 3)) (rust-mode (0 2 0)) (markdown-mode (2 4))) "Emacs Minor Mode for Cargo, Rust's Package Manager." tar ((:commit . "1a45c676970fea58dc9bfa37290327b820531d63") (:keywords "tools") (:authors ("Kevin W. van Rooijen" . "kevin.van.rooijen@attichacker.com")) (:maintainer "Kevin W. van Rooijen" . "kevin.van.rooijen@attichacker.com"))]) -(carbon-now-sh . [(20180331 1735) ((emacs (24 4)) (dash (2 12 0))) "https://carbon.now.sh integration." single ((:commit . "71dee6bc4f2a2cb02b9b7b5e643c4c92b880e6a4") (:keywords "convenience") (:authors ("Vitalii Elenhaupt")) (:maintainer "Vitalii Elenhaupt") (:url . "https://github.com/veelenga/carbon-now-sh.el"))]) -(capture . [(20130828 1644) nil "screencasting with \"avconv\" or \"ffmpeg\"" tar ((:commit . "1bb26060311da76767f70096218313fc93b0c806") (:authors ("Sergey Pashinin <sergey at pashinin dot com>")) (:maintainer "Sergey Pashinin <sergey at pashinin dot com>"))]) -(cangjie . [(20190322 1134) ((emacs (24 4)) (s (1 12 0)) (dash (2 14 1)) (f (0 2 0))) "retrieve cangjie code for han characters" single ((:commit . "f4dcb691e3bda6971cb89b07f368dd285179a8ff") (:keywords "convenience" "writing") (:url . "https://github.com/kisaragi-hiu/cangjie.el"))]) -(caml . [(20190413 1205) nil "OCaml code editing commands for Emacs" tar ((:commit . "38ebde12d3d529e6ef8078967997d32226e69e82") (:keywords "ocaml") (:authors ("Jacques Garrigue" . "garrigue@kurims.kyoto-u.ac.jp") ("Ian T Zimmerman" . "itz@rahul.net")) (:maintainer "Damien Doligez" . "damien.doligez@inria.fr") (:url . "https://github.com/ocaml/ocaml/"))]) -(camcorder . [(20190317 2138) ((emacs (24)) (names (20150000)) (cl-lib (0 5))) "Record screencasts in gif or other formats." single ((:commit . "b11ca61491a27681bb3131b72b51c105fd996bed") (:keywords "multimedia" "screencast") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com") (:url . "http://github.com/Bruce-Connor/camcorder.el"))]) -(calmer-forest-theme . [(20130926 510) nil "Darkish theme with green/orange tint" single ((:commit . "87ba7bae389084d13fe3bc34e0c923017eda6ba0") (:authors ("Artur Hefczyc, created 2003-04-18") ("David Caldwell" . "david@porkrind.org")) (:maintainer "Artur Hefczyc, created 2003-04-18") (:url . "https://github.com/caldwell/calmer-forest-theme"))]) -(call-graph . [(20190507 805) ((emacs (25 1)) (cl-lib (0 6 1)) (hierarchy (0 7 0)) (tree-mode (1 0 0)) (ivy (0 10 0))) "Library to generate call graph for c/c++ functions" tar ((:commit . "495f192859c71e161f89aa14d530faf2df18139d") (:keywords "programming" "convenience") (:authors ("Huming Chen" . "chenhuming@gmail.com")) (:maintainer "Huming Chen" . "chenhuming@gmail.com") (:url . "https://github.com/beacoder/call-graph"))]) -(calfw-org . [(20160303 258) nil "calendar view for org-agenda" single ((:commit . "03abce97620a4a7f7ec5f911e669da9031ab9088") (:keywords "calendar" "org") (:authors ("SAKURAI Masashi <m.sakurai at kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai at kiwanami.net>"))]) -(calfw-ical . [(20150703 819) nil "calendar view for ical format" single ((:commit . "03abce97620a4a7f7ec5f911e669da9031ab9088") (:keywords "calendar") (:authors ("SAKURAI Masashi <m.sakurai at kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai at kiwanami.net>"))]) -(calfw-howm . [(20170704 4) nil "calendar view for howm" single ((:commit . "03abce97620a4a7f7ec5f911e669da9031ab9088") (:keywords "calendar") (:authors ("SAKURAI Masashi <m.sakurai at kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai at kiwanami.net>"))]) -(calfw-gcal . [(20120111 1000) nil "edit Google calendar for calfw.el." tar ((:commit . "14aab20687d6cc9e6c5ddb9e11984c4e14c3d870") (:keywords "convenience" "calendar" "calfw.el") (:authors ("myuhe <yuhei.maeda_at_gmail.com>")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/calfw-gcal.el"))]) -(calfw-cal . [(20170320 1206) nil "calendar view for emacs diary" single ((:commit . "03abce97620a4a7f7ec5f911e669da9031ab9088") (:keywords "calendar") (:authors ("SAKURAI Masashi <m.sakurai at kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai at kiwanami.net>"))]) -(calfw . [(20180118 45) nil "Calendar view framework on Emacs" single ((:commit . "03abce97620a4a7f7ec5f911e669da9031ab9088") (:keywords "calendar") (:authors ("SAKURAI Masashi <m.sakurai at kiwanami.net>")) (:maintainer "SAKURAI Masashi <m.sakurai at kiwanami.net>") (:url . "https://github.com/kiwanami/emacs-calfw"))]) -(calendar-norway . [(20180906 1502) nil "Norwegian calendar" single ((:commit . "8d1fda8268caa74ba5e712c7675ed3c34e46e2d4") (:keywords "calendar" "norwegian" "localization") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org"))]) -(cal-china-x . [(20190518 1057) ((cl-lib (0 5))) "Chinese localization, lunar/horoscope/zodiac info and more..." tar ((:commit . "177f60e011606126f23c8ffed69458439f1c12e0") (:authors ("William Xu" . "william.xwl@gmail.com")) (:maintainer "William Xu" . "william.xwl@gmail.com") (:url . "https://github.com/xwl/cal-china-x"))]) -(cakecrumbs . [(20180929 139) ((emacs (24 4))) "Show parents on header for HTML/Jade/Sass/Stylus" single ((:commit . "cf8c1df885eee004602f73c4f841301e200e5850") (:keywords "languages" "html" "jade" "pug" "sass" "scss" "stylus") (:authors ("ono hiroko <kuanyui.github.io>")) (:maintainer "ono hiroko <kuanyui.github.io>") (:url . "https://github.com/kuanyui/cakecrumbs.el"))]) -(cake-inflector . [(20140415 858) ((s (1 9 0))) "Lazy porting CakePHP infrector.php to el" single ((:commit . "a1d338ec4840b1b1bc14f7f9298c07e2c1d2d8fc") (:authors ("k1LoW (Kenichirou Oyama), <k1lowxb [at] gmail [dot] com> <k1low [at] 101000lab [dot] org>")) (:maintainer "k1LoW (Kenichirou Oyama), <k1lowxb [at] gmail [dot] com> <k1low [at] 101000lab [dot] org>") (:url . "https://github.com/k1LoW/emacs-cake-inflector"))]) -(caddyfile-mode . [(20181204 858) ((emacs (25)) (loop (1 3))) "Major mode for Caddy configuration files" single ((:commit . "976ad0664c3f44bfa11cb9b8787ddfb094d0a666") (:keywords "languages") (:authors ("Thomas Jost" . "schnouki@schnouki.net")) (:maintainer "Thomas Jost" . "schnouki@schnouki.net") (:url . "https://github.com/Schnouki/caddyfile-mode/"))]) -(cacoo . [(20120319 2359) ((concurrent (0 3 1))) "Minor mode for Cacoo : http://cacoo.com" tar ((:commit . "c9fa04fbe97639b24698709530361c2bb5f3273c"))]) -(cache . [(20111019 2300) nil "implementation of a hash table whose key-value pairs expire" single ((:commit . "7499586b6c8224df9f5c5bc4dec96b008258d580") (:authors ("Nathaniel Flath")) (:maintainer "Nathaniel Flath"))]) -(cabledolphin . [(20160204 938) ((emacs (24 4)) (seq (1 0))) "capture Emacs network traffic" single ((:commit . "fffc192cafa61558e924323d6da8166fe5f2a6f9") (:keywords "comm") (:authors ("Magnus Henoch" . "magnus.henoch@gmail.com")) (:maintainer "Magnus Henoch" . "magnus.henoch@gmail.com"))]) -(c0-mode . [(20151110 1852) nil "Major mode for editing C0 files" tar ((:commit . "c214093c36864d6208fcb9e6a72413ed17ed5d60") (:keywords "c0" "languages") (:authors ("Jakob Max Uecker")) (:maintainer "Jakob Max Uecker") (:url . "http://c0.typesafety.net/"))]) -(c-eldoc . [(20181109 439) nil "helpful description of the arguments to C functions" single ((:commit . "e35c0e40f71c25804919f6c01fd27e95c2e2adb7") (:authors ("Nathaniel Flath" . "flat0103@gmail.com")) (:maintainer "Nathaniel Flath" . "flat0103@gmail.com") (:url . "http://github.com/nflath/c-eldoc"))]) -(c-c-combo . [(20151224 255) nil "Make stuff happen when you reach a target wpm" tar ((:commit . "a261a833499a7fdc29610863b3aafc74818770ba") (:authors ("Diego Berrocal" . "cestdiego@gmail.com")) (:maintainer "Diego Berrocal" . "cestdiego@gmail.com") (:url . "https://www.github.com/CestDiego/c-c-combo.el"))]) -(buttons . [(20190319 41) ((cl-lib (0 3))) "Define and visualize hierarchies of keymaps" single ((:commit . "a14d0c21cc30d33b57481f535f2a838d65b2032f") (:keywords "keymap" "template" "snippet") (:authors ("Ernesto Alfonso")) (:maintainer nil . "(concat \"erjoalgo\" \"@\" \"gmail\" \".com\")") (:url . "http://github.com/erjoalgo/emacs-buttons"))]) -(button-lock . [(20150223 1354) nil "Clickable text defined by regular expression" single ((:commit . "f9082feb329432fcf2ac49a95e64bed9fda24d58") (:keywords "mouse" "button" "hypermedia" "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/button-lock"))]) -(buttercup-junit . [(20181111 2058) ((emacs (24 3)) (buttercup (1 15))) "JUnit reporting for Buttercup" single ((:commit . "f95f91ac61137ed78b65642160bfe107f0ad8973") (:keywords "tools" "test" "unittest" "buttercup" "ci") (:authors ("Ola Nilsson" . "ola.nilsson@gmail.com")) (:maintainer "Ola Nilsson" . "ola.nilsson@gmail.com") (:url . "https://bitbucket.org/olanilsson/buttercup-junit"))]) -(buttercup . [(20181202 1607) nil "Behavior-Driven Emacs Lisp Testing" tar ((:commit . "810fa6fb8dab06610dbf2b5ccbc64b4d0ecc7485"))]) -(butler . [(20150812 8) ((deferred (0 3 2)) (json (1 2)) (emacs (24))) "Emacs client for Jenkins" tar ((:commit . "8ceb35737107572455cca9a61ff46b3ff78f1016"))]) -(busybee-theme . [(20170719 928) nil "port of vim's mustang theme" single ((:commit . "66b2315b030582d0ebee605cf455d386d8c30fcd") (:authors ("martin haesler")) (:maintainer "martin haesler") (:url . "http://github.com/mswift42/busybee-theme"))]) -(buster-snippets . [(20151125 1010) ((yasnippet (0 8 0))) "Yasnippets for the Buster javascript testing framework" tar ((:commit . "bb8769dae132659858e74d52f3f4e8790399423a") (:keywords "snippets") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(buster-mode . [(20140928 1213) nil "Minor mode to speed up development when writing tests with Buster.js" single ((:commit . "de6958ef8369400922618b8d1e99abfa91b97ac5") (:keywords "buster" "testing" "javascript"))]) -(bury-successful-compilation . [(20181106 403) nil "Bury the *compilation* buffer after successful compilation" single ((:commit . "674644c844184605a1bb4f9487a60f7a780a6fe7") (:keywords "compilation") (:authors ("Eric Crosson" . "esc@ericcrosson.com")) (:maintainer "Eric Crosson" . "esc@ericcrosson.com"))]) -(bundler . [(20160815 915) ((inf-ruby (2 1)) (cl-lib (0 5))) "Interact with Bundler from Emacs" single ((:commit . "f981f67c33b42243e57a78c358dffff70022b56b") (:keywords "bundler" "ruby") (:authors ("Tobias Svensson" . "tob@tobiassvensson.co.uk")) (:maintainer "Tobias Svensson" . "tob@tobiassvensson.co.uk") (:url . "http://github.com/endofunky/bundler.el"))]) -(build-status . [(20171111 1947) ((cl-lib (0 5))) "Mode line build status indicator" single ((:commit . "ef44185d9dd748ea578d68398f3f729a8adb45b5") (:keywords "mode-line" "ci" "circleci" "travis-ci") (:authors ("Skye Shaw" . "skye.shaw@gmail.com")) (:maintainer "Skye Shaw" . "skye.shaw@gmail.com") (:url . "http://github.com/sshaw/build-status"))]) -(build-helper . [(20161009 1755) ((projectile (0 9 0))) "Utilities to help build code" single ((:commit . "7a6fe71125a26ed1c492dab77cc688a7fe1d68ac") (:keywords "convenience") (:authors ("Afonso Bordado" . "afonsobordado@az8.co")) (:maintainer "Afonso Bordado" . "afonsobordado@az8.co") (:url . "http://github.com/afonso360/build-helper"))]) -(build-farm . [(20181218 2002) ((emacs (24 4)) (bui (1 2 1)) (magit-popup (2 1 0))) "Interface for Nix and Guix build farms (Hydra and Cuirass)" tar ((:commit . "5c268a3c235ace0d79ef1ec82c440120317e06f5") (:keywords "tools") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://gitlab.com/alezost-emacs/build-farm"))]) -(bui . [(20181218 1830) ((emacs (24 3)) (dash (2 11 0))) "Buffer interface library" tar ((:commit . "508577a7225b3d07eaefa9444064410af2518675") (:keywords "tools") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/bui.el"))]) -(bug-reference-github . [(20180128 1314) nil "Set `bug-reference-url-format' in Github repos" tar ((:commit . "f570a0532bfb44f095b42cf68ab1f69799101137") (:keywords "programming" "tools") (:authors ("Arne Jørgensen" . "arne@arnested.dk")) (:maintainer "Arne Jørgensen" . "arne@arnested.dk") (:url . "https://github.com/arnested/bug-reference-github"))]) -(bufshow . [(20130726 1838) ((emacs (24 1))) "A simple presentation tool for Emacs." single ((:commit . "d60a554e7239e6f7520d9c3436d5ecdbc9cf6957") (:authors ("Peter Jones" . "pjones@pmade.com")) (:maintainer "Peter Jones" . "pjones@pmade.com") (:url . "https://github.com/pjones/bufshow"))]) -(buffer-watcher . [(20170913 839) ((f (0 16 2)) (cl-lib (0 5))) "Easily run shell scripts per filetype/directory when a buffer is saved" single ((:commit . "b32c67c8a5d724257d759f4c903d0dedc32246ef") (:authors ("Nicolas Petton" . "nicolas@petton.fr")) (:maintainer "Nicolas Petton" . "nicolas@petton.fr"))]) -(buffer-utils . [(20140512 1400) nil "Buffer-manipulation utility functions" single ((:commit . "685b13457e3a2085b7584e41365d2aa0779a1b6f") (:keywords "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/buffer-utils"))]) -(buffer-sets . [(20170718 340) ((cl-lib (0 5))) "Sets of Buffers for Buffer Management" single ((:commit . "4a4ccb0d6916c3e9fba737bb7b48e8aac921954e") (:keywords "buffer-management") (:authors ("Samuel W. Flint" . "swflint@flintfam.org")) (:maintainer "Samuel W. Flint" . "swflint@flintfam.org") (:url . "http://github.com/swflint/buffer-sets"))]) -(buffer-move . [(20160615 1803) nil "easily swap buffers" single ((:commit . "cb517ecf8409b5fdcda472d7190c6021f0c49751") (:keywords "lisp" "convenience") (:url . "https://github.com/lukhas/buffer-move"))]) -(buffer-manage . [(20190617 217) ((emacs (26)) (choice-program (0 5)) (dash (2 13 0))) "manage buffers" tar ((:commit . "ff9ae5d058093c21da08a345e1d5676475d19ca6") (:keywords "interactive" "buffer" "management") (:authors ("Paul Landes")) (:maintainer "Paul Landes") (:url . "https://github.com/plandes/buffer-manage"))]) -(buffer-flip . [(20180307 2251) nil "Cycle through buffers like Alt-Tab in Windows" single ((:commit . "e093360e05164c78255866c1ac8f966aa38ba514") (:keywords "convenience") (:authors ("Russell Black" . "killdash9@github")) (:maintainer "Russell Black" . "killdash9@github") (:url . "https://github.com/killdash9/buffer-flip.el"))]) -(buffer-buttons . [(20150106 1439) nil "Define, save, and load code-safe buttons in files for emacs" single ((:commit . "2feb8494fa7863b98256bc85da670d74a3a8a975") (:authors ("Ryan Pavlik" . "rpavlik@gmail.com")) (:maintainer "Ryan Pavlik" . "rpavlik@gmail.com") (:url . "https://github.com/rpav/buffer-buttons"))]) -(buckwalter . [(20190204 1451) nil "Write arabic using Buckwalter transliteration" single ((:commit . "d4a7785eef05491ac4eb3150b75c473480bb51cb") (:keywords "arabic" "transliteration" "i18n") (:authors ("Joe HAKIM RAHME" . "joehakimrahme@gmail.com")) (:maintainer "Joe HAKIM RAHME" . "joehakimrahme@gmail.com") (:url . "https://github.com/joehakimrahme/buckwalter-arabic"))]) -(bubbleberry-theme . [(20141017 944) ((emacs (24 1))) "A theme based on LightTable for Emacs24" single ((:commit . "22e9adf4586414024e4592972022ec297321b320") (:authors ("Jason Milkins" . "jasonm23@gmail.com") ("Gaurav Giri github.com/grvgr")) (:maintainer "Jason Milkins" . "jasonm23@gmail.com") (:url . "https://github.com/jasonm23/emacs-bubbleberry-theme"))]) -(bts-github . [(20170401 1249) ((bts (0 0 1)) (gh (0 8 2))) "A plugin of bts.el for GitHub" single ((:commit . "ef2cf9202dc2128e5efdb613bfde9276a8cd95ad") (:keywords "convenience" "git" "github") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/emacs-bts-github"))]) -(bts . [(20151109 1333) ((widget-mvc (0 0 2)) (log4e (0 3 0)) (yaxception (0 3 3)) (dash (2 9 0)) (s (1 9 0)) (pos-tip (0 4 5))) "A unified UI for various bug tracking systems" single ((:commit . "df42d58a36447697f93b56e69f5e700b2baef1f9") (:keywords "convenience") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/emacs-bts"))]) -(btc-ticker . [(20151113 1459) ((json (1 2)) (request (0 2 0))) "Shows latest bitcoin price" single ((:commit . "845235b545f070d0812cd1654cbaa4997565824f") (:keywords "news") (:authors ("Jorge Niedbalski R." . "jnr@metaklass.org")) (:maintainer "Jorge Niedbalski R." . "jnr@metaklass.org"))]) -(bshell . [(20190617 238) ((emacs (25)) (buffer-manage (0 5))) "manage and track multiple inferior shells" single ((:commit . "5cdffa393ec3f923736bc6459bc958829a321327") (:keywords "interactive" "shell" "management") (:authors ("Paul Landes")) (:maintainer "Paul Landes") (:url . "https://github.com/plandes/bshell"))]) -(brutalist-theme . [(20181023 1222) nil "Brutalist theme" tar ((:commit . "8899f4f4a7faf0080977cd137e0ad7b00c40f1e8") (:authors ("Gergely Nagy")) (:maintainer "Gergely Nagy") (:url . "https://git.madhouse-project.org/algernon/brutalist-theme.el"))]) -(browse-url-dwim . [(20140731 1922) ((string-utils (0 3 2))) "Context-sensitive external browse URL or Internet search" single ((:commit . "3d611dbb167c286109ac53995ad68286d87aafb9") (:keywords "hypermedia") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/browse-url-dwim"))]) -(browse-kill-ring . [(20171219 1908) nil "interactively insert items from kill-ring" single ((:commit . "8debc43e41d7e51532698331c6f283905890b904") (:keywords "convenience") (:authors ("Colin Walters" . "walters@verbum.org")) (:maintainer "browse-kill-ring" . "browse-kill-ring@tonotdo.com") (:url . "https://github.com/browse-kill-ring/browse-kill-ring"))]) -(browse-at-remote . [(20190213 1929) ((f (0 17 2)) (s (1 9 0)) (cl-lib (0 5))) "Open github/gitlab/bitbucket/stash/gist/phab/sourcehut page from Emacs" single ((:commit . "a61bda14a84983c84e81d2135bb59e92049cdf85") (:keywords "github" "gitlab" "bitbucket" "gist" "stash" "phabricator" "sourcehut") (:authors ("Rustem Muslimov" . "r.muslimov@gmail.com")) (:maintainer "Rustem Muslimov" . "r.muslimov@gmail.com"))]) -(broadcast . [(20151205 212) ((emacs (24 4))) "Links buffers together for simultaneous editing." single ((:commit . "f6f9cd2e0e3f8c31d6b8e7446c27eb0e50b25f16") (:keywords "convenience" "frames" "link" "cursors") (:authors ("Russell Black" . "killdash9@github")) (:maintainer "Russell Black" . "killdash9@github") (:url . "https://github.com/killdash9/broadcast.el"))]) -(brainfuck-mode . [(20150113 842) ((langdoc (20130601 1450))) "Brainfuck mode for Emacs" single ((:commit . "36e69552bb3b97a4f888d362c59845651bd0d492") (:keywords "brainfuck" "langdoc") (:authors ("Tomoya Tanjo" . "ttanjo@gmail.com")) (:maintainer "Tomoya Tanjo" . "ttanjo@gmail.com") (:url . "https://github.com/tom-tan/brainfuck-mode/"))]) -(bracketed-paste . [(20160407 2348) ((emacs (24 3))) "bracketed paste mode support within emacs -nw" single ((:commit . "843ce3bbb63d560face889e13a57a2f7543957d5") (:keywords "terminals") (:authors ("Takeshi Banse" . "takebi@laafc.net")) (:maintainer "Takeshi Banse" . "takebi@laafc.net"))]) -(bpr . [(20180220 1844) ((emacs (24))) "Background Process Runner" tar ((:commit . "7f3c787ed80ac0e83447192ac5450dfa7110ade1") (:keywords "background" "async" "process" "management") (:authors ("Ilya Babanov" . "ilya-babanov@ya.ru")) (:maintainer "Ilya Babanov" . "ilya-babanov@ya.ru") (:url . "https://github.com/ilya-babanov/emacs-bpr"))]) -(bpftrace-mode . [(20190608 2201) ((emacs (24 0))) "Major mode for editing bpftrace script files" single ((:commit . "587b39ea7a1d786df5c04796d51bf2a5a4eda0d7") (:keywords "highlight" "c") (:authors ("Jay Kamat" . "jaygkamat@gmail.com")) (:maintainer "Jay Kamat" . "jaygkamat@gmail.com") (:url . "http://gitlab.com/jgkamat/bpftrace-mode"))]) -(bpe . [(20141228 2205) ((emacs (24 1))) "Blog from Org mode to Blogger" single ((:commit . "7b5b25f83506e6c9f4075d3803fa32404943a189") (:keywords "blogger" "blog") (:authors ("Yuta Yamada <cokesboy\"at\"gmail.com>")) (:maintainer "Yuta Yamada <cokesboy\"at\"gmail.com>") (:url . "https://github.com/yuutayamada/bpe"))]) -(boxquote . [(20170802 1117) ((cl-lib (0 5))) "Quote text with a semi-box." single ((:commit . "7e47e0e2853bc1215739b2e28f260e9eed93b2c5") (:keywords "quoting") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/boxquote.el"))]) -(boron-theme . [(20170808 1308) ((emacs (24 0))) "an Emacs 24 theme based on Boron (tmTheme)" single ((:commit . "87ae1a765e07429fec25d2f29b004f84b52d2e0a") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) -(borland-blue-theme . [(20160117 1321) ((emacs (24 1))) "Blue/yellow theme based on old DOS Borland/Turbo C IDE" single ((:commit . "db74eefebbc89d3c62575f8f50b319e87b4a3470") (:keywords "themes") (:authors ("Alexey Veretennikov <alexey dot veretennikov at gmail dot com>")) (:maintainer "Alexey Veretennikov <alexey dot veretennikov at gmail dot com>") (:url . "http://github.com/fourier/borland-blue-theme"))]) -(borg . [(20190505 1048) ((emacs (26)) (dash (2 14 1)) (epkg (3 1 1)) (magit (2 13 0))) "assimilate Emacs packages as Git submodules" tar ((:commit . "9de5581047d67e8ef8a70ac0504ad80a407b9917") (:keywords "tools") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/emacscollective/borg"))]) -(boon . [(20190608 1402) ((emacs (25 1)) (expand-region (0 10 0)) (dash (2 12 0)) (multiple-cursors (1 3 0))) "Ergonomic Command Mode for Emacs." tar ((:commit . "03330abe319080db8a96e1fae162f860fd4b8eec"))]) -(bool-flip . [(20161215 1539) ((emacs (24 3))) "flip the boolean under the point" single ((:commit . "f58a9a7b9ab875bcfbd57c8262697ae404eb4485") (:keywords "boolean" "convenience" "usability") (:authors ("Michael Brandt" . "michaelbrandt5@gmail.com")) (:maintainer "Michael Brandt" . "michaelbrandt5@gmail.com") (:url . "http://github.com/michaeljb/bool-flip/"))]) -(boogie-friends . [(20190523 1056) ((cl-lib (0 5)) (dash (2 10 0)) (flycheck (0 23)) (yasnippet (0 9 0 1)) (company (0 8 12))) "A collection of programming modes for Boogie, Dafny, and Z3 (SMTLIB v2)." tar ((:commit . "079df882503b7a9fb4cd270f3eca1cc8131b49a9"))]) -(bonjourmadame . [(20170919 1134) nil "Say \"Hello ma'am!\"" single ((:commit . "d3df185fce78aefa689fded8e56a654f0fde4ac0"))]) -(bongo . [(20171119 242) ((cl-lib (0 5)) (emacs (24 1))) "play music with Emacs" tar ((:commit . "3d246be1e8d14865f5253567ab8fee5d4e9c470c"))]) -(bolt-mode . [(20180310 810) ((emacs (24 3))) "Editing support for Bolt language" single ((:commit . "85a5a752bfbebb4aed884326c25db64c000e9934") (:keywords "languages") (:authors ("Mikhail Pontus" . "mpontus@gmail.com")) (:maintainer "Mikhail Pontus" . "mpontus@gmail.com") (:url . "https://github.com/mpontus/bolt-mode"))]) -(bog . [(20180815 2213) ((cl-lib (0 5))) "Extensions for research notes in Org mode" single ((:commit . "b5df3647f55359f8546dcfa991a351673a069a49") (:keywords "bib" "outlines") (:authors ("Kyle Meyer" . "kyle@kyleam.com")) (:maintainer "Kyle Meyer" . "kyle@kyleam.com") (:url . "https://github.com/kyleam/bog"))]) -(bnfc . [(20160605 1927) ((emacs (24 3))) "Define context-free grammars for the BNFC tool" single ((:commit . "1b58df1dd0cb9b81900632fb2843a03b94f56fdb") (:keywords "languages" "tools") (:authors ("Jacob Mitchell" . "jmitchell@member.fsf.org")) (:maintainer "Jacob Mitchell" . "jmitchell@member.fsf.org") (:url . "https://github.com/jmitchell/bnfc-mode"))]) -(bnf-mode . [(20190611 519) ((cl-lib (0 5)) (emacs (24 3))) "Major mode for editing BNF grammars." tar ((:commit . "a3edaae4c6eab5d7ec44d932f9b0745112d3305f") (:keywords "languages") (:authors ("Serghei Iakovlev" . "sadhooklay@gmail.com")) (:maintainer "Serghei Iakovlev" . "sadhooklay@gmail.com") (:url . "https://github.com/sergeyklay/bnf-mode"))]) -(bmx-mode . [(20180929 1132) ((emacs (25 1)) (cl-lib (0 5)) (company (0 9 4)) (dash (2 13 0)) (s (1 12 0))) "Batch Mode eXtras" single ((:commit . "536b332edc3b98cc97588c937c7368803ba5961c") (:keywords "c" "convenience" "tools") (:authors ("Jostein Kjønigsen" . "jostein@gmail.com")) (:maintainer "Jostein Kjønigsen" . "jostein@gmail.com") (:url . "http://github.com/josteink/bmx-mode"))]) -(bm . [(20190527 2110) nil "Visible bookmarks in buffer." tar ((:commit . "637dacf4cb9112fdfb949706a704dd53cbe79c7e") (:keywords "bookmark" "highlight" "faces" "persistent") (:authors ("Jo Odland <jo.odland(at)gmail.com>")) (:maintainer "Jo Odland <jo.odland(at)gmail.com>") (:url . "https://github.com/joodland/bm"))]) -(blog-minimal . [(20181021 849) ((ht (1 5)) (simple-httpd (1 4 6)) (mustache (0 22)) (s (1 11 0)) (org (9 0 3))) "a simple static site generator based on org mode" tar ((:commit . "356c878322258159021eecdd15757e11cf02e335") (:keywords "tools") (:authors ("Thank Fly" . "thiefuniverses@gmail.com")) (:maintainer "Thank Fly" . "thiefuniverses@gmail.com") (:url . "https://github.com/thiefuniverse/blog-minimal"))]) -(blog-admin . [(20170923 1409) ((ctable (0 1 1)) (s (1 10 0)) (f (0 17 3)) (names (20151201 0)) (cl-lib (0 5))) "Blog admin for emacs with hexo/org-page supported" tar ((:commit . "b5f2e1dad7d68ec903619f7280bb0bcb7e398a1e") (:keywords "tools" "blog" "org" "hexo" "org-page") (:authors (nil . "code.falling@gmail.com")) (:maintainer nil . "code.falling@gmail.com"))]) -(blockdiag-mode . [(20160427 524) ((emacs (24 3))) "Major mode for editing blockdiag files" single ((:commit . "f3b21ba433d60327cebd103ae4492200750e24a9") (:authors ("xcezx" . "main.xcezx@gmail.com")) (:maintainer "xcezx" . "main.xcezx@gmail.com") (:url . "https://github.com/xcezx/xdiag-mode"))]) -(bln-mode . [(20181121 918) nil "binary line navigation minor mode for cursor movement in long lines" single ((:commit . "a601b0bf975dd1432f6552ab6afe3f4f71133b4a") (:keywords "motion" "location" "cursor" "convenience") (:authors ("Maarten Grachten")) (:maintainer "Maarten Grachten") (:url . "https://github.com/mgrachten/bln-mode"))]) -(bliss-theme . [(20170808 1307) ((emacs (24 0))) "an Emacs 24 theme based on Bliss (tmTheme)" single ((:commit . "c3cf6d8a666ab26909b7da158f9e94df71a5fbbf") (:authors ("Jason Milkins")) (:maintainer "Jason Milkins") (:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) -(blimp . [(20180903 2240) ((emacs (25)) (eimp (1 4 0))) "Bustling Image Manipulation Package" single ((:commit . "a4c538c52f2371f4a184e4c905584c6decf7b407") (:keywords "multimedia" "unix") (:authors ("Sebastian WÃ¥linder" . "s.walinder@gmail.com")) (:maintainer "Sebastian WÃ¥linder" . "s.walinder@gmail.com") (:url . "https://github.com/walseb/blimp"))]) -(blgrep . [(20150401 1416) ((clmemo (20140321 715))) "Block grep" tar ((:commit . "605beda210610a5829750a987f5fcebea97af546") (:keywords "tools" "convenience") (:authors ("Masayuki Ataka" . "masayuki.ataka@gmail.com")) (:maintainer "Masayuki Ataka" . "masayuki.ataka@gmail.com"))]) -(blacken . [(20190521 841) ((emacs (25 2))) "Reformat python buffers using the \"black\" formatter" single ((:commit . "1874018ae242176d0780cdcd0109e8f9a123a914") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/blacken"))]) -(blackboard-theme . [(20161216 656) ((emacs (24))) "TextMate Blackboard Theme" single ((:commit . "d8b984f2541bb86eb4363a2b4c94631e49843d4a") (:authors ("Dong Zheng")) (:maintainer "Dong Zheng") (:url . "https://github.com/don9z/blackboard-theme"))]) -(blackboard-bold-mode . [(20160813 206) ((cl-lib (0 5))) "Easily insert Unicode mathematical double-struck characters" single ((:commit . "5299cb064ba71baa3e331b8560bf8dd38cbbc4ed") (:keywords "unicode" "double struck" "blackboard bold" "math" "mathematical") (:authors ("Grant Rettke" . "gcr@wisdomandwonder.com")) (:maintainer nil . "<gcr@wisdomandwonder.com>") (:url . "https://github.com/grettke/blackboard-bold-mode"))]) -(bitlbee . [(20151203 0) nil "Help get Bitlbee (http://www.bitlbee.org) up and running." single ((:commit . "3a92a4119e0c007df2c7dcf1b1c3a5f23ee40e05"))]) -(bitbucket . [(20170405 446) ((emacs (24)) (request (0 1 0)) (s (1 9 0))) "Bitbucket API wrapper" tar ((:commit . "5e663da1bd38a14c1ecf4d66a79d4321ac833bcf") (:keywords "bitbucket") (:authors ("2017 Tjaart van der Walt" . "tjaart@tjaart.co.za")) (:maintainer "2017 Tjaart van der Walt" . "tjaart@tjaart.co.za") (:url . "http://github.com/tjaartvdwalt/bitbucket.el/"))]) -(bitbake . [(20190107 1155) ((emacs (24 1)) (dash (2 6 0)) (mmm-mode (0 5 4)) (s (1 10 0))) "Running bitbake from emacs" single ((:commit . "4896ff48712a6be37009605ba697a7104462e2fd") (:keywords "convenience") (:authors ("Damien Merenne")) (:maintainer "Damien Merenne") (:url . "https://github.com/canatella/bitbake-el"))]) -(bison-mode . [(20160617 552) nil "Major mode for editing bison, yacc and lex files." single ((:commit . "314af3b7af7eb897fd3932616cb8600a85228cea") (:keywords "bison-mode" "yacc-mode") (:authors ("Eric Beuscher" . "beuscher@eecs.tulane.edu")) (:maintainer "Eric Beuscher" . "beuscher@eecs.tulane.edu"))]) -(birds-of-paradise-plus-theme . [(20130419 2129) nil "A brown/orange light-on-dark theme for Emacs 24 (deftheme)." single ((:commit . "bb9f9d4ef7f7872a388ec4eee1253069adcadb6f") (:keywords "themes") (:authors ("Jim Myhrberg" . "contact@jimeh.me")) (:maintainer "Jim Myhrberg" . "contact@jimeh.me") (:url . "https://github.com/jimeh/birds-of-paradise-plus-theme.el"))]) -(bing-dict . [(20190123 502) nil "Minimalists' English-Chinese Bing dictionary" tar ((:commit . "7ac91fa718a5fb4620ccc13a53b1b82de8005ac8") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com") (:url . "https://github.com/cute-jumper/bing-dict.el"))]) -(bind-map . [(20161207 1511) ((emacs (24 3))) "Bind personal keymaps in multiple locations" single ((:commit . "bf4181e3a41463684adfffc6c5c305b30480e30f") (:authors ("Justin Burkett" . "justin@burkett.cc")) (:maintainer "Justin Burkett" . "justin@burkett.cc") (:url . "https://github.com/justbur/emacs-bind-map"))]) -(bind-key . [(20180513 430) nil "A simple way to manage personal keybindings" single ((:commit . "4aa14a4fcd5ca52b3f1bfcf5ab294173f7bbe390") (:keywords "keys" "keybinding" "config" "dotemacs") (:authors ("John Wiegley" . "johnw@newartisans.com")) (:maintainer "John Wiegley" . "johnw@newartisans.com") (:url . "https://github.com/jwiegley/use-package"))]) -(bind-chord . [(20171204 2010) ((bind-key (1 0)) (key-chord (0 6))) "key-chord binding helper for use-package-chords" single ((:commit . "4aa14a4fcd5ca52b3f1bfcf5ab294173f7bbe390") (:keywords "convenience" "tools" "extensions") (:authors ("Justin Talbott" . "justin@waymondo.com")) (:maintainer "Justin Talbott" . "justin@waymondo.com") (:url . "https://github.com/waymondo/use-package-chords"))]) -(binclock . [(20170802 1116) ((cl-lib (0 5))) "Display the current time using a binary clock." single ((:commit . "87042230d7f3fe3e9a77fae0dbab7d8f7e7794ad") (:keywords "games" "time" "display") (:authors ("Dave Pearson" . "davep@davep.org")) (:maintainer "Dave Pearson" . "davep@davep.org") (:url . "https://github.com/davep/binclock.el"))]) -(bifocal . [(20181110 341) ((emacs (24 4))) "Split-screen scrolling for comint-mode buffers" single ((:commit . "add30c678488cec04976a85ba8cda20805938a01") (:keywords "frames" "processes" "tools") (:url . "https://github.com/riscy/bifocal-mode"))]) -(bicycle . [(20180909 2126) ((emacs (25 1))) "cycle outline and code visibility" single ((:commit . "ab81d259a71827ff54872c64d13d56aedc9a212e") (:keywords "outlines") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/bicycle"))]) -(bibtex-utils . [(20170817 1919) nil "Provides utilities for extending BibTeX mode" single ((:commit . "ed5ccce46c2088a28a2f0c49caa679d2f20567f0") (:keywords "bibtex") (:authors ("Tyler Smith" . "tyler@plantarum.ca")) (:maintainer "Tyler Smith" . "tyler@plantarum.ca") (:url . "https://github.com/plantarum/bibtex-utils"))]) -(bibslurp . [(20151202 2346) ((s (1 6 0)) (dash (1 5 0))) "retrieve BibTeX entries from NASA ADS" single ((:commit . "aeba96368f2a06959e4fe945375ce2a54d34b189") (:keywords "bibliography" "nasa ads") (:url . "https://github.com/mkmcc/bibslurp"))]) -(bibretrieve . [(20180901 928) ((auctex (11 87)) (emacs (24 3))) "Retrieve BibTeX entries from the internet" tar ((:commit . "600fa1fcc4c5d79c628457f2316f3429c96be006") (:keywords "bibtex" "bibliography" "mathscinet" "arxiv" "zbmath") (:authors ("Antonio Sartori")) (:maintainer "Pavel Zorin-Kranich" . "pzorin@uni-bonn.de") (:url . "https://github.com/pzorin/bibretrieve"))]) -(bibliothek . [(20190124 1828) ((emacs (24 4)) (pdf-tools (0 70)) (a (0 1 0 -3 4))) "Managing a digital library of PDFs" single ((:commit . "1c4b082f6f19c2563dbfbc48b996a915843624bb") (:keywords "tools") (:authors ("GöktuÄŸ Kayaalp" . "self@gkayaalp.com")) (:maintainer "GöktuÄŸ Kayaalp" . "self@gkayaalp.com") (:url . "https://dev.gkayaalp.com/elisp/index.html#bibliothek-el"))]) -(biblio-core . [(20190610 2239) ((emacs (24 3)) (let-alist (1 0 4)) (seq (1 11)) (dash (2 12 1))) "A framework for looking up and displaying bibliographic entries" single ((:commit . "7e6d06293dea71017b251b7f1d39a2b1f51b98b6") (:keywords "bib" "tex" "convenience" "hypermedia") (:authors ("Clément Pit-Claudel" . "clement.pitclaudel@live.com")) (:maintainer "Clément Pit-Claudel" . "clement.pitclaudel@live.com") (:url . "http://github.com/cpitclaudel/biblio.el"))]) -(biblio-bibsonomy . [(20190105 1200) ((emacs (24 4)) (biblio-core (0 2))) "Lookup bibliographic entries from Bibsonomy" single ((:commit . "778cc944db3c6dababe2e7fec5877fba42e8c00d") (:keywords "bib" "tex" "bibsonomy") (:authors ("Andreas Jansson and contributors")) (:maintainer "Andreas Jansson and contributors") (:url . "http://github.com/andreasjansson/biblio-bibsonomy/"))]) -(biblio . [(20190215 307) ((emacs (24 3)) (biblio-core (0 2))) "Browse and import bibliographic references from CrossRef, arXiv, DBLP, HAL, Dissemin, and doi.org" tar ((:commit . "7e6d06293dea71017b251b7f1d39a2b1f51b98b6"))]) -(bibclean-format . [(20190302 2017) ((emacs (24 3)) (reformatter (0 3))) "Reformat BibTeX and Scribe using bibclean" single ((:commit . "b4003950a925d1c659bc359ab5e88e4441775d77") (:keywords "languages") (:authors ("Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com")) (:maintainer "Peter W. V. Tran-Jørgensen" . "peter.w.v.jorgensen@gmail.com") (:url . "https://github.com/peterwvj/bibclean-format"))]) -(bfbuilder . [(20150924 1650) ((cl-lib (0 3))) "A brainfuck development environment with interactive debugger" single ((:commit . "49560bdef131fa5672dab660e0c62376dbdcd906") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(bf-mode . [(20130403 1442) nil "Browse file persistently on dired" single ((:commit . "7cc4d09aed64d9db6be95646f5f5067de68f8895") (:keywords "convenience") (:authors ("isojin")) (:maintainer "myuhe <yuhei.maeda_at_gmail.com>") (:url . "https://github.com/emacs-jp/bf-mode"))]) -(better-shell . [(20180625 1316) ((emacs (24 4))) "Better shell management" single ((:commit . "cfcd9d57f87ad68cd72bf4935fd1aaa1d9f059a9") (:keywords "convenience") (:authors ("Russell Black" . "killdash9@github")) (:maintainer "Russell Black" . "killdash9@github") (:url . "https://github.com/killdash9/better-shell"))]) -(better-jumper . [(20190510 1647) ((emacs (25 1))) "configurable jump list" single ((:commit . "2c04d4bc09da88c5b8b276c87d3f9f56e517144e") (:keywords "convenience" "jump" "history" "evil") (:authors ("Bryan Gilbert <http://github/gilbertw1>")) (:maintainer "Bryan Gilbert" . "bryan@bryan.sh") (:url . "https://github.com/gilbertw1/better-jumper"))]) -(better-defaults . [(20190224 1816) nil "Fixing weird quirks and poor defaults" single ((:commit . "0937ac9a813632c48d114cf959768cda9676db3a") (:keywords "convenience") (:authors ("Phil Hagelberg")) (:maintainer "Phil Hagelberg") (:url . "https://github.com/technomancy/better-defaults"))]) -(bert . [(20131117 1014) nil "BERT serialization library for Emacs" single ((:commit . "a3eec6980a725aa4abd2019e4c00246450260490") (:keywords "comm" "data") (:authors ("Oleksandr Manzyuk" . "manzyuk@gmail.com")) (:maintainer "Oleksandr Manzyuk" . "manzyuk@gmail.com"))]) -(benchstat . [(20171014 312) nil "proper benchmarking made simple" single ((:commit . "a5b67cf7972ca2bbc9f5bc6a0f521ab02b76d4f0") (:keywords "lisp") (:authors ("Iskander Sharipov" . "quasilyte@gmail.com")) (:maintainer "Iskander Sharipov" . "quasilyte@gmail.com") (:url . "https://github.com/Quasilyte/benchstat.el"))]) -(benchmark-init . [(20150905 938) nil "Benchmarks Emacs require and load calls" tar ((:commit . "7a0f263282bbc86b01b662636306f22813082647") (:keywords "benchmark") (:authors ("Steve Purcell")) (:maintainer "David Holm" . "dholmster@gmail.com"))]) -(belarus-holidays . [(20190102 1343) nil "Belarus holidays whith transfers" single ((:commit . "35a18273e19edc3b4c761030ffbd11116483b83e") (:authors ("Yauhen Makei" . "yauhen.makei@gmail.com")) (:maintainer "Yauhen Makei" . "yauhen.makei@gmail.com") (:url . "http://bitbucket.org/EugeneMakei/belarus-holidays.el"))]) -(beginend . [(20180827 926) ((emacs (25 3))) "Redefine M-< and M-> for some modes" single ((:commit . "e4ff077de4a2c80e1f42adfc86837537899447a5") (:url . "https://github.com/DamienCassou/beginend"))]) -(beeminder . [(20180413 1929) ((org (7))) "Emacs interface for Beeminder" tar ((:commit . "3fcee7a7003a37171ddb59171c7f4b5dd4b34349") (:keywords "beeminder") (:authors ("Phil Newton" . "phil@sodaware.net")) (:maintainer "Phil Newton" . "phil@sodaware.net") (:url . "http://www.philnewton.net/code/beeminder-el/"))]) -(beacon . [(20190104 1931) ((seq (2 14))) "Highlight the cursor whenever the window scrolls" single ((:commit . "bde78180c678b233c94321394f46a81dc6dce1da") (:keywords "convenience") (:authors ("Artur Malabarba" . "emacs@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com") (:url . "https://github.com/Malabarba/beacon"))]) -(bdo . [(20140126 901) nil "Do things to a browser page from Emacs. BETA!" tar ((:commit . "c96cb6aa9e97fa3491185c50dee0f77a13241010") (:keywords "development") (:authors ("Chris Done" . "chrisdone@gmail.com")) (:maintainer "Chris Done" . "chrisdone@gmail.com"))]) -(bbyac . [(20180206 1441) ((browse-kill-ring (1 3)) (cl-lib (0 5))) "Type a little Bit, and Bang! You Are Completed." tar ((:commit . "9f0de9cad13801891ffb590dc09f51ff9a7cb225") (:keywords "abbrev") (:authors ("Bao Haojun" . "baohaojun@gmail.com")) (:maintainer "Bao Haojun" . "baohaojun@gmail.com") (:url . "https://github.com/baohaojun/bbyac"))]) -(bbdb2erc . [(20170221 1354) ((bbdb (3 0))) "make bbdb show if pal is online with ERC, click i to chat" single ((:commit . "15db2bd29df0f6ee32c499fdeffb960b6a7f97a0") (:keywords "irc" "contacts" "chat" "client" "internet") (:authors ("Kevin Brubeck Unhammer" . "unhammer@fsfe.org")) (:maintainer "Kevin Brubeck Unhammer" . "unhammer@fsfe.org"))]) -(bbdb-vcard . [(20190410 2054) ((bbdb (3 0))) "vCard import/export for BBDB" tar ((:commit . "853cbcd882be137a5488c70328c25f5982aca657") (:keywords "data" "calendar" "mail" "news") (:authors ("Bert Burgemeister" . "trebbu@googlemail.com") ("Toke Høiland-Jørgensen") ("Kevin Brubeck Unhammer") ("Steve Purcell") ("Vincent Geddes" . "vincent.geddes@gmail.com")) (:maintainer "Bert Burgemeister" . "trebbu@googlemail.com") (:url . "http://github.com/vgeddes/bbdb-vcard"))]) -(bbdb-ext . [(20151220 2013) ((bbdb (2 36))) "Extra commands for BBDB" single ((:commit . "fee97b1b3faa83edaea00fbc5ad3cbca5e791a55") (:keywords "extensions") (:authors ("Joe Bloggs" . "vapniks@yahoo.com")) (:maintainer "Joe Bloggs" . "vapniks@yahoo.com") (:url . "https://github.com/vapniks/bbdb-ext"))]) -(bbdb-csv-import . [(20180122 49) ((pcsv (1 3 3)) (dash (2 5 0)) (bbdb (20140412 1949))) "import csv to bbdb version 3+" single ((:commit . "dbc2e0fe9e8ae65e494011044d905ae79b3cee3e") (:keywords "csv" "util" "bbdb") (:authors ("Ian Kelling" . "ian@iankelling.org")) (:maintainer "Ian Kelling" . "ian@iankelling.org") (:url . "https://gitlab.com/iankelling/bbdb-csv-import"))]) -(bbdb . [(20190609 316) nil "The Insidious Big Brother Database for GNU Emacs" tar ((:commit . "1d26869d2787803672dd412cf658158d6bef0c7b"))]) -(bbdb- . [(20140221 2354) ((bbdb (20140123 1541)) (log4e (0 2 0)) (yaxception (0 1))) "provide interface for more easily search/choice than BBDB." single ((:commit . "2839e84c894de2513af41053e80a277a1b483d22") (:keywords "bbdb" "news" "mail") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/bbdb-"))]) -(bbcode-mode . [(20190304 2122) ((emacs (24)) (cl-lib (0 5))) "Major mode for phpBB posts (BBCode markup)" single ((:commit . "e16619c80ea21154b4a4ccc2e13d0077e97c9caf") (:keywords "bbcode" "languages") (:authors ("Eric James Michael Ritz" . "lobbyjones@gmail.com")) (:maintainer "Lassi Kortela" . "lassi@lassi.io") (:url . "https://github.com/lassik/emacs-bbcode-mode"))]) -(bazel-mode . [(20190606 800) ((emacs (24 3))) "A major mode for editing Bazel files" single ((:commit . "f07e75fc2dd97ba20e40806927409357aaad2496") (:keywords "languages" "bazel") (:authors ("Neri Marschik")) (:maintainer "Neri Marschik") (:url . "https://github.com/codesuki/bazel-mode"))]) -(battle-haxe . [(20190422 224) ((emacs (25)) (company (0 9 9)) (helm (3 0)) (async (1 9 3)) (cl-lib (0 5)) (dash (2 12 0)) (dash-functional (1 2 0)) (s (1 10 0)) (f (0 19 0))) "A Haxe development system, with code completion and more" single ((:commit . "c25894ef8a148b568922e5c9a5c90c52c5de5e3c") (:keywords "programming" "languages" "completion") (:authors ("Alon Tzarafi " . "alontzarafi@gmail.com")) (:maintainer "Alon Tzarafi " . "alontzarafi@gmail.com") (:url . "https://github.com/AlonTzarafi/battle-haxe"))]) -(bats-mode . [(20160514 615) nil "Emacs mode for editing and running Bats tests" single ((:commit . "d519f7c89f5ae17dfc33400596df4564b478315f") (:keywords "bats" "tests") (:authors ("Doug MacEachern")) (:maintainer "Doug MacEachern") (:url . "https://github.com/dougm/bats-mode"))]) -(basic-theme . [(20160817 827) ((emacs (24))) "Minimalistic light color theme" single ((:commit . "e2a855bd39f4b78296228d4b790f9123156f7d7e") (:keywords "theme" "basic" "minimal" "colors") (:authors ("Felix Geller" . "fgeller@gmail.com")) (:maintainer "Felix Geller" . "fgeller@gmail.com") (:url . "http://github.com/fgeller/basic-theme.el"))]) -(basic-mode . [(20180919 1752) ((seq (2 20)) (emacs (24 3))) "major mode for editing BASIC code" single ((:commit . "812f078240f9de09491701853569335ba6d9b5ff") (:keywords "basic" "languages") (:authors ("Johan Dykstrom")) (:maintainer "Johan Dykstrom") (:url . "https://github.com/dykstrom/basic-mode"))]) -(basic-c-compile . [(20170302 1112) ((cl-lib (0 5)) (f (0 19 0))) "Quickly create a Makefile, compile and run C." single ((:commit . "0129786aeee50d7bb0020d9fc2b7508875d403e8") (:keywords "c" "makefile" "compilation" "convenience") (:authors ("Nick Spain" . "nicholas.spain96@gmail.com")) (:maintainer "Nick Spain" . "nicholas.spain96@gmail.com") (:url . "https://github.com/nick96/basic-c-compile"))]) -(bash-completion . [(20190516 1854) nil "BASH completion for the shell buffer" single ((:commit . "61592a1ce11efdff1d18bb7675c651a8f914c10d") (:authors ("Stephane Zermatten" . "szermatt@gmx.net")) (:maintainer "Stephane Zermatten" . "szermatt@gmx.net"))]) -(base16-theme . [(20190603 2042) nil "Collection of themes built on combinations of 16 base colors" tar ((:commit . "880646d8c574e3b4eecfa870e135fc564766c93d") (:url . "https://github.com/belak/base16-emacs"))]) -(bart-mode . [(20190601 1004) ((emacs (24 3))) "Real time BART departures info." single ((:commit . "f70b6c42452e47c0c6b3ebd4c90e555a9bedeec7") (:keywords "convenience" "transit") (:authors ("Michael Schuldt" . "mbschuldt@gmail.com")) (:maintainer "Michael Schuldt" . "mbschuldt@gmail.com") (:url . "https://github.com/mschuldt/bart-mode"))]) -(bar-cursor . [(20180227 45) nil "package used to switch block cursor to a bar" single ((:commit . "20cb59bedc3532a712fe7feeff3660ebd72a8107") (:keywords "files") (:authors ("Joe Casadonte" . "emacs@northbound-train.com")) (:maintainer "Andrew Johnson" . "andrew@andrewjamesjohnson.com") (:url . "https://github.com/ajsquared/bar-cursor"))]) -(bap-mode . [(20190401 1546) nil "Major-mode for BAP's IR" single ((:commit . "9f493b4ec852ec126c80afefa784f8a8d020e309") (:keywords "languages") (:authors ("Thomas Barabosch <http://github/tbarabosch>")) (:maintainer "Thomas Barabosch" . "thomas.barabosch@fkie.fraunhofer.de") (:url . "https://github.com/fkie-cad/bap-mode"))]) -(banner-comment . [(20190606 1809) ((emacs (24 4))) "For producing banner comments." single ((:commit . "35d3315683d3f97605207691b77e9f447af18fe2") (:keywords "convenience") (:authors ("James Ferguson" . "james@faff.org")) (:maintainer "James Ferguson" . "james@faff.org") (:url . "https://github.com/WJCFerguson/banner-comment"))]) -(badwolf-theme . [(20161004 715) ((emacs (24))) "Bad Wolf color theme" single ((:commit . "ea01a3d9358e968f75e3ed15dec6a2a96ce3d9a1") (:keywords "themes") (:authors ("bkruczyk" . "bartlomiej.kruczyk@gmail.com")) (:maintainer "bkruczyk" . "bartlomiej.kruczyk@gmail.com") (:url . "https://github.com/bkruczyk/badwolf-emacs"))]) -(badger-theme . [(20140717 232) nil "A dark theme for Emacs 24." single ((:commit . "493d672d5a5478976da7d5ca752008cc7837c57f") (:authors ("Cody Canning" . "cocanning11@gmail.com")) (:maintainer "Cody Canning" . "cocanning11@gmail.com") (:url . "https://github.com/ccann/badger-theme"))]) -(backward-forward . [(20161229 550) ((emacs (24 5))) "navigation backwards and forwards across marks" single ((:commit . "58489957a62a0da25dfb5df902624d2548d800b4") (:keywords "navigation" "convenience" "backward" "forward") (:authors ("Currell Berry" . "currellberry@gmail.com")) (:maintainer "Currell Berry" . "currellberry@gmail.com") (:url . "https://gitlab.com/vancan1ty/emacs-backward-forward/tree/master"))]) -(backup-walker . [(20130720 1516) nil "quickly traverse all backups of a file" single ((:commit . "934a4128c122972ac32bb9952addf279a60a94da") (:keywords "backup") (:authors ("Le Wang")) (:maintainer "Le Wang") (:url . "https://github.com/lewang/backup-walker"))]) -(backup-each-save . [(20180227 557) nil "backup each savepoint of a file" single ((:commit . "3c414b9d6b278911c95c5b8b71819e6af6f8a02a") (:authors ("Benjamin Rutt" . "brutt@bloomington.in.us")) (:maintainer "Conor Nash" . "conor@nashcobusinessservicesllc.com"))]) -(backline . [(20181111 832) ((emacs (25 1)) (outline-minor-faces (0 1 0))) "Preserve appearance of outline headings" single ((:commit . "cfaaaed812674d7e474a8800a7452b4a5ba6d637") (:keywords "outlines") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/tarsius/backline"))]) -(backlight . [(20180629 2159) ((emacs (24 3))) "backlight brightness adjustment on GNU/Linux" single ((:commit . "096e632bf100d318754d6c961c90ebb0ef29dce5") (:keywords "hardware") (:authors ("Michael Schuldt" . "mbschuldt@gmail.com")) (:maintainer "Michael Schuldt" . "mbschuldt@gmail.com") (:url . "https://github.com/mschuldt/backlight.el"))]) -(back-button . [(20150804 2004) ((nav-flash (1 0 0)) (smartrep (0 0 3)) (ucs-utils (0 7 2)) (list-utils (0 4 2)) (persistent-soft (0 8 8)) (pcache (0 2 3))) "Visual navigation through mark rings" single ((:commit . "98d92984a740acd1547bd7ed05cca0affdb21c3e") (:keywords "convenience" "navigation" "interface") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/back-button"))]) -(babel-repl . [(20160504 2201) ((emacs (24))) "Run babel REPL" single ((:commit . "e619c16e349a1ee7bd0ee0d7f3650d33bff73fc3") (:keywords "babel" "javascript" "es6") (:authors ("Hung Phan")) (:maintainer "Hung Phan") (:url . "https://github.com/hung-phan/babel-repl/"))]) -(babel . [(20181201 919) nil "interface to web translation services such as Babelfish" single ((:commit . "c25dedb5c7f2465b122102f02cd9845668818c20") (:keywords "translation" "web") (:authors ("Juergen Hoetzel" . "juergen@hoetzel.info") ("Eric Marsden" . "emarsden@laas.fr")) (:maintainer "Juergen Hoetzel" . "juergen@hoetzel.info") (:url . "http://github.com/juergenhoetzel/babel"))]) -(axiom-environment . [(20190323 1924) ((emacs (24 2))) "An environment for using Axiom/OpenAxiom/FriCAS" tar ((:commit . "e3444570fa081410171a089f6c118ea6627e5d48") (:keywords "axiom" "openaxiom" "fricas") (:authors ("Paul Onions" . "paul.onions@acm.org")) (:maintainer "Paul Onions" . "paul.onions@acm.org"))]) -(aws-snippets . [(20190207 1047) ((yasnippet (0 8 0))) "Yasnippets for AWS" tar ((:commit . "9cb1edaaa86609b51a7fbf39ec643cc5ae80eaa1") (:keywords "snippets"))]) -(aws-ec2 . [(20161007 1914) ((emacs (24 4)) (dash (2 12 1)) (tblui (0 1 0))) "Manage AWS EC2 instances" single ((:commit . "5601d4f268fc34b86a02ca90cde7d3771619a368") (:authors ("Yuki Inoue <inouetakahiroki _at_ gmail.com>")) (:maintainer "Yuki Inoue <inouetakahiroki _at_ gmail.com>") (:url . "https://github.com/Yuki-Inoue/aws.el"))]) -(avy-zap . [(20190412 320) ((avy (0 2 0))) "Zap to char using `avy'" single ((:commit . "f1089c96b290225032a09c14e87568958ac93438") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com") (:url . "https://github.com/cute-jumper/avy-zap"))]) -(avy-migemo . [(20180716 1455) ((emacs (24 4)) (avy (0 4 0)) (migemo (1 9))) "avy with migemo" tar ((:commit . "922a6dd82c0bfa316b0fbb56a9d4dd4ffa5707e7") (:keywords "avy" "migemo") (:authors ("momomo5717")) (:maintainer "momomo5717") (:url . "https://github.com/momomo5717/avy-migemo"))]) -(avy-menu . [(20190101 708) ((emacs (24 3)) (avy (0 3 0))) "Library providing avy-powered popup menu" single ((:commit . "a7d99ca67c42b215bc367b8812ba259fb9827b8e") (:keywords "popup" "menu") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/avy-menu"))]) -(avy-flycheck . [(20160720 1500) ((emacs (24 1)) (flycheck (0 14)) (seq (1 11)) (avy (0 4 0))) "Jump to and fix syntax errors using `flycheck' with `avy' interface" single ((:commit . "5522f3bbbed1801d9278ed696ec0cbba38352985") (:keywords "tools" "convenience" "avy" "flycheck") (:authors ("Xu Ma" . "magicdirac@gmail.com")) (:maintainer "Xu Ma" . "magicdirac@gmail.com") (:url . "https://github.com/magicdirac/avy-flycheck"))]) -(avy . [(20190520 947) ((emacs (24 1)) (cl-lib (0 5))) "Jump to arbitrary positions in visible text and select text quickly." single ((:commit . "f91ae613a86187c8ca75e86f22e3f5ac9958399c") (:keywords "point" "location") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/avy"))]) -(avk-emacs-themes . [(20181128 745) nil "Collection of avk themes" tar ((:commit . "cadbfb4c9cd6812d63b69076a9d90514bfd2db66") (:url . "https://github.com/avkoval/avk-emacs-themes"))]) -(avandu . [(20170101 1903) nil "Gateway to Tiny Tiny RSS" tar ((:commit . "f44588d8e747fa880411cb4542cc39962252b90a") (:keywords "net") (:authors ("Tom Willemse" . "tom@ryuslash.org")) (:maintainer "Tom Willemse" . "tom@ryuslash.org"))]) -(autumn-light-theme . [(20150515 1447) nil "A light color theme with muted, autumnal colors." single ((:commit . "1e3b2a43a3001e4a97a5ff073ba3f0d2ea3888f9") (:keywords "color" "theme") (:authors ("Adam Alpern" . "adam.alpern@gmail.com")) (:maintainer "Adam Alpern" . "adam.alpern@gmail.com") (:url . "http://github.com/aalpern/emacs-color-theme-autumn-light"))]) -(autothemer . [(20180920 923) ((dash (2 10 0)) (emacs (24)) (cl-lib (0 5))) "Conveniently define themes." single ((:commit . "69488c71dfc182cf2e7be2d745037f230ade678e") (:authors ("Sebastian Sturm")) (:maintainer "Sebastian Sturm") (:url . "https://github.com/sebastiansturm/autothemer"))]) -(autotetris-mode . [(20141114 1646) ((cl-lib (0 5))) "automatically play tetris" single ((:commit . "0c3a746dcc304a67d2a6e7ad4ef93f512486343a") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/autotetris-mode"))]) -(autotest . [(20190331 2230) nil "ZenTest's autotest integration with emacs." single ((:commit . "208810c6c57e1b3d87cba5e8d91c9212dcda828e") (:keywords "testing" "ruby" "convenience") (:authors ("Ryan Davis" . "ryand-ruby@zenspider.com")) (:maintainer "Ryan Davis" . "ryand-ruby@zenspider.com") (:url . "https://github.com/zenspider/elisp/blob/master/autotest.el"))]) -(autopair . [(20160304 1237) ((cl-lib (0 3))) "Automagically pair braces and quotes like TextMate" single ((:commit . "2b6d72bccb0ebba6e7e711528872b898b0c65b0a") (:keywords "convenience" "emulations") (:authors ("Joao Tavora <joaotavora [at] gmail.com>")) (:maintainer "Joao Tavora <joaotavora [at] gmail.com>") (:url . "https://github.com/capitaomorte/autopair"))]) -(automargin . [(20131112 814) nil "add margins to windows not-splitted, and center them" single ((:commit . "4901d969ad69f5244e6300baab4ba04efed800c3") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(autodisass-llvm-bitcode . [(20150411 125) nil "Automatically disassemble LLVM bitcode" tar ((:commit . "d2579e3a1427af2dc947c343e49eb3434078bf04"))]) -(autodisass-java-bytecode . [(20151005 1612) nil "Automatically disassemble Java bytecode" tar ((:commit . "3d61dbe266133c950b39e880f78d142751c7dc4c"))]) -(autobookmarks . [(20180531 1906) ((dash (2 10 0)) (cl-lib (0 5))) "Save recently visited files and buffers" single ((:commit . "e971aa49d97da9f7ed760b37e0b674e45f1c5673") (:keywords "files") (:authors ("Matúš Goljer" . "matus.goljer@gmail.com")) (:maintainer "Matúš Goljer" . "matus.goljer@gmail.com"))]) -(auto-yasnippet . [(20190326 958) ((yasnippet (0 13 0))) "Quickly create disposable yasnippets" single ((:commit . "624b0d9711222073a2a3f2186e2605eb99fc83c9") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/auto-yasnippet"))]) -(auto-virtualenvwrapper . [(20181006 937) ((cl-lib (0 6)) (s (1 10 0)) (virtualenvwrapper (0))) "Lightweight auto activate python virtualenvs" single ((:commit . "72cc9168db475e8328019f9592493560dab832a5") (:keywords "python" "virtualenv" "tools") (:authors ("Marcwebbie" . "marcwebbie@gmail.com") ("Robert Zaremba" . "robert-zaremba@scale-it.pl")) (:maintainer "Marcwebbie" . "marcwebbie@gmail.com"))]) -(auto-virtualenv . [(20170125 1917) ((cl-lib (0 5)) (pyvenv (1 9)) (s (1 10 0))) "Auto activate python virtualenvs" single ((:commit . "3826db66b417788e2b2eb138717255b1f52a55c3") (:keywords "python" "virtualenv" "tools") (:authors ("Marcwebbie" . "marcwebbie@gmail.com")) (:maintainer "Marcwebbie" . "marcwebbie@gmail.com") (:url . "http://github.com/marcwebbie/auto-virtualenv"))]) -(auto-sudoedit . [(20180915 706) ((emacs (24)) (f (0 19 0))) "auto sudo edit by tramp" single ((:commit . "6e30a349fc8865ffd99b077140611820bf3e48ef") (:authors ("ncaq" . "ncaq@ncaq.net")) (:maintainer "ncaq" . "ncaq@ncaq.net") (:url . "https://github.com/ncaq/auto-sudoedit"))]) -(auto-shell-command . [(20180817 1502) ((deferred (20130312)) (popwin (20130329))) "Run the shell command asynchronously that you specified when you save the file." single ((:commit . "a8f9213e3c773b5687b81881240e6e648f2f56ba") (:keywords "shell" "save" "async" "deferred" "auto") (:authors ("ongaeshi")) (:maintainer "ongaeshi"))]) -(auto-save-buffers-enhanced . [(20161109 710) nil "Automatically save buffers in a decent way" single ((:commit . "461e8c816c1b7c650be5f209078b381fe55da8c6") (:authors ("Kentaro Kuribayashi" . "kentarok@gmail.com")) (:maintainer "Kentaro Kuribayashi" . "kentarok@gmail.com"))]) -(auto-rename-tag . [(20190525 628) ((emacs (24 4))) "Automatically rename paired HTML/XML tag." single ((:commit . "4bd41b3107d3971c9533f9d0c8718c299669cb78") (:authors ("Shen, Jen-Chieh" . "jcs090218@gmail.com")) (:maintainer "Shen, Jen-Chieh" . "jcs090218@gmail.com") (:url . "https://github.com/jcs090218/auto-rename-tag"))]) -(auto-read-only . [(20170306 443) ((cl-lib (0 5))) "Automatically make the buffer to read-only" single ((:commit . "79654f8fc024f383ae7af05487c1345738236500") (:keywords "files" "convenience") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/zonuexe/auto-read-only.el"))]) -(auto-pause . [(20160426 1216) ((emacs (24 4))) "Run processes which will be paused when Emacs is idle" single ((:commit . "a4d778de774ca3895542cb559a953e0d98657338") (:keywords "convenience" "menu") (:authors ("DarkSun" . "lujun9972@gmail.com")) (:maintainer "DarkSun" . "lujun9972@gmail.com") (:url . "https://github.com/lujun9972/auto-pause"))]) -(auto-package-update . [(20180712 2045) ((emacs (24 4)) (dash (2 1 0))) "Automatically update Emacs packages." single ((:commit . "55870d313fbe9db40b1a2b59dbc420ba66a9297e") (:keywords "package" "update") (:authors ("Renan Ranelli")) (:maintainer "Renan Ranelli") (:url . "http://github.com/rranelli/auto-package-update.el"))]) -(auto-org-md . [(20180213 2343) ((emacs (24 4))) "export a markdown file automatically when you save an org-file" single ((:commit . "9318338bdb7fe8bd698d88f3af89b2d6413efdd2") (:keywords "org" "markdown") (:authors ("jamcha" . "jamcha.aa@gmail.com")) (:maintainer "jamcha" . "jamcha.aa@gmail.com") (:url . "https://github.com/jamcha-aa/auto-org-md"))]) -(auto-minor-mode . [(20180527 1123) ((emacs (24 4))) "Enable minor modes by file name and contents" single ((:commit . "e0e2ceb471a14a3e1763b47619fa4b8faef0be07") (:keywords "convenience") (:authors ("Joe Wreschnig" . "joe.wreschnig@gmail.com")) (:maintainer "Joe Wreschnig" . "joe.wreschnig@gmail.com") (:url . "https://github.com/joewreschnig/auto-minor-mode"))]) -(auto-indent-mode . [(20171222 506) nil "Auto indent Minor mode" tar ((:commit . "28069360a7f89ad0286fd6a53db550752ec58488") (:keywords "auto" "indentation") (:authors ("Matthew L. Fidler, Le Wang & Others")) (:maintainer "Matthew L. Fidler") (:url . "https://github.com/mlf176f2/auto-indent-mode.el/"))]) -(auto-highlight-symbol . [(20130313 943) nil "Automatic highlighting current symbol minor mode" single ((:commit . "26573de912d760e04321b350897aea70958cee8b") (:keywords "highlight" "face" "match" "convenience") (:authors ("Mitsuo Saito" . "arch320@NOSPAM.gmail.com")) (:maintainer "Mitsuo Saito" . "arch320@NOSPAM.gmail.com") (:url . "http://github.com/gennad/auto-highlight-symbol/raw/master/auto-highlight-symbol.el"))]) -(auto-dim-other-buffers . [(20180612 2341) nil "Makes non-current buffers less prominent" single ((:commit . "ec74b4803adeadf06296c84595fb6ccf4e1b4a3f") (:authors ("Steven Degutis") ("Michal Nazarewicz" . "mina86@mina86.com")) (:maintainer "Michal Nazarewicz" . "mina86@mina86.com") (:url . "https://github.com/mina86/auto-dim-other-buffers.el"))]) -(auto-dictionary . [(20150410 1610) nil "automatic dictionary switcher for flyspell" single ((:commit . "b364e08009fe0062cf0927d8a0582fad5a12b8e7") (:keywords "wp") (:authors ("Nikolaj Schumacher <bugs * nschum de>")) (:maintainer "Nikolaj Schumacher <bugs * nschum de>") (:url . "http://nschum.de/src/emacs/auto-dictionary/"))]) -(auto-complete-sage . [(20160514 751) ((auto-complete (1 5 1)) (sage-shell-mode (0 1 0))) "An auto-complete source for sage-shell-mode." single ((:commit . "51b8e3905196d266e1f8aa47881189833151b398") (:keywords "sage" "math" "auto-complete") (:authors ("Sho Takemori" . "stakemorii@gmail.com")) (:maintainer "Sho Takemori" . "stakemorii@gmail.com") (:url . "https://github.com/stakemori/auto-complete-sage"))]) -(auto-complete-rst . [(20140225 944) ((auto-complete (1 4))) "Auto-complete extension for ReST and Sphinx" tar ((:commit . "4803ce41a96224e6fa54e6741a5b5f40ebed7351") (:authors ("ARAKAKI, Takafumi")) (:maintainer "ARAKAKI, Takafumi") (:url . "https://github.com/tkf/auto-complete-rst"))]) -(auto-complete-pcmp . [(20140227 651) ((auto-complete (1 4 0)) (log4e (0 2 0)) (yaxception (0 1))) "Provide auto-complete sources using pcomplete results" single ((:commit . "2595d3dab1ef3549271ca922f212928e9d830eec") (:keywords "completion") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/auto-complete-pcmp"))]) -(auto-complete-nxml . [(20140221 458) ((auto-complete (1 4))) "do completion by auto-complete.el on nXML-mode" single ((:commit . "ac7b09a23e45f9bd02affb31847263de4180163a") (:keywords "completion" "html" "xml") (:authors ("Hiroaki Otsu" . "ootsuhiroaki@gmail.com")) (:maintainer "Hiroaki Otsu" . "ootsuhiroaki@gmail.com") (:url . "https://github.com/aki2o/auto-complete-nxml"))]) -(auto-complete-exuberant-ctags . [(20140320 724) ((auto-complete (1 4 0))) "Exuberant ctags auto-complete.el source" single ((:commit . "ff6121ff8b71beb5aa606d28fd389c484ed49765") (:keywords "anto-complete" "exuberant ctags") (:authors ("Kenichirou Oyama" . "k1lowxb@gmail.com")) (:maintainer "Kenichirou Oyama" . "k1lowxb@gmail.com") (:url . "http://code.101000lab.org"))]) -(auto-complete-distel . [(20180827 1344) ((auto-complete (1 4)) (distel-completion-lib (1 0 0))) "Erlang/distel completion backend for auto-complete-mode" single ((:commit . "acc4c0a5521904203d797fe96b08e5fae4233c7e") (:keywords "erlang" "distel" "auto-complete") (:authors ("Sebastian Weddmark Olsson")) (:maintainer "Sebastian Weddmark Olsson") (:url . "github.com/sebastiw/distel-completion"))]) -(auto-complete-clang-async . [(20130526 1514) nil "Auto Completion source for clang for GNU Emacs" single ((:commit . "5d9c5cabbb6b31e0ac3637631c0c8b25184aa8b4") (:keywords "completion" "convenience"))]) -(auto-complete-clang . [(20140409 752) ((auto-complete (1 3 1))) "Auto Completion source for clang for GNU Emacs" single ((:commit . "a195db1d0593b4fb97efe50885e12aa6764d998c") (:keywords "completion" "convenience") (:authors ("Brian Jiang" . "brianjcj@gmail.com")) (:maintainer "Brian Jiang" . "brianjcj@gmail.com") (:url . "https://github.com/brianjcj/auto-complete-clang"))]) -(auto-complete-chunk . [(20140225 946) ((auto-complete (1 4))) "Auto-completion for dot.separated.words." single ((:commit . "a9aa77ffb84a1037984a7ce4dda25074272f13fe") (:authors ("ARAKAKI, Takafumi")) (:maintainer "ARAKAKI, Takafumi") (:url . "https://github.com/tkf/auto-complete-chunk"))]) -(auto-complete-c-headers . [(20150912 323) ((auto-complete (1 4))) "An auto-complete source for C/C++ header files" single ((:commit . "52fef720c6f274ad8de52bef39a343421006c511") (:keywords "c") (:authors ("Masafumi Oyamada" . "stillpedant@gmail.com")) (:maintainer "Masafumi Oyamada" . "stillpedant@gmail.com"))]) -(auto-complete-auctex . [(20140223 1758) ((yasnippet (0 6 1)) (auto-complete (1 4))) "auto-completion for auctex" single ((:commit . "855633f668bcc4b9408396742a7cb84e0c4a2f77") (:authors ("Christopher Monsanto" . "chris@monsan.to")) (:maintainer "Christopher Monsanto" . "chris@monsan.to"))]) -(auto-complete . [(20170125 245) ((popup (0 5 0)) (cl-lib (0 5))) "Auto Completion for GNU Emacs" tar ((:commit . "2e83566ddfa758c69afe50b8a1c62a66f47471e3"))]) -(auto-compile . [(20181230 2216) ((emacs (25 1)) (packed (3 0 0))) "automatically compile Emacs Lisp libraries" single ((:commit . "f043133f37fe6d707fa03a1ec4ba619da24c2f35") (:keywords "compile" "convenience" "lisp") (:authors ("Jonas Bernoulli" . "jonas@bernoul.li")) (:maintainer "Jonas Bernoulli" . "jonas@bernoul.li") (:url . "https://github.com/emacscollective/auto-compile"))]) -(auto-auto-indent . [(20131106 1903) ((es-lib (0 1)) (cl-lib (1 0))) "Indents code as you type" single ((:commit . "0139378577f936d34b20276af6f022fb457af490") (:authors ("sabof")) (:maintainer "sabof") (:url . "https://github.com/sabof/auto-auto-indent"))]) -(auto-async-byte-compile . [(20160916 454) nil "Automatically byte-compile when saved" single ((:commit . "8681e74ddb8481789c5dbb3cafabb327db4c4484") (:keywords "lisp" "convenience") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/auto-async-byte-compile.el"))]) -(auth-source-pass . [(20190528 1959) ((emacs (25))) "Integrate auth-source with password-store" single ((:commit . "a3fbb672aa49d34108bdc129433739078ff2b498") (:authors ("Damien Cassou" . "damien@cassou.me") ("Nicolas Petton" . "nicolas@petton.fr") ("Keith Amidon" . "camalot@picnicpark.org")) (:maintainer "Damien Cassou" . "damien@cassou.me") (:url . "https://github.com/DamienCassou/auth-password-store"))]) -(aurora-config-mode . [(20180216 2302) nil "Major mode for Apache Aurora configuration files" single ((:commit . "8273ec7937a21b469b9dbb6c11714255b890f410") (:keywords "languages" "configuration") (:authors ("Berk D. Demir" . "bdd@mindcast.org")) (:maintainer "Berk D. Demir" . "bdd@mindcast.org") (:url . "https://github.com/bdd/aurora-config.el"))]) -(aurel . [(20170114 937) ((emacs (24 3)) (bui (1 1 0)) (dash (2 11 0))) "Search, get info, vote for and download AUR packages" single ((:commit . "fc7ad208f43f8525f84a18941c9b55f956df8961") (:keywords "tools") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/aurel"))]) -(audio-notes-mode . [(20170611 2159) nil "Play audio notes synced from somewhere else." single ((:commit . "fa38350829c7e97257efc746a010471d33748a68") (:keywords "hypermedia" "convenience") (:authors ("Artur Malabarba" . "bruce.connor.am@gmail.com")) (:maintainer "Artur Malabarba" . "bruce.connor.am@gmail.com") (:url . "http://github.com/Bruce-Connor/audio-notes-mode"))]) -(auctex-lua . [(20151121 1610) ((auctex (11 86)) (lua-mode (20130419))) "Lua editing support for AUCTeX" single ((:commit . "799cd8ac10c96991bb63d9aa60528ae5d8c786b5") (:keywords "latex" "lua") (:authors ("Sean Allred" . "seallred@smcm.edu")) (:maintainer "Sean Allred" . "seallred@smcm.edu") (:url . "http://github.com/vermiculus/auctex-lua"))]) -(auctex-latexmk . [(20170618 1636) ((auctex (11 87))) "Add LatexMk support to AUCTeX" single ((:commit . "4d353522650d7685acbf1d38f7dbc504f734bd84") (:keywords "tex") (:authors ("Tomoya Tanjo" . "ttanjo@gmail.com")) (:maintainer "Tomoya Tanjo" . "ttanjo@gmail.com") (:url . "https://github.com/tom-tan/auctex-latexmk/"))]) -(attrap . [(20190207 1410) ((dash (2 12 0)) (emacs (25 1)) (f (0 19 0)) (flycheck (0 30)) (s (1 11 0))) "ATtempt To Repair At Point" single ((:commit . "3b092bb8f6755a97e6ecb7623b9d2dde58beba4a") (:keywords "programming" "tools") (:authors ("Jean-Philippe Bernardy" . "jeanphilippe.bernardy@gmail.com")) (:maintainer "Jean-Philippe Bernardy" . "jeanphilippe.bernardy@gmail.com") (:url . "https://github.com/jyp/attrap"))]) -(atomic-chrome . [(20180617 724) ((emacs (24 3)) (let-alist (1 0 4)) (websocket (1 4))) "Edit Chrome text area with Emacs using Atomic Chrome" single ((:commit . "a505f638866f9e7b913784be0dc84f338e9ad449") (:keywords "chrome" "edit" "textarea") (:authors ("alpha22jp" . "alpha22jp@gmail.com")) (:maintainer "alpha22jp" . "alpha22jp@gmail.com") (:url . "https://github.com/alpha22jp/atomic-chrome"))]) -(atom-one-dark-theme . [(20190616 1628) nil "Atom One Dark color theme" single ((:commit . "073a30cb86148ef3e00812e08cd844168acff0c5") (:authors ("Jonathan Chu" . "me@jonathanchu.is")) (:maintainer "Jonathan Chu" . "me@jonathanchu.is") (:url . "https://github.com/jonathanchu/atom-one-dark-theme"))]) -(atom-dark-theme . [(20181022 1602) nil "An Emacs port of the Atom Dark theme from Atom.io." single ((:commit . "5c8610d0b45a536b8f7f9777297c86362685a357") (:keywords "themes" "atom" "dark") (:authors (nil . "Jeremy Whitlock <jwhitlock@apache.org")) (:maintainer nil . "Jeremy Whitlock <jwhitlock@apache.org") (:url . "https://github.com/whitlockjc/atom-dark-theme-emacs"))]) -(async-await . [(20170208 1150) ((emacs (25)) (promise (1 0))) "Async/Await" single ((:commit . "56ab90e4019ed1f81fd4ad9e8701b5cec7ffa795") (:keywords "async" "await" "convenience") (:authors ("chuntaro" . "chuntaro@sakura-games.jp")) (:maintainer "chuntaro" . "chuntaro@sakura-games.jp") (:url . "https://github.com/chuntaro/emacs-async-await"))]) -(async . [(20190503 656) nil "Asynchronous processing in Emacs" tar ((:commit . "bd68cc1ab1ac6af890e250bdaa12ffb1cb9649be") (:keywords "async") (:url . "https://github.com/jwiegley/emacs-async"))]) -(assess . [(20190102 1011) ((emacs (24 1)) (m-buffer (0 15))) "Test support functions" tar ((:commit . "0781fd79c4040dbceed42dc79edab4ec661c2593") (:authors ("Phillip Lord" . "phillip.lord@russet.org.uk")) (:maintainer "Phillip Lord" . "phillip.lord@russet.org.uk"))]) -(asn1-mode . [(20170729 226) ((emacs (24 3)) (s (1 10 0))) "ASN.1/GDMO mode for GNU Emacs" single ((:commit . "d5d4a8259daf708411699bcea85d322f18beb972") (:keywords "languages" "processes" "tools") (:authors ("Taichi Kawabata <kawabata.taichi_at_gmail.com>")) (:maintainer "Taichi Kawabata <kawabata.taichi_at_gmail.com>") (:url . "https://github.com/kawabata/asn1-mode/"))]) -(asilea . [(20150105 1525) ((emacs (24)) (cl-lib (0 5))) "Find best compiler options using simulated annealing" single ((:commit . "2aab1cc63b64ef08d12e84fd7ba5c94065f6039f") (:authors ("Fanael Linithien" . "fanael4@gmail.com")) (:maintainer "Fanael Linithien" . "fanael4@gmail.com") (:url . "https://github.com/Fanael/asilea"))]) -(arview . [(20160419 2109) nil "extract and view archives in the temporary directory" single ((:commit . "5437b4221b64b238c273a651d4792c577dba6d45") (:keywords "files") (:authors ("Andrey Fainer" . "fandrey@gmx.com")) (:maintainer "Andrey Fainer" . "fandrey@gmx.com") (:url . "https://github.com/afainer/arview"))]) -(artbollocks-mode . [(20170524 422) nil "Improve your writing (especially about art)" single ((:commit . "33a41ca4f8206f57e5498a526d3b0ea18d08bb93") (:authors ("Rob Myers <rob@robmyers.org>, Sacha Chua" . "sacha@sachachua.com")) (:maintainer "Rob Myers <rob@robmyers.org>, Sacha Chua" . "sacha@sachachua.com") (:url . "https://github.com/sachac/artbollocks-mode"))]) -(arjen-grey-theme . [(20170522 2047) nil "A soothing dark grey theme" single ((:commit . "4cd0be72b65d42390e2105cfdaa408a1ead8d8d1") (:keywords "faces") (:authors ("Arjen Wiersma" . "arjen@wiersma.org")) (:maintainer "Arjen Wiersma" . "arjen@wiersma.org") (:url . "https://github.com/credmp/arjen-grey"))]) -(ariadne . [(20131117 1711) ((bert (0 1))) "Ariadne plugin for Emacs" single ((:commit . "6fe401c7f996bcbc2f685e7971324c6f5e5eaf15") (:keywords "comm" "convenience" "processes") (:authors ("Oleksandr Manzyuk" . "manzyuk@gmail.com")) (:maintainer "Oleksandr Manzyuk" . "manzyuk@gmail.com"))]) -(aria2 . [(20141107 2317) ((emacs (24 4))) "Control aria2c commandline tool from Emacs" single ((:commit . "7a944c5100812269369225af7aa9580fedab175f") (:keywords "download" "bittorrent" "aria2") (:authors ("Åukasz Gruner" . "lukasz@gruner.lu")) (:maintainer "Åukasz Gruner" . "lukasz@gruner.lu") (:url . "https://bitbucket.org/ukaszg/aria2-mode"))]) -(arduino-mode . [(20180509 36) ((emacs (25)) (cl-lib (0 5)) (spinner (1 7 3))) "Major mode for editing Arduino code." tar ((:commit . "23ae47c9f28f559e70b790b471f20310e163a39b") (:keywords "languages" "arduino") (:maintainer "stardiviner" . "numbchild@gmail.com") (:url . "https://github.com/stardiviner/arduino-mode"))]) -(archive-rpm . [(20180706 1232) ((emacs (24 4))) "RPM and CPIO support for archive-mode" tar ((:commit . "59f83caebbd2f92fd634f6968e6d17b50ffa3dc7"))]) -(archive-region . [(20140201 2342) nil "Move region to archive file instead of killing" single ((:commit . "0d357d4c42a6a248c457f358f81b20fd20fede2f") (:keywords "languages") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "http://www.emacswiki.org/cgi-bin/wiki/download/archive-region.el"))]) -(arch-packer . [(20170730 1321) ((emacs (25 1)) (s (1 11 0)) (async (1 9 2)) (dash (2 12 0))) "Arch Linux package management frontend" single ((:commit . "940e96f7d357c6570b675a0f942181c787f1bfd7") (:authors ("Fritz Stelzer" . "brotzeitmacher@gmail.com")) (:maintainer "Fritz Stelzer" . "brotzeitmacher@gmail.com") (:url . "https://github.com/brotzeitmacher/arch-packer"))]) -(arc-dark-theme . [(20190314 1632) ((emacs (24))) "Arc dark theme" single ((:commit . "ee17dcca35dd0304145efc468b3f25af6907a59d") (:keywords "faces" "theme") (:authors ("Christopher Fraser" . "cfraz89@gmail.com")) (:maintainer "Christopher Fraser" . "cfraz89@gmail.com") (:url . "https://github.com/cfraz89/arc-dark-theme"))]) -(apt-sources-list . [(20180527 1241) ((emacs (24 4))) "Mode for editing APT source.list files" single ((:commit . "5289443ceff230dfc8a2c1c6b524c90560eb08a5") (:authors ("Dr. Rafael Sepúlveda" . "drs@gnulinux.org.mx")) (:maintainer "Joe Wreschnig" . "joe.wreschnig@gmail.com") (:url . "https://git.korewanetadesu.com/apt-sources-list.git"))]) -(apropospriate-theme . [(20190403 1832) nil "A colorful, low-contrast, light & dark theme set for Emacs with a fun name." tar ((:commit . "ad27279e7bf883aa7bedec21593d5453bc3963c3") (:keywords "color" "theme") (:url . "https://github.com/waymondo/apropospriate-theme"))]) -(aproject . [(20190531 313) nil "Basic project framework for Emacs" tar ((:commit . "702caf5392288dfd821b1e744fef0bb4fd9f9281") (:keywords "environment" "project") (:authors ("Vietor Liu" . "vietor.liu@gmail.com")) (:maintainer "Vietor Liu" . "vietor.liu@gmail.com") (:url . "https://github.com/vietor/aproject"))]) -(applescript-mode . [(20090321 632) nil "major mode for editing AppleScript source" single ((:commit . "8f888cd80af1e0902b5609143facd3051bc94892") (:keywords "languages" "tools") (:authors ("sakito" . "sakito@users.sourceforge.jp")) (:maintainer "sakito" . "sakito@users.sourceforge.jp"))]) -(apples-mode . [(20110121 418) nil "Major mode for editing and executing AppleScript code" tar ((:commit . "83a9ab0d6ba82496e2f7df386909b1a55701fccb") (:keywords "applescript" "languages") (:authors ("tequilasunset" . "tequilasunset.mac@gmail.com")) (:maintainer "tequilasunset" . "tequilasunset.mac@gmail.com"))]) -(apiwrap . [(20180602 2231) ((emacs (25))) "api-wrapping macros" single ((:commit . "e4c9c57d6620a788ec8a715ff1bb50542edea3a6") (:keywords "tools" "maint" "convenience") (:authors ("Sean Allred" . "code@seanallred.com")) (:maintainer "Sean Allred" . "code@seanallred.com") (:url . "https://github.com/vermiculus/apiwrap.el"))]) -(apib-mode . [(20170520 1358) ((markdown-mode (2 1))) "Major mode for API Blueprint files" single ((:commit . "6cc7c6f21b8e415b1718bb6a07ab2182e9e9dde6") (:keywords "tools" "api-blueprint") (:authors ("Vilibald WanÄa" . "vilibald@wvi.cz")) (:maintainer "Vilibald WanÄa" . "vilibald@wvi.cz") (:url . "http://github.com/w-vi/apib-mode"))]) -(apel . [(20190407 1056) nil "APEL (A Portable Emacs Library) provides support for portable Emacs Lisp programs" tar ((:commit . "d146ddbf8818e81d3577d5eee7825d377bec0c73"))]) -(apache-mode . [(20190522 313) nil "Major mode for editing Apache httpd configuration files" single ((:commit . "354f9302a8d805ac80d846adcd1cef10830b3d51") (:keywords "languages" "faces") (:authors ("Karl Chen" . "quarl@nospam.quarl.org")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me") (:url . "https://github.com/emacs-php/apache-mode"))]) -(aozora-view . [(20140310 1317) nil "Aozora Bunko text Emacs viewer." tar ((:commit . "b0390616d19e45f15f9a2f5d5688274831e721fd") (:keywords "text") (:authors ("KAWABATA, Taichi <kawabata.taichi_at_gmail.com>")) (:maintainer "KAWABATA, Taichi <kawabata.taichi_at_gmail.com>") (:url . "https://github.com/kawabata/aozora-view"))]) -(anzu . [(20190303 1701) ((emacs (24 3))) "Show number of matches in mode-line while searching" single ((:commit . "592f8ee6d0b1bc543943b36a30063c2d1aac4b22") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-anzu"))]) -(anyins . [(20131229 1041) nil "Insert content at multiple places from shell command or kill-ring" single ((:commit . "83844c17ac9b5b6c7655ee556b75689e4c8ea663") (:keywords "insert" "rectangular") (:authors ("Anthony HAMON" . "hamon.anth@gmail.com")) (:maintainer "Anthony HAMON" . "hamon.anth@gmail.com") (:url . "http://github.com/antham/anyins"))]) -(anybar . [(20160816 1421) nil "Control AnyBar from Emacs" single ((:commit . "7a0743e0d31bcb36ab1bb2e351f3e7139c422ac5") (:keywords "anybar") (:authors ("Christopher Shea" . "cmshea@gmail.com")) (:maintainer "Christopher Shea" . "cmshea@gmail.com"))]) -(anx-api . [(20140208 1514) nil "Interact with the AppNexus API from Emacs." single ((:commit . "b2411ebc966ac32c3ffc61bc22bf183834df0fa0") (:keywords "convenience" "json" "rest" "api" "appnexus") (:authors ("Rich Loveland")) (:maintainer "Rich Loveland"))]) -(anti-zenburn-theme . [(20180712 1838) nil "Low-contrast Zenburn-inverted theme" single ((:commit . "dbafbaa86be67c1d409873f57a5c0bbe1e7ca158") (:authors ("Andrey Kotlarski" . "m00naticus@gmail.com")) (:maintainer "Andrey Kotlarski" . "m00naticus@gmail.com") (:url . "https://github.com/m00natic/anti-zenburn-theme"))]) -(ant . [(20160211 1543) nil "helpers for compiling with ant" single ((:commit . "510b5a3f57ee4b2855422d88d359a28922c1ab70") (:keywords "compilation" "ant" "java"))]) -(ansible-vault . [(20190126 1936) ((emacs (24 3))) "Minor mode for editing ansible vault files" single ((:commit . "4fe490f524b79748c9f23026bb88d8f516b4ef40") (:keywords "ansible" "ansible-vault" "tools") (:maintainer "Zachary Elliott" . "contact@zell.io") (:url . "http://github.com/zellio/ansible-vault-mode"))]) -(ansible-doc . [(20160924 824) ((emacs (24 3))) "Ansible documentation Minor Mode" single ((:commit . "86083a7bb2ed0468ca64e52076b06441a2f8e9e0") (:keywords "tools" "help") (:authors ("Sebastian Wiesner" . "swiesner@lunaryorn")) (:maintainer "Sebastian Wiesner" . "swiesner@lunaryorn") (:url . "https://github.com/lunaryorn/ansible-doc.el"))]) -(ansible . [(20180813 114) ((s (1 9 0)) (f (0 16 2))) "Ansible minor mode" tar ((:commit . "8a097176d6772b6667254dbbe19c5fb64527bf5d") (:authors ("k1LoW (Kenichirou Oyama), <k1lowxb [at] gmail [dot] com> <k1low [at] 101000lab [dot] org>")) (:maintainer "k1LoW (Kenichirou Oyama), <k1lowxb [at] gmail [dot] com> <k1low [at] 101000lab [dot] org>") (:url . "http://101000lab.org"))]) -(ansi . [(20150703 826) ((s (1 6 1)) (dash (1 5 0))) "Turn string into ansi strings" single ((:commit . "12b4c5d91b3da1902838f421e5af6d40e2cd57dd") (:keywords "color" "ansi") (:authors ("Johan Andersson" . "johan.rejeep@gmail.com")) (:maintainer "Johan Andersson" . "johan.rejeep@gmail.com") (:url . "http://github.com/rejeep/ansi"))]) -(annoying-arrows-mode . [(20161024 646) ((cl-lib (0 5))) "Ring the bell if using arrows too much" single ((:commit . "3c42e9807d7696da2da2a21b63beebf9cdb3f5dc") (:authors ("Magnar Sveen" . "magnars@gmail.com")) (:maintainer "Magnar Sveen" . "magnars@gmail.com"))]) -(annotate-depth . [(20160520 2040) nil "Annotate buffer if indentation depth is beyond threshold." single ((:commit . "fcb24fa36287250e40d195590c4ca4a8a696277b") (:keywords "convenience") (:authors ("Morten Slot Kristensen <msk AT nullpointer DOT dk>")) (:maintainer "Morten Slot Kristensen <msk AT nullpointer DOT dk>") (:url . "https://github.com/netromdk/annotate-depth"))]) -(annotate . [(20190519 706) nil "annotate files without changing them" single ((:commit . "09d0cd89e458779ca375ac28bc664ee2e20db530") (:authors ("Bastian Bechtold")) (:maintainer "Bastian Bechtold") (:url . "https://github.com/bastibe/annotate.el"))]) -(anki-mode . [(20181106 1837) ((emacs (24 4)) (dash (2 12 0)) (markdown-mode (2 2)) (s (1 11 0)) (request (0 3 0))) "A major mode for creating anki cards" single ((:commit . "365fcfff45ed543f3df0d4110415f6f818ec2727") (:keywords "tools") (:authors ("David Shepherd" . "davidshepherd7@gmail.com")) (:maintainer "David Shepherd" . "davidshepherd7@gmail.com") (:url . "https://github.com/davidshepherd7/anki-mode"))]) -(anki-editor . [(20190608 1621) ((emacs (25)) (request (0 3 0)) (dash (2 12 0))) "Minor mode for making Anki cards with Org" tar ((:commit . "3e9f957ac59c19f1ca8c06d16c98a280a0c0474a") (:authors ("Lei Tan")) (:maintainer "Lei Tan") (:url . "https://github.com/louietan/anki-editor"))]) -(angular-snippets . [(20140514 523) ((s (1 4 0)) (dash (1 2 0))) "Yasnippets for AngularJS" tar ((:commit . "af5ae0a4a8603b040446c28afcf6ca01a8b4bd7b"))]) -(angular-mode . [(20151201 2127) nil "Major mode for Angular.js" tar ((:commit . "8720cde86af0f1859ccc8580571e8d0ad1c52cff") (:keywords "languages" "javascript") (:authors ("Rudolf Olah" . "omouse@gmail.com")) (:maintainer "Rudolf Olah" . "omouse@gmail.com") (:url . "https://github.com/omouse/angularjs-mode"))]) -(angry-police-captain . [(20120829 1252) nil "Show quote from http://theangrypolicecaptain.com in the minibuffer" single ((:commit . "d11931c5cb63368dcc4a48797962428cca6d3e9d") (:keywords "games" "web" "fun") (:authors ("Rolando Pereira" . "rolando_pereira@sapo.pt")) (:maintainer "Rolando Pereira" . "rolando_pereira@sapo.pt"))]) -(android-mode . [(20190109 1014) nil "Minor mode for Android application development" single ((:commit . "d60c88bfbd2dc5122bd2fde7dc11ec1e6848a5db") (:keywords "tools" "processes") (:authors ("R.W. van 't Veer")) (:maintainer "R.W. van 't Veer") (:url . "https://github.com/remvee/android-mode"))]) -(android-env . [(20190513 1322) ((emacs (24 3))) "Helper functions for working in android" single ((:commit . "bc7cc5449a36c755644c4b29acf057e21d92f3ab") (:keywords "android" "gradle" "java" "tools" "convenience") (:authors ("Fernando Jascovich")) (:maintainer "Fernando Jascovich") (:url . "https://github.com/fernando-jascovich/android-env.el"))]) -(anaphora . [(20180618 2200) nil "anaphoric macros providing implicit temp variables" single ((:commit . "3b2da3f759b244975852e79721c4a2dbad3905cf") (:keywords "extensions") (:authors ("Roland Walker" . "walker@pobox.com")) (:maintainer "Roland Walker" . "walker@pobox.com") (:url . "http://github.com/rolandwalker/anaphora"))]) -(anaconda-mode . [(20190616 1019) ((emacs (25)) (pythonic (0 1 0)) (dash (2 6 0)) (s (1 9)) (f (0 16 2))) "Code navigation, documentation lookup and completion for Python" single ((:commit . "24aa81ba62f13d7bb505a03fe244181c461fec68") (:authors ("Artem Malyshev" . "proofit404@gmail.com")) (:maintainer "Artem Malyshev" . "proofit404@gmail.com") (:url . "https://github.com/proofit404/anaconda-mode"))]) -(amx . [(20190419 330) ((emacs (24 4)) (s (0))) "Alternative M-x with extra features." single ((:commit . "b46e77d8ef9d1edf225e67055001f7e85048f842") (:keywords "convenience" "usability") (:authors ("Ryan C. Thompson" . "rct@thompsonclan.org") ("Cornelius Mika" . "cornelius.mika@gmail.com")) (:maintainer "Ryan C. Thompson" . "rct@thompsonclan.org") (:url . "http://github.com/DarwinAwardWinner/amx/"))]) -(ample-zen-theme . [(20150119 2154) nil "AmpleZen Theme for Emacs 24" single ((:commit . "b277bb7abd4b6624e8d59f02474b79af50a007bd") (:keywords "theme" "dark" "emacs 24") (:authors ("Michael Wall")) (:maintainer "Michael Wall") (:url . "https://github.com/mjwall/ample-zen"))]) -(ample-theme . [(20180207 1745) nil "Calm Dark Theme for Emacs" tar ((:commit . "536966adf882446165a1f756830028faa792c7a9") (:keywords "theme" "dark") (:authors ("Jordon Biondo" . "jordonbiondo@gmail.com")) (:maintainer "Jordon Biondo" . "jordonbiondo@gmail.com") (:url . "https://github.com/jordonbiondo/ample-theme"))]) -(ample-regexps . [(20151023 1000) nil "ample regular expressions for Emacs" tar ((:commit . "cbe91e148cac1ee8e223874dc956ed4cf607f046") (:keywords "regexps" "extensions" "tools") (:authors ("immerrr" . "immerrr@gmail.com")) (:maintainer "immerrr" . "immerrr@gmail.com"))]) -(ammonite-term-repl . [(20190613 146) ((emacs (24 3)) (s (1 12 0)) (scala-mode (0 23))) "Scala Ammonite REPL in term mode." single ((:commit . "318daf539ff169146d54e645359287bc29f11717") (:keywords "processes" "ammnite" "term" "scala") (:authors ("zwild" . "judezhao@outlook.com")) (:maintainer "zwild" . "judezhao@outlook.com") (:url . "https://github.com/zwild/ammonite-term-repl"))]) -(ameba . [(20190503 1213) ((emacs (24 4))) "An interface to Crystal Ameba linter." single ((:commit . "ce32da59c3215ccb90d37eb7d9e2affbdbaac1bb") (:keywords "convenience") (:authors ("Vitalii Elenhaupt")) (:maintainer "Vitalii Elenhaupt") (:url . "https://github.com/veelenga/ameba.el"))]) -(amd-mode . [(20180111 1402) ((emacs (25)) (projectile (20161008 47)) (s (1 9 0)) (f (0 16 2)) (seq (2 16)) (makey (0 3)) (js2-mode (20140114)) (js2-refactor (0 6 1))) "Minor mode for handling JavaScript AMD module requirements." single ((:commit . "01fd19e0d635ccaf8e812364d8720733f2e84126") (:keywords "javascript" "amd" "projectile") (:authors ("Nicolas Petton" . "petton.nicolas@gmail.com")) (:maintainer "Nicolas Petton" . "petton.nicolas@gmail.com"))]) -(almost-mono-themes . [(20190527 654) ((emacs (24))) "Almost monochromatic color themes" tar ((:commit . "c3a85c1a665530a5d830665969725cdba8eceb75") (:keywords "faces") (:authors ("John Olsson" . "john@cryon.se")) (:maintainer "John Olsson" . "john@cryon.se") (:url . "https://github.com/cryon/almost-mono-themes"))]) -(all-the-icons-ivy . [(20190508 1803) ((emacs (24 4)) (all-the-icons (2 4 0)) (ivy (0 8 0))) "Shows icons while using ivy and counsel" single ((:commit . "babea626db20773de4c408acb2788e2b9c8277e3") (:keywords "faces") (:authors ("asok")) (:maintainer "asok"))]) -(all-the-icons-gnus . [(20180511 654) ((emacs (24 4)) (dash (2 12 0)) (all-the-icons (3 1 0))) "Shows icons for in Gnus" single ((:commit . "27f78996da0725943bcfb2d18038e6f7bddfa9c7") (:keywords "mail" "tools") (:authors ("Nicolas Lamirault" . "nicolas.lamirault@gmail.com")) (:maintainer "Nicolas Lamirault" . "nicolas.lamirault@gmail.com"))]) -(all-the-icons-dired . [(20170418 2131) ((emacs (24 4)) (all-the-icons (2 2 0))) "Shows icons for each file in dired mode" single ((:commit . "980b7747d6c4a7992a1ec56afad908956db0a519") (:keywords "files" "icons" "dired") (:authors ("jtbm37")) (:maintainer "jtbm37"))]) -(all-the-icons . [(20190320 1809) ((emacs (24 3)) (memoize (1 0 1))) "A library for inserting Developer icons" tar ((:commit . "f996fafa5b2ea072d0ad1df9cd98acc75820f530") (:keywords "convenient" "lisp") (:authors ("Dominic Charlesworth" . "dgc336@gmail.com")) (:maintainer "Dominic Charlesworth" . "dgc336@gmail.com") (:url . "https://github.com/domtronn/all-the-icons.el"))]) -(all-ext . [(20170115 205) ((all (1 0))) "M-x all with helm-swoop/anything/multiple-cursors/line-number" single ((:commit . "9f4ef84a147cf4e0af6ef45826d6cb3558db6b88") (:keywords "all" "search" "replace" "anything" "helm" "helm-swoop" "occur") (:authors ("rubikitch" . "rubikitch@ruby-lang.org")) (:maintainer "rubikitch" . "rubikitch@ruby-lang.org") (:url . "https://github.com/rubikitch/all-ext"))]) -(align-cljlet . [(20160112 2101) ((clojure-mode (1 11 5))) "Space align various Clojure forms" single ((:commit . "602d72a7ad52788a0265e3c6da519464a98166b8") (:url . "https://github.com/gstamp/align-cljlet"))]) -(alert-termux . [(20181119 951) ((emacs (24 4))) "alert.el notifications on Termux" single ((:commit . "47c414285c2f5971f3be52aaf0a4066ea6989238") (:keywords "terminals") (:authors ("Gergely Polonkai" . "gergely@polonkai.eu")) (:maintainer "Gergely Polonkai" . "gergely@polonkai.eu") (:url . "https://github.com/gergelypolonkai/alert-termux"))]) -(alert . [(20190607 1635) ((gntp (0 1)) (log4e (0 3 0)) (cl-lib (0 5))) "Growl-style notification system for Emacs" single ((:commit . "ee1326aa8f1a0146ea10dc6f91d0a72584fa8b18") (:keywords "notification" "emacs" "message") (:authors ("John Wiegley" . "jwiegley@gmail.com")) (:maintainer "John Wiegley" . "jwiegley@gmail.com") (:url . "https://github.com/jwiegley/alert"))]) -(alect-themes . [(20190506 1440) ((emacs (24 0))) "Configurable light, dark and black themes for Emacs 24 or later" tar ((:commit . "da7305075d292cc1909bf26dc5634bc3cc8d2603") (:keywords "color" "theme") (:authors ("Alex Kost" . "alezost@gmail.com")) (:maintainer "Alex Kost" . "alezost@gmail.com") (:url . "https://github.com/alezost/alect-themes"))]) -(alda-mode . [(20180608 605) ((emacs (24 0))) "An Alda major mode" single ((:commit . "1692b9003d2c3de403251ec452c6ce43ec819c84") (:keywords "alda" "highlight") (:authors ("Jay Kamat" . "jaygkamat@gmail.com")) (:maintainer "Jay Kamat" . "jaygkamat@gmail.com") (:url . "http://gitlab.com/jgkamat/alda-mode"))]) -(alchemist . [(20180312 1304) ((elixir-mode (2 2 5)) (dash (2 11 0)) (emacs (24 4)) (company (0 8 0)) (pkg-info (0 4)) (s (1 11 0))) "Elixir tooling integration into Emacs" tar ((:commit . "6f99367511ae209f8fe2c990779764bbb4ccb6ed") (:keywords "languages" "elixir" "elixirc" "mix" "hex" "alchemist") (:authors ("Samuel Tonini" . "tonini.samuel@gmail.com")) (:maintainer "Samuel Tonini" . "tonini.samuel@gmail.com") (:url . "http://www.github.com/tonini/alchemist.el"))]) -(alarm-clock . [(20190212 507) ((emacs (24 4)) (f (0 17 0))) "Alarm Clock" tar ((:commit . "5fb19ed061d6ee92ac0df1f1ec766c155d50867d") (:keywords "calendar" "tools" "convenience") (:authors ("Steve Lemuel" . "wlemuel@hotmail.com")) (:maintainer "Steve Lemuel" . "wlemuel@hotmail.com") (:url . "https://github.com/wlemuel/alarm-clock"))]) -(alan-mode . [(20190407 555) ((flycheck (32)) (emacs (25 1)) (s (1 12))) "Major mode for editing Alan files" single ((:commit . "a5a705b64230bb14ad1d19bcc0613e3261e8cbe5") (:keywords "alan" "languages") (:authors ("Paul van Dam" . "pvandam@kjerner.com")) (:maintainer "Paul van Dam" . "pvandam@kjerner.com") (:url . "https://github.com/Kjerner/AlanForEmacs"))]) -(airplay . [(20130212 1226) ((request (20130110 2144)) (simple-httpd (1 4 1)) (deferred (0 3 1))) "Airplay bindings to Emacs" tar ((:commit . "bd690aafcae3a887946e1bba8327597932d964ad") (:keywords "appletv" "airplay") (:authors ("Wataru MIYAGUNI" . "gonngo@gmail.com")) (:maintainer "Wataru MIYAGUNI" . "gonngo@gmail.com") (:url . "https://github.com/gongo/airplay-el"))]) -(airline-themes . [(20180411 406) ((powerline (2 3))) "vim-airline themes for emacs powerline" tar ((:commit . "8b528fbae0e557461315bed82883275d58df41f2") (:keywords "evil" "mode-line" "powerline" "airline" "themes") (:authors ("Anthony DiGirolamo" . "anthony.digirolamo@gmail.com")) (:maintainer "Anthony DiGirolamo" . "anthony.digirolamo@gmail.com") (:url . "http://github.com/AnthonyDiGirolamo/airline-themes"))]) -(aio . [(20190601 753) ((emacs (26 1))) "async/await for Emacs Lisp" tar ((:commit . "0e8a18f1bbb5f7be0f88d8e02ef13494736d63bc") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/emacs-aio"))]) -(ahungry-theme . [(20180131 328) ((emacs (24))) "Ahungry color theme for Emacs. Make sure to (load-theme 'ahungry)." single ((:commit . "a038d91ec593d1f1b19ca66a0576d59bbc24c523") (:keywords "ahungry" "palette" "color" "theme" "emacs" "color-theme" "deftheme") (:authors ("Matthew Carter" . "m@ahungry.com")) (:maintainer "Matthew Carter" . "m@ahungry.com") (:url . "https://github.com/ahungry/color-theme-ahungry"))]) -(ahk-mode . [(20190323 623) ((emacs (24 3))) "Major mode for editing AHK (AutoHotkey and AutoHotkey_L)" single ((:commit . "66e02a3b44d672787b1f13a30008801a9efca65b") (:keywords "ahk" "autohotkey" "hotkey" "keyboard shortcut" "automation") (:authors ("Rich Alesi")) (:maintainer "Rich Alesi") (:url . "https://github.com/ralesi/ahk-mode"))]) -(ahg . [(20181120 1301) nil "Alberto's Emacs interface for Mercurial (Hg)" single ((:commit . "7213c02fdbd6e76afbb0d8ee3d43200926b59cbb") (:authors ("Alberto Griggio" . "agriggio@users.sourceforge.net")) (:maintainer "Alberto Griggio" . "agriggio@users.sourceforge.net") (:url . "https://bitbucket.org/agriggio/ahg"))]) -(agtags . [(20190617 428) ((emacs (25))) "A frontend to GNU Global" tar ((:commit . "f49a44d1aa3b6d137ab696c02338ea0ddc4d6e68") (:keywords "tools" "convenience") (:authors ("Vietor Liu" . "vietor.liu@gmail.com")) (:maintainer "Vietor Liu" . "vietor.liu@gmail.com") (:url . "https://github.com/vietor/agtags"))]) -(aggressive-indent . [(20190218 2331) ((emacs (24 1)) (cl-lib (0 5))) "Minor mode to aggressively keep your code always indented" single ((:commit . "3803f24020ef0a656dc5345713c4964073aec9a8") (:keywords "indent" "lisp" "maint" "tools") (:authors ("Artur Malabarba" . "emacs@endlessparentheses.com")) (:maintainer "Artur Malabarba" . "emacs@endlessparentheses.com") (:url . "https://github.com/Malabarba/aggressive-indent-mode"))]) -(aggressive-fill-paragraph . [(20180910 816) ((dash (2 10 0))) "A mode to automatically keep paragraphs filled" single ((:commit . "2d65d925318006e2f6fa261ad192fbc2d212877b") (:keywords "fill-paragraph" "automatic" "comments") (:authors ("David Shepherd" . "davidshepherd7@gmail.com")) (:maintainer "David Shepherd" . "davidshepherd7@gmail.com") (:url . "https://github.com/davidshepherd7/aggressive-fill-paragraph-mode"))]) -(ag . [(20180225 1040) ((dash (2 8 0)) (s (1 9 0)) (cl-lib (0 5))) "A front-end for ag ('the silver searcher'), the C ack replacement." single ((:commit . "77b4f50c5372bf219da496567b2b867261f0d354") (:authors ("Wilfred Hughes" . "me@wilfred.me.uk")) (:maintainer "Wilfred Hughes" . "me@wilfred.me.uk"))]) -(afternoon-theme . [(20140104 1859) ((emacs (24 1))) "Dark color theme with a deep blue background" single ((:commit . "89b1d778a1f8b385775c122f2bd1c62f0fbf931a") (:keywords "themes") (:authors ("Ozan Sener" . "ozan@ozansener.com")) (:maintainer "Ozan Sener" . "ozan@ozansener.com") (:url . "http://github.com/osener/emacs-afternoon-theme"))]) -(aes . [(20171029 623) nil "Implementation of AES" single ((:commit . "b7d5da89c3443292e4f0b1c9d254d459933cf5af") (:keywords "data" "tools") (:authors ("Markus Sauermann" . "emacs-aes@sauermann-consulting.de")) (:maintainer "Markus Sauermann" . "emacs-aes@sauermann-consulting.de") (:url . "https://github.com/Sauermann/emacs-aes"))]) -(adoc-mode . [(20160314 2130) ((markup-faces (1 0 0))) "a major-mode for editing AsciiDoc files in Emacs" single ((:commit . "745884359a1b8826ede2c4cfd2f0b5478953ac40") (:keywords "wp" "asciidoc") (:authors ("Florian Kaufmann" . "sensorflo@gmail.com")) (:maintainer "Florian Kaufmann" . "sensorflo@gmail.com") (:url . "https://github.com/sensorflo/adoc-mode/wiki"))]) -(addressbook-bookmark . [(20190612 1638) ((emacs (24))) "An address book based on Standard Emacs bookmarks." single ((:commit . "d8e502fc2f3d3ab1508ce9e50ebf8a9addc6e5b3") (:authors ("Thierry Volpiatto" . "thierry.volpiatto@gmail.com")) (:maintainer "Thierry Volpiatto" . "thierry.volpiatto@gmail.com") (:url . "https://github.com/thierryvolpiatto/addressbook-bookmark"))]) -(add-node-modules-path . [(20180710 2342) nil "Add node_modules to your exec-path" single ((:commit . "f31e69ccb681f882aebb806ce6e9478e3ac39708") (:keywords "javascript" "node" "node_modules" "eslint") (:authors ("Neri Marschik" . "marschik_neri@cyberagent.co.jp")) (:maintainer "Neri Marschik" . "marschik_neri@cyberagent.co.jp") (:url . "https://github.com/codesuki/add-node-modules-path"))]) -(add-hooks . [(20171217 123) nil "Functions for setting multiple hooks" single ((:commit . "1845137703461fc44bd77cf24014ba58f19c369d") (:keywords "lisp") (:authors ("Nick McCurdy" . "nick@nickmccurdy.com")) (:maintainer "Nick McCurdy" . "nick@nickmccurdy.com") (:url . "https://github.com/nickmccurdy/add-hooks"))]) -(adafruit-wisdom . [(20180225 52) ((emacs (25))) "Get/display adafruit.com quotes" single ((:commit . "aafc01726f1b3160321d40160298a0e1b054b382") (:keywords "games") (:authors ("Neil Okamoto" . "neil.okamoto+melpa@gmail.com")) (:maintainer "Neil Okamoto" . "neil.okamoto+melpa@gmail.com") (:url . "https://github.com/gonewest818/adafruit-wisdom.el"))]) -(activity-watch-mode . [(20190423 1529) ((emacs (24)) (projectile (0)) (request (0)) (json (0)) (cl (0))) "Automatic time tracking extension." single ((:commit . "c2ad321952524d88dd34842a6989b6e2d8acb646") (:keywords "calendar" "comm") (:authors ("Gabor Torok <gabor@20y.hu>, Alan Hamlett" . "alan@wakatime.com")) (:maintainer "Paul d'Hubert" . "paul.dhubert@ya.ru") (:url . "https://github.com/pauldub/activity-watch-mode"))]) -(actionscript-mode . [(20180527 1701) nil "A simple mode for editing Actionscript 3 files" single ((:commit . "65abd58e198458a8e46748c5962c41d80d60c4ea") (:keywords "language" "modes") (:authors ("Austin Haas")) (:maintainer "Austin Haas"))]) -(ack-menu . [(20150504 2022) ((mag-menu (0 1 0))) "A menu-based front-end for ack" single ((:commit . "f77be93a4697926ecf3195a355eb69580f695f4d") (:keywords "tools" "matching" "convenience") (:authors ("Steven Thomas") ("Nikolaj Schumacher")) (:maintainer "Steven Thomas") (:url . "https://github.com/chumpage/ack-menu"))]) -(achievements . [(20150530 1826) ((keyfreq (0 0 3))) "Achievements for emacs usage." tar ((:commit . "18a422131c12aff723dde17bae08989efd93232e"))]) -(ace-window . [(20190527 1351) ((avy (0 2 0))) "Quickly switch windows." single ((:commit . "138a80cbc4e9ed17d3a085a3687f5223a142a9a3") (:keywords "window" "location") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/ace-window"))]) -(ace-popup-menu . [(20190101 702) ((emacs (24 3)) (avy-menu (0 1))) "Replace GUI popup menu with something more efficient" single ((:commit . "db9811ffd0a288e3181b84e3aa651e942fed4e72") (:keywords "convenience" "popup" "menu") (:authors ("Mark Karpov" . "markkarpov92@gmail.com")) (:maintainer "Mark Karpov" . "markkarpov92@gmail.com") (:url . "https://github.com/mrkkrp/ace-popup-menu"))]) -(ace-pinyin . [(20190123 402) ((avy (0 2 0)) (pinyinlib (0 1 0))) "Jump to Chinese characters using avy or ace-jump-mode" single ((:commit . "4915b2413359d85002918e322dbc90c4984b4277") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com") (:url . "https://github.com/cute-jumper/ace-pinyin"))]) -(ace-mc . [(20190206 749) ((ace-jump-mode (1 0)) (multiple-cursors (1 0)) (dash (2 10 0))) "Add multiple cursors quickly using ace jump" single ((:commit . "6877880efd99e177e4e9116a364576def3da391b") (:keywords "motion" "location" "cursor") (:authors ("Josh Moller-Mara" . "jmm@cns.nyu.edu")) (:maintainer "Josh Moller-Mara" . "jmm@cns.nyu.edu") (:url . "https://github.com/mm--/ace-mc"))]) -(ace-link . [(20190407 244) ((avy (0 4 0))) "Quickly follow links" single ((:commit . "eb4dfe10051aa0fb4a24a0b14662e709d4d9a134") (:keywords "convenience" "links" "avy") (:authors ("Oleh Krehel" . "ohwoeowho@gmail.com")) (:maintainer "Oleh Krehel" . "ohwoeowho@gmail.com") (:url . "https://github.com/abo-abo/ace-link"))]) -(ace-jump-zap . [(20170717 1849) ((ace-jump-mode (1 0)) (dash (2 10 0))) "Character zapping, `ace-jump-mode` style" single ((:commit . "52b5d4c6c73bd0fc833a0dcb4e803a5287d8cae8") (:keywords "convenience" "tools" "extensions") (:authors ("justin talbott" . "justin@waymondo.com")) (:maintainer "justin talbott" . "justin@waymondo.com") (:url . "https://github.com/waymondo/ace-jump-zap"))]) -(ace-jump-mode . [(20140616 815) nil "a quick cursor location minor mode for emacs" single ((:commit . "8351e2df4fbbeb2a4003f2fb39f46d33803f3dac") (:keywords "motion" "location" "cursor") (:authors ("winterTTr" . "winterTTr@gmail.com")) (:maintainer "winterTTr" . "winterTTr@gmail.com") (:url . "https://github.com/winterTTr/ace-jump-mode/"))]) -(ace-jump-helm-line . [(20160918 1836) ((avy (0 4 0)) (helm (1 6 3))) "Ace-jump to a candidate in helm window" single ((:commit . "1483055255df3f8ae349f7520f05b1e43ea3ed37") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com") (:url . "https://github.com/cute-jumper/ace-jump-helm-line"))]) -(ace-jump-buffer . [(20171031 1550) ((avy (0 4 0)) (dash (2 4 0))) "fast buffer switching extension to `avy'" single ((:commit . "0d335064230caf3efdd5a732e8fbd67e3948ed6a") (:authors ("Justin Talbott" . "justin@waymondo.com")) (:maintainer "Justin Talbott" . "justin@waymondo.com") (:url . "https://github.com/waymondo/ace-jump-buffer"))]) -(ace-isearch . [(20170506 712) ((emacs (24))) "A seamless bridge between isearch, ace-jump-mode, avy, helm-swoop and swiper" single ((:commit . "0502f95e333c8059a678745e5a112542965661d1") (:authors ("Akira Tamamori")) (:maintainer "Akira Tamamori") (:url . "https://github.com/tam17aki/ace-isearch"))]) -(ace-flyspell . [(20170309 509) ((avy (0 4 0))) "Jump to and correct spelling errors using `ace-jump-mode' and flyspell" single ((:commit . "538d4f8508d305262ba0228dfe7c819fb65b53c9") (:keywords "extensions") (:authors ("Junpeng Qiu" . "qjpchmail@gmail.com")) (:maintainer "Junpeng Qiu" . "qjpchmail@gmail.com") (:url . "https://github.com/cute-jumper/ace-flyspell"))]) -(academic-phrases . [(20180723 1021) ((dash (2 12 0)) (s (1 12 0)) (ht (2 0)) (emacs (24))) "Bypass that mental block when writing your papers." single ((:commit . "25d9cf67feac6359cb213f061735e2679c84187f") (:keywords "academic" "convenience" "papers" "writing" "wp") (:authors ("Nasser Alshammari" . "designernasser@gmail.com")) (:maintainer "Nasser Alshammari" . "designernasser@gmail.com") (:url . "https://github.com/nashamri/academic-phrases"))]) -(ac-sly . [(20170728 1027) ((sly (1 0 0 -3)) (auto-complete (1 4)) (cl-lib (0 5))) "An auto-complete source using sly completions" single ((:commit . "bf69c687c4ecf1994349d20c182e9b567399912e") (:authors ("Damian T. Dobroczy\\'nski" . "qoocku@gmail.com")) (:maintainer "Damian T. Dobroczy\\'nski" . "qoocku@gmail.com") (:url . "https://github.com/qoocku/ac-sly"))]) -(ac-slime . [(20171027 2100) ((auto-complete (1 4)) (slime (2 9)) (cl-lib (0 5))) "An auto-complete source using slime completions" single ((:commit . "6c80cb602ddad46486288f94ad7546396c6e4b1a") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com") (:url . "https://github.com/purcell/ac-slime"))]) -(ac-skk . [(20141230 119) ((auto-complete (1 3 1)) (ddskk (16 0 50)) (tinysegmenter (0)) (cl-lib (0 5))) "auto-complete-mode source for DDSKK a.k.a Japanese input method" single ((:commit . "d25a265930430d080329789fb253d786c01dfa24") (:keywords "convenience" "auto-complete") (:authors ("lugecy <https://twitter.com/lugecy>")) (:maintainer "myuhe") (:url . "https://github.com/myuhe/ac-skk.el"))]) -(ac-rtags . [(20181117 1949) ((auto-complete (1 4 0)) (rtags (2 10))) "auto-complete back-end for RTags" single ((:commit . "d49e49f46b878e0d10f6ddc3951d690d50e75277") (:authors ("Jan Erik Hanssen" . "jhanssen@gmail.com") ("Anders Bakken" . "agbakken@gmail.com")) (:maintainer "Jan Erik Hanssen" . "jhanssen@gmail.com") (:url . "http://rtags.net"))]) -(ac-racer . [(20170114 809) ((emacs (24 3)) (auto-complete (1 5 0)) (racer (0 0 2))) "auto-complete source of racer" single ((:commit . "4408c2d652dec0432e20c05e001db8222d778c6b") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-ac-racer"))]) -(ac-php-core . [(20190601 622) ((dash (1)) (php-mode (1)) (s (1)) (f (0 17 0)) (popup (0 5 0)) (xcscope (1 0))) "The core library of the ac-php." tar ((:commit . "19b34b56ebc0eaabf9b1f4a8ac6819bde9855d2b") (:keywords "completion" "convenience" "intellisense") (:authors ("jim" . "xcwenn@qq.com") ("Serghei Iakovlev" . "sadhooklay@gmail.com")) (:maintainer "jim") (:url . "https://github.com/xcwen/ac-php"))]) -(ac-php . [(20190424 222) ((ac-php-core (2 0)) (auto-complete (1 4 0)) (yasnippet (0 8 0))) "Auto Completion source for PHP." single ((:commit . "19b34b56ebc0eaabf9b1f4a8ac6819bde9855d2b") (:keywords "completion" "convenience" "intellisense") (:authors ("jim" . "xcwenn@qq.com")) (:maintainer "jim") (:url . "https://github.com/xcwen/ac-php"))]) -(ac-octave . [(20180406 334) ((auto-complete (1 4 0))) "An auto-complete source for Octave" single ((:commit . "fe0f931f2024f43de3c4fff4b1ace672413adeae") (:keywords "octave" "auto-complete" "completion") (:authors ("coldnew" . "coldnew.tw@gmail.com")) (:maintainer "coldnew" . "coldnew.tw@gmail.com") (:url . "https://github.com/coldnew/ac-octave"))]) -(ac-mozc . [(20150227 1619) ((cl-lib (0 5)) (auto-complete (1 4)) (mozc (0))) "auto-complete sources for Japanese input using Mozc" single ((:commit . "4c6c8be4701010d9362184437c0f783e0335c631") (:authors ("igjit" . "igjit1@gmail.com")) (:maintainer "igjit" . "igjit1@gmail.com") (:url . "https://github.com/igjit/ac-mozc"))]) -(ac-math . [(20141116 2127) ((auto-complete (1 4)) (math-symbol-lists (1 0))) "Auto-complete sources for input of mathematical symbols and latex tags" single ((:commit . "c012a8f620a48cb18db7d78995035d65eae28f11") (:keywords "latex" "auto-complete" "unicode" "symbols") (:authors ("Vitalie Spinu")) (:maintainer "Vitalie Spinu") (:url . "https://github.com/vitoshka/ac-math"))]) -(ac-js2 . [(20190101 933) ((js2-mode (20090723)) (skewer-mode (1 4))) "Auto-complete source for Js2-mode, with navigation" tar ((:commit . "2b56d09a16c1a0ce514cc1b85d64cb1be4502723") (:authors ("Scott Barnett" . "scott.n.barnett@gmail.com")) (:maintainer "Scott Barnett" . "scott.n.barnett@gmail.com") (:url . "https://github.com/ScottyB/ac-js2"))]) -(ac-ispell . [(20151101 226) ((auto-complete (1 4)) (cl-lib (0 5))) "ispell completion source for auto-complete" single ((:commit . "22bace7387e9012002a6a444922f75f9913077b0") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-ac-ispell"))]) -(ac-inf-ruby . [(20131115 1150) ((inf-ruby (2 3 2)) (auto-complete (1 4))) "Enable auto-complete in inf-ruby sessions" single ((:commit . "ee53fc9c61950da9a96df3ff5ef186f9a9faf151") (:keywords "languages" "tools") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com"))]) -(ac-html-csswatcher . [(20151208 2113) ((web-completion-data (0 1))) "css/less class/id completion with `ac-html' or `company-web'" single ((:commit . "b0f3e7e1a3fe49e88b6eb6432377232fc715f221") (:keywords "html" "css" "less" "auto-complete") (:authors ("Olexandr Sydorchuck " . "olexandr.syd@gmail.com")) (:maintainer "Olexandr Sydorchuck " . "olexandr.syd@gmail.com") (:url . "https://github.com/osv/ac-html-csswatcher"))]) -(ac-html-bootstrap . [(20160302 1701) ((web-completion-data (0 1))) "auto complete bootstrap3/fontawesome classes for `ac-html' and `company-web'" tar ((:commit . "481e6e441cd566554ce71cd8cb28c9e7ebb1c24b") (:keywords "html" "auto-complete" "bootstrap" "cssx") (:authors ("Olexandr Sydorchuk" . "olexandr.syd@gmail.com")) (:maintainer "Olexandr Sydorchuk" . "olexandr.syd@gmail.com") (:url . "https://github.com/osv/ac-html-bootstrap"))]) -(ac-html-angular . [(20151225 719) ((web-completion-data (0 1))) "auto complete angular15 data for `ac-html' and `company-web'" tar ((:commit . "6bafe09afe03112ca4183d58461c1a6f6c2b3c67") (:keywords "html" "auto-complete" "angular") (:authors ("Olexandr Sydorchuk" . "olexandr.syd@gmail.com")) (:maintainer "Olexandr Sydorchuk" . "olexandr.syd@gmail.com") (:url . "https://github.com/osv/ac-html-bootstrap"))]) -(ac-html . [(20151005 731) ((auto-complete (1 4)) (s (1 9)) (f (0 17)) (dash (2 10))) "auto complete source for html tags and attributes" tar ((:commit . "668154cba123c321d1b07c2dc8b26d14092253b8") (:keywords "html" "auto-complete" "slim" "haml" "jade") (:authors ("Zhang Kai Yu" . "yeannylam@gmail.com")) (:maintainer "Zhang Kai Yu" . "yeannylam@gmail.com") (:url . "https://github.com/cheunghy/ac-html"))]) -(ac-helm . [(20160319 233) ((helm (1 6 3)) (auto-complete (1 4 0)) (popup (0 5 0)) (cl-lib (0 5))) "Helm interface for auto-complete" single ((:commit . "baf2b1e04bcffa835084389c0fab415f26efbf32") (:keywords "completion" "convenience" "helm") (:authors ("rubikitch" . "rubikitch@ruby-lang.org") ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com"))]) -(ac-haskell-process . [(20150423 1402) ((auto-complete (1 4)) (haskell-mode (13))) "Haskell auto-complete source which uses the current haskell process" single ((:commit . "0362d4323511107ec70e7165cb612f3ab01b712f") (:keywords "languages") (:authors ("Steve Purcell" . "steve@sanityinc.com")) (:maintainer "Steve Purcell" . "steve@sanityinc.com"))]) -(ac-geiser . [(20130929 647) ((geiser (0 5)) (auto-complete (1 4))) "Auto-complete backend for geiser" tar ((:commit . "502d18a8a0bd4b5fdd495a99299ba2a632c5cd9a"))]) -(ac-etags . [(20161001 1507) ((auto-complete (1 4))) "etags/ctags completion source for auto-complete" single ((:commit . "7983e631c226fe0fa53af3b2d56bf4eca3d785ce") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-ac-etags"))]) -(ac-emoji . [(20150823 711) ((auto-complete (1 5 0)) (cl-lib (0 5))) "auto-complete source of Emoji" tar ((:commit . "40a639764eb654f1b4bb705c817b66032a26ff2b") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-ac-emoji"))]) -(ac-emmet . [(20131015 1558) ((emmet-mode (1 0 2)) (auto-complete (1 4))) "auto-complete sources for emmet-mode's snippets" single ((:commit . "88f24876ee3b759978d4614a758280b5d512d543") (:keywords "completion" "convenience" "emmet") (:authors ("Yasuyuki Oka" . "yasuyk@gmail.com")) (:maintainer "Yasuyuki Oka" . "yasuyk@gmail.com") (:url . "https://github.com/yasuyk/ac-emmet"))]) -(ac-emacs-eclim . [(20180911 1121) ((eclim (0 3)) (auto-complete (1 5))) "auto-complete source for eclim" single ((:commit . "23f5b294f833ce58516d7b9ae08a7792d70022a1"))]) -(ac-dcd . [(20190425 907) ((auto-complete (1 3 1)) (flycheck-dmd-dub (0 7))) "Auto Completion source for dcd for GNU Emacs" single ((:commit . "9d444523ffa92a763ea8f532b8001829a51a2557") (:keywords "languages") (:authors (nil . "<atila.neves@gmail.com>")) (:maintainer nil . "<atila.neves@gmail.com>") (:url . "http://github.com/atilaneves/ac-dcd"))]) -(ac-clang . [(20180710 546) ((emacs (24)) (cl-lib (0 5)) (auto-complete (1 4 0)) (pos-tip (0 4 6)) (yasnippet (0 8 0))) "Auto Completion source by libclang for GNU Emacs" tar ((:commit . "3294b968eb1a8317049190940193f9da47c085ef") (:keywords "completion" "convenience" "intellisense") (:authors ("yaruopooner [https://github.com/yaruopooner]")) (:maintainer "yaruopooner [https://github.com/yaruopooner]") (:url . "https://github.com/yaruopooner/ac-clang"))]) -(ac-cider . [(20161006 719) ((cider (0 8 0)) (auto-complete (1 4)) (cl-lib (0 3))) "Clojure auto-complete sources using CIDER" single ((:commit . "fa13e067dd9c8c76151c7d140a2803da1d109b84") (:keywords "languages" "clojure" "nrepl" "cider" "compliment") (:authors ("Alex Yakushev" . "alex@bytopia.org") ("Steve Purcell" . "steve@sanityinc.com") ("Sam Aaron" . "samaaron@gmail.com")) (:maintainer "Alex Yakushev" . "alex@bytopia.org") (:url . "https://github.com/clojure-emacs/ac-cider"))]) -(ac-capf . [(20151101 217) ((auto-complete (1 4)) (cl-lib (0 5))) "auto-complete source with completion-at-point" single ((:commit . "17571dba0a8f98111f2ab758e9bea285b263781b") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-ac-capf"))]) -(ac-c-headers . [(20151021 834) ((auto-complete (1 3 1))) "auto-complete source for C headers" single ((:commit . "de13a1d35b311e6601556d8ef163de102057deea") (:authors ("zk_phi")) (:maintainer "zk_phi") (:url . "http://hins11.yu-yake.com/"))]) -(ac-alchemist . [(20150908 656) ((auto-complete (1 5 0)) (alchemist (1 5 0)) (cl-lib (0 5))) "auto-complete source for alchemist" single ((:commit . "b1891c3d41aed83f61d78a609ea97be5cc2758d9") (:authors ("Syohei YOSHIDA" . "syohex@gmail.com")) (:maintainer "Syohei YOSHIDA" . "syohex@gmail.com") (:url . "https://github.com/syohex/emacs-ac-alchemist"))]) -(abyss-theme . [(20170808 1345) ((emacs (24))) "A dark theme with contrasting colours." single ((:commit . "18791c6e8d9cc2b4815c9f08627a2e94fc0eeb14") (:keywords "theme" "dark" "contrasting colours") (:authors ("Matt Russell" . "matt@mgrbyte.co.uk")) (:maintainer "Matt Russell" . "matt@mgrbyte.co.uk") (:url . "https://github.com/mgrbyte/emacs-abyss-theme"))]) -(abs-mode . [(20190404 2304) ((emacs (25)) (erlang (0)) (maude-mode (0)) (flymake (0 3))) "Major mode for the modeling language Abs" single ((:commit . "31fb36f9206203062b8c618fef6ad484e44af226") (:keywords "languages") (:authors ("Rudi Schlatte" . "rudi@constantly.at")) (:maintainer "Rudi Schlatte" . "rudi@constantly.at") (:url . "https://github.com/abstools/abs-mode"))]) -(abl-mode . [(20190403 904) nil "Python TDD minor mode" single ((:commit . "44b7d946bc3a693f5a931c4a62c0a67d42e8d4dc") (:authors ("Ulas Tuerkmen <ulas.tuerkmen at gmail dot com>")) (:maintainer "Ulas Tuerkmen <ulas.tuerkmen at gmail dot com>") (:url . "http://github.com/afroisalreadyinu/abl-mode"))]) -(abgaben . [(20171119 646) ((pdf-tools (0 80)) (f (0 19 0)) (s (1 11 0))) "review and correct assignments received by mail" single ((:commit . "20d14830f07d66e2a04bcad1498a4a6fbf4b4451") (:keywords "mail" "outlines" "convenience") (:authors ("Arne Köhn" . "arne@chark.eu")) (:maintainer "Arne Köhn" . "arne@chark.eu") (:url . "http://arne.chark.eu/"))]) -(abc-mode . [(20171020 1019) nil "Major mode for editing abc music files" single ((:commit . "15691b32431b50f9106cb9fa50ee7244957a8ac8") (:keywords "local" "docs") (:authors ("Matthew K. Junker" . "junker@alum.mit.edu")) (:maintainer "Matthew K. Junker" . "junker@alum.mit.edu"))]) -(aa-edit-mode . [(20170119 320) ((emacs (24 3)) (navi2ch (2 0 0))) "Major mode for editing AA(S_JIS Art) and .mlt file" single ((:commit . "1dd801225b7ad3c23ad09698f5e77f0df7012a65") (:keywords "wp" "text" "shiftjis" "mlt" "yaruo") (:authors ("USAMI Kenta" . "tadsan@zonu.me")) (:maintainer "USAMI Kenta" . "tadsan@zonu.me"))]) -(a . [(20180907 953) ((emacs (25))) "Associative data structure functions" single ((:commit . "18966975db7110d0aac726be95b593e2fc3d44ed") (:keywords "lisp") (:authors ("Arne Brasseur" . "arne@arnebrasseur.net")) (:maintainer "Arne Brasseur" . "arne@arnebrasseur.net") (:url . "https://github.com/plexus/a.el"))]) -(@ . [(20181225 1438) ((emacs (24 3))) "multiple-inheritance prototype-based objects DSL" tar ((:commit . "0a6189f8be42dbbc5d9358cbd447d471236135a2") (:authors ("Christopher Wellons" . "wellons@nullprogram.com")) (:maintainer "Christopher Wellons" . "wellons@nullprogram.com") (:url . "https://github.com/skeeto/at-el"))]) -(4clojure . [(20131014 2207) ((json (1 2)) (request (0 2 0))) "Open and evaluate 4clojure.com questions" single ((:commit . "3cdfd356c24cd3518397d29ae833f56a4d20b4ca") (:keywords "languages" "data") (:authors ("Joshua Hoff")) (:maintainer "Joshua Hoff"))]) -(2048-game . [(20151026 1933) nil "play 2048 in Emacs" single ((:commit . "ea6c3bce8ac1c17dae5ac711ae4e931c0495e455") (:authors ("Zachary Kanfer" . "zkanfer@gmail.com")) (:maintainer "Zachary Kanfer" . "zkanfer@gmail.com") (:url . "https://bitbucket.org/zck/2048.el"))]) -(0xc . [(20190219 117) ((emacs (24 4)) (s (1 11 0))) "Base conversion made easy" single ((:commit . "167e93ce863381a58988655927042514d984ad49") (:keywords "base" "conversion") (:authors ("Adam Niederer" . "adam.niederer@gmail.com")) (:maintainer "Adam Niederer" . "adam.niederer@gmail.com") (:url . "http://github.com/AdamNiederer/0xc"))]) -(0blayout . [(20161008 607) nil "Layout grouping with ease" single ((:commit . "873732ddb99a3ec18845a37467ee06bce4e61d87") (:keywords "convenience" "window-management") (:authors ("Elis \"etu\" Axelsson")) (:maintainer "Elis \"etu\" Axelsson") (:url . "https://github.com/etu/0blayout"))])) \ No newline at end of file diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-autoloads.el b/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-autoloads.el deleted file mode 100644 index 118ca19..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-autoloads.el +++ /dev/null @@ -1,64 +0,0 @@ -;;; auto-complete-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil "auto-complete" "auto-complete.el" (23815 56367 -;;;;;; 828203 72000)) -;;; Generated autoloads from auto-complete.el - -(autoload 'auto-complete "auto-complete" "\ -Start auto-completion at current point. - -\(fn &optional SOURCES)" t nil) - -(autoload 'auto-complete-mode "auto-complete" "\ -AutoComplete mode - -\(fn &optional ARG)" t nil) - -(defvar global-auto-complete-mode nil "\ -Non-nil if Global-Auto-Complete mode is enabled. -See the command `global-auto-complete-mode' for a description of this minor mode. -Setting this variable directly does not take effect; -either customize it (see the info node `Easy Customization') -or call the function `global-auto-complete-mode'.") - -(custom-autoload 'global-auto-complete-mode "auto-complete" nil) - -(autoload 'global-auto-complete-mode "auto-complete" "\ -Toggle Auto-Complete mode in all buffers. -With prefix ARG, enable Global-Auto-Complete mode if ARG is positive; -otherwise, disable it. If called from Lisp, enable the mode if -ARG is omitted or nil. - -Auto-Complete mode is enabled in all buffers where -`auto-complete-mode-maybe' would do it. -See `auto-complete-mode' for more information on Auto-Complete mode. - -\(fn &optional ARG)" t nil) - -;;;*** - -;;;### (autoloads nil "auto-complete-config" "auto-complete-config.el" -;;;;;; (23815 56367 961323 18000)) -;;; Generated autoloads from auto-complete-config.el - -(autoload 'ac-config-default "auto-complete-config" "\ - - -\(fn)" nil nil) - -;;;*** - -;;;### (autoloads nil nil ("auto-complete-pkg.el") (23815 56367 991646 -;;;;;; 0)) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; auto-complete-autoloads.el ends here diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-config.el b/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-config.el deleted file mode 100644 index c04fddf..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-config.el +++ /dev/null @@ -1,551 +0,0 @@ -;;; auto-complete-config.el --- auto-complete additional configuations - -;; Copyright (C) 2009, 2010 Tomohiro Matsuyama - -;; Author: Tomohiro Matsuyama <m2ym.pub@gmail.com> -;; Keywords: convenience -;; Version: 1.5.0 - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; - -;;; Code: - -(require 'cl-lib) -(require 'auto-complete) - -(declare-function semantic-analyze-current-context "semantic/analyze") -(declare-function semantic-tag-class "semantic/tag") -(declare-function semantic-tag-function-arguments "semantic/tag") -(declare-function semantic-format-tag-type "semantic/format") -(declare-function semantic-format-tag-name "semantic/format") -(declare-function yas-expand-snippet "yasnippet") -(declare-function oref "eieio" (obj slot)) - - - -;;;; Additional sources - -;; imenu - -(defvar ac-imenu-index nil) - -(ac-clear-variable-every-10-minutes 'ac-imenu-index) - -(defun ac-imenu-candidates () - (cl-loop with i = 0 - with stack = (progn - (unless (local-variable-p 'ac-imenu-index) - (make-local-variable 'ac-imenu-index)) - (or ac-imenu-index - (setq ac-imenu-index - (ignore-errors - (with-no-warnings - (imenu--make-index-alist)))))) - with result - while (and stack (or (not (integerp ac-limit)) - (< i ac-limit))) - for node = (pop stack) - if (consp node) - do - (let ((car (car node)) - (cdr (cdr node))) - (if (consp cdr) - (mapc (lambda (child) - (push child stack)) - cdr) - (when (and (stringp car) - (string-match (concat "^" (regexp-quote ac-prefix)) car)) - ;; Remove extra characters - (if (string-match "^.*\\(()\\|=\\|<>\\)$" car) - (setq car (substring car 0 (match-beginning 1)))) - (push car result) - (cl-incf i)))) - finally return (nreverse result))) - -(ac-define-source imenu - '((depends imenu) - (candidates . ac-imenu-candidates) - (symbol . "s"))) - -;; gtags - -(defface ac-gtags-candidate-face - '((t (:inherit ac-candidate-face :foreground "navy"))) - "Face for gtags candidate" - :group 'auto-complete) - -(defface ac-gtags-selection-face - '((t (:inherit ac-selection-face :background "navy"))) - "Face for the gtags selected candidate." - :group 'auto-complete) - -(defun ac-gtags-candidate () - (ignore-errors - (split-string (shell-command-to-string (format "global -ciq %s" ac-prefix)) "\n"))) - -(ac-define-source gtags - '((candidates . ac-gtags-candidate) - (candidate-face . ac-gtags-candidate-face) - (selection-face . ac-gtags-selection-face) - (requires . 3) - (symbol . "s"))) - -;; yasnippet - -(defface ac-yasnippet-candidate-face - '((t (:inherit ac-candidate-face - :background "sandybrown" :foreground "black"))) - "Face for yasnippet candidate." - :group 'auto-complete) - -(defface ac-yasnippet-selection-face - '((t (:inherit ac-selection-face :background "coral3"))) - "Face for the yasnippet selected candidate." - :group 'auto-complete) - -(defun ac-yasnippet-table-hash (table) - (cond - ((fboundp 'yas/snippet-table-hash) - (yas/snippet-table-hash table)) - ((fboundp 'yas/table-hash) - (yas/table-hash table)))) - -(defun ac-yasnippet-table-parent (table) - (cond - ((fboundp 'yas/snippet-table-parent) - (yas/snippet-table-parent table)) - ((fboundp 'yas/table-parent) - (yas/table-parent table)))) - -(defun ac-yasnippet-candidate-1 (table) - (with-no-warnings - (let ((hashtab (ac-yasnippet-table-hash table)) - (parent (ac-yasnippet-table-parent table)) - candidates) - (maphash (lambda (key value) - (push key candidates)) - hashtab) - (setq candidates (all-completions ac-prefix (nreverse candidates))) - (if parent - (setq candidates - (append candidates (ac-yasnippet-candidate-1 parent)))) - candidates))) - -(defun ac-yasnippet-candidates () - (with-no-warnings - (cond (;; 0.8 onwards - (fboundp 'yas-active-keys) - (all-completions ac-prefix (yas-active-keys))) - (;; >0.6.0 - (fboundp 'yas/get-snippet-tables) - (apply 'append (mapcar 'ac-yasnippet-candidate-1 - (condition-case nil - (yas/get-snippet-tables major-mode) - (wrong-number-of-arguments - (yas/get-snippet-tables))))) - ) - (t - (let ((table - (if (fboundp 'yas/snippet-table) - ;; <0.6.0 - (yas/snippet-table major-mode) - ;; 0.6.0 - (yas/current-snippet-table)))) - (if table - (ac-yasnippet-candidate-1 table))))))) - -(ac-define-source yasnippet - '((depends yasnippet) - (candidates . ac-yasnippet-candidates) - (action . yas/expand) - (candidate-face . ac-yasnippet-candidate-face) - (selection-face . ac-yasnippet-selection-face) - (symbol . "a"))) - -;; semantic - -(defun ac-semantic-candidates (prefix) - (with-no-warnings - (delete "" ; semantic sometimes returns an empty string - (mapcar (lambda (elem) - (cons (semantic-tag-name elem) - (semantic-tag-clone elem))) - (ignore-errors - (or (semantic-analyze-possible-completions - (semantic-analyze-current-context)) - (senator-find-tag-for-completion prefix))))))) - -(defun ac-semantic-doc (symbol) - (with-no-warnings - (let* ((proto (semantic-format-tag-summarize-with-file symbol nil t)) - (doc (semantic-documentation-for-tag symbol)) - (res proto)) - (when doc - (setq res (concat res "\n\n" doc))) - res))) - -(defun ac-semantic-action () - (when (and (boundp 'yas-minor-mode) yas-minor-mode) - (let* ((tag (car (last (oref (semantic-analyze-current-context) prefix)))) - (class (semantic-tag-class tag)) - (args)) - (when (eq class 'function) - (setq args (semantic-tag-function-arguments tag)) - (yas-expand-snippet - (concat "(" - (mapconcat - (lambda (arg) - (let ((arg-type (semantic-format-tag-type arg nil)) - (arg-name (semantic-format-tag-name arg nil))) - (concat "${" - (if (string= arg-name "") - arg-type - (concat arg-type " " arg-name)) - "}"))) - args - ", ") - ")$0")))))) - -(ac-define-source semantic - '((available . (or (require 'semantic-ia nil t) - (require 'semantic/ia nil t))) - (candidates . (ac-semantic-candidates ac-prefix)) - (document . ac-semantic-doc) - (action . ac-semantic-action) - (prefix . cc-member) - (requires . 0) - (symbol . "m"))) - -(ac-define-source semantic-raw - '((available . (or (require 'semantic-ia nil t) - (require 'semantic/ia nil t))) - (candidates . (ac-semantic-candidates ac-prefix)) - (document . ac-semantic-doc) - (action . ac-semantic-action) - (symbol . "s"))) - -;; eclim - -(defun ac-eclim-candidates () - (with-no-warnings - (cl-loop for c in (eclim/java-complete) - collect (nth 1 c)))) - -(ac-define-source eclim - '((candidates . ac-eclim-candidates) - (prefix . c-dot) - (requires . 0) - (symbol . "f"))) - -;; css - -;; Copied from company-css.el -(defconst ac-css-property-alist - ;; see http://www.w3.org/TR/CSS21/propidx.html - '(("azimuth" angle "left-side" "far-left" "left" "center-left" "center" - "center-right" "right" "far-right" "right-side" "behind" "leftwards" - "rightwards") - ("background" background-color background-image background-repeat - background-attachment background-position) - ("background-attachment" "scroll" "fixed") - ("background-color" color "transparent") - ("background-image" uri "none") - ("background-position" percentage length "left" "center" "right" percentage - length "top" "center" "bottom" "left" "center" "right" "top" "center" - "bottom") - ("background-repeat" "repeat" "repeat-x" "repeat-y" "no-repeat") - ("border" border-width border-style border-color) - ("border-bottom" border) - ("border-bottom-color" border-color) - ("border-bottom-style" border-style) - ("border-bottom-width" border-width) - ("border-collapse" "collapse" "separate") - ("border-color" color "transparent") - ("border-left" border) - ("border-left-color" border-color) - ("border-left-style" border-style) - ("border-left-width" border-width) - ("border-right" border) - ("border-right-color" border-color) - ("border-right-style" border-style) - ("border-right-width" border-width) - ("border-spacing" length length) - ("border-style" border-style) - ("border-top" border) - ("border-top-color" border-color) - ("border-top-style" border-style) - ("border-top-width" border-width) - ("border-width" border-width) - ("bottom" length percentage "auto") - ("caption-side" "top" "bottom") - ("clear" "none" "left" "right" "both") - ("clip" shape "auto") - ("color" color) - ("content" "normal" "none" string uri counter "attr()" "open-quote" - "close-quote" "no-open-quote" "no-close-quote") - ("counter-increment" identifier integer "none") - ("counter-reset" identifier integer "none") - ("cue" cue-before cue-after) - ("cue-after" uri "none") - ("cue-before" uri "none") - ("cursor" uri "*" "auto" "crosshair" "default" "pointer" "move" "e-resize" - "ne-resize" "nw-resize" "n-resize" "se-resize" "sw-resize" "s-resize" - "w-resize" "text" "wait" "help" "progress") - ("direction" "ltr" "rtl") - ("display" "inline" "block" "list-item" "run-in" "inline-block" "table" - "inline-table" "table-row-group" "table-header-group" "table-footer-group" - "table-row" "table-column-group" "table-column" "table-cell" - "table-caption" "none") - ("elevation" angle "below" "level" "above" "higher" "lower") - ("empty-cells" "show" "hide") - ("float" "left" "right" "none") - ("font" font-style font-variant font-weight font-size "/" line-height - font-family "caption" "icon" "menu" "message-box" "small-caption" - "status-bar") - ("font-family" family-name generic-family) - ("font-size" absolute-size relative-size length percentage) - ("font-style" "normal" "italic" "oblique") - ("font-variant" "normal" "small-caps") - ("font-weight" "normal" "bold" "bolder" "lighter" "100" "200" "300" "400" - "500" "600" "700" "800" "900") - ("height" length percentage "auto") - ("left" length percentage "auto") - ("letter-spacing" "normal" length) - ("line-height" "normal" number length percentage) - ("list-style" list-style-type list-style-position list-style-image) - ("list-style-image" uri "none") - ("list-style-position" "inside" "outside") - ("list-style-type" "disc" "circle" "square" "decimal" "decimal-leading-zero" - "lower-roman" "upper-roman" "lower-greek" "lower-latin" "upper-latin" - "armenian" "georgian" "lower-alpha" "upper-alpha" "none") - ("margin" margin-width) - ("margin-bottom" margin-width) - ("margin-left" margin-width) - ("margin-right" margin-width) - ("margin-top" margin-width) - ("max-height" length percentage "none") - ("max-width" length percentage "none") - ("min-height" length percentage) - ("min-width" length percentage) - ("orphans" integer) - ("outline" outline-color outline-style outline-width) - ("outline-color" color "invert") - ("outline-style" border-style) - ("outline-width" border-width) - ("overflow" "visible" "hidden" "scroll" "auto") - ("padding" padding-width) - ("padding-bottom" padding-width) - ("padding-left" padding-width) - ("padding-right" padding-width) - ("padding-top" padding-width) - ("page-break-after" "auto" "always" "avoid" "left" "right") - ("page-break-before" "auto" "always" "avoid" "left" "right") - ("page-break-inside" "avoid" "auto") - ("pause" time percentage) - ("pause-after" time percentage) - ("pause-before" time percentage) - ("pitch" frequency "x-low" "low" "medium" "high" "x-high") - ("pitch-range" number) - ("play-during" uri "mix" "repeat" "auto" "none") - ("position" "static" "relative" "absolute" "fixed") - ("quotes" string string "none") - ("richness" number) - ("right" length percentage "auto") - ("speak" "normal" "none" "spell-out") - ("speak-header" "once" "always") - ("speak-numeral" "digits" "continuous") - ("speak-punctuation" "code" "none") - ("speech-rate" number "x-slow" "slow" "medium" "fast" "x-fast" "faster" - "slower") - ("stress" number) - ("table-layout" "auto" "fixed") - ("text-align" "left" "right" "center" "justify") - ("text-decoration" "none" "underline" "overline" "line-through" "blink") - ("text-indent" length percentage) - ("text-transform" "capitalize" "uppercase" "lowercase" "none") - ("top" length percentage "auto") - ("unicode-bidi" "normal" "embed" "bidi-override") - ("vertical-align" "baseline" "sub" "super" "top" "text-top" "middle" - "bottom" "text-bottom" percentage length) - ("visibility" "visible" "hidden" "collapse") - ("voice-family" specific-voice generic-voice "*" specific-voice - generic-voice) - ("volume" number percentage "silent" "x-soft" "soft" "medium" "loud" - "x-loud") - ("white-space" "normal" "pre" "nowrap" "pre-wrap" "pre-line") - ("widows" integer) - ("width" length percentage "auto") - ("word-spacing" "normal" length) - ("z-index" "auto" integer)) - "A list of CSS properties and their possible values.") - -(defconst ac-css-value-classes - '((absolute-size "xx-small" "x-small" "small" "medium" "large" "x-large" - "xx-large") - (border-style "none" "hidden" "dotted" "dashed" "solid" "double" "groove" - "ridge" "inset" "outset") - (color "aqua" "black" "blue" "fuchsia" "gray" "green" "lime" "maroon" "navy" - "olive" "orange" "purple" "red" "silver" "teal" "white" "yellow" - "rgb") - (counter "counter") - (family-name "Courier" "Helvetica" "Times") - (generic-family "serif" "sans-serif" "cursive" "fantasy" "monospace") - (generic-voice "male" "female" "child") - (margin-width "auto") ;; length percentage - (relative-size "larger" "smaller") - (shape "rect") - (uri "url")) - "A list of CSS property value classes and their contents.") - -(defconst ac-css-pseudo-classes - '("active" "after" "before" "first" "first-child" "first-letter" "first-line" - "focus" "hover" "lang" "left" "link" "right" "visited") - "Identifiers for CSS pseudo-elements and pseudo-classes.") - -(defvar ac-css-property nil - "Current editing property.") - -(defun ac-css-prefix () - (when (save-excursion (re-search-backward "\\_<\\(.+?\\)\\_>\\s *:[^;]*\\=" nil t)) - (setq ac-css-property (match-string 1)) - (or (ac-prefix-symbol) (point)))) - -(defun ac-css-property-candidates () - (let ((list (assoc-default ac-css-property ac-css-property-alist))) - (if list - (cl-loop with seen - with value - while (setq value (pop list)) - if (symbolp value) - do (unless (memq value seen) - (push value seen) - (setq list - (append list - (or (assoc-default value ac-css-value-classes) - (assoc-default (symbol-name value) ac-css-property-alist))))) - else collect value) - ac-css-pseudo-classes))) - -(ac-define-source css-property - '((candidates . ac-css-property-candidates) - (prefix . ac-css-prefix) - (requires . 0))) - -;; slime -(ac-define-source slime - '((depends slime) - (candidates . (car (slime-simple-completions ac-prefix))) - (symbol . "s") - (cache))) - -;; ghc-mod -(ac-define-source ghc-mod - '((depends ghc) - (candidates . (ghc-select-completion-symbol)) - (symbol . "s") - (cache))) - - - -;;;; Not maintained sources - -;; ropemacs - -(defvar ac-ropemacs-loaded nil) -(defun ac-ropemacs-require () - (with-no-warnings - (unless ac-ropemacs-loaded - (pymacs-load "ropemacs" "rope-") - (if (boundp 'ropemacs-enable-autoimport) - (setq ropemacs-enable-autoimport t)) - (setq ac-ropemacs-loaded t)))) - -(defun ac-ropemacs-setup () - (ac-ropemacs-require) - ;(setq ac-sources (append (list 'ac-source-ropemacs) ac-sources)) - (setq ac-omni-completion-sources '(("\\." ac-source-ropemacs)))) - -(defun ac-ropemacs-initialize () - (autoload 'pymacs-apply "pymacs") - (autoload 'pymacs-call "pymacs") - (autoload 'pymacs-eval "pymacs" nil t) - (autoload 'pymacs-exec "pymacs" nil t) - (autoload 'pymacs-load "pymacs" nil t) - (add-hook 'python-mode-hook 'ac-ropemacs-setup) - t) - -(defvar ac-ropemacs-completions-cache nil) -(defvar ac-source-ropemacs - '((init - . (lambda () - (setq ac-ropemacs-completions-cache - (mapcar - (lambda (completion) - (concat ac-prefix completion)) - (ignore-errors - (rope-completions)))))) - (candidates . ac-ropemacs-completions-cache))) - -;; rcodetools - -(defvar ac-source-rcodetools - '((init . (lambda () - (require 'rcodetools) - (condition-case x - (save-excursion - (rct-exec-and-eval rct-complete-command-name "--completion-emacs-icicles")) - (error) (setq rct-method-completion-table nil)))) - (candidates . (lambda () - (all-completions - ac-prefix - (mapcar - (lambda (completion) - (replace-regexp-in-string "\t.*$" "" (car completion))) - rct-method-completion-table)))))) - - - -;;;; Default settings - -(defun ac-common-setup () - ;(add-to-list 'ac-sources 'ac-source-filename) - ) - -(defun ac-emacs-lisp-mode-setup () - (setq ac-sources (append '(ac-source-features ac-source-functions ac-source-yasnippet ac-source-variables ac-source-symbols) ac-sources))) - -(defun ac-cc-mode-setup () - (setq ac-sources (append '(ac-source-yasnippet ac-source-gtags) ac-sources))) - -(defun ac-ruby-mode-setup ()) - -(defun ac-css-mode-setup () - (setq ac-sources (append '(ac-source-css-property) ac-sources))) - -;;;###autoload -(defun ac-config-default () - (setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers)) - (add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup) - (add-hook 'c-mode-common-hook 'ac-cc-mode-setup) - (add-hook 'ruby-mode-hook 'ac-ruby-mode-setup) - (add-hook 'css-mode-hook 'ac-css-mode-setup) - (add-hook 'auto-complete-mode-hook 'ac-common-setup) - (global-auto-complete-mode t)) - -(provide 'auto-complete-config) -;;; auto-complete-config.el ends here diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-config.elc b/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-config.elc deleted file mode 100644 index 688797252633eeeb659472b56f7e8697959d8540..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16624 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 I=6g5(8+VNWApigX diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-pkg.el b/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-pkg.el deleted file mode 100644 index 4993135..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete-pkg.el +++ /dev/null @@ -1,6 +0,0 @@ -(define-package "auto-complete" "20170125.245" "Auto Completion for GNU Emacs" - '((popup "0.5.0") - (cl-lib "0.5"))) -;; Local Variables: -;; no-byte-compile: t -;; End: diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete.el b/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete.el deleted file mode 100644 index ec5df3f..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete.el +++ /dev/null @@ -1,2164 +0,0 @@ -;;; auto-complete.el --- Auto Completion for GNU Emacs - -;; Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Tomohiro Matsuyama - -;; Author: Tomohiro Matsuyama <m2ym.pub@gmail.com> -;; URL: https://github.com/auto-complete/auto-complete -;; Keywords: completion, convenience -;; Version: 1.5.1 - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: -;; -;; This extension provides a way to complete with popup menu like: -;; -;; def-!- -;; +-----------------+ -;; |defun::::::::::::| -;; |defvar | -;; |defmacro | -;; | ... | -;; +-----------------+ -;; -;; You can complete by typing and selecting menu. -;; -;; Entire documents are located in doc/ directory. -;; Take a look for information. -;; -;; Enjoy! - -;;; Code: - - - -(defconst ac-version "1.5.1" - "Version of auto-complete in string format. -Use `version-to-list' to get version component.") - -(defconst ac-version-major (car (version-to-list ac-version)) - "Major version number of auto-complete") - -(defconst ac-version-minor (cadr (version-to-list ac-version)) - "Minor version number of auto-complete") - -(require 'cl-lib) -(require 'popup) - -;;;; Global stuff - -(defun ac-error (&optional var) - "Report an error and disable `auto-complete-mode'." - (ignore-errors - (message "auto-complete error: %s" var) - (auto-complete-mode -1) - var)) - - - -;;;; Customization - -(defgroup auto-complete nil - "Auto completion." - :group 'completion - :prefix "ac-") - -(defcustom ac-delay 0.1 - "Delay to completions will be available." - :type 'float - :group 'auto-complete) - -(defcustom ac-auto-show-menu 0.8 - "Non-nil means completion menu will be automatically shown." - :type '(choice (const :tag "Yes" t) - (const :tag "Never" nil) - (float :tag "Timer")) - :group 'auto-complete) - -(defcustom ac-show-menu-immediately-on-auto-complete t - "Non-nil means menu will be showed immediately on `auto-complete'." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-expand-on-auto-complete t - "Non-nil means expand whole common part on first time `auto-complete'." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-disable-faces '(font-lock-comment-face font-lock-string-face font-lock-doc-face) - "Non-nil means disable automatic completion on specified faces." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-stop-flymake-on-completing t - "Non-nil means disble flymake temporarily on completing." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-flycheck-poll-completion-end-interval 0.5 - "Polling interval to restart automatically flycheck's checking after completion is end." - :type 'float - :group 'auto-complete) - -(defcustom ac-use-fuzzy (and (locate-library "fuzzy") t) - "Non-nil means use fuzzy matching." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-fuzzy-cursor-color "red" - "Cursor color in fuzzy mode." - :type 'string - :group 'auto-complete) - -(defcustom ac-use-comphist t - "Non-nil means use intelligent completion history." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-comphist-threshold 0.7 - "Percentage of ignoring low scored candidates." - :type 'float - :group 'auto-complete) - -(defcustom ac-comphist-file - (expand-file-name (concat (if (boundp 'user-emacs-directory) - user-emacs-directory - "~/.emacs.d/") - "/ac-comphist.dat")) - "Completion history file name." - :type 'string - :group 'auto-complete) - -(defcustom ac-user-dictionary nil - "User defined dictionary" - :type '(repeat string) - :group 'auto-complete) - -(defcustom ac-dictionary-files '("~/.dict") - "Dictionary files." - :type '(repeat string) - :group 'auto-complete) -(defvaralias 'ac-user-dictionary-files 'ac-dictionary-files) - -(defcustom ac-dictionary-directories - (ignore-errors - (when load-file-name - (let ((installed-dir (file-name-directory load-file-name))) - (cl-loop for name in '("ac-dict" "dict") - for dir = (concat installed-dir name) - if (file-directory-p dir) - collect dir)))) - "Dictionary directories." - :type '(repeat string) - :group 'auto-complete) - -(defcustom ac-use-quick-help t - "Non-nil means use quick help." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-quick-help-delay 1.5 - "Delay to show quick help." - :type 'float - :group 'auto-complete) - -(defcustom ac-menu-height 10 - "Max height of candidate menu." - :type 'integer - :group 'auto-complete) -(defvaralias 'ac-candidate-menu-height 'ac-menu-height) - -(defcustom ac-quick-help-height 20 - "Max height of quick help." - :type 'integer - :group 'auto-complete) - -(defcustom ac-quick-help-prefer-pos-tip t - "Prefer native tooltip with pos-tip than overlay popup for displaying quick help." - :type 'boolean - :group 'auto-complete) -(defvaralias 'ac-quick-help-prefer-x 'ac-quick-help-prefer-pos-tip) - -(defcustom ac-candidate-limit nil - "Limit number of candidates. Non-integer means no limit." - :type 'integer - :group 'auto-complete) -(defvaralias 'ac-candidate-max 'ac-candidate-limit) - -(defcustom ac-modes - '(emacs-lisp-mode lisp-mode lisp-interaction-mode - slime-repl-mode - nim-mode c-mode cc-mode c++-mode objc-mode swift-mode go-mode - java-mode malabar-mode clojure-mode clojurescript-mode scala-mode - scheme-mode - ocaml-mode tuareg-mode coq-mode haskell-mode agda-mode agda2-mode - perl-mode cperl-mode python-mode ruby-mode lua-mode tcl-mode - ecmascript-mode javascript-mode js-mode js-jsx-mode js2-mode js2-jsx-mode - coffee-mode php-mode css-mode scss-mode less-css-mode - elixir-mode - makefile-mode sh-mode fortran-mode f90-mode ada-mode - xml-mode sgml-mode web-mode - ts-mode - sclang-mode - verilog-mode - qml-mode - apples-mode) - "Major modes `auto-complete-mode' can run on." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-compatible-packages-regexp - "^ac-" - "Regexp to indicate what packages can work with auto-complete." - :type 'string - :group 'auto-complete) - -(defcustom ac-non-trigger-commands - '(*table--cell-self-insert-command - electric-buffer-list) - "Commands that can't be used as triggers of `auto-complete'." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-trigger-commands - '(self-insert-command) - "Trigger commands that specify whether `auto-complete' should start or not." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-trigger-commands-on-completing - '(delete-backward-char - backward-delete-char - backward-delete-char-untabify - ;; autopair - autopair-backspace - ;; paredit - paredit-backward-delete - paredit-backward-delete-word) - "Trigger commands that specify whether `auto-complete' should continue or not." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-trigger-key nil - "Non-nil means `auto-complete' will start by typing this key. -If you specify this TAB, for example, `auto-complete' will start by typing TAB, -and if there is no completions, an original command will be fallbacked." - :type '(choice (const :tag "None" nil) - (string :tag "Key")) - :group 'auto-complete - :set (lambda (symbol value) - (set-default symbol value) - (when (and value - (fboundp 'ac-set-trigger-key)) - (ac-set-trigger-key value)))) - -(defcustom ac-auto-start 2 - "Non-nil means completion will be started automatically. -Positive integer means if a length of a word you entered is larger than the value, -completion will be started automatically. -If you specify `nil', never be started automatically." - :type '(choice (const :tag "Yes" t) - (const :tag "Never" nil) - (integer :tag "Require")) - :group 'auto-complete) - -(defcustom ac-stop-words nil - "List of string to stop completion." - :type '(repeat string) - :group 'auto-complete) -(defvaralias 'ac-ignores 'ac-stop-words) - -(defcustom ac-use-dictionary-as-stop-words t - "Non-nil means a buffer related dictionary will be thought of as stop words." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-ignore-case 'smart - "Non-nil means auto-complete ignores case. -If this value is `smart', auto-complete ignores case only when -a prefix doesn't contain any upper case letters." - :type '(choice (const :tag "Yes" t) - (const :tag "Smart" smart) - (const :tag "No" nil)) - :group 'auto-complete) - -(defcustom ac-dwim t - "Non-nil means `auto-complete' works based on Do What I Mean." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-use-menu-map nil - "Non-nil means a special keymap `ac-menu-map' on completing menu will be used." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-use-overriding-local-map nil - "Non-nil means `overriding-local-map' will be used to hack for overriding key events on auto-completion." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-disable-inline nil - "Non-nil disable inline completion visibility" - :type 'boolean - :group 'auto-complete) - -(defcustom ac-candidate-menu-min 1 - "Number of candidates required to display menu" - :type 'integer - :group 'auto-complete) - -(defcustom ac-max-width nil - "Maximum width for auto-complete menu to have" - :type '(choice (const :tag "No limit" nil) - (const :tag "Character Limit" 25) - (const :tag "Window Ratio Limit" 0.5)) - :group 'auto-complete) - -(defface ac-completion-face - '((t (:foreground "darkgray" :underline t))) - "Face for inline completion" - :group 'auto-complete) - -(defface ac-candidate-face - '((t (:inherit popup-face))) - "Face for candidate." - :group 'auto-complete) - -(defface ac-candidate-mouse-face - '((t (:inherit popup-menu-mouse-face))) - "Mouse face for candidate." - :group 'auto-complete) - -(defface ac-selection-face - '((t (:inherit popup-menu-selection-face))) - "Face for selected candidate." - :group 'auto-complete) - -(defvar auto-complete-mode-hook nil - "Hook for `auto-complete-mode'.") - - - -;;;; Internal variables - -(defvar auto-complete-mode nil - "Dummy variable to suppress compiler warnings.") - -(defvar ac-cursor-color nil - "Old cursor color.") - -(defvar ac-inline nil - "Inline completion instance.") - -(defvar ac-menu nil - "Menu instance.") - -(defvar ac-show-menu nil - "Flag to show menu on timer tick.") - -(defvar ac-last-completion nil - "Cons of prefix marker and selected item of last completion.") - -(defvar ac-quick-help nil - "Quick help instance") - -(defvar ac-completing nil - "Non-nil means `auto-complete-mode' is now working on completion.") - -(defvar ac-buffer nil - "Buffer where auto-complete is started.") - -(defvar ac-point nil - "Start point of prefix.") - -(defvar ac-last-point nil - "Last point of updating pattern.") - -(defvar ac-prefix nil - "Prefix string.") -(defvaralias 'ac-target 'ac-prefix) - -(defvar ac-selected-candidate nil - "Last selected candidate.") - -(defvar ac-common-part nil - "Common part string of meaningful candidates. -If there is no common part, this will be nil.") - -(defvar ac-whole-common-part nil - "Common part string of whole candidates. -If there is no common part, this will be nil.") - -(defvar ac-prefix-overlay nil - "Overlay for prefix string.") - -(defvar ac-timer nil - "Completion idle timer.") - -(defvar ac-show-menu-timer nil - "Show menu idle timer.") - -(defvar ac-quick-help-timer nil - "Quick help idle timer.") - -(defvar ac-triggered nil - "Flag to update.") - -(defvar ac-limit nil - "Limit number of candidates for each sources.") - -(defvar ac-candidates nil - "Current candidates.") - -(defvar ac-candidates-cache nil - "Candidates cache for individual sources.") - -(defvar ac-fuzzy-enable nil - "Non-nil means fuzzy matching is enabled.") - -(defvar ac-dwim-enable nil - "Non-nil means DWIM completion will be allowed.") - -(defvar ac-mode-map (make-sparse-keymap) - "Auto-complete mode map. It is also used for trigger key command. See also `ac-trigger-key'.") - -(defvar ac-completing-map - (let ((map (make-sparse-keymap))) - (define-key map "\t" 'ac-expand) - (define-key map [tab] 'ac-expand) - (define-key map "\r" 'ac-complete) - (define-key map (kbd "M-TAB") 'auto-complete) - - (define-key map "\M-n" 'ac-next) - (define-key map "\M-p" 'ac-previous) - (define-key map [down] 'ac-next) - (define-key map [up] 'ac-previous) - - (define-key map [f1] 'ac-help) - (define-key map [M-f1] 'ac-persist-help) - (define-key map (kbd "C-?") 'ac-help) - (define-key map (kbd "C-M-?") 'ac-persist-help) - - (define-key map [C-down] 'ac-quick-help-scroll-down) - (define-key map [C-up] 'ac-quick-help-scroll-up) - (define-key map "\C-\M-n" 'ac-quick-help-scroll-down) - (define-key map "\C-\M-p" 'ac-quick-help-scroll-up) - - (dotimes (i 9) - (let ((symbol (intern (format "ac-complete-select-%d" (1+ i))))) - (fset symbol - `(lambda () - (interactive) - (when (and (ac-menu-live-p) (popup-select ac-menu ,i)) - (ac-complete)))) - (define-key map (read-kbd-macro (format "M-%s" (1+ i))) symbol))) - - map) - "Keymap for completion.") -(defvaralias 'ac-complete-mode-map 'ac-completing-map) - -(defvar ac-menu-map - (let ((map (make-sparse-keymap))) - (set-keymap-parent map ac-completing-map) - (define-key map (kbd "RET") 'ac-complete) - (define-key map "\C-n" 'ac-next) - (define-key map "\C-p" 'ac-previous) - (define-key map "\C-s" 'ac-isearch) - (define-key map [mouse-1] 'ac-mouse-1) - (define-key map [down-mouse-1] 'ac-ignore) - (define-key map [mouse-4] 'ac-mouse-4) - (define-key map [mouse-5] 'ac-mouse-5) - map) - "Keymap for completion on completing menu.") - -(defvar ac-current-map - (let ((map (make-sparse-keymap))) - (set-keymap-parent map ac-completing-map) - map)) - -(defvar ac-match-function 'all-completions - "Default match function.") - -(defvar ac-prefix-definitions - '((symbol . ac-prefix-symbol) - (file . ac-prefix-file) - (valid-file . ac-prefix-valid-file) - (c-dot . ac-prefix-c-dot) - (c-dot-ref . ac-prefix-c-dot-ref) - (cc-member . ac-prefix-cc-member)) - "Prefix definitions for common use.") - -(defvar ac-sources '(ac-source-words-in-same-mode-buffers) - "Sources for completion.") -(make-variable-buffer-local 'ac-sources) - -(defvar ac-compiled-sources nil - "Compiled source of `ac-sources'.") - -(defvar ac-current-sources nil - "Current working sources. This is sublist of `ac-compiled-sources'.") - -(defvar ac-omni-completion-sources nil - "Do not use this anymore.") - -(defvar ac-current-prefix-def nil) - -(defvar ac-ignoring-prefix-def nil) - - - -;;;; Intelligent completion history - -(defvar ac-comphist nil - "Database of completion history.") - -(defsubst ac-comphist-make-tab () - (make-hash-table :test 'equal)) - -(defsubst ac-comphist-tab (db) - (nth 0 db)) - -(defsubst ac-comphist-cache (db) - (nth 1 db)) - -(defun ac-comphist-make (&optional tab) - (list (or tab (ac-comphist-make-tab)) (make-hash-table :test 'equal :weakness t))) - -(defun ac-comphist-get (db string &optional create) - (let* ((tab (ac-comphist-tab db)) - (index (gethash string tab))) - (when (and create (null index)) - (setq index (make-vector (length string) 0)) - (puthash string index tab)) - index)) - -(defun ac-comphist-add (db string prefix) - (setq prefix (min prefix (1- (length string)))) - (when (<= 0 prefix) - (setq string (substring-no-properties string)) - (let ((stat (ac-comphist-get db string t))) - (cl-incf (aref stat prefix)) - (remhash string (ac-comphist-cache db))))) - -(defun ac-comphist-score (db string prefix) - (setq prefix (min prefix (1- (length string)))) - (if (<= 0 prefix) - (let ((cache (gethash string (ac-comphist-cache db)))) - (or (and cache (aref cache prefix)) - (let ((stat (ac-comphist-get db string)) - (score 0.0)) - (when stat - (cl-loop for p from 0 below (length string) - ;; sigmoid function - with a = 5 - with b = (/ 700.0 a) ; bounds for avoiding range error in `exp' - with d = (/ 6.0 a) - for x = (max (- b) (min b (- d (abs (- prefix p))))) - for r = (/ 1.0 (1+ (exp (* (- a) x)))) - do - (cl-incf score (* (aref stat p) r)))) - ;; Weight by distance - (cl-incf score (max 0.0 (- 0.3 (/ (- (length string) prefix) 100.0)))) - (unless cache - (setq cache (make-vector (length string) nil)) - (puthash string cache (ac-comphist-cache db))) - (aset cache prefix score) - score))) - 0.0)) - -(defun ac-comphist-sort (db collection prefix &optional threshold) - (let (result - (n 0) - (total 0) - (cur 0)) - (setq result (mapcar (lambda (a) - (when (and cur threshold) - (if (>= cur (* total threshold)) - (setq cur nil) - (cl-incf n) - (cl-incf cur (cdr a)))) - (car a)) - (sort (mapcar (lambda (string) - (let ((score (ac-comphist-score db string prefix))) - (cl-incf total score) - (cons string score))) - collection) - (lambda (a b) (< (cdr b) (cdr a)))))) - (if threshold - (cons n result) - result))) - -(defun ac-comphist-serialize (db) - (let (alist) - (maphash (lambda (k v) - (push (cons k v) alist)) - (ac-comphist-tab db)) - (list alist))) - -(defun ac-comphist-deserialize (sexp) - (condition-case nil - (ac-comphist-make (let ((tab (ac-comphist-make-tab))) - (mapc (lambda (cons) - (puthash (car cons) (cdr cons) tab)) - (nth 0 sexp)) - tab)) - (error (message "Invalid comphist db.") nil))) - -(defun ac-comphist-init () - (ac-comphist-load) - (add-hook 'kill-emacs-hook 'ac-comphist-save)) - -(defun ac-comphist-load () - (interactive) - (let ((db (if (file-exists-p ac-comphist-file) - (ignore-errors - (with-temp-buffer - (insert-file-contents ac-comphist-file) - (goto-char (point-min)) - (ac-comphist-deserialize (read (current-buffer)))))))) - (setq ac-comphist (or db (ac-comphist-make))))) - -(defun ac-comphist-save () - (interactive) - (require 'pp) - (ignore-errors - (with-temp-buffer - (pp (ac-comphist-serialize ac-comphist) (current-buffer)) - (write-region (point-min) (point-max) ac-comphist-file)))) - - - -;;;; Dictionary -(defvar ac-buffer-dictionary nil) -(defvar ac-file-dictionary (make-hash-table :test 'equal)) - -(defun ac-clear-dictionary-cache () - (interactive) - (dolist (buffer (buffer-list)) - (with-current-buffer buffer - (if (local-variable-p 'ac-buffer-dictionary) - (kill-local-variable 'ac-buffer-dictionary)))) - (clrhash ac-file-dictionary)) - -(defun ac-file-dictionary (filename) - (let ((cache (gethash filename ac-file-dictionary 'none))) - (if (and cache (not (eq cache 'none))) - cache - (let (result) - (ignore-errors - (with-temp-buffer - (insert-file-contents filename) - (setq result (split-string (buffer-string) "\n" t)))) - (puthash filename result ac-file-dictionary) - result)))) - -(defun ac-mode-dictionary (mode) - (cl-loop for name in (cons (symbol-name mode) - (ignore-errors (list (file-name-extension (buffer-file-name))))) - append (cl-loop for dir in ac-dictionary-directories - for file = (concat dir "/" name) - if (file-exists-p file) - append (ac-file-dictionary file)))) - -(defun ac-buffer-dictionary (&optional buffer) - (with-current-buffer (or buffer (current-buffer)) - (if (local-variable-p 'ac-buffer-dictionary) - ac-buffer-dictionary - (make-local-variable 'ac-buffer-dictionary) - (setq ac-buffer-dictionary - (apply 'append - ac-user-dictionary - (ac-mode-dictionary major-mode) - (mapcar 'ac-file-dictionary ac-dictionary-files)))))) - - - -;;;; Auto completion internals - -(defun ac-menu-at-wrapper-line-p () - "Return non-nil if current line is long and wrapped to next visual line." - (and (not truncate-lines) - (eq (line-beginning-position) - (save-excursion - (vertical-motion 1) - (line-beginning-position))))) - -(defun ac-stop-word-p (word) - (or (member word ac-stop-words) - (if ac-use-dictionary-as-stop-words - (member word (ac-buffer-dictionary))))) - -(defun ac-prefix-default () - "Same as `ac-prefix-symbol' but ignore a number prefix." - (let ((start (ac-prefix-symbol)) - (case-fold-search t)) - (when (and start - (not (string-match-p "\\`\\(?:0[xbo][0-9a-f]+\\|[0-9]+\\)" - (buffer-substring-no-properties start (point))))) - start))) - -(defun ac-prefix-symbol () - "Default prefix definition function." - (require 'thingatpt) - (car-safe (bounds-of-thing-at-point 'symbol))) - -(defun ac-prefix-file () - "File prefix." - (let ((point (re-search-backward "[\"<>' \t\r\n]" nil t))) - (if point (1+ point)))) - -(defsubst ac-windows-remote-file-p (file) - (and (memq system-type '(ms-dos windows-nt cygwin)) - (string-match-p "\\`\\(?://\\|\\\\\\\\\\)" file))) - -(defun ac-prefix-valid-file () - "Existed (or to be existed) file prefix." - (let* ((line-beg (line-beginning-position)) - (end (point)) - (start (or (let ((point (re-search-backward "[\"<>'= \t\r\n]" line-beg t))) - (if point (1+ point))) - line-beg)) - (file (buffer-substring start end))) - (if (and file (or (string-match "^/" file) - (and (setq file (and (string-match "^[^/]*/" file) - (match-string 0 file))) - (file-directory-p file)))) - (unless (ac-windows-remote-file-p file) - start)))) - -(defun ac-prefix-c-dot () - "C-like languages dot(.) prefix." - (if (re-search-backward "\\.\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t) - (match-beginning 1))) - -(defun ac-prefix-c-dot-ref () - "C-like languages dot(.) and reference(->) prefix." - (if (re-search-backward "\\(?:\\.\\|->\\)\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t) - (match-beginning 1))) - -(defun ac-prefix-cc-member () - "C-like languages member(.)(->)(::) prefix." - (when (re-search-backward "\\(?:\\.\\|->\\|::\\)\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t) - (match-beginning 1))) - -(defun ac-define-prefix (name prefix) - "Define new prefix definition. -You can not use it in source definition like (prefix . `NAME')." - (push (cons name prefix) ac-prefix-definitions)) - -(defun ac-match-substring (prefix candidates) - (cl-loop with regexp = (regexp-quote prefix) - for candidate in candidates - if (string-match regexp candidate) - collect candidate)) - -(defsubst ac-source-entity (source) - (if (symbolp source) - (symbol-value source) - source)) - -(defun ac-source-available-p (source) - (if (and (symbolp source) - (get source 'available)) - (eq (get source 'available) t) - (let* ((src (ac-source-entity source)) - (avail-pair (assq 'available src)) - (avail-cond (cdr avail-pair)) - (available (and (if avail-pair - (cond - ((symbolp avail-cond) - (funcall avail-cond)) - ((listp avail-cond) - (eval avail-cond))) - t) - (cl-loop for feature in (assoc-default 'depends src) - unless (require feature nil t) return nil - finally return t)))) - (if (symbolp source) - (put source 'available (if available t 'no))) - available))) - -(defun ac-compile-sources (sources) - "Compiled `SOURCES' into expanded sources style." - (cl-loop for source in sources - if (ac-source-available-p source) - do - (setq source (ac-source-entity source)) - ;; prefix - (let* ((prefix (assoc 'prefix source)) - (real (assoc-default (cdr prefix) ac-prefix-definitions))) - (cond - (real - (add-to-list 'source (cons 'prefix real))) - ((null prefix) - (add-to-list 'source (cons 'prefix 'ac-prefix-default))))) - ;; match - (let ((match (assq 'match source))) - (cond - ((eq (cdr match) 'substring) - (setcdr match 'ac-match-substring)))) - and collect source)) - -(defun ac-compiled-sources () - (or ac-compiled-sources - (setq ac-compiled-sources - (ac-compile-sources ac-sources)))) - -(defsubst ac-menu-live-p () - (popup-live-p ac-menu)) - -(defun ac-menu-create (point width height) - (setq ac-menu - (popup-create point width height - :around t - :face 'ac-candidate-face - :max-width ac-max-width - :mouse-face 'ac-candidate-mouse-face - :selection-face 'ac-selection-face - :symbol t - :scroll-bar t - :margin-left 1 - :keymap ac-menu-map - ))) - -(defun ac-menu-delete () - (when ac-menu - (popup-delete ac-menu) - (setq ac-menu nil))) - -(defsubst ac-inline-overlay () - (nth 0 ac-inline)) - -(defsubst ac-inline-live-p () - (and ac-inline (ac-inline-overlay) t)) - -(defun ac-inline-show (point string) - (unless ac-inline - (setq ac-inline (list nil))) - (save-excursion - (let ((overlay (ac-inline-overlay)) - (width 0) - (string-width (string-width string)) - (length 0) - (original-string string)) - ;; Calculate string space to show completion - (goto-char point) - (let (c) - (while (and (not (eolp)) - (< width string-width) - (setq c (char-after)) - (not (eq c ?\t))) ; special case for tab - (cl-incf width (char-width c)) - (cl-incf length) - (forward-char))) - - ;; Show completion - (goto-char point) - (cond - ((= width 0) - ;; End-of-line - ;; Do nothing - ) - ((<= width string-width) - ;; No space to show - ;; Do nothing - ) - ((> width string-width) - ;; Need to fill space - (setq string (concat string (make-string (- width string-width) ? ))))) - (setq string (propertize string 'face 'ac-completion-face)) - (if overlay - (progn - (move-overlay overlay point (+ point length)) - (overlay-put overlay 'invisible nil)) - (setq overlay (make-overlay point (+ point length))) - (setf (nth 0 ac-inline) overlay) - (overlay-put overlay 'priority 9999) - ;; Help prefix-overlay in some cases - (overlay-put overlay 'keymap ac-current-map)) - ;; TODO no width but char - (if (eq length 0) - ;; Case: End-of-line - (progn - (put-text-property 0 1 'cursor t string) - (overlay-put overlay 'after-string string)) - (let ((display (substring string 0 1)) - (after-string (substring string 1))) - (overlay-put overlay 'display display) - (overlay-put overlay 'after-string after-string))) - (overlay-put overlay 'string original-string)))) - -(defun ac-inline-delete () - (when (ac-inline-live-p) - (ac-inline-hide) - (delete-overlay (ac-inline-overlay)) - (setq ac-inline nil))) - -(defun ac-inline-hide () - (when (ac-inline-live-p) - (let ((overlay (ac-inline-overlay)) - (buffer-undo-list t)) - (when overlay - (move-overlay overlay (point-min) (point-min)) - (overlay-put overlay 'invisible t) - (overlay-put overlay 'display nil) - (overlay-put overlay 'after-string nil))))) - -(defun ac-inline-update () - (if (and ac-completing ac-prefix (stringp ac-common-part)) - (let ((common-part-length (length ac-common-part)) - (prefix-length (length ac-prefix))) - (if (> common-part-length prefix-length) - (progn - (ac-inline-hide) - (ac-inline-show (point) (substring ac-common-part prefix-length))) - (ac-inline-delete))) - (ac-inline-delete))) - -(defun ac-put-prefix-overlay () - (unless ac-prefix-overlay - (let (newline) - ;; Insert newline to make sure that cursor always on the overlay - (when (eobp) - (popup-save-buffer-state - (insert "\n")) - (setq newline t)) - (setq ac-prefix-overlay (make-overlay ac-point (1+ (point)) nil t t)) - (overlay-put ac-prefix-overlay 'priority 9999) - (overlay-put ac-prefix-overlay 'keymap (make-sparse-keymap)) - (overlay-put ac-prefix-overlay 'newline newline)))) - -(defun ac-remove-prefix-overlay () - (when ac-prefix-overlay - (when (overlay-get ac-prefix-overlay 'newline) - ;; Remove inserted newline - (popup-save-buffer-state - (goto-char (point-max)) - (if (eq (char-before) ?\n) - (delete-char -1)))) - (delete-overlay ac-prefix-overlay))) - -(defun ac-activate-completing-map () - (if (and ac-show-menu ac-use-menu-map) - (set-keymap-parent ac-current-map ac-menu-map)) - (when (and ac-use-overriding-local-map - (null overriding-terminal-local-map)) - (setq overriding-terminal-local-map ac-current-map)) - (when ac-prefix-overlay - (set-keymap-parent (overlay-get ac-prefix-overlay 'keymap) ac-current-map))) - -(defun ac-deactivate-completing-map () - (set-keymap-parent ac-current-map ac-completing-map) - (when (and ac-use-overriding-local-map - (eq overriding-terminal-local-map ac-current-map)) - (setq overriding-terminal-local-map nil)) - (when ac-prefix-overlay - (set-keymap-parent (overlay-get ac-prefix-overlay 'keymap) nil))) - -(defsubst ac-selected-candidate () - (if ac-menu - (popup-selected-item ac-menu))) - -(defun ac-prefix (requires ignore-list) - (cl-loop with current = (point) - with point - with point-def - with prefix-def - with sources - for source in (ac-compiled-sources) - for prefix = (assoc-default 'prefix source) - for req = (or (assoc-default 'requires source) requires 1) - - do - (unless (member prefix ignore-list) - (save-excursion - (setq point (cond - ((symbolp prefix) - (funcall prefix)) - ((stringp prefix) - (and (re-search-backward (concat prefix "\\=") nil t) - (or (match-beginning 1) (match-beginning 0)))) - ((stringp (car-safe prefix)) - (let ((regexp (nth 0 prefix)) - (end (nth 1 prefix)) - (group (nth 2 prefix))) - (and (re-search-backward (concat regexp "\\=") nil t) - (funcall (if end 'match-end 'match-beginning) - (or group 0))))) - (t - (eval prefix)))) - (if (and point - (integerp req) - (< (- current point) req)) - (setq point nil)) - (when point - (if (null prefix-def) - (setq prefix-def prefix - point-def point)) - (if (equal point point-def) - (push source sources))))) - - finally return - (and point-def (list prefix-def point-def (nreverse sources))))) - -(defun ac-init () - "Initialize current sources to start completion." - (setq ac-candidates-cache nil) - (cl-loop for source in ac-current-sources - for function = (assoc-default 'init source) - if function do - (save-excursion - (cond - ((functionp function) - (funcall function)) - (t - (eval function)))))) - -(defun ac-candidates-1 (source) - (let* ((do-cache (assq 'cache source)) - (function (assoc-default 'candidates source)) - (action (assoc-default 'action source)) - (document (assoc-default 'document source)) - (symbol (assoc-default 'symbol source)) - (ac-limit (or (assoc-default 'limit source) ac-limit)) - (face (or (assoc-default 'face source) (assoc-default 'candidate-face source))) - (selection-face (assoc-default 'selection-face source)) - (cache (and do-cache (assq source ac-candidates-cache))) - (candidates (cdr cache))) - (unless cache - (setq candidates (save-excursion - (cond - ((functionp function) - (funcall function)) - (t - (eval function))))) - ;; Convert (name value) format candidates into name with text properties. - (setq candidates (mapcar (lambda (candidate) - (if (consp candidate) - (propertize (car candidate) 'value (cdr candidate)) - candidate)) - candidates)) - (when do-cache - (push (cons source candidates) ac-candidates-cache))) - (setq candidates (funcall (or (assoc-default 'match source) - ac-match-function) - ac-prefix candidates)) - ;; Remove extra items regarding to ac-limit - (if (and (integerp ac-limit) (> ac-limit 1) (> (length candidates) ac-limit)) - (setcdr (nthcdr (1- ac-limit) candidates) nil)) - ;; Put candidate properties - (setq candidates (mapcar (lambda (candidate) - (popup-item-propertize candidate - 'action action - 'symbol symbol - 'document document - 'popup-face face - 'selection-face selection-face)) - candidates)) - candidates)) - -(defun ac-delete-duplicated-candidates (candidates) - (cl-delete-duplicates - candidates - :test (lambda (x y) - ;; We assume two candidates are same if their titles are - ;; equal and their actions are equal. - (and (equal x y) - (eq (popup-item-property x 'action) - (popup-item-property y 'action)))) - :from-end t)) - -(defun ac-reduce-candidates (candidates) - ;; Call `ac-delete-duplicated-candidates' on first portion of - ;; candidate list for speed. - (let ((size 20)) - (if (< (length candidates) size) - (ac-delete-duplicated-candidates candidates) - (cl-loop for c on candidates by 'cdr - repeat (1- size) - finally return - (let ((rest (cdr c))) - (setcdr c nil) - (append (ac-delete-duplicated-candidates candidates) (copy-sequence rest))))))) - -(defun ac-candidates () - "Produce candidates for current sources." - (cl-loop with completion-ignore-case = (or (eq ac-ignore-case t) - (and (eq ac-ignore-case 'smart) - (let ((case-fold-search nil)) (not (string-match "[[:upper:]]" ac-prefix))))) - with case-fold-search = completion-ignore-case - with prefix-len = (length ac-prefix) - for source in ac-current-sources - append (ac-candidates-1 source) into candidates - finally return - (progn - (if (and ac-use-comphist ac-comphist) - (if ac-show-menu - (let* ((pair (ac-comphist-sort ac-comphist candidates prefix-len ac-comphist-threshold)) - (n (car pair)) - (result (ac-reduce-candidates (cdr pair))) - (cons (if (> n 0) (nthcdr (1- n) result))) - (cdr (cdr cons))) - ;; XXX ugly - (if cons (setcdr cons nil)) - (setq ac-common-part (try-completion ac-prefix result)) - (setq ac-whole-common-part (try-completion ac-prefix candidates)) - (if cons (setcdr cons cdr)) - result) - (setq candidates (ac-comphist-sort ac-comphist candidates prefix-len)) - (setq ac-common-part (if candidates (popup-x-to-string (car candidates)))) - (setq ac-whole-common-part (try-completion ac-prefix candidates)) - candidates) - (when ac-show-menu - (setq candidates (ac-reduce-candidates candidates))) - (setq ac-common-part (try-completion ac-prefix candidates)) - (setq ac-whole-common-part ac-common-part) - candidates)))) - -(defun ac-update-candidates (cursor scroll-top) - "Update candidates of menu to `ac-candidates' and redraw it." - (setf (popup-cursor ac-menu) cursor - (popup-scroll-top ac-menu) scroll-top) - (setq ac-dwim-enable (= (length ac-candidates) 1)) - (if ac-candidates - (progn - (setq ac-completing t) - (ac-activate-completing-map)) - (setq ac-completing nil) - (ac-deactivate-completing-map)) - (unless ac-disable-inline - (ac-inline-update)) - (popup-set-list ac-menu ac-candidates) - (if (and (not ac-fuzzy-enable) - (<= (length ac-candidates) ac-candidate-menu-min)) - (popup-hide ac-menu) - (if ac-show-menu - (popup-draw ac-menu)))) - -(defun ac-reposition () - "Force to redraw candidate menu with current `ac-candidates'." - (let ((cursor (popup-cursor ac-menu)) - (scroll-top (popup-scroll-top ac-menu)) - (height (popup-height ac-menu))) - (ac-menu-delete) - (ac-menu-create ac-point (popup-preferred-width ac-candidates) height) - (ac-update-candidates cursor scroll-top))) - -(defun ac-cleanup () - "Cleanup auto completion." - (if ac-cursor-color - (set-cursor-color ac-cursor-color)) - (when (and ac-use-comphist ac-comphist) - (when (and (null ac-selected-candidate) - (member ac-prefix ac-candidates)) - ;; Assume candidate is selected by just typing - (setq ac-selected-candidate ac-prefix) - (setq ac-last-point ac-point)) - (when ac-selected-candidate - (ac-comphist-add ac-comphist - ac-selected-candidate - (if ac-last-point - (- ac-last-point ac-point) - (length ac-prefix))))) - (ac-deactivate-completing-map) - (ac-remove-prefix-overlay) - (ac-remove-quick-help) - (ac-inline-delete) - (ac-menu-delete) - (ac-cancel-timer) - (ac-cancel-show-menu-timer) - (ac-cancel-quick-help-timer) - (setq ac-cursor-color nil - ac-inline nil - ac-show-menu nil - ac-menu nil - ac-completing nil - ac-point nil - ac-last-point nil - ac-prefix nil - ac-prefix-overlay nil - ac-selected-candidate nil - ac-common-part nil - ac-whole-common-part nil - ac-triggered nil - ac-limit nil - ac-candidates nil - ac-candidates-cache nil - ac-fuzzy-enable nil - ac-dwim-enable nil - ac-compiled-sources nil - ac-current-sources nil - ac-current-prefix-def nil - ac-ignoring-prefix-def nil)) - -(defsubst ac-abort () - "Abort completion." - (ac-cleanup)) - -(defun ac-extend-region-to-delete (string) - "Determine the boundary of the region to delete before -inserting the completed string. This will be either the position -of current point, or the end of the symbol at point, if the text -from point to end of symbol is the right part of the completed -string." - (let* ((end-of-symbol (or (cdr-safe (bounds-of-thing-at-point 'symbol)) - (point))) - (remaindar (buffer-substring-no-properties (point) end-of-symbol)) - (remaindar-length (length remaindar))) - (if (and (>= (length string) remaindar-length) - (string= (substring-no-properties string (- remaindar-length)) - remaindar)) - end-of-symbol - (point)))) - -(defun ac-expand-string (string &optional remove-undo-boundary) - "Expand `STRING' into the buffer and update `ac-prefix' to `STRING'. -This function records deletion and insertion sequences by `undo-boundary'. -If `remove-undo-boundary' is non-nil, this function also removes `undo-boundary' -that have been made before in this function. When `buffer-undo-list' is -`t', `remove-undo-boundary' has no effect." - (when (eq buffer-undo-list t) - (setq remove-undo-boundary nil)) - (when (not (equal string (buffer-substring ac-point (point)))) - (undo-boundary) - ;; We can't use primitive-undo since it undoes by - ;; groups, divided by boundaries. - ;; We don't want boundary between deletion and insertion. - ;; So do it manually. - ;; Delete region silently for undo: - (if remove-undo-boundary - (progn - (let (buffer-undo-list) - (save-excursion - (delete-region ac-point (ac-extend-region-to-delete string)))) - (setq buffer-undo-list - (nthcdr 2 buffer-undo-list))) - (delete-region ac-point (ac-extend-region-to-delete string))) - (insert (substring-no-properties string)) - ;; Sometimes, possible when omni-completion used, (insert) added - ;; to buffer-undo-list strange record about position changes. - ;; Delete it here: - (when (and remove-undo-boundary - (integerp (cadr buffer-undo-list))) - (setcdr buffer-undo-list (nthcdr 2 buffer-undo-list))) - (undo-boundary) - (setq ac-selected-candidate string) - (setq ac-prefix string))) - -(defun ac-set-trigger-key (key) - "Set `ac-trigger-key' to `KEY'. It is recommemded to use this function instead of calling `setq'." - ;; Remove old mapping - (when ac-trigger-key - (define-key ac-mode-map (read-kbd-macro ac-trigger-key) nil)) - - ;; Make new mapping - (setq ac-trigger-key key) - (when key - (define-key ac-mode-map (read-kbd-macro key) 'ac-trigger-key-command))) - -(defun ac-set-timer () - (unless ac-timer - (setq ac-timer (run-with-idle-timer ac-delay ac-delay 'ac-update-greedy)))) - -(defun ac-cancel-timer () - (when (timerp ac-timer) - (cancel-timer ac-timer) - (setq ac-timer nil))) - -(defun ac-update (&optional force) - (when (and auto-complete-mode - ac-prefix - (or ac-triggered - force) - (not isearch-mode)) - (ac-put-prefix-overlay) - (setq ac-candidates (ac-candidates)) - (let ((preferred-width (popup-preferred-width ac-candidates))) - ;; Reposition if needed - (when (or (null ac-menu) - (>= (popup-width ac-menu) preferred-width) - (<= (popup-width ac-menu) (- preferred-width 10)) - (and (> (popup-direction ac-menu) 0) - (ac-menu-at-wrapper-line-p))) - (ac-inline-hide) ; Hide overlay to calculate correct column - (ac-remove-quick-help) - (ac-menu-delete) - (ac-menu-create ac-point preferred-width ac-menu-height))) - (ac-update-candidates 0 0) - t)) - -(defun ac-update-greedy (&optional force) - (let (result) - (while (when (and (setq result (ac-update force)) - (null ac-candidates)) - (add-to-list 'ac-ignoring-prefix-def ac-current-prefix-def) - (ac-start :force-init t) - ac-current-prefix-def)) - result)) - -(defun ac-set-show-menu-timer () - (when (and (or (integerp ac-auto-show-menu) (floatp ac-auto-show-menu)) - (null ac-show-menu-timer)) - (setq ac-show-menu-timer (run-with-idle-timer ac-auto-show-menu ac-auto-show-menu 'ac-show-menu)))) - -(defun ac-cancel-show-menu-timer () - (when (timerp ac-show-menu-timer) - (cancel-timer ac-show-menu-timer) - (setq ac-show-menu-timer nil))) - -(defun ac-show-menu () - (when (not (eq ac-show-menu t)) - (setq ac-show-menu t) - (ac-inline-hide) - (ac-remove-quick-help) - (ac-update t))) - -(defun ac-help (&optional persist) - (interactive "P") - (when ac-menu - (popup-menu-show-help ac-menu persist))) - -(defun ac-persist-help () - (interactive) - (ac-help t)) - -(defun ac-last-help (&optional persist) - (interactive "P") - (when ac-last-completion - (popup-item-show-help (cdr ac-last-completion) persist))) - -(defun ac-last-persist-help () - (interactive) - (ac-last-help t)) - -(defun ac-set-quick-help-timer () - (when (and ac-use-quick-help - (null ac-quick-help-timer)) - (setq ac-quick-help-timer (run-with-idle-timer ac-quick-help-delay ac-quick-help-delay 'ac-quick-help)))) - -(defun ac-cancel-quick-help-timer () - (when (timerp ac-quick-help-timer) - (cancel-timer ac-quick-help-timer) - (setq ac-quick-help-timer nil))) - -(defun ac-pos-tip-show-quick-help (menu &optional item &rest args) - (let* ((point (plist-get args :point)) - (around nil) - (parent-offset (popup-offset menu)) - (doc (popup-menu-documentation menu item))) - (when (stringp doc) - (if (popup-hidden-p menu) - (setq around t) - (setq point nil)) - (with-no-warnings - (pos-tip-show doc - 'popup-tip-face - (or point - (and menu - (popup-child-point menu parent-offset)) - (point)) - nil 300 - popup-tip-max-width - nil nil - (and (not around) 0)) - (unless (plist-get args :nowait) - (clear-this-command-keys) - (unwind-protect - (push (read-event (plist-get args :prompt)) unread-command-events) - (pos-tip-hide)) - t))))) - -(defun ac-quick-help-use-pos-tip-p () - (and ac-quick-help-prefer-pos-tip - window-system - (featurep 'pos-tip))) - -(defun ac-quick-help (&optional force) - (interactive) - ;; TODO don't use FORCE - (when (and (or force - (with-no-warnings - ;; called-interactively-p can take no args - (called-interactively-p)) - ;; ac-isearch'ing - (null this-command)) - (ac-menu-live-p) - (null ac-quick-help)) - (setq ac-quick-help - (funcall (if (ac-quick-help-use-pos-tip-p) - 'ac-pos-tip-show-quick-help - 'popup-menu-show-quick-help) - ac-menu nil - :point ac-point - :height ac-quick-help-height - :nowait t)))) - -(defun ac-remove-quick-help () - (when (ac-quick-help-use-pos-tip-p) - (with-no-warnings - (pos-tip-hide))) - (when ac-quick-help - (popup-delete ac-quick-help) - (setq ac-quick-help nil))) - -(defun ac-last-quick-help () - (interactive) - (when (and ac-last-completion - (eq (marker-buffer (car ac-last-completion)) - (current-buffer))) - (let ((doc (popup-item-documentation (cdr ac-last-completion))) - (point (marker-position (car ac-last-completion)))) - (when (stringp doc) - (if (ac-quick-help-use-pos-tip-p) - (with-no-warnings (pos-tip-show doc nil point nil 300)) - (popup-tip doc - :point point - :around t - :scroll-bar t - :margin t)))))) - -(defmacro ac-define-quick-help-command (name arglist &rest body) - (declare (indent 2)) - `(progn - (defun ,name ,arglist ,@body) - (put ',name 'ac-quick-help-command t))) - -(ac-define-quick-help-command ac-quick-help-scroll-down () - (interactive) - (when ac-quick-help - (popup-scroll-down ac-quick-help))) - -(ac-define-quick-help-command ac-quick-help-scroll-up () - (interactive) - (when ac-quick-help - (popup-scroll-up ac-quick-help))) - - - -;;;; Auto completion isearch - -(defun ac-isearch-callback (list) - (setq ac-dwim-enable (eq (length list) 1))) - -(defun ac-isearch () - (interactive) - (when (ac-menu-live-p) - (ac-cancel-show-menu-timer) - (ac-show-menu) - (if ac-use-quick-help - (let ((popup-menu-show-quick-help-function - (if (ac-quick-help-use-pos-tip-p) - 'ac-pos-tip-show-quick-help - 'popup-menu-show-quick-help))) - (popup-isearch ac-menu - :callback 'ac-isearch-callback - :help-delay ac-quick-help-delay)) - (popup-isearch ac-menu :callback 'ac-isearch-callback)))) - - - -;;;; Auto completion commands - -(cl-defun auto-complete-1 (&key sources (triggered 'command)) - (let ((menu-live (ac-menu-live-p)) - (inline-live (ac-inline-live-p)) - started) - (ac-abort) - (let ((ac-sources (or sources ac-sources))) - (if (or ac-show-menu-immediately-on-auto-complete - inline-live) - (setq ac-show-menu t)) - (setq started (ac-start :triggered triggered))) - (when (ac-update-greedy t) - ;; TODO Not to cause inline completion to be disrupted. - (if (ac-inline-live-p) - (ac-inline-hide)) - ;; Not to expand when it is first time to complete - (when (and (or (and (not ac-expand-on-auto-complete) - (> (length ac-candidates) 1) - (not menu-live)) - (not (let ((ac-common-part ac-whole-common-part)) - (ac-expand-common)))) - ac-use-fuzzy - (null ac-candidates)) - (ac-fuzzy-complete))) - started)) - -;;;###autoload -(defun auto-complete (&optional sources) - "Start auto-completion at current point." - (interactive) - (auto-complete-1 :sources sources)) - -(defun ac-fuzzy-complete () - "Start fuzzy completion at current point." - (interactive) - (if (not (require 'fuzzy nil t)) - (message "Please install fuzzy.el if you use fuzzy completion") - (unless (ac-menu-live-p) - (ac-start)) - (let ((ac-match-function 'fuzzy-all-completions)) - (when ac-fuzzy-cursor-color - (unless ac-cursor-color - (setq ac-cursor-color (frame-parameter (selected-frame) 'cursor-color))) - (set-cursor-color ac-fuzzy-cursor-color)) - (setq ac-show-menu t) - (setq ac-fuzzy-enable t) - (setq ac-triggered nil) - (ac-update t))) - t) - -(defun ac-next () - "Select next candidate." - (interactive) - (when (ac-menu-live-p) - (when (popup-hidden-p ac-menu) - (ac-show-menu)) - (popup-next ac-menu) - (if (eq this-command 'ac-next) - (setq ac-dwim-enable t)))) - -(defun ac-previous () - "Select previous candidate." - (interactive) - (when (ac-menu-live-p) - (when (popup-hidden-p ac-menu) - (ac-show-menu)) - (popup-previous ac-menu) - (if (eq this-command 'ac-previous) - (setq ac-dwim-enable t)))) - -(defun ac-expand (arg) - "Try expand, and if expanded twice, select next candidate. -If given a prefix argument, select the previous candidate." - (interactive "P") - (unless (ac-expand-common) - (let ((string (ac-selected-candidate))) - (when string - (when (equal ac-prefix string) - (if (not arg) - (ac-next) - (ac-previous)) - (setq string (ac-selected-candidate))) - (ac-expand-string string - (or (eq last-command 'ac-expand) - (eq last-command 'ac-expand-previous))) - ;; Do reposition if menu at long line - (if (and (> (popup-direction ac-menu) 0) - (ac-menu-at-wrapper-line-p)) - (ac-reposition)) - (setq ac-show-menu t) - string)))) - -(defun ac-expand-previous (arg) - "Like `ac-expand', but select previous candidate." - (interactive "P") - (ac-expand (not arg))) - -(defun ac-expand-common () - "Try to expand meaningful common part." - (interactive) - (if (and ac-dwim ac-dwim-enable) - (ac-complete) - (when (and (ac-inline-live-p) - ac-common-part) - (ac-inline-hide) - (ac-expand-string ac-common-part (eq last-command this-command)) - (setq ac-common-part nil) - t))) - -(defun ac-complete-1 (candidate) - (let ((action (popup-item-property candidate 'action)) - (fallback nil)) - (when candidate - (unless (ac-expand-string candidate) - (setq fallback t)) - ;; Remember to show help later - (when (and ac-point candidate) - (unless ac-last-completion - (setq ac-last-completion (cons (make-marker) nil))) - (set-marker (car ac-last-completion) ac-point ac-buffer) - (setcdr ac-last-completion candidate))) - (ac-abort) - (cond - (action - (funcall action)) - (fallback - (ac-fallback-command))) - candidate)) - -(defun ac-complete () - "Try complete." - (interactive) - (ac-complete-1 (ac-selected-candidate))) - -(cl-defun ac-start (&key - requires - force-init - (triggered (or ac-triggered t))) - "Start completion." - (interactive) - (if (not auto-complete-mode) - (message "auto-complete-mode is not enabled") - (let* ((info (ac-prefix requires ac-ignoring-prefix-def)) - (prefix-def (nth 0 info)) - (point (nth 1 info)) - (sources (nth 2 info)) - prefix - (init (or force-init (not (eq ac-point point))))) - (if (or (null point) - (progn - (setq prefix (buffer-substring-no-properties point (point))) - (and (not (eq triggered 'command)) - (ac-stop-word-p prefix)))) - (prog1 nil - (ac-abort)) - (when (and ac-use-fuzzy ac-fuzzy-cursor-color) - (unless ac-cursor-color - (setq ac-cursor-color (frame-parameter (selected-frame) 'cursor-color)))) - (setq ac-show-menu (or ac-show-menu (if (eq ac-auto-show-menu t) t)) - ac-current-sources sources - ac-buffer (current-buffer) - ac-point point - ac-prefix prefix - ac-limit ac-candidate-limit - ac-triggered triggered - ac-current-prefix-def prefix-def) - (when (or init (null ac-prefix-overlay)) - (ac-init)) - (ac-set-timer) - (ac-set-show-menu-timer) - (ac-set-quick-help-timer) - (ac-put-prefix-overlay) - t)))) - -(defun ac-stop () - "Stop completing." - (interactive) - (setq ac-selected-candidate nil) - (ac-abort)) - -(defun ac-ignore (&rest ignore) - "Same as `ignore'." - (interactive)) - -(defun ac-mouse-1 (event) - (interactive "e") - (popup-awhen (popup-menu-item-of-mouse-event event) - (ac-complete-1 it))) - -(defun ac-mouse-4 (event) - (interactive "e") - (ac-previous)) - -(defun ac-mouse-5 (event) - (interactive "e") - (ac-next)) - -(defun ac-trigger-key-command (&optional force) - (interactive "P") - (let (started) - (when (or force (ac-trigger-command-p last-command)) - (setq started (auto-complete-1 :triggered 'trigger-key))) - (unless started - (ac-fallback-command 'ac-trigger-key-command)))) - - - -;;;; Basic cache facility - -(defvar ac-clear-variables-every-minute-timer nil) -(defvar ac-clear-variables-after-save nil) -(defvar ac-clear-variables-every-minute nil) -(defvar ac-minutes-counter 0) - -(defun ac-clear-variable-after-save (variable &optional pred) - (add-to-list 'ac-clear-variables-after-save (cons variable pred))) - -(defun ac-clear-variables-after-save () - (dolist (pair ac-clear-variables-after-save) - (if (or (null (cdr pair)) - (funcall (cdr pair))) - (set (car pair) nil)))) - -(defun ac-clear-variable-every-minutes (variable minutes) - (add-to-list 'ac-clear-variables-every-minute (cons variable minutes))) - -(defun ac-clear-variable-every-minute (variable) - (ac-clear-variable-every-minutes variable 1)) - -(defun ac-clear-variable-every-10-minutes (variable) - (ac-clear-variable-every-minutes variable 10)) - -(defun ac-clear-variables-every-minute () - (cl-incf ac-minutes-counter) - (dolist (pair ac-clear-variables-every-minute) - (if (eq (% ac-minutes-counter (cdr pair)) 0) - (set (car pair) nil)))) - - - -;;;; Auto complete mode - -(defun ac-cursor-on-diable-face-p (&optional point) - (memq (get-text-property (or point (point)) 'face) ac-disable-faces)) - -(defun ac-trigger-command-p (command) - "Return non-nil if `COMMAND' is a trigger command." - (and (symbolp command) - (not (memq command ac-non-trigger-commands)) - (or (memq command ac-trigger-commands) - (string-match "self-insert-command" (symbol-name command)) - (string-match "electric" (symbol-name command))))) - -(defun ac-fallback-key-sequence () - (setq unread-command-events - (append (this-single-command-raw-keys) - unread-command-events)) - (read-key-sequence-vector "")) - -(defun ac-fallback-command (&optional except-command) - (let* ((auto-complete-mode nil) - (keys (ac-fallback-key-sequence)) - (command (and keys (key-binding keys)))) - (when (and (commandp command) - (not (eq command except-command))) - (setq this-command command) - (call-interactively command)))) - -(defun ac-compatible-package-command-p (command) - "Return non-nil if `COMMAND' is compatible with auto-complete." - (and (symbolp command) - (string-match ac-compatible-packages-regexp (symbol-name command)))) - -(defun ac-handle-pre-command () - (condition-case var - (if (or (setq ac-triggered (and (not ac-fuzzy-enable) ; ignore key storkes in fuzzy mode - (or (eq this-command 'auto-complete) ; special case - (ac-trigger-command-p this-command) - (and ac-completing - (memq this-command ac-trigger-commands-on-completing))) - (not (ac-cursor-on-diable-face-p)) - (or ac-triggered t))) - (ac-compatible-package-command-p this-command)) - (progn - (if (or (not (symbolp this-command)) - (not (get this-command 'ac-quick-help-command))) - (ac-remove-quick-help)) - ;; Not to cause inline completion to be disrupted. - (ac-inline-hide)) - (ac-abort)) - (error (ac-error var)))) - -(defun ac-handle-post-command () - (condition-case var - (when (and ac-triggered - (or ac-auto-start - ac-completing) - (not isearch-mode)) - (setq ac-last-point (point)) - (ac-start :requires (unless ac-completing ac-auto-start)) - (unless ac-disable-inline - (ac-inline-update))) - (error (ac-error var)))) - -(defvar ac-flycheck-poll-completion-end-timer nil - "Timer to poll end of completion.") - -(defun ac-syntax-checker-workaround () - (if ac-stop-flymake-on-completing - (progn - (make-local-variable 'ac-flycheck-poll-completion-end-timer) - (when (require 'flymake nil t) - (defadvice flymake-on-timer-event (around ac-flymake-stop-advice activate) - (unless ac-completing - ad-do-it))) - (when (require 'flycheck nil t) - (defadvice flycheck-handle-idle-change (around ac-flycheck-stop-advice activate) - (if ac-completing - (setq ac-flycheck-poll-completion-end-timer - (run-at-time ac-flycheck-poll-completion-end-interval - nil - #'flycheck-handle-idle-change)) - ad-do-it)))) - (when (featurep 'flymake) - (ad-disable-advice 'flymake-on-timer-event 'around 'ac-flymake-stop-advice)) - (when (featurep 'flycheck) - (ad-disable-advice 'flycheck-handle-idle-change 'around 'ac-flycheck-stop-advice)))) - -(defun ac-setup () - (if ac-trigger-key - (ac-set-trigger-key ac-trigger-key)) - (if ac-use-comphist - (ac-comphist-init)) - (unless ac-clear-variables-every-minute-timer - (setq ac-clear-variables-every-minute-timer (run-with-timer 60 60 'ac-clear-variables-every-minute))) - (ac-syntax-checker-workaround)) - -;;;###autoload -(define-minor-mode auto-complete-mode - "AutoComplete mode" - :lighter " AC" - :keymap ac-mode-map - :group 'auto-complete - (if auto-complete-mode - (progn - (ac-setup) - (add-hook 'pre-command-hook 'ac-handle-pre-command nil t) - (add-hook 'post-command-hook 'ac-handle-post-command nil t) - (add-hook 'after-save-hook 'ac-clear-variables-after-save nil t) - (run-hooks 'auto-complete-mode-hook)) - (remove-hook 'pre-command-hook 'ac-handle-pre-command t) - (remove-hook 'post-command-hook 'ac-handle-post-command t) - (remove-hook 'after-save-hook 'ac-clear-variables-after-save t) - (ac-abort))) - -(defun auto-complete-mode-maybe () - "What buffer `auto-complete-mode' prefers." - (if (and (not (minibufferp (current-buffer))) - (memq major-mode ac-modes)) - (auto-complete-mode 1))) - -;;;###autoload -(define-global-minor-mode global-auto-complete-mode - auto-complete-mode auto-complete-mode-maybe - :group 'auto-complete) - - - -;;;; Compatibilities with other extensions - -(defun ac-flyspell-workaround () - "Flyspell uses `sit-for' for delaying its process. Unfortunatelly, -it stops auto completion which is trigger with `run-with-idle-timer'. -This workaround avoid flyspell processes when auto completion is being started." - (interactive) - (defadvice flyspell-post-command-hook (around ac-flyspell-workaround activate) - (unless ac-triggered - ad-do-it))) - -(defun ac-linum-workaround () - "linum-mode tries to display the line numbers even for the -completion menu. This workaround stops that annoying behavior." - (interactive) - (defadvice linum-update (around ac-linum-update-workaround activate) - (unless ac-completing - ad-do-it))) - - - -;;;; Standard sources - -(defmacro ac-define-source (name source) - "Source definition macro. It defines a complete command also." - (declare (indent 1)) - `(progn - (defvar ,(intern (format "ac-source-%s" name))) - ;; Use `setq' to reset ac-source-NAME every time - ;; `ac-define-source' is called. This is useful, for example - ;; when evaluating `ac-define-source' using C-M-x (`eval-defun'). - (setq ,(intern (format "ac-source-%s" name)) ,source) - (defun ,(intern (format "ac-complete-%s" name)) () - (interactive) - (auto-complete '(,(intern (format "ac-source-%s" name))))))) - -;; Words in buffer source -(defvar ac-word-index nil) - -(defun ac-candidate-words-in-buffer (point prefix limit) - (let ((i 0) - candidate - candidates - (regexp (concat "\\_<" (regexp-quote prefix) "\\(\\sw\\|\\s_\\)+\\_>"))) - (save-excursion - ;; Search backward - (goto-char point) - (while (and (or (not (integerp limit)) (< i limit)) - (re-search-backward regexp nil t)) - (setq candidate (match-string-no-properties 0)) - (unless (member candidate candidates) - (push candidate candidates) - (cl-incf i))) - ;; Search backward - (goto-char (+ point (length prefix))) - (while (and (or (not (integerp limit)) (< i limit)) - (re-search-forward regexp nil t)) - (setq candidate (match-string-no-properties 0)) - (unless (member candidate candidates) - (push candidate candidates) - (cl-incf i))) - (nreverse candidates)))) - -(defun ac-incremental-update-word-index () - (unless (local-variable-p 'ac-word-index) - (make-local-variable 'ac-word-index)) - (if (null ac-word-index) - (setq ac-word-index (cons nil nil))) - ;; Mark incomplete - (if (car ac-word-index) - (setcar ac-word-index nil)) - (let ((index (cdr ac-word-index)) - (words (ac-candidate-words-in-buffer ac-point ac-prefix (or (and (integerp ac-limit) ac-limit) 10)))) - (dolist (word words) - (unless (member word index) - (push word index) - (setcdr ac-word-index index))))) - -(defun ac-update-word-index-1 () - (unless (local-variable-p 'ac-word-index) - (make-local-variable 'ac-word-index)) - (when (and (not (car ac-word-index)) - (< (buffer-size) 1048576)) - ;; Complete index - (setq ac-word-index - (cons t - (split-string (buffer-substring-no-properties (point-min) (point-max)) - "\\(?:^\\|\\_>\\).*?\\(?:\\_<\\|$\\)"))))) - -(defun ac-update-word-index () - (dolist (buffer (buffer-list)) - (when (or ac-fuzzy-enable - (not (eq buffer (current-buffer)))) - (with-current-buffer buffer - (ac-update-word-index-1))))) - -(defun ac-word-candidates (&optional buffer-pred) - (cl-loop initially (unless ac-fuzzy-enable (ac-incremental-update-word-index)) - for buffer in (buffer-list) - if (and (or (not (integerp ac-limit)) (< (length candidates) ac-limit)) - (if buffer-pred (funcall buffer-pred buffer) t)) - append (funcall ac-match-function - ac-prefix - (and (local-variable-p 'ac-word-index buffer) - (cdr (buffer-local-value 'ac-word-index buffer)))) - into candidates - finally return (delete-dups candidates))) - -(ac-define-source words-in-buffer - '((candidates . ac-word-candidates))) - -(ac-define-source words-in-all-buffer - '((init . ac-update-word-index) - (candidates . ac-word-candidates))) - -(ac-define-source words-in-same-mode-buffers - '((init . ac-update-word-index) - (candidates . (ac-word-candidates - (lambda (buffer) - (derived-mode-p (buffer-local-value 'major-mode buffer))))))) - -;; Lisp symbols source -(defvar ac-symbols-cache nil) -(ac-clear-variable-every-10-minutes 'ac-symbols-cache) - -(defun ac-symbol-file (symbol type) - (if (fboundp 'find-lisp-object-file-name) - (find-lisp-object-file-name symbol type) - (let ((file-name (with-no-warnings - (describe-simplify-lib-file-name - (symbol-file symbol type))))) - (when (equal file-name "loaddefs.el") - ;; Find the real def site of the preloaded object. - (let ((location (condition-case nil - (if (eq type 'defun) - (find-function-search-for-symbol symbol nil - "loaddefs.el") - (find-variable-noselect symbol file-name)) - (error nil)))) - (when location - (with-current-buffer (car location) - (when (cdr location) - (goto-char (cdr location))) - (when (re-search-backward - "^;;; Generated autoloads from \\(.*\\)" nil t) - (setq file-name (match-string 1))))))) - (if (and (null file-name) - (or (eq type 'defun) - (integerp (get symbol 'variable-documentation)))) - ;; It's a object not defined in Elisp but in C. - (if (get-buffer " *DOC*") - (if (eq type 'defun) - (help-C-file-name (symbol-function symbol) 'subr) - (help-C-file-name symbol 'var)) - 'C-source) - file-name)))) - -(defun ac-symbol-documentation (symbol) - (if (stringp symbol) - (setq symbol (intern-soft symbol))) - (ignore-errors - (with-temp-buffer - (let ((standard-output (current-buffer))) - (prin1 symbol) - (princ " is ") - (cond - ((fboundp symbol) - ;; import help-xref-following - (require 'help-mode) - (let ((help-xref-following t) - (major-mode 'help-mode)) ; avoid error in Emacs 24 - (describe-function-1 symbol)) - (buffer-string)) - ((boundp symbol) - (let ((file-name (ac-symbol-file symbol 'defvar))) - (princ "a variable") - (when file-name - (princ " defined in `") - (princ (if (eq file-name 'C-source) - "C source code" - (file-name-nondirectory file-name)))) - (princ "'.\n\n") - (princ (or (documentation-property symbol 'variable-documentation t) - "Not documented.")) - (buffer-string))) - ((facep symbol) - (let ((file-name (ac-symbol-file symbol 'defface))) - (princ "a face") - (when file-name - (princ " defined in `") - (princ (if (eq file-name 'C-source) - "C source code" - (file-name-nondirectory file-name)))) - (princ "'.\n\n") - (princ (or (documentation-property symbol 'face-documentation t) - "Not documented.")) - (buffer-string))) - (t - (let ((doc (documentation-property symbol 'group-documentation t))) - (when doc - (princ "a group.\n\n") - (princ doc) - (buffer-string))))))))) - -(defun ac-symbol-candidates () - (or ac-symbols-cache - (setq ac-symbols-cache - (cl-loop for x being the symbols - if (or (fboundp x) - (boundp x) - (symbol-plist x)) - collect (symbol-name x))))) - -(ac-define-source symbols - '((candidates . ac-symbol-candidates) - (document . ac-symbol-documentation) - (symbol . "s") - (cache))) - -;; Lisp functions source -(defvar ac-functions-cache nil) -(ac-clear-variable-every-10-minutes 'ac-functions-cache) - -(defun ac-function-candidates () - (or ac-functions-cache - (setq ac-functions-cache - (cl-loop for x being the symbols - if (fboundp x) - collect (symbol-name x))))) - -(ac-define-source functions - '((candidates . ac-function-candidates) - (document . ac-symbol-documentation) - (symbol . "f") - (prefix . "(\\(\\(?:\\sw\\|\\s_\\)+\\)") - (cache))) - -;; Lisp variables source -(defvar ac-variables-cache nil) -(ac-clear-variable-every-10-minutes 'ac-variables-cache) - -(defun ac-variable-candidates () - (or ac-variables-cache - (setq ac-variables-cache - (cl-loop for x being the symbols - if (boundp x) - collect (symbol-name x))))) - -(ac-define-source variables - '((candidates . ac-variable-candidates) - (document . ac-symbol-documentation) - (symbol . "v") - (cache))) - -;; Lisp features source -(defvar ac-emacs-lisp-features nil) -(ac-clear-variable-every-10-minutes 'ac-emacs-lisp-features) - -(defun ac-emacs-lisp-feature-candidates () - (or ac-emacs-lisp-features - (if (fboundp 'find-library-suffixes) - (let ((suffix (concat (regexp-opt (find-library-suffixes) t) "\\'"))) - (setq ac-emacs-lisp-features - (append (mapcar 'prin1-to-string features) - (cl-loop for dir in load-path - if (file-directory-p dir) - append (cl-loop for file in (directory-files dir) - if (string-match suffix file) - collect (substring file 0 (match-beginning 0)))))))))) - -(ac-define-source features - '((depends find-func) - (candidates . ac-emacs-lisp-feature-candidates) - (prefix . "require +'\\(\\(?:\\sw\\|\\s_\\)*\\)") - (requires . 0))) - -(defvaralias 'ac-source-emacs-lisp-features 'ac-source-features) - -;; Abbrev source -(ac-define-source abbrev - '((candidates . (mapcar 'popup-x-to-string (append (vconcat local-abbrev-table global-abbrev-table) nil))) - (action . expand-abbrev) - (symbol . "a") - (cache))) - -;; Files in current directory source -(ac-define-source files-in-current-dir - '((candidates . (directory-files default-directory)) - (cache))) - -;; Filename source -(defvar ac-filename-cache nil) - -(defun ac-filename-candidate () - (let (file-name-handler-alist) - (unless (or (and comment-start-skip - (string-match comment-start-skip ac-prefix)) - (file-regular-p ac-prefix)) - (ignore-errors - (cl-loop with dir = (file-name-directory ac-prefix) - with files = (or (assoc-default dir ac-filename-cache) - (let ((files (directory-files dir nil "^[^.]"))) - (push (cons dir files) ac-filename-cache) - files)) - for file in files - for path = (concat dir file) - collect (if (file-directory-p path) - (concat path "/") - path)))))) - -(ac-define-source filename - '((init . (setq ac-filename-cache nil)) - (candidates . ac-filename-candidate) - (prefix . valid-file) - (requires . 0) - (action . ac-start) - (limit . nil))) - -;; Dictionary source -(ac-define-source dictionary - '((candidates . ac-buffer-dictionary) - (symbol . "d"))) - -(provide 'auto-complete) -;;; auto-complete.el ends here diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete.elc b/project1/.emacs.d/packages/auto-complete-20170125.245/auto-complete.elc deleted file mode 100644 index 997f77935dcc4233581375ca7700624247a5b88a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66379 zcmd7533pq^vG2?G&bm3IxP-{EP0JIr1=$v98#HE$a$<{;9oaYW5X;UaDiKJ65@Hfy z2v8Dpa_{@<@At3j-V*=~aqi${5qtOUvAVjtrmp_@^WWZjZDC>I+{Yh(oZK269S;us z`}Q&zCZ8Ym_QuJh{>gYS8Ya#5Mth^v*l614$Aihkq<46jjE*ORqrpFV6Y`8V&e_NB z9}dRJ0aYcZ<Ni3=KO6Rr27Af=Xm30@84MqcKjiDlc#`z?_xt-v+Eim}qq#Lz$Nq>q zhNDTcHyTcQWIml7)UJ^-tZm=9_2rkz-oxHWZ*M|BKeXn1!~JADO7?ogWVfFjj(UYg z!g$6>zjtyt=$|B$hh%KFyj|e%lm1f&e(Hbc&Yin*W2>3`K0tnSkn~O`quL(xbJ(Bs z1uzF>axgkM>P<Gz{V?t)_ru6)WIY^=Cs&inD0$GIq%)}UqhWtI+4#k|wf+79@YEda z)#4Oa8ylUCMm1Tx@=mgmv>UDUb$Zg;O1|p-ZFG{>Gdw-o1#abT&91a|WM$WO&nA6F zu-{LrJFR+S@$!wGW_`1o+|9LL8o<4zxgPq`=`_;542J)DU##qOUv`>}#`X(!sJo>O zm1?SMWS6N-5Bk^S#RhrO|NH6Sq@U~^GBvx&@#y&USi=LnoksFq|9Eu5ObnC$$q9oK z0`CvTy<Jw&{le7Oj)36RFn_(nL2sN~1%O`c%H6g1v>Zpn-eK~ncd~Avwoa)p^lLM8 zXE-=aN_}rA%i>No^uEPw+lI0j%1~i))E|#~517J2r@YtKlXu6}BBEMvlUn0m(qbal zte5NSyoFiasyEl~&4!|NxK+1q@Z8~Fmw%h@{ik<OAa2m-Mw5T!YP9*MT>RD>g<O<l z;H{=g@U^LtPUUJ+Pm_9@sz<qI*43mg%SC<jbG2xxMJp}!jk;QK6or1Z)Cyl(wDgp^ zXt70W?a=$#V{Fq}o7UO^60>{Xro}d`wFMD9Q|~k+I<%yIbp&1YaV8`>wAN8BawymA zesw6@p|wtc*X$O%v<P~(x}n7`&(r<t(ps06x&dBY>MiE#(#j@vku#vNuw;{3H>q(m zz-E&=isdX9wQAIx0XDNoy{QG%xUrzW+Y3(_Ip1$uu3Pr^GtW!v=R6f#r`M$a+VW8* z>p7{nE%gig`{h&WU<Bm;@8n<%JpIP=&X_xI?YCAV`3tRmrM^KX>W#0T(w5iojnzPj zLJi+q>hJ9DcWE7WRIi|($A4P+-tzrme}C_}XX7M!|6sZPXn+5d*8Jx=HQ%*-J3IDs zFU|g!Iobbe`R?1_UYdJ%PVPOW8<_Ufy!|w<z;|FZJy>{eDJ52<KD5+<{ry{7^2fAf zj%bnlQ0dmnQJQx+mDeX@WOY)aFd4_>c69i=*DwPe9C1#p{Mi0Z($-F=TJzkG(t001 zquwW~!Nzd*jGX^SbN<&ea{e>T`9GeK^MBfS{y+Q6tkgX_pq*ZWJ}^yPT01Yzv;;3L zeaRy+nMrQP>O1kF8y_~)67L!s6bm%ykEJwd(;w8HH!-sSJ@9<7%?52gtw8KagPvH) zreKh^V2sJ$>3A|as_pmp4tpp4+JlqP>2YxrPsA)#w_!kGz>NWg!PuxK*FA5RmRvtR z=^qT9z#Z(>s!6G4*oT2JG<@9eANJ0Y`bHzEerAt_y2r`m0fGgrd+$+iaHv9RZgO_q zPY&Sbjb$|kWc+aSxOUVZo>JGfr1~`yfjWEC?+wSf&XPcuv{FU_&pg;edO1r}g+{Zs z_i!}W>+@?&@%2gXK~nuwAC6`M>yl6Wx(}OL6;$}({qfx2503b-zAlbB?OAPbbkyG; z^d|kovl{&?GES3nrwct*B@&Oa8WQBNB13qUzVD7khYVTm_MaTXJWe-Mf{kZO9zUd@ z0ChyY$30k3eqAy{s4MfHYD$ymjA`wlw})JIb?pGDtados`%&@<{h!zuB$JrzqDnax zVbGFbQj7Bz8DBxl<|#ju^lyCJ-y0kZ0F3oOb9d4|?t>QNv!mS+vm*FUM#r^-!?UB_ zk9|QSV(E}sooY^OcF3Dd`p8Hp;3~L5V_7*LJlXah_8IH(=<qPDl?M7ieK14@eFX1a z-{>UOZ^?nIi?9|_LGqLScp@;TV>29#m0ksDRk=#_4k(p2Pfw7jX~TPgR9!nb{l`Df zk~N76Yd{|alVm~9&yuQrtF8-mOQWS^;w1s?-a}dn<5F$4z0;HN=!9V%B7{^=`uo+S zddt%2iP8`}LuteiN(LzufU8Ra7LxxIQmaux0eCzBKk}ne_R-0icOsUrO&$U$aC09> zZUV{v$sXk-cp!5Q9w7e-M2Dlt$#`!>Hzn%t5B7n<xKxuVA=bjG&`S+fgs*ZymaGj9 zkb_32!~NsrD&0J(^`-Lw$4~lu>e#w87*nZ9^?!b}VL3PUKLXCxkAOhz{RaII6{y}y zsbvy|={gbhz`JR6?+^A&WYfg`Kw}A#`C!PPvJW{FH~opBc=oxbfoUnKTS``!KFg}L z&$O7XlTZl_L6u#K^eH@H<gquQRzBp?B47rzw`McZcj1%Q#}E5M)3#X20BH0TNPYtp z4WN2|Uyy}r#)-%PT`IT^0M{fek4DE*awIlwpdW(_JpwnwSoK}?{>lio=C#<K%C0Ax zYHK)-;jDJ7V(Y@~L#Eqa)NmelF*5_60YQga4cQ)&@UVY)JZrt#*F;}^*0bDUBSh<x z+XzMVlX4mD3p6lz@Nkke>Phvh-V<uHSC&MI{<hQ6idNeLP>KGf-)y6db?_nAjZjl_ zs^W4ta%HsFvoelH<Jx4vxWBb`=4mo`)JO9)I#jZ$31c2pw2jz3wfmb2#HJR4e@u#& z^t0Q0QXJDEx<}~EZ|x`3OQnMzZzLl35gyJN3`dET^XW+QqN%dlrDD-)a#DaM?b!7g zr6;57s2$;k{QH<n`!)8WLw_F*j{IRS{KVf6KJbLm?%zVv`0?Oi;)xGN{`)tWAAdUP z!2|V9{AKTO^tV$OHFXkglD&-gP6o%J_!zb(lpC{|&>_po25}U+H93XRdk`uZ{oNlP z_QpR#pZ%rxU_Vr$r=}+!Gi{+z_IP|Yc^HR(a=Lrw84gcF@d+!~n(yx&_42*c;0o_! z&-b@+?Qi2J@j0~ow{bH|-5VVo^uwTzABLIP8;A1a^a+AEuBC7N!@-k5fS_0cqXX8n z@k4J78ZtTQg_%6qs(WfL0^&)8-uOX$dfeajOp~<n!`?6e79<}Wj>5~|W0Br5`diNp zm2su2dND3Bbyn|HQ(&K*4&g)cq$gu?wBxYcU|(v-y}cjVAIG5I19rQl`WIF>6!JTN zh4mP)LyAj)>4QMV{MN?f(aDd#QVZOvFOMPf%YN|ya-uEnh@Do8<Nb;F@>*?ASTpV) z9<avPye2VE(icfR8SK?|Pnoe3(@6WK=v6=r-~@WZs}phh?1cLX%FNKxSR4H`qnmDE z84PB0ZANcs_<J9Nn2%fsoS8fWDE-Mp2xh5Gi3g{!A<ngF8yZb!&qcW(C8qN#`gW=A zYr9O;<KD@BO-73(eG6abCe}{je|854XT~}n_dsTq9W#%8aqfs1ldNv9ZC-kf`QHDj z5RolrFg%4Ldk&!d*oU_%vfX7sn{?)2-aSi@^|T#KWJjX##?J7|gXC;<8km1F=*#!p zH!&p9f&P=81k(?vrf+7gDz-Be;|xonS%*87fhotAVxU5vg3Wv|kS;yoOe#Viz{?2y zeevTnB}WF^k1}Fll3hsrP5(^H;q@_m5&C);Sy0v=p2DKYGSXaJay1URqk89}1a{Pt zri%}+?WJf{$d^v25q{#JcX~KU4gyaL5m0hOPC$wB{hqc^Tj>t(W_fNzS3p)awsgdn zQ%f`oWfEMNmTyPnfo=H39Tvd$lEeP+0Y*ZZi4vilO(1+c00;Er1cifm6ypk*1_uH& z^8(G6u;M;K`PC1Tp(J!smD#<XGiA>f_Tw0RCckr&P89ehaB7reaU;k;3_DCb#8={I z4!!augt-|$FoxdQ>9J-9a+v43dt(=9L;b~-)JvSgB3vFq-}7=qI(_WYr(zv77h~^@ z)#W5U@bP;+<g}~fBMGRb)mqpWTmoa$QUPC@wj2$KHL>@t4kluLG4?bBY)K5P#3bmA zWa!m?Alf23Z*O>(oF2n%SWDp31l%z;{JE7icQhL0RQ;6oI3r)6E=)Zh9F+$>MWWay z$B=AoRV<CqM#&$vhkcoRh4RHAsd+P2{iw$tT%IS}Y#=8rLw&!`M90imi^_(g#!8!G zR=*hNlfgb%Bdtph4r{ut`?E4#P0_)2ThQ_$G|UKSmR+4oSU<xFdoWYLdN;||>4Enm zYJdhq6dV`><2a+{CZy-q@uR_busb*$OwOuB{@usVT%!v7IyEb&EcqCuMkWx!pu0g( zFyL4{FzmI*gMEmM1fs#w=@CQJt2Tvv*ZU4o8}cIv^BkJ(VnL+ad8Oa2=wgtVs8LOt zof10z0R{`f?K?R_#7yXcp!Fq1sI*oFgp|s<YHV!{N%=ZG?@O`D?o{3Ho&5OVqzBBd z^A7(lXirQ+{k1C5D5qdu0<g8_RS$;jbx2DldAaUQ!fsks3U#05^c8MYcs;i!pTjhd z_3taanu5-Hnbzf1!=b?(N^p95rNw;3f%`WQBUkr5WMlJKXeM8bMvmIWRqUK~u%FAK zUBD9iT6?IX(j&VY#I>!a`yRA6lh00%j?QFScU871I|K@4m8+XkYn&u-cS9EE_^FNL z>ffr@H_f-9v6XxSujxuSh#(5Ld>x4LdG%b@!L3H!9W|O;$(Oz)b4$-uA;Z0Xv8sSJ z`AWLiycb>Q8S3)c<uup%zBgOm_f|Xk^&u*AK}7ls%Lo0C8ksE~^+>UOWisMdsLXsS zuH5K0a799c&u$fV2FUl1)FYlPo%aE%T4g!xvD;<?F1DkOIr^1vtrZ5`Y$U&v{>C&k z>9F0I#V{nVD#=&S-gJm{yQX6hEM31a3+0@}d@M%D^t-@jUY}z+3~+9KI&Giic0IXi z5|wsOSl0pqtChg?6yXq9gj{{yPC%M=a>sPi$0PWg4Ccl1{xMg4v*pEGt>m|wfVA}K zG5SyNAL&Ee^{`lv&Bt_QTiu9zQX^qPa@MI>HsC_86W2D?3Ar+*dQ5r4FdVr(>CwxG zCN#U=(G-6&x>1<x_&rmc<!5253q^PDtXl|@%%Yi10;dNy3IiDZ!6{Nhrj$Mhqgs+Q zV%ZN}mWkFWMpqm)*g#eUe7Le~=#6?k;KQ{|`R&Ep0^l@_!MO8p>4eo~qW!F{G_E;; zY+g&g3EDkvO<}&~Pi0MPhjfAYap9+95N@{3A2G-wgMDl?Mofy(ar#myzvUFE*-GxD zlxSY@lnkN66rsvj)b55+wF~rNPDf00X)53uRdrfz$M4OQO4>3h5#=DJv8Uzx(XDS; z;Wh|7SIud=Y`?en5XZ+;tR;orXAk9z)TD)4Hv^cVwWlX1W|qlNrLZD0JTBC*+3`i& zZYH<Vk{~@=$H1BF4;~HnPhogx_9?5DrKUpp?p<p(ebCJkZ7mwFMDO}TX`=RvcwyOU z{;5#$R>K!?`&y~u&;Ib`S2>cL^2!LhvceXt-$z`SQM*>9b$hFoZ09&<*iWfzVbnL0 zFR@M_;~nClYHYYxN|<=#y|vx}=SFg;4{=vE$q6|LK6?L!y-78j2(V_hPBcO%Fl#Pi zz@nNbXQNTy^1X^x^&6Ky)GloWLBBY>m@aK5!bQnbu$^2&A<<dnk6f@euLPGtrQk?W zPLWervyjIeu?i`2>FO3zaOG;&^C@!ME9Nnmy<#3}Zng`h<knTFxv829dE~BF%;U~` z`FiBS*D98x=2l@`EufL+ai6`{-&ooi{sBb}URf=9kYtW}OW*HQ<zLx&lT`dlqGO(1 z<m7@U_d9p8Tl)NS9@{r>{`#vNq~%&Cm%mQeYFf75uJcTlFVSN2;llfi>paNER<k%r zYPJ25=-k-pL9G@n<{&0k@&e`rBc$*ssV<pJ5qt*jqKCYfRL{Gd;Rw`E?l$O5V{@~$ ziFT=g`RKGdUCTV|KS8m8dtTjM*&ZGZ5EGKS$W6n0$z6HG-aWus6nr;Z+TE{e;T0Xg z7^O-`?rt{faOE_07q=GXuG{JGe2d|!B8umzF=hst>h(!k)X2;XxV^}Gimvk0q>Ecg z9d1x8jK~@0a`S5mO9OD33{!g-8~I`HXm`KoWX4L!D)b0_o>@d$%$VtesDDU$?RY)N zU|xs%WBl@(vc(1v%})Bg{o0Sa`z%5Rfs9+j!xkB*k*({d`9)80K(P`RXf*p`hC-?| z2PBD&X}4yRgBjY0B85<YXVHeH(S}ykVL}Yrq7&e1Jza&C0+u(@wW}0&=8bF4QVMj! zQm7}R0hUsr6G{=CXr}AZQZlMgSP)YXnY9k2K6PR$7EIfuo9BIHlvY8tl0)<hMJ%tr zZ100H#}3%0@48U!*dCsJB`{|axBZK&=3?%);jVvg$3#$H2xNtLZl}o6Y;I|f56GcR z2#^}Wb4=X70Z?-KHpaV?d=}Kw=5vAv$<T!V5=O}%1+NzW2EG>jYj7{{os2O#XVB^< z-@2?|6M`06B4gOq#0~?*VhhfXN=H5zhU{0@q6U6L@CiAhACb8Wa1bK<BD*2*MbkOh zH!p|6*DRSlxJ__mC12Q5;uj2c2h(4bsvIH+cE+MmKBht%QfORr=CIjG?l|KYK`?V; z4~!W0JI3TMuC&H_R~zFd;RM5_#c|pUj-zVEIgF_NNDX^ZLK=MuwQJJR2i#(B09-nX zBaT!e$^Ep|afyo&X;S9UDa<jc{)L?-=r_98QeHKR(V@wW#Eu+E`aRv%*_YT_x!!WK zVL^myimhG?EK^siUY$RZO3O6eD5j6l(-qNcbTk~KBo;AgR-N6tc;*=^GQ&;vp^(K$ zfM|9(4^VC;pY_;}rML&Yk-mfc(XXn=$OB}3C=7Gc#2j@Aqz=bPRFN`5C}0d|08^DF zMD{5$c#v4!df6ufb3rB?2p%dYV%l}wuqFw5+uot9O$?@Z_9v?W(-s8ZDmgwix6bL7 zt!y}ChJ+TXGHd~9r4kKJk0N~r+8N{UA*}81qVHV15t`hGk7@ji-BX4CmY%ujgC)@W zmL5X-DV_5=|1I4U0?1C8ohxGG0wOT%F3LFRxF92?up@hOKjY3jp9N?OVunt$F(tYF zxZnG6C{60*UeeXH%tlFRb_`rm)sb~=4~A(XGb+7nG%np(f1Mt6c7_;K-`qK%AFW?3 zEc4U;g*x8d8Q$h+bEo>Uc#)mq@{(~M%kPIC@9!q+bkOaf-tRw2ya}DE(=dEMkIYpN zZV?<->b;~hzx$kcEOy^lwK~0Y`_5l3sAG$Nqz9dvI=Q)Y`6ch&l2{~lu<_<wi*N57 zoag^9zW<Vh`ulupB53I28{0S5cdC)^_sZiC7!b-qz}NWImFtg^D^2^Ui)Q*DYr_## zW(2oAk%J%9I$e(f`vi{k=$Rulm(1rIBT`WZCv^=o-+LRRrYl)kUi^ZGF8OeJw^@>P z97w#SOm8cb{@Hx4zP5CG716ZOTxH@Lt;*{=&30$?4W8TK8Ci>iN|aoEYxV8QYn4ku zHpB0~^2XiD8x>{fE>>Rq^W{JP<=)C$ycvU8dHrtXt-oGIxN3J+1pLZtUsT@y>(0(A zmDfz-T6v9bG{0Qf_)icm@Ssb#7yryN9c*|0e2=__dwQe0&Gr)5M`wh6&Cb$t1^~yx z#hnA2+?|8>Z8pgT7@St-b)*Ti>I>chZ!=s^F|<5~^^JPcNjB^H?eb4#y|+6~8a&H! zNa^*B7KRi(*@6xD9kAPS96Ju-{&QG^A3&1C3Z3jHPm+^+$>x0Q$GbSL-r#g8Cxd{c z*+NeJe_0k<5W*16n*LpS{S8eLn@D>6PtPsjF2rc_xBBvVA;sGZtm&JYm(_*k4+HFA zfiY6xjG7F==CPb5ay>~KHn?c~$9ouwpf|lh^r&^oD_?}L{Pj<IepTq#xuBNbUReJA zWu|U>XXnDsLELGq(bT6oHg6K6`C~+|_$u^4caWimSD;(VV9wI=x&|Uq-WIX>KgY!_ z7w9mi{A?RKuqocN?k7gIx0kks@v3Jx>2Uz{-cxBU4qXFw(|_0&U>g(zZA$xtNL6nG zh(_ae(HkD>i|e;S)f9mNprb-AKxm{A82*?%GCFs2XUJ$8jf){a>1etr;~i?x#~)nf z@?9E(u@0?_r+DfiR~;<0uJg;%(?|@tmTtr`MAsUl{8|usklJqev`tL-B5=!e>>X<^ z-dNn$#$rHMx@{`yR?%h#B(kmf5#F`*gzc9@6DN$RGp22SccZ#4klG2_`7n}jLmyIp zEz#sK&}?gFx~w<(q3M*oj^n%a^G6Qg1Xp;ohURmQdyo2oubaI?TUA*HT8n}y+pt!N z4p5mgfKJ(xhDO)BFX_{!I@-8s#Lka}r<;$&F5y$I8|F$6=Lgn|@#EHLOKhgi_2o+^ zi+>LQX!EPt?#O?tQSa}Dbi;t-%a=b0V6p8{=RksllW*3AK29<8Phd4_!~Wx#shYg6 zGVkMDQ0fS0-Kn|d0BGtZ%!kjymBy9e!Q(FT278ylbV3}*b$6^ZpH&cOV!jzUP$1D} zt3o;>N!}5oD4)+N<OSgjUchWV7HO9ASOnbClkM3m$`)HZ;C?)FE^N)^=R%vX;O?vM z^06;J(e?g5Wbb*VqA)JQkpI2Y!btOw&8FZnP8RY5f56_BU)+B3U6`6dJ}B{hx^pgH zw$Af{qRoDG5F>F}T$HsSbzL>FE6A8RL5TBVg|i(|>`-sC#kLauv@bC$4XsF+`Gut$ z7qYcuYu3>C4O^?4Iz#03rEL|G#<{(;AWjrcS{ZGRaYMEA&LZ#hbZ{tMfs<dX==^X4 z0Bqw>pWL%4RW%r>r-5WkrI;0;_!DPQTXT`T+&BbVNq$U3&}g&wLMM#dena4R1y({S zztS-6g}wfYAOTNiDts6e4c)1lF(->ro>-40EjBU>06rmsBZ=b05HC_2MTw%!UrtWi z=$CbeNeyb%iyx3CR$0?BMc~qorS1P8r*9ky!J|3IUSa0LTXkp1sm$WadYbHI7P8#Z zVY-#%`*Rn19H3>uVgheUY_!ekjW?IBYx@7lVz|iX=FY*}@!M);_2+tCy>Q<0e7SHQ zcCXP`sgMz3|GO1FBY6DWRt*RHRUC$&gv%9p#ddq;!g*UeuhInClm(@>Hb1<Kn9y#& zoUN;7MN(^PGZIC!CE6V3_-{KOWfEO3k%g9xn@2y?CeiLn3)wH1(^a0n0crh}5YG6A z<Z@*2Yyqi7Hej|R3l9|LDE*|pE4K+@?7@bEv*1V7($+nL8qiZeDtDz_=;kcRdYURQ zznLiEpPB0uQ(63M;W)AbB5B&v>aB~$(#Q3j+vt2vv+^5_WzZzV8bQ!_$7o($*WQL! z^>k-QL~WR-y>P??(=kP>isU9pu){6doH}!)<{PYNC@QoCUx+7V8qVlyN)=E_|^G z$r^F-?8=SJR`Okca*A;aB4ekf@!1ac0o)*=J1A2RNBHr`e)af7O_>v>S@H1alwDu> zf)X^_Ys@s%o7B9F4t}7bLtu1{bn#Ol-nk&s*$~4gUc&eZX2RK`WL;ENbZWxkmvFEZ z#gMgD+htoF%ELw{&rFN2utav68z7j^y28yw1^KnDcHKhE6j)U|9V`cE>(`o|zz~Rj zlVB|HqZN^Rx>;F}@ru3C)72;C6~NOfp6#zq?kT*Gq$53fr<>ei9my;EKKWdvtNCiY z3R{S?fR4M8Aql73Jj)c+LrD!&GHs6iW)sNm?44DC-nR3l`*2-G`|52eN$UUcAOCR$ zoF=dei^Aq<bzv!L!{qE;JK#(%mQS-_nV%WV=|enw@v$R_7BeHuqU<>Mfb|5X!hld9 zRd;so@9eC7dcA)4$?oXh-Fj`SS39`(!OqS<^{j_=4z&A`p?P{K5vZWBvexb;*W!F{ z5qL-Qjcy!o%>WGVgd6T0WulpB9vH*HiVTWI03(V<e8v3kh#Hw+j03|5y~#00n&iPd zu8j^j%Pgp{9^C8AYi9b>9(Ol4y~hoFC?)7TeTKE3bJLqib<DCcEHH7*@4>?2_mMt% z%N!c?nM=<JCDpq-)n9&cHCZ~pGrVVR&)QczY1giGI@62iu{k>Hq#5fCl%PMpjP#^s zq$Tr-I`Ohl4J|>yH*l=JS-`OXzVX=@(W&ME9yGkCA=TOu$FoO@5g~u;aZTsR&mQom z{X8JoM<0PtJL!L5lu(8M0e0BJQ8ehOf;}OGB`e6uQD_gQiP&Iq+%KkO$Ku{dK9|r6 zF<q1A&q(J~OpNVAgKTo2KL44KF^2`+<kEfTT3E(rOiy{&4#M@&P@%g5ITN?K^k4cx zgIezpP$##ok<$KUOlg}&jXa8pqVP@#Y|^n&^p&*e=FWk(P}Otr)_HW4b({I`D1sqg zs!%aKjn$XcOkwWVjlldd)6CgE0eM%LgWyi;B*uV}$B~$`yb;XD@Lxp~FX8~lBw<IY zf4TdYkM6zClhdxiX4aigiCmLTi~sAm_Y{oIs25b%cPq2(-D2m&_@XnVr#jk6_{7QD z2CgHf{hdd--0WN;Tr51JS;FX45z{2pStMW6lwoIQ13GP_`fjiGkL}u@MV{~eHG6&^ zQvE6ac6NRh*B3i)I}nd19y);%6X0&%Sj1Z}9Q>H^P+zNk@?4`c)A_$+glt1L%zxHC zv2pyA;o@Ouw2~E$>AO62Zp~-*G{&{-*Pl7gXzI_c@hRH$+%s7i=RdDAXeR9^4HiE) z-?O&NxkKzCs<5cYhY1ND78~dO#Gy?*JyZKRx=Bv^1ebs;Bg`GRz7}@sjpY8<+h2Wt zb$trUtpxjxTR`CSP44kmW8uoW<=poiKaw>(&bH!aqqAu!TeLg|q7ZFl%t-8J=E17H z2VKD8<=1zHSSMV1eCzFHlMLTkSibQJ^sl}YD5@+I2j_3Ty1Xr7`ZBAqxx9eM0^u*L z$S}Tem^*7{%IuPUa%)~rqVuwN!m&x)_E+5erj_hICwR3^IHsjhdV-+3MYmdu3yc3< z-IE+8PS`)cunE1`%!_TG#fb?ur9q;c3n}&bC1c^cUuy*EGZSPohHZzJY;<q?=r9#6 zn%TH3VZf9-Z*0G5(m?CR!m?%UEG#1t)SKH2%fIBeL!2=t7Xi`IeD*^s+?g!1RT&an zraF+)pwU{zIApkS0w&yem83SCCu#$FCL-NdR5)Hij}^26{QWtpE#)?x(FWZ7ZlPkS zikK#ht2h4#I)o2bf9CUr7o*us-BGvlGgUyEc5~0oOH<9bV_xNF5&0Z~$@pZ?190K^ zhCFUy#vTmCF6$l+FuN0zA`90AtJQ~3L8=)O<%z{+GRZzsniM=hyjbLz#anUmx~#Y; zsV7|ShqP{GUPbrseDlM1w?4mf6?y^}<=&~Ow~>y)oDnz7{a-TSR3-&6tUgBcAQ8=F zu2~cd<#QesKftWxx*tGhYRwk2?S^*4g@iY)isoe=)-M80k?A&BY|deUw$D4yv|7;w zSct`TrDFCkaDl2!<ZKZkQq`hClo^?c9o{rkNb>=6PGXy1RSZ6P*$Y`&LKdcF52Qv? zS*c=CLq#lJh1h^)Li^U)LS>m3L|xpGX>(n6(!9dyKZ^>d6j<^b$dQ<UDCNlu#4D5j za@5u)pD$jtmS4MuEG3jF)L}?u)Hw545KS)=XiOl7uHbr-m;&iZjxA|!)@R5x0WC83 zv%p@M&S*)HZ<=Pc!D2MxN3&C9(qW~Z6FE$Cfxk$=OjF_>!MT0j%|)WH8k^4B`GHN( z80vX`u_fQgPocI}PjG+H7HFr%{Isoy4~l!BTscHxY$>ER`j#+G=<9++7Lk|rVy^xA zg-KNmRv6QR_t1(q8d8l464R~u#K+^m0aBoXSqgGc3q8Kx^E0)R<hmU>)%?MHTFfv% zgnB(YOnlv)X{R&h(h1;DIK!&RFQ!}%N`&jd1Dy~)35}efC8-_u4~XNGTzAi6=2Y6C z8ORX=dE~IMvn*^h95GUZ3Zjw6%G}UHVaV+)<O{xY@d#FI0v&claL@6=8+@tapMrCt zs^SvSniT76etdxkhKv<^Ej`8y`t}tY`!{sk4#K8O#n~_IGW50mpPI$)E$!`i2>5zI zRbsY?r8nMu>+RLIDsQI->ebal75X(y;(`1(T0{$`IQs&e!Kx=zR<+{HK&5;L-IdkL zJ3Fu9kD|P%<h9M^?S=JFGnwj}Kd9mZRV=47fBL;@JU}VVX2S=ZnAl0G-^vk9+8kfP zS6-?}gCLud{Fxe?6?&`=;jbd)gVuAMEVjC%^FNy#n~q$*n$0x#PIcui<HS~fp(=@V zZF^EIZUmuNW2cf>0yM=rIeM{awVFMd+95w4g?q_EsfNm0P51Gm)6g1D<VZP1-sa{v zJgHQ@`_1YbtMKsN`Btm)W})p?v+{-|u)lg194m%bHpE^9n(c@bluc<6nP|%jQBeXn z?gZ5TiZ7~j>_kC;LRbS+{Re$StBHK&zIiz0q{In^#?MGP89QP@r{^le;;xCy8VoH6 z1KKsKG_L#OlL29FVEDKAFGi*ye{F(kCprV3L94J0;HCs;XOSu6Xkti)v^v`s@PQGl z0RLDxb1=&_EUda2gzlBF!ZEi7TY*?BRtt=_kv?OOa~pDiJ8gza9}ZCKdCe(Eo=y#| zL?ng6?Ds<_>=(V}>%#Ci^krS$g3;^u1Ad4o34iz}uV(9_C)r+DNV09QekJPG(=JEN zH_Btb!y$=)op6NknKK(_LztAGrdf8g03$z#8rcugrq=uJ;r2dU<;VVxr|i=0H#PLP zmW?>Pr@?n*ztNm@@54ayyZMb+-FkD4uLLQy(b*G;VQq+M61vK+6s-e>CAm}1&Ofq8 zTKFJJ#PiQFDFs)}<|}(Oife;Ualog4mY185JTw)79B1BClNP?Y`}&bU@a6(Tl?u(w z!Zs#|G{54Xnej$*Pq3&dhsb2>{Qd6*m{{W73nWgRVDc1^pSshtkg48Sk{u?(tkg*q zEmDB$NU4Xxjk-lUE@p9cg8d}JBEi~LrhtQW!tE=u25C0ebkJ!!J!Zj;$jt5q+7ZBJ z<Yguuaq^WvkveN4q)^wXIMeB*3pLIKaOeo3;z2TDSnJ(5A118{%1Lw!Wj^+8<Gg<d z^>d?P63;urNanB6GUCBJ0ecDT0WC{y$5E$-h^K%y0znSaaccfW2(xAawX!&HwMKjm zZOrnzv!jM`Max!}altw8wa)v3J})TZ^}cKZY2C!i)@xEc)!VPJ*k7%n^Qd<OE5}^k z#l$o5wyp!L(lhf~w>qh2l0o3Sg9SOyh{tDT)j+0V7v&N;ZF!`KYq`iq(+BYK5O)ST zqa_i2kocxJ>V3|~b1ri}uo$<zZox1{jpQti(ek1pka;L}UpAO^-V%glLdE(KAS8$h zGb5SH9kc^VrMU@k%Z=Nu`+{LEaRxB7j*H7=8a!I!(;%7!5EocDbd`!i`F)^cJnB4Y zG%c$zEH5mSrlqr%e+t9xFp)AR=#|F7Y>pm&tRUF;-P4y1>~&cojcSN~LpP+Av-j0k zR>ci=S6_999&wQP^sJcbmT7KOUV&5fB>^$f8x!7bFH{Uycpy`2g;i8p30fWGUFqA{ zIx0)1F8a+vWr<zWxZozww!d;)1mwsTTjyKrjqBt<v1Z#ebkf_&SVKQOfo;eV#7(On z{a9U6_watBvcyRuF{n$|R$p7aWCtR22m<E4+(e5CWHVMHY7J@JI@r{y3fT15yy2Fa z0XNM{)|=&PtKw>rm%RLDeW8NL&hd4tj@QMdKUZEgkp&LjZXf8rBq}4OzAi13R9XlS zm8F-LF4`dwF3pLb0rA1jSJrc0QX*4)X6>~blpbn5wl+WCP?cJG(SgM`JNqm3V=zqE z<2+?nU>melQQKsiprQ^lU|Nc14K$gvjAxj{CNT5OU{aJx)74a||B7o!g9?rM@)(== z)e0)*YW$o6^h=#xMWKld5Jww_q~J>y$|uqr0>_pWpe66{&V?l{2ry0Oigt#klm-ii zH%w~e)24414XK=4AB24u`e=6F7L4El2+cb<1IH+iNMB5;xUE_*>dVr?2i{6bAfxhy zAiWm+LsYVK7_+Qq4zP;88?H($Xqatq@%ynsIH&r%R=?)gO-Ui0opsE5(hvplR-!UX z>nUegubK}7LuqkSmK%DEF_E%Ya-^bSRNX}oNZ4&!_{p*;R?+b*1Jb^ejSXOB394xo zO!hZ;MBWZ;BmQJz(I|;ir=M-FE}9a*t=nFVnL)Y`57YXA`7)|v)_ivO%j+w00x-_9 zLX9hOZK}6MRJeGvvT}1}#hYu!E<Rb%VJOd<U%?_K^t{>py~;arS-f3&HTU}J9f}d$ zLeu~<B!(E7z}jxBLgB#5B4Hw_K}$5uBJzz-e4H-!aP!{cUWijTig=qtINMZQh3T## zr!YmfF=;qWbxF9Sj*IO$TCf`9$)2>BbTfwk#wayREz?}wMsUlFUTNmMERLz;R9^M> ze2pV4i<p2*Y3>xAkYu&VG;PAA6LlV<-Z}rCh@sK2h>#H?L64XM#s*s&ovVno7e|?0 z1R{&{hc>KfaRMA(T5YkJ+zNCO6(N;zRkN6fz^U$^;;1Vpy&M-|W|gddA3UfQyb$;` zqK{^#IADV45vT(#D(q}p?>L+%2Aoe4?qhH_J#7-5pKA@VpjeLJ8IJ-jkK)(_N%98} z<N<@*q+yy(*!6=GZod(sMPWF7>Xg8fr+e_$DXa>!8jkpME^*S&_BiWMS6gDexwWwL z#^N1JhlWz?3(I%35=2!u|HSte`h#IcAUQ%d+=l+Lav-JYDw21X>XYySS*?Ds9)>nH z`k!?xXk2o}8C<z134$e4T?T1ks=^UK_axmL9iOqC{ryz_80n_dAkxA}fRH6W+_T|f z2ApD-;ycZvt-wud!kojpnx8J}9l=7+9jSO4b#W(VFa-?N^-tei#+ZKlt@EoF9Vqf5 zT79K*(crngP`P+x1!!{2Qw&<W@-pCA;j_VX#de){jT-?YK#c{F()cKrM#RdPt4?J_ zj7H^>IrXl-e#1_Tb}O%MUtWE)0>N)=irjU^91*?40a4L9W^(ndZH|ye6=-Wgs?Pk} zaoymM+*S0musS@8do%^7nr^{1n!ePhy7Fd?CZv)yE-Q3NDx(Jcrx>25@s~}Q&>NRa zRhlu_iW;xRa2uwP?N(m7EbcY7Zndq_hgS;PO7kxT#c|G_^6^aNja+PjT0UHGkVeqe z2+_(rI7D25ca0q8-4Ad)ynEdu`(D3?-(lv)oZ%P3uPTHavp@uPLXw2(1z9J07B|-f zy^>Co>Tb>26WxLuG^cYIiL5a-CGj*imv36n1(7#q%H2|92J+l_Qr$kakICEy5Vco& zor<Fe(TNUITbr%mK}7t^9~4Egu-+`TAjUwLy!)y+U5QuCLmR-H^d2XJc(-e|2wlUM zD_}ItwYkAGMRaNrRuP*omgK<K#sk_J67A)-C{2H9YI-e+*7BF2Q++*O#uNwQaa0Bh zAEJI)87+>^c`s9WO(&nbKdfAGe6@=dH&<BxkSo=yrEr@LG#i%Kv_w`S{rX19EzgCW zkdxZRVbrxQWh1BV%3HEzv>qsD$CW%XHPkyJrRcne?+yUbjAiUO;K}KpJamOQ+%v=m z=11f~XeqtJN%;&~u=ajlv-+-#y~Nuan@ZE1>2(dNR~3reOG2DcPt8@sP#RLH6OVn4 zY9fdw^K}=LEvj-uBdGK2G?l-aqSPM^PYM{M_VW?#^f9a_*VBf;&Y>Y?FT~f&R~EEE zir$@DH*6&V%|Wq7*L}yj&E(f3MTP;T1Nx>|?Ez%%_Lx9a%2+=o*>LenJQ0xJY@UVC z;PMxFEVkGXv#=NhE@U)mHfA&(a9AR27+;unIHEI%jI9k(`jyL=iVVZWEOWBE8qf3q ztog_ouII_&O+YM4xupB=L&tzFezj0Xlc;_L79xEOR&~#;J%H5!2k3Sz%1qN764S}W z=Ppt`pigKabJ!<9>n&Yl7w#X-?Ko3Yy%+MO^UQj;U?jG><!DF3HCQVDH8lgCI>gKf z-Zpx9x$@G=MSW6E5xe1XMQnq%=8Kh={>)<&o8rOkFk@(Eed-!^a79GUDH9KoBH_Xx z@<iiEqZ?D~d^4rkj@i~Ph<WkHl~-0IV_EXb$_n;_@O;rXZ!rO{Ww|dorBo#=Z>*T5 zQqQj{T16=McHj_{<rgbSnhxnB#RO3C$C{ITNNG*n({@4gZ^$$H!iS&{Da^0kMNzIg z-8U5ih3royX|rttlnNiR0Dr0~5J2a1QzXq^!94D%34vL?r+QDf^{Fpe^|@%S6!g`` zLoSYS+P)f2tBk$SZ;_Y=mMN%c!}q5$3CfejhUMj{LR^_N&!Fr@1(#ug#f6KCB=tEc zV?uAGL?d-ZEUNrkzIH8;c0!qN?<&?u9Qq7RRL?SmCCmcU@-neat@{E;YK_}Q^IGSc zokcM{ae9wD>nRItz(TbOWbURCZ{WrB%EXE0NY-aapfW@#+*jYv^5|YgSTMc&$!_gh z0mF9tgq`c3^K<&*1C%R_Tpo#b>Li3Hi*cU&1I2^3oN?Parx0F2qB2DLP?zhdF3G2% z@t_PKiciSGu{~vxx&EAlSx;B*La9)K<9y1;l{VZ1V$q~SjcG^Eg^re0hIYntpOvQr z?P9CLu%#@sp}Bw$$5-z_VYq`F@osU!b?*0r3h4FQZ!F*58Jg&8)?@UFLyjLos&UkS z>b{3O2*tg+a6j&e^j`<4LjPI#+zG;!2*5u)MSHOK;#p^|qSbTWsj@lgnF0}eKs(?! z>SvDe=&IG^{+;i?`||7C!3|X)b}OoJ<-xjsA8ho6bk+FxP-NqrMXgKqEga9a3uFww z3XG%r16J`C<#O&IIZN)Fao3KSftpu06k+^+AdbaPI>;H$c!pTxX@eGC*b8y~uvqMz zUC{MVVIX$<h<8UloGBdB=@Ym_wXvd&gsV`<bH8kO1}fuo_a|HhGpBDH)tCQopDV)l zrbQQb>P^MCh;K=Dym!`!qbMWQg0ltK<cG`m{|i)WnrZ)AHvF)i8>?Wx9Ge(H8ckGk z$UDQ!|Kz3q{^Iub1!3h!7#niwJfp$8yr(=?!52c_Mnloty3PM5T0mmzc21)cn26yk zVoov#$1>oA<m?b!`-P%3&T@1q5;mDNpNAQiv=rHpEF?Y@>)`9W1wD5K#N)Irn6)6I zZe1fl^~9L+ur(<ns-yRBKL69z80cC!eZ=vXeLp=6e^Epo;rE1?B^JMsn4cn__c3bz zJw|HG1X-Cnb8ShCrAeD@CYlqE5TKS+fHLhvi=1y8;ttIec3#guOKpxE61NK=lCPFm z?EfB9oBAR0x{lT2y_y?97LYf{X1T)J>J_~^M>N{4uAP-BdUx7bEaZITVGS{T5a=;M z4UI-a$a{BslzMsyi6Cx1=cD1dCl70iZ=W$Sf%|@N((mtc;n%b!yuc4-JFwe&JEs25 z;?$V7ORFHTjNS+P%biwv&I)+U@-z)Zkm<_SEgR-uh}0+L7KTTyBY(2_YF{wxU`RP| z=(vHh9$9KUkj$)d{_^T21$Z;hc4-moUsT>OHHPWIT&D<=&KD2i?S{}VDwnh!wQ+|p z6q1f1C?aPT;%oQM<}Fz+X{R<~a}o`+=9={{c&`V;NyBWbk|U%H^tUKX<kTBMbZB-e zZ(^N!%Mf}UZeG%+i3_g$AZ3%9Y<}{ww+)ZQ31vKbz*QEb%>d-t4s)kDGa1dwO}j|V z7Wtk}{&exsYT%q81lTL{6PDWVHr1%fo73?F_>y<)<28`Tj8{)f2L>fp7Nk{Pr{z+3 zp=t4Tz9>!|De1M2x@<mckrh^<h}AUqi&n`q!6Q=HLT}+*B6`&}ClhlZi~c&A^N5({ zqhfOH|I2};F!>>Ri_a`QEl%bPjy@2uus{|43+~ReMwFhx>kGhcVb(oW7)H$Cisi(j zycW!=B5<iN6i8Dfbzy&On=88!ntJE8g(X|#SoooPwwnq%MgZkq5QvY(mQU-o{=}Pv zLL&!+ADbM{BaLa%Su+-hS(>NVZMyS(1hQQI1xRIDG;c3y{K_D6QIG*gFlGe0V38?= z6lPDeSSA5XSv@8RJ<q~%B$!3NEf#+Pe?vI_u=RFK_0n|DsW?%#ghIZs&TYL|&s3v= zbO`^d-&UtQwF=?>v;E10JtU0ShII_=Yg$FxeaeR@OiX`f|NVduVfyl#5i1&GBhjYf zSj?dKTw`%fLH_=N`2)(j`_xfsZDmxih@}#u2(RLc>4GgL=QM>S<<%r@PgapuQ}!0B zEv7w{?a0bLWpQPhiv1RDn`-`9?8j6EFR;9jv}yI&2~$>)h_m5qMxiyo$$Mr)<-|@f z^me5uCSI^{3vZZ2@Wsx7F&fx!B@+aGfnVo7m8bg!4k3-rWf=p-&aJ*BPc64b_^DC+ z%-F)+Q^rh^b?E?`c6b7Y7HRs|#tgMSSHAYLohVe|eJW;Az#pgy=Lm*IEWT5J8t;jb z)T&X>;To#;&Fmmi8!6#i9?ZJ(#IoUkRlQtUy}7a~PNNYIg$fEmwGfU{8N_B9PyC_; zWcLFwHNiiC&~I{&z3yA5R{ira46z2;WjG_1rz6oDLf0)un;%Aw{XSP^A@}5GIuz5y zo9l#g9eWQ4#Io@oN%?erIC|W}l|-ti6Gd&oFT$C5vHsjYz>zn{9@$dxhc;orZpvg} zC|-#AVpv1ZaxG@3%1(z?B39~mY@*?^V@id+Gs8^N$HsQE7)rvQW#^cE4`uG;*&GRD zt^((77^n3;L`^}bqKGR=IJkQp!8MEeXLZfyVMK7;Tqw3&k4}3&0t2N~SGPLI&xU$R zG{GCTw`wTLR|~u)ftqi|qnlT42a}1p)^EON+`!A^)b8foO@4kN+gGGtdP`ZgY!F-_ zV;V5-ERdI9?z)ykMfh;s2nWuJv`@q`n+mIaHZ}1&vfVCg-1e!k3a*EaM7)FIZ_VAu zrdi!=6LBfR_h4fTYzuf<;J47Lfk7w=lDR%TZIp4mdGn$9=cuQ%u*G(;T;&<dSMQja zrN#N3V{`hj*Y@JJ$?Bvcz;U$3Xyc|jZ|EeCLqj9s4YIuk(`d+ZsHsd5YxG4H=MMiQ z9O+l`SLeMneig%<+R{ylqV?+cOU6*HK7qEy7s*V>22?zZ)boH&OoGj;h>X_^C5p5# zcP=%U_j1QXMI7d$L{Lj)u#V)4%RT(Qpbafpi+=&}Hm=?`wB6CZv?jt2{wdbw@aD~% zJOVYgfY125dGqGyVZ9Y9P*HilJs3(Yath%^)$SoC)^x+rjNVMv&5sDqOnH^*DLto` z$E-=H_$0durdj6da;*fQ+3ikwT$}b?&kBWE$Q3QIkg=m#ky<XZjUo3b5Ogl)EuG-a z<q5^v#s0NU>ei|Pmpi|Uv@v%kN*#>Czi6SZvlqSyPsG>jYJ?{1)I+<9@EQhb`f_*Q z5%6dF<Z`^?C?ipR*2a&_MZ;*&;)uOzx#x(skCxPQ;$-Sg1)9}aI~F<IOV}A$(#!9f zyjw_zv5kA5u_bh~#M{m%${C^+5!iWMFPCiyb7Vw{W-?c?o`1)_5hzlKymvjFFj|_L zL^hVgV^<K$HYaY&MI+*8G?R1Z)((crds1wM02;{}28`RcKmYFY&yuSFnb+5gMxcUL z$=sx!lw_V&VwGz(Co7Rp-o62+Y)mCHYKJ9$ZgaYQ<Bi2P&GP;Up>Z^k;-Ont7nZkC zm4}Ep#!<HxKaozo-ZDiVM<DVajo4G(bRoi+R~BGdq5B7yb*8EFTZ_o5Ul>{K8*Lqg zkar)hI8<e-`|i%pLgh^y{p88lekfHS%}J5htaH-?Y&ZpV8mPK*NenS0vso8UgWj&w zvBOh5)!W{dKa!<w4R9u#PpCI>qy7aes@VzpKPAYYiTrKOOeCDthCfe)*kq^Piowg< zsQe;LCYLkrl}mCM)Us6g@MyQqw0l`h4l%DDb2+XI*9HW>Jlr#NJyvl&t7A>56A^-| z$!BD_4&~q?=MiSF6JwLtlc^-bz~C+QoBo*x&^&qIPTsgr>1HLxImR40s||wp71p3B zG@=8DmYtn=;Gw8*)5`GMfsA)CZ^B?s(vXlD$l<1P-gPFm?}sN)jfR3+^yY_zN{lD9 z6|UIQW2$x<VBXjt;H?J(iG8$q`(Zw(Y6xAJm9MC+oAMM?Y45q;1<b1`iwyyJJKD*& zbX&Rk(_o^!<FLuCUb8A9<mAoFCHI<K?$XsiVfentB`=1<3_`;cH2LB<aYn4kVzRdD zTg|RrWZ>OwhHlzOqS^d8`Z+ay*?wbcQ(L#}Ale(+MtDp<XYKm_BK|X+0&QQ?bKIF4 zocJ)$p$|>!Zm;Ph+@##OART^Vi|l_^6D^1=z4EHsGk06bFdi#k<cP23t!diLJ|JSr z8HZWI`;b}ZCU`@?h;w@JBH@PH7*5GysCCPEahwu~8;F7pi59b)3~ek|jJE&y$Js{z zFu`-+jOc7&k*DQgUs`iC=gZ6+r52%Lh&zB8_(Y+gk^1?;aU#8<y=EUm<bW^?>8{G- ziu&i&4%f$k799rLMAqXvgSdr3S?`!15{GTMPBdLKB_!VCY6d=MC=qU<Fs-_?BQ4=X z?hw1QPbOmor*vf%reyb&00yI>W#Kc=5fx~azocpjfiayz|7N`;-F{8!=QsPc8{JMb zH)>g16>mn?3codV{>alT|JRQ`?I{pQp9@g9#=XVq+&3E6lJD`uaU%MmyGI;kp}!`N z2YdYw1NxQmLk<!TpyLpJGx>1IJYtdULTM3sZ>0U04`6R!+%h!;mM1a&#yxXlaTVsK zA(UOG(1FR&HDvf7Kn+?orz@@j2@V0UFC1!zTo~hEBK(KKPijFKs33AWYTT0K+=X)K zg<xLB`iML3d~x3NkYA_{Nx(+0M6RUsRY=%o^9$uO2IP<AGBcw>+w<t$3J;x?l_le@ zq399YgLjQj(Sd`FsHCua+K%L+GE)gi{^EY?2%q{Zn68XWaRsDs&kANO2Z(2%(%jFd zNX$%(){AEu8gs71#%`pmHb<7wnsN`XTQ7*?T~B_i2$uKLF5>f|@ZCP%=f|pS9purg zvG}QYPHnWHoXEdJL{ecO7|m<V&8$DIEn6w_0&_Q|BRp&ItvEP!mQFfTPG(F|&Ek{= z0wQc|xxSGfvGgFRbbI{mfVIOL{veiK?_jNAG5A(r#_KlVDX)!}`J**pBXL<$qsdcH zUIT~9Q=a1~;9QvohyBRdv^?XNf+~6u+2)urOzq|tK|ceDDf(!{D&b<7i<BIM1<#V= zz>c&io3FoN5YmxOmYOE2E%h6svk5sHMig3nwm^O!iy~3Mo18nkfjYmbqm%442h@|E z{R%$C#)*6kkR7DZiJKnI!LF3>mAe=N$)ug+L}ZZZ!?8->kZMCCAj1Z(2?#!GzD7;+ z6=DsY8T&p3Mc4~n4eAOpRgmMzW7Cm7xOw=>4Hzs@?+Df@+>0M_yEcagL8)M0yqqq9 zun()*z`HX?Gw4f>>1=fg44>{K*CNvy%ENAM<Rs(oKL6bhUw-%bo#fZw5Mr|S<=0<+ zpO=yqxSO^!NolfP7MLT$1me87q>OwFc1Vhbdo;P(coBTlApV4+VITNx`v$i_O3ZEj zMxrOXfyvOwp)Nze$|qea!k11IqQfO5a5TBEwpma^Dn(x=K$zBd`wtYB+}t$FGR$*V zD%WOnslrh^@kOgU)f=l<5LLHttiHpS7LV6f-=)ds>U%~Vy8pFMxmtPWSD&t~RXAQJ zc~?I5>^PNoxP4&dJ#A!7zg9=S`TEqYyr+pKt4sYf9E4sQQmcz}tUZbhU5?!e^~2)_ zJR&}ms@M&(X(jvt3M(H}WXF<NfV8dXFSe0N-&rRwQ5!z2yt}e-yz)`yot3MV_f{@e z>MI;%f4OpHrCC|CYFk{}SfL@=+B+)6<-4|MiG>^=q6ER+)ZtS~2wNLJQ}?38o(2%e z`B4;63P;@s#Kk7ss;=p@gPlQ?cY|6K+|!!!E*Uu~-i3j+>(9zJCAZHK<)2rKe@0`- z^r>`GkeA&L$sAS*Av@G{!uwUNHTHY49?fSt@v@$cC80=qLkDIZUL%2e5n+X5=Ha5+ z<a}rjd*LPJ35v-%rEi)YWo;Nh3{R8H7_}PHSxk26m>W$wV%xzeFs#y?L*}qqr5c|A z7s`5i>~5+W(9m6KD@$GF_jEuiGVNzW_VO8l=;#b^VFNvuW_mOseTW6Ut2PF8w-ClA zw;#7QH|rUphU34(>BP8c0Gp|8L-U;9GA^*H<slP!jFjU{I~ljMfD+j$gLbFc*vd7& zm0ix_hhC?hQaxP^g420_cOF4%Y%O@nuIWjJcBj>D$2N)#hldw6Zo{m@UW<ETx*TEL zS8M5V<k8*yjMdsVKeIX7?v3BP*XB6@c(zlfo;Uqz&l@k))_8JV$REvM;!FV5h(uee zb8G25r517hPpcv9t<ot*Ho{=6i@-+&h;sKu2T<!0k`-jx9Ds?)XS>HsP-r)3@r%#K z1;2PGm>1YsQy7|NBXx+3ypd56jStYp&IIBjdQ#SM<#+)n+~zM#*)lVfuP-;abWT!l zsBkl&aP&lX><&Z>$2De!<IYEe;VD59oWjscH$BZM5+VW0lmA&+^R-W9_D1Cvampo> zCrQ0*@GADTmTMPuibKdb?}JLZcS-A&f33x(o5t;E$)vfJ$L=M~c_tRy8Rr_B>3CFv zV4+)v!D8ieksYtNL<9T24PLcY7M8X}P6z_HbVE6RYkPYZyrFIUX)E&JT5I#0w4>tX z3lZssGs#7IP^_jf^%i0y1yY!qXTdULdloqJNbqcc7P_T18hhov31L6P#TMpu3QC1~ zxR3g|0YcctIIw?T>-A?hUtEif+;Qpq3pgX_LM<3%9ZDyj-tvu$Tow&7wZ(xNw`*>` z!lt%i(=s33wB=5*?Hn?dm)#WPN*$SpVae<<xsDlw1U3vPjJZfb;Q(dk4QISXz%EH- z-Ji+z47R&!(E>EFsc;$3ip$k%tZT?ikz|$bz(s4)m~jc+{afFB_0{&*pXuxny1GDF z#Q}&WPi_Cx#F?&#%yilALg-v35ZNcDq2p<1C{c;9Og03jK$C*lZjx4-YEu<bHNa4% z=(kQ&m72AX?^9{6z(PvqO0=X3BXUsl<6Lo1t0sQB%`aZ8nu_;iuvg9TLz~1Kv4f8= zf7w}>bX(CL5)Xz&9ArFZok=)*CvM2xJhUrn95da}Vh9e?swk8Jh!A%>!b-RYoS%Nl zwO0!_!&m9=v<G<F#R$0qO7)-Y^^a2(qT^P_qV!303R+X!(KnYa%LxD*tcK9xeEx9R zJ)-sa3ZHadD+*V|ommHY6x5h_96>NBwrgjR;z%P~n0CAXTfOY!ngVcQWjg+XDWu>- z7E!x9>wd)oYSW`*ycbz>c;!tV7I}&(G|zHlXxaM_!%pnBFV--=6yuFk^nggSk$Ad7 zUFr4!1z<R47SJ|_pn0s^nsus)I{<YMi9I`ZE{Bo`<l(4pc55_yMd7MZXVTt7!4>Fa zTj~xAfdq%gv#A{UzN{tO@q?tUdgoc{wXV|KZ1W1Qgb5UaSV*Q8inA@!TEA5Njpo<- z{;9r4N#2g{!!5ckFbWVZJ_SqL9KEBk0?JUP05S**&{@dikV8yOo`;-KIEbxt=(C%_ zQxuwk6m%yij0XHrJJZgDB$jlhVm*k&fPOi>#5GwXn=1gAHZ)$d7JbBkQO-P&nW3Hw z1(+4~%#@|K8D|eQ>iy2beHOeaa!@~85?q<<uFi)X%wAqz$pJiywb5fBH#5<T#s~)E zG%;XmPs{YuZVt_qDj5XhISOo+Yika!*?{Acw|4TqsT5GtACEB2h7;SdU+JNFEfZQe zI6T{X*x&mRS-)U`t?8t6Dhot|z*fE4p1KHpd^Vi)o^V?y)!?#$Gscg>ojdX`S|Cj= zI@>}Zxh$rzh45=Gg0iTKfstUPwI&KIwLYH}LrV#=fva4{=Y}Vx*iOr{9lh*)8EY^{ zo>?`hwX_DDI@!U<#=m-7dqL|HYB0|pH7PxzTf00@!}3@wmPf59Pc!E%W;!Ck>S3)5 zYt@p<x9&dI90cW866&>Wh2^?m(*djA{v(W(@tf#_O`N!2)H=eH*d6Oz$S&4WU%l{Q z?`U_Q3t>rII~^hwrWejcI<wCenYDq`(ik~)6{$5JLJX;KLxA+57M86YBek1cxr;52 zaL?Bl9118Du@{P{pyGdjPRw1?VOEa)2^`NXVq30mm=X-GT#W;oF%Cf>2aVL@U5SIS zal8Slb3i`_4Cd5Y@~339MGsFueIC59MbX^nAn1!l+1hq2*;bX<9x!|J%0&=$1_g^6 z1*!G~W5q=?c$b9Dy!aNV0%I`!Wl=Q|D}nZ-K}ydOJ0a;><iMf?S`su=>pXJeaw9e$ z94x*D$u&=)$F}yoTfQM$1be$?Iw*QK&i!Dg!!34(>0j;__DE9>+X?f4qS}j-C~gLh z$w*~>XLXgbt(7b9BpXQw&+)G4qAl=PI)=Wt1&;&mR1LaPSW!**Q0V_t{3LBJDKNdM zyFe>JX9X3r5Cz0qv#qRYKKnWg3WdZ@?~W%e8C`M)Rgfc4TX%_#6jvlL5>lhJ`45mx zqk;Jkx^=19bOMj9$h;)=J=X4Lm&v2VSaTsU)|w_pLx@-HPE@}ajTY%{nmx(Fq-$&N zD_V?<KhX%qgURvIlrcQJtAsx3XcBK)F0E6&%L>zcq^GuTFY7!8+lz8Z%rVbY+r^`$ z!3^h9^BP^@@a%DSsmbU8(ofX5bLn;;feZy4AznGP<SU6)E?WL@H2P5)BeUxXWQkl* z_9<)voE%7Ho~hiqZ}IjHbarXB@><O4v9xy88TNsx0ebns^I4DSU|{cNWoNN^uIZXM zj^*Fx9G>Y7&oaA?R!V89ziadsgHE+S<PY?>>UvyTqj*^oW+AdqF+f<S-oA!C!2Htf z#^jPYL9=?*=M0Y2R_V1?@`Yvws5l(qtI$`9MaOUpwS1(<S+r&2+}E<TjF8EW#vJe( z>ne4~R)NrXJe6?8_r|&V5fg~R$dHls35R=lc$P?5Bo6(A;3#X~i&F7FaR%A@Wj==6 zGcZR2G~Ng<*Ru(j!#zjE8tq0$RIC^diIoy`sXSl`^`kOc4@`O*)j~Z!8enR2+Bl6f zNj2HNWtaNmK`xlKTLgF^=1{Qs%z~Y*7>>D?B-d#yI_jNq<#i?$G><PE=YByt8dfi- zS49pq08s~Z{;2o2w6i{ral!xw-kq{K-srAQCIn8n)7b2!AvorMH`f9{o`S1bS$FB= zL5!|-k6+)prx@Yvv_cxz`6=7Y^aLP#rz74wh5I_fZnk&WgP=r&Ngf=IcDX5Iy0Foj zYHruP?K!unS0pGIH{YG%oxaDrf-mshcWw(;9fvss#KD$<nPfaZ74;cn>2jJrF~9Hh zCwA9QaRIqE7E5G*go;r9-xHikLJ**jxl+kvWBI@p=ot0{R?>TC_Ryj9I`=>Cjn9%> z2A;t`>>%h>uCioxX#uim<<~m&sN(nMk7c8ZlQO4M1DwSu<rc?vF-K{<eVd6aMaE3K zmGZg=>@Um(ajVac6+LVuSsG&(=a`WB2=4m5Z!xpx1Byl09k0h5=l&qY5Ic-)-`n5a z{xHl|@{}2c$@=cLXpNszd({8<oVn*eM#TLv2|TZpB|IXXlH<Wk;IQ9v_$qBd(6fa! zI5-z791&?<_tpbo)(HMGvj&hN6o%{kSdzya5$HoL=MaRe$>Y)K;XWv#zMT^;&dBSC zcSN)`vx}dI+TzN_|I>Xb5~8{DU(|G`99q{oG>cE&DsX7{2*aT@8X1RX_Z~nM!m4*q z8WT1H-;_^rrpZ%aW40i6VwZ|#Eya1RP}WlNW#QctF=yBq8Vw6Wy@v+u#>*$me<wvJ zR$!OzsP@2>(b!!-uX0xemfD*N*QT2qvP*^AHy3oV9m;R`Gpk}qW{c3)9O=m%lElBk zk->=>|AtdfTi+z!2Zj<3*7!LQaAWE8>MUK%O$WGO+1emUdb*aP*x(&VG$1bcup>k2 zor0~ULz>Uq&7WbGQ&Kj$P2=H<a)OZobUw^Qk{sRk9eZx4(Ak*q$z`BnwI_s`+OHkx z&RF9N<`;D(P%QSsE$<yYd>G@4Sxa7%2YwNYF%28WrA-?zyNuPG-@j*cKXRD!D|jA8 zGu<8N+sTi$-dG}T#(v(OyXU<K7ut?2M6<JnckPRCp<DIm;zH*FfslUxcQB)KdpO0D z>Zrz3cv7f?D1@D!)4i=G>4|#9iy-E=WVeeIxz@Rvjs3BZd8n`9US(6C!}V#e$Kb&Q z7J~`wh;ZMzzo#&3Gjs!{T*>P3CZnxxdcP~RnsLH*kmy3-d1oxbQb8S*P{f;}2w<$L z2r>WCdnlvg)!j)&Lv?`o*-ZdC<94LM;c(AWc+MyV&8k%N0EJLC6?5k<rG-8XnaOj0 ziD^2TYO>jcJg5L5?feog%Z--+3id?aiSm51WILt2YGo#ppSnHiKAXDSwS#WkHc4LO zRL0K77NyN9yq<prmUCNJtk}`+3et_%`}w_&#GBve*qTZRHVei%fg$%Oj83V$?pT~r zR8)NiCK$yJCLTL&K7TONQ*gD6I9KPEF07Whx!hurqDOAc_@sdE7liQqb6kgQGSP8< zjd2R*=a?Rs;F(vYOzU&z*H+lIpAWEwBFX;(po$a7U}>b|IJMYha&82s7J2l;nm^D8 z*pwvvuZEIF@j}2M%5!5g`Ss!1__&X_g+`t5x5V_Qp_*|K!w&yTO*EJwNu7*z!^1}M z1HQN?lhdIN`yQTscn-N#mJwIGr9P@iBaa^r@c1x=kGXNXh5vr4W6$Dsvdx=vC})Z5 zJsJ&&&lr0bTBnPMP{>qlDEX#nWVf%L20zB4*n`?9Ry4!d$7(5T7g{|*ZETtisgr_= zm8bM1YuS=zP*iN3l5R7Yko<FQfLcY*vS#JXwmI`nFlMO&+0%kSD?63d>DIe>?_p#l zw2G%kuIQpppa}Sof{ztHRYI=arAwAwbXVLM2ZW`c<I6eOM`TcAKIK>&19)d9Q=fZ_ zliV8)M`xOa-990cxl(&-8oVDlD3sP608SU&i_U@99gfio>iLBHygv`*<FFY_-g5SA z(07QAE&j>0uw3qO$4<+8{9KQhV{vILGO+CrOhzxFa%S{VQ0gh@dH!$!e@28GKYkuu z)Bt6+5x@lC26fq@+88<qrJWL&KKDI7>=_94O4Z)ZKdOi^h2nRw>egqU5u;)Azx_IF zF~%8r2Sh47HjX$>vr-y9p{Gcy%!}u$>4q4Xxxa@XI{Ffz-nVa>rnQ_~5jM;`8|e{u z&?v>Y%$@EQw*GtKy<=dQ62N8#)@fuM89e|s6%T8_|0FQMR1uk2`j>k6E8m!mVKbKg z#2qDqp2{5meJ12XhfHrKB?t}RHQ@e^yPDBhG@9pk#Zgs$9s+{4R^h@bKmP-8ZCw|O zWzn2bdRQFYkY*ZJv1E;xr95cKwAALFUV<21+&TDOPCw0;7S0pEW~Ws9S6S@?)!vl} zF00+rX4ZbASo;lgLuzft2pnPD!FehL6h3DWX2~EN+wjZQsyjP>{bdzKLf%$5>5Pay zLE75R&iL`p&OiD2>(0*l2ju!hx#0eKCwmWT3eoepcfwV5e$QYy(TF=D9#<pcQ%*$Q zvi#67%We~LFWHo=P?*!fkjS`@Ho^kL=ovXA$mo-%(WEw<>j9i#X74&z4Dc@sn08S9 z<^?WIWb)pWY^NlYI85;3HgDW}$j#H?Zdk6vBVX4QXII{OTgSi}^;Hses!V=dogavS zazJfdSfUe>KF{2ryL|rUtBWLri_?PcYQ+k*Wh-se)0l+?qz1)Phn_HHB>6EF!)ey5 zkiY2j0n0qg6U26)r>zPs_^Pzb+#``rO@q_z-1@Tvr)oj2@!Es)z}F_BcffkX>?U@| zPv%qhYAqccW;98L$^35i_u=R?8`YbF<^{3@gHUd=pKH)TlCZl68`$MKn_X~`trX5F z-ofBE%g>1<Z&?26^}iUB|Me4)eB=F3LHtjzYekUy4oNtZcAgER9NX$cSM+{&8^t~F zh6jCbuPiKDu(|f?!pWlRMS+Zo4C_lKwY>y5+Digh>T~VGEYF<zq$qSo(A;Hm6>b;- z9cIkrEGIdGdrBP4l|S>f4nPJ&!`TQl(V9jZ9zjRxF6wCJ(?;PJmi~5O5z&@q6K-Ax z0fx7C4vdg~?mFKO7tWj9+pMXuSUHO(%1$?|{Jetf<olh6!0p&cQ81{{CSe==sa|9e z2kdG7Tvh0r*$)CPWnrM$_6Rl<Aeb8>E3M#0nXbItaA!gE=_CpjhTmH`g}&6E!|u>X z%q3I4hX~g-qvkxt1`UNx%|#S<5^*oNCR{A4SUd=G7&}?RuC5028{=AbW_*m}N$gSv z6?~IG9QN@tVNRKWa+MiPHohG);A^?S9f$#(-6dQ$3sK}=Y*<*P;-0?-cY^R^gPKBm z^rYDsf9k+<jsDAn&+7PT02reJb1S+dl!C%OHyoy?A9b=j@~wGwz-=Elg-3)XHB<dD zuF+0T^N4#jr``$WaPxb9Oqw3VzYN!@s><Mn+c3?m9L0`yM~CsMVXz*Q2O>qEmT&|p zcc4d+3=2ieD<ycR%W5J<)L#=BUY!FqWssJM2d?PEAmvb0V@~zXXOA-ov*ISIUpbA8 za)9}(`)MA0$4{1T*iNzxL9DlkY`blIridl~L^Ng2GZ)v^$EwJzc9$=%qbQ_A`$*pB z&4wu(zZRp^lqb4V?j!PBh&lIf9b{QsyZY2w{0)E2hpOHbFGdP~INwOkmf)s3J`Lj; z(Hu-LF=1UYc||B?qV0jJ%H8^8V!~+mZ$uh$OO)kxGyg7(=m3d$aBv3Kw43{$pM)ym z_ld%MFebv3d5{$S`+>V1y${#5u)PFM#hh}r&%q|zXvCwK0X_6T>pHdL+2hu-VBe1{ zGAwVv7u%AHov{+&qn~pcj{IP-6w}dDn`M--&ndfI{maK6f1KRz5Bn#&=h|d3jZ%TH zFq^}_Y`ibNrNozWKGu7hHdzcNtD{lAfN{5Z|Fdsyy<bf%bmOf&Xis-f<l>mz3M73N za}?lTtUg^0IufF&x-H{!5W(2&GgSk)4{Kq&NC31;tu%Mwd`)Tdvt@JnQp!#l=ifb6 zOmv;Yp*~4^CP2rRcqUf?jocz0zexJ(A`8kp(aXyEEOReCY;Jah;T~zN-jaOA+8|1F z6P=U-p3_J$VOt;!8M`g58>?^X+D$j%f6Yf<8^6<2<GiAY#IClY)mp`IFQg3_vm2Yj z%5F~u+*D3=4U5tkdnXGv6`^n7a3A@+gBY@72iwl8TL-ahD{#czKGLC<+JX*g_zhL~ z?4BYB#hyaHtjxU5+Q{0P8;uN63q=!xLUU8*dv&WVgT6zh@=kcvh@(Vhj2@B0k0a)y zbkv<}T-0_tk?JAfP;QShlzxH>3(8dmi<FWqTgwl^sv->3<5(xFK~1n6)=IeNHv}*W zx=ZlE(7{wOsZf|<$27Y2;~?c&bdY5o?aW|Epcww{vF6a6;(r*(Uv%2H?waGvgyk#u zCg@(|3lYph{ZZVJZ#_npxJ%i})w0);t@cvqWV{`fii4w~OD6ZL>3UA8w?Z%nG-3OF zIuuE?jv2bA)QG4#)vLHu?cg?9SmjahKTBJ}@qf>PnmKjH4UBPwr2am>PC9>itj<_0 zeEO(gPcD@;pQch8`7Jr?jBKnK{hTH41oD*Q2?NJrM@h}wuc<(>QD>*9N+2Qr@~ura zv4Y6zbwxg+EO$r@!&KbEU(TeeCqW@7OmRJhheQw0AuO@G;4fb0_&JS9Ak^OTggc<G zr05Z_Bn-tOu;h<!$`Tuf{#-nD7zS|5LB+V~DPV~!4D;u_bjT4CZJx>G$z-XHtGw>@ zFdjXdEsPy`Q64aqo6qpYB@?IWg;>5);WE<~KW9ow&9)|=JIo>2FNRXFw%F4bLMjjS z#|e+8Ay1ew(WDnel(cg*P$hoLf#JoG<v_?1)M4NbI!OI5g-l5ox&8uJ6?>LW3#<G2 z1lF|Ve9VgMRGhCD!mLu^GG@ikIgtJY%!;+ep8oqVt4NOi6~s#WHUqKZw;U8+9I+m~ z0KUWqUmRc3lJoI}+hX^|a&F`Lmws<@id%m$aIkGZj{rKOf->GrXUV~?fI)WF#d&D) zUV0V3r2{@<prxs8ek*1=Ge02@EyE(CabtUWdzF}h*D2aMmb>Sxq;H<r_U8OCRdLz; z<yECy{?(P$*D9}Cfxj+PUcIrhLJmT>`7PkB-!Jeau9d3gnE6fRwVNvx*j579lEa8z zU#PsMt@wk>6^twGHZhJff6?YI7L>|Y+q4@OqSOg&r-3p~#waxKWlkqTaujEm@p3LN z4p^Ub_ch54ne&9JZfjnJSvt&qLP#JaFYG5*i4^AQKzM*X7%*e^<ggI9HSG|_UZrdm z+I_+qVfjTNIN++%39Od!aP$;wF_E}TG04H6ED9Sahl=w`D@JAWch#F*X%`ZM&E>f` zf)pZaD1nYS(2I0w{-8*>ww;FnTS1dJ4ci>T6)1XSY(Ka<o3xwgN{KXN+XjJso~ces zyZfSyLo8TcuO%Rfzc-f9SV5lJ7x*K!b+BCo1!r$}mkA6Uw_7X4jGN_oCIV((V^4|% zFrdy=52*DdhdpZnxz---jfN;sf}zNJP@Bk`H}#LRUU`~<5`d!aGJVTNh{($I<mx&f zGS01+qnWUiWh#@Zg~O;{6!xLTe?<u_^fujgJbtC+S>RsF>jw!#M<Y088`c#geNLuy zW@9fp*jbg7kuC^o;DmB(8)X&2H;4T}LpU68L$%b9xg23BM!GIMwGd=2yEzw~mTRz_ z55?2f&o^C?&?*_ns6X^o!i}M`sy3}$I5>Dxqgkv<%(twwkS{{@*2X__Z4ey^%$kT< zfks&^*pyE>CInq8iO$_cE?CN`*Sa1F4gH&`E1Or|Tw1;<8~U<|T++#CN6?0&i?|xA zSYvG$krn;Mt4rs<T~T_g;+xN>3l+V#ztxVh%}b?nbA=+dkC;vV-Gxd;8^y-YvPB$* zB3vp$SaYE9zz{SFB-K)#h}(3f*p>9g<B{DhWCwE6^gzu`IQYxmziiwK5_Xp1IH`U_ zynEY&(oma5)X}wpv>wDE4R=u@R3c00YD#1&A`7L>Kw!=u(?b;NI&Cb8g)@pyrj$kJ zB<jGA36NSK+Bp(KQ-(BTad(Vo6ZEhEa!4(<B)e2}o{1^;w!F5U3r_n3BZ_S6MPg#2 na8R{mc^FMbEBC9<-lejlFFdTQXnA1xT0G(gz|tY{^>hC}y$<!; diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ada-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ada-mode deleted file mode 100644 index bea538f..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ada-mode +++ /dev/null @@ -1,72 +0,0 @@ -abort -abs -abstract -accept -access -aliased -all -and -array -at -begin -body -case -constant -declare -delay -delta -digits -do -else -elsif -end -entry -exception -exit -for -function -generic -goto -if -in -interface -is -limited -loop -mod -new -not -null -of -or -others -out -overriding -package -pragma -private -procedure -protected -raise -range -record -rem -renames -requeue -return -reverse -select -separate -subtype -synchronized -tagged -task -terminate -then -type -until -use -when -while -with -xor diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/c++-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/c++-mode deleted file mode 100644 index 292dd8a..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/c++-mode +++ /dev/null @@ -1,99 +0,0 @@ -alignas -alignof -and -and_eq -asm -auto -bitand -bitor -bool -break -case -catch -char -char16_t -char32_t -class -compl -concept -const -const_cast -constexpr -continue -decltype -default -define -defined -delete -do -double -dynamic_cast -elif -else -endif -enum -error -explicit -export -extern -false -final -float -for -friend -goto -if -ifdef -ifndef -include -inline -int -line -long -mutable -namespace -new -noexcept -not -not_eq -nullptr -operator -or -or_eq -override -pragma -_Pragma -private -protected -public -register -reinterpret_cast -requires -return -short -signed -sizeof -static -static_assert -static_cast -struct -switch -template -this -thread_local -throw -true -try -typedef -typeid -typename -union -unsigned -using -virtual -void -volatile -wchar_t -while -xor -xor_eq diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/c-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/c-mode deleted file mode 100644 index a4a8bac..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/c-mode +++ /dev/null @@ -1,55 +0,0 @@ -auto -_Alignas -_Alignof -_Atomic -_Bool -break -case -char -_Complex -const -continue -default -define -defined -do -double -elif -else -endif -enum -error -extern -float -for -goto -_Generic -if -ifdef -ifndef -_Imaginary -include -inline -int -line -long -_Noreturn -pragma -register -restrict -return -short -signed -sizeof -static -struct -switch -_Static_assert -typedef -_Thread_local -undef -union -unsigned -void -volatile -while diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/caml-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/caml-mode deleted file mode 100644 index e709f9f..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/caml-mode +++ /dev/null @@ -1,231 +0,0 @@ -# OCaml 3.12.1 - -# Keywords -and -as -assert -begin -class -constraint -do -done -downto -else -end -exception -external -false -for -fun -function -functor -if -in -include -inherit -initializer -lazy -let -match -method -module -mutable -new -object -of -open -or -private -rec -sig -struct -then -to -true -try -type -val -virtual -when -while -with - -# Pervasives -! -!= -& -&& -* -** -*. -+ -+. -- --. -/ -/. -:= -< -<= -<> -= -== -> ->= -@ -FP_infinite -FP_nan -FP_normal -FP_subnormal -FP_zero -LargeFile -Open_append -Open_binary -Open_creat -Open_nonblock -Open_rdonly -Open_text -Open_trunc -Open_wronly -Oupen_excl -^ -^^ -abs -abs_float -acos -asin -asr -at_exit -atan -atan2 -bool_of_string -ceil -char_of_int -classify_float -close_in -close_in_noerr -close_out -close_out_noerr -compare -cos -cosh -decr -do_at_exit -epsilon_float -exit -exp -expm1 -failwith -float -float_of_int -float_of_string -floor -flush -flush_all -format -format4 -format_of_string -fpclass -frexp -fst -ignore -in_channel -in_channel_length -incr -infinity -input -input_binary_int -input_byte -input_char -input_line -input_value -int_of_char -int_of_float -int_of_string -invalid_arg -land -ldexp -lnot -log -log10 -log1p -lor -lsl -lsr -lxor -max -max_float -max_int -min -min_float -min_int -mod -mod_float -modf -nan -neg_infinity -not -open_flag -open_in -open_in_bin -open_in_gen -open_out -open_out_bin -open_out_gen -or -out_channel -out_channel_length -output -output_binary_int -output_byte -output_char -output_string -output_value -pos_in -pos_out -pred -prerr_char -prerr_endline -prerr_float -prerr_int -prerr_newline -prerr_string -print_char -print_endline -print_float -print_int -print_newline -print_string -raise -read_float -read_int -read_line -really_input -ref -seek_in -seek_out -set_binary_mode_in -set_binary_mode_out -sin -sinh -snd -sqrt -stderr -stdin -stdout -string_of_bool -string_of_float -string_of_format -string_of_int -succ -tan -tanh -truncate -unsafe_really_input -valid_float_lexem -|| -~ -~+ -~+. -~- -~-. diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/clojure-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/clojure-mode deleted file mode 100644 index 9dc2c73..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/clojure-mode +++ /dev/null @@ -1,580 +0,0 @@ -*agent* -*allow-unresolved-vars* -*assert* -*clojure-version* -*command-line-args* -*compile-files* -*compile-path* -*compiler-options* -*data-readers* -*default-data-reader-fn* -*err* -*file* -*flush-on-newline* -*fn-loader* -*in* -*math-context* -*ns* -*out* -*print-dup* -*print-length* -*print-level* -*print-meta* -*print-readably* -*read-eval* -*source-path* -*unchecked-math* -*use-context-classloader* -*verbose-defrecords* -*warn-on-reflection* -->ArrayChunk -->Vec -->VecNode -->VecSeq --cache-protocol-fn --reset-methods -accessor -aclone -add-classpath -add-watch -agent -agent-error -agent-errors -aget -alength -alias -all-ns -alter -alter-meta! -alter-var-root -amap -ancestors -and -apply -areduce -array-map -as-> -aset -aset-boolean -aset-byte -aset-char -aset-double -aset-float -aset-int -aset-long -aset-short -assert -assoc -assoc! -assoc-in -associative? -atom -await -await-for -await1 -bases -bean -bigdec -bigint -biginteger -binding -bit-and -bit-and-not -bit-clear -bit-flip -bit-not -bit-or -bit-set -bit-shift-left -bit-shift-right -bit-test -bit-xor -boolean -boolean-array -booleans -bound-fn -bound-fn* -bound? -butlast -byte -byte-array -bytes -case -cast -char -char-array -char-escape-string -char-name-string -char? -chars -chunk -chunk-append -chunk-buffer -chunk-cons -chunk-first -chunk-next -chunk-rest -chunked-seq? -class -class? -clear-agent-errors -clojure-version -coll? -comment -commute -comp -comparator -compare -compare-and-set! -compile -complement -concat -cond -cond-> -cond->> -condp -conj -conj! -cons -constantly -construct-proxy -contains? -count -counted? -create-ns -create-struct -cycle -dec -dec' -decimal? -declare -default-data-readers -definline -definterface -defmacro -defmethod -defmulti -defn -defn- -defonce -defprotocol -defrecord -defstruct -deftype -delay -delay? -deliver -denominator -deref -derive -descendants -destructure -disj -disj! -dissoc -dissoc! -distinct -distinct? -doall -doc -dorun -doseq -dosync -dotimes -doto -double -double-array -doubles -drop -drop-last -drop-while -dtype -empty -empty? -ensure -enumeration-seq -error-handler -error-mode -eval -even? -every-pred -every? -ex-data -ex-info -extend -extend-class -extend-protocol -extend-type -extenders -extends? -false? -ffirst -file-seq -filter -filterv -find -find-doc -find-keyword -find-ns -find-protocol-impl -find-protocol-method -find-var -first -flatten -float -float-array -float? -floats -flush -fn -fn? -fnext -fnil -for -force -format -frequencies -future -future-call -future-cancel -future-cancelled? -future-done? -future? -gen-class -gen-interface -gensym -get -get-in -get-method -get-proxy-class -get-thread-bindings -get-validator -group-by -hash -hash-combine -hash-map -hash-set -identical? -identity -if-let -if-not -ifn? -import -in-ns -inc -inc' -init-proxy -instance? -int -int-array -integer? -interleave -intern -interpose -into -into-array -ints -io! -isa? -iterate -iterator-seq -juxt -keep -keep-indexed -key -keys -keyword -keyword? -last -lazy-cat -lazy-seq -let -letfn -line-seq -list -list* -list? -load -load-file -load-reader -load-string -loaded-libs -locking -long -long-array -longs -loop -macroexpand -macroexpand-1 -make-array -make-hierarchy -map -map-indexed -map? -mapcat -mapv -max -max-key -memfn -memoize -merge -merge-with -meta -method-sig -methods -min -min-key -mod -munge -name -namespace -namespace-munge -neg? -newline -next -nfirst -nil? -nnext -not -not-any? -not-empty -not-every? -not= -ns -ns-aliases -ns-imports -ns-interns -ns-map -ns-name -ns-publics -ns-refers -ns-resolve -ns-unalias -ns-unmap -nth -nthnext -nthrest -num -number? -numerator -object-array -odd? -or -parents -partial -partition -partition-all -partition-by -pcalls -peek -persistent! -pmap -pop -pop! -pop-thread-bindings -pos? -pr -pr-str -prefer-method -prefers -primitives-classnames -print -print-ctor -print-dup -print-method -print-namespace-doc -print-simple -print-str -printf -println -println-str -prn -prn-str -promise -proxy -proxy-call-with-super -proxy-mappings -proxy-name -proxy-super -push-thread-bindings -pvalues -quot -rand -rand-int -rand-nth -range -ratio? -rational? -rationalize -re-find -re-groups -re-matcher -re-matches -re-pattern -re-seq -read -read-line -read-string -realized? -reduce -reduce-kv -reduced -reduced? -reductions -ref -ref-history-count -ref-max-history -ref-min-history -ref-set -refer -refer-clojure -reify -release-pending-sends -rem -remove -remove-all-methods -remove-method -remove-ns -remove-watch -repeat -repeatedly -replace -replicate -require -reset! -reset-meta! -resolve -rest -restart-agent -resultset-seq -reverse -reversible? -rseq -rsubseq -satisfies? -second -select-keys -send -send-off -send-via -seq -seq? -seque -sequence -sequential? -set -set-agent-send-executor! -set-agent-send-off-executor! -set-error-handler! -set-error-mode! -set-validator! -set? -short -short-array -shorts -shuffle -shutdown-agents -slurp -some -some-> -some->> -some-fn -sort -sort-by -sorted-map -sorted-map-by -sorted-set -sorted-set-by -sorted? -special-form-anchor -special-symbol? -spit -split-at -split-with -str -stream? -string? -struct -struct-map -subs -subseq -subvec -supers -swap! -symbol -symbol? -sync -syntax-symbol-anchor -take -take-last -take-nth -take-while -test -the-ns -thread-bound? -time -to-array -to-array-2d -trampoline -transient -tree-seq -true? -type -unchecked-add -unchecked-add-int -unchecked-byte -unchecked-char -unchecked-dec -unchecked-dec-int -unchecked-divide -unchecked-divide-int -unchecked-double -unchecked-float -unchecked-inc -unchecked-inc-int -unchecked-int -unchecked-long -unchecked-multiply -unchecked-multiply-int -unchecked-negate -unchecked-negate-int -unchecked-remainder -unchecked-remainder-int -unchecked-short -unchecked-subtract -unchecked-subtract-int -underive -unquote -unquote-splicing -update-in -update-proxy -use -val -vals -var-get -var-set -var? -vary-meta -vec -vector -vector-of -vector? -when -when-first -when-let -when-not -while -with-bindings -with-bindings* -with-in-str -with-loading-context -with-local-vars -with-meta -with-open -with-out-str -with-precision -with-redefs -with-redefs-fn -xml-seq -zero? -zipmap diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/clojurescript-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/clojurescript-mode deleted file mode 100644 index add64b3..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/clojurescript-mode +++ /dev/null @@ -1,475 +0,0 @@ -*agent* -*clojure-version* -*command-line-args* -*compile-files* -*compile-path* -*err* -*file* -*flush-on-newline* -*in* -*ns* -*out* -*print-dup* -*print-length* -*print-level* -*print-meta* -*print-readably* -*read-eval* -*warn-on-reflection* -accessor -aclone -add-classpath -add-watch -agent -agent-error -agent-errors -aget -alength -alias -all-ns -alter -alter-meta! -alter-var-root -amap -ancestors -and -apply -areduce -array-map -aset -aset-boolean -aset-byte -aset-char -aset-double -aset-float -aset-int -aset-long -aset-short -assert -assoc -assoc! -assoc-in -associative? -atom -await -await-for -bases -bean -bigdec -bigint -binding -bit-and -bit-and-not -bit-clear -bit-flip -bit-not -bit-or -bit-set -bit-shift-left -bit-shift-right -bit-test -bit-xor -boolean -boolean-array -booleans -bound-fn -bound-fn* -butlast -byte -byte-array -bytes -case -cast -char -char-array -char-escape-string -char-name-string -char? -chars -class -class? -clear-agent-errors -clojure-version -coll? -comment -commute -comp -comparator -compare -compare-and-set! -compile -complement -concat -cond -condp -conj -conj! -cons -constantly -construct-proxy -contains? -count -counted? -create-ns -create-struct -cycle -dec -decimal? -declare -definline -defmacro -defmethod -defmulti -defn -defn- -defonce -defprotocol -defstruct -deftype -delay -delay? -deliver -deref -derive -descendants -disj -disj! -dissoc -dissoc! -distinct -distinct? -doall -doc -dorun -doseq -dosync -dotimes -doto -double -double-array -doubles -drop -drop-last -drop-while -dtype -empty -empty? -ensure -enumeration-seq -error-handler -error-mode -eval -even? -every? -extend -extend-class -extend-protocol -extend-type -extenders -extends? -false? -ffirst -file-seq -filter -find -find-doc -find-ns -find-var -first -float -float-array -float? -floats -flush -fn -fn? -fnext -for -force -format -future -future-call -future-cancel -future-cancelled? -future-done? -future? -gen-class -gen-interface -gensym -get -get-in -get-method -get-proxy-class -get-thread-bindings -get-validator -hash -hash-map -hash-set -identical? -identity -if-let -if-not -ifn? -import -in-ns -inc -init-proxy -instance? -int -int-array -integer? -interleave -intern -interpose -into -into-array -ints -io! -isa? -iterate -iterator-seq -juxt -key -keys -keyword -keyword? -last -lazy-cat -lazy-seq -let -letfn -line-seq -list -list* -list? -load -load-file -load-reader -load-string -loaded-libs -locking -long -long-array -longs -loop -macroexpand -macroexpand-1 -make-array -make-hierarchy -map -map? -mapcat -max -max-key -memfn -memoize -merge -merge-with -meta -methods -min -min-key -mod -name -namespace -neg? -newline -next -nfirst -nil? -nnext -not -not-any? -not-empty -not-every? -not= -ns -ns-aliases -ns-imports -ns-interns -ns-map -ns-name -ns-publics -ns-refers -ns-resolve -ns-unalias -ns-unmap -nth -nthnext -num -number? -object-array -odd? -or -parents -partial -partition -pcalls -peek -persistent! -pmap -pop -pop! -pop-thread-bindings -pos? -pr -pr-str -prefer-method -prefers -print -print-namespace-doc -print-str -printf -println -println-str -prn -prn-str -promise -proxy -proxy-mappings -proxy-super -push-thread-bindings -pvalues -quot -rand -rand-int -range -ratio? -rationalize -re-find -re-groups -re-matcher -re-matches -re-pattern -re-seq -read -read-line -read-string -reduce -ref -ref-history-count -ref-max-history -ref-min-history -ref-set -refer -refer-clojure -reify -release-pending-sends -rem -remove -remove-method -remove-ns -remove-watch -repeat -repeatedly -replace -replicate -require -reset! -reset-meta! -resolve -rest -restart-agent -resultset-seq -reverse -reversible? -rseq -rsubseq -satisfies? -second -select-keys -send -send-off -seq -seq? -seque -sequence -sequential? -set -set-error-handler! -set-error-mode! -set-validator! -set? -short -short-array -shorts -shutdown-agents -slurp -some -sort -sort-by -sorted-map -sorted-map-by -sorted-set -sorted-set-by -sorted? -special-form-anchor -special-symbol? -split-at -split-with -str -stream? -string? -struct -struct-map -subs -subseq -subvec -supers -swap! -symbol -symbol? -sync -syntax-symbol-anchor -take -take-last -take-nth -take-while -test -the-ns -time -to-array -to-array-2d -trampoline -transient -tree-seq -true? -type -unchecked-add -unchecked-dec -unchecked-divide -unchecked-inc -unchecked-multiply -unchecked-negate -unchecked-remainder -unchecked-subtract -underive -update-in -update-proxy -use -val -vals -var-get -var-set -var? -vary-meta -vec -vector -vector-of -vector? -when -when-first -when-let -when-not -while -with-bindings -with-bindings* -with-in-str -with-local-vars -with-meta -with-open -with-out-str -with-precision -xml-seq -zero? -zipmap diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/coq-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/coq-mode deleted file mode 100644 index 219448f..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/coq-mode +++ /dev/null @@ -1,278 +0,0 @@ -# Generated by the following form. -# (loop for regexp in (append -# coq-solve-tactics -# coq-keywords -# coq-reserved -# coq-tactics -# coq-tacticals -# (list "Set" "Type" "Prop")) -# append (split-string regexp (regexp-quote "\\s-+")) into words -# finally (loop initially (goto-char (point-max)) -# for word in (delete-dups (sort words 'string<)) -# do (insert word) (newline))) - -Abort -About -Abstract -Add -Admit -Admitted -All -Arguments -AutoInline -Axiom -Bind -Canonical -Cd -Chapter -Check -Close -CoFixpoint -CoInductive -Coercion -Coercions -Comments -Conjecture -Constant -Constructors -Corollary -Declare -Defined -Definition -Delimit -Dependent -Depth -Derive -End -Eval -Export -Extern -Extract -Extraction -Fact -False -Field -File -Fixpoint -Focus -Function -Functional -Goal -Hint -Hypotheses -Hypothesis -Hyps -Identity -If -Immediate -Implicit -Import -Inductive -Infix -Inline -Inlined -Inspect -Inversion -Language -Lemma -Let -Library -Limit -LoadPath -Local -Locate -Ltac -ML -Module -Morphism -Next Obligation -NoInline -Notation -Notations -Obligation -Obligations -Off -On -Opaque -Open -Optimize -Parameter -Parameters -Path -Print -Printing -Program -Proof -Prop -Pwd -Qed -Rec -Record -Recursive -Remark -Remove -Require -Reserved -Reset -Resolve -Rewrite -Ring -Save -Scheme -Scope -Search -SearchAbout -SearchPattern -SearchRewrite -Section -Semi -Set -Setoid -Show -Solve -Sort -Strict -Structure -Synth -Tactic -Test -Theorem -Time -Transparent -True -Type -Undo -Unfocus -Unfold -Unset -Variable -Variables -Width -Wildcard -abstract -absurd -after -apply -as -assert -assumption -at -auto -autorewrite -beta -by -case -cbv -change -clear -clearbody -cofix -coinduction -compare -compute -congruence -constructor -contradiction -cut -cutrewrite -decide -decompose -delta -dependent -dest -destruct -discrR -discriminate -do -double -eapply -eauto -econstructor -eexists -eleft -elim -else -end -equality -esplit -exact -exists -fail -field -first -firstorder -fix -fold -forall -fourier -fun -functional -generalize -hnf -idtac -if -in -induction -info -injection -instantiate -into -intro -intros -intuition -inversion -inversion_clear -iota -lapply -lazy -left -let -linear -load -match -move -omega -pattern -pose -progress -prolog -quote -record -red -refine -reflexivity -rename -repeat -replace -return -rewrite -right -ring -set -setoid -setoid_replace -setoid_rewrite -simpl -simple -simplify_eq -solve -specialize -split -split_Rabs -split_Rmult -stepl -stepr -struct -subst -sum -symmetry -tauto -then -transitivity -trivial -try -unfold -until -using -with -zeta diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/css-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/css-mode deleted file mode 100644 index f25e400..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/css-mode +++ /dev/null @@ -1,874 +0,0 @@ -!important -@font-face -@font-feature-values -@keyframes -ActiveBorder -ActiveCaption -Alpha -AppWorkspace -Background -Barn -BasicImage -Blinds -Blur -ButtonFace -ButtonHighlight -ButtonShadow -ButtonText -CaptionText -CheckerBoard -Chroma -Compositor -CradientWipe -DXImageTransform -DropShadow -Emboss -Engrave -Fade -FlipH -FlipV -Glow -Gray -GrayText -Highlight -HighlightText -Hz -ICMFilter -InactiveBorder -InactiveCaption -InactiveCaptionText -InfoBackground -InfoText -Inset -Invert -Iris -Light -MaskFilter -Matrix -Menu -MenuText -Microsoft -MotionBlur -Pixelate -RadialWipe -RandomBars -RandomDissolve -RevealTrans -Scrollbar -Shadow -Slide -Spiral -Stretch -Strips -ThreeDDarkShadow -ThreeDFace -ThreeDHighlight -ThreeDLightShadow -ThreeDShadow -Wave -Wheel -Window -WindowFrame -WindowText -Xray -Zigzag -_azimuth -_background -_background-position-x -_background-position-y -_border -_bottom -_caption -_clear -_clip -_color -_content -_counter -_cue -_cursor -_direction -_display -_elevation -_empty -_filter -_filter:progid:DXImageTransform.Microsoft -_float -_font -_height -_ime -_ime-mode -_layout -_layout-flow -_layout-grid -_layout-grid-char -_layout-grid-line -_layout-grid-mode -_layout-grid-type -_left -_letter -_line -_line-break -_list -_margin -_orphans -_outline -_overflow -_overflow-x -_overflow-y -_padding -_page -_pause -_pitch -_play -_position -_quotes -_richness -_right -_ruby -_ruby-align -_ruby-overhang -_ruby-position -_scrollbar -_scrollbar-3dlight-color -_scrollbar-arrow-color -_scrollbar-base-color -_scrollbar-darkshadow-color -_scrollbar-face-color -_scrollbar-highlight-color -_scrollbar-track-color -_speak -_speech -_stress -_table -_text -_text-align-last -_text-autospace -_text-justify -_text-kashida-space -_text-overflow -_text-underline-position -_top -_unicode -_vertical -_visibility -_voice -_volume -_white -_widows -_width -_word -_word-break -_word-wrap -_writing -_writing-mode -_z -_zoom -above -active -adjust -after -aliceblue -align -align-content -align-items -align-self -always -animation -animation-delay -animation-direction -animation-duration -animation-fill-mode -animation-iteration-count -animation-name -animation-play-state -animation-timing-function -antiquewhite -aqua -aquamarine -armenian -arrow -attachment -auto -autospace -avoid -azimuth -azure -backface-visibility -background -background-attachment -background-clip -background-color -background-image -background-origin -background-position -background-repeat -background-size -bar -base -baseline -before -behind -beige -below -bidi -bidi-override -bisque -black -blanchedalmond -blink -block -blue -blueviolet -bold -bolder -border -border-bottom -border-bottom-color -border-bottom-left-radius -border-bottom-right-radius -border-bottom-style -border-bottom-width -border-collapse -border-color -border-image -border-image-outset -border-image-repeat -border-image-slice -border-image-source -border-image-width -border-left -border-left-color -border-left-style -border-left-width -border-radius -border-right -border-right-color -border-right-style -border-right-width -border-spacing -border-style -border-top -border-top-color -border-top-left-radius -border-top-right-radius -border-top-style -border-top-width -border-width -both -bottom -box -box-decoration-break -box-shadow -box-sizing -break -break-after -break-before -break-inside -brown -burlwood -cadetblue -capitalize -caps -caption -caption-side -cell -cells -center -center-left -center-right -char -chartreuse -chocolate -circle -cjk -cjk-ideographic -clear -clip -close -close-quote -cm -code -collapse -color -column -column-count -column-fill -column-gap -column-rule -column-rule-color -column-rule-style -column-rule-width -column-span -column-width -columns -compact -condensed -content -continuous -coral -cornflowerblue -cornsilk -counter -counter-increment -counter-reset -crimson -crop -cross -crosshair -cue -cue-after -cue-before -cursive -cursor -cyan -darkblue -darkcyan -darkgoldenrod -darkgray -darkgreen -darkkhaki -darkmagenta -darkolivegreen -darkorange -darkorchid -darkred -darksalmon -darkseagreen -darkshadow -darkslateblue -darkslategray -darkturquoise -darkviolet -dashed -decimal -decimal-leading-zero -decoration -deeppink -deepskyblue -default -deg -digits -dimgray -direction -disc -display -dodgerblue -dotted -double -during -e -e-resize -elevation -em -embed -empty -empty-cells -ex -expanded -extra -extra-condensed -extra-expanded -face -family -fantasy -far -far-left -far-right -fast -faster -filter -firebrick -first -first-child -first-letter -first-line -fixed -flex -flex-basis -flex-direction -flex-flow -flex-grow -flex-shrink -flex-wrap -float -floralwhite -flow -focus -font -font-family -font-feature-setting -font-kerning -font-language-override -font-size -font-size-adjust -font-stretch -font-style -font-synthesis -font-variant -font-variant-alternates -font-variant-caps -font-variant-east-asian -font-variant-ligatures -font-variant-numeric -font-variant-position -font-weight -footer -forestgreen -fuchsia -gainsboro -georgian -ghostwhite -gold -goldenrod -gray -greek -green -greenyellow -grid -groove -group -hanging-punctuation -header -hebrew -height -help -hidden -hide -high -higher -hiragana -hiragana-iroha -honeydew -hotpink -hover -hyphens -icon -ideographic -image -image-orientation -image-rendering -image-resolution -ime-mode -in -increment -indent -index -indianred -indigo -inherit -inline -inline-block -inline-table -inset -inside -iroha -italic -item -ivory -justify -justify-content -kHz -kashida -katakana -katakana-iroha -khaki -landscape -lang() -large -larger -last -latin -lavender -lavenderblush -lawngreen -layout -leading -left -left-side -leftwards -lenonchiffon -letter -letter-spacing -level -lightblue -lightcoral -lightcyan -lighter -lightgoldenrodyellow -lightgray -lightgreen -lightgrey -lightpink -lightsalmon -lightseagreen -lightskyblue -lightslategray -lightsteelblue -lightyellow -lime -limegreen -line -line-break -line-height -line-through -linen -link -list -list-item -list-style -list-style-image -list-style-position -list-style-type -loud -low -lower -lower-alpha -lower-greek -lower-latin -lower-roman -lowercase -ltr -magenta -margin -margin-bottom -margin-left -margin-right -margin-top -mark -mark-after -mark-before -marker -marker-offset -marks -maroon -marquee-direction -marquee-play-count -marquee-speed -marquee-style -mask -mask-type -max -max-height -max-width -medium -mediumaquamarine -mediumblue -mediumorchid -mediumpurple -mediumseagreen -mediumslateblue -mediumspringgreen -mediumturquoise -mediumvioletred -menu -message -message-box -middle -midnightblue -min -min-height -min-width -mintcream -mistyrose -mix -mm -moccasin -mode -monospace -move -ms -n -n-resize -naby -narrower -nav-down -nav-index -nav-left -nav-right -nav-up -navajowhite -ne -ne-resize -no -no-close-quote -no-open-quote -no-repeat -none -normal -nowrap -number -numeral -nw -nw-resize -object-fit -object-position -oblique -offset -oldlace -olive -olivedrab -once -opacity -open -open-quote -orange -orangered -orchid -order -orphans -out -outline -outline-color -outline-offset -outline-style -outline-width -outset -outside -overflow -overflow-wrap -overflow-x -overflow-y -overhang -overline -override -padding -padding-bottom -padding-left -padding-right -padding-top -page -page-break-after -page-break-before -page-break-inside -palegoldenrod -palegreen -paleturquoise -palevioletred -papayawhip -pause -pause-after -pause-before -pc -peachpuff -perspective -perspective-origin -peru -phonemes -pink -pitch -pitch-range -play -play-during -plum -pointer -portrait -position -powderblue -pre -pre-line -pre-wrap -progid -progress -pt -punctuation -purple -px -quote -quotes -rad -range -rate -red -relative -repeat -repeat-x -repeat-y -reset -resize -rest -rest-after -rest-before -richness -ridge -right -right-side -rightwards -roman -rosybrown -row -royalblue -rtl -run -run-in -s -s-resize -saddlebrown -salmon -sandybrown -sans-serif -scroll -se -se-resize -seagreen -seashell -semi -semi-condensed -semi-expanded -separate -serif -shadow -show -side -sienna -silent -silever -silver -size -skyblue -slateblue -slategray -slow -slower -small -small-caps -small-caption -smaller -snow -soft -solid -space -spacing -speak -speak-header -speak-numeral -speak-punctuation -specific -specific-voice -speech -speech-rate -spell -spell-out -springgreen -square -static -status -status-bar -steelblue -stress -stretch -style -sub -super -sw -sw-resize -tab-size -table -table-caption -table-cell -table-column -table-column-group -table-footer-group -table-header-group -table-layout -table-row -table-row-group -tan -teal -text -text-align -text-align-last -text-bottom -text-combine-horizontal -text-decoration -text-decoration-color -text-decoration-line -text-decoration-style -text-indent -text-justify -text-orientation -text-overflow -text-shadow -text-top -text-transform -text-underline-position -thick -thin -thistle -through -tomato -top -track -transform -transform-origin -transform-style -transition -transition-delay -transition-duration -transition-property -transition-timing-function -transparent -turquoise -type -ultra -ultra-condensed -ultra-expanded -underline -unicode -unicode-bidi -upper -upper-alpha -upper-latin -upper-roman -uppercase -variant -vertical -vertical-align -violet -visibility -visible -visited -voice -voice-balance -voice-duration -voice-family -voice-pitch -voice-pitch-range -voice-rate -voice-stress -voice-volume -volume -w -w-resize -wait -weight -wheat -white -white-space -whitesmoke -wider -widows -width -word -word-break -word-spacing -word-wrap -wrap -writing-mode -x -x-fast -x-high -x-large -x-loud -x-low -x-slow -x-small -x-soft -xx -xx-large -xx-small -y -yellow -yellowgreen -z -z-index -zero diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/erlang-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/erlang-mode deleted file mode 100644 index 960f2b8..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/erlang-mode +++ /dev/null @@ -1,216 +0,0 @@ -after -begin -catch -case -cond -end -fun -if -let -of -query -receive -try -when -and -andalso -band -bnot -bor -bsl -bsr -bxor -div -not -or -orelse -rem -xor -is_atom -is_binary -is_bitstring -is_boolean -is_float -is_function -is_integer -is_list -is_number -is_pid -is_port -is_record -is_reference -is_tuple -atom -binary -bitstring -boolean -function -integer -list -number -pid -port -record -reference -tuple -abs -adler32 -adler32_combine -alive -apply -atom_to_binary -atom_to_list -binary_to_atom -binary_to_existing_atom -binary_to_list -binary_to_term -bit_size -bitstring_to_list -byte_size -check_process_code -contact_binary -crc32 -crc32_combine -date -decode_packet -delete_module -disconnect_node -element -erase -exit -float -float_to_list -garbage_collect -get -get_keys -group_leader -halt -hd -integer_to_list -internal_bif -iolist_size -iolist_to_binary -is_alive -is_atom -is_binary -is_bitstring -is_boolean -is_float -is_function -is_integer -is_list -is_number -is_pid -is_port -is_process_alive -is_record -is_reference -is_tuple -length -link -list_to_atom -list_to_binary -list_to_bitstring -list_to_existing_atom -list_to_float -list_to_integer -list_to_pid -list_to_tuple -load_module -make_ref -module_loaded -monitor_node -node -node_link -node_unlink -nodes -notalive -now -open_port -pid_to_list -port_close -port_command -port_connect -port_control -pre_loaded -process_flag -process_info -processes -purge_module -put -register -registered -round -self -setelement -size -spawn -spawn_link -spawn_monitor -spawn_opt -split_binary -statistics -term_to_binary -time -throw -tl -trunc -tuple_size -tuple_to_list -unlink -unregister -whereis -append_element -bump_reductions -cancel_timer -demonitor -display -fun_info -fun_to_list -function_exported -get_cookie -get_stacktrace -hash -integer_to_list -is_builtin -list_to_integer -loaded -localtime -localtime_to_universaltime -make_tuple -max -md5 -md5_final -md5_init -md5_update -memory -min -monitor -monitor_node -phash -phash2 -port_call -port_info -port_to_list -ports -process_display -read_timer -ref_to_list -resume_process -send -send_after -send_nosuspend -set_cookie -start_timer -suspend_process -system_flag -system_info -system_monitor -system_profile -trace -trace_delivered -trace_info -trace_pattern -universaltime -universaltime_to_localtime -yield diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ess-julia-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ess-julia-mode deleted file mode 100644 index 3a4ad7d..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ess-julia-mode +++ /dev/null @@ -1,37 +0,0 @@ -abstract -break -case -catch -const -continue -do -else -elseif -end -eval -export -false -finally -for -function -global -if -ifelse -immutable -import -importall -in -let -macro -module -otherwise -quote -return -switch -throw -true -try -type -typealias -using -while diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/go-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/go-mode deleted file mode 100644 index b943a16..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/go-mode +++ /dev/null @@ -1,25 +0,0 @@ -break -case -chan -const -continue -default -defer -else -fallthrough -for -func -go -goto -if -import -interface -map -package -range -return -select -struct -switch -type -var diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/haskell-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/haskell-mode deleted file mode 100644 index ac1bd2a..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/haskell-mode +++ /dev/null @@ -1,679 +0,0 @@ -Arrows -BangPatterns -Bool -Bounded -CPP -Char -Complex -ConstrainedClassMethods -Control.Applicative -Control.Arrow -Control.Category -Control.Concurrent -Control.Concurrent.MVar -Control.Concurrent.QSem -Control.Concurrent.QSemN -Control.Concurrent.STM -Control.Concurrent.STM.TArray -Control.Concurrent.STM.TChan -Control.Concurrent.STM.TMVar -Control.Concurrent.STM.TVar -Control.Concurrent.SampleVar -Control.Exception -Control.Exception.Base -Control.Monad -Control.Monad.Cont -Control.Monad.Cont.Class -Control.Monad.Error -Control.Monad.Error.Class -Control.Monad.Fix -Control.Monad.Identity -Control.Monad.Instances -Control.Monad.List -Control.Monad.RWS -Control.Monad.RWS.Class -Control.Monad.RWS.Lazy -Control.Monad.RWS.Strict -Control.Monad.Reader -Control.Monad.Reader.Class -Control.Monad.ST -Control.Monad.ST.Lazy -Control.Monad.ST.Strict -Control.Monad.STM -Control.Monad.State -Control.Monad.State.Class -Control.Monad.State.Lazy -Control.Monad.State.Strict -Control.Monad.Trans -Control.Monad.Writer -Control.Monad.Writer.Class -Control.Monad.Writer.Lazy -Control.Monad.Writer.Strict -Control.OldException -Control.Parallel -Control.Parallel.Strategies -DEPRECATED -Data.Array -Data.Array.Diff -Data.Array.IArray -Data.Array.IO -Data.Array.IO.Internals -Data.Array.MArray -Data.Array.Paralell -Data.Array.Paralell.Arr -Data.Array.Paralell.Base -Data.Array.Paralell.Int -Data.Array.Paralell.Lifted -Data.Array.Paralell.PArray -Data.Array.Paralell.Prelude -Data.Array.Paralell.Prelude.Double -Data.Array.Paralell.Stream -Data.Array.Paralell.Unlifted -Data.Array.Paralell.Unlifted.Distributed -Data.Array.Paralell.Unlifted.Paralell -Data.Array.Paralell.Unlifted.Sqeuential -Data.Array.Paralell.Word8 -Data.Array.ST -Data.Array.Storable -Data.Array.Unboxed -Data.Bits -Data.Bool -Data.ByteString -Data.ByteString.Char8 -Data.ByteString.Fusion -Data.ByteString.Internal -Data.ByteString.Lazy -Data.ByteString.Lazy.Char8 -Data.ByteString.Lazy.Fusion -Data.ByteString.Lazy.Internal -Data.ByteString.Unsafe -Data.Char -Data.Complex -Data.Data -Data.Dynamic -Data.Either -Data.Eq -Data.Fixed -Data.Foldable -Data.Function -Data.Generics -Data.Generics.Aliases -Data.Generics.Basics -Data.Generics.Instances -Data.Generics.Schemes -Data.Generics.Text -Data.Generics.Twins -Data.Graph -Data.HashTable -Data.IORef -Data.Int -Data.IntMap -Data.IntSet -Data.Ix -Data.List -Data.Map -Data.Maybe -Data.Monoid -Data.Ord -Data.Ratio -Data.STRef -Data.STRef.Lazy -Data.STRef.Strict -Data.Sequence -Data.Set -Data.String -Data.Time -Data.Time.Calendar -Data.Time.Calendar.Easter -Data.Time.Calendar.Julian -Data.Time.Calendar.MonthDay -Data.Time.Calendar.OrdinalDate -Data.Time.Calendar.WeekDate -Data.Time.Clock -Data.Time.Clock.POSIX -Data.Time.Clock.TAI -Data.Time.Format -Data.Time.LocalTime -Data.Traversable -Data.Tree -Data.Tuple -Data.Typeable -Data.Unique -Data.Version -Data.Word -Debug.Trace -DeriveDataTypeable -DisambiguateRecordFields -Distribution.Compat.ReadP -Distribution.Compiler -Distribution.InstalledPackageInfo -Distribution.License -Distribution.Make -Distribution.ModuleName -Distribution.Package -Distribution.PackageDescription -Distribution.PackageDescription.Check -Distribution.PackageDescription.Configuration -Distribution.PackageDescription.Parse -Distribution.ParseUtils -Distribution.ReadE -Distribution.Simple -Distribution.Simple.Build -Distribution.Simple.Build.Macros -Distribution.Simple.Build.PathsModule -Distribution.Simple.BuildPaths -Distribution.Simple.Command -Distribution.Simple.Compiler -Distribution.Simple.Configure -Distribution.Simple.GHC -Distribution.Simple.Haddock -Distribution.Simple.Hugs -Distribution.Simple.Install -Distribution.Simple.InstallDirs -Distribution.Simple.JHC -Distribution.Simple.LocalBuildInfo -Distribution.Simple.NHC -Distribution.Simple.PackageIndex -Distribution.Simple.PreProcess -Distribution.Simple.PreProcess.Unlit -Distribution.Simple.Program -Distribution.Simple.Register -Distribution.Simple.Setup -Distribution.Simple.SrcDist -Distribution.Simple.UserHooks -Distribution.Simple.Utils -Distribution.System -Distribution.Text -Distribution.Verbosity -Distribution.Version -Double -EQ -Either -EmptyDataDecls -Enum -Eq -ExistentialQuantification -ExtendedDefaultRules -False -FilePath -FlexibleContexts -FlexibleInstances -Float -Floating -Foreign -Foreign.C -Foreign.C.Error -Foreign.C.String -Foreign.C.Types -Foreign.Concurrent -Foreign.ForeignPtr -Foreign.Marshal -Foreign.Marshal.Alloc -Foreign.Marshal.Array -Foreign.Marshal.Error -Foreign.Marshal.Pool -Foreign.Marshal.Utils -Foreign.Ptr -Foreign.StablePtr -Foreign.Storable -ForeignFunctionInterface -Fractional -FunctionnalDependencies -Functor -GADTs -GHC.Arr -GHC.Bool -GHC.Conc -GHC.ConsoleHandler -GHC.Desugar -GHC.Environment -GHC.Err -GHC.Exts -GHC.Generics -GHC.Handle -GHC.Ordering -GHC.PArr -GHC.Prim -GHC.PrimopWrappers -GHC.Tuple -GHC.Types -GHC.Unicode -GHC.Unit -GT -GeneralizedNewtypeDeriving -Generics -INCLUDE -INLINE -IO -IOError -IOException -ImplicitParams -ImplicitPrelude -ImpredicativeTypes -IncoherentInstances -Int -Integer -Integral -Just -KindSignatures -LANGUAGE -LINE -LT -Language.Haskell.Extension -Language.Haskell.Lexer -Language.Haskell.ParseMonad -Language.Haskell.ParseUtils -Language.Haskell.Parser -Language.Haskell.Pretty -Language.Haskell.Syntax -Language.Haskell.TH -Language.Haskell.TH.Lib -Language.Haskell.TH.Ppr -Language.Haskell.TH.PprLib -Language.Haskell.TH.Quote -Language.Haskell.TH.Syntax -Left -LiberalTypeSynonyms -MagicHash -Maybe -Monad -MonoPatBinds -MonomorphismRestriction -MultiParamTypeClasses -NOINLINE -NamedFieldPuns -Network -Network.BSD -Network.Socket -Network.URI -NewQualifiedOperators -NoArrows -NoBangPatterns -NoCPP -NoConstrainedClassMethods -NoDeriveDataTypeable -NoDisambiguateRecordFields -NoEmptyDataDecls -NoExistentialQuantification -NoExtendedDefaultRules -NoFlexibleContexts -NoFlexibleInstances -NoForeignFunctionInterface -NoFunctionnalDependencies -NoGADTs -NoGeneralizedNewtypeDeriving -NoGenerics -NoImplicitParams -NoImplicitPrelude -NoImpredicativeTypes -NoIncoherentInstances -NoKindSignatures -NoLiberalTypeSynonyms -NoMagicHash -NoMonoPatBinds -NoMonomorphismRestriction -NoMultiParamTypeClasses -NoNamedFieldPuns -NoNewQualifiedOperators -NoOverlappingInstances -NoOverloadedStrings -NoPArr -NoPackageImports -NoParallelListComp -NoPatternGuards -NoPolymorphicComponents -NoQuasiQuotes -NoRank2Types -NoRankNTypes -NoRecordWildCards -NoRecursiveDo -NoRelaxedPolyRec -NoScopedTypeVariables -NoStandaloneDeriving -NoTemplateHaskell -NoTransformListComp -NoTypeFamilies -NoTypeOperators -NoTypeSynonymInstances -NoUnboxedTuples -NoUndecidableInstances -NoUnicodeSyntax -NoUnliftedFFITypes -NoViewPatterns -Nothing -Num -Numeric -OPTIONS_GHC -Ord -Ordering -OverlappingInstances -OverloadedStrings -PArr -PackageImports -ParallelListComp -PatternGuards -PolymorphicComponents -Prelude -QuasiQuotes -RULES -Rank2Types -RankNTypes -Ratio -Read -ReadS -Real -RealFloat -RealFrac -RecordWildCards -RecursiveDo -RelaxedPolyRec -Right -SOURCE -SPECIALIZE -ScopedTypeVariables -ShowS -StandaloneDeriving -String -System.CPUTime -System.Cmd -System.Console.Editline -System.Console.GetOpt -System.Console.Readline -System.Directory -System.Environment -System.Exit -System.FilePath -System.FilePath.Posix -System.FilePath.Windows -System.IO -System.IO.Error -System.IO.Unsafe -System.Info -System.Locale -System.Mem -System.Mem.StableName -System.Mem.Weak -System.Posix -System.Posix.Directory -System.Posix.DynamicLinker -System.Posix.DynamicLinker.Module -System.Posix.DynamicLinker.Prim -System.Posix.Env -System.Posix.Error -System.Posix.Files -System.Posix.IO -System.Posix.Process -System.Posix.Process.Internals -System.Posix.Resource -System.Posix.Semaphore -System.Posix.SharedMem -System.Posix.Signals -System.Posix.Signals.Exts -System.Posix.Temp -System.Posix.Terminal -System.Posix.Time -System.Posix.Types -System.Posix.Unistd -System.Posix.User -System.Process -System.Random -System.Time -System.Timeout -TemplateHaskell -Test.HUnit -Test.HUnit.Base -Test.HUnit.Lang -Test.HUnit.Terminal -Test.HUnit.Text -Test.QuickCheck -Test.QuickCheck.Batch -Test.QuickCheck.Poly -Test.QuickCheck.Utils -Text.Html -Text.Html.BlockTable -Text.ParserCombinators.Parsec -Text.ParserCombinators.Parsec.Char -Text.ParserCombinators.Parsec.Combinator -Text.ParserCombinators.Parsec.Error -Text.ParserCombinators.Parsec.Expr -Text.ParserCombinators.Parsec.Language -Text.ParserCombinators.Parsec.Perm -Text.ParserCombinators.Parsec.Pos -Text.ParserCombinators.Parsec.Prim -Text.ParserCombinators.Parsec.Token -Text.ParserCombinators.ReadP -Text.ParserCombinators.ReadPrec -Text.PrettyPrint -Text.PrettyPrint.HughesPJ -Text.Printf -Text.Read -Text.Read.Lex -Text.Regex.Base -Text.Regex.Base.Context -Text.Regex.Base.Impl -Text.Regex.Base.RegexLike -Text.Regex.Posix -Text.Regex.Posix.ByteString -Text.Regex.Posix.String -Text.Regex.Posix.Wrap -Text.Show -Text.Show.Functions -Text.XHtml -Text.XHtml.Debug -Text.XHtml.Frameset -Text.XHtml.Strict -Text.XHtml.Table -Text.XHtml.Transitional -Trace.Hpc.Mix -Trace.Hpc.Reflect -Trace.Hpc.Tix -Trace.Hpc.Util -TransformListComp -True -TypeFamilies -TypeOperators -TypeSynonymInstances -UNPACK -UnboxedTuples -UndecidableInstances -UnicodeSyntax -UnliftedFFITypes -Unsafe.Coerce -ViewPatterns -WARNING -abs -acos -acosh -all -and -any -appendFile -as -asTypeOf -asin -asinh -atan -atan2 -atanh -break -case -catch -ceiling -class -compare -concat -concatMap -const -cos -cosh -curry -cycle -data -decodeFloat -default -deriving -div -divMod -do -drop -dropWhile -either -elem -else -encodeFloat -enumFrom -enumFromThen -enumFromThenTo -enumFromTo -error -exp -exponent -fail -filter -flip -floatDigits -floatRadix -floatRange -floor -fmap -fold -fold1 -foldr -foldr1 -fromEnum -fromInteger -fromIntegral -fromRational -fst -gcd -getChar -getContents -getLine -head -hiding -id -if -import -in -infix -infixl -infixr -init -instance -intract -ioError -isDenormalized -isIEEE -isInfinite -isNan -isNegativeZero -iterate -last -lcm -length -let -lex -lines -log -logBase -lookup -map -mapM -mapM_ -max -maxBound -maximum -maybe -min -minBound -minimum -mod -module -negate -newtype -not -notElem -null -odd -of -or -otherwise -pi -pred -print -product -properFraction -putChar -putStr -putStrLn -qualified -quot -quotRem -read -readFile -readIO -readList -readLn -readParen -reads -readsPrec -realtoFrac -recip -rem -repeat -replicate -return -reverse -round -scaleFloat -scanl -scanl1 -scanr -scanr1 -seq -sequence -sequence_ -show -showChar -showList -showParen -showString -shows -showsPrec -significand -signum -sin -sinh -snd -span -splitAt -sqrt -subtract -succ -sum -tail -take -takeWhile -tan -tanh -then -toEnum -toInteger -toRational -truncate -type -uncurry -undefined -unlines -until -unwords -unzip -unzip3 -userError -where -words -writeFile -zip -zip3 -zipWith -zipWith3 diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/java-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/java-mode deleted file mode 100644 index 4a29d4c..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/java-mode +++ /dev/null @@ -1,53 +0,0 @@ -abstract -assert -boolean -break -byte -case -catch -char -class -const -continue -default -do -double -else -enum -extends -final -finally -float -for -goto -if -implements -import -instanceof -int -interface -long -native -new -package -private -protected -public -return -short -static -strictfp -super -switch -synchronized -this -throw -throws -transient -try -void -volatile -while -@Override -@Deprecated -@SuppressWarnings diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/js-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/js-mode deleted file mode 100644 index 3d83f84..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/js-mode +++ /dev/null @@ -1,148 +0,0 @@ -Anchor -Area -Array -Boolean -Button -Checkbox -Date -Document -Element -FileUpload -Form -Frame -Function -Hidden -History -Image -Infinity -JavaArray -JavaClass -JavaObject -JavaPackage -Link -Location -Math -MimeType -NaN -Navigator -Number -Object -Option -Packages -Password -Plugin -Radio -RegExp -Reset -Select -String -Submit -Text -Textarea -Window -alert -arguments -assign -blur -break -callee -caller -captureEvents -case -clearInterval -clearTimeout -close -closed -comment -confirm -constructor -continue -default -defaultStatus -delete -do -document -else -escape -eval -export -find -focus -for -frames -function -getClass -history -home -if -import -in -innerHeight -innerWidth -isFinite -isNan -java -label -length -location -locationbar -menubar -moveBy -moveTo -name -navigate -navigator -netscape -new -onBlur -onError -onFocus -onLoad -onUnload -open -opener -outerHeight -outerWidth -pageXoffset -pageYoffset -parent -parseFloat -parseInt -personalbar -print -prompt -prototype -ref -releaseEvents -resizeBy -resizeTo -return -routeEvent -scroll -scrollBy -scrollTo -scrollbars -self -setInterval -setTimeout -status -statusbar -stop -sun -switch -taint -this -toString -toolbar -top -typeof -unescape -untaint -unwatch -valueOf -var -void -watch -while -window -with diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/julia-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/julia-mode deleted file mode 100644 index 3a4ad7d..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/julia-mode +++ /dev/null @@ -1,37 +0,0 @@ -abstract -break -case -catch -const -continue -do -else -elseif -end -eval -export -false -finally -for -function -global -if -ifelse -immutable -import -importall -in -let -macro -module -otherwise -quote -return -switch -throw -true -try -type -typealias -using -while diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/lua-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/lua-mode deleted file mode 100644 index d0de6a4..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/lua-mode +++ /dev/null @@ -1,21 +0,0 @@ -and -break -do -else -elseif -end -false -for -function -if -in -local -nil -not -or -repeat -return -then -true -until -while diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/nim-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/nim-mode deleted file mode 100644 index 393bf1a..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/nim-mode +++ /dev/null @@ -1,70 +0,0 @@ -addr -and -as -asm -atomic -bind -block -break -case -cast -concept -const -continue -converter -defer -discard -distinct -div -do -elif -else -end -enum -except -export -finally -for -from -func -generic -if -import -in -include -interface -is -isnot -iterator -let -macro -method -mixin -mod -nil -not -notin -object -of -or -out -proc -ptr -raise -ref -return -shl -shr -static -template -try -tuple -type -using -var -when -while -with -without -xor -yield diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/objc-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/objc-mode deleted file mode 100644 index b504d8b..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/objc-mode +++ /dev/null @@ -1,161 +0,0 @@ -auto -break -case -char -const -continue -default -do -double -else -enum -extern -float -for -goto -if -inline -int -long -register -restrict -return -short -signed -sizeof -static -struct -switch -typedef -union -unsigned -void -volatile -while -_Alignas -_Alignof -_Atomic -_Bool -_Complex -_Generic -_Imaginary -_Noreturn -_Static_assert -_Thread_local -alignas -alignof -atomic_ -bool -complex -imaginary -noreturn -static_assert -thread_local -#if -#elif -#else -#endif -defined -#ifdef -#ifndef -#define -#undef -#include -#line -#error -#pragma -_Pragma -asm -fortran -#import -self -_cmd -instancetype -__bridge -__bridge_transfer -__bridge_retained -__bridge_retain -@not_keyword -@class -@compatibility_alias -@defs -@encode -@end -@implementation -@interface -@private -@protected -@protocol -@public -@selector -@throw -@try -@catch -@finally -@synchronized -@autoreleasepool -@property -@package -@required -@optional -@synthesize -@dynamic -@import -@available -__attribute__((visibility("default"))) -__attribute__((visibility("hidden"))) -__attribute__((deprecated)) -__attribute__((unavailable)) -__attribute__((objc_exception)) -__attribute__((objc_root_class)) -__covariant -__contravariant -__kindof -getter= -setter= -readonly -readwrite -assign -retain -copy -nonatomic -atomic -strong -weak -unsafe_unretained -nonnull -nullable -null_unspecified -null_resettable -class -__attribute__((deprecated)) -in -out -inout -oneway -bycopy -byref -nonnull -nullable -null_unspecified -__attribute__((unused)) -super -true -false -__objc_yes -__objc_no -Class -id -SEL -IMP -BOOL -STR -NSInteger -NSUInteger -YES -NO -Nil -nil -__strong -__unsafe_unretained -__autoreleasing diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/octave-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/octave-mode deleted file mode 100644 index 77c4ea1..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/octave-mode +++ /dev/null @@ -1,46 +0,0 @@ -# GNU Octave, and probably proprietary MATLAB -# https://www.gnu.org/software/octave/doc/interpreter/Keywords.html - -__FILE__ -__LINE__ -break -case -catch -classdef -continue -do -else -elseif -end -end_try_catch -end_unwind_protect -endclassdef -endenumeration -endevents -endfor -endfunction -endif -endmethods -endparfor -endproperties -endswitch -endwhile -enumeration -events -for -function -global -if -methods -otherwise -parfor -persistent -properties -return -static -switch -try -unitl -unwind_protect -unwind_protect_cleanup -while diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/php-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/php-mode deleted file mode 100644 index 07f2e89..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/php-mode +++ /dev/null @@ -1,6144 +0,0 @@ -abs -acos -acosh -addcslashes -addslashes -aggregate -aggregate_info -aggregate_methods -aggregate_methods_by_list -aggregate_methods_by_regexp -aggregate_properties -aggregate_properties_by_list -aggregate_properties_by_regexp -aggregation_info -amqpconnection -amqpexchange -amqpqueue -and -apache_child_terminate -apache_getenv -apache_get_modules -apache_get_version -apache_lookup_uri -apache_note -apache_request_headers -apache_reset_timeout -apache_response_headers -apache_setenv -apc_add -apc_bin_dump -apc_bin_dumpfile -apc_bin_load -apc_bin_loadfile -apc_cache_info -apc_cas -apc_clear_cache -apc_compile_file -apc_dec -apc_define_constants -apc_delete -apc_delete_file -apc_exists -apc_fetch -apc_inc -apciterator -apc_load_constants -apc_sma_info -apc_store -apd_breakpoint -apd_callstack -apd_clunk -apd_continue -apd_croak -apd_dump_function_table -apd_dump_persistent_resources -apd_dump_regular_resources -apd_echo -apd_get_active_symbols -apd_set_pprof_trace -apd_set_session -apd_set_session_trace -apd_set_session_trace_socket -appenditerator -array -arrayaccess -array_change_key_case -array_chunk -array_combine -array_count_values -array_diff -array_diff_assoc -array_diff_key -array_diff_uassoc -array_diff_ukey -array_fill -array_fill_keys -array_filter -array_flip -array_intersect -array_intersect_assoc -array_intersect_key -array_intersect_uassoc -array_intersect_ukey -arrayiterator -array_key_exists -array_keys -array_map -array_merge -array_merge_recursive -array_multisort -arrayobject -array_pad -array_pop -array_product -array_push -array_rand -array_reduce -array_replace -array_replace_recursive -array_reverse -array_search -array_shift -array_slice -array_splice -array_sum -array_udiff -array_udiff_assoc -array_udiff_uassoc -array_uintersect -array_uintersect_assoc -array_uintersect_uassoc -array_unique -array_unshift -array_values -array_walk -array_walk_recursive -arsort -as -asin -asinh -asort -assert -assert_options -atan -atan2 -atanh -badfunctioncallexception -badmethodcallexception -base64_decode -base64_encode -base_convert -basename -bbcode_add_element -bbcode_add_smiley -bbcode_create -bbcode_destroy -bbcode_parse -bbcode_set_arg_parser -bbcode_set_flags -bcadd -bccomp -bcdiv -bcmod -bcmul -bcompiler_load -bcompiler_load_exe -bcompiler_parse_class -bcompiler_read -bcompiler_write_class -bcompiler_write_constant -bcompiler_write_exe_footer -bcompiler_write_file -bcompiler_write_footer -bcompiler_write_function -bcompiler_write_functions_from_file -bcompiler_write_header -bcompiler_write_included_filename -bcpow -bcpowmod -bcscale -bcsqrt -bcsub -bin2hex -bindec -bindtextdomain -bind_textdomain_codeset -break -bson_decode -bson_encode -bumpValue -bzclose -bzcompress -bzdecompress -bzerrno -bzerror -bzerrstr -bzflush -bzopen -bzread -bzwrite -cachingiterator -cairo -cairoantialias -cairocontent -cairocontext -cairo_create -cairoexception -cairoextend -cairofillrule -cairofilter -cairofontface -cairo_font_face_get_type -cairo_font_face_status -cairofontoptions -cairo_font_options_create -cairo_font_options_equal -cairo_font_options_get_antialias -cairo_font_options_get_hint_metrics -cairo_font_options_get_hint_style -cairo_font_options_get_subpixel_order -cairo_font_options_hash -cairo_font_options_merge -cairo_font_options_set_antialias -cairo_font_options_set_hint_metrics -cairo_font_options_set_hint_style -cairo_font_options_set_subpixel_order -cairo_font_options_status -cairofontslant -cairofonttype -cairofontweight -cairoformat -cairo_format_stride_for_width -cairogradientpattern -cairohintmetrics -cairohintstyle -cairoimagesurface -cairo_image_surface_create -cairo_image_surface_create_for_data -cairo_image_surface_create_from_png -cairo_image_surface_get_data -cairo_image_surface_get_format -cairo_image_surface_get_height -cairo_image_surface_get_stride -cairo_image_surface_get_width -cairolineargradient -cairolinecap -cairolinejoin -cairomatrix -cairo_matrix_create_scale -cairo_matrix_create_translate -cairo_matrix_invert -cairo_matrix_multiply -cairo_matrix_rotate -cairo_matrix_transform_distance -cairo_matrix_transform_point -cairo_matrix_translate -cairooperator -cairopath -cairopattern -cairo_pattern_add_color_stop_rgb -cairo_pattern_add_color_stop_rgba -cairo_pattern_create_for_surface -cairo_pattern_create_linear -cairo_pattern_create_radial -cairo_pattern_create_rgb -cairo_pattern_create_rgba -cairo_pattern_get_color_stop_count -cairo_pattern_get_color_stop_rgba -cairo_pattern_get_extend -cairo_pattern_get_filter -cairo_pattern_get_linear_points -cairo_pattern_get_matrix -cairo_pattern_get_radial_circles -cairo_pattern_get_rgba -cairo_pattern_get_surface -cairo_pattern_get_type -cairo_pattern_set_extend -cairo_pattern_set_filter -cairo_pattern_set_matrix -cairo_pattern_status -cairopatterntype -cairopdfsurface -cairo_pdf_surface_create -cairo_pdf_surface_set_size -cairo_ps_get_levels -cairopslevel -cairo_ps_level_to_string -cairopssurface -cairo_ps_surface_create -cairo_ps_surface_dsc_begin_page_setup -cairo_ps_surface_dsc_begin_setup -cairo_ps_surface_dsc_comment -cairo_ps_surface_get_eps -cairo_ps_surface_restrict_to_level -cairo_ps_surface_set_eps -cairo_ps_surface_set_size -cairoradialgradient -cairoscaledfont -cairo_scaled_font_create -cairo_scaled_font_extents -cairo_scaled_font_get_ctm -cairo_scaled_font_get_font_face -cairo_scaled_font_get_font_matrix -cairo_scaled_font_get_font_options -cairo_scaled_font_get_scale_matrix -cairo_scaled_font_get_type -cairo_scaled_font_glyph_extents -cairo_scaled_font_status -cairo_scaled_font_text_extents -cairosolidpattern -cairostatus -cairosubpixelorder -cairosurface -cairo_surface_copy_page -cairo_surface_create_similar -cairo_surface_finish -cairo_surface_flush -cairo_surface_get_content -cairo_surface_get_device_offset -cairo_surface_get_font_options -cairo_surface_get_type -cairo_surface_mark_dirty -cairo_surface_mark_dirty_rectangle -cairosurfacepattern -cairo_surface_set_device_offset -cairo_surface_set_fallback_resolution -cairo_surface_show_page -cairo_surface_status -cairosurfacetype -cairo_surface_write_to_png -cairosvgsurface -cairo_svg_surface_create -cairo_svg_surface_restrict_to_version -cairosvgversion -cairo_svg_version_to_string -cairotoyfontface -calculhmac -calcul_hmac -cal_days_in_month -cal_from_jd -cal_info -__call() -callbackfilteriterator -__callStatic() -call_user_func -call_user_func_array -call_user_method -call_user_method_array -cal_to_jd -case -catch -ceil -cfunction -chdb -chdb_create -chdir -checkdate -checkdnsrr -chgrp -chmod -chop -chown -chr -chroot -chunk_split -class -__CLASS__ -class_alias -class_exists -class_implements -classkit_import -classkit_method_add -classkit_method_copy -classkit_method_redefine -classkit_method_remove -classkit_method_rename -class_parents -clearstatcache -clone -__clone() -closedir -closelog -collator -com -com_addref -com_create_guid -com_event_sink -com_get -com_get_active_object -com_invoke -com_isenum -com_load -com_load_typelib -com_message_pump -compact -com_print_typeinfo -com_propget -com_propput -com_propset -com_release -com_set -connection_aborted -connection_status -connection_timeout -const -constant -construct -__construct() -continue -convert_cyr_string -convert_uudecode -convert_uuencode -copy -cos -cosh -count -countable -count_chars -counter_bump -counter_bump_value -counter_create -counter_get -counter_get_meta -counter_get_named -counter_get_value -counter_reset -counter_reset_value -crack_check -crack_closedict -crack_getlastmessage -crack_opendict -crc32 -create_function -crypt -ctype_alnum -ctype_alpha -ctype_cntrl -ctype_digit -ctype_graph -ctype_lower -ctype_print -ctype_punct -ctype_space -ctype_upper -ctype_xdigit -cubrid_affected_rows -cubrid_bind -cubrid_client_encoding -cubrid_close -cubrid_close_prepare -cubrid_close_request -cubrid_col_get -cubrid_col_size -cubrid_column_names -cubrid_column_types -cubrid_commit -cubrid_connect -cubrid_connect_with_url -cubrid_current_oid -cubrid_data_seek -cubrid_db_name -cubrid_disconnect -cubrid_drop -cubrid_errno -cubrid_error -cubrid_error_code -cubrid_error_code_facility -cubrid_error_msg -cubrid_execute -cubrid_fetch -cubrid_fetch_array -cubrid_fetch_assoc -cubrid_fetch_field -cubrid_fetch_lengths -cubrid_fetch_object -cubrid_fetch_row -cubrid_field_flags -cubrid_field_len -cubrid_field_name -cubrid_field_seek -cubrid_field_table -cubrid_field_type -cubrid_free_result -cubrid_get -cubrid_get_autocommit -cubrid_get_charset -cubrid_get_class_name -cubrid_get_client_info -cubrid_get_db_parameter -cubrid_get_server_info -cubrid_insert_id -cubrid_is_instance -cubrid_list_dbs -cubrid_load_from_glo -cubrid_lob_close -cubrid_lob_export -cubrid_lob_get -cubrid_lob_send -cubrid_lob_size -cubrid_lock_read -cubrid_lock_write -cubrid_move_cursor -cubrid_new_glo -cubrid_next_result -cubrid_num_cols -cubrid_num_fields -cubrid_num_rows -cubrid_ping -cubrid_prepare -cubrid_put -cubrid_query -cubrid_real_escape_string -cubrid_result -cubrid_rollback -cubrid_save_to_glo -cubrid_schema -cubrid_send_glo -cubrid_seq_drop -cubrid_seq_insert -cubrid_seq_put -cubrid_set_add -cubrid_set_autocommit -cubrid_set_db_parameter -cubrid_set_drop -cubrid_unbuffered_query -cubrid_version -curl_close -curl_copy_handle -curl_errno -curl_error -curl_exec -curl_getinfo -curl_init -curl_multi_add_handle -curl_multi_close -curl_multi_exec -curl_multi_getcontent -curl_multi_info_read -curl_multi_init -curl_multi_remove_handle -curl_multi_select -curl_setopt -curl_setopt_array -curl_version -current -cyrus_authenticate -cyrus_bind -cyrus_close -cyrus_connect -cyrus_query -cyrus_unbind -date -date_add -date_create -date_create_from_format -date_date_set -date_default_timezone_get -date_default_timezone_set -date_diff -date_format -date_get_last_errors -dateinterval -date_interval_create_from_date_string -date_interval_format -date_isodate_set -date_modify -date_offset_get -date_parse -date_parse_from_format -dateperiod -date_sub -date_sun_info -date_sunrise -date_sunset -datetime -date_time_set -date_timestamp_get -date_timestamp_set -datetimezone -date_timezone_get -date_timezone_set -db2_autocommit -db2_bind_param -db2_client_info -db2_close -db2_column_privileges -db2_columns -db2_commit -db2_connect -db2_conn_error -db2_conn_errormsg -db2_cursor_type -db2_escape_string -db2_exec -db2_execute -db2_fetch_array -db2_fetch_assoc -db2_fetch_both -db2_fetch_object -db2_fetch_row -db2_field_display_size -db2_field_name -db2_field_num -db2_field_precision -db2_field_scale -db2_field_type -db2_field_width -db2_foreign_keys -db2_free_result -db2_free_stmt -db2_get_option -db2_last_insert_id -db2_lob_read -db2_next_result -db2_num_fields -db2_num_rows -db2_pclose -db2_pconnect -db2_prepare -db2_primary_keys -db2_procedure_columns -db2_procedures -db2_result -db2_rollback -db2_server_info -db2_set_option -db2_special_columns -db2_statistics -db2_stmt_error -db2_stmt_errormsg -db2_table_privileges -db2_tables -dba_close -dba_delete -dba_exists -dba_fetch -dba_firstkey -dba_handlers -dba_insert -dba_key_split -dba_list -dba_nextkey -dba_open -dba_optimize -dba_popen -dba_replace -dbase_add_record -dbase_close -dbase_create -dbase_delete_record -dbase_get_header_info -dbase_get_record -dbase_get_record_with_names -dbase_numfields -dbase_numrecords -dbase_open -dbase_pack -dbase_replace_record -dba_sync -dbplus_add -dbplus_aql -dbplus_chdir -dbplus_close -dbplus_curr -dbplus_errcode -dbplus_errno -dbplus_find -dbplus_first -dbplus_flush -dbplus_freealllocks -dbplus_freelock -dbplus_freerlocks -dbplus_getlock -dbplus_getunique -dbplus_info -dbplus_last -dbplus_lockrel -dbplus_next -dbplus_open -dbplus_prev -dbplus_rchperm -dbplus_rcreate -dbplus_rcrtexact -dbplus_rcrtlike -dbplus_resolve -dbplus_restorepos -dbplus_rkeys -dbplus_ropen -dbplus_rquery -dbplus_rrename -dbplus_rsecindex -dbplus_runlink -dbplus_rzap -dbplus_savepos -dbplus_setindex -dbplus_setindexbynumber -dbplus_sql -dbplus_tcl -dbplus_tremove -dbplus_undo -dbplus_undoprepare -dbplus_unlockrel -dbplus_unselect -dbplus_update -dbplus_xlockrel -dbplus_xunlockrel -dbx_close -dbx_compare -dbx_connect -dbx_error -dbx_escape_string -dbx_fetch_row -dbx_query -dbx_sort -dcgettext -dcngettext -deaggregate -debug_backtrace -debug_print_backtrace -debug_zval_dump -decbin -dechex -declare -decoct -default -define -defined -define_syslog_variables -deg2rad -delete -__destruct() -dgettext -die -dio_close -dio_fcntl -dio_open -dio_read -dio_seek -dio_stat -dio_tcsetattr -dio_truncate -dio_write -dir -__DIR__ -directoryiterator -dirname -diskfreespace -disk_free_space -disk_total_space -dl -dngettext -dns_check_record -dns_get_mx -dns_get_record -do -domainexception -domattr -domattribute_name -domattribute_set_value -domattribute_specified -domattribute_value -domcharacterdata -domcomment -domdocument -domdocument_add_root -domdocument_create_attribute -domdocument_create_cdata_section -domdocument_create_comment -domdocument_create_element -domdocument_create_element_ns -domdocument_create_entity_reference -domdocument_create_processing_instruction -domdocument_create_text_node -domdocument_doctype -domdocument_document_element -domdocument_dump_file -domdocument_dump_mem -domdocumentfragment -domdocument_get_element_by_id -domdocument_get_elements_by_tagname -domdocument_html_dump_mem -domdocumenttype -domdocumenttype_entities -domdocumenttype_internal_subset -domdocumenttype_name -domdocumenttype_notations -domdocumenttype_public_id -domdocumenttype_system_id -domdocument_xinclude -domelement -domelement_get_attribute -domelement_get_attribute_node -domelement_get_elements_by_tagname -domelement_has_attribute -domelement_remove_attribute -domelement_set_attribute -domelement_set_attribute_node -domelement_tagname -domentity -domentityreference -domexception -domimplementation -dom_import_simplexml -domnamednodemap -domnode -domnode_add_namespace -domnode_append_child -domnode_append_sibling -domnode_attributes -domnode_child_nodes -domnode_clone_node -domnode_dump_node -domnode_first_child -domnode_get_content -domnode_has_attributes -domnode_has_child_nodes -domnode_insert_before -domnode_is_blank_node -domnode_last_child -domnodelist -domnode_next_sibling -domnode_node_name -domnode_node_type -domnode_node_value -domnode_owner_document -domnode_parent_node -domnode_prefix -domnode_previous_sibling -domnode_remove_child -domnode_replace_child -domnode_replace_node -domnode_set_content -domnode_set_name -domnode_set_namespace -domnode_unlink_node -domnotation -domprocessinginstruction -domprocessinginstruction_data -domprocessinginstruction_target -domtext -domxml_new_doc -domxml_open_file -domxml_open_mem -domxml_version -domxml_xmltree -domxml_xslt_stylesheet -domxml_xslt_stylesheet_doc -domxml_xslt_stylesheet_file -domxml_xslt_version -domxpath -domxsltstylesheet_process -domxsltstylesheet_result_dump_file -domxsltstylesheet_result_dump_mem -dotnet -dotnet_load -doubleval -each -easter_date -easter_days -echo -else -elseif -empty -emptyiterator -enchant_broker_describe -enchant_broker_dict_exists -enchant_broker_free -enchant_broker_free_dict -enchant_broker_get_error -enchant_broker_init -enchant_broker_list_dicts -enchant_broker_request_dict -enchant_broker_request_pwl_dict -enchant_broker_set_ordering -enchant_dict_add_to_personal -enchant_dict_add_to_session -enchant_dict_check -enchant_dict_describe -enchant_dict_get_error -enchant_dict_is_in_session -enchant_dict_quick_check -enchant_dict_store_replacement -enchant_dict_suggest -end -enddeclare -endfor -endforeach -endif -endswitch -endwhile -ereg -eregi -eregi_replace -ereg_replace -errorexception -error_get_last -error_log -error_reporting -escapeshellarg -escapeshellcmd -eval -event_add -event_base_free -event_base_loop -event_base_loopbreak -event_base_loopexit -event_base_new -event_base_priority_init -event_base_set -event_buffer_base_set -event_buffer_disable -event_buffer_enable -event_buffer_fd_set -event_buffer_free -event_buffer_new -event_buffer_priority_set -event_buffer_read -event_buffer_set_callback -event_buffer_timeout_set -event_buffer_watermark_set -event_buffer_write -event_del -event_free -event_new -event_set -exception -exec -exif_imagetype -exif_read_data -exif_tagname -exif_thumbnail -exit -exp -expect_expectl -expect_popen -explode -expm1 -export -extends -extension_loaded -extract -ezmlm_hash -fam_cancel_monitor -fam_close -fam_monitor_collection -fam_monitor_directory -fam_monitor_file -fam_next_event -fam_open -fam_pending -fam_resume_monitor -fam_suspend_monitor -fbsql_affected_rows -fbsql_autocommit -fbsql_blob_size -fbsql_change_user -fbsql_clob_size -fbsql_close -fbsql_commit -fbsql_connect -fbsql_create_blob -fbsql_create_clob -fbsql_create_db -fbsql_database -fbsql_database_password -fbsql_data_seek -fbsql_db_query -fbsql_db_status -fbsql_drop_db -fbsql_errno -fbsql_error -fbsql_fetch_array -fbsql_fetch_assoc -fbsql_fetch_field -fbsql_fetch_lengths -fbsql_fetch_object -fbsql_fetch_row -fbsql_field_flags -fbsql_field_len -fbsql_field_name -fbsql_field_seek -fbsql_field_table -fbsql_field_type -fbsql_free_result -fbsql_get_autostart_info -fbsql_hostname -fbsql_insert_id -fbsql_list_dbs -fbsql_list_fields -fbsql_list_tables -fbsql_next_result -fbsql_num_fields -fbsql_num_rows -fbsql_password -fbsql_pconnect -fbsql_query -fbsql_read_blob -fbsql_read_clob -fbsql_result -fbsql_rollback -fbsql_rows_fetched -fbsql_select_db -fbsql_set_characterset -fbsql_set_lob_mode -fbsql_set_password -fbsql_set_transaction -fbsql_start_db -fbsql_stop_db -fbsql_tablename -fbsql_table_name -fbsql_username -fbsql_warnings -fclose -fdf_add_doc_javascript -fdf_add_template -fdf_close -fdf_create -fdf_enum_values -fdf_errno -fdf_error -fdf_get_ap -fdf_get_attachment -fdf_get_encoding -fdf_get_file -fdf_get_flags -fdf_get_opt -fdf_get_status -fdf_get_value -fdf_get_version -fdf_header -fdf_next_field_name -fdf_open -fdf_open_string -fdf_remove_item -fdf_save -fdf_save_string -fdf_set_ap -fdf_set_encoding -fdf_set_file -fdf_set_flags -fdf_set_javascript_action -fdf_set_on_import_javascript -fdf_set_opt -fdf_set_status -fdf_set_submit_form_action -fdf_set_target_frame -fdf_set_value -fdf_set_version -feof -fflush -fgetc -fgetcsv -fgets -fgetss -file -__FILE__ -fileatime -filectime -file_exists -file_get_contents -filegroup -fileinode -filemtime -fileowner -fileperms -filepro -filepro_fieldcount -filepro_fieldname -filepro_fieldtype -filepro_fieldwidth -filepro_retrieve -filepro_rowcount -file_put_contents -filesize -filesystemiterator -filetype -filter_has_var -filter_id -filter_input -filter_input_array -filteriterator -filter_list -filter_var -filter_var_array -final -finfo_buffer -finfo_close -finfo_file -finfo_open -finfo_set_flags -floatval -flock -floor -flush -fmod -fnmatch -fopen -for -foreach -forward_static_call -forward_static_call_array -fpassthru -fprintf -fputcsv -fputs -fread -frenchtojd -fribidi_log2vis -fscanf -fseek -fsockopen -fstat -ftell -ftok -ftp_alloc -ftp_cdup -ftp_chdir -ftp_chmod -ftp_close -ftp_connect -ftp_delete -ftp_exec -ftp_fget -ftp_fput -ftp_get -ftp_get_option -ftp_login -ftp_mdtm -ftp_mkdir -ftp_nb_continue -ftp_nb_fget -ftp_nb_fput -ftp_nb_get -ftp_nb_put -ftp_nlist -ftp_pasv -ftp_put -ftp_pwd -ftp_quit -ftp_raw -ftp_rawlist -ftp_rename -ftp_rmdir -ftp_set_option -ftp_site -ftp_size -ftp_ssl_connect -ftp_systype -ftruncate -func_get_arg -func_get_args -func_num_args -function -__FUNCTION__ -function_exists -fwrite -gc_collect_cycles -gc_disable -gc_enable -gc_enabled -gd_info -gearmanclient -gearmanjob -gearmantask -gearmanworker -geoip_continent_code_by_name -geoip_country_code3_by_name -geoip_country_code_by_name -geoip_country_name_by_name -geoip_database_info -geoip_db_avail -geoip_db_filename -geoip_db_get_all_info -geoip_id_by_name -geoip_isp_by_name -geoip_org_by_name -geoip_record_by_name -geoip_region_by_name -geoip_region_name_by_code -geoip_time_zone_by_country_and_region -__get() -getallheaders -get_browser -get_called_class -get_cfg_var -get_class -get_class_methods -get_class_vars -getclosure -getconstant -getconstants -getconstructor -get_current_user -getcwd -getdate -get_declared_classes -get_declared_interfaces -getdefaultproperties -get_defined_constants -get_defined_functions -get_defined_vars -getdoccomment -getendline -getenv -getextension -get_extension_funcs -getextensionname -getfilename -get_headers -gethostbyaddr -gethostbyname -gethostbynamel -gethostname -get_html_translation_table -getimagesize -get_included_files -get_include_path -getinterfacenames -getinterfaces -getlastmod -get_loaded_extensions -get_magic_quotes_gpc -get_magic_quotes_runtime -getMeta -get_meta_tags -getmethod -getmethods -getmodifiers -getmxrr -getmygid -getmyinode -getmypid -getmyuid -getname -getNamed -getnamespacename -get_object_vars -getopt -getparentclass -get_parent_class -getproperties -getproperty -getprotobyname -getprotobynumber -getrandmax -get_required_files -get_resource_type -getrusage -getservbyname -getservbyport -getshortname -getstartline -getstaticproperties -getstaticpropertyvalue -gettext -gettimeofday -gettraitaliases -gettraitnames -gettraits -gettype -getValue -glob -global -globiterator -gmagick -gmagickdraw -gmagickpixel -gmdate -gmmktime -gmp_abs -gmp_add -gmp_and -gmp_clrbit -gmp_cmp -gmp_com -gmp_div -gmp_divexact -gmp_div_q -gmp_div_qr -gmp_div_r -gmp_fact -gmp_gcd -gmp_gcdext -gmp_hamdist -gmp_init -gmp_intval -gmp_invert -gmp_jacobi -gmp_legendre -gmp_mod -gmp_mul -gmp_neg -gmp_nextprime -gmp_or -gmp_perfect_square -gmp_popcount -gmp_pow -gmp_powm -gmp_prob_prime -gmp_random -gmp_scan0 -gmp_scan1 -gmp_setbit -gmp_sign -gmp_sqrt -gmp_sqrtrem -gmp_strval -gmp_sub -gmp_testbit -gmp_xor -gmstrftime -gnupg_adddecryptkey -gnupg_addencryptkey -gnupg_addsignkey -gnupg_cleardecryptkeys -gnupg_clearencryptkeys -gnupg_clearsignkeys -gnupg_decrypt -gnupg_decryptverify -gnupg_encrypt -gnupg_encryptsign -gnupg_export -gnupg_geterror -gnupg_getprotocol -gnupg_import -gnupg_init -gnupg_keyinfo -gnupg_setarmor -gnupg_seterrormode -gnupg_setsignmode -gnupg_sign -gnupg_verify -gopher_parsedir -goto -grapheme_extract -grapheme_stripos -grapheme_stristr -grapheme_strlen -grapheme_strpos -grapheme_strripos -grapheme_strrpos -grapheme_strstr -grapheme_substr -gregoriantojd -gupnp_context_get_host_ip -gupnp_context_get_port -gupnp_context_get_subscription_timeout -gupnp_context_host_path -gupnp_context_new -gupnp_context_set_subscription_timeout -gupnp_context_timeout_add -gupnp_context_unhost_path -gupnp_control_point_browse_start -gupnp_control_point_browse_stop -gupnp_control_point_callback_set -gupnp_control_point_new -gupnp_device_action_callback_set -gupnp_device_info_get -gupnp_device_info_get_service -gupnp_root_device_get_available -gupnp_root_device_get_relative_location -gupnp_root_device_new -gupnp_root_device_set_available -gupnp_root_device_start -gupnp_root_device_stop -gupnp_service_action_get -gupnp_service_action_return -gupnp_service_action_return_error -gupnp_service_action_set -gupnp_service_freeze_notify -gupnp_service_info_get -gupnp_service_info_get_introspection -gupnp_service_introspection_get_state_variable -gupnp_service_notify -gupnp_service_proxy_action_get -gupnp_service_proxy_action_set -gupnp_service_proxy_add_notify -gupnp_service_proxy_callback_set -gupnp_service_proxy_get_subscribed -gupnp_service_proxy_remove_notify -gupnp_service_proxy_set_subscribed -gupnp_service_thaw_notify -gzclose -gzcompress -gzdecode -gzdeflate -gzencode -gzeof -gzfile -gzgetc -gzgets -gzgetss -gzinflate -gzopen -gzpassthru -gzputs -gzread -gzrewind -gzseek -gztell -gzuncompress -gzwrite -halt_compiler -haruannotation -haruannotation_setborderstyle -haruannotation_sethighlightmode -haruannotation_seticon -haruannotation_setopened -harudestination -harudestination_setfit -harudestination_setfitb -harudestination_setfitbh -harudestination_setfitbv -harudestination_setfith -harudestination_setfitr -harudestination_setfitv -harudestination_setxyz -harudoc -harudoc_addpage -harudoc_addpagelabel -harudoc_construct -harudoc_createoutline -harudoc_getcurrentencoder -harudoc_getcurrentpage -harudoc_getencoder -harudoc_getfont -harudoc_getinfoattr -harudoc_getpagelayout -harudoc_getpagemode -harudoc_getstreamsize -harudoc_insertpage -harudoc_loadjpeg -harudoc_loadpng -harudoc_loadraw -harudoc_loadttc -harudoc_loadttf -harudoc_loadtype1 -harudoc_output -harudoc_readfromstream -harudoc_reseterror -harudoc_resetstream -harudoc_save -harudoc_savetostream -harudoc_setcompressionmode -harudoc_setcurrentencoder -harudoc_setencryptionmode -harudoc_setinfoattr -harudoc_setinfodateattr -harudoc_setopenaction -harudoc_setpagelayout -harudoc_setpagemode -harudoc_setpagesconfiguration -harudoc_setpassword -harudoc_setpermission -harudoc_usecnsencodings -harudoc_usecnsfonts -harudoc_usecntencodings -harudoc_usecntfonts -harudoc_usejpencodings -harudoc_usejpfonts -harudoc_usekrencodings -harudoc_usekrfonts -haruencoder -haruencoder_getbytetype -haruencoder_gettype -haruencoder_getunicode -haruencoder_getwritingmode -haruexception -harufont -harufont_getascent -harufont_getcapheight -harufont_getdescent -harufont_getencodingname -harufont_getfontname -harufont_gettextwidth -harufont_getunicodewidth -harufont_getxheight -harufont_measuretext -haruimage -haruimage_getbitspercomponent -haruimage_getcolorspace -haruimage_getheight -haruimage_getsize -haruimage_getwidth -haruimage_setcolormask -haruimage_setmaskimage -haruoutline -haruoutline_setdestination -haruoutline_setopened -harupage -harupage_arc -harupage_begintext -harupage_circle -harupage_closepath -harupage_concat -harupage_createdestination -harupage_createlinkannotation -harupage_createtextannotation -harupage_createurlannotation -harupage_curveto -harupage_curveto2 -harupage_curveto3 -harupage_drawimage -harupage_ellipse -harupage_endpath -harupage_endtext -harupage_eofill -harupage_eofillstroke -harupage_fill -harupage_fillstroke -harupage_getcharspace -harupage_getcmykfill -harupage_getcmykstroke -harupage_getcurrentfont -harupage_getcurrentfontsize -harupage_getcurrentpos -harupage_getcurrenttextpos -harupage_getdash -harupage_getfillingcolorspace -harupage_getflatness -harupage_getgmode -harupage_getgrayfill -harupage_getgraystroke -harupage_getheight -harupage_gethorizontalscaling -harupage_getlinecap -harupage_getlinejoin -harupage_getlinewidth -harupage_getmiterlimit -harupage_getrgbfill -harupage_getrgbstroke -harupage_getstrokingcolorspace -harupage_gettextleading -harupage_gettextmatrix -harupage_gettextrenderingmode -harupage_gettextrise -harupage_gettextwidth -harupage_gettransmatrix -harupage_getwidth -harupage_getwordspace -harupage_lineto -harupage_measuretext -harupage_movetextpos -harupage_moveto -harupage_movetonextline -harupage_rectangle -harupage_setcharspace -harupage_setcmykfill -harupage_setcmykstroke -harupage_setdash -harupage_setflatness -harupage_setfontandsize -harupage_setgrayfill -harupage_setgraystroke -harupage_setheight -harupage_sethorizontalscaling -harupage_setlinecap -harupage_setlinejoin -harupage_setlinewidth -harupage_setmiterlimit -harupage_setrgbfill -harupage_setrgbstroke -harupage_setrotate -harupage_setsize -harupage_setslideshow -harupage_settextleading -harupage_settextmatrix -harupage_settextrenderingmode -harupage_settextrise -harupage_setwidth -harupage_setwordspace -harupage_showtext -harupage_showtextnextline -harupage_stroke -harupage_textout -harupage_textrect -hasconstant -hash -hash_algos -hash_copy -hash_file -hash_final -hash_hmac -hash_hmac_file -hash_init -hash_update -hash_update_file -hash_update_stream -hasmethod -hasproperty -header -header_register_callback -header_remove -headers_list -headers_sent -hebrev -hebrevc -hex2bin -hexdec -highlight_file -highlight_string -htmlentities -html_entity_decode -htmlspecialchars -htmlspecialchars_decode -http_build_cookie -http_build_query -http_build_str -http_build_url -http_cache_etag -http_cache_last_modified -http_chunked_decode -http_date -http_deflate -httpdeflatestream -httpdeflatestream_construct -httpdeflatestream_factory -httpdeflatestream_finish -httpdeflatestream_flush -httpdeflatestream_update -http_get -http_get_request_body -http_get_request_body_stream -http_get_request_headers -http_head -http_inflate -httpinflatestream -httpinflatestream_construct -httpinflatestream_factory -httpinflatestream_finish -httpinflatestream_flush -httpinflatestream_update -http_match_etag -http_match_modified -http_match_request_header -httpmessage -httpmessage_addheaders -httpmessage_construct -httpmessage_detach -httpmessage_factory -httpmessage_fromenv -httpmessage_fromstring -httpmessage_getbody -httpmessage_getheader -httpmessage_getheaders -httpmessage_gethttpversion -httpmessage_getparentmessage -httpmessage_getrequestmethod -httpmessage_getrequesturl -httpmessage_getresponsecode -httpmessage_getresponsestatus -httpmessage_gettype -httpmessage_guesscontenttype -httpmessage_prepend -httpmessage_reverse -httpmessage_send -httpmessage_setbody -httpmessage_setheaders -httpmessage_sethttpversion -httpmessage_setrequestmethod -httpmessage_setrequesturl -httpmessage_setresponsecode -httpmessage_setresponsestatus -httpmessage_settype -httpmessage_tomessagetypeobject -httpmessage_tostring -http_negotiate_charset -http_negotiate_content_type -http_negotiate_language -http_parse_cookie -http_parse_headers -http_parse_message -http_parse_params -http_persistent_handles_clean -http_persistent_handles_count -http_persistent_handles_ident -http_post_data -http_post_fields -http_put_data -http_put_file -http_put_stream -httpquerystring -httpquerystring_construct -httpquerystring_get -httpquerystring_mod -httpquerystring_set -httpquerystring_singleton -httpquerystring_toarray -httpquerystring_tostring -httpquerystring_xlate -http_redirect -httprequest -http_request -httprequest_addcookies -httprequest_addheaders -httprequest_addpostfields -httprequest_addpostfile -httprequest_addputdata -httprequest_addquerydata -httprequest_addrawpostdata -httprequest_addssloptions -http_request_body_encode -httprequest_clearhistory -httprequest_construct -httprequest_enablecookies -httprequest_getcontenttype -httprequest_getcookies -httprequest_getheaders -httprequest_gethistory -httprequest_getmethod -httprequest_getoptions -httprequest_getpostfields -httprequest_getpostfiles -httprequest_getputdata -httprequest_getputfile -httprequest_getquerydata -httprequest_getrawpostdata -httprequest_getrawrequestmessage -httprequest_getrawresponsemessage -httprequest_getrequestmessage -httprequest_getresponsebody -httprequest_getresponsecode -httprequest_getresponsecookies -httprequest_getresponsedata -httprequest_getresponseheader -httprequest_getresponseinfo -httprequest_getresponsemessage -httprequest_getresponsestatus -httprequest_getssloptions -httprequest_geturl -http_request_method_exists -http_request_method_name -http_request_method_register -http_request_method_unregister -httprequestpool -httprequestpool_attach -httprequestpool_construct -httprequestpool_destruct -httprequestpool_detach -httprequestpool_getattachedrequests -httprequestpool_getfinishedrequests -httprequestpool_reset -httprequestpool_send -httprequestpool_socketperform -httprequestpool_socketselect -httprequest_resetcookies -httprequest_send -httprequest_setcontenttype -httprequest_setcookies -httprequest_setheaders -httprequest_setmethod -httprequest_setoptions -httprequest_setpostfields -httprequest_setpostfiles -httprequest_setputdata -httprequest_setputfile -httprequest_setquerydata -httprequest_setrawpostdata -httprequest_setssloptions -httprequest_seturl -httpresponse -httpresponse_capture -http_response_code -httpresponse_getbuffersize -httpresponse_getcache -httpresponse_getcachecontrol -httpresponse_getcontentdisposition -httpresponse_getcontenttype -httpresponse_getdata -httpresponse_getetag -httpresponse_getfile -httpresponse_getgzip -httpresponse_getheader -httpresponse_getlastmodified -httpresponse_getrequestbody -httpresponse_getrequestbodystream -httpresponse_getrequestheaders -httpresponse_getstream -httpresponse_getthrottledelay -httpresponse_guesscontenttype -httpresponse_redirect -httpresponse_send -httpresponse_setbuffersize -httpresponse_setcache -httpresponse_setcachecontrol -httpresponse_setcontentdisposition -httpresponse_setcontenttype -httpresponse_setdata -httpresponse_setetag -httpresponse_setfile -httpresponse_setgzip -httpresponse_setheader -httpresponse_setlastmodified -httpresponse_setstream -httpresponse_setthrottledelay -httpresponse_status -http_send_content_disposition -http_send_content_type -http_send_data -http_send_file -http_send_last_modified -http_send_status -http_send_stream -http_support -http_throttle -hwapi_attribute -hwapi_attribute_key -hwapi_attribute_langdepvalue -hwapi_attribute_value -hwapi_attribute_values -hwapi_checkin -hwapi_checkout -hwapi_children -hwapi_content -hwapi_content_mimetype -hwapi_content_read -hwapi_copy -hwapi_dbstat -hwapi_dcstat -hwapi_dstanchors -hwapi_dstofsrcanchor -hwapi_error_count -hwapi_error_reason -hwapi_find -hwapi_ftstat -hwapi_hgcsp -hwapi_hwstat -hwapi_identify -hwapi_info -hwapi_insert -hwapi_insertanchor -hwapi_insertcollection -hwapi_insertdocument -hwapi_link -hwapi_lock -hwapi_move -hwapi_new_content -hwapi_object -hwapi_object_assign -hwapi_object_attreditable -hwapi_objectbyanchor -hwapi_object_count -hwapi_object_insert -hwapi_object_new -hwapi_object_remove -hwapi_object_title -hwapi_object_value -hwapi_parents -hwapi_reason_description -hwapi_reason_type -hwapi_remove -hwapi_replace -hwapi_setcommittedversion -hwapi_srcanchors -hwapi_srcsofdst -hwapi_unlock -hwapi_user -hwapi_userlist -hw_array2objrec -hw_changeobject -hw_children -hw_childrenobj -hw_close -hw_connect -hw_connection_info -hw_cp -hw_deleteobject -hw_docbyanchor -hw_docbyanchorobj -hw_document_attributes -hw_document_bodytag -hw_document_content -hw_document_setcontent -hw_document_size -hw_dummy -hw_edittext -hw_error -hw_errormsg -hw_free_document -hw_getanchors -hw_getanchorsobj -hw_getandlock -hw_getchildcoll -hw_getchildcollobj -hw_getchilddoccoll -hw_getchilddoccollobj -hw_getobject -hw_getobjectbyquery -hw_getobjectbyquerycoll -hw_getobjectbyquerycollobj -hw_getobjectbyqueryobj -hw_getparents -hw_getparentsobj -hw_getrellink -hw_getremote -hw_getremotechildren -hw_getsrcbydestobj -hw_gettext -hw_getusername -hw_identify -hw_incollections -hw_info -hw_inscoll -hw_insdoc -hw_insertanchors -hw_insertdocument -hw_insertobject -hw_mapid -hw_modifyobject -hw_mv -hw_new_document -hw_objrec2array -hw_output_document -hw_pconnect -hw_pipedocument -hw_root -hw_setlinkroot -hw_stat -hw_unlock -hw_who -hypot -ibase_add_user -ibase_affected_rows -ibase_backup -ibase_blob_add -ibase_blob_cancel -ibase_blob_close -ibase_blob_create -ibase_blob_echo -ibase_blob_get -ibase_blob_import -ibase_blob_info -ibase_blob_open -ibase_close -ibase_commit -ibase_commit_ret -ibase_connect -ibase_db_info -ibase_delete_user -ibase_drop_db -ibase_errcode -ibase_errmsg -ibase_execute -ibase_fetch_assoc -ibase_fetch_object -ibase_fetch_row -ibase_field_info -ibase_free_event_handler -ibase_free_query -ibase_free_result -ibase_gen_id -ibase_maintain_db -ibase_modify_user -ibase_name_result -ibase_num_fields -ibase_num_params -ibase_param_info -ibase_pconnect -ibase_prepare -ibase_query -ibase_restore -ibase_rollback -ibase_rollback_ret -ibase_server_info -ibase_service_attach -ibase_service_detach -ibase_set_event_handler -ibase_timefmt -ibase_trans -ibase_wait_event -iconv -iconv_get_encoding -iconv_mime_decode -iconv_mime_decode_headers -iconv_mime_encode -iconv_set_encoding -iconv_strlen -iconv_strpos -iconv_strrpos -iconv_substr -id3_get_frame_long_name -id3_get_frame_short_name -id3_get_genre_id -id3_get_genre_list -id3_get_genre_name -id3_get_tag -id3_get_version -id3_remove_tag -id3_set_tag -idate -idn_to_ascii -idn_to_unicode -idn_to_utf8 -if -ifx_affected_rows -ifx_blobinfile_mode -ifx_byteasvarchar -ifx_close -ifx_connect -ifx_copy_blob -ifx_create_blob -ifx_create_char -ifx_do -ifx_error -ifx_errormsg -ifx_fetch_row -ifx_fieldproperties -ifx_fieldtypes -ifx_free_blob -ifx_free_char -ifx_free_result -ifx_get_blob -ifx_get_char -ifx_getsqlca -ifx_htmltbl_result -ifx_nullformat -ifx_num_fields -ifx_num_rows -ifx_pconnect -ifx_prepare -ifx_query -ifx_textasvarchar -ifx_update_blob -ifx_update_char -ifxus_close_slob -ifxus_create_slob -ifxus_free_slob -ifxus_open_slob -ifxus_read_slob -ifxus_seek_slob -ifxus_tell_slob -ifxus_write_slob -ignore_user_abort -iis_add_server -iis_get_dir_security -iis_get_script_map -iis_get_server_by_comment -iis_get_server_by_path -iis_get_server_rights -iis_get_service_state -iis_remove_server -iis_set_app_settings -iis_set_dir_security -iis_set_script_map -iis_set_server_rights -iis_start_server -iis_start_service -iis_stop_server -iis_stop_service -image2wbmp -imagealphablending -imageantialias -imagearc -imagechar -imagecharup -imagecolorallocate -imagecolorallocatealpha -imagecolorat -imagecolorclosest -imagecolorclosestalpha -imagecolorclosesthwb -imagecolordeallocate -imagecolorexact -imagecolorexactalpha -imagecolormatch -imagecolorresolve -imagecolorresolvealpha -imagecolorset -imagecolorsforindex -imagecolorstotal -imagecolortransparent -imageconvolution -imagecopy -imagecopymerge -imagecopymergegray -imagecopyresampled -imagecopyresized -imagecreate -imagecreatefromgd -imagecreatefromgd2 -imagecreatefromgd2part -imagecreatefromgif -imagecreatefromjpeg -imagecreatefrompng -imagecreatefromstring -imagecreatefromwbmp -imagecreatefromxbm -imagecreatefromxpm -imagecreatetruecolor -imagedashedline -imagedestroy -imageellipse -imagefill -imagefilledarc -imagefilledellipse -imagefilledpolygon -imagefilledrectangle -imagefilltoborder -imagefilter -imagefontheight -imagefontwidth -imageftbbox -imagefttext -imagegammacorrect -imagegd -imagegd2 -imagegif -imagegrabscreen -imagegrabwindow -imageinterlace -imageistruecolor -imagejpeg -imagelayereffect -imageline -imageloadfont -imagepalettecopy -imagepng -imagepolygon -imagepsbbox -imagepsencodefont -imagepsextendfont -imagepsfreefont -imagepsloadfont -imagepsslantfont -imagepstext -imagerectangle -imagerotate -imagesavealpha -imagesetbrush -imagesetpixel -imagesetstyle -imagesetthickness -imagesettile -imagestring -imagestringup -imagesx -imagesy -imagetruecolortopalette -imagettfbbox -imagettftext -imagetypes -image_type_to_extension -image_type_to_mime_type -imagewbmp -imagexbm -imagick -imagick_adaptiveblurimage -imagick_adaptiveresizeimage -imagick_adaptivesharpenimage -imagick_adaptivethresholdimage -imagick_addimage -imagick_addnoiseimage -imagick_affinetransformimage -imagick_animateimages -imagick_annotateimage -imagick_appendimages -imagick_averageimages -imagick_blackthresholdimage -imagick_blurimage -imagick_borderimage -imagick_charcoalimage -imagick_chopimage -imagick_clear -imagick_clipimage -imagick_clippathimage -imagick_clone -imagick_clutimage -imagick_coalesceimages -imagick_colorfloodfillimage -imagick_colorizeimage -imagick_combineimages -imagick_commentimage -imagick_compareimagechannels -imagick_compareimagelayers -imagick_compareimages -imagick_compositeimage -imagick_construct -imagick_contrastimage -imagick_contraststretchimage -imagick_convolveimage -imagick_cropimage -imagick_cropthumbnailimage -imagick_current -imagick_cyclecolormapimage -imagick_decipherimage -imagick_deconstructimages -imagick_deleteimageartifact -imagick_despeckleimage -imagick_destroy -imagick_displayimage -imagick_displayimages -imagick_distortimage -imagickdraw -imagickdraw_affine -imagickdraw_annotation -imagickdraw_arc -imagickdraw_bezier -imagickdraw_circle -imagickdraw_clear -imagickdraw_clone -imagickdraw_color -imagickdraw_comment -imagickdraw_composite -imagickdraw_construct -imagickdraw_destroy -imagickdraw_ellipse -imagickdraw_getclippath -imagickdraw_getcliprule -imagickdraw_getclipunits -imagickdraw_getfillcolor -imagickdraw_getfillopacity -imagickdraw_getfillrule -imagickdraw_getfont -imagickdraw_getfontfamily -imagickdraw_getfontsize -imagickdraw_getfontstyle -imagickdraw_getfontweight -imagickdraw_getgravity -imagickdraw_getstrokeantialias -imagickdraw_getstrokecolor -imagickdraw_getstrokedasharray -imagickdraw_getstrokedashoffset -imagickdraw_getstrokelinecap -imagickdraw_getstrokelinejoin -imagickdraw_getstrokemiterlimit -imagickdraw_getstrokeopacity -imagickdraw_getstrokewidth -imagickdraw_gettextalignment -imagickdraw_gettextantialias -imagickdraw_gettextdecoration -imagickdraw_gettextencoding -imagickdraw_gettextundercolor -imagickdraw_getvectorgraphics -imagick_drawimage -imagickdraw_line -imagickdraw_matte -imagickdraw_pathclose -imagickdraw_pathcurvetoabsolute -imagickdraw_pathcurvetoquadraticbezierabsolute -imagickdraw_pathcurvetoquadraticbezierrelative -imagickdraw_pathcurvetoquadraticbeziersmoothabsolute -imagickdraw_pathcurvetoquadraticbeziersmoothrelative -imagickdraw_pathcurvetorelative -imagickdraw_pathcurvetosmoothabsolute -imagickdraw_pathcurvetosmoothrelative -imagickdraw_pathellipticarcabsolute -imagickdraw_pathellipticarcrelative -imagickdraw_pathfinish -imagickdraw_pathlinetoabsolute -imagickdraw_pathlinetohorizontalabsolute -imagickdraw_pathlinetohorizontalrelative -imagickdraw_pathlinetorelative -imagickdraw_pathlinetoverticalabsolute -imagickdraw_pathlinetoverticalrelative -imagickdraw_pathmovetoabsolute -imagickdraw_pathmovetorelative -imagickdraw_pathstart -imagickdraw_point -imagickdraw_polygon -imagickdraw_polyline -imagickdraw_pop -imagickdraw_popclippath -imagickdraw_popdefs -imagickdraw_poppattern -imagickdraw_push -imagickdraw_pushclippath -imagickdraw_pushdefs -imagickdraw_pushpattern -imagickdraw_rectangle -imagickdraw_render -imagickdraw_rotate -imagickdraw_roundrectangle -imagickdraw_scale -imagickdraw_setclippath -imagickdraw_setcliprule -imagickdraw_setclipunits -imagickdraw_setfillalpha -imagickdraw_setfillcolor -imagickdraw_setfillopacity -imagickdraw_setfillpatternurl -imagickdraw_setfillrule -imagickdraw_setfont -imagickdraw_setfontfamily -imagickdraw_setfontsize -imagickdraw_setfontstretch -imagickdraw_setfontstyle -imagickdraw_setfontweight -imagickdraw_setgravity -imagickdraw_setstrokealpha -imagickdraw_setstrokeantialias -imagickdraw_setstrokecolor -imagickdraw_setstrokedasharray -imagickdraw_setstrokedashoffset -imagickdraw_setstrokelinecap -imagickdraw_setstrokelinejoin -imagickdraw_setstrokemiterlimit -imagickdraw_setstrokeopacity -imagickdraw_setstrokepatternurl -imagickdraw_setstrokewidth -imagickdraw_settextalignment -imagickdraw_settextantialias -imagickdraw_settextdecoration -imagickdraw_settextencoding -imagickdraw_settextundercolor -imagickdraw_setvectorgraphics -imagickdraw_setviewbox -imagickdraw_skewx -imagickdraw_skewy -imagickdraw_translate -imagick_edgeimage -imagick_embossimage -imagick_encipherimage -imagick_enhanceimage -imagick_equalizeimage -imagick_evaluateimage -imagick_extentimage -imagick_flattenimages -imagick_flipimage -imagick_floodfillpaintimage -imagick_flopimage -imagick_frameimage -imagick_fximage -imagick_gammaimage -imagick_gaussianblurimage -imagick_getcolorspace -imagick_getcompression -imagick_getcompressionquality -imagick_getcopyright -imagick_getfilename -imagick_getfont -imagick_getformat -imagick_getgravity -imagick_gethomeurl -imagick_getimage -imagick_getimagealphachannel -imagick_getimageartifact -imagick_getimagebackgroundcolor -imagick_getimageblob -imagick_getimageblueprimary -imagick_getimagebordercolor -imagick_getimagechanneldepth -imagick_getimagechanneldistortion -imagick_getimagechanneldistortions -imagick_getimagechannelextrema -imagick_getimagechannelmean -imagick_getimagechannelrange -imagick_getimagechannelstatistics -imagick_getimageclipmask -imagick_getimagecolormapcolor -imagick_getimagecolors -imagick_getimagecolorspace -imagick_getimagecompose -imagick_getimagecompression -imagick_getimagecompressionquality -imagick_getimagedelay -imagick_getimagedepth -imagick_getimagedispose -imagick_getimagedistortion -imagick_getimageextrema -imagick_getimagefilename -imagick_getimageformat -imagick_getimagegamma -imagick_getimagegeometry -imagick_getimagegravity -imagick_getimagegreenprimary -imagick_getimageheight -imagick_getimagehistogram -imagick_getimageindex -imagick_getimageinterlacescheme -imagick_getimageinterpolatemethod -imagick_getimageiterations -imagick_getimagelength -imagick_getimagemagicklicense -imagick_getimagematte -imagick_getimagemattecolor -imagick_getimageorientation -imagick_getimagepage -imagick_getimagepixelcolor -imagick_getimageprofile -imagick_getimageprofiles -imagick_getimageproperties -imagick_getimageproperty -imagick_getimageredprimary -imagick_getimageregion -imagick_getimagerenderingintent -imagick_getimageresolution -imagick_getimagesblob -imagick_getimagescene -imagick_getimagesignature -imagick_getimagesize -imagick_getimagetickspersecond -imagick_getimagetotalinkdensity -imagick_getimagetype -imagick_getimageunits -imagick_getimagevirtualpixelmethod -imagick_getimagewhitepoint -imagick_getimagewidth -imagick_getinterlacescheme -imagick_getiteratorindex -imagick_getnumberimages -imagick_getoption -imagick_getpackagename -imagick_getpage -imagick_getpixeliterator -imagick_getpixelregioniterator -imagick_getpointsize -imagick_getquantumdepth -imagick_getquantumrange -imagick_getreleasedate -imagick_getresource -imagick_getresourcelimit -imagick_getsamplingfactors -imagick_getsize -imagick_getsizeoffset -imagick_getversion -imagick_hasnextimage -imagick_haspreviousimage -imagick_identifyimage -imagick_implodeimage -imagick_labelimage -imagick_levelimage -imagick_linearstretchimage -imagick_liquidrescaleimage -imagick_magnifyimage -imagick_mapimage -imagick_mattefloodfillimage -imagick_medianfilterimage -imagick_mergeimagelayers -imagick_minifyimage -imagick_modulateimage -imagick_montageimage -imagick_morphimages -imagick_mosaicimages -imagick_motionblurimage -imagick_negateimage -imagick_newimage -imagick_newpseudoimage -imagick_nextimage -imagick_normalizeimage -imagick_oilpaintimage -imagick_opaquepaintimage -imagick_optimizeimagelayers -imagick_orderedposterizeimage -imagick_paintfloodfillimage -imagick_paintopaqueimage -imagick_painttransparentimage -imagick_pingimage -imagick_pingimageblob -imagick_pingimagefile -imagickpixel -imagickpixel_clear -imagickpixel_construct -imagickpixel_destroy -imagickpixel_getcolor -imagickpixel_getcolorasstring -imagickpixel_getcolorcount -imagickpixel_getcolorvalue -imagickpixel_gethsl -imagickpixel_issimilar -imagickpixeliterator -imagickpixeliterator_clear -imagickpixeliterator_construct -imagickpixeliterator_destroy -imagickpixeliterator_getcurrentiteratorrow -imagickpixeliterator_getiteratorrow -imagickpixeliterator_getnextiteratorrow -imagickpixeliterator_getpreviousiteratorrow -imagickpixeliterator_newpixeliterator -imagickpixeliterator_newpixelregioniterator -imagickpixeliterator_resetiterator -imagickpixeliterator_setiteratorfirstrow -imagickpixeliterator_setiteratorlastrow -imagickpixeliterator_setiteratorrow -imagickpixeliterator_synciterator -imagickpixel_setcolor -imagickpixel_setcolorvalue -imagickpixel_sethsl -imagick_polaroidimage -imagick_posterizeimage -imagick_previewimages -imagick_previousimage -imagick_profileimage -imagick_quantizeimage -imagick_quantizeimages -imagick_queryfontmetrics -imagick_queryfonts -imagick_queryformats -imagick_radialblurimage -imagick_raiseimage -imagick_randomthresholdimage -imagick_readimage -imagick_readimageblob -imagick_readimagefile -imagick_recolorimage -imagick_reducenoiseimage -imagick_removeimage -imagick_removeimageprofile -imagick_render -imagick_resampleimage -imagick_resetimagepage -imagick_resizeimage -imagick_rollimage -imagick_rotateimage -imagick_roundcorners -imagick_sampleimage -imagick_scaleimage -imagick_separateimagechannel -imagick_sepiatoneimage -imagick_setbackgroundcolor -imagick_setcolorspace -imagick_setcompression -imagick_setcompressionquality -imagick_setfilename -imagick_setfirstiterator -imagick_setfont -imagick_setformat -imagick_setgravity -imagick_setimage -imagick_setimagealphachannel -imagick_setimageartifact -imagick_setimagebackgroundcolor -imagick_setimagebias -imagick_setimageblueprimary -imagick_setimagebordercolor -imagick_setimagechanneldepth -imagick_setimageclipmask -imagick_setimagecolormapcolor -imagick_setimagecolorspace -imagick_setimagecompose -imagick_setimagecompression -imagick_setimagecompressionquality -imagick_setimagedelay -imagick_setimagedepth -imagick_setimagedispose -imagick_setimageextent -imagick_setimagefilename -imagick_setimageformat -imagick_setimagegamma -imagick_setimagegravity -imagick_setimagegreenprimary -imagick_setimageindex -imagick_setimageinterlacescheme -imagick_setimageinterpolatemethod -imagick_setimageiterations -imagick_setimagematte -imagick_setimagemattecolor -imagick_setimageopacity -imagick_setimageorientation -imagick_setimagepage -imagick_setimageprofile -imagick_setimageproperty -imagick_setimageredprimary -imagick_setimagerenderingintent -imagick_setimageresolution -imagick_setimagescene -imagick_setimagetickspersecond -imagick_setimagetype -imagick_setimageunits -imagick_setimagevirtualpixelmethod -imagick_setimagewhitepoint -imagick_setinterlacescheme -imagick_setiteratorindex -imagick_setlastiterator -imagick_setoption -imagick_setpage -imagick_setpointsize -imagick_setresolution -imagick_setresourcelimit -imagick_setsamplingfactors -imagick_setsize -imagick_setsizeoffset -imagick_settype -imagick_shadeimage -imagick_shadowimage -imagick_sharpenimage -imagick_shaveimage -imagick_shearimage -imagick_sigmoidalcontrastimage -imagick_sketchimage -imagick_solarizeimage -imagick_spliceimage -imagick_spreadimage -imagick_steganoimage -imagick_stereoimage -imagick_stripimage -imagick_swirlimage -imagick_textureimage -imagick_thresholdimage -imagick_thumbnailimage -imagick_tintimage -imagick_transformimage -imagick_transparentpaintimage -imagick_transposeimage -imagick_transverseimage -imagick_trimimage -imagick_uniqueimagecolors -imagick_unsharpmaskimage -imagick_valid -imagick_vignetteimage -imagick_waveimage -imagick_whitethresholdimage -imagick_writeimage -imagick_writeimagefile -imagick_writeimages -imagick_writeimagesfile -imap_8bit -imap_alerts -imap_append -imap_base64 -imap_binary -imap_body -imap_bodystruct -imap_check -imap_clearflag_full -imap_close -imap_create -imap_createmailbox -imap_delete -imap_deletemailbox -imap_errors -imap_expunge -imap_fetchbody -imap_fetchheader -imap_fetchmime -imap_fetch_overview -imap_fetchstructure -imap_fetchtext -imap_gc -imap_getacl -imap_getmailboxes -imap_get_quota -imap_get_quotaroot -imap_getsubscribed -imap_header -imap_headerinfo -imap_headers -imap_last_error -imap_list -imap_listmailbox -imap_listscan -imap_listsubscribed -imap_lsub -imap_mail -imap_mailboxmsginfo -imap_mail_compose -imap_mail_copy -imap_mail_move -imap_mime_header_decode -imap_msgno -imap_num_msg -imap_num_recent -imap_open -imap_ping -imap_qprint -imap_rename -imap_renamemailbox -imap_reopen -imap_rfc822_parse_adrlist -imap_rfc822_parse_headers -imap_rfc822_write_address -imap_savebody -imap_scan -imap_scanmailbox -imap_search -imap_setacl -imap_setflag_full -imap_set_quota -imap_sort -imap_status -imap_subscribe -imap_thread -imap_timeout -imap_uid -imap_undelete -imap_unsubscribe -imap_utf7_decode -imap_utf7_encode -imap_utf8 -implements -implementsinterface -implode -import_request_variables -in_array -include -include_once -inclued_get_data -inet_ntop -inet_pton -infiniteiterator -ingres_autocommit -ingres_autocommit_state -ingres_charset -ingres_close -ingres_commit -ingres_connect -ingres_cursor -ingres_errno -ingres_error -ingres_errsqlstate -ingres_escape_string -ingres_execute -ingres_fetch_array -ingres_fetch_assoc -ingres_fetch_object -ingres_fetch_proc_return -ingres_fetch_row -ingres_field_length -ingres_field_name -ingres_field_nullable -ingres_field_precision -ingres_field_scale -ingres_field_type -ingres_free_result -ingres_next_error -ingres_num_fields -ingres_num_rows -ingres_pconnect -ingres_prepare -ingres_query -ingres_result_seek -ingres_rollback -ingres_set_environment -ingres_unbuffered_query -ini_alter -ini_get -ini_get_all -ini_restore -ini_set -innamespace -inotify_add_watch -inotify_init -inotify_queue_len -inotify_read -inotify_rm_watch -instanceof -interface -interface_exists -intldateformatter -intl_error_name -intl_get_error_code -intl_get_error_message -intl_is_failure -intval -invalidargumentexception -invoke -__invoke() -invokeargs -ip2long -iptcembed -iptcparse -is_a -isabstract -is_array -is_bool -is_callable -iscloneable -is_dir -isdisabled -is_double -is_executable -is_file -isfinal -is_finite -is_float -is_infinite -isinstance -isinstantiable -is_int -is_integer -isinterface -isinternal -isiterateable -is_link -is_long -is_nan -is_null -is_numeric -is_object -is_readable -is_real -is_resource -is_scalar -isset -__isset() -is_soap_fault -is_string -issubclassof -is_subclass_of -istrait -is_uploaded_file -isuserdefined -is_writable -is_writeable -iterator -iteratoraggregate -iterator_apply -iterator_count -iteratoriterator -iterator_to_array -java_last_exception_clear -java_last_exception_get -jddayofweek -jdmonthname -jdtofrench -jdtogregorian -jdtojewish -jdtojulian -jdtounix -jewishtojd -join -jpeg2wbmp -json_decode -json_encode -json_last_error -jsonserializable -judy -judy_type -judy_version -juliantojd -kadm5_chpass_principal -kadm5_create_principal -kadm5_delete_principal -kadm5_destroy -kadm5_flush -kadm5_get_policies -kadm5_get_principal -kadm5_get_principals -kadm5_init_with_password -kadm5_modify_principal -key -krsort -ksort -ktaglib_id3v2_attachedpictureframe -ktaglib_id3v2_frame -ktaglib_id3v2_tag -ktaglib_mpeg_audioproperties -ktaglib_mpeg_file -ktaglib_tag -lcfirst -lcg_value -lchgrp -lchown -ldap_8859_to_t61 -ldap_add -ldap_bind -ldap_close -ldap_compare -ldap_connect -ldap_count_entries -ldap_delete -ldap_dn2ufn -ldap_err2str -ldap_errno -ldap_error -ldap_explode_dn -ldap_first_attribute -ldap_first_entry -ldap_first_reference -ldap_free_result -ldap_get_attributes -ldap_get_dn -ldap_get_entries -ldap_get_option -ldap_get_values -ldap_get_values_len -ldap_list -ldap_mod_add -ldap_mod_del -ldap_modify -ldap_mod_replace -ldap_next_attribute -ldap_next_entry -ldap_next_reference -ldap_parse_reference -ldap_parse_result -ldap_read -ldap_rename -ldap_sasl_bind -ldap_search -ldap_set_option -ldap_set_rebind_proc -ldap_sort -ldap_start_tls -ldap_t61_to_8859 -ldap_unbind -lengthexception -levenshtein -libxml_clear_errors -libxml_disable_entity_loader -libxmlerror -libxml_get_errors -libxml_get_last_error -libxml_set_streams_context -libxml_use_internal_errors -limititerator -__LINE__ -link -linkinfo -list -locale -localeconv -localtime -log -log10 -log1p -logicexception -long2ip -lstat -ltrim -lua -luaclosure -lzf_compress -lzf_decompress -lzf_optimized_for -magic_quotes_runtime -mail -mailparse_determine_best_xfer_encoding -mailparse_msg_create -mailparse_msg_extract_part -mailparse_msg_extract_part_file -mailparse_msg_extract_whole_part_file -mailparse_msg_free -mailparse_msg_get_part -mailparse_msg_get_part_data -mailparse_msg_get_structure -mailparse_msg_parse -mailparse_msg_parse_file -mailparse_rfc822_parse_addresses -mailparse_stream_encode -mailparse_uudecode_all -main -max -maxdb_affected_rows -maxdb_autocommit -maxdb_bind_param -maxdb_bind_result -maxdb_change_user -maxdb_character_set_name -maxdb_client_encoding -maxdb_close -maxdb_close_long_data -maxdb_commit -maxdb_connect -maxdb_connect_errno -maxdb_connect_error -maxdb_data_seek -maxdb_debug -maxdb_disable_reads_from_master -maxdb_disable_rpl_parse -maxdb_dump_debug_info -maxdb_embedded_connect -maxdb_enable_reads_from_master -maxdb_enable_rpl_parse -maxdb_errno -maxdb_error -maxdb_escape_string -maxdb_execute -maxdb_fetch -maxdb_fetch_array -maxdb_fetch_assoc -maxdb_fetch_field -maxdb_fetch_field_direct -maxdb_fetch_fields -maxdb_fetch_lengths -maxdb_fetch_object -maxdb_fetch_row -maxdb_field_count -maxdb_field_seek -maxdb_field_tell -maxdb_free_result -maxdb_get_client_info -maxdb_get_client_version -maxdb_get_host_info -maxdb_get_metadata -maxdb_get_proto_info -maxdb_get_server_info -maxdb_get_server_version -maxdb_info -maxdb_init -maxdb_insert_id -maxdb_kill -maxdb_master_query -maxdb_more_results -maxdb_multi_query -maxdb_next_result -maxdb_num_fields -maxdb_num_rows -maxdb_options -maxdb_param_count -maxdb_ping -maxdb_prepare -maxdb_query -maxdb_real_connect -maxdb_real_escape_string -maxdb_real_query -maxdb_report -maxdb_rollback -maxdb_rpl_parse_enabled -maxdb_rpl_probe -maxdb_rpl_query_type -maxdb_select_db -maxdb_send_long_data -maxdb_send_query -maxdb_server_end -maxdb_server_init -maxdb_set_opt -maxdb_sqlstate -maxdb_ssl_set -maxdb_stat -maxdb_stmt_affected_rows -maxdb_stmt_bind_param -maxdb_stmt_bind_result -maxdb_stmt_close -maxdb_stmt_close_long_data -maxdb_stmt_data_seek -maxdb_stmt_errno -maxdb_stmt_error -maxdb_stmt_execute -maxdb_stmt_fetch -maxdb_stmt_free_result -maxdb_stmt_init -maxdb_stmt_num_rows -maxdb_stmt_param_count -maxdb_stmt_prepare -maxdb_stmt_reset -maxdb_stmt_result_metadata -maxdb_stmt_send_long_data -maxdb_stmt_sqlstate -maxdb_stmt_store_result -maxdb_store_result -maxdb_thread_id -maxdb_thread_safe -maxdb_use_result -maxdb_warning_count -mb_check_encoding -mb_convert_case -mb_convert_encoding -mb_convert_kana -mb_convert_variables -mb_decode_mimeheader -mb_decode_numericentity -mb_detect_encoding -mb_detect_order -mb_encode_mimeheader -mb_encode_numericentity -mb_encoding_aliases -mb_ereg -mb_eregi -mb_eregi_replace -mb_ereg_match -mb_ereg_replace -mb_ereg_search -mb_ereg_search_getpos -mb_ereg_search_getregs -mb_ereg_search_init -mb_ereg_search_pos -mb_ereg_search_regs -mb_ereg_search_setpos -mb_get_info -mb_http_input -mb_http_output -mb_internal_encoding -mb_language -mb_list_encodings -mb_output_handler -mb_parse_str -mb_preferred_mime_name -mb_regex_encoding -mb_regex_set_options -mb_send_mail -mb_split -mb_strcut -mb_strimwidth -mb_stripos -mb_stristr -mb_strlen -mb_strpos -mb_strrchr -mb_strrichr -mb_strripos -mb_strrpos -mb_strstr -mb_strtolower -mb_strtoupper -mb_strwidth -mb_substitute_character -mb_substr -mb_substr_count -m_checkstatus -m_completeauthorizations -m_connect -m_connectionerror -mcrypt_cbc -mcrypt_cfb -mcrypt_create_iv -mcrypt_decrypt -mcrypt_ecb -mcrypt_enc_get_algorithms_name -mcrypt_enc_get_block_size -mcrypt_enc_get_iv_size -mcrypt_enc_get_key_size -mcrypt_enc_get_modes_name -mcrypt_enc_get_supported_key_sizes -mcrypt_enc_is_block_algorithm -mcrypt_enc_is_block_algorithm_mode -mcrypt_enc_is_block_mode -mcrypt_encrypt -mcrypt_enc_self_test -mcrypt_generic -mcrypt_generic_deinit -mcrypt_generic_end -mcrypt_generic_init -mcrypt_get_block_size -mcrypt_get_cipher_name -mcrypt_get_iv_size -mcrypt_get_key_size -mcrypt_list_algorithms -mcrypt_list_modes -mcrypt_module_close -mcrypt_module_get_algo_block_size -mcrypt_module_get_algo_key_size -mcrypt_module_get_supported_key_sizes -mcrypt_module_is_block_algorithm -mcrypt_module_is_block_algorithm_mode -mcrypt_module_is_block_mode -mcrypt_module_open -mcrypt_module_self_test -mcrypt_ofb -md5 -md5_file -mdecrypt_generic -m_deletetrans -m_destroyconn -m_destroyengine -memcache -memcached -memcache_debug -memory_get_peak_usage -memory_get_usage -messageformatter -metaphone -__METHOD__ -method_exists -m_getcell -m_getcellbynum -m_getcommadelimited -m_getheader -mhash -mhash_count -mhash_get_block_size -mhash_get_hash_name -mhash_keygen_s2k -microtime -mime_content_type -min -ming_keypress -ming_setcubicthreshold -ming_setscale -ming_setswfcompression -ming_useconstants -ming_useswfversion -m_initconn -m_initengine -m_iscommadelimited -mkdir -mktime -m_maxconntimeout -m_monitor -m_numcolumns -m_numrows -money_format -mongo -mongobindata -mongocode -mongocollection -mongoconnectionexception -mongocursor -mongocursorexception -mongocursortimeoutexception -mongodate -mongodb -mongodbref -mongoexception -mongogridfs -mongogridfscursor -mongogridfsexception -mongogridfsfile -mongoid -mongoint32 -mongoint64 -mongolog -mongomaxkey -mongominkey -mongopool -mongoregex -mongotimestamp -move_uploaded_file -m_parsecommadelimited -mqseries_back -mqseries_begin -mqseries_close -mqseries_cmit -mqseries_conn -mqseries_connx -mqseries_disc -mqseries_get -mqseries_inq -mqseries_open -mqseries_put -mqseries_put1 -mqseries_set -mqseries_strerror -m_responsekeys -m_responseparam -m_returnstatus -msession_connect -msession_count -msession_create -msession_destroy -msession_disconnect -msession_find -msession_get -msession_get_array -msession_get_data -msession_inc -msession_list -msession_listvar -msession_lock -msession_plugin -msession_randstr -msession_set -msession_set_array -msession_set_data -msession_timeout -msession_uniq -msession_unlock -m_setblocking -m_setdropfile -m_setip -m_setssl -m_setssl_cafile -m_setssl_files -m_settimeout -msg_get_queue -msg_queue_exists -msg_receive -msg_remove_queue -msg_send -msg_set_queue -msg_stat_queue -msql -msql_affected_rows -msql_close -msql_connect -msql_createdb -msql_create_db -msql_data_seek -msql_dbname -msql_db_query -msql_drop_db -msql_error -msql_fetch_array -msql_fetch_field -msql_fetch_object -msql_fetch_row -msql_fieldflags -msql_field_flags -msql_fieldlen -msql_field_len -msql_fieldname -msql_field_name -msql_field_seek -msql_fieldtable -msql_field_table -msql_fieldtype -msql_field_type -msql_free_result -msql_list_dbs -msql_list_fields -msql_list_tables -msql_numfields -msql_num_fields -msql_numrows -msql_num_rows -msql_pconnect -msql_query -msql_regcase -msql_result -msql_select_db -msql_tablename -m_sslcert_gen_hash -mssql_bind -mssql_close -mssql_connect -mssql_data_seek -mssql_execute -mssql_fetch_array -mssql_fetch_assoc -mssql_fetch_batch -mssql_fetch_field -mssql_fetch_object -mssql_fetch_row -mssql_field_length -mssql_field_name -mssql_field_seek -mssql_field_type -mssql_free_result -mssql_free_statement -mssql_get_last_message -mssql_guid_string -mssql_init -mssql_min_error_severity -mssql_min_message_severity -mssql_next_result -mssql_num_fields -mssql_num_rows -mssql_pconnect -mssql_query -mssql_result -mssql_rows_affected -mssql_select_db -mt_getrandmax -mt_rand -m_transactionssent -m_transinqueue -m_transkeyval -m_transnew -m_transsend -mt_srand -multipleiterator -m_uwait -m_validateidentifier -m_verifyconnection -m_verifysslcert -mysql_affected_rows -mysql_client_encoding -mysql_close -mysql_connect -mysql_create_db -mysql_data_seek -mysql_db_name -mysql_db_query -mysql_drop_db -mysql_errno -mysql_error -mysql_escape_string -mysql_fetch_array -mysql_fetch_assoc -mysql_fetch_field -mysql_fetch_lengths -mysql_fetch_object -mysql_fetch_row -mysql_field_flags -mysql_field_len -mysql_field_name -mysql_field_seek -mysql_field_table -mysql_field_type -mysql_free_result -mysql_get_client_info -mysql_get_host_info -mysql_get_proto_info -mysql_get_server_info -mysqli -mysqli_bind_param -mysqli_bind_result -mysqli_client_encoding -mysqli_connect -mysqli_disable_reads_from_master -mysqli_disable_rpl_parse -mysqli_driver -mysqli_enable_reads_from_master -mysqli_enable_rpl_parse -mysqli_escape_string -mysqli_execute -mysqli_fetch -mysqli_get_metadata -mysqli_master_query -mysql_info -mysql_insert_id -mysqli_param_count -mysqli_report -mysqli_result -mysqli_rpl_parse_enabled -mysqli_rpl_probe -mysqli_rpl_query_type -mysqli_send_long_data -mysqli_send_query -mysqli_set_opt -mysqli_slave_query -mysqli_stmt -mysqli_warning -mysql_list_dbs -mysql_list_fields -mysql_list_processes -mysql_list_tables -mysqlnd_ms_get_stats -mysqlnd_ms_query_is_select -mysqlnd_ms_set_user_pick_server -mysqlnd_qc_change_handler -mysqlnd_qc_clear_cache -mysqlnd_qc_get_cache_info -mysqlnd_qc_get_core_stats -mysqlnd_qc_get_handler -mysqlnd_qc_get_query_trace_log -mysqlnd_qc_set_user_handlers -mysql_num_fields -mysql_num_rows -mysql_pconnect -mysql_ping -mysql_query -mysql_real_escape_string -mysql_result -mysql_select_db -mysql_set_charset -mysql_stat -mysql_tablename -mysql_thread_id -mysql_unbuffered_query -namespace -__NAMESPACE__ -natcasesort -natsort -ncurses_addch -ncurses_addchnstr -ncurses_addchstr -ncurses_addnstr -ncurses_addstr -ncurses_assume_default_colors -ncurses_attroff -ncurses_attron -ncurses_attrset -ncurses_baudrate -ncurses_beep -ncurses_bkgd -ncurses_bkgdset -ncurses_border -ncurses_bottom_panel -ncurses_can_change_color -ncurses_cbreak -ncurses_clear -ncurses_clrtobot -ncurses_clrtoeol -ncurses_color_content -ncurses_color_set -ncurses_curs_set -ncurses_define_key -ncurses_def_prog_mode -ncurses_def_shell_mode -ncurses_delay_output -ncurses_delch -ncurses_deleteln -ncurses_del_panel -ncurses_delwin -ncurses_doupdate -ncurses_echo -ncurses_echochar -ncurses_end -ncurses_erase -ncurses_erasechar -ncurses_filter -ncurses_flash -ncurses_flushinp -ncurses_getch -ncurses_getmaxyx -ncurses_getmouse -ncurses_getyx -ncurses_halfdelay -ncurses_has_colors -ncurses_has_ic -ncurses_has_il -ncurses_has_key -ncurses_hide_panel -ncurses_hline -ncurses_inch -ncurses_init -ncurses_init_color -ncurses_init_pair -ncurses_insch -ncurses_insdelln -ncurses_insertln -ncurses_insstr -ncurses_instr -ncurses_isendwin -ncurses_keyok -ncurses_keypad -ncurses_killchar -ncurses_longname -ncurses_meta -ncurses_mouseinterval -ncurses_mousemask -ncurses_mouse_trafo -ncurses_move -ncurses_move_panel -ncurses_mvaddch -ncurses_mvaddchnstr -ncurses_mvaddchstr -ncurses_mvaddnstr -ncurses_mvaddstr -ncurses_mvcur -ncurses_mvdelch -ncurses_mvgetch -ncurses_mvhline -ncurses_mvinch -ncurses_mvvline -ncurses_mvwaddstr -ncurses_napms -ncurses_newpad -ncurses_new_panel -ncurses_newwin -ncurses_nl -ncurses_nocbreak -ncurses_noecho -ncurses_nonl -ncurses_noqiflush -ncurses_noraw -ncurses_pair_content -ncurses_panel_above -ncurses_panel_below -ncurses_panel_window -ncurses_pnoutrefresh -ncurses_prefresh -ncurses_putp -ncurses_qiflush -ncurses_raw -ncurses_refresh -ncurses_replace_panel -ncurses_reset_prog_mode -ncurses_reset_shell_mode -ncurses_resetty -ncurses_savetty -ncurses_scr_dump -ncurses_scr_init -ncurses_scrl -ncurses_scr_restore -ncurses_scr_set -ncurses_show_panel -ncurses_slk_attr -ncurses_slk_attroff -ncurses_slk_attron -ncurses_slk_attrset -ncurses_slk_clear -ncurses_slk_color -ncurses_slk_init -ncurses_slk_noutrefresh -ncurses_slk_refresh -ncurses_slk_restore -ncurses_slk_set -ncurses_slk_touch -ncurses_standend -ncurses_standout -ncurses_start_color -ncurses_termattrs -ncurses_termname -ncurses_timeout -ncurses_top_panel -ncurses_typeahead -ncurses_ungetch -ncurses_ungetmouse -ncurses_update_panels -ncurses_use_default_colors -ncurses_use_env -ncurses_use_extended_names -ncurses_vidattr -ncurses_vline -ncurses_waddch -ncurses_waddstr -ncurses_wattroff -ncurses_wattron -ncurses_wattrset -ncurses_wborder -ncurses_wclear -ncurses_wcolor_set -ncurses_werase -ncurses_wgetch -ncurses_whline -ncurses_wmouse_trafo -ncurses_wmove -ncurses_wnoutrefresh -ncurses_wrefresh -ncurses_wstandend -ncurses_wstandout -ncurses_wvline -new -newinstance -newinstanceargs -newinstancewithoutconstructor -newt_bell -newt_button -newt_button_bar -newt_centered_window -newt_checkbox -newt_checkbox_get_value -newt_checkbox_set_flags -newt_checkbox_set_value -newt_checkbox_tree -newt_checkbox_tree_add_item -newt_checkbox_tree_find_item -newt_checkbox_tree_get_current -newt_checkbox_tree_get_entry_value -newt_checkbox_tree_get_multi_selection -newt_checkbox_tree_get_selection -newt_checkbox_tree_multi -newt_checkbox_tree_set_current -newt_checkbox_tree_set_entry -newt_checkbox_tree_set_entry_value -newt_checkbox_tree_set_width -newt_clear_key_buffer -newt_cls -newt_compact_button -newt_component_add_callback -newt_component_takes_focus -newt_create_grid -newt_cursor_off -newt_cursor_on -newt_delay -newt_draw_form -newt_draw_root_text -newt_entry -newt_entry_get_value -newt_entry_set -newt_entry_set_filter -newt_entry_set_flags -newt_finished -newt_form -newt_form_add_component -newt_form_add_components -newt_form_add_hot_key -newt_form_destroy -newt_form_get_current -newt_form_run -newt_form_set_background -newt_form_set_height -newt_form_set_size -newt_form_set_timer -newt_form_set_width -newt_form_watch_fd -newt_get_screen_size -newt_grid_add_components_to_form -newt_grid_basic_window -newt_grid_free -newt_grid_get_size -newt_grid_h_close_stacked -newt_grid_h_stacked -newt_grid_place -newt_grid_set_field -newt_grid_simple_window -newt_grid_v_close_stacked -newt_grid_v_stacked -newt_grid_wrapped_window -newt_grid_wrapped_window_at -newt_init -newt_label -newt_label_set_text -newt_listbox -newt_listbox_append_entry -newt_listbox_clear -newt_listbox_clear_selection -newt_listbox_delete_entry -newt_listbox_get_current -newt_listbox_get_selection -newt_listbox_insert_entry -newt_listbox_item_count -newt_listbox_select_item -newt_listbox_set_current -newt_listbox_set_current_by_key -newt_listbox_set_data -newt_listbox_set_entry -newt_listbox_set_width -newt_listitem -newt_listitem_get_data -newt_listitem_set -newt_open_window -newt_pop_help_line -newt_pop_window -newt_push_help_line -newt_radiobutton -newt_radio_get_current -newt_redraw_help_line -newt_reflow_text -newt_refresh -newt_resize_screen -newt_resume -newt_run_form -newt_scale -newt_scale_set -newt_scrollbar_set -newt_set_help_callback -newt_set_suspend_callback -newt_suspend -newt_textbox -newt_textbox_get_num_lines -newt_textbox_reflowed -newt_textbox_set_height -newt_textbox_set_text -newt_vertical_scrollbar -newt_wait_for_key -newt_win_choice -newt_win_entries -newt_win_menu -newt_win_message -newt_win_messagev -newt_win_ternary -next -ngettext -nl2br -nl_langinfo -norewinditerator -normalizer -notes_body -notes_copy_db -notes_create_db -notes_create_note -notes_drop_db -notes_find_note -notes_header_info -notes_list_msgs -notes_mark_read -notes_mark_unread -notes_nav_create -notes_search -notes_unread -notes_version -nsapi_request_headers -nsapi_response_headers -nsapi_virtual -nthmac -number_format -numberformatter -oauth -oauthexception -oauth_get_sbs -oauthprovider -oauth_urlencode -ob_clean -ob_deflatehandler -ob_end_clean -ob_end_flush -ob_etaghandler -ob_flush -ob_get_clean -ob_get_contents -ob_get_flush -ob_get_length -ob_get_level -ob_get_status -ob_gzhandler -ob_iconv_handler -ob_implicit_flush -ob_inflatehandler -ob_list_handlers -ob_start -ob_tidyhandler -oci_bind_array_by_name -ocibindbyname -oci_bind_by_name -ocicancel -oci_cancel -oci_client_version -oci_close -ocicloselob -ocicollappend -ocicollassign -ocicollassignelem -oci_collection_append -oci_collection_assign -oci_collection_element_assign -oci_collection_element_get -oci_collection_free -oci_collection_max -oci_collection_size -oci_collection_trim -ocicollgetelem -ocicollmax -ocicollsize -ocicolltrim -ocicolumnisnull -ocicolumnname -ocicolumnprecision -ocicolumnscale -ocicolumnsize -ocicolumntype -ocicolumntyperaw -ocicommit -oci_commit -oci_connect -ocidefinebyname -oci_define_by_name -ocierror -oci_error -ociexecute -oci_execute -ocifetch -oci_fetch -oci_fetch_all -oci_fetch_array -oci_fetch_assoc -ocifetchinto -oci_fetch_object -oci_fetch_row -ocifetchstatement -oci_field_is_null -oci_field_name -oci_field_precision -oci_field_scale -oci_field_size -oci_field_type -oci_field_type_raw -ocifreecollection -ocifreecursor -ocifreedesc -ocifreestatement -oci_free_statement -ociinternaldebug -oci_internal_debug -ociloadlob -oci_lob_append -oci_lob_close -oci_lob_copy -oci_lob_eof -oci_lob_erase -oci_lob_export -oci_lob_flush -oci_lob_free -oci_lob_getbuffering -oci_lob_import -oci_lob_is_equal -oci_lob_load -oci_lob_read -oci_lob_rewind -oci_lob_save -oci_lob_savefile -oci_lob_seek -oci_lob_setbuffering -oci_lob_size -oci_lob_tell -oci_lob_truncate -oci_lob_write -oci_lob_writetemporary -oci_lob_writetofile -ocilogoff -ocilogon -ocinewcollection -oci_new_collection -oci_new_connect -ocinewcursor -oci_new_cursor -ocinewdescriptor -oci_new_descriptor -ocinlogon -ocinumcols -oci_num_fields -oci_num_rows -ociparse -oci_parse -oci_password_change -oci_pconnect -ociplogon -ociresult -oci_result -ocirollback -oci_rollback -ocirowcount -ocisavelob -ocisavelobfile -ociserverversion -oci_server_version -oci_set_action -oci_set_client_identifier -oci_set_client_info -oci_set_edition -oci_set_module_name -ocisetprefetch -oci_set_prefetch -ocistatementtype -oci_statement_type -ociwritelobtofile -ociwritetemporarylob -octdec -odbc_autocommit -odbc_binmode -odbc_close -odbc_close_all -odbc_columnprivileges -odbc_columns -odbc_commit -odbc_connect -odbc_cursor -odbc_data_source -odbc_do -odbc_error -odbc_errormsg -odbc_exec -odbc_execute -odbc_fetch_array -odbc_fetch_into -odbc_fetch_object -odbc_fetch_row -odbc_field_len -odbc_field_name -odbc_field_num -odbc_field_precision -odbc_field_scale -odbc_field_type -odbc_foreignkeys -odbc_free_result -odbc_gettypeinfo -odbc_longreadlen -odbc_next_result -odbc_num_fields -odbc_num_rows -odbc_pconnect -odbc_prepare -odbc_primarykeys -odbc_procedurecolumns -odbc_procedures -odbc_result -odbc_result_all -odbc_rollback -odbc_setoption -odbc_specialcolumns -odbc_statistics -odbc_tableprivileges -odbc_tables -old_function -openal_buffer_create -openal_buffer_data -openal_buffer_destroy -openal_buffer_get -openal_buffer_loadwav -openal_context_create -openal_context_current -openal_context_destroy -openal_context_process -openal_context_suspend -openal_device_close -openal_device_open -openal_listener_get -openal_listener_set -openal_source_create -openal_source_destroy -openal_source_get -openal_source_pause -openal_source_play -openal_source_rewind -openal_source_set -openal_source_stop -openal_stream -opendir -openlog -openssl_cipher_iv_length -openssl_csr_export -openssl_csr_export_to_file -openssl_csr_get_public_key -openssl_csr_get_subject -openssl_csr_new -openssl_csr_sign -openssl_decrypt -openssl_dh_compute_key -openssl_digest -openssl_encrypt -openssl_error_string -openssl_free_key -openssl_get_cipher_methods -openssl_get_md_methods -openssl_get_privatekey -openssl_get_publickey -openssl_open -openssl_pkcs12_export -openssl_pkcs12_export_to_file -openssl_pkcs12_read -openssl_pkcs7_decrypt -openssl_pkcs7_encrypt -openssl_pkcs7_sign -openssl_pkcs7_verify -openssl_pkey_export -openssl_pkey_export_to_file -openssl_pkey_free -openssl_pkey_get_details -openssl_pkey_get_private -openssl_pkey_get_public -openssl_pkey_new -openssl_private_decrypt -openssl_private_encrypt -openssl_public_decrypt -openssl_public_encrypt -openssl_random_pseudo_bytes -openssl_seal -openssl_sign -openssl_verify -openssl_x509_check_private_key -openssl_x509_checkpurpose -openssl_x509_export -openssl_x509_export_to_file -openssl_x509_free -openssl_x509_parse -openssl_x509_read -or -ord -outeriterator -outofboundsexception -outofrangeexception -output_add_rewrite_var -output_reset_rewrite_vars -overflowexception -overload -override_function -ovrimos_close -ovrimos_commit -ovrimos_connect -ovrimos_cursor -ovrimos_exec -ovrimos_execute -ovrimos_fetch_into -ovrimos_fetch_row -ovrimos_field_len -ovrimos_field_name -ovrimos_field_num -ovrimos_field_type -ovrimos_free_result -ovrimos_longreadlen -ovrimos_num_fields -ovrimos_num_rows -ovrimos_prepare -ovrimos_result -ovrimos_result_all -ovrimos_rollback -pack -parentiterator -parse_ini_file -parse_ini_string -parsekit_compile_file -parsekit_compile_string -parsekit_func_arginfo -parse_str -parse_url -passthru -pathinfo -pclose -pcntl_alarm -pcntl_exec -pcntl_fork -pcntl_getpriority -pcntl_setpriority -pcntl_signal -pcntl_signal_dispatch -pcntl_sigprocmask -pcntl_sigtimedwait -pcntl_sigwaitinfo -pcntl_wait -pcntl_waitpid -pcntl_wexitstatus -pcntl_wifexited -pcntl_wifsignaled -pcntl_wifstopped -pcntl_wstopsig -pcntl_wtermsig -pdf_activate_item -pdf_add_annotation -pdf_add_bookmark -pdf_add_launchlink -pdf_add_locallink -pdf_add_nameddest -pdf_add_note -pdf_add_outline -pdf_add_pdflink -pdf_add_table_cell -pdf_add_textflow -pdf_add_thumbnail -pdf_add_weblink -pdf_arc -pdf_arcn -pdf_attach_file -pdf_begin_document -pdf_begin_font -pdf_begin_glyph -pdf_begin_item -pdf_begin_layer -pdf_begin_page -pdf_begin_page_ext -pdf_begin_pattern -pdf_begin_template -pdf_begin_template_ext -pdf_circle -pdf_clip -pdf_close -pdf_close_image -pdf_closepath -pdf_closepath_fill_stroke -pdf_closepath_stroke -pdf_close_pdi -pdf_close_pdi_page -pdf_concat -pdf_continue_text -pdf_create_3dview -pdf_create_action -pdf_create_annotation -pdf_create_bookmark -pdf_create_field -pdf_create_fieldgroup -pdf_create_gstate -pdf_create_pvf -pdf_create_textflow -pdf_curveto -pdf_define_layer -pdf_delete -pdf_delete_pvf -pdf_delete_table -pdf_delete_textflow -pdf_encoding_set_char -pdf_end_document -pdf_end_font -pdf_end_glyph -pdf_end_item -pdf_end_layer -pdf_end_page -pdf_end_page_ext -pdf_endpath -pdf_end_pattern -pdf_end_template -pdf_fill -pdf_fill_imageblock -pdf_fill_pdfblock -pdf_fill_stroke -pdf_fill_textblock -pdf_findfont -pdf_fit_image -pdf_fit_pdi_page -pdf_fit_table -pdf_fit_textflow -pdf_fit_textline -pdf_get_apiname -pdf_get_buffer -pdf_get_errmsg -pdf_get_errnum -pdf_get_font -pdf_get_fontname -pdf_get_fontsize -pdf_get_image_height -pdf_get_image_width -pdf_get_majorversion -pdf_get_minorversion -pdf_get_parameter -pdf_get_pdi_parameter -pdf_get_pdi_value -pdf_get_value -pdf_info_font -pdf_info_matchbox -pdf_info_table -pdf_info_textflow -pdf_info_textline -pdf_initgraphics -pdf_lineto -pdf_load_3ddata -pdf_load_font -pdf_load_iccprofile -pdf_load_image -pdf_makespotcolor -pdf_moveto -pdf_new -pdf_open_ccitt -pdf_open_file -pdf_open_gif -pdf_open_image -pdf_open_image_file -pdf_open_jpeg -pdf_open_memory_image -pdf_open_pdi -pdf_open_pdi_document -pdf_open_pdi_page -pdf_open_tiff -pdf_pcos_get_number -pdf_pcos_get_stream -pdf_pcos_get_string -pdf_place_image -pdf_place_pdi_page -pdf_process_pdi -pdf_rect -pdf_restore -pdf_resume_page -pdf_rotate -pdf_save -pdf_scale -pdf_set_border_color -pdf_set_border_dash -pdf_set_border_style -pdf_set_char_spacing -pdf_setcolor -pdf_setdash -pdf_setdashpattern -pdf_set_duration -pdf_setflat -pdf_setfont -pdf_setgray -pdf_setgray_fill -pdf_setgray_stroke -pdf_set_gstate -pdf_set_horiz_scaling -pdf_set_info -pdf_set_info_author -pdf_set_info_creator -pdf_set_info_keywords -pdf_set_info_subject -pdf_set_info_title -pdf_set_layer_dependency -pdf_set_leading -pdf_setlinecap -pdf_setlinejoin -pdf_setlinewidth -pdf_setmatrix -pdf_setmiterlimit -pdf_set_parameter -pdf_setpolydash -pdf_setrgbcolor -pdf_setrgbcolor_fill -pdf_setrgbcolor_stroke -pdf_set_text_matrix -pdf_set_text_pos -pdf_set_text_rendering -pdf_set_text_rise -pdf_set_value -pdf_set_word_spacing -pdf_shading -pdf_shading_pattern -pdf_shfill -pdf_show -pdf_show_boxed -pdf_show_xy -pdf_skew -pdf_stringwidth -pdf_stroke -pdf_suspend_page -pdf_translate -pdf_utf16_to_utf8 -pdf_utf32_to_utf16 -pdf_utf8_to_utf16 -pdo -pdo_cubrid_schema -pdoexception -pdo_pgsqllobcreate -pdo_pgsqllobopen -pdo_pgsqllobunlink -pdo_sqlitecreateaggregate -pdo_sqlitecreatefunction -pdostatement -pfsockopen -pg_affected_rows -pg_cancel_query -pg_client_encoding -pg_close -pg_connect -pg_connection_busy -pg_connection_reset -pg_connection_status -pg_convert -pg_copy_from -pg_copy_to -pg_dbname -pg_delete -pg_end_copy -pg_escape_bytea -pg_escape_string -pg_execute -pg_fetch_all -pg_fetch_all_columns -pg_fetch_array -pg_fetch_assoc -pg_fetch_object -pg_fetch_result -pg_fetch_row -pg_field_is_null -pg_field_name -pg_field_num -pg_field_prtlen -pg_field_size -pg_field_table -pg_field_type -pg_field_type_oid -pg_free_result -pg_get_notify -pg_get_pid -pg_get_result -pg_host -pg_insert -pg_last_error -pg_last_notice -pg_last_oid -pg_lo_close -pg_lo_create -pg_lo_export -pg_lo_import -pg_lo_open -pg_lo_read -pg_lo_read_all -pg_lo_seek -pg_lo_tell -pg_lo_unlink -pg_lo_write -pg_meta_data -pg_num_fields -pg_num_rows -pg_options -pg_parameter_status -pg_pconnect -pg_ping -pg_port -pg_prepare -pg_put_line -pg_query -pg_query_params -pg_result_error -pg_result_error_field -pg_result_seek -pg_result_status -pg_select -pg_send_execute -pg_send_prepare -pg_send_query -pg_send_query_params -pg_set_client_encoding -pg_set_error_verbosity -pg_trace -pg_transaction_status -pg_tty -pg_unescape_bytea -pg_untrace -pg_update -pg_version -Phar -PharData -PharException -PharFileInfo -php_check_syntax -phpcredits -phpinfo -php_ini_loaded_file -php_ini_scanned_files -php_logo_guid -php_sapi_name -php_strip_whitespace -php_uname -phpversion -pi -png2wbmp -popen -pos -posix_access -posix_ctermid -posix_errno -posix_getcwd -posix_getegid -posix_geteuid -posix_getgid -posix_getgrgid -posix_getgrnam -posix_getgroups -posix_get_last_error -posix_getlogin -posix_getpgid -posix_getpgrp -posix_getpid -posix_getppid -posix_getpwnam -posix_getpwuid -posix_getrlimit -posix_getsid -posix_getuid -posix_initgroups -posix_isatty -posix_kill -posix_mkfifo -posix_mknod -posix_setegid -posix_seteuid -posix_setgid -posix_setpgid -posix_setsid -posix_setuid -posix_strerror -posix_times -posix_ttyname -posix_uname -pow -preg_filter -preg_grep -preg_last_error -preg_match -preg_match_all -preg_quote -preg_replace -preg_replace_callback -preg_split -prev -print -printer_abort -printer_close -printer_create_brush -printer_create_dc -printer_create_font -printer_create_pen -printer_delete_brush -printer_delete_dc -printer_delete_font -printer_delete_pen -printer_draw_bmp -printer_draw_chord -printer_draw_elipse -printer_draw_line -printer_draw_pie -printer_draw_rectangle -printer_draw_roundrect -printer_draw_text -printer_end_doc -printer_end_page -printer_get_option -printer_list -printer_logical_fontheight -printer_open -printer_select_brush -printer_select_font -printer_select_pen -printer_set_option -printer_start_doc -printer_start_page -printer_write -printf -print_r -private -proc_close -proc_get_status -proc_nice -proc_open -proc_terminate -property_exists -protected -ps_add_bookmark -ps_add_launchlink -ps_add_locallink -ps_add_note -ps_add_pdflink -ps_add_weblink -ps_arc -ps_arcn -ps_begin_page -ps_begin_pattern -ps_begin_template -ps_circle -ps_clip -ps_close -ps_close_image -ps_closepath -ps_closepath_stroke -ps_continue_text -ps_curveto -ps_delete -ps_end_page -ps_end_pattern -ps_end_template -ps_fill -ps_fill_stroke -ps_findfont -ps_get_buffer -ps_get_parameter -ps_get_value -ps_hyphenate -ps_include_file -ps_lineto -ps_makespotcolor -ps_moveto -ps_new -ps_open_file -ps_open_image -ps_open_image_file -ps_open_memory_image -pspell_add_to_personal -pspell_add_to_session -pspell_check -pspell_clear_session -pspell_config_create -pspell_config_data_dir -pspell_config_dict_dir -pspell_config_ignore -pspell_config_mode -pspell_config_personal -pspell_config_repl -pspell_config_runtogether -pspell_config_save_repl -pspell_new -pspell_new_config -pspell_new_personal -pspell_save_wordlist -pspell_store_replacement -pspell_suggest -ps_place_image -ps_rect -ps_restore -ps_rotate -ps_save -ps_scale -ps_set_border_color -ps_set_border_dash -ps_set_border_style -ps_setcolor -ps_setdash -ps_setflat -ps_setfont -ps_setgray -ps_set_info -ps_setlinecap -ps_setlinejoin -ps_setlinewidth -ps_setmiterlimit -ps_setoverprintmode -ps_set_parameter -ps_setpolydash -ps_set_text_pos -ps_set_value -ps_shading -ps_shading_pattern -ps_shfill -ps_show -ps_show2 -ps_show_boxed -ps_show_xy -ps_show_xy2 -ps_string_geometry -ps_stringwidth -ps_stroke -ps_symbol -ps_symbol_name -ps_symbol_width -ps_translate -public -putenv -px_close -px_create_fp -px_date2string -px_delete -px_delete_record -px_get_field -px_get_info -px_get_parameter -px_get_record -px_get_schema -px_get_value -px_insert_record -px_new -px_numfields -px_numrecords -px_open_fp -px_put_record -px_retrieve_record -px_set_blob_file -px_set_parameter -px_set_tablename -px_set_targetencoding -px_set_value -px_timestamp2string -px_update_record -qdom_error -qdom_tree -quickhashinthash -quickhashintset -quickhashintstringhash -quickhashstringinthash -quoted_printable_decode -quoted_printable_encode -quotemeta -rad2deg -radius_acct_open -radius_add_server -radius_auth_open -radius_close -radius_config -radius_create_request -radius_cvt_addr -radius_cvt_int -radius_cvt_string -radius_demangle -radius_demangle_mppe_key -radius_get_attr -radius_get_vendor_attr -radius_put_addr -radius_put_attr -radius_put_int -radius_put_string -radius_put_vendor_addr -radius_put_vendor_attr -radius_put_vendor_int -radius_put_vendor_string -radius_request_authenticator -radius_send_request -radius_server_secret -radius_strerror -rand -range -rangeexception -rararchive -rarentry -rarexception -rar_wrapper_cache_stats -rawurldecode -rawurlencode -readdir -read_exif_data -readfile -readgzfile -readline -readline_add_history -readline_callback_handler_install -readline_callback_handler_remove -readline_callback_read_char -readline_clear_history -readline_completion_function -readline_info -readline_list_history -readline_on_new_line -readline_read_history -readline_redisplay -readline_write_history -readlink -realpath -realpath_cache_get -realpath_cache_size -recode -recode_file -recode_string -recursivearrayiterator -recursivecachingiterator -recursivecallbackfilteriterator -recursivedirectoryiterator -recursivefilteriterator -recursiveiterator -recursiveiteratoriterator -recursiveregexiterator -recursivetreeiterator -reflection -reflectionclass -reflectionexception -reflectionextension -reflectionfunction -reflectionfunctionabstract -reflectionmethod -reflectionobject -reflectionparameter -reflectionproperty -reflector -regexiterator -register_shutdown_function -register_tick_function -rename -rename_function -require -require_once -reset -resetValue -resourcebundle -restore_error_handler -restore_exception_handler -restore_include_path -return -rewind -rewinddir -rmdir -round -rpm_close -rpm_get_tag -rpm_is_valid -rpm_open -rpm_version -rrd_create -rrdcreator -rrd_error -rrd_fetch -rrd_first -rrdgraph -rrd_graph -rrd_info -rrd_last -rrd_lastupdate -rrd_restore -rrd_tune -rrd_update -rrdupdater -rrd_version -rrd_xport -rsort -rtrim -runkit_class_adopt -runkit_class_emancipate -runkit_constant_add -runkit_constant_redefine -runkit_constant_remove -runkit_function_add -runkit_function_copy -runkit_function_redefine -runkit_function_remove -runkit_function_rename -runkit_import -runkit_lint -runkit_lint_file -runkit_method_add -runkit_method_copy -runkit_method_redefine -runkit_method_remove -runkit_method_rename -runkit_return_value_used -runkit_sandbox_output_handler -runkit_superglobals -runtimeexception -samconnection_commit -samconnection_connect -samconnection_constructor -samconnection_disconnect -samconnection_errno -samconnection_error -samconnection_isconnected -samconnection_peek -samconnection_peekall -samconnection_receive -samconnection_remove -samconnection_rollback -samconnection_send -samconnection_setDebug -samconnection_subscribe -samconnection_unsubscribe -sammessage_body -sammessage_constructor -sammessage_header -sca_createdataobject -sca_getservice -sca_localproxy_createdataobject -scandir -sca_soapproxy_createdataobject -sdo_das_changesummary_beginlogging -sdo_das_changesummary_endlogging -sdo_das_changesummary_getchangeddataobjects -sdo_das_changesummary_getchangetype -sdo_das_changesummary_getoldcontainer -sdo_das_changesummary_getoldvalues -sdo_das_changesummary_islogging -sdo_das_datafactory_addpropertytotype -sdo_das_datafactory_addtype -sdo_das_datafactory_getdatafactory -sdo_das_dataobject_getchangesummary -sdo_das_relational_applychanges -sdo_das_relational_construct -sdo_das_relational_createrootdataobject -sdo_das_relational_executepreparedquery -sdo_das_relational_executequery -sdo_das_setting_getlistindex -sdo_das_setting_getpropertyindex -sdo_das_setting_getpropertyname -sdo_das_setting_getvalue -sdo_das_setting_isset -sdo_das_xml_addtypes -sdo_das_xml_create -sdo_das_xml_createdataobject -sdo_das_xml_createdocument -sdo_das_xml_document_getrootdataobject -sdo_das_xml_document_getrootelementname -sdo_das_xml_document_getrootelementuri -sdo_das_xml_document_setencoding -sdo_das_xml_document_setxmldeclaration -sdo_das_xml_document_setxmlversion -sdo_das_xml_loadfile -sdo_das_xml_loadstring -sdo_das_xml_savefile -sdo_das_xml_savestring -sdo_datafactory_create -sdo_dataobject_clear -sdo_dataobject_createdataobject -sdo_dataobject_getcontainer -sdo_dataobject_getsequence -sdo_dataobject_gettypename -sdo_dataobject_gettypenamespaceuri -sdo_exception_getcause -sdo_list_insert -sdo_model_property_getcontainingtype -sdo_model_property_getdefault -sdo_model_property_getname -sdo_model_property_gettype -sdo_model_property_iscontainment -sdo_model_property_ismany -sdo_model_reflectiondataobject_construct -sdo_model_reflectiondataobject_export -sdo_model_reflectiondataobject_getcontainmentproperty -sdo_model_reflectiondataobject_getinstanceproperties -sdo_model_reflectiondataobject_gettype -sdo_model_type_getbasetype -sdo_model_type_getname -sdo_model_type_getnamespaceuri -sdo_model_type_getproperties -sdo_model_type_getproperty -sdo_model_type_isabstracttype -sdo_model_type_isdatatype -sdo_model_type_isinstance -sdo_model_type_isopentype -sdo_model_type_issequencedtype -sdo_sequence_getproperty -sdo_sequence_insert -sdo_sequence_move -seekableiterator -sem_acquire -sem_get -sem_release -sem_remove -serializable -serialize -session_cache_expire -session_cache_limiter -session_commit -session_decode -session_destroy -session_encode -session_get_cookie_params -session_id -session_is_registered -session_module_name -session_name -session_pgsql_add_error -session_pgsql_get_error -session_pgsql_get_field -session_pgsql_reset -session_pgsql_set_field -session_pgsql_status -session_regenerate_id -session_register -session_save_path -session_set_cookie_params -session_set_save_handler -session_start -session_unregister -session_unset -session_write_close -__set() -setcookie -setCounterClass -set_error_handler -set_exception_handler -set_file_buffer -set_include_path -setlocale -set_magic_quotes_runtime -setproctitle -setrawcookie -set_socket_blocking -__set_state() -setstaticpropertyvalue -setthreadtitle -set_time_limit -settype -sha1 -sha1_file -shell_exec -shm_attach -shm_detach -shm_get_var -shm_has_var -shmop_close -shmop_delete -shmop_open -shmop_read -shmop_size -shmop_write -shm_put_var -shm_remove -shm_remove_var -show_source -shuffle -signeurlpaiement -similar_text -simplexmlelement -simplexml_import_dom -simplexmliterator -simplexml_load_file -simplexml_load_string -sin -sinh -sizeof -sleep -__sleep() -snmp -snmp2_get -snmp2_getnext -snmp2_real_walk -snmp2_set -snmp2_walk -snmp3_get -snmp3_getnext -snmp3_real_walk -snmp3_set -snmp3_walk -snmpexception -snmpget -snmpgetnext -snmp_get_quick_print -snmp_get_valueretrieval -snmp_read_mib -snmprealwalk -snmpset -snmp_set_enum_print -snmp_set_oid_numeric_print -snmp_set_oid_output_format -snmp_set_quick_print -snmp_set_valueretrieval -snmpwalk -snmpwalkoid -soapclient -soapfault -soapheader -soapparam -soapserver -soapvar -socket_accept -socket_bind -socket_clear_error -socket_close -socket_connect -socket_create -socket_create_listen -socket_create_pair -socket_get_option -socket_getpeername -socket_getsockname -socket_get_status -socket_last_error -socket_listen -socket_read -socket_recv -socket_recvfrom -socket_select -socket_send -socket_sendto -socket_set_block -socket_set_blocking -socket_set_nonblock -socket_set_option -socket_set_timeout -socket_shutdown -socket_strerror -socket_write -solrclient -solrclientexception -solrdocument -solrdocumentfield -solrexception -solrgenericresponse -solr_get_version -solrillegalargumentexception -solrillegaloperationexception -solrinputdocument -solrmodifiableparams -solrobject -solrparams -solrpingresponse -solrquery -solrqueryresponse -solrresponse -solrupdateresponse -solrutils -sort -soundex -sphinxclient -spl_autoload -spl_autoload_call -spl_autoload_extensions -spl_autoload_functions -spl_autoload_register -spl_autoload_unregister -splbool -spl_classes -spldoublylinkedlist -splenum -splfileinfo -splfileobject -splfixedarray -splfloat -splheap -splint -split -spliti -splmaxheap -splminheap -spl_object_hash -splobjectstorage -splobserver -splpriorityqueue -splqueue -splstack -splstring -splsubject -spltempfileobject -spltype -spoofchecker -sprintf -sqlite3 -sqlite3result -sqlite3stmt -sqlite_array_query -sqlite_busy_timeout -sqlite_changes -sqlite_close -sqlite_column -sqlite_create_aggregate -sqlite_create_function -sqlite_current -sqlite_error_string -sqlite_escape_string -sqlite_exec -sqlite_factory -sqlite_fetch_all -sqlite_fetch_array -sqlite_fetch_column_types -sqlite_fetch_object -sqlite_fetch_single -sqlite_fetch_string -sqlite_field_name -sqlite_has_more -sqlite_has_prev -sqlite_key -sqlite_last_error -sqlite_last_insert_rowid -sqlite_libencoding -sqlite_libversion -sqlite_next -sqlite_num_fields -sqlite_num_rows -sqlite_open -sqlite_popen -sqlite_prev -sqlite_query -sqlite_rewind -sqlite_seek -sqlite_single_query -sqlite_udf_decode_binary -sqlite_udf_encode_binary -sqlite_unbuffered_query -sqlite_valid -sql_regcase -sqlsrv_begin_transaction -sqlsrv_cancel -sqlsrv_client_info -sqlsrv_close -sqlsrv_commit -sqlsrv_configure -sqlsrv_connect -sqlsrv_errors -sqlsrv_execute -sqlsrv_fetch -sqlsrv_fetch_array -sqlsrv_fetch_object -sqlsrv_field_metadata -sqlsrv_free_stmt -sqlsrv_get_config -sqlsrv_get_field -sqlsrv_has_rows -sqlsrv_next_result -sqlsrv_num_fields -sqlsrv_num_rows -sqlsrv_prepare -sqlsrv_query -sqlsrv_rollback -sqlsrv_rows_affected -sqlsrv_send_stream_data -sqlsrv_server_info -sqrt -srand -sscanf -ssdeep_fuzzy_compare -ssdeep_fuzzy_hash -ssdeep_fuzzy_hash_filename -ssh2_auth_hostbased_file -ssh2_auth_none -ssh2_auth_password -ssh2_auth_pubkey_file -ssh2_connect -ssh2_exec -ssh2_fetch_stream -ssh2_fingerprint -ssh2_methods_negotiated -ssh2_publickey_add -ssh2_publickey_init -ssh2_publickey_list -ssh2_publickey_remove -ssh2_scp_recv -ssh2_scp_send -ssh2_sftp -ssh2_sftp_lstat -ssh2_sftp_mkdir -ssh2_sftp_readlink -ssh2_sftp_realpath -ssh2_sftp_rename -ssh2_sftp_rmdir -ssh2_sftp_stat -ssh2_sftp_symlink -ssh2_sftp_unlink -ssh2_shell -ssh2_tunnel -stat -static -stats_absolute_deviation -stats_cdf_beta -stats_cdf_binomial -stats_cdf_cauchy -stats_cdf_chisquare -stats_cdf_exponential -stats_cdf_f -stats_cdf_gamma -stats_cdf_laplace -stats_cdf_logistic -stats_cdf_negative_binomial -stats_cdf_noncentral_chisquare -stats_cdf_noncentral_f -stats_cdf_poisson -stats_cdf_t -stats_cdf_uniform -stats_cdf_weibull -stats_covariance -stats_dens_beta -stats_dens_cauchy -stats_dens_chisquare -stats_dens_exponential -stats_dens_f -stats_dens_gamma -stats_dens_laplace -stats_dens_logistic -stats_dens_negative_binomial -stats_dens_normal -stats_dens_pmf_binomial -stats_dens_pmf_hypergeometric -stats_dens_pmf_poisson -stats_dens_t -stats_dens_weibull -stats_den_uniform -stats_harmonic_mean -stats_kurtosis -stats_rand_gen_beta -stats_rand_gen_chisquare -stats_rand_gen_exponential -stats_rand_gen_f -stats_rand_gen_funiform -stats_rand_gen_gamma -stats_rand_gen_ibinomial -stats_rand_gen_ibinomial_negative -stats_rand_gen_int -stats_rand_gen_ipoisson -stats_rand_gen_iuniform -stats_rand_gen_noncenral_chisquare -stats_rand_gen_noncentral_f -stats_rand_gen_noncentral_t -stats_rand_gen_normal -stats_rand_gen_t -stats_rand_get_seeds -stats_rand_phrase_to_seeds -stats_rand_ranf -stats_rand_setall -stats_skew -stats_standard_deviation -stats_stat_binomial_coef -stats_stat_correlation -stats_stat_gennch -stats_stat_independent_t -stats_stat_innerproduct -stats_stat_noncentral_t -stats_stat_paired_t -stats_stat_percentile -stats_stat_powersum -stats_variance -stomp -stomp_connect_error -stompexception -stompframe -stomp_version -strcasecmp -strchr -strcmp -strcoll -strcspn -stream_bucket_append -stream_bucket_make_writeable -stream_bucket_new -stream_bucket_prepend -stream_context_create -stream_context_get_default -stream_context_get_options -stream_context_get_params -stream_context_set_default -stream_context_set_option -stream_context_set_params -stream_copy_to_stream -stream_encoding -stream_filter_append -stream_filter_prepend -stream_filter_register -stream_filter_remove -stream_get_contents -stream_get_filters -stream_get_line -stream_get_meta_data -stream_get_transports -stream_get_wrappers -stream_is_local -stream_notification_callback -stream_register_wrapper -stream_resolve_include_path -stream_select -stream_set_blocking -stream_set_read_buffer -stream_set_timeout -stream_set_write_buffer -stream_socket_accept -stream_socket_client -stream_socket_enable_crypto -stream_socket_get_name -stream_socket_pair -stream_socket_recvfrom -stream_socket_sendto -stream_socket_server -stream_socket_shutdown -stream_supports_lock -streamwrapper -stream_wrapper_register -stream_wrapper_restore -stream_wrapper_unregister -strftime -str_getcsv -stripcslashes -stripos -stripslashes -strip_tags -str_ireplace -stristr -strlen -strnatcasecmp -strnatcmp -strncasecmp -strncmp -str_pad -strpbrk -strpos -strptime -strrchr -str_repeat -str_replace -strrev -strripos -str_rot13 -strrpos -str_shuffle -str_split -strspn -strstr -strtok -strtolower -strtotime -strtoupper -strtr -strval -str_word_count -substr -substr_compare -substr_count -substr_replace -svm -svmmodel -svn_add -svn_auth_get_parameter -svn_auth_set_parameter -svn_blame -svn_cat -svn_checkout -svn_cleanup -svn_client_version -svn_commit -svn_delete -svn_diff -svn_export -svn_fs_abort_txn -svn_fs_apply_text -svn_fs_begin_txn2 -svn_fs_change_node_prop -svn_fs_check_path -svn_fs_contents_changed -svn_fs_copy -svn_fs_delete -svn_fs_dir_entries -svn_fs_file_contents -svn_fs_file_length -svn_fs_is_dir -svn_fs_is_file -svn_fs_make_dir -svn_fs_make_file -svn_fs_node_created_rev -svn_fs_node_prop -svn_fs_props_changed -svn_fs_revision_prop -svn_fs_revision_root -svn_fs_txn_root -svn_fs_youngest_rev -svn_import -svn_log -svn_ls -svn_mkdir -svn_repos_create -svn_repos_fs -svn_repos_fs_begin_txn_for_commit -svn_repos_fs_commit_txn -svn_repos_hotcopy -svn_repos_open -svn_repos_recover -svn_revert -svn_status -svn_update -swfaction -swfaction.construct -swf_actiongeturl -swf_actiongotoframe -swf_actiongotolabel -swf_actionnextframe -swf_actionplay -swf_actionprevframe -swf_actionsettarget -swf_actionstop -swf_actiontogglequality -swf_actionwaitforframe -swf_addbuttonrecord -swf_addcolor -swfbitmap -swfbitmap.construct -swfbitmap.getheight -swfbitmap.getwidth -swfbutton -swfbutton.addaction -swfbutton.addasound -swfbutton.addshape -swfbutton.construct -swfbutton.setaction -swfbutton.setdown -swfbutton.sethit -swfbutton.setmenu -swfbutton.setover -swfbutton.setup -swf_closefile -swf_definebitmap -swf_definefont -swf_defineline -swf_definepoly -swf_definerect -swf_definetext -swfdisplayitem -swfdisplayitem.addaction -swfdisplayitem.addcolor -swfdisplayitem.endmask -swfdisplayitem.getrot -swfdisplayitem.getx -swfdisplayitem.getxscale -swfdisplayitem.getxskew -swfdisplayitem.gety -swfdisplayitem.getyscale -swfdisplayitem.getyskew -swfdisplayitem.move -swfdisplayitem.moveto -swfdisplayitem.multcolor -swfdisplayitem.remove -swfdisplayitem.rotate -swfdisplayitem.rotateto -swfdisplayitem.scale -swfdisplayitem.scaleto -swfdisplayitem.setdepth -swfdisplayitem.setmasklevel -swfdisplayitem.setmatrix -swfdisplayitem.setname -swfdisplayitem.setratio -swfdisplayitem.skewx -swfdisplayitem.skewxto -swfdisplayitem.skewy -swfdisplayitem.skewyto -swf_endbutton -swf_enddoaction -swf_endshape -swf_endsymbol -swffill -swffill.moveto -swffill.rotateto -swffill.scaleto -swffill.skewxto -swffill.skewyto -swffont -swffontchar -swffontchar.addchars -swffontchar.addutf8chars -swffont.construct -swffont.getascent -swffont.getdescent -swffont.getleading -swffont.getshape -swffont.getutf8width -swffont.getwidth -swf_fontsize -swf_fontslant -swf_fonttracking -swf_getbitmapinfo -swf_getfontinfo -swf_getframe -swfgradient -swfgradient.addentry -swfgradient.construct -swf_labelframe -swf_lookat -swf_modifyobject -swfmorph -swfmorph.construct -swfmorph.getshape1 -swfmorph.getshape2 -swfmovie -swfmovie.add -swfmovie.addexport -swfmovie.addfont -swfmovie.construct -swfmovie.importchar -swfmovie.importfont -swfmovie.labelframe -swfmovie.nextframe -swfmovie.output -swfmovie.remove -swfmovie.save -swfmovie.savetofile -swfmovie.setbackground -swfmovie.setdimension -swfmovie.setframes -swfmovie.setrate -swfmovie.startsound -swfmovie.stopsound -swfmovie.streammp3 -swfmovie.writeexports -swf_mulcolor -swf_nextid -swf_oncondition -swf_openfile -swf_ortho -swf_ortho2 -swf_perspective -swf_placeobject -swf_polarview -swf_popmatrix -swf_posround -swfprebuiltclip -swfprebuiltclip.construct -swf_pushmatrix -swf_removeobject -swf_rotate -swf_scale -swf_setfont -swf_setframe -swfshape -swfshape.addfill -swf_shapearc -swfshape.construct -swf_shapecurveto -swf_shapecurveto3 -swfshape.drawarc -swfshape.drawcircle -swfshape.drawcubic -swfshape.drawcubicto -swfshape.drawcurve -swfshape.drawcurveto -swfshape.drawglyph -swfshape.drawline -swfshape.drawlineto -swf_shapefillbitmapclip -swf_shapefillbitmaptile -swf_shapefilloff -swf_shapefillsolid -swf_shapelinesolid -swf_shapelineto -swfshape.movepen -swfshape.movepento -swf_shapemoveto -swfshape.setleftfill -swfshape.setline -swfshape.setrightfill -swf_showframe -swfsound -swfsound.construct -swfsoundinstance -swfsoundinstance.loopcount -swfsoundinstance.loopinpoint -swfsoundinstance.loopoutpoint -swfsoundinstance.nomultiple -swfsprite -swfsprite.add -swfsprite.construct -swfsprite.labelframe -swfsprite.nextframe -swfsprite.remove -swfsprite.setframes -swfsprite.startsound -swfsprite.stopsound -swf_startbutton -swf_startdoaction -swf_startshape -swf_startsymbol -swftext -swftext.addstring -swftext.addutf8string -swftext.construct -swftextfield -swftextfield.addchars -swftextfield.addstring -swftextfield.align -swftextfield.construct -swftextfield.setbounds -swftextfield.setcolor -swftextfield.setfont -swftextfield.setheight -swftextfield.setindentation -swftextfield.setleftmargin -swftextfield.setlinespacing -swftextfield.setmargins -swftextfield.setname -swftextfield.setpadding -swftextfield.setrightmargin -swftext.getascent -swftext.getdescent -swftext.getleading -swftext.getutf8width -swftext.getwidth -swftext.moveto -swftext.setcolor -swftext.setfont -swftext.setheight -swftext.setspacing -swf_textwidth -swf_translate -swfvideostream -swfvideostream.construct -swfvideostream.getnumframes -swfvideostream.setdimension -swf_viewport -swish_construct -swish_getmetalist -swish_getpropertylist -swish_prepare -swish_query -swishresult_getmetalist -swishresults_getparsedwords -swishresults_getremovedstopwords -swishresults_nextresult -swishresults_seekresult -swishresult_stem -swishsearch_execute -swishsearch_resetlimit -swishsearch_setlimit -swishsearch_setphrasedelimiter -swishsearch_setsort -swishsearch_setstructure -switch -sybase_affected_rows -sybase_close -sybase_connect -sybase_data_seek -sybase_deadlock_retry_count -sybase_fetch_array -sybase_fetch_assoc -sybase_fetch_field -sybase_fetch_object -sybase_fetch_row -sybase_field_seek -sybase_free_result -sybase_get_last_message -sybase_min_client_severity -sybase_min_error_severity -sybase_min_message_severity -sybase_min_server_severity -sybase_num_fields -sybase_num_rows -sybase_pconnect -sybase_query -sybase_result -sybase_select_db -sybase_set_message_handler -sybase_unbuffered_query -symlink -sys_getloadavg -sys_get_temp_dir -syslog -system -tan -tanh -tcpwrap_check -tempnam -textdomain -throw -tidy -tidy_access_count -tidy_config_count -tidy_diagnose -tidy_error_count -tidy_get_error_buffer -tidy_get_output -tidy_load_config -tidynode -tidy_reset_config -tidy_save_config -tidy_set_encoding -tidy_setopt -tidy_warning_count -time -time_nanosleep -time_sleep_until -timezone_abbreviations_list -timezone_identifiers_list -timezone_location_get -timezone_name_from_abbr -timezone_name_get -timezone_offset_get -timezone_open -timezone_transitions_get -timezone_version_get -tmpfile -token_get_all -token_name -tokyotyrant -tokyotyrantquery -tokyotyranttable -tostring -__toString() -touch -transliterator -traversable -trigger_error -trim -try -uasort -ucfirst -ucwords -udm_add_search_limit -udm_alloc_agent -udm_alloc_agent_array -udm_api_version -udm_cat_list -udm_cat_path -udm_check_charset -udm_check_stored -udm_clear_search_limits -udm_close_stored -udm_crc32 -udm_errno -udm_error -udm_find -udm_free_agent -udm_free_ispell_data -udm_free_res -udm_get_doc_count -udm_get_res_field -udm_get_res_param -udm_hash32 -udm_load_ispell_data -udm_open_stored -udm_set_agent_param -uksort -umask -underflowexception -unexpectedvalueexception -uniqid -unixtojd -unlink -unpack -unregister_tick_function -unserialize -unset -__unset() -urldecode -urlencode -use -user_error -use_soap_error_handler -usleep -usort -utf8_decode -utf8_encode -v8js -v8jsexception -var -var_dump -var_export -variant -variant_abs -variant_add -variant_and -variant_cast -variant_cat -variant_cmp -variant_date_from_timestamp -variant_date_to_timestamp -variant_div -variant_eqv -variant_fix -variant_get_type -variant_idiv -variant_imp -variant_int -variant_mod -variant_mul -variant_neg -variant_not -variant_or -variant_pow -variant_round -variant_set -variant_set_type -variant_sub -variant_xor -version_compare -vfprintf -virtual -vpopmail_add_alias_domain -vpopmail_add_alias_domain_ex -vpopmail_add_domain -vpopmail_add_domain_ex -vpopmail_add_user -vpopmail_alias_add -vpopmail_alias_del -vpopmail_alias_del_domain -vpopmail_alias_get -vpopmail_alias_get_all -vpopmail_auth_user -vpopmail_del_domain -vpopmail_del_domain_ex -vpopmail_del_user -vpopmail_error -vpopmail_passwd -vpopmail_set_user_quota -vprintf -vsprintf -w32api_deftype -w32api_init_dtype -w32api_invoke_function -w32api_register_function -w32api_set_call_method -__wakeup() -wddx_add_vars -wddx_deserialize -wddx_packet_end -wddx_packet_start -wddx_serialize_value -wddx_serialize_vars -weakref -while -win32_continue_service -win32_create_service -win32_delete_service -win32_get_last_control_message -win32_pause_service -win32_ps_list_procs -win32_ps_stat_mem -win32_ps_stat_proc -win32_query_service_status -win32_set_service_status -win32_start_service -win32_start_service_ctrl_dispatcher -win32_stop_service -wincache_fcache_fileinfo -wincache_fcache_meminfo -wincache_lock -wincache_ocache_fileinfo -wincache_ocache_meminfo -wincache_refresh_if_changed -wincache_rplist_fileinfo -wincache_rplist_meminfo -wincache_scache_info -wincache_scache_meminfo -wincache_ucache_add -wincache_ucache_cas -wincache_ucache_clear -wincache_ucache_dec -wincache_ucache_delete -wincache_ucache_exists -wincache_ucache_get -wincache_ucache_inc -wincache_ucache_info -wincache_ucache_meminfo -wincache_ucache_set -wincache_unlock -wordwrap -xattr_get -xattr_list -xattr_remove -xattr_set -xattr_supported -xdiff_file_bdiff -xdiff_file_bdiff_size -xdiff_file_bpatch -xdiff_file_diff -xdiff_file_diff_binary -xdiff_file_merge3 -xdiff_file_patch -xdiff_file_patch_binary -xdiff_file_rabdiff -xdiff_string_bdiff -xdiff_string_bdiff_size -xdiff_string_bpatch -xdiff_string_diff -xdiff_string_diff_binary -xdiff_string_merge3 -xdiff_string_patch -xdiff_string_patch_binary -xdiff_string_rabdiff -xhprof_disable -xhprof_enable -xhprof_sample_disable -xhprof_sample_enable -xml_error_string -xml_get_current_byte_index -xml_get_current_column_number -xml_get_current_line_number -xml_get_error_code -xml_parse -xml_parse_into_struct -xml_parser_create -xml_parser_create_ns -xml_parser_free -xml_parser_get_option -xml_parser_set_option -xmlreader -xmlrpc_decode -xmlrpc_decode_request -xmlrpc_encode -xmlrpc_encode_request -xmlrpc_get_type -xmlrpc_is_fault -xmlrpc_parse_method_descriptions -xmlrpc_server_add_introspection_data -xmlrpc_server_call_method -xmlrpc_server_create -xmlrpc_server_destroy -xmlrpc_server_register_introspection_callback -xmlrpc_server_register_method -xmlrpc_set_type -xml_set_character_data_handler -xml_set_default_handler -xml_set_element_handler -xml_set_end_namespace_decl_handler -xml_set_external_entity_ref_handler -xml_set_notation_decl_handler -xml_set_object -xml_set_processing_instruction_handler -xml_set_start_namespace_decl_handler -xml_set_unparsed_entity_decl_handler -xmlwriter_end_attribute -xmlwriter_end_cdata -xmlwriter_end_comment -xmlwriter_end_document -xmlwriter_end_dtd -xmlwriter_end_dtd_attlist -xmlwriter_end_dtd_element -xmlwriter_end_dtd_entity -xmlwriter_end_element -xmlwriter_end_pi -xmlwriter_flush -xmlwriter_full_end_element -xmlwriter_open_memory -xmlwriter_open_uri -xmlwriter_output_memory -xmlwriter_set_indent -xmlwriter_set_indent_string -xmlwriter_start_attribute -xmlwriter_start_attribute_ns -xmlwriter_start_cdata -xmlwriter_start_comment -xmlwriter_start_document -xmlwriter_start_dtd -xmlwriter_start_dtd_attlist -xmlwriter_start_dtd_element -xmlwriter_start_dtd_entity -xmlwriter_start_element -xmlwriter_start_element_ns -xmlwriter_start_pi -xmlwriter_text -xmlwriter_write_attribute -xmlwriter_write_attribute_ns -xmlwriter_write_cdata -xmlwriter_write_comment -xmlwriter_write_dtd -xmlwriter_write_dtd_attlist -xmlwriter_write_dtd_element -xmlwriter_write_dtd_entity -xmlwriter_write_element -xmlwriter_write_element_ns -xmlwriter_write_pi -xmlwriter_write_raw -xor -xpath_eval -xpath_eval_expression -xpath_new_context -xpath_register_ns -xpath_register_ns_auto -xptr_eval -xptr_new_context -xslt_backend_info -xslt_backend_name -xslt_backend_version -xslt_create -xslt_errno -xslt_error -xslt_free -xslt_getopt -xslt_process -xsltprocessor -xslt_set_base -xslt_set_encoding -xslt_set_error_handler -xslt_set_log -xslt_set_object -xslt_setopt -xslt_set_sax_handler -xslt_set_sax_handlers -xslt_set_scheme_handler -xslt_set_scheme_handlers -yaml_emit -yaml_emit_file -yaml_parse -yaml_parse_file -yaml_parse_url -yaz_addinfo -yaz_ccl_conf -yaz_ccl_parse -yaz_close -yaz_connect -yaz_database -yaz_element -yaz_errno -yaz_error -yaz_es -yaz_es_result -yaz_get_option -yaz_hits -yaz_itemorder -yaz_present -yaz_range -yaz_record -yaz_scan -yaz_scan_result -yaz_schema -yaz_search -yaz_set_option -yaz_sort -yaz_syntax -yaz_wait -yp_all -yp_cat -yp_errno -yp_err_string -yp_first -yp_get_default_domain -yp_master -yp_match -yp_next -yp_order -zend_logo_guid -zend_thread_id -zend_version -ziparchive -ziparchive_addemptydir -ziparchive_addfile -ziparchive_addfromstring -ziparchive_close -ziparchive_deleteindex -ziparchive_deletename -ziparchive_extractto -ziparchive_getarchivecomment -ziparchive_getcommentindex -ziparchive_getcommentname -ziparchive_getfromindex -ziparchive_getfromname -ziparchive_getnameindex -ziparchive_getstatusstring -ziparchive_getstream -ziparchive_locatename -ziparchive_open -ziparchive_renameindex -ziparchive_renamename -ziparchive_setarchivecomment -ziparchive_setcommentindex -ziparchive_setCommentName -ziparchive_statindex -ziparchive_statname -ziparchive_unchangeall -ziparchive_unchangearchive -ziparchive_unchangeindex -ziparchive_unchangename -zip_close -zip_entry_close -zip_entry_compressedsize -zip_entry_compressionmethod -zip_entry_filesize -zip_entry_name -zip_entry_open -zip_entry_read -zip_open -zip_read -zlib_get_coding_type -amqpchannel -amqpenvelope -autoload -bumpvalue -class_uses -closure -cubrid_get_query_timeout -cubrid_pconnect -cubrid_pconnect_with_url -cubrid_set_query_timeout -directory -domcdatasection -eio_busy -eio_cancel -eio_chmod -eio_chown -eio_close -eio_custom -eio_dup2 -eio_event_loop -eio_fallocate -eio_fchmod -eio_fchown -eio_fdatasync -eio_fstat -eio_fstatvfs -eio_fsync -eio_ftruncate -eio_futime -eio_get_event_stream -eio_grp -eio_grp_add -eio_grp_cancel -eio_grp_limit -eio_link -eio_lstat -eio_mkdir -eio_mknod -eio_nop -eio_npending -eio_nready -eio_nreqs -eio_nthreads -eio_open -eio_poll -eio_read -eio_readahead -eio_readdir -eio_readlink -eio_realpath -eio_rename -eio_rmdir -eio_sendfile -eio_set_max_idle -eio_set_max_parallel -eio_set_max_poll_reqs -eio_set_max_poll_time -eio_set_min_parallel -eio_stat -eio_statvfs -eio_symlink -eio_sync -eio_sync_file_range -eio_syncfs -eio_truncate -eio_unlink -eio_utime -eio_write -get_declared_traits -getimagesizefromstring -getmeta -getnamed -getvalue -hwapi_attribute_new -hwapi_content_new -is_tainted -lapack -lapackexception -ldap_control_paged_result -ldap_control_paged_result_response -libxml_set_external_entity_loader -mysqli_get_cache_stats -mysqli_sql_exception -mysqlnd_ms_get_last_gtid -mysqlnd_ms_get_last_used_connection -mysqlnd_ms_match_wild -mysqlnd_ms_set_qos -mysqlnd_qc_get_available_handlers -mysqlnd_qc_get_normalized_query_trace_log -mysqlnd_qc_set_cache_condition -mysqlnd_qc_set_is_select -mysqlnd_qc_set_storage_handler -mysqlnd_uh_convert_to_mysqlnd -mysqlnd_uh_set_connection_proxy -mysqlnd_uh_set_statement_proxy -mysqlnduhconnection -mysqlnduhpreparedstatement -pg_escape_identifier -pg_escape_literal -phar -phardata -pharexception -pharfileinfo -php_user_filter -reflectionzendextension -resetvalue -session_register_shutdown -session_status -sessionhandler -sessionhandlerinterface -setcounterclass -socket_import_stream -stream_set_chunk_size -taint -tokyotyrantexception -tokyotyrantiterator -trait_exists -untaint -varnishadmin -varnishlog -varnishstat -yaf_action_abstract -yaf_application -yaf_bootstrap_abstract -yaf_config_abstract -yaf_config_ini -yaf_config_simple -yaf_controller_abstract -yaf_dispatcher -yaf_exception -yaf_exception_dispatchfailed -yaf_exception_loadfailed -yaf_exception_loadfailed_action -yaf_exception_loadfailed_controller -yaf_exception_loadfailed_module -yaf_exception_loadfailed_view -yaf_exception_routerfailed -yaf_exception_startuperror -yaf_exception_typeerror -yaf_loader -yaf_plugin_abstract -yaf_registry -yaf_request_abstract -yaf_request_http -yaf_request_simple -yaf_response_abstract -yaf_route_interface -yaf_route_map -yaf_route_regex -yaf_route_rewrite -yaf_route_simple -yaf_route_static -yaf_route_supervar -yaf_router -yaf_session -yaf_view_interface -yaf_view_simple -zlib_decode -zlib_encode -trait -insteadof diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/python-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/python-mode deleted file mode 100644 index 09e936c..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/python-mode +++ /dev/null @@ -1,379 +0,0 @@ -ArithmeticError -AssertionError -AttributeError -BaseException -BufferError -BytesWarning -DeprecationWarning -EOFError -Ellipsis -EnvironmentError -Exception -False -FloatingPointError -FutureWarning -GeneratorExit -IOError -ImportError -ImportWarning -IndentationError -IndexError -KeyError -KeyboardInterrupt -LookupError -MemoryError -NameError -None -NotImplemented -NotImplementedError -OSError -OverflowError -PendingDeprecationWarning -ReferenceError -RuntimeError -RuntimeWarning -StandardError -StopIteration -SyntaxError -SyntaxWarning -SystemError -SystemExit -TabError -True -TypeError -UnboundLocalError -UnicodeDecodeError -UnicodeEncodeError -UnicodeError -UnicodeTranslateError -UnicodeWarning -UserWarning -ValueError -Warning -ZeroDivisionError -__builtins__ -__debug__ -__doc__ -__file__ -__future__ -__import__ -__init__ -__main__ -__name__ -__package__ -_dummy_thread -_thread -abc -abs -aifc -all -and -any -apply -argparse -array -as -assert -ast -asynchat -asyncio -asyncore -atexit -audioop -base64 -basestring -bdb -bin -binascii -binhex -bisect -bool -break -buffer -builtins -bytearray -bytes -bz2 -calendar -callable -cgi -cgitb -chr -chuck -class -classmethod -cmath -cmd -cmp -code -codecs -codeop -coerce -collections -colorsys -compile -compileall -complex -concurrent -configparser -contextlib -continue -copy -copyreg -copyright -credits -crypt -csv -ctypes -curses -datetime -dbm -decimal -def -del -delattr -dict -difflib -dir -dis -distutils -divmod -doctest -dummy_threading -elif -else -email -enumerate -ensurepip -enum -errno -eval -except -exec -execfile -exit -faulthandler -fcntl -file -filecmp -fileinput -filter -finally -float -fnmatch -for -format -formatter -fpectl -fractions -from -frozenset -ftplib -functools -gc -getattr -getopt -getpass -gettext -glob -global -globals -grp -gzip -hasattr -hash -hashlib -heapq -help -hex -hmac -html -http -id -if -imghdr -imp -impalib -import -importlib -in -input -inspect -int -intern -io -ipaddress -is -isinstance -issubclass -iter -itertools -json -keyword -lambda -len -license -linecache -list -locale -locals -logging -long -lzma -macpath -mailbox -mailcap -map -marshal -math -max -memoryview -mimetypes -min -mmap -modulefinder -msilib -msvcrt -multiprocessing -netrc -next -nis -nntplib -not -numbers -object -oct -open -operator -optparse -or -ord -os -ossaudiodev -parser -pass -pathlib -pdb -pickle -pickletools -pipes -pkgutil -platform -plistlib -poplib -posix -pow -pprint -print -profile -property -pty -pwd -py_compiler -pyclbr -pydoc -queue -quit -quopri -raise -random -range -raw_input -re -readline -reduce -reload -repr -reprlib -resource -return -reversed -rlcompleter -round -runpy -sched -select -selectors -self -set -setattr -shelve -shlex -shutil -signal -site -slice -smtpd -smtplib -sndhdr -socket -socketserver -sorted -spwd -sqlite3 -ssl -stat -staticmethod -statistics -str -string -stringprep -struct -subprocess -sum -sunau -super -symbol -symtable -sys -sysconfig -syslog -tabnanny -tarfile -telnetlib -tempfile -termios -test -textwrap -threading -time -timeit -tkinter -token -tokenize -trace -traceback -tracemalloc -try -tty -tuple -turtle -type -types -unichr -unicode -unicodedata -unittest -urllib -uu -uuid -vars -venv -warnings -wave -weakref -webbrowser -while -winsound -winreg -with -wsgiref -xdrlib -xml -xmlrpc -xrange -yield -zip -zipfile -zipimport -zlib diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/qml-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/qml-mode deleted file mode 100644 index 7d9976e..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/qml-mode +++ /dev/null @@ -1,183 +0,0 @@ -AlignBottom -AlignCenter -AlignHCenter -AlignLeft -AlignRight -AlignTop -AlignVCenter -AnchorAnimation -AnchorChanges -Audio -Behavior -Binding -BorderImage -ColorAnimation -Column -Component -Connections -Easing -Flickable -Flipable -Flow -FocusScope -GestureArea -Grid -GridView -Horizontal -Image -InBack -InBounce -InCirc -InCubic -InElastic -InExpo -InOutBack -InOutBounce -InOutCirc -InOutCubic -InOutElastic -InOutExpo -InOutQuad -InOutQuart -InOutQuint -InQuad -InQuart -InQuint -InQuint -InSine -Item -LayoutItem -LeftButton -Linear -ListElement -ListModel -ListView -Loader -MidButton -MiddleButton -MouseArea -NoButton -NumberAnimation -OutBack -OutBounce -OutCirc -OutCubic -OutElastic -OutExpo -OutInBack -OutInBounce -OutInCirc -OutInCubic -OutInElastic -OutInExpo -OutInQuad -OutInQuart -OutInQuint -OutQuad -OutQuart -OutQuint -OutSine -Package -ParallelAnimation -ParentAnimation -ParentChange -ParticleMotionGravity -ParticleMotionLinear -ParticleMotionWander -Particles -Path -PathAttribute -PathCubic -PathLine -PathPercent -PathQuad -PathView -PauseAnimation -PropertyAction -PropertyAnimation -PropertyChanges -Qt -QtObject -Rectangle -Repeater -RightButton -Rotation -RotationAnimation -Row -Scale -ScriptAction -SequentialAnimation -SmoothedAnimation -SoundEffect -SpringFollow -State -StateChangeScript -StateGroup -SystemPalette -Text -TextEdit -TextInput -Timer -Transition -Translate -Vertical -Video -ViewsPositionersMediaEffects -VisualDataModel -VisualItemModel -WebView -WorkerScript -XmlListModel -XmlRole -alias -as -bool -break -case -catch -color -const -continue -date -debugger -default -delete -do -double -else -enum -false -false -finally -for -function -if -import -import -in -instanceof -int -let -new -null -on -parent -property -real -return -signal -string -switch -this -throw -true -try -typeof -undefined -url -var -variant -void -while -with -yield diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ruby-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ruby-mode deleted file mode 100644 index 1a85417..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ruby-mode +++ /dev/null @@ -1,181 +0,0 @@ -$! -$" -$$ -$& -$' -$* -$+ -$, -$-0 -$-F -$-I -$-K -$-a -$-d -$-i -$-l -$-p -$-v -$-w -$. -$/ -$0 -$1 -$10 -$11 -$2 -$3 -$4 -$5 -$6 -$7 -$8 -$9 -$: -$; -$< -$= -$> -$? -$@ -$DEBUG -$FILENAME -$KCODE -$LOADED_FEATURES -$LOAD_PATH -$PROGRAM_NAME -$SAFE -$VERBOSE -$\ -$_ -$` -$deferr -$defout -$stderr -$stdin -$stdout -$~ -ARGF -ARGV -Array -BEGIN -DATA -END -ENV -FALSE -Float -Integer -NIL -PLATFORM -RELEASE_DATE -RUBY_COPYRIGHT -RUBY_DESCRIPTION -RUBY_PATCHLEVEL -RUBY_PLATFORM -RUBY_RELEASE_DATE -RUBY_VERSION -SCRIPT_LINES__ -STDERR -STDIN -STDOUT -String -TOPLEVEL_BINDING -TRUE -VERSION -__method__ -` -abort -alias -and -at_exit -autoload -autoload? -begin -binding -block_given -break -callcc -caller -case -catch -chomp -chomp! -chop -chop -class -def -defined? -do -else -elsif -end -ensure -eval -exec -exit -exit! -fail -false -for -fork -format -getc -gets -global_variables -gsub -gsub! -if -in -iterator? -lambda -load -local_variables -loop -module -next -nil -not -open -or -p -printf -proc -putc -puts -raise -rand -readline -readlines -redo -require -require_relative -rescue -retry -return -scan -select -self -set_trace_func -sleep -split -sprintf -srand -sub -sub! -super -syscall -system -test -then -throw -trace_var -trap -true -undef -unless -until -untrace_var -warn -when -while -yield diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/scala-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/scala-mode deleted file mode 100644 index b1ed3a4..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/scala-mode +++ /dev/null @@ -1,1347 +0,0 @@ -_ -: -= -=> -<<: -<% ->: -# -@ -abstract -case -catch -class -def -do -else -extends -false -final -finally -for -forSome -if -implicit -import -lazy -match -new -null -object -override -package -private -protected -requires -return -sealed -super -this -throw -trait -true -try -type -val -var -while -with -yield - -scala -scala.actors -scala.actors.remote -scala.annotation.unchecked -scala.collection -scala.collection.immutable -scala.collection.jcl -scala.collection.mutable -scala.compat -scala.concurrent -scala.io -scala.mobile -scala.ref -scala.reflect -scala.runtime -scala.swing -scala.swing.event -scala.swing.test -scala.testing -scala.text -scala.util -scala.util.automata -scala.util.grammar -scala.util.logging -scala.util.matching -scala.util.parsing -scala.util.parsing.ast -scala.util.parsing.combinator -scala.util.parsing.combinator.lexical -scala.util.parsing.combinator.syntactical -scala.util.parsing.combinator.testing -scala.util.parsing.combinatorold -scala.util.parsing.combinatorold.lexical -scala.util.parsing.combinatorold.syntactical -scala.util.parsing.combinatorold.testing -scala.util.parsing.input -scala.util.parsing.json -scala.util.parsing.syntax -scala.util.regexp -scala.xml -scala.xml.dtd -scala.xml.factory -scala.xml.include -scala.xml.include.sax -scala.xml.parsing -scala.xml.path -scala.xml.persistent -scala.xml.pull -scala.xml.transform - -! -:: -AbstractActor -AbstractButton -AbstractSyntax -AbstractSyntax.Element -AbstractSyntax.NameElement -Action -Action.Trigger -Action.Trigger.Wrapper -ActionEvent -Actor -AdjustingEvent -Annotation -Any -AnyRef -AnyVal -Applet -Applet.UI -Application -Apply0 -Array -Array.Array0 -Array.ArrayLike -Array.Projection -ArrayBuffer -ArrayList -ArrayStack -Atom -AttListDecl -AttrDecl -Attribute -BackgroundChanged -Base -Base.Alt -Base.Meta -Base.RegExp -Base.Sequ -Base.Star -BaseBerrySethi -BasicTransformer -BasicTransformer.NeedsCopy -BeanDescription -BeanDisplayName -BeanInfo -BeanInfoSkip -BeanProperty -Benchmark -BigDecimal -BigInt -Binder -Binders -Binders.BinderEnv -Binders.BindingSensitive -Binders.BoundElement -Binders.ReturnAndDo -Binders.Scope -Binders.UnboundElement -Binders.UnderBinder -BindingParsers -BitSet -Boolean -BorderPanel -BoxPanel -Buffer -Buffer.DefaultBufferIterator -Buffer.Projection -Buffer.Projection0 -Buffer.Projection0.MapProjection -Buffer.Range -Buffer.Range.RangeIterator -BufferIterator -BufferProxy -BufferWrapper -BufferWrapper.IteratorWrapper -BufferWrapper.Range -BufferedIterator -BufferedIterator.Advanced -BufferedIterator.Default -BufferedIterator.PutBack -BufferedSource -Button -ButtonClicked -ButtonGroup -ByNameFunction -Byte -BytePickle.Def -BytePickle.PU -BytePickle.PicklerEnv -BytePickle.PicklerState -BytePickle.Ref -BytePickle.RefDef -BytePickle.SPU -BytePickle.UnPicklerEnv -BytePickle.UnPicklerState -CachedFileStorage -CaretUpdate -Cell -Channel -Channel.LinkedList -Char -CharArrayPosition -CharArrayReader -CharInputStreamIterator -CharSequenceReader -CheckBox -CheckMenuItem -CircularIncludeException -ClassfileAnnotation -ClassfileAttribute -CloneableCollection -Code -Collection -Collection.Projection -CollectionProxy -CollectionWrapper -ComboBox -ComboBox.BuiltInEditor -ComboBox.BuiltInEditor.DelegatedEditor -ComboBox.Editor -Comment -Component -Component.SuperMixin -ComponentAdded -ComponentEvent -ComponentHidden -ComponentMoved -ComponentRemoved -ComponentResized -ComponentShown -ConsRHS -ConsoleLogger -ConstructingHandler -ConstructingParser -Container -Container.Wrapper -Container.Wrapper.Content -ContainerEvent -ContentModel -ContentModel.ElemName -CountedIterator -CustomObjectInputStream -DEFAULT -DFAContentModel -DTD -Debug -Decl -DefaultDecl -DefaultEntry -DefaultMapModel -DefaultMarkupHandler -DetWordAutom -DocCons -DocGroup -DocNest -DocText -DocType -Document -Double -DoubleLinkedList -DtdTypeSymbol -DynamicVariable -ELEMENTS -EditDone -Either -Either.LeftProjection -Either.RightProjection -Elem -ElemDecl -ElementValidator -EmptyMap -EmptySet -EntityDecl -EntityDef -EntityRef -Enumeration -Enumeration.Set32 -Enumeration.Set64 -Enumeration.SetXX -Enumeration.Val -Enumeration.Value -Equiv -EvComment -EvElemEnd -EvElemStart -EvEntityRef -EvProcInstr -EvText -Event -Exit -ExitFun -Expression.Attrib -Expression.Child -Expression.Cond -Expression.DescOrSelf -Expression.Equals -Expression.Exists -Expression.Expr -Expression.FExp -Expression.GenExp -Expression.NameTest -Expression.Test -ExtDef -ExternalID -ExternalSources -FJTaskScheduler2 -FactoryAdapter -FatalError -FileChooser -FlatHashTable -Float -FlowPanel -FocusEvent -FocusGained -FocusLost -FontChanged -ForegroundChanged -FormattedTextField -Frame -Function0 -Function1 -Function10 -Function11 -Function12 -Function13 -Function14 -Function15 -Function16 -Function17 -Function18 -Function19 -Function2 -Function20 -Function21 -Function22 -Function3 -Function4 -Function5 -Function6 -Function7 -Function8 -Function9 -Future -GBTree -GUIApplication -GridBagPanel -GridBagPanel.Constraints -GridPanel -Group -HasKeyValue -HashEntry -HashMap -HashSet -HashTable -Hashtable -HedgeRHS -History -IScheduler -Ident -IdentityHashMap -ImmutableIterator -ImmutableMapAdaptor -ImmutableSetAdaptor -ImplicitConversions -Include -Inclusion -Index -IndexedStorage -InputChannel -InputEvent -InsertTree -Int -IntDef -IntMap -Iterable -Iterable.Projection -IterableProxy -IterableWrapper -Iterator -Iterator.PredicatedIterator -Iterator.TakeWhileIterator -JavaMapAdaptor -JavaSerializer -JavaSetAdaptor -JavaTokenParsers -Label -LabelledRHS -LayoutContainer -Left -Lexer -Lexical -LinkToFun -LinkedHashMap -LinkedHashSet -LinkedList -LinkedListQueueCreator -List -ListBuffer -ListChange -ListChanged -ListElementsAdded -ListElementsRemoved -ListEvent -ListMap -ListMap.Node -ListQueueCreator -ListSelectionChanged -ListSelectionEvent -ListSet -ListSet.Node -ListView -ListView.AbstractRenderer -ListView.ModelWrapper -ListView.Renderer -ListView.Renderer.Wrapped -ListView.selection.Indices -LocalApply0 -Location -Locator -Lock -Logged -LoggedNodeFactory -Long -LongMap -MIXED -MailBox -MainFrame -MalformedAttributeException -Map -Map.Filter -Map.KeySet -Map.Lense -Map.MapTo -Map.MutableIterableProjection -Map.Projection -Map1 -Map2 -Map3 -Map4 -MapProxy -MapWrapper -MapWrapper.IteratorWrapper -MapWrapper.KeySet -MapWrapper.ValueSet -Mappable -Mappable.Mappable -Mappable.Mapper -MarkupDecl -MarkupHandler -MarkupParser -MatchError -Menu -MenuBar -MenuItem -Message -MessageQueue -MessageQueueElement -MetaData -MouseButtonEvent -MouseClicked -MouseDragged -MouseEntered -MouseEvent -MouseExited -MouseMotionEvent -MouseMoved -MousePressed -MouseReleased -MouseWheelMoved -MultiMap -MutableIterable -MutableIterable.Filter -MutableIterable.Map -MutableIterable.Projection -MutableIterator -MutableIterator.Map -MutableIterator.Wrapper -MutableList -MutableSeq -MutableSeq.DefaultSeqIterator -MutableSeq.Filter -MutableSeq.Filter.FilterIterator -MutableSeq.Map -MutableSeq.Projection -NamedSend -NamespaceBinding -NetKernel -NoBindingFactoryAdapter -Node -NodeBuffer -NodeFactory -NodeSeq -NodeTraverser -NonLocalReturnException -NondetWordAutom -NotDefinedError -NotNull -NotationDecl -Nothing -Null -Number -ObservableBuffer -ObservableMap -ObservableSet -OffsetPosition -OpenHashMap -Option -Ordered -Ordering -Orientable -Oriented -OutputChannel -PCData -PCDataMarkupParser -PEReference -PagedSeq -PagedSeqReader -Panel -ParameterEntityDecl -ParsedEntityDecl -Parser -Parsers -Parsers.Error -Parsers.Failure -Parsers.NoSuccess -Parsers.OnceParser -Parsers.ParseResult -Parsers.Parser -Parsers.Success -Parsers.UnitOnceParser -Parsers.UnitParser -Parsers.~ -PartialFunction -PartialOrdering -PartiallyOrdered -PasswordField -PhantomReference -PointedHedgeExp -PointedHedgeExp.Node -PointedHedgeExp.TopIter -Position -Positional -Predef.ArrowAssoc -Predef.Ensuring -PrefixedAttribute -PrettyPrinter -PrettyPrinter.Box -PrettyPrinter.BrokenException -PrettyPrinter.Item -PrettyPrinter.Para -PriorityQueue -PriorityQueueProxy -ProcInstr -Product -Product1 -Product10 -Product11 -Product12 -Product13 -Product14 -Product15 -Product16 -Product17 -Product18 -Product19 -Product2 -Product20 -Product21 -Product22 -Product3 -Product4 -Product5 -Product6 -Product7 -Product8 -Product9 -ProgressBar -Proxy -PublicID -Publisher -Queue -QueueModule -QueueProxy -RadioButton -RadioMenuItem -Random -RandomAccessSeq -RandomAccessSeq.Mutable -RandomAccessSeq.MutableProjection -RandomAccessSeq.Projection -RandomAccessSeq.Projection.MapProjection -RandomAccessSeqProxy -Range -Range.Inclusive -Ranged -Ranged.Comparator -Reaction -Reactions -Reactions.Impl -Reactions.StronglyReferenced -Reactions.Wrapper -Reactor -Reader -RedBlack -RedBlack.BlackTree -RedBlack.NonEmpty -RedBlack.RedTree -RedBlack.Tree -RefBuffer -Reference -ReferenceQueue -ReferenceQueue.Wrapper -ReferenceWrapper -Regex -Regex.Match -Regex.MatchData -Regex.MatchIterator -RegexParsers -RemoteApply0 -Remove -Reset -ResizableArray -Responder -RevertableHistory -RewriteRule -RichBoolean -RichByte -RichChar -RichDouble -RichException -RichFloat -RichInt -RichLong -RichShort -RichSorting -RichString -RichStringBuilder -Right -RollbackIterator -RootPanel -RuleTransformer -SUnit.Assert -SUnit.AssertFailed -SUnit.Test -SUnit.TestCase -SUnit.TestConsoleMain -SUnit.TestFailure -SUnit.TestResult -SUnit.TestSuite -ScalaBeanInfo -ScalaObject -Scanner -Scanners -Scanners.Scanner -SchedulerAdapter -Script -Scriptable -ScrollPane -Scrollable -SelectionChanged -SelectionEvent -SendTo -Separator -Seq -Seq.Projection -Seq.Projection.ComputeSize -Seq.Projection.MapProjection -Seq.singleton -SeqIterator -SeqIterator.Map -SeqProxy -SequentialContainer -SequentialContainer.Wrapper -SerialVersionUID -Serializer -Service -Set -Set.Filter -Set.Projection -Set1 -Set2 -Set3 -Set4 -SetProxy -SetStorage -SetWrapper -Short -Show -Show.SymApply -SimpleApplet -SimpleGUIApplication -SimpleTokenizer -SingleLinkedList -SingleThreadedScheduler -Slider -SoftReference -Some -Sorted -SortedMap -SortedMap.DefaultKeySet -SortedMap.Filter -SortedMap.KeySet -SortedMap.Lense -SortedMap.Projection -SortedMap.Range -SortedMap.Range.Filter -SortedMapWrapper -SortedMapWrapper.KeySet -SortedMapWrapper.Range -SortedSet -SortedSet.Filter -SortedSet.Projection -SortedSet.Range -SortedSetWrapper -SortedSetWrapper.Range -Source -SpecialNode -SplitPane -Stack -Stack.Node -StackProxy -StandardTokenParsers -StaticAnnotation -StaticAttribute -StdLexical -StdTokenParsers -StdTokens -StdTokens.Identifier -StdTokens.Keyword -StdTokens.NumericLit -StdTokens.StringLit -Str -Stream -Stream.Definite -StreamReader -StringBuilder -Subscriber -SubsetConstruction -Swing.Embossing -Symbol -SyncChannel -SyncVar -SynchronizedBuffer -SynchronizedMap -SynchronizedPriorityQueue -SynchronizedQueue -SynchronizedSet -SynchronizedStack -SyntaxError -SystemID -TabbedPane -TabbedPane.Page -Table -Table.AbstractRenderer -Table.LabelRenderer -Table.Renderer -Table.selection.SelectionSet -TableChange -TableChanged -TableColumnsSelected -TableEvent -TableResized -TableRowsAdded -TableRowsRemoved -TableRowsSelected -TableStructureChanged -TableUpdated -TcpService -TcpServiceWorker -Tester -Text -TextArea -TextBuffer -TextComponent -TextComponent.Caret -TextComponent.HasColumns -TextComponent.HasRows -TextField -TickedScheduler -ToggleButton -TokenParsers -TokenTests -Tokens -Tokens.ErrorToken -Tokens.Token -Tree -TreeHashMap -TreeMap -TreeRHS -TreeSet -Tuple1 -Tuple10 -Tuple11 -Tuple12 -Tuple13 -Tuple14 -Tuple15 -Tuple16 -Tuple17 -Tuple18 -Tuple19 -Tuple2 -Tuple20 -Tuple21 -Tuple22 -Tuple3 -Tuple4 -Tuple5 -Tuple6 -Tuple7 -Tuple8 -Tuple9 -TypeConstraint -TypeSymbol -UIElement -UIEvent -UnavailableResourceException -UnbalancedTreeMap -UnbalancedTreeMap.Node -Undoable -UninitializedError -UninitializedFieldError -Unit -UnlinkFromFun -Unparsed -UnparsedEntityDecl -UnprefixedAttribute -Update -ValidatingMarkupHandler -ValidationException -ValueChanged -WeakHashMap -WeakReference -WindowActivated -WindowClosed -WindowClosing -WindowDeactivated -WindowDeiconified -WindowEvent -WindowIconified -WindowOpened -WordBerrySethi -WordExp -WordExp.Label -WordExp.Letter -WordExp.Wildcard -WorkerThread -WorkerThreadScheduler -XIncludeException -XIncludeFilter -XIncluder -XMLEvent -XMLEventReader -XMLEventReader.Parser -XhtmlParser -cloneable -deprecated -inline -jolib.Asynchr -jolib.Join -jolib.Signal -jolib.Synchr -native -noinline -pilib.Chan -pilib.GP -pilib.Product -pilib.Spawn -pilib.Sum -pilib.UChan -pilib.UGP -remote -serializable -throws -transient -unchecked -uncheckedStable -uncheckedVariance -unsealed -volatile -~ - -! -:: -ANY -Action -Action.NoAction -Action.Trigger -ActionEvent -Actor -ActorGC -Alignment -AnyHedgeRHS -AnyTreeRHS -Apply0 -Array -AttListDecl -AttrDecl -BackgroundChanged -Base.Eps -BigDecimal -BigDecimal.RoundingMode -BigInt -Binders.EmptyBinderEnv -Binders.UnderBinder -BorderPanel -BorderPanel.Position -Buffer -BufferedIterator -BufferedSource -ButtonApp -ButtonClicked -BytePickle -CaretUpdate -Cell -CelsiusConverter -CelsiusConverter2 -CharArrayReader -CharSequenceReader -Collection -ComboBox -ComboBox.selection -ComboBoxes -Comment -Component -Component.Mouse -ComponentAdded -ComponentHidden -ComponentMoved -ComponentRemoved -ComponentResized -ComponentShown -ConsRHS -Console -ConstructingParser -Container -ContentModel -ContentModel.Translator -ContentModelParser -Conversions -CountButton -DEFAULT -Debug -Dialog -Dialog.Message -Dialog.Options -Dialog.Result -Dialogs -DocBreak -DocCons -DocGroup -DocNest -DocNil -DocText -DocType -Document -ELEMENTS -EMPTY -EditDone -Either -Elem -ElemDecl -EmptyHedgeRHS -EncodingHeuristics -End -EntityRef -EvComment -EvElemEnd -EvElemStart -EvEntityRef -EvProcInstr -EvText -Exit -Expression -Expression.Root -Expression.WildcardTest -ExtDef -FatalError -FileChooser -FileChooser.Result -FileChooser.SelectionMode -FlowPanel -FlowPanel.Alignment -FocusGained -FocusLost -FontChanged -ForegroundChanged -FormattedTextField -FormattedTextField.FocusLostBehavior -FreshNameCreator -Function -Futures -GridBagDemo -GridBagPanel -GridBagPanel.Anchor -GridBagPanel.Fill -GridPanel -Group -HashMap -HashSet -HelloWorld -IMPLIED -Ident -ImmutableIterator -ImmutableIterator.Empty -Include -Index -IntDef -IntMap -Iterable -Iterator -JSON -Key -LabelledRHS -Left -LinkedHashMap -LinkedHashSet -List -ListChanged -ListElementsAdded -ListElementsRemoved -ListMap -ListSelectionChanged -ListSet -ListView -ListView.GenericRenderer -ListView.IntervalMode -ListView.Renderer -ListView.selection -ListView.selection.indices -ListView.selection.items -LocalApply0 -Location -Locator -LongMap -MIXED -Main -MakeValidationException -MalformedAttributeException -Map -Marshal -Math -MetaData -MouseClicked -MouseDragged -MouseEntered -MouseExited -MouseMoved -MousePressed -MouseReleased -MouseWheelMoved -MutableIterable -MutableIterator -MutableSeq -NA -NamedSend -Nil -NoPosition -Node -NodeSeq -None -NotationDecl -Null -Number -OffsetPosition -OpenHashMap -Option -Orientation -PCDATA -PCData -PEReference -PagedSeq -PagedSeqReader -ParameterEntityDecl -ParsedEntityDecl -Parsing -Platform -PointedHedgeExp.Point -Position -Predef -Predef.Pair -Predef.Triple -PrettyPrinter.Break -ProcInstr -Product1 -Product10 -Product11 -Product12 -Product13 -Product14 -Product15 -Product16 -Product17 -Product18 -Product19 -Product2 -Product20 -Product21 -Product22 -Product3 -Product4 -Product5 -Product6 -Product7 -Product8 -Product9 -Properties -PublicID -QNode -Queue -REQUIRED -RandomAccessSeq -Range -Reactions -RedBlack.Empty -Regex -Regex.Match -RegexTest -RemoteActor -RemoteApply0 -Remove -Reset -Responder -RichString -Right -SUnit -Scheduler -SelectionChanged -SendTo -Seq -SequentialContainer -Set -SimpleApplet.ui -Some -SortedMap -SortedSet -Sorting -Source -Stack -Start -Str -Stream -Stream.cons -Stream.lazy_:: -StreamReader -StringBuilder -Swing -Swing.EmptyIcon -Swing.Lowered -Swing.Raised -SwingApp -Symbol -SystemID -TIMEOUT -TabbedPane -TabbedPane.Layout -TabbedPane.pages -TabbedPane.selection -Table -Table.AutoResizeMode -Table.ElementMode -Table.IntervalMode -Table.selection -Table.selection.columns -Table.selection.rows -TableChanged -TableColumnsSelected -TableResized -TableRowsAdded -TableRowsRemoved -TableRowsSelected -TableSelection -TableStructureChanged -TableUpdated -TcpService -Terminate -Text -TextBuffer -TextComponent -TextComponent.caret -Tokens.EOF -TopScope -TreeHashMap -TreeMap -TreeSet -Tuple1 -Tuple10 -Tuple11 -Tuple12 -Tuple13 -Tuple14 -Tuple15 -Tuple16 -Tuple17 -Tuple18 -Tuple19 -Tuple2 -Tuple20 -Tuple21 -Tuple22 -Tuple3 -Tuple4 -Tuple5 -Tuple6 -Tuple7 -Tuple8 -Tuple9 -UIDemo -UTF8Codec -UnbalancedTreeMap -UninitializedFieldError -Unparsed -UnparsedEntityDecl -Update -Utility -ValidationException -ValueChanged -WindowActivated -WindowClosed -WindowClosing -WindowDeactivated -WindowDeiconified -WindowIconified -WindowOpened -XML -Xhtml -XhtmlEntities -XhtmlParser -jolib -mkTilde -ops -pilib -~ - -ArrayIndexOutOfBoundsException -Character -Class -ClassCastException -Error -Exception -Function -IllegalArgumentException -IndexOutOfBoundsException -Integer -Map -NoSuchElementException -NullPointerException -NumberFormatException -Pair -Runnable -RuntimeException -Set -String -StringIndexOutOfBoundsException -Throwable -Triple -Tuple -UnsupportedOperationException -any2ArrowAssoc -any2Ensuring -any2stringadd -assert -assume -boolean -boolean2Boolean -booleanWrapper -byte -byte2Byte -byte2double -byte2float -byte2int -byte2long -byte2short -byteWrapper -char -char2Character -char2double -char2float -char2int -char2long -charWrapper -classOf -currentThread -double -double2Double -doubleWrapper -error -exceptionWrapper -exit -float -float2Float -float2double -floatWrapper -forceArrayProjection -forceRandomAccessCharSeq -format -identity -int -int2Integer -int2double -int2float -int2long -intWrapper -iterable2ordered -lazyStreamToConsable -long -long2Long -long2double -long2float -longWrapper -print -printf -println -readBoolean -readByte -readChar -readDouble -readFloat -readInt -readLine -readLong -readShort -readf -readf1 -readf2 -readf3 -require -seqToCharSequence -short -short2Short -short2double -short2float -short2int -short2long -shortWrapper -stringBuilderWrapper -stringWrapper -tuple22ordered -tuple32ordered -tuple42ordered -tuple52ordered -tuple62ordered -tuple72ordered -tuple82ordered -tuple92ordered -unit -unit2ordered diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/scheme-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/scheme-mode deleted file mode 100644 index e5cca61..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/scheme-mode +++ /dev/null @@ -1,216 +0,0 @@ -case-lambda -call/cc -class -define-class -exit-handler -field -import -inherit -init-field -interface -let*-values -let-values -let/ec -mixin -opt-lambda -override -protect -provide -public -rename -require -require-for-syntax -syntax -syntax-case -syntax-error -unit/sig -unless -when -with-syntax -and -begin -call-with-current-continuation -call-with-input-file -call-with-output-file -case -cond -define -define-syntax -delay -do -dynamic-wind -else -for-each -if -lambda -let -let* -let-syntax -letrec -letrec-syntax -map -or -syntax-rules -abs -acos -angle -append -apply -asin -assoc -assq -assv -atan -boolean? -caar -cadr -call-with-input-file -call-with-output-file -call-with-values -car -cdddar -cddddr -cdr -ceiling -char->integer -char-alphabetic? -char-ci<=? -char-ci<? -char-ci=? -char-ci>=? -char-ci>? -char-downcase -char-lower-case? -char-numeric? -char-ready? -char-upcase -char-upper-case? -char-whitespace? -char<=? -char<? -char=? -char>=? -char>? -char? -close-input-port -close-output-port -complex? -cons -cos -current-input-port -current-output-port -denominator -display -eof-object? -eq? -equal? -eqv? -eval -even? -exact->inexact -exact? -exp -expt -#f -floor -force -gcd -imag-part -inexact->exact -inexact? -input-port? -integer->char -integer? -interaction-environment -lcm -length -list -list->string -list->vector -list-ref -list-tail -list? -load -log -magnitude -make-polar -make-rectangular -make-string -make-vector -max -member -memq -memv -min -modulo -negative? -newline -not -null-environment -null? -number->string -number? -numerator -odd? -open-input-file -open-output-file -output-port? -pair? -peek-char -port? -positive? -procedure? -quasiquote -quote -quotient -rational? -rationalize -read -read-char -real-part -real? -remainder -reverse -round -scheme-report-environment -set! -set-car! -set-cdr! -sin -sqrt -string -string->list -string->number -string->symbol -string-append -string-ci<=? -string-ci<? -string-ci=? -string-ci>=? -string-ci>? -string-copy -string-fill! -string-length -string-ref -string-set! -string<=? -string<? -string=? -string>=? -string>? -string? -substring -symbol->string -symbol? -#t -tan -transcript-off -transcript-on -truncate -values -vector -vector->list -vector-fill! -vector-length -vector-ref -vector-set! diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/sclang-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/sclang-mode deleted file mode 100644 index 2b92135..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/sclang-mode +++ /dev/null @@ -1,1481 +0,0 @@ -A2K -A2K -abs -absdif -AbstractFunction -AbstractIn -AbstractOut -AbstractServerAction -acos -addition -Adverbs -AllpassC -AllpassL -AllpassN -amclip -AmpComp -AmpComp -AmpCompA -AmpCompA -ampdb -Amplitude -Amplitude -APF -AppClock -Archive -Array -Array2D -ArrayedCollection -asin -Assignment -Association -asTarget -atan -atan2 -AudioControl -AudioIn -audio_rate_mapping -AutoClassHelper -Bag -Balance2 -Balance2 -Ball -Ball -BAllPass -BAllPass -BasicOpUGen -basic_live_coding_techniques -BBandPass -BBandPass -BBandStop -BBandStop -BeatTrack -BeatTrack -BeatTrack -BeatTrack2 -BeatTrack2 -BeatTrack2 -BEQSuite -BEQSuite -BHiPass -BHiPass -BHiPass4 -BHiShelf -BHiShelf -BinaryOpFunction -BinaryOpStream -BinaryOpUGen -BiPanB2 -BiPanB2 -Blip -Blip -BLowPass -BLowPass -BLowPass4 -BLowShelf -BLowShelf -Boolean -BPeakEQ -BPeakEQ -BPF -BPF -BPZ2 -BPZ2 -BRF -BRF -BrownNoise -BrownNoise -BRZ2 -BRZ2 -BufAllpassC -BufAllpassL -BufAllpassN -BufChannels -BufChannels -BufCombC -BufCombL -BufCombN -BufDelayC -BufDelayL -BufDelayN -BufDur -BufDur -Buffer -Buffers -BufFrames -BufFrames -BufRateScale -BufRateScale -BufRd -BufRd -BufSampleRate -BufSampleRate -BufSamples -BufSamples -BufWr -BufWr -bundledCommands -Bus -BusPlug -Busses -Button -CCResponder -ceil -Changed -Changed -ChaosGen -Char -CheckBadValues -Class -Classes -ClassHelpTemplate -ClearBuf -ClientVsServer -Clip -Clip -clip2 -ClipNoise -ClipNoise -Clock -CmdPeriod -cmds -CocoaMenuItem -CoinGate -CoinGate -Collection -Collections -Color -CombC -CombL -CombN -Comments -Compander -Compander -CompanderD -Complex -CompositeView -Condition -ContiguousBlockAllocator -Control -Control-Structures -ControlDur -ControlName -ControlRate -ControlSpec -convertRhythm -Convolution -Convolution2 -Convolution2L -Convolution3 -cos -COsc -COsc -cosh -cpsmidi -cpsoct -Crackle -Crackle -Creating-Standalone-Applications -Crossplatform -CSVFileReader -cubed -CuspL -CuspL -CuspN -CuspN -Date -dbamp -Dbrown -Dbrown -Dbufrd -Dbufrd -Dbufwr -Dbufwr -DC -DC -Debugging-tips -DebugNodeWatcher -Decay -Decay -Decay2 -Decay2 -DecodeB2 -DecodeB2 -default_group -DegreeToKey -DegreeToKey -Delay1 -Delay2 -DelayC -DelayL -DelayN -DelTapRd -DelTapRd -DelTapWr -DelTapWr -Demand -Demand -DemandEnvGen -DemandEnvGen -DemandEnvGen -DetectIndex -DetectIndex -DetectSilence -DetectSilence -DetectSilence -Dgeom -Dgeom -Dialog -Dibrown -Dictionary -difsqr -DiskIn -DiskIn -DiskIn -DiskOut -DiskOut -DiskOut -distort -division -Diwhite -Document -DocumentAutoCompletion -Donce -Done -Done -DoubleArray -Dpoll -Dpoll -DragBoth -DragSink -DragSource -Drand -Drand -Dreset -Dreset -Dseq -Dseq -Dser -Dser -Dseries -Dseries -Dshuf -Dshuf -Dstutter -Dstutter -Dswitch -Dswitch -Dswitch1 -Dswitch1 -DUGen -Dunique -Dust -Dust -Dust2 -Dust2 -Duty -Duty -Dwhite -Dwhite -Dwrand -Dwrand -Dxrand -DynKlang -DynKlang -DynKlank -DynKlank -DynKlank -EmacsEditor -EmacsGUI -Env -EnvelopeView -EnvGate -EnvGen -EnvGen -EnvirGui -Environment -EnvironmentRedirect -Error -Event -EventPatternProxy -EventPatternProxy -EventStream -EventStreamPlayer -Event_types -Exception -excess -exp -exponentiation -ExpRand -ExpRand -ExpRand -Expression-Sequence -EZGui -EZKnob -EZLists -EZListView -EZNumber -EZPopUpMenu -EZRanger -EZScroller -EZSlider -EZText -False -FBSineC -FBSineC -FBSineL -FBSineL -FBSineN -FBSineN -Fdef -FFT -FFTTrigger -File -FileReader -Filter -FilterPattern -FilterPattern -Float -FloatArray -floor -FlowLayout -FlowView -Fold -Fold -fold2 -Font -Formant -Formant -Formlet -Formlet -FOS -FOS -frac -Frame -Free -Free -FreeSelf -FreeSelf -FreeSelfWhenDone -FreeSelfWhenDone -FreeVerb -FreeVerb2 -FreqScope -FreqScopeView -FreqShift -FreqShift -FreqShift -FSinOsc -FSinOsc -FuncFilterPattern -Function -FunctionDef -FunctionList -Functions -Gate -GbmanL -GbmanL -GbmanN -GbmanN -Gendy1 -Gendy1 -Gendy2 -Gendy2 -Gendy3 -Gendy3 -GeneralHID -GeneralHIDDevice -GeneralHIDSlot -GeneralHIDSpec -Glossary -Gradient -GrainBuf -GrainBuf -GrainFM -GrainIn -GrainSin -GrayNoise -GrayNoise -greaterorequalthan -greaterthan -Group -Groups -GUI -gui -GUI-Classes -GUI-Overview -GVerb -Harmonics -Hasher -Hasher -Help -HelpDocsLicensing -Helper -HelpSearchResult -HenonC -HenonC -HenonL -HenonL -HenonN -HenonN -HIDDeviceService -Hilbert -HilbertFIR -HiliteGradient -History -HistoryGui -HLayoutView -How-to-Use-the-Interpreter -HPF -HPF -HPZ1 -HPZ1 -HPZ2 -HPZ2 -hypot -hypotApx -IdentityBag -IdentityDictionary -IdentitySet -IEnvGen -IEnvGen -if -IFFT -Impulse -Impulse -In -Index -Index -IndexInBetween -IndexInBetween -IndexL -IndexL -InFeedback -Infinitum -initClass -InRange -InRange -InRect -InRect -Int16Array -Int32Array -Int8Array -Integer -Integrator -Integrator -Integrator -Internal-Snooping -InterplEnv -InterplPairs -InterplXYC -Interpreter -Interval -InTrig -Intro-to-Objects -Introductory_tutorial -IRand -IRand -IRand -isKindOf -isNegative -isPositive -isStrictlyPositive -JITGui -JITLib -jitlib_asCompileString -jitlib_basic_concepts_01 -jitlib_basic_concepts_02 -jitlib_basic_concepts_03 -jitlib_basic_concepts_04 -jitlib_efficiency -jitlib_fading -jitlib_networking -J_concepts_in_SC -K2A -K2A -KeyState -KeyState -KeyTrack -KeyTrack -Klang -Klang -Klang -Klank -Klank -Klank -Knob -Lag -Lag -Lag2 -Lag2 -Lag2UD -Lag2UD -Lag3 -Lag3 -Lag3UD -Lag3UD -LagControl -LagIn -LagUD -LagUD -LastValue -Latch -Latch -LatoocarfianC -LatoocarfianC -LatoocarfianL -LatoocarfianL -LatoocarfianN -LatoocarfianN -LazyEnvir -LeakDC -LeakDC -LeastChange -LeastChange -lessorequalthan -lessthan -LFClipNoise -LFClipNoise -LFCub -LFCub -LFDClipNoise -LFDClipNoise -LFDNoise0 -LFDNoise0 -LFDNoise1 -LFDNoise1 -LFDNoise3 -LFDNoise3 -LFGauss -LFGauss -LFNoise0 -LFNoise0 -LFNoise1 -LFNoise1 -LFNoise2 -LFNoise2 -LFPar -LFPar -LFPulse -LFPulse -LFSaw -LFSaw -LFTri -LFTri -Library -LibraryBase -Licensing -LID -Limiter -Limiter -LinCongC -LinCongC -LinCongL -LinCongL -LinCongN -LinCongN -Line -Line -Linen -Linen -LinExp -LinExp -LinkedList -LinkedListNode -LinLin -LinLin -LinPan2 -LinPan2 -LinRand -LinRand -LinRand -LinSelectX -Linux_udev_setup -LinXFade2 -LinXFade2 -List -ListComprehensions -ListDUGen -ListPattern -ListPattern -ListView -Literals -LocalBuf -LocalBuf -LocalIn -LocalOut -log -log10 -log2 -Logistic -Logistic -loop -LorenzL -LorenzL -Loudness -Loudness -LPF -LPF -LPZ1 -LPZ1 -LPZ2 -LPZ2 -Magnitude -Main -MantissaMask -MantissaMask -matchItem -max -MaxLocalBufs -MaxLocalBufs -Maybe -Median -Median -Method -Method-Calls -MFCC -MFCC -MidEQ -MidEQ -MIDI -midicps -MIDIIn -MIDIOut -MIDIResponder -min -Mix -modifiers -Modifying_Standalones -modulo -Monitor -MonitorGui -MoogFF -MoogFF -More-On-Getting-Help -MostChange -MostChange -MouseButton -MouseButton -MouseX -MouseX -MouseY -MouseY -MovieView -MulAdd -MultiChannel -MultiLevelIdentityDictionary -MultiOutUGen -multiplication -MultiSliderView -MultiTap -NamedControl -NAryOpFunction -NAryOpStream -Ndef -NdefGui -NdefMixer -NdefMixerOld -NdefParamGui -neg -NetAddr -Nil -Node -NodeControl -NodeEvent -NodeMap -NodeMessaging -NodeProxy -NodeProxyEditor -NodeProxy_roles -NodeWatcher -Non-Realtime-Synthesis -Normalizer -Normalizer -NoteOnResponder -Notes-on-the-HTML-Help-System -NotificationCenter -NRand -NRand -NRand -NumAudioBuses -Number -NumberBox -NumBuffers -NumControlBuses -NumInputBuses -NumOutputBuses -NumRunningSynths -Object -ObjectGui -ObjectTable -octcps -OffsetOut -OnePole -OnePole -OneZero -OneZero -Onsets -Onsets -Operators -Order -Order-of-execution -OrderedIdentitySet -Osc -Osc -OSCBundle -OscN -OscN -OSCpathResponder -OSCresponder -OSCresponderNode -OSC_communication -Out -OutputProxy -PAbstractGroup -PackFFT -Padd -Padd -Paddp -Paddp -Paddpre -Paddpre -Pair -Pan2 -Pan2 -Pan4 -Pan4 -PanAz -PanAz -PanB -PanB -PanB2 -PanB2 -Panner -PartConv -Partial-Application -PathName -Pattern -PatternConductor -PatternProxy -PatternProxy -PatternsDocumentedAndNot -Pause -Pause -PauseSelf -PauseSelf -PauseSelfWhenDone -Pavaroh -Pavaroh -Pbeta -Pbeta -Pbind -Pbind -Pbindef -Pbindef -Pbindf -Pbindf -PbindProxy -PbindProxy -Pbinop -Pbinop -Pbrown -Pbrown -Pbus -Pbus -Pcauchy -Pcauchy -Pchain -Pchain -Pclump -Pclutch -Pclutch -Pcollect -Pcollect -Pconst -Pconst -Pdef -Pdef -PdefAllGui -PdefEditor -PdefGui -Pdefn -Pdefn -PdegreeToKey -PdegreeToKey -Pdfsm -Pdfsm -Pdict -Pdict -Pdiff -Pdrop -PdurStutter -PdurStutter -Peak -Peak -PeakFollower -PeakFollower -Pen -Penvir -Penvir -Pevent -Peventmod -Pexprand -Pexprand -PfadeIn -PfadeOut -Pfin -Pfin -Pfindur -Pfindur -PfinQuant -Pfinval -Pfinval -Pflatten -Pflow -Pflow -Pfpar -Pfset -Pfset -Pfsm -Pfsm -Pfunc -Pfunc -Pfuncn -Pfuncn -Pfx -Pfx -Pfxb -Pfxb -Pgate -Pgate -Pgauss -Pgauss -Pgbrown -Pgbrown -Pgeom -Pgeom -Pget -Pgpar -Pgpar -Pgroup -Pgroup -Pgtpar -PG_01_Introduction -PG_02_Basic_Vocabulary -PG_03_What_Is_Pbind -PG_04_Words_to_Phrases -PG_05_Math_on_Patterns -PG_060_Filter_Patterns -PG_06a_Repetition_Contraint_Patterns -PG_06b_Time_Based_Patterns -PG_06c_Composition_of_Patterns -PG_06d_Parallel_Patterns -PG_06e_Language_Control -PG_06f_Server_Control -PG_06g_Data_Sharing -PG_07_Value_Conversions -PG_08_Event_Types_and_Parameters -PG_Cookbook01_Basic_Sequencing -PG_Cookbook02_Manipulating_Patterns -PG_Cookbook03_External_Control -PG_Cookbook04_Sending_MIDI -PG_Cookbook05_Using_Samples -PG_Cookbook06_Phrase_Network -PG_Cookbook07_Rhythmic_Variations -PG_Ref01_Pattern_Internals -Phasor -Phasor -Phid -Phid -PhidKey -PhidKey -PhidSlot -PhidSlot -Phprand -Phprand -Pif -Pif -Pindex -Pindex -PingPong -PinkerNoise -PinkNoise -PinkNoise -Pipe -Pitch -Pitch -Pitch -PitchShift -PitchShift -Pkey -Pkey -Place -Place -Plag -Plambda -Plambda -Platform -play -PlayBuf -PlayBuf -playN -Plazy -Plazy -PlazyEnvir -PlazyEnvir -PlazyEnvirN -PlazyEnvirN -Plet -plot -Plotter -Plprand -Plprand -Pluck -Pluck -Pmeanrand -Pmeanrand -Pmono -Pmono -PmonoArtic -PmonoArtic -PMOsc -PMOsc -Pmul -Pmul -Pmulp -Pmulp -Pmulpre -Pmulpre -Pn -Pn -Pnaryop -Pnaryop -Pnsym -Pnsym -Pnsym1 -Point -Polar -Poll -Poll -Polymorphism -PopUpMenu -Post -pow -Ppar -Ppar -PparGroup -Ppatlace -Ppatlace -Ppatmod -Ppatmod -Pplayer -Ppoisson -Ppoisson -Pprob -Pprob -Pprotect -Pprotect -Pproto -Pproto -Prand -Prand -Preject -Preject -Prewrite -Prewrite -PriorityQueue -Process -Prorate -Prorate -Prout -Prout -Proutine -Proutine -ProxyMixer -ProxyMixerOld -ProxyMonitorGui -ProxySpace -proxyspace_examples -ProxySynthDef -Pseed -Pseed -Pseg -Pseg -Pselect -Pselect -Pseq -Pseq -Pser -Pser -Pseries -Pseries -Pset -Pset -Psetp -Psetp -Psetpre -Psetpre -Pshuf -Pshuf -PSinGrain -Pslide -Pslide -Pspawn -Pspawn -Pspawner -Pspawner -Pstep -Pstep -Pstep2add -Pstep3add -PstepNadd -PstepNadd -PstepNfunc -PstepNfunc -Pstretch -Pstretchp -Pstutter -Pstutter -Pswitch -Pswitch -Pswitch1 -Pswitch1 -Psym -Psym -Psym1 -Psync -Psync -Ptime -Ptime -Ptpar -Ptpar -Ptrace -Ptsym -Ptuple -Ptuple -publishing_code -Pulse -Pulse -PulseCount -PulseDivider -Punop -Punop -pvcalc -pvcalc2 -pvcollect -PV_Add -PV_BinScramble -PV_BinShift -PV_BinWipe -PV_BrickWall -PV_ChainUGen -PV_ChainUGen -PV_ConformalMap -PV_Conj -PV_Copy -PV_CopyPhase -PV_Diffuser -PV_Div -PV_HainsworthFoote -PV_JensenAndersen -PV_LocalMax -PV_MagAbove -PV_MagBelow -PV_MagClip -PV_MagDiv -PV_MagFreeze -PV_MagMul -PV_MagNoise -PV_MagShift -PV_MagSmear -PV_MagSquared -PV_Max -PV_Min -PV_Mul -PV_PhaseShift -PV_PhaseShift270 -PV_PhaseShift90 -PV_RandComb -PV_RandWipe -PV_RectComb -PV_RectComb2 -Pwalk -Pwalk -Pwhile -Pwhile -Pwhite -Pwhite -Pwrand -Pwrand -Pwrap -Pwrap -Pxrand -Pxrand -QuadC -QuadC -QuadL -QuadL -QuadN -QuadN -Quant -Quark -Quarks -RadiansPerSample -Ramp -Ramp -Rand -Rand -Rand -RandID -RandID -Randomness -randomSeed -RandSeed -RandSeed -RangeSlider -RawArray -RawPointer -reciprocal -RecNodeProxy -RecordBuf -RecordBuf -Rect -recursive_phrasing -Ref -RefCopy -Regenerate-GUI-Help -ReplaceOut -resize -Resonz -Resonz -RHPF -RHPF -ring1 -ring2 -ring3 -ring4 -Ringz -Ringz -RLPF -RLPF -RootNode -Rossler -Rotate2 -Rotate2 -round -Routine -runMe -runMe2 -RunningMax -RunningMax -RunningMin -RunningMin -RunningSum -RunningSum -SampleDur -SampleRate -Saw -Saw -SC2DSlider -SC2DTabletSlider -Scale -scaleneg -SCButton -SCCompositeView -SCContainerView -SCControlView -SCDragBoth -SCDragSink -SCDragSource -SCDragView -SCEnvelopeEdit -SCEnvelopeView -SCFont -SCFreqScope -SCFreqScopeWindow -Scheduler -SCHLayoutView -Schmidt -Schmidt -SCImage -SCImageFilter -SCImageKernel -SCKnob -SCLayoutView -SCLevelIndicator -SCListView -SCMenuGroup -SCMenuItem -SCMenuSeparator -SCModalSheet -SCModalWindow -SCMovieView -SCMultiSliderView -SCNumberBox -Scope -ScopeOut -ScopeOut2 -ScopeView -Score -SCPen -SCPopUpMenu -SCQuartzComposerView -SCRangeSlider -ScrollView -SCScope -SCScrollTopView -SCScrollView -SCSlider -SCSliderBase -SCSoundFileView -SCStaticText -SCStaticTextBase -SCStethoscope -SCTabletView -SCTextField -SCTextView -SCTopView -SCUserView -SCUserView-Subclassing -SCView -SCVLayoutView -SCWindow -Select -Select -SelectX -SelectX -SelectXFocus -SelectXFocus -Semaphore -SendPeakRMS -SendReply -SendTrig -SequenceableCollection -SerialPort -Server -Server-Architecture -Server-Command-Reference -ServerBoot -ServerOptions -ServerQuit -ServerTiming -ServerTree -Set -SetBuf -SetResetFF -Shaper -Shaper -SharedIn -SharedOut -Shortcuts -sign -Signal -Silent -Silent -SimpleController -SimpleNumber -sin -sinh -SinOsc -SinOsc -SinOscFB -SkipJack -Slew -Slew -Slider -Slider2D -Slope -Slope -Slope -softclip -softPut -softSet -softVol_ -somepage -SortedList -SOS -SOS -SoundFile -SoundFileView -SoundFileViewProgressWindow -SoundIn -SparseArray -Spawner -Spec -SpecCentroid -SpecCentroid -SpecFlatness -SpecFlatness -SpecPcile -SpecPcile -Splay -SplayAz -SplayZ -Spring -Spring -sqrdif -sqrsum -sqrt -squared -StandardL -StandardL -StandardN -StandardN -StartUp -StaticText -Stepper -StereoConvolution2L -Stethoscope -Stream -StreamClutch -Streams -Streams-Patterns-Events1 -Streams-Patterns-Events2 -Streams-Patterns-Events3 -Streams-Patterns-Events4 -Streams-Patterns-Events5 -Streams-Patterns-Events6 -Streams-Patterns-Events7 -String -StubTemplate -SubsampleOffset -subtraction -sumsqr -Sweep -switch -Symbol -SymbolArray -SymbolicNotations -SyncSaw -SyncSaw -Syntax-Shortcuts -Synth -Synth-Controlling-UGens -Synth-Definition-File-Format -SynthDef -SynthDesc -SynthDescLib -SystemClock -T2A -T2A -T2K -T2K -TabFileReader -TabletSlider2D -TabletView -tan -tanh -Tap -Tap -Task -TaskProxy -TaskProxy -TaskProxyGui -TBall -TBall -TChoose -Tdef -Tdef -TdefAllGui -TdefEditor -TdefGui -TDelay -TDelay -TDuty -TDuty -TempoBusClock -TempoClock -TExpRand -TExpRand -TextField -TextView -TGrains -TGrains -TGrains -the_lazy_proxy -Thread -thresh -Thunk -Timer -TIRand -TIRand -ToggleFF -TopicHelpTemplate -Tour_of_UGens -TRand -TRand -Trig -Trig1 -TrigControl -True -trunc -Tuning -Tutorial -TWChoose -TWChoose -TWindex -TWindex -TwoPole -TwoPole -TwoWayIdentityDictionary -TwoZero -TwoZero -UGen -UGen-doneActions -UGenHelpTemplate -UGens -UGens-and-Synths -UnaryOpFunction -UnaryOpStream -UnaryOpUGen -Understanding-Errors -Undocumented-Classes -UniqueID -UnixFILE -Unpack1FFT -UnpackFFT -UserView -Using-Extensions -Using-the-Startup-File -UsingMIDI -VarLag -VarSaw -VarSaw -VDiskIn -VDiskIn -VDiskIn -Vibrato -View -ViewRedirect -VLayoutView -Volume -VOsc -VOsc -VOsc3 -VOsc3 -Warp -Warp1 -Warp1 -Warp1 -Wavetable -WhiteNoise -WhiteNoise -WidthFirstUGen -WiiMote -WikiUsage -Window -Wrap -Wrap -wrap2 -WrapIndex -WrapIndex -Writing-Classes -Writing_Unit_Generators -XFade -XFade2 -XFade2 -XLine -XLine -XOut -ZeroCrossing -ZeroCrossing diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/sh-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/sh-mode deleted file mode 100644 index df66ae3..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/sh-mode +++ /dev/null @@ -1,182 +0,0 @@ -# Bash Family Shell Dictionary -# http://www.gnu.org/software/bash/manual/bash.html - -. -: -[ -alias -bg -bind -break -builtin -caller -cd -command -compgen -complete -compopt -continue -declare -dirs -disown -echo -enable -eval -exec -exit -export -fc -fg -getopts -hash -help -history -jobs -kill -let -local -logout -mapfile -popd -printf -pushd -pwd -read -readarray -readonly -return -set -shift -shopt -source -suspend -test -times -trap -type -typeset -ulimit -umask -unalias -unset -wait -! -[[ -]] -case -do -done -elif -else -esac -fi -for -function -if -in -select -then -time -until -while -{ -} -! -# -$ -* -- -0 -? -@ -_ -BASH -BASH_ALIASES -BASH_ARGC -BASH_ARGV -BASH_CMDS -BASH_COMMAND -BASH_ENV -BASH_EXECUTION_STRING -BASH_LINENO -BASH_REMATCH -BASH_SOURCE -BASH_SUBSHELL -BASH_VERSINFO -BASH_VERSION -BASH_XTRACEFD -BASHOPTS -BASHPID -CDPATH -COLUMNS -COMP_CWORD -COMP_KEY -COMP_LINE -COMP_POINT -COMP_TYPE -COMP_WORDBREAKS -COMP_WORDS -COMPREPLY -DIRSTACK -EMACS -EUID -FCEDIT -FIGNORE -FUNCNAME -GLOBIGNORE -GROUPS -HISTCMD -HISTCONTROL -HISTFILE -HISTFILESIZE -HISTIGNORE -HISTSIZE -HISTTIMEFORMAT -HOME -HOSTFILE -HOSTNAME -HOSTTYPE -IFS -IGNOREEOF -INPUTRC -LANG -LC_ALL -LC_COLLATE -LC_CTYPE -LC_MESSAGES -LC_MESSAGES -LC_NUMERIC -LINENO -LINES -MACHTYPE -MAIL -MAILCHECK -MAILPATH -OLDPWD -OPTARG -OPTERR -OPTIND -OSTYPE -PATH -PIPESTATUS -POSIXLY_CORRECT -PPID -PROMPT_COMMAND -PROMPT_DIRTRIM -PS1 -PS2 -PS3 -PS4 -PWD -RANDOM -REPLY -SECONDS -SHELL -SHELLOPTS -SHLVL -TEXTDOMAIN -TEXTDOMAINDIR -TIMEFORMAT -TMOUT -TMPDIR -UID diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/swift-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/swift-mode deleted file mode 100644 index ab121e0..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/swift-mode +++ /dev/null @@ -1,87 +0,0 @@ -associatedtype -class -deinit -enum -extension -func -import -init -inout -let -operator -precedencegroup -protocol -struct -subscript -typealias -var -fileprivate -internal -private -public -static -undef -sil -sil_stage -sil_vtable -sil_global -sil_witness_table -sil_default_witness_table -sil_coverage_map -sil_scope -defer -if -guard -do -repeat -else -for -in -while -return -break -continue -fallthrough -switch -case -default -where -catch -as -Any -false -is -nil -rethrows -super -self -Self -throw -true -try -throws -__FILE__ -__LINE__ -__COLUMN__ -__FUNCTION__ -__DSO_HANDLE__ -_ -#if -#else -#elseif -#endif -#keyPath -#line -#sourceLocation -#selector -#available -#fileLiteral -#imageLiteral -#colorLiteral -#FileReference -#Image -#Color -#file -#column -#function -#dsohandle diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/tcl-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/tcl-mode deleted file mode 100644 index 07a1281..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/tcl-mode +++ /dev/null @@ -1,172 +0,0 @@ -after -append -apply -array -auto_execok -auto_import -auto_load -auto_load_index -auto_mkindex -auto_mkindex_old -auto_qualify -auto_reset -bell -binary -bind -bindtags -break -button -canvas -case -catch -cd -chan -checkbutton -clipboard -clock -close -concat -continue -destroy -dict -encoding -entry -eof -error -eval -event -exec -exit -expr -fblocked -fconfigure -fcopy -file -fileevent -flush -focus -font -for -foreach -format -frame -gets -glob -global -grab -grid -if -image -incr -info -interp -join -label -labelframe -lappend -lassign -lindex -linsert -list -listbox -llength -load -lower -lrange -lrepeat -lreplace -lreverse -lsearch -lset -lsort -menu -menubutton -message -namespace -open -option -pack -package -panedwindow -pid -pkg_mkIndex -place -proc -puts -pwd -radiobutton -raise -read -regexp -registry -regsub -rename -return -scale -scan -scrollbar -seek -selection -set -socket -source -spinbox -split -string -subst -switch -tclLog -tclPkgSetup -tclPkgUnknown -tcl_findLibrary -tell -text -time -tk -tk_chooseColor -tk_chooseDirectory -tk_getOpenFile -tk_getSaveFile -tk_menuSetFocus -tk_messageBox -tk_popup -tk_textCopy -tk_textCut -tk_textPaste -tkwait -toplevel -ttk::button -ttk::checkbutton -ttk::combobox -ttk::entry -ttk::focusFirst -ttk::frame -ttk::label -ttk::labelframe -ttk::menubutton -ttk::notebook -ttk::paned -ttk::panedwindow -ttk::progressbar -ttk::radiobutton -ttk::scale -ttk::scrollbar -ttk::separator -ttk::setTheme -ttk::sizegrip -ttk::style -ttk::takefocus -ttk::themes -ttk::treeview -trace -unknown -unload -unset -update -uplevel -upvar -variable -vwait -while -winfo -wm diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ts-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ts-mode deleted file mode 100644 index ffe377f..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/ts-mode +++ /dev/null @@ -1,797 +0,0 @@ -absRefPrefix -accessibility -accessibilityWrap -accessKey -ACT -ACTIFSUB -ACTIVSUBRO -ACTRO -addAttributes -addExtUrlsAndShortCuts -additionalHeaders -additionalParams -addParams -addQueryString -addQueryString -adjustItemsH -adjustSubItemsH -adminPanelStyles -after -age -align -align.field -all -allowedAttribs -allowedGroups -allowEdit -allowNew -allowTags -allStdWrap -allWrap -alternativeSortingField -alternativeTempPath -altImgResource -altTarget -altText -alwaysActivePIDlist -alwaysLink -andWhere -angle -antiAlias -append -applyTotalH -applyTotalW -arrayReturnMode -arrowACT -arrowImgParams -arrowNO -ATagBeforeWrap -ATagParams -ATagTitle -atLeast -atMost -authcodeFields -autoInsertPID -autostart -backColor -badMess -base64 -baseURL -beforeImg -beforeImgLink -beforeImgTagParams -beforeROImg -beforeWrap -begin -begin -beginAtLevel -beLoginLinkIPList -beLoginLinkIPList_login -beLoginLinkIPList_logout -beUserLogin -bgImg -blankStrEqFalse -blur -bm -bodyTag -bodyTag -bodyTagAdd -bodyTagCObject -bodyTagMargins -border -border -borderCol -bordersWithin -borderThick -bottomContent -bottomHeight -br -breakSpace -breakWidth -brTag -bytes -c -cache_clearAtMidnight -cached -cache_period -caption -captionAlign -captionSplit -case -case -CASE -casesensitiveComp -cellpadding -cellspacing -char -charcoal -clearCacheOfPages -cMargins -COA -COA_INT -cObject -cObjNum -code -collapse -color -color1 -color2 -color3 -color.default -color.field -colRelations -cols -cols -colSpace -COLUMNS -COMMENT -commentWrap -compensateFieldWidth -compX -compY -concatenateJsAndCss -conf -config -config -CONFIG -constants -CONTENT -content_fallback -content_from_pid_allowOutsideDomain -controllerActionName -controllerExtensionName -controllerName -crop -cropHTML -csConv -cssInline -CSS_inlineStyle -CTABLE -CUR -CURIFSUB -CURIFSUBRO -current -CURRO -cWidth -data -dataArray -dataWrap -date -debug -debugData -debugFunc -debugItemConf -debugRenumberedObject -decimals -dec_point -default -defaultAlign -defaultCmd -defaultCode -defaultGetVars -delete -denyTags -depth -dimensions -directImageLink -directionLeft -directionUp -directReturn -disableAllHeaderCode -disableAltText -disableCharsetHeader -disableImgBorderAttr -disablePageExternalUrl -disablePrefixComment -disablePreviewNotification -displayActiveOnLoad -displayActiveOnLoad -displayrecord -distributeX -distributeY -doctype -doctypeSwitch -doNotLinkIt -doNotShowLink -doNotStripHTML -dontCheckPid -dontFollowMouse -dontHideOnMouseUp -dontLinkIfSubmenu -dontMd5FieldNames -dontWrapInTable -doubleBrTag -doublePostCheck -dWorkArea -edge -edit -editIcons -editIcons -editPanel -EDITPANEL -EDITPANEL -effects -email -emailMess -emboss -emptyTitleHandling -emptyTitleHandling -emptyTitleHandling -enable -enableContentLengthHeader -encapsLines -encapsLinesStdWrap -encapsTagList -entryLevel -equalH -equals -evalErrors -evalFunc -excludeDoktypes -excludeNoSearchPages -excludeUidList -expAll -explode -ext -extbase -externalBlocks -extOnReady -extTarget -face.default -face.field -FEData -fe_userEditSelf -fe_userOwnSelf -field -fieldPrefix -fieldRequired -fieldWrap -file -FILE -filelink -fileList -fileTarget -firstLabel -firstLabelGeneral -flip -flop -foldSpeed -foldTimer -fontFile -fontSize -fontSizeMultiplicator -fontTag -footerData -forceAbsoluteUrl -forceTypeValue -FORM -format -formName -formurl -frame -frameReloadIfNotInFrameset -frameSet -freezeMouseover -ftu -gamma -gapBgCol -gapLineCol -gapLineThickness -gapWidth -gif -GIFBUILDER -globalNesting -GMENU -goodMess -gray -gr_list -groupBy -headerComment -headerData -headTag -height -hiddenFields -hide -hideButCreateMap -hideMenuTimer -hideMenuWhenNotOver -hideNonTranslated -highColor -HMENU -hover -hoverStyle -HRULER -HTML -html5 -htmlmail -HTMLparser -htmlSpecialChars -htmlTag_dir -htmlTag_langKey -htmlTag_setParams -http -icon -iconCObject -icon_image_ext_list -icon_link -icon_thumbSize -if -ifBlank -ifEmpty -IFSUB -IFSUBRO -ignore -IMAGE -image_compression -image_effects -image_frames -imgList -imgMap -imgMapExtras -imgMax -imgNameNotRandom -imgNamePrefix -imgObjNum -imgParams -imgPath -imgStart -IMGTEXT -import -inBranch -includeCSS -includeJS -includeJSFooter -includeJSFooterlibs -includeJSlibs -includeLibrary -includeLibs -includeNotInMenu -incT3Lib_htmlmail -index_descrLgd -index_enable -index_externals -index_metatags -infomail -inlineJS -inlineLanguageLabel -inlineSettings -inlineStyle2TempFile -innerStdWrap_all -innerWrap -innerWrap2 -inputLevels -insertClassesFromRTE -insertData -intensity -intTarget -intval -invert -IProcFunc -isFalse -isGreaterThan -isInList -isLessThan -isPositive -isTrue -itemArrayProcFunc -items -iterations -javascriptLibs -join -jpg -jsFooterInline -jsInline -JSMENU -JSwindow -JSwindow.altUrl -JSwindow.altUrl_noDefaultParams -JSwindow.expand -JSwindow.newWindow -JSwindow_params -jumpurl -jumpurl_enable -jumpurl_mailto_disable -keep -keepNonMatchedTags -keywords -keywordsField -labelStdWrap -labelWrap -lang -language -language_alt -languageField -layer_menu_id -layerStyle -layout -layoutRootPath -leftjoin -leftOffset -levels -limit -lineColor -lineThickness -linkAccessRestrictedPages -linkParams -linkVars -linkWrap -list -listNum -lm -LOAD_REGISTER -locale_all -localNesting -locationData -lockFilePath -lockPosition -lockPosition_addSelf -lockPosition_adjust -loginUser -longdescURL -loop -lowColor -lower -mailto -main -mainScript -makelinks -markers -markerWrap -mask -max -maxAge -maxH -maxHeight -maxItems -maxW -maxWidth -maxWInText -m.bgImg -m.bottomImg -m.bottomImg_mask -md5 -meaningfulTempFilePrefix -menuBackColor -menuHeight -menuOffset -menuWidth -message_page_is_being_generated -message_preview -message_preview_workspace -meta -metaCharset -method -minH -minifyCSS -minifyJS -minItems -minItems -minW -m.mask -moveJsFromHeaderToFooter -MP_defaults -MP_disableTypolinkClosestMPvalue -MP_mapRootPoints -MULTIMEDIA -name -namespaces -negate -newRecordFromTable -newRecordInPid -next -niceText -NO -noAttrib -noBlur -no_cache -noCols -noLink -noLinkUnderline -nonCachedSubst -none -nonTypoTagStdWrap -nonTypoTagUserFunc -nonWrappedTag -noOrderBy -noPageTitle -noResultObj -normalWhenNoLanguage -noRows -noScale -noScaleUp -noscript -noStretchAndMarginCells -notification_email_charset -notification_email_encoding -notification_email_urlmode -noTrimWrap -noValueInsert -noWrapAttr -numberFormat -numRows -obj -offset -offset -_offset -offsetWrap -onlyCurrentPid -opacity -options -orderBy -OTABLE -outerWrap -outline -output -outputLevels -override -overrideAttribs -overrideEdit -overrideId -PAGE -pageGenScript -pageRendererTemplateFile -pageTitleFirst -parameter -params -parseFunc -parseFunc -parseValues -partialRootPath -path -pidInList -pixelSpaceFontSizeRef -plainTextStdWrap -pluginNames -png -postCObject -postUserFunc -postUserFunkInt -preCObject -prefixComment -prefixLocalAnchors -prefixLocalAnchors -prefixRelPathWith -preIfEmptyListNum -prepend -preUserFunc -prev -previewBorder -printBeforeContent -prioriCalc -processScript -properties -protect -protectLvar -quality -quality -radioInputWrap -radioWrap -range -range -rawUrlEncode -recipient -RECORDS -recursive -redirect -reduceColors -relativeToParentLayer -relativeToTriggerItem -relPathPrefix -remap -remapTag -removeBadHTML -removeDefaultJS -removeIfEquals -removeIfFalse -removeObjectsOfDummy -removePrependedNumbers -removeTags -removeWrapping -renderCharset -renderObj -renderWrap -REQ -required -required -resources -resultObj -returnKey -returnLast -reverseOrder -rightjoin -rm -rmTagIfNoAttrib -RO_chBgColor -rootline -rotate -rows -rowSpace -sample -sample -section -sectionIndex -select -sendCacheHeaders -sendCacheHeaders_onlyWhenLoginDeniedInBranch -separator -setContentToCurrent -setCurrent -setfixed -setFixedHeight -setFixedWidth -setJS_mouseOver -setJS_openPic -setKeywords -shadow -sharpen -shear -short -shortcutIcon -showAccessRestrictedPages -showActive -showFirst -simulateStaticDocuments -simulateStaticDocuments_addTitle -simulateStaticDocuments_dontRedirectPathInfoError -simulateStaticDocuments_noTypeIfNoTitle -simulateStaticDocuments_pEnc -simulateStaticDocuments_pEnc_onlyP -simulateStaticDocuments_replacementChar -sitetitle -size -size.default -size.field -slide -smallFormFields -solarize -source -space -spaceAfter -spaceBefore -spaceBelowAbove -spaceLeft -spaceRight -spacing -spamProtectEmailAddresses -spamProtectEmailAddresses_atSubst -spamProtectEmailAddresses_lastDotSubst -SPC -special -split -splitRendering -src -stat -stat_apache -stat_apache_logfile -stat_apache_niceTitle -stat_apache_noHost -stat_apache_noRoot -stat_apache_notExtended -stat_apache_pagenames -stat_excludeBEuserHits -stat_excludeIPList -stat_mysql -stat_pageLen -stat_titleLen -stat_typeNumList -stayFolded -stdWrap -stdWrap2 -strftime -stripHtml -stripProfile -stylesheet -submenuObjSuffixes -subMenuOffset -subparts -subst_elementUid -subst_elementUid -substMarksSeparately -substring -swirl -sword -sword_noMixedCase -sword_standAlone -sys_language_mode -sys_language_overlay -sys_language_softExclude -sys_language_softMergeIfNotBlank -sys_language_uid -sys_page -table -tableParams -tables -tableStdWrap -tableStyle -tags -target -TCAselectItem -TDparams -template -TEMPLATE -templateFile -text -TEXT -textMargin -textMargin_outOfText -textMaxLength -textObjNum -textPos -textStyle -thickness -thousands_sep -title -titleTagFunction -titleText -titleText -tm -TMENU -token -topOffset -totalWidth -transparentBackground -transparentColor -trim -twice -typeNum -types -typolink -typolinkCheckRootline -typolinkEnableLinksAcrossDomains -typolinkLinkAccessRestrictedPages -typolinkLinkAccessRestrictedPages_addParams -uid -uidInList -uniqueGlobal -uniqueLinkVars -uniqueLocal -unset -unsetEmpty -upper -url -useCacheHash -useLargestItemX -useLargestItemY -USER -USERDEF1 -USERDEF1RO -USERDEF2RO -USERFEF2 -userFunc -userFunc_updateArray -userIdColumn -USER_INT -USERNAME_substToken -USERUID_substToken -USR -USRRO -value -variables -wave -where -width -wordSpacing -workArea -workOnSubpart -wrap -wrap2 -wrap3 -wrapAlign -wrapFieldName -wrapItemAndSub -wrapNoWrappedLines -wraps -xhtml_11 -xhtml_2 -xhtml_basic -xhtml_cleaning -xhtmlDoctype -xhtml_frames -xhtml+rdfa_10 -xhtml_strict -xhtml_trans -xml_10 -xml_11 -xmlprologue -xPosOffset -yPosOffset diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/tuareg-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/tuareg-mode deleted file mode 100644 index e709f9f..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/tuareg-mode +++ /dev/null @@ -1,231 +0,0 @@ -# OCaml 3.12.1 - -# Keywords -and -as -assert -begin -class -constraint -do -done -downto -else -end -exception -external -false -for -fun -function -functor -if -in -include -inherit -initializer -lazy -let -match -method -module -mutable -new -object -of -open -or -private -rec -sig -struct -then -to -true -try -type -val -virtual -when -while -with - -# Pervasives -! -!= -& -&& -* -** -*. -+ -+. -- --. -/ -/. -:= -< -<= -<> -= -== -> ->= -@ -FP_infinite -FP_nan -FP_normal -FP_subnormal -FP_zero -LargeFile -Open_append -Open_binary -Open_creat -Open_nonblock -Open_rdonly -Open_text -Open_trunc -Open_wronly -Oupen_excl -^ -^^ -abs -abs_float -acos -asin -asr -at_exit -atan -atan2 -bool_of_string -ceil -char_of_int -classify_float -close_in -close_in_noerr -close_out -close_out_noerr -compare -cos -cosh -decr -do_at_exit -epsilon_float -exit -exp -expm1 -failwith -float -float_of_int -float_of_string -floor -flush -flush_all -format -format4 -format_of_string -fpclass -frexp -fst -ignore -in_channel -in_channel_length -incr -infinity -input -input_binary_int -input_byte -input_char -input_line -input_value -int_of_char -int_of_float -int_of_string -invalid_arg -land -ldexp -lnot -log -log10 -log1p -lor -lsl -lsr -lxor -max -max_float -max_int -min -min_float -min_int -mod -mod_float -modf -nan -neg_infinity -not -open_flag -open_in -open_in_bin -open_in_gen -open_out -open_out_bin -open_out_gen -or -out_channel -out_channel_length -output -output_binary_int -output_byte -output_char -output_string -output_value -pos_in -pos_out -pred -prerr_char -prerr_endline -prerr_float -prerr_int -prerr_newline -prerr_string -print_char -print_endline -print_float -print_int -print_newline -print_string -raise -read_float -read_int -read_line -really_input -ref -seek_in -seek_out -set_binary_mode_in -set_binary_mode_out -sin -sinh -snd -sqrt -stderr -stdin -stdout -string_of_bool -string_of_float -string_of_format -string_of_int -succ -tan -tanh -truncate -unsafe_really_input -valid_float_lexem -|| -~ -~+ -~+. -~- -~-. diff --git a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/verilog-mode b/project1/.emacs.d/packages/auto-complete-20170125.245/dict/verilog-mode deleted file mode 100644 index acc2f32..0000000 --- a/project1/.emacs.d/packages/auto-complete-20170125.245/dict/verilog-mode +++ /dev/null @@ -1,313 +0,0 @@ -`define -`else -`endif -`ifdef -`ifndef -`macromodule -`module -`primitive -`timescale -above -abs -absdelay -ac_stim -acos -acosh -alias -aliasparam -always -always_comb -always_ff -always_latch -analog -analysis -and -asin -asinh -assert -assign -assume -atan -atan2 -atanh -automatic -before -begin -bind -bins -binsof -bit -branch -break -buf -bufif0 -bufif1 -byte -case -casex -casez -cell -chandle -class -clocking -cmos -config -connectmodule -connectrules -const -constraint -context -continue -cos -cosh -cover -covergroup -coverpoint -cross -ddt -ddx -deassign -default -define -defparam -design -disable -discipline -dist -do -driver_update -edge -else -end -endcase -endclass -endclocking -endconfig -endconnectrules -enddiscipline -endfunction -endgenerate -endgroup -endif -endinterface -endmodule -endnature -endpackage -endparamset -endprimitive -endprogram -endproperty -endsequence -endspecify -endtable -endtask -enum -event -exclude -exp -expect -export -extends -extern -final -final_step -first_match -flicker_noise -floor -flow -for -force -foreach -forever -fork -forkjoin -from -function -generate -genvar -ground -highz0 -highz1 -hypot -idt -idtmod -if -ifdef -iff -ifndef -ifnone -ignore_bins -illegal_bins -import -incdir -include -inf -initial -initial_step -inout -input -inside -instance -int -integer -interface -intersect -join -join_any -join_none -laplace_nd -laplace_np -laplace_zd -laplace_zp -large -last_crossing -liblist -library -limexp -ln -local -localparam -log -logic -longint -macromodule -mailbox -matches -max -medium -min -modport -module -nand -nand -nature -negedge -net_resolution -new -nmos -nmos -noise_table -nor -noshowcancelled -not -notif0 -notif1 -null -or -output -package -packed -parameter -paramset -pmos -pmos -posedge -potential -pow -primitive -priority -program -property -protected -pull0 -pull1 -pullup -pulsestyle_ondetect -pulsestyle_onevent -pure -rand -randc -randcase -randcase -randsequence -rcmos -real -realtime -ref -reg -release -repeat -return -rnmos -rpmos -rtran -rtranif0 -rtranif1 -scalared -semaphore -sequence -shortint -shortreal -showcancelled -signed -sin -sinh -slew -small -solve -specify -specparam -sqrt -static -string -strong0 -strong1 -struct -super -supply -supply0 -supply1 -table -tagged -tan -tanh -task -then -this -throughout -time -timeprecision -timer -timescale -timeunit -tran -tran -tranif0 -tranif1 -transition -tri -tri -tri0 -tri1 -triand -trior -trireg -type -typedef -union -unique -unsigned -use -uwire -var -vectored -virtual -void -wait -wait_order -wand -weak0 -weak1 -while -white_noise -wildcard -wire -with -within -wor -wreal -xnor -xor -zi_nd -zi_np -zi_zd diff --git a/project1/.emacs.d/packages/auto-complete-readme.txt b/project1/.emacs.d/packages/auto-complete-readme.txt deleted file mode 100644 index d0a9b31..0000000 --- a/project1/.emacs.d/packages/auto-complete-readme.txt +++ /dev/null @@ -1,16 +0,0 @@ -This extension provides a way to complete with popup menu like: - - def-!- - +-----------------+ - |defun::::::::::::| - |defvar | - |defmacro | - | ... | - +-----------------+ - -You can complete by typing and selecting menu. - -Entire documents are located in doc/ directory. -Take a look for information. - -Enjoy! diff --git a/project1/.emacs.d/packages/dash-20190424.1804/dash-autoloads.el b/project1/.emacs.d/packages/dash-20190424.1804/dash-autoloads.el deleted file mode 100644 index 1af9585..0000000 --- a/project1/.emacs.d/packages/dash-20190424.1804/dash-autoloads.el +++ /dev/null @@ -1,15 +0,0 @@ -;;; dash-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil nil ("dash.el") (23815 54533 535331 0)) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; dash-autoloads.el ends here diff --git a/project1/.emacs.d/packages/dash-20190424.1804/dash-pkg.el b/project1/.emacs.d/packages/dash-20190424.1804/dash-pkg.el deleted file mode 100644 index f4e1ad3..0000000 --- a/project1/.emacs.d/packages/dash-20190424.1804/dash-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "dash" "20190424.1804" "A modern list library for Emacs" 'nil :commit "77f3bf40c9c85386a50f2dab3dc950513f6f88bd" :keywords '("lists") :authors '(("Magnar Sveen" . "magnars@gmail.com")) :maintainer '("Magnar Sveen" . "magnars@gmail.com")) diff --git a/project1/.emacs.d/packages/dash-20190424.1804/dash-pkg.elc b/project1/.emacs.d/packages/dash-20190424.1804/dash-pkg.elc deleted file mode 100644 index fc1d29d6b2b38711c0256ada7e95072a9cdaec5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmbtR%T60X5cGL}AlK4dFcMzv6L#%Oki`LsoX8LK&ci!m9@fkl<a|Bj1x1RuM51ri z)m_z(-NV!V$7;1IcDo(+-X67)VgcIW!4i*nl_6^H&~#;2_I24T^qWpI$Qbxz(pLYW zlxt#HEadN5N2n}?Q<M?n?8s^k;dx9!yF<LmY={XYgcSH|RgYyee$fy<YdD|4y-Spf zPf2ZtoN=4`=l$a&_)LL#%5&Z<_T&Vj2PcO~!g%_}<a3`0Nx^6tkmg+2v>(3t4&RE) z0N;(GDAqzM?d0Z2{Dlq@Oi-K|SX0$w)#X>zL)B$`59@^t4o2s58a)LHXDA;&p2y&{ z!Ipb#bppG)Q|+X>ijREg+u@e_N;QI}R`9W}`npxOY8WQLuziu|Hy=dA)tX(jBfG|y uPHFbxl3TN1bZ`{#{3@kmD8cNKh(8aOv?;SCyUr~cEKkdK&PxB)RJ;Q#al?ZE diff --git a/project1/.emacs.d/packages/dash-20190424.1804/dash.el b/project1/.emacs.d/packages/dash-20190424.1804/dash.el deleted file mode 100644 index ba74662..0000000 --- a/project1/.emacs.d/packages/dash-20190424.1804/dash.el +++ /dev/null @@ -1,3028 +0,0 @@ -;;; dash.el --- A modern list library for Emacs -*- lexical-binding: t -*- - -;; Copyright (C) 2012-2016 Free Software Foundation, Inc. - -;; Author: Magnar Sveen <magnars@gmail.com> -;; Version: 2.16.0 -;; Package-Version: 20190424.1804 -;; Keywords: lists - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; A modern list api for Emacs. -;; -;; See documentation on https://github.com/magnars/dash.el#functions -;; -;; **Please note** The lexical binding in this file is not utilised at the -;; moment. We will take full advantage of lexical binding in an upcoming 3.0 -;; release of Dash. In the meantime, we've added the pragma to avoid a bug that -;; you can read more about in https://github.com/magnars/dash.el/issues/130. -;; - -;;; Code: - -(defgroup dash () - "Customize group for dash.el" - :group 'lisp - :prefix "dash-") - -(defun dash--enable-fontlock (symbol value) - (when value - (dash-enable-font-lock)) - (set-default symbol value)) - -(defcustom dash-enable-fontlock nil - "If non-nil, enable fontification of dash functions, macros and -special values." - :type 'boolean - :set 'dash--enable-fontlock - :group 'dash) - -(defmacro !cons (car cdr) - "Destructive: Set CDR to the cons of CAR and CDR." - `(setq ,cdr (cons ,car ,cdr))) - -(defmacro !cdr (list) - "Destructive: Set LIST to the cdr of LIST." - `(setq ,list (cdr ,list))) - -(defmacro --each (list &rest body) - "Anaphoric form of `-each'." - (declare (debug (form body)) - (indent 1)) - (let ((l (make-symbol "list"))) - `(let ((,l ,list) - (it-index 0)) - (while ,l - (let ((it (car ,l))) - ,@body) - (setq it-index (1+ it-index)) - (!cdr ,l))))) - -(defmacro -doto (eval-initial-value &rest forms) - "Eval a form, then insert that form as the 2nd argument to other forms. -The EVAL-INITIAL-VALUE form is evaluated once. Its result is -passed to FORMS, which are then evaluated sequentially. Returns -the target form." - (declare (indent 1)) - (let ((retval (make-symbol "value"))) - `(let ((,retval ,eval-initial-value)) - ,@(mapcar (lambda (form) - (if (sequencep form) - `(,(-first-item form) ,retval ,@(cdr form)) - `(funcall form ,retval))) - forms) - ,retval))) - -(defmacro --doto (eval-initial-value &rest forms) - "Anaphoric form of `-doto'. -Note: `it' is not required in each form." - (declare (indent 1)) - `(let ((it ,eval-initial-value)) - ,@forms - it)) - -(defun -each (list fn) - "Call FN with every item in LIST. Return nil, used for side-effects only." - (--each list (funcall fn it))) - -(put '-each 'lisp-indent-function 1) - -(defalias '--each-indexed '--each) - -(defun -each-indexed (list fn) - "Call (FN index item) for each item in LIST. - -In the anaphoric form `--each-indexed', the index is exposed as symbol `it-index'. - -See also: `-map-indexed'." - (--each list (funcall fn it-index it))) -(put '-each-indexed 'lisp-indent-function 1) - -(defmacro --each-while (list pred &rest body) - "Anaphoric form of `-each-while'." - (declare (debug (form form body)) - (indent 2)) - (let ((l (make-symbol "list")) - (c (make-symbol "continue"))) - `(let ((,l ,list) - (,c t) - (it-index 0)) - (while (and ,l ,c) - (let ((it (car ,l))) - (if (not ,pred) (setq ,c nil) ,@body)) - (setq it-index (1+ it-index)) - (!cdr ,l))))) - -(defun -each-while (list pred fn) - "Call FN with every item in LIST while (PRED item) is non-nil. -Return nil, used for side-effects only." - (--each-while list (funcall pred it) (funcall fn it))) - -(put '-each-while 'lisp-indent-function 2) - -(defmacro --each-r (list &rest body) - "Anaphoric form of `-each-r'." - (declare (debug (form body)) - (indent 1)) - (let ((v (make-symbol "vector"))) - ;; Implementation note: building vector is considerably faster - ;; than building a reversed list (vector takes less memory, so - ;; there is less GC), plus length comes naturally. In-place - ;; 'nreverse' would be faster still, but BODY would be able to see - ;; that, even if modification was reversed before we return. - `(let* ((,v (vconcat ,list)) - (it-index (length ,v)) - it) - (while (> it-index 0) - (setq it-index (1- it-index)) - (setq it (aref ,v it-index)) - ,@body)))) - -(defun -each-r (list fn) - "Call FN with every item in LIST in reversed order. - Return nil, used for side-effects only." - (--each-r list (funcall fn it))) - -(defmacro --each-r-while (list pred &rest body) - "Anaphoric form of `-each-r-while'." - (declare (debug (form form body)) - (indent 2)) - (let ((v (make-symbol "vector"))) - `(let* ((,v (vconcat ,list)) - (it-index (length ,v)) - it) - (while (> it-index 0) - (setq it-index (1- it-index)) - (setq it (aref ,v it-index)) - (if (not ,pred) - (setq it-index -1) - ,@body))))) - -(defun -each-r-while (list pred fn) - "Call FN with every item in reversed LIST while (PRED item) is non-nil. -Return nil, used for side-effects only." - (--each-r-while list (funcall pred it) (funcall fn it))) - -(defmacro --dotimes (num &rest body) - "Repeatedly executes BODY (presumably for side-effects) with symbol `it' bound to integers from 0 through NUM-1." - (declare (debug (form body)) - (indent 1)) - (let ((n (make-symbol "num"))) - `(let ((,n ,num) - (it 0)) - (while (< it ,n) - ,@body - (setq it (1+ it)))))) - -(defun -dotimes (num fn) - "Repeatedly calls FN (presumably for side-effects) passing in integers from 0 through NUM-1." - (--dotimes num (funcall fn it))) - -(put '-dotimes 'lisp-indent-function 1) - -(defun -map (fn list) - "Return a new list consisting of the result of applying FN to the items in LIST." - (mapcar fn list)) - -(defmacro --map (form list) - "Anaphoric form of `-map'." - (declare (debug (form form))) - `(mapcar (lambda (it) ,form) ,list)) - -(defmacro --reduce-from (form initial-value list) - "Anaphoric form of `-reduce-from'." - (declare (debug (form form form))) - `(let ((acc ,initial-value)) - (--each ,list (setq acc ,form)) - acc)) - -(defun -reduce-from (fn initial-value list) - "Return the result of applying FN to INITIAL-VALUE and the -first item in LIST, then applying FN to that result and the 2nd -item, etc. If LIST contains no items, return INITIAL-VALUE and -do not call FN. - -In the anaphoric form `--reduce-from', the accumulated value is -exposed as symbol `acc'. - -See also: `-reduce', `-reduce-r'" - (--reduce-from (funcall fn acc it) initial-value list)) - -(defmacro --reduce (form list) - "Anaphoric form of `-reduce'." - (declare (debug (form form))) - (let ((lv (make-symbol "list-value"))) - `(let ((,lv ,list)) - (if ,lv - (--reduce-from ,form (car ,lv) (cdr ,lv)) - (let (acc it) ,form))))) - -(defun -reduce (fn list) - "Return the result of applying FN to the first 2 items in LIST, -then applying FN to that result and the 3rd item, etc. If LIST -contains no items, return the result of calling FN with no -arguments. If LIST contains a single item, return that item -and do not call FN. - -In the anaphoric form `--reduce', the accumulated value is -exposed as symbol `acc'. - -See also: `-reduce-from', `-reduce-r'" - (if list - (-reduce-from fn (car list) (cdr list)) - (funcall fn))) - -(defmacro --reduce-r-from (form initial-value list) - "Anaphoric version of `-reduce-r-from'." - (declare (debug (form form form))) - `(--reduce-from ,form ,initial-value (reverse ,list))) - -(defun -reduce-r-from (fn initial-value list) - "Replace conses with FN, nil with INITIAL-VALUE and evaluate -the resulting expression. If LIST is empty, INITIAL-VALUE is -returned and FN is not called. - -Note: this function works the same as `-reduce-from' but the -operation associates from right instead of from left. - -See also: `-reduce-r', `-reduce'" - (--reduce-r-from (funcall fn it acc) initial-value list)) - -(defmacro --reduce-r (form list) - "Anaphoric version of `-reduce-r'." - (declare (debug (form form))) - `(--reduce ,form (reverse ,list))) - -(defun -reduce-r (fn list) - "Replace conses with FN and evaluate the resulting expression. -The final nil is ignored. If LIST contains no items, return the -result of calling FN with no arguments. If LIST contains a single -item, return that item and do not call FN. - -The first argument of FN is the new item, the second is the -accumulated value. - -Note: this function works the same as `-reduce' but the operation -associates from right instead of from left. - -See also: `-reduce-r-from', `-reduce'" - (if list - (--reduce-r (funcall fn it acc) list) - (funcall fn))) - -(defun -reductions-from (fn init list) - "Return a list of the intermediate values of the reduction. - -See `-reduce-from' for explanation of the arguments. - -See also: `-reductions', `-reductions-r', `-reduce-r'" - (nreverse (--reduce-from (cons (funcall fn (car acc) it) acc) (list init) list))) - -(defun -reductions (fn list) - "Return a list of the intermediate values of the reduction. - -See `-reduce' for explanation of the arguments. - -See also: `-reductions-from', `-reductions-r', `-reduce-r'" - (and list (-reductions-from fn (car list) (cdr list)))) - -(defun -reductions-r-from (fn init list) - "Return a list of the intermediate values of the reduction. - -See `-reduce-r-from' for explanation of the arguments. - -See also: `-reductions-r', `-reductions', `-reduce'" - (--reduce-r-from (cons (funcall fn it (car acc)) acc) (list init) list)) - -(defun -reductions-r (fn list) - "Return a list of the intermediate values of the reduction. - -See `-reduce-r' for explanation of the arguments. - -See also: `-reductions-r-from', `-reductions', `-reduce'" - (when list - (let ((rev (reverse list))) - (--reduce-from (cons (funcall fn it (car acc)) acc) - (list (car rev)) - (cdr rev))))) - -(defmacro --filter (form list) - "Anaphoric form of `-filter'. - -See also: `--remove'." - (declare (debug (form form))) - (let ((r (make-symbol "result"))) - `(let (,r) - (--each ,list (when ,form (!cons it ,r))) - (nreverse ,r)))) - -(defun -filter (pred list) - "Return a new list of the items in LIST for which PRED returns a non-nil value. - -Alias: `-select' - -See also: `-keep', `-remove'." - (--filter (funcall pred it) list)) - -(defalias '-select '-filter) -(defalias '--select '--filter) - -(defmacro --remove (form list) - "Anaphoric form of `-remove'. - -See also `--filter'." - (declare (debug (form form))) - `(--filter (not ,form) ,list)) - -(defun -remove (pred list) - "Return a new list of the items in LIST for which PRED returns nil. - -Alias: `-reject' - -See also: `-filter'." - (--remove (funcall pred it) list)) - -(defalias '-reject '-remove) -(defalias '--reject '--remove) - -(defun -remove-first (pred list) - "Return a new list with the first item matching PRED removed. - -Alias: `-reject-first' - -See also: `-remove', `-map-first'" - (let (front) - (while (and list (not (funcall pred (car list)))) - (push (car list) front) - (!cdr list)) - (if list - (-concat (nreverse front) (cdr list)) - (nreverse front)))) - -(defmacro --remove-first (form list) - "Anaphoric form of `-remove-first'." - (declare (debug (form form))) - `(-remove-first (lambda (it) ,form) ,list)) - -(defalias '-reject-first '-remove-first) -(defalias '--reject-first '--remove-first) - -(defun -remove-last (pred list) - "Return a new list with the last item matching PRED removed. - -Alias: `-reject-last' - -See also: `-remove', `-map-last'" - (nreverse (-remove-first pred (reverse list)))) - -(defmacro --remove-last (form list) - "Anaphoric form of `-remove-last'." - (declare (debug (form form))) - `(-remove-last (lambda (it) ,form) ,list)) - -(defalias '-reject-last '-remove-last) -(defalias '--reject-last '--remove-last) - -(defun -remove-item (item list) - "Remove all occurences of ITEM from LIST. - -Comparison is done with `equal'." - (declare (pure t) (side-effect-free t)) - (--remove (equal it item) list)) - -(defmacro --keep (form list) - "Anaphoric form of `-keep'." - (declare (debug (form form))) - (let ((r (make-symbol "result")) - (m (make-symbol "mapped"))) - `(let (,r) - (--each ,list (let ((,m ,form)) (when ,m (!cons ,m ,r)))) - (nreverse ,r)))) - -(defun -keep (fn list) - "Return a new list of the non-nil results of applying FN to the items in LIST. - -If you want to select the original items satisfying a predicate use `-filter'." - (--keep (funcall fn it) list)) - -(defun -non-nil (list) - "Return all non-nil elements of LIST." - (declare (pure t) (side-effect-free t)) - (-remove 'null list)) - -(defmacro --map-indexed (form list) - "Anaphoric form of `-map-indexed'." - (declare (debug (form form))) - (let ((r (make-symbol "result"))) - `(let (,r) - (--each ,list - (!cons ,form ,r)) - (nreverse ,r)))) - -(defun -map-indexed (fn list) - "Return a new list consisting of the result of (FN index item) for each item in LIST. - -In the anaphoric form `--map-indexed', the index is exposed as symbol `it-index'. - -See also: `-each-indexed'." - (--map-indexed (funcall fn it-index it) list)) - -(defmacro --map-when (pred rep list) - "Anaphoric form of `-map-when'." - (declare (debug (form form form))) - (let ((r (make-symbol "result"))) - `(let (,r) - (--each ,list (!cons (if ,pred ,rep it) ,r)) - (nreverse ,r)))) - -(defun -map-when (pred rep list) - "Return a new list where the elements in LIST that do not match the PRED function -are unchanged, and where the elements in LIST that do match the PRED function are mapped -through the REP function. - -Alias: `-replace-where' - -See also: `-update-at'" - (--map-when (funcall pred it) (funcall rep it) list)) - -(defalias '-replace-where '-map-when) -(defalias '--replace-where '--map-when) - -(defun -map-first (pred rep list) - "Replace first item in LIST satisfying PRED with result of REP called on this item. - -See also: `-map-when', `-replace-first'" - (let (front) - (while (and list (not (funcall pred (car list)))) - (push (car list) front) - (!cdr list)) - (if list - (-concat (nreverse front) (cons (funcall rep (car list)) (cdr list))) - (nreverse front)))) - -(defmacro --map-first (pred rep list) - "Anaphoric form of `-map-first'." - `(-map-first (lambda (it) ,pred) (lambda (it) (ignore it) ,rep) ,list)) - -(defun -map-last (pred rep list) - "Replace last item in LIST satisfying PRED with result of REP called on this item. - -See also: `-map-when', `-replace-last'" - (nreverse (-map-first pred rep (reverse list)))) - -(defmacro --map-last (pred rep list) - "Anaphoric form of `-map-last'." - `(-map-last (lambda (it) ,pred) (lambda (it) (ignore it) ,rep) ,list)) - -(defun -replace (old new list) - "Replace all OLD items in LIST with NEW. - -Elements are compared using `equal'. - -See also: `-replace-at'" - (declare (pure t) (side-effect-free t)) - (--map-when (equal it old) new list)) - -(defun -replace-first (old new list) - "Replace the first occurence of OLD with NEW in LIST. - -Elements are compared using `equal'. - -See also: `-map-first'" - (declare (pure t) (side-effect-free t)) - (--map-first (equal old it) new list)) - -(defun -replace-last (old new list) - "Replace the last occurence of OLD with NEW in LIST. - -Elements are compared using `equal'. - -See also: `-map-last'" - (declare (pure t) (side-effect-free t)) - (--map-last (equal old it) new list)) - -(defmacro --mapcat (form list) - "Anaphoric form of `-mapcat'." - (declare (debug (form form))) - `(apply 'append (--map ,form ,list))) - -(defun -mapcat (fn list) - "Return the concatenation of the result of mapping FN over LIST. -Thus function FN should return a list." - (--mapcat (funcall fn it) list)) - -(defun -flatten (l) - "Take a nested list L and return its contents as a single, flat list. - -Note that because `nil' represents a list of zero elements (an -empty list), any mention of nil in L will disappear after -flattening. If you need to preserve nils, consider `-flatten-n' -or map them to some unique symbol and then map them back. - -Conses of two atoms are considered \"terminals\", that is, they -aren't flattened further. - -See also: `-flatten-n'" - (declare (pure t) (side-effect-free t)) - (if (and (listp l) (listp (cdr l))) - (-mapcat '-flatten l) - (list l))) - -(defmacro --iterate (form init n) - "Anaphoric version of `-iterate'." - (declare (debug (form form form))) - `(-iterate (lambda (it) ,form) ,init ,n)) - -(defun -flatten-n (num list) - "Flatten NUM levels of a nested LIST. - -See also: `-flatten'" - (declare (pure t) (side-effect-free t)) - (-last-item (--iterate (--mapcat (-list it) it) list (1+ num)))) - -(defun -concat (&rest lists) - "Return a new list with the concatenation of the elements in the supplied LISTS." - (declare (pure t) (side-effect-free t)) - (apply 'append lists)) - -(defalias '-copy 'copy-sequence - "Create a shallow copy of LIST. - -\(fn LIST)") - -(defun -splice (pred fun list) - "Splice lists generated by FUN in place of elements matching PRED in LIST. - -FUN takes the element matching PRED as input. - -This function can be used as replacement for `,@' in case you -need to splice several lists at marked positions (for example -with keywords). - -See also: `-splice-list', `-insert-at'" - (let (r) - (--each list - (if (funcall pred it) - (let ((new (funcall fun it))) - (--each new (!cons it r))) - (!cons it r))) - (nreverse r))) - -(defmacro --splice (pred form list) - "Anaphoric form of `-splice'." - `(-splice (lambda (it) ,pred) (lambda (it) ,form) ,list)) - -(defun -splice-list (pred new-list list) - "Splice NEW-LIST in place of elements matching PRED in LIST. - -See also: `-splice', `-insert-at'" - (-splice pred (lambda (_) new-list) list)) - -(defmacro --splice-list (pred new-list list) - "Anaphoric form of `-splice-list'." - `(-splice-list (lambda (it) ,pred) ,new-list ,list)) - -(defun -cons* (&rest args) - "Make a new list from the elements of ARGS. - -The last 2 members of ARGS are used as the final cons of the -result so if the final member of ARGS is not a list the result is -a dotted list." - (declare (pure t) (side-effect-free t)) - (-reduce-r 'cons args)) - -(defun -snoc (list elem &rest elements) - "Append ELEM to the end of the list. - -This is like `cons', but operates on the end of list. - -If ELEMENTS is non nil, append these to the list as well." - (-concat list (list elem) elements)) - -(defmacro --first (form list) - "Anaphoric form of `-first'." - (declare (debug (form form))) - (let ((n (make-symbol "needle"))) - `(let (,n) - (--each-while ,list (not ,n) - (when ,form (setq ,n it))) - ,n))) - -(defun -first (pred list) - "Return the first x in LIST where (PRED x) is non-nil, else nil. - -To get the first item in the list no questions asked, use `car'. - -Alias: `-find'" - (--first (funcall pred it) list)) - -(defalias '-find '-first) -(defalias '--find '--first) - -(defmacro --some (form list) - "Anaphoric form of `-some'." - (declare (debug (form form))) - (let ((n (make-symbol "needle"))) - `(let (,n) - (--each-while ,list (not ,n) - (setq ,n ,form)) - ,n))) - -(defun -some (pred list) - "Return (PRED x) for the first LIST item where (PRED x) is non-nil, else nil. - -Alias: `-any'" - (--some (funcall pred it) list)) - -(defalias '-any '-some) -(defalias '--any '--some) - -(defmacro --last (form list) - "Anaphoric form of `-last'." - (declare (debug (form form))) - (let ((n (make-symbol "needle"))) - `(let (,n) - (--each ,list - (when ,form (setq ,n it))) - ,n))) - -(defun -last (pred list) - "Return the last x in LIST where (PRED x) is non-nil, else nil." - (--last (funcall pred it) list)) - -(defalias '-first-item 'car - "Return the first item of LIST, or nil on an empty list. - -See also: `-second-item', `-last-item'. - -\(fn LIST)") - -;; Ensure that calls to `-first-item' are compiled to a single opcode, -;; just like `car'. -(put '-first-item 'byte-opcode 'byte-car) -(put '-first-item 'byte-compile 'byte-compile-one-arg) - -(defalias '-second-item 'cadr - "Return the second item of LIST, or nil if LIST is too short. - -See also: `-third-item'. - -\(fn LIST)") - -(defalias '-third-item 'caddr - "Return the third item of LIST, or nil if LIST is too short. - -See also: `-fourth-item'. - -\(fn LIST)") - -(defun -fourth-item (list) - "Return the fourth item of LIST, or nil if LIST is too short. - -See also: `-fifth-item'." - (declare (pure t) (side-effect-free t)) - (car (cdr (cdr (cdr list))))) - -(defun -fifth-item (list) - "Return the fifth item of LIST, or nil if LIST is too short. - -See also: `-last-item'." - (declare (pure t) (side-effect-free t)) - (car (cdr (cdr (cdr (cdr list)))))) - -;; TODO: gv was introduced in 24.3, so we can remove the if statement -;; when support for earlier versions is dropped -(eval-when-compile - (require 'cl) - (if (fboundp 'gv-define-simple-setter) - (gv-define-simple-setter -first-item setcar) - (require 'cl) - (with-no-warnings - (defsetf -first-item (x) (val) `(setcar ,x ,val))))) - -(defun -last-item (list) - "Return the last item of LIST, or nil on an empty list." - (declare (pure t) (side-effect-free t)) - (car (last list))) - -;; TODO: gv was introduced in 24.3, so we can remove the if statement -;; when support for earlier versions is dropped -(eval-when-compile - (if (fboundp 'gv-define-setter) - (gv-define-setter -last-item (val x) `(setcar (last ,x) ,val)) - (with-no-warnings - (defsetf -last-item (x) (val) `(setcar (last ,x) ,val))))) - -(defun -butlast (list) - "Return a list of all items in list except for the last." - ;; no alias as we don't want magic optional argument - (declare (pure t) (side-effect-free t)) - (butlast list)) - -(defmacro --count (pred list) - "Anaphoric form of `-count'." - (declare (debug (form form))) - (let ((r (make-symbol "result"))) - `(let ((,r 0)) - (--each ,list (when ,pred (setq ,r (1+ ,r)))) - ,r))) - -(defun -count (pred list) - "Counts the number of items in LIST where (PRED item) is non-nil." - (--count (funcall pred it) list)) - -(defun ---truthy? (val) - (declare (pure t) (side-effect-free t)) - (not (null val))) - -(defmacro --any? (form list) - "Anaphoric form of `-any?'." - (declare (debug (form form))) - `(---truthy? (--some ,form ,list))) - -(defun -any? (pred list) - "Return t if (PRED x) is non-nil for any x in LIST, else nil. - -Alias: `-any-p', `-some?', `-some-p'" - (--any? (funcall pred it) list)) - -(defalias '-some? '-any?) -(defalias '--some? '--any?) -(defalias '-any-p '-any?) -(defalias '--any-p '--any?) -(defalias '-some-p '-any?) -(defalias '--some-p '--any?) - -(defmacro --all? (form list) - "Anaphoric form of `-all?'." - (declare (debug (form form))) - (let ((a (make-symbol "all"))) - `(let ((,a t)) - (--each-while ,list ,a (setq ,a ,form)) - (---truthy? ,a)))) - -(defun -all? (pred list) - "Return t if (PRED x) is non-nil for all x in LIST, else nil. - -Alias: `-all-p', `-every?', `-every-p'" - (--all? (funcall pred it) list)) - -(defalias '-every? '-all?) -(defalias '--every? '--all?) -(defalias '-all-p '-all?) -(defalias '--all-p '--all?) -(defalias '-every-p '-all?) -(defalias '--every-p '--all?) - -(defmacro --none? (form list) - "Anaphoric form of `-none?'." - (declare (debug (form form))) - `(--all? (not ,form) ,list)) - -(defun -none? (pred list) - "Return t if (PRED x) is nil for all x in LIST, else nil. - -Alias: `-none-p'" - (--none? (funcall pred it) list)) - -(defalias '-none-p '-none?) -(defalias '--none-p '--none?) - -(defmacro --only-some? (form list) - "Anaphoric form of `-only-some?'." - (declare (debug (form form))) - (let ((y (make-symbol "yes")) - (n (make-symbol "no"))) - `(let (,y ,n) - (--each-while ,list (not (and ,y ,n)) - (if ,form (setq ,y t) (setq ,n t))) - (---truthy? (and ,y ,n))))) - -(defun -only-some? (pred list) - "Return `t` if at least one item of LIST matches PRED and at least one item of LIST does not match PRED. -Return `nil` both if all items match the predicate or if none of the items match the predicate. - -Alias: `-only-some-p'" - (--only-some? (funcall pred it) list)) - -(defalias '-only-some-p '-only-some?) -(defalias '--only-some-p '--only-some?) - -(defun -slice (list from &optional to step) - "Return copy of LIST, starting from index FROM to index TO. - -FROM or TO may be negative. These values are then interpreted -modulo the length of the list. - -If STEP is a number, only each STEPth item in the resulting -section is returned. Defaults to 1." - (declare (pure t) (side-effect-free t)) - (let ((length (length list)) - (new-list nil)) - ;; to defaults to the end of the list - (setq to (or to length)) - (setq step (or step 1)) - ;; handle negative indices - (when (< from 0) - (setq from (mod from length))) - (when (< to 0) - (setq to (mod to length))) - - ;; iterate through the list, keeping the elements we want - (--each-while list (< it-index to) - (when (and (>= it-index from) - (= (mod (- from it-index) step) 0)) - (push it new-list))) - (nreverse new-list))) - -(defun -take (n list) - "Return a new list of the first N items in LIST, or all items if there are fewer than N. - -See also: `-take-last'" - (declare (pure t) (side-effect-free t)) - (let (result) - (--dotimes n - (when list - (!cons (car list) result) - (!cdr list))) - (nreverse result))) - -(defun -take-last (n list) - "Return the last N items of LIST in order. - -See also: `-take'" - (declare (pure t) (side-effect-free t)) - (copy-sequence (last list n))) - -(defalias '-drop 'nthcdr - "Return the tail of LIST without the first N items. - -See also: `-drop-last' - -\(fn N LIST)") - -(defun -drop-last (n list) - "Remove the last N items of LIST and return a copy. - -See also: `-drop'" - ;; No alias because we don't want magic optional argument - (declare (pure t) (side-effect-free t)) - (butlast list n)) - -(defmacro --take-while (form list) - "Anaphoric form of `-take-while'." - (declare (debug (form form))) - (let ((r (make-symbol "result"))) - `(let (,r) - (--each-while ,list ,form (!cons it ,r)) - (nreverse ,r)))) - -(defun -take-while (pred list) - "Return a new list of successive items from LIST while (PRED item) returns a non-nil value." - (--take-while (funcall pred it) list)) - -(defmacro --drop-while (form list) - "Anaphoric form of `-drop-while'." - (declare (debug (form form))) - (let ((l (make-symbol "list"))) - `(let ((,l ,list)) - (while (and ,l (let ((it (car ,l))) ,form)) - (!cdr ,l)) - ,l))) - -(defun -drop-while (pred list) - "Return the tail of LIST starting from the first item for which (PRED item) returns nil." - (--drop-while (funcall pred it) list)) - -(defun -split-at (n list) - "Return a list of ((-take N LIST) (-drop N LIST)), in no more than one pass through the list." - (declare (pure t) (side-effect-free t)) - (let (result) - (--dotimes n - (when list - (!cons (car list) result) - (!cdr list))) - (list (nreverse result) list))) - -(defun -rotate (n list) - "Rotate LIST N places to the right. With N negative, rotate to the left. -The time complexity is O(n)." - (declare (pure t) (side-effect-free t)) - (when list - (let* ((len (length list)) - (n-mod-len (mod n len)) - (new-tail-len (- len n-mod-len))) - (append (-drop new-tail-len list) (-take new-tail-len list))))) - -(defun -insert-at (n x list) - "Return a list with X inserted into LIST at position N. - -See also: `-splice', `-splice-list'" - (declare (pure t) (side-effect-free t)) - (let ((split-list (-split-at n list))) - (nconc (car split-list) (cons x (cadr split-list))))) - -(defun -replace-at (n x list) - "Return a list with element at Nth position in LIST replaced with X. - -See also: `-replace'" - (declare (pure t) (side-effect-free t)) - (let ((split-list (-split-at n list))) - (nconc (car split-list) (cons x (cdr (cadr split-list)))))) - -(defun -update-at (n func list) - "Return a list with element at Nth position in LIST replaced with `(func (nth n list))`. - -See also: `-map-when'" - (let ((split-list (-split-at n list))) - (nconc (car split-list) (cons (funcall func (car (cadr split-list))) (cdr (cadr split-list)))))) - -(defmacro --update-at (n form list) - "Anaphoric version of `-update-at'." - (declare (debug (form form form))) - `(-update-at ,n (lambda (it) ,form) ,list)) - -(defun -remove-at (n list) - "Return a list with element at Nth position in LIST removed. - -See also: `-remove-at-indices', `-remove'" - (declare (pure t) (side-effect-free t)) - (-remove-at-indices (list n) list)) - -(defun -remove-at-indices (indices list) - "Return a list whose elements are elements from LIST without -elements selected as `(nth i list)` for all i -from INDICES. - -See also: `-remove-at', `-remove'" - (declare (pure t) (side-effect-free t)) - (let* ((indices (-sort '< indices)) - (diffs (cons (car indices) (-map '1- (-zip-with '- (cdr indices) indices)))) - r) - (--each diffs - (let ((split (-split-at it list))) - (!cons (car split) r) - (setq list (cdr (cadr split))))) - (!cons list r) - (apply '-concat (nreverse r)))) - -(defmacro --split-with (pred list) - "Anaphoric form of `-split-with'." - (declare (debug (form form))) - (let ((l (make-symbol "list")) - (r (make-symbol "result")) - (c (make-symbol "continue"))) - `(let ((,l ,list) - (,r nil) - (,c t)) - (while (and ,l ,c) - (let ((it (car ,l))) - (if (not ,pred) - (setq ,c nil) - (!cons it ,r) - (!cdr ,l)))) - (list (nreverse ,r) ,l)))) - -(defun -split-with (pred list) - "Return a list of ((-take-while PRED LIST) (-drop-while PRED LIST)), in no more than one pass through the list." - (--split-with (funcall pred it) list)) - -(defmacro -split-on (item list) - "Split the LIST each time ITEM is found. - -Unlike `-partition-by', the ITEM is discarded from the results. -Empty lists are also removed from the result. - -Comparison is done by `equal'. - -See also `-split-when'" - (declare (debug (form form))) - `(-split-when (lambda (it) (equal it ,item)) ,list)) - -(defmacro --split-when (form list) - "Anaphoric version of `-split-when'." - (declare (debug (form form))) - `(-split-when (lambda (it) ,form) ,list)) - -(defun -split-when (fn list) - "Split the LIST on each element where FN returns non-nil. - -Unlike `-partition-by', the \"matched\" element is discarded from -the results. Empty lists are also removed from the result. - -This function can be thought of as a generalization of -`split-string'." - (let (r s) - (while list - (if (not (funcall fn (car list))) - (push (car list) s) - (when s (push (nreverse s) r)) - (setq s nil)) - (!cdr list)) - (when s (push (nreverse s) r)) - (nreverse r))) - -(defmacro --separate (form list) - "Anaphoric form of `-separate'." - (declare (debug (form form))) - (let ((y (make-symbol "yes")) - (n (make-symbol "no"))) - `(let (,y ,n) - (--each ,list (if ,form (!cons it ,y) (!cons it ,n))) - (list (nreverse ,y) (nreverse ,n))))) - -(defun -separate (pred list) - "Return a list of ((-filter PRED LIST) (-remove PRED LIST)), in one pass through the list." - (--separate (funcall pred it) list)) - -(defun ---partition-all-in-steps-reversed (n step list) - "Private: Used by -partition-all-in-steps and -partition-in-steps." - (when (< step 1) - (error "Step must be a positive number, or you're looking at some juicy infinite loops.")) - (let ((result nil)) - (while list - (!cons (-take n list) result) - (setq list (-drop step list))) - result)) - -(defun -partition-all-in-steps (n step list) - "Return a new list with the items in LIST grouped into N-sized sublists at offsets STEP apart. -The last groups may contain less than N items." - (declare (pure t) (side-effect-free t)) - (nreverse (---partition-all-in-steps-reversed n step list))) - -(defun -partition-in-steps (n step list) - "Return a new list with the items in LIST grouped into N-sized sublists at offsets STEP apart. -If there are not enough items to make the last group N-sized, -those items are discarded." - (declare (pure t) (side-effect-free t)) - (let ((result (---partition-all-in-steps-reversed n step list))) - (while (and result (< (length (car result)) n)) - (!cdr result)) - (nreverse result))) - -(defun -partition-all (n list) - "Return a new list with the items in LIST grouped into N-sized sublists. -The last group may contain less than N items." - (declare (pure t) (side-effect-free t)) - (-partition-all-in-steps n n list)) - -(defun -partition (n list) - "Return a new list with the items in LIST grouped into N-sized sublists. -If there are not enough items to make the last group N-sized, -those items are discarded." - (declare (pure t) (side-effect-free t)) - (-partition-in-steps n n list)) - -(defmacro --partition-by (form list) - "Anaphoric form of `-partition-by'." - (declare (debug (form form))) - (let ((r (make-symbol "result")) - (s (make-symbol "sublist")) - (v (make-symbol "value")) - (n (make-symbol "new-value")) - (l (make-symbol "list"))) - `(let ((,l ,list)) - (when ,l - (let* ((,r nil) - (it (car ,l)) - (,s (list it)) - (,v ,form) - (,l (cdr ,l))) - (while ,l - (let* ((it (car ,l)) - (,n ,form)) - (unless (equal ,v ,n) - (!cons (nreverse ,s) ,r) - (setq ,s nil) - (setq ,v ,n)) - (!cons it ,s) - (!cdr ,l))) - (!cons (nreverse ,s) ,r) - (nreverse ,r)))))) - -(defun -partition-by (fn list) - "Apply FN to each item in LIST, splitting it each time FN returns a new value." - (--partition-by (funcall fn it) list)) - -(defmacro --partition-by-header (form list) - "Anaphoric form of `-partition-by-header'." - (declare (debug (form form))) - (let ((r (make-symbol "result")) - (s (make-symbol "sublist")) - (h (make-symbol "header-value")) - (b (make-symbol "seen-body?")) - (n (make-symbol "new-value")) - (l (make-symbol "list"))) - `(let ((,l ,list)) - (when ,l - (let* ((,r nil) - (it (car ,l)) - (,s (list it)) - (,h ,form) - (,b nil) - (,l (cdr ,l))) - (while ,l - (let* ((it (car ,l)) - (,n ,form)) - (if (equal ,h ,n) - (when ,b - (!cons (nreverse ,s) ,r) - (setq ,s nil) - (setq ,b nil)) - (setq ,b t)) - (!cons it ,s) - (!cdr ,l))) - (!cons (nreverse ,s) ,r) - (nreverse ,r)))))) - -(defun -partition-by-header (fn list) - "Apply FN to the first item in LIST. That is the header -value. Apply FN to each item in LIST, splitting it each time FN -returns the header value, but only after seeing at least one -other value (the body)." - (--partition-by-header (funcall fn it) list)) - -(defun -partition-after-pred (pred list) - "Partition directly after each time PRED is true on an element of LIST." - (when list - (let ((rest (-partition-after-pred pred - (cdr list)))) - (if (funcall pred (car list)) - ;;split after (car list) - (cons (list (car list)) - rest) - - ;;don't split after (car list) - (cons (cons (car list) - (car rest)) - (cdr rest)))))) - -(defun -partition-before-pred (pred list) - "Partition directly before each time PRED is true on an element of LIST." - (nreverse (-map #'reverse - (-partition-after-pred pred (reverse list))))) - -(defun -partition-after-item (item list) - "Partition directly after each time ITEM appears in LIST." - (-partition-after-pred (lambda (ele) (equal ele item)) - list)) - -(defun -partition-before-item (item list) - "Partition directly before each time ITEM appears in LIST." - (-partition-before-pred (lambda (ele) (equal ele item)) - list)) - -(defmacro --group-by (form list) - "Anaphoric form of `-group-by'." - (declare (debug t)) - (let ((n (make-symbol "n")) - (k (make-symbol "k")) - (grp (make-symbol "grp"))) - `(nreverse - (-map - (lambda (,n) - (cons (car ,n) - (nreverse (cdr ,n)))) - (--reduce-from - (let* ((,k (,@form)) - (,grp (assoc ,k acc))) - (if ,grp - (setcdr ,grp (cons it (cdr ,grp))) - (push - (list ,k it) - acc)) - acc) - nil ,list))))) - -(defun -group-by (fn list) - "Separate LIST into an alist whose keys are FN applied to the -elements of LIST. Keys are compared by `equal'." - (--group-by (funcall fn it) list)) - -(defun -interpose (sep list) - "Return a new list of all elements in LIST separated by SEP." - (declare (pure t) (side-effect-free t)) - (let (result) - (when list - (!cons (car list) result) - (!cdr list)) - (while list - (setq result (cons (car list) (cons sep result))) - (!cdr list)) - (nreverse result))) - -(defun -interleave (&rest lists) - "Return a new list of the first item in each list, then the second etc." - (declare (pure t) (side-effect-free t)) - (when lists - (let (result) - (while (-none? 'null lists) - (--each lists (!cons (car it) result)) - (setq lists (-map 'cdr lists))) - (nreverse result)))) - -(defmacro --zip-with (form list1 list2) - "Anaphoric form of `-zip-with'. - -The elements in list1 are bound as symbol `it', the elements in list2 as symbol `other'." - (declare (debug (form form form))) - (let ((r (make-symbol "result")) - (l1 (make-symbol "list1")) - (l2 (make-symbol "list2"))) - `(let ((,r nil) - (,l1 ,list1) - (,l2 ,list2)) - (while (and ,l1 ,l2) - (let ((it (car ,l1)) - (other (car ,l2))) - (!cons ,form ,r) - (!cdr ,l1) - (!cdr ,l2))) - (nreverse ,r)))) - -(defun -zip-with (fn list1 list2) - "Zip the two lists LIST1 and LIST2 using a function FN. This -function is applied pairwise taking as first argument element of -LIST1 and as second argument element of LIST2 at corresponding -position. - -The anaphoric form `--zip-with' binds the elements from LIST1 as symbol `it', -and the elements from LIST2 as symbol `other'." - (--zip-with (funcall fn it other) list1 list2)) - -(defun -zip (&rest lists) - "Zip LISTS together. Group the head of each list, followed by the -second elements of each list, and so on. The lengths of the returned -groupings are equal to the length of the shortest input list. - -If two lists are provided as arguments, return the groupings as a list -of cons cells. Otherwise, return the groupings as a list of lists. - -Please note! This distinction is being removed in an upcoming 3.0 -release of Dash. If you rely on this behavior, use -zip-pair instead." - (declare (pure t) (side-effect-free t)) - (when lists - (let (results) - (while (-none? 'null lists) - (setq results (cons (mapcar 'car lists) results)) - (setq lists (mapcar 'cdr lists))) - (setq results (nreverse results)) - (if (= (length lists) 2) - ;; to support backward compatability, return - ;; a cons cell if two lists were provided - (--map (cons (car it) (cadr it)) results) - results)))) - -(defalias '-zip-pair '-zip) - -(defun -zip-fill (fill-value &rest lists) - "Zip LISTS, with FILL-VALUE padded onto the shorter lists. The -lengths of the returned groupings are equal to the length of the -longest input list." - (declare (pure t) (side-effect-free t)) - (apply '-zip (apply '-pad (cons fill-value lists)))) - -(defun -unzip (lists) - "Unzip LISTS. - -This works just like `-zip' but takes a list of lists instead of -a variable number of arguments, such that - - (-unzip (-zip L1 L2 L3 ...)) - -is identity (given that the lists are the same length). - -See also: `-zip'" - (apply '-zip lists)) - -(defun -cycle (list) - "Return an infinite copy of LIST that will cycle through the -elements and repeat from the beginning." - (declare (pure t) (side-effect-free t)) - (let ((newlist (-map 'identity list))) - (nconc newlist newlist))) - -(defun -pad (fill-value &rest lists) - "Appends FILL-VALUE to the end of each list in LISTS such that they -will all have the same length." - (let* ((annotations (-annotate 'length lists)) - (n (-max (-map 'car annotations)))) - (--map (append (cdr it) (-repeat (- n (car it)) fill-value)) annotations))) - -(defun -annotate (fn list) - "Return a list of cons cells where each cell is FN applied to each -element of LIST paired with the unmodified element of LIST." - (-zip (-map fn list) list)) - -(defmacro --annotate (form list) - "Anaphoric version of `-annotate'." - (declare (debug (form form))) - `(-annotate (lambda (it) ,form) ,list)) - -(defun dash--table-carry (lists restore-lists &optional re) - "Helper for `-table' and `-table-flat'. - -If a list overflows, carry to the right and reset the list." - (while (not (or (car lists) - (equal lists '(nil)))) - (setcar lists (car restore-lists)) - (pop (cadr lists)) - (!cdr lists) - (!cdr restore-lists) - (when re - (push (nreverse (car re)) (cadr re)) - (setcar re nil) - (!cdr re)))) - -(defun -table (fn &rest lists) - "Compute outer product of LISTS using function FN. - -The function FN should have the same arity as the number of -supplied lists. - -The outer product is computed by applying fn to all possible -combinations created by taking one element from each list in -order. The dimension of the result is (length lists). - -See also: `-table-flat'" - (let ((restore-lists (copy-sequence lists)) - (last-list (last lists)) - (re (make-list (length lists) nil))) - (while (car last-list) - (let ((item (apply fn (-map 'car lists)))) - (push item (car re)) - (setcar lists (cdar lists)) ;; silence byte compiler - (dash--table-carry lists restore-lists re))) - (nreverse (car (last re))))) - -(defun -table-flat (fn &rest lists) - "Compute flat outer product of LISTS using function FN. - -The function FN should have the same arity as the number of -supplied lists. - -The outer product is computed by applying fn to all possible -combinations created by taking one element from each list in -order. The results are flattened, ignoring the tensor structure -of the result. This is equivalent to calling: - - (-flatten-n (1- (length lists)) (apply \\='-table fn lists)) - -but the implementation here is much more efficient. - -See also: `-flatten-n', `-table'" - (let ((restore-lists (copy-sequence lists)) - (last-list (last lists)) - re) - (while (car last-list) - (let ((item (apply fn (-map 'car lists)))) - (push item re) - (setcar lists (cdar lists)) ;; silence byte compiler - (dash--table-carry lists restore-lists))) - (nreverse re))) - -(defun -partial (fn &rest args) - "Take a function FN and fewer than the normal arguments to FN, -and return a fn that takes a variable number of additional ARGS. -When called, the returned function calls FN with ARGS first and -then additional args." - (apply 'apply-partially fn args)) - -(defun -elem-index (elem list) - "Return the index of the first element in the given LIST which -is equal to the query element ELEM, or nil if there is no -such element." - (declare (pure t) (side-effect-free t)) - (car (-elem-indices elem list))) - -(defun -elem-indices (elem list) - "Return the indices of all elements in LIST equal to the query -element ELEM, in ascending order." - (declare (pure t) (side-effect-free t)) - (-find-indices (-partial 'equal elem) list)) - -(defun -find-indices (pred list) - "Return the indices of all elements in LIST satisfying the -predicate PRED, in ascending order." - (apply 'append (--map-indexed (when (funcall pred it) (list it-index)) list))) - -(defmacro --find-indices (form list) - "Anaphoric version of `-find-indices'." - (declare (debug (form form))) - `(-find-indices (lambda (it) ,form) ,list)) - -(defun -find-index (pred list) - "Take a predicate PRED and a LIST and return the index of the -first element in the list satisfying the predicate, or nil if -there is no such element. - -See also `-first'." - (car (-find-indices pred list))) - -(defmacro --find-index (form list) - "Anaphoric version of `-find-index'." - (declare (debug (form form))) - `(-find-index (lambda (it) ,form) ,list)) - -(defun -find-last-index (pred list) - "Take a predicate PRED and a LIST and return the index of the -last element in the list satisfying the predicate, or nil if -there is no such element. - -See also `-last'." - (-last-item (-find-indices pred list))) - -(defmacro --find-last-index (form list) - "Anaphoric version of `-find-last-index'." - `(-find-last-index (lambda (it) ,form) ,list)) - -(defun -select-by-indices (indices list) - "Return a list whose elements are elements from LIST selected -as `(nth i list)` for all i from INDICES." - (declare (pure t) (side-effect-free t)) - (let (r) - (--each indices - (!cons (nth it list) r)) - (nreverse r))) - -(defun -select-columns (columns table) - "Select COLUMNS from TABLE. - -TABLE is a list of lists where each element represents one row. -It is assumed each row has the same length. - -Each row is transformed such that only the specified COLUMNS are -selected. - -See also: `-select-column', `-select-by-indices'" - (declare (pure t) (side-effect-free t)) - (--map (-select-by-indices columns it) table)) - -(defun -select-column (column table) - "Select COLUMN from TABLE. - -TABLE is a list of lists where each element represents one row. -It is assumed each row has the same length. - -The single selected column is returned as a list. - -See also: `-select-columns', `-select-by-indices'" - (declare (pure t) (side-effect-free t)) - (--mapcat (-select-by-indices (list column) it) table)) - -(defmacro -> (x &optional form &rest more) - "Thread the expr through the forms. Insert X as the second item -in the first form, making a list of it if it is not a list -already. If there are more forms, insert the first form as the -second item in second form, etc." - (declare (debug (form &rest [&or symbolp (sexp &rest form)]))) - (cond - ((null form) x) - ((null more) (if (listp form) - `(,(car form) ,x ,@(cdr form)) - (list form x))) - (:else `(-> (-> ,x ,form) ,@more)))) - -(defmacro ->> (x &optional form &rest more) - "Thread the expr through the forms. Insert X as the last item -in the first form, making a list of it if it is not a list -already. If there are more forms, insert the first form as the -last item in second form, etc." - (declare (debug ->)) - (cond - ((null form) x) - ((null more) (if (listp form) - `(,@form ,x) - (list form x))) - (:else `(->> (->> ,x ,form) ,@more)))) - -(defmacro --> (x &rest forms) - "Starting with the value of X, thread each expression through FORMS. - -Insert X at the position signified by the symbol `it' in the first -form. If there are more forms, insert the first form at the position -signified by `it' in in second form, etc." - (declare (debug (form body))) - `(-as-> ,x it ,@forms)) - -(defmacro -as-> (value variable &rest forms) - "Starting with VALUE, thread VARIABLE through FORMS. - -In the first form, bind VARIABLE to VALUE. In the second form, bind -VARIABLE to the result of the first form, and so forth." - (declare (debug (form symbolp body))) - (if (null forms) - `,value - `(let ((,variable ,value)) - (-as-> ,(if (symbolp (car forms)) - (list (car forms) variable) - (car forms)) - ,variable - ,@(cdr forms))))) - -(defmacro -some-> (x &optional form &rest more) - "When expr is non-nil, thread it through the first form (via `->'), -and when that result is non-nil, through the next form, etc." - (declare (debug ->)) - (if (null form) x - (let ((result (make-symbol "result"))) - `(-some-> (-when-let (,result ,x) - (-> ,result ,form)) - ,@more)))) - -(defmacro -some->> (x &optional form &rest more) - "When expr is non-nil, thread it through the first form (via `->>'), -and when that result is non-nil, through the next form, etc." - (declare (debug ->)) - (if (null form) x - (let ((result (make-symbol "result"))) - `(-some->> (-when-let (,result ,x) - (->> ,result ,form)) - ,@more)))) - -(defmacro -some--> (x &optional form &rest more) - "When expr in non-nil, thread it through the first form (via `-->'), -and when that result is non-nil, through the next form, etc." - (declare (debug ->)) - (if (null form) x - (let ((result (make-symbol "result"))) - `(-some--> (-when-let (,result ,x) - (--> ,result ,form)) - ,@more)))) - -(defun -grade-up (comparator list) - "Grade elements of LIST using COMPARATOR relation, yielding a -permutation vector such that applying this permutation to LIST -sorts it in ascending order." - ;; ugly hack to "fix" lack of lexical scope - (let ((comp `(lambda (it other) (funcall ',comparator (car it) (car other))))) - (->> (--map-indexed (cons it it-index) list) - (-sort comp) - (-map 'cdr)))) - -(defun -grade-down (comparator list) - "Grade elements of LIST using COMPARATOR relation, yielding a -permutation vector such that applying this permutation to LIST -sorts it in descending order." - ;; ugly hack to "fix" lack of lexical scope - (let ((comp `(lambda (it other) (funcall ',comparator (car other) (car it))))) - (->> (--map-indexed (cons it it-index) list) - (-sort comp) - (-map 'cdr)))) - -(defvar dash--source-counter 0 - "Monotonic counter for generated symbols.") - -(defun dash--match-make-source-symbol () - "Generate a new dash-source symbol. - -All returned symbols are guaranteed to be unique." - (prog1 (make-symbol (format "--dash-source-%d--" dash--source-counter)) - (setq dash--source-counter (1+ dash--source-counter)))) - -(defun dash--match-ignore-place-p (symbol) - "Return non-nil if SYMBOL is a symbol and starts with _." - (and (symbolp symbol) - (eq (aref (symbol-name symbol) 0) ?_))) - -(defun dash--match-cons-skip-cdr (skip-cdr source) - "Helper function generating idiomatic shifting code." - (cond - ((= skip-cdr 0) - `(pop ,source)) - (t - `(prog1 ,(dash--match-cons-get-car skip-cdr source) - (setq ,source ,(dash--match-cons-get-cdr (1+ skip-cdr) source)))))) - -(defun dash--match-cons-get-car (skip-cdr source) - "Helper function generating idiomatic code to get nth car." - (cond - ((= skip-cdr 0) - `(car ,source)) - ((= skip-cdr 1) - `(cadr ,source)) - (t - `(nth ,skip-cdr ,source)))) - -(defun dash--match-cons-get-cdr (skip-cdr source) - "Helper function generating idiomatic code to get nth cdr." - (cond - ((= skip-cdr 0) - source) - ((= skip-cdr 1) - `(cdr ,source)) - (t - `(nthcdr ,skip-cdr ,source)))) - -(defun dash--match-cons (match-form source) - "Setup a cons matching environment and call the real matcher." - (let ((s (dash--match-make-source-symbol)) - (n 0) - (m match-form)) - (while (and (consp m) - (dash--match-ignore-place-p (car m))) - (setq n (1+ n)) (!cdr m)) - (cond - ;; when we only have one pattern in the list, we don't have to - ;; create a temporary binding (--dash-source--) for the source - ;; and just use the input directly - ((and (consp m) - (not (cdr m))) - (dash--match (car m) (dash--match-cons-get-car n source))) - ;; handle other special types - ((> n 0) - (dash--match m (dash--match-cons-get-cdr n source))) - ;; this is the only entry-point for dash--match-cons-1, that's - ;; why we can't simply use the above branch, it would produce - ;; infinite recursion - (t - (cons (list s source) (dash--match-cons-1 match-form s)))))) - -(defun dash--get-expand-function (type) - "Get expand function name for TYPE." - (intern (format "dash-expand:%s" type))) - -(defun dash--match-cons-1 (match-form source &optional props) - "Match MATCH-FORM against SOURCE. - -MATCH-FORM is a proper or improper list. Each element of -MATCH-FORM is either a symbol, which gets bound to the respective -value in source or another match form which gets destructured -recursively. - -If the cdr of last cons cell in the list is `nil', matching stops -there. - -SOURCE is a proper or improper list." - (let ((skip-cdr (or (plist-get props :skip-cdr) 0))) - (cond - ((consp match-form) - (cond - ((cdr match-form) - (cond - ((and (symbolp (car match-form)) - (functionp (dash--get-expand-function (car match-form)))) - (dash--match-kv (dash--match-kv-normalize-match-form match-form) (dash--match-cons-get-cdr skip-cdr source))) - ((dash--match-ignore-place-p (car match-form)) - (dash--match-cons-1 (cdr match-form) source - (plist-put props :skip-cdr (1+ skip-cdr)))) - (t - (-concat (dash--match (car match-form) (dash--match-cons-skip-cdr skip-cdr source)) - (dash--match-cons-1 (cdr match-form) source))))) - (t ;; Last matching place, no need for shift - (dash--match (car match-form) (dash--match-cons-get-car skip-cdr source))))) - ((eq match-form nil) - nil) - (t ;; Handle improper lists. Last matching place, no need for shift - (dash--match match-form (dash--match-cons-get-cdr skip-cdr source)))))) - -(defun dash--vector-tail (seq start) - "Return the tail of SEQ starting at START." - (cond - ((vectorp seq) - (let* ((re-length (- (length seq) start)) - (re (make-vector re-length 0))) - (--dotimes re-length (aset re it (aref seq (+ it start)))) - re)) - ((stringp seq) - (substring seq start)))) - -(defun dash--match-vector (match-form source) - "Setup a vector matching environment and call the real matcher." - (let ((s (dash--match-make-source-symbol))) - (cond - ;; don't bind `s' if we only have one sub-pattern - ((= (length match-form) 1) - (dash--match (aref match-form 0) `(aref ,source 0))) - ;; if the source is a symbol, we don't need to re-bind it - ((symbolp source) - (dash--match-vector-1 match-form source)) - ;; don't bind `s' if we only have one sub-pattern which is not ignored - ((let* ((ignored-places (mapcar 'dash--match-ignore-place-p match-form)) - (ignored-places-n (length (-remove 'null ignored-places)))) - (when (= ignored-places-n (1- (length match-form))) - (let ((n (-find-index 'null ignored-places))) - (dash--match (aref match-form n) `(aref ,source ,n)))))) - (t - (cons (list s source) (dash--match-vector-1 match-form s)))))) - -(defun dash--match-vector-1 (match-form source) - "Match MATCH-FORM against SOURCE. - -MATCH-FORM is a vector. Each element of MATCH-FORM is either a -symbol, which gets bound to the respective value in source or -another match form which gets destructured recursively. - -If second-from-last place in MATCH-FORM is the symbol &rest, the -next element of the MATCH-FORM is matched against the tail of -SOURCE, starting at index of the &rest symbol. This is -conceptually the same as the (head . tail) match for improper -lists, where dot plays the role of &rest. - -SOURCE is a vector. - -If the MATCH-FORM vector is shorter than SOURCE vector, only -the (length MATCH-FORM) places are bound, the rest of the SOURCE -is discarded." - (let ((i 0) - (l (length match-form)) - (re)) - (while (< i l) - (let ((m (aref match-form i))) - (push (cond - ((and (symbolp m) - (eq m '&rest)) - (prog1 (dash--match - (aref match-form (1+ i)) - `(dash--vector-tail ,source ,i)) - (setq i l))) - ((and (symbolp m) - ;; do not match symbols starting with _ - (not (eq (aref (symbol-name m) 0) ?_))) - (list (list m `(aref ,source ,i)))) - ((not (symbolp m)) - (dash--match m `(aref ,source ,i)))) - re) - (setq i (1+ i)))) - (-flatten-n 1 (nreverse re)))) - -(defun dash--match-kv-normalize-match-form (pattern) - "Normalize kv PATTERN. - -This method normalizes PATTERN to the format expected by -`dash--match-kv'. See `-let' for the specification." - (let ((normalized (list (car pattern))) - (skip nil) - (fill-placeholder (make-symbol "--dash-fill-placeholder--"))) - (-each (apply '-zip (-pad fill-placeholder (cdr pattern) (cddr pattern))) - (lambda (pair) - (let ((current (car pair)) - (next (cdr pair))) - (if skip - (setq skip nil) - (if (or (eq fill-placeholder next) - (not (or (and (symbolp next) - (not (keywordp next)) - (not (eq next t)) - (not (eq next nil))) - (and (consp next) - (not (eq (car next) 'quote))) - (vectorp next)))) - (progn - (cond - ((keywordp current) - (push current normalized) - (push (intern (substring (symbol-name current) 1)) normalized)) - ((stringp current) - (push current normalized) - (push (intern current) normalized)) - ((and (consp current) - (eq (car current) 'quote)) - (push current normalized) - (push (cadr current) normalized)) - (t (error "-let: found key `%s' in kv destructuring but its pattern `%s' is invalid and can not be derived from the key" current next))) - (setq skip nil)) - (push current normalized) - (push next normalized) - (setq skip t)))))) - (nreverse normalized))) - -(defun dash--match-kv (match-form source) - "Setup a kv matching environment and call the real matcher. - -kv can be any key-value store, such as plist, alist or hash-table." - (let ((s (dash--match-make-source-symbol))) - (cond - ;; don't bind `s' if we only have one sub-pattern (&type key val) - ((= (length match-form) 3) - (dash--match-kv-1 (cdr match-form) source (car match-form))) - ;; if the source is a symbol, we don't need to re-bind it - ((symbolp source) - (dash--match-kv-1 (cdr match-form) source (car match-form))) - (t - (cons (list s source) (dash--match-kv-1 (cdr match-form) s (car match-form))))))) - -(defun dash-expand:&hash (key source) - "Generate extracting KEY from SOURCE for &hash destructuring." - `(gethash ,key ,source)) - -(defun dash-expand:&plist (key source) - "Generate extracting KEY from SOURCE for &plist destructuring." - `(plist-get ,source ,key)) - -(defun dash-expand:&alist (key source) - "Generate extracting KEY from SOURCE for &alist destructuring." - `(cdr (assoc ,key ,source))) - -(defun dash-expand:&hash? (key source) - "Generate extracting KEY from SOURCE for &hash? destructuring. -Similar to &hash but check whether the map is not nil." - (let ((src (make-symbol "src"))) - `(let ((,src ,source)) - (when ,src (gethash ,key ,src))))) - -(defalias 'dash-expand:&keys 'dash-expand:&plist) - -(defun dash--match-kv-1 (match-form source type) - "Match MATCH-FORM against SOURCE of type TYPE. - -MATCH-FORM is a proper list of the form (key1 place1 ... keyN -placeN). Each placeK is either a symbol, which gets bound to the -value of keyK retrieved from the key-value store, or another -match form which gets destructured recursively. - -SOURCE is a key-value store of type TYPE, which can be a plist, -an alist or a hash table. - -TYPE is a token specifying the type of the key-value store. -Valid values are &plist, &alist and &hash." - (-flatten-n 1 (-map - (lambda (kv) - (let* ((k (car kv)) - (v (cadr kv)) - (getter - (funcall (dash--get-expand-function type) k source))) - (cond - ((symbolp v) - (list (list v getter))) - (t (dash--match v getter))))) - (-partition 2 match-form)))) - -(defun dash--match-symbol (match-form source) - "Bind a symbol. - -This works just like `let', there is no destructuring." - (list (list match-form source))) - -(defun dash--match (match-form source) - "Match MATCH-FORM against SOURCE. - -This function tests the MATCH-FORM and dispatches to specific -matchers based on the type of the expression. - -Key-value stores are disambiguated by placing a token &plist, -&alist or &hash as a first item in the MATCH-FORM." - (cond - ((symbolp match-form) - (dash--match-symbol match-form source)) - ((consp match-form) - (cond - ;; Handle the "x &as" bindings first. - ((and (consp (cdr match-form)) - (symbolp (car match-form)) - (eq '&as (cadr match-form))) - (let ((s (car match-form))) - (cons (list s source) - (dash--match (cddr match-form) s)))) - ((functionp (dash--get-expand-function (car match-form))) - (dash--match-kv (dash--match-kv-normalize-match-form match-form) source)) - (t (dash--match-cons match-form source)))) - ((vectorp match-form) - ;; We support the &as binding in vectors too - (cond - ((and (> (length match-form) 2) - (symbolp (aref match-form 0)) - (eq '&as (aref match-form 1))) - (let ((s (aref match-form 0))) - (cons (list s source) - (dash--match (dash--vector-tail match-form 2) s)))) - (t (dash--match-vector match-form source)))))) - -(defun dash--normalize-let-varlist (varlist) - "Normalize VARLIST so that every binding is a list. - -`let' allows specifying a binding which is not a list but simply -the place which is then automatically bound to nil, such that all -three of the following are identical and evaluate to nil. - - (let (a) a) - (let ((a)) a) - (let ((a nil)) a) - -This function normalizes all of these to the last form." - (--map (if (consp it) it (list it nil)) varlist)) - -(defmacro -let* (varlist &rest body) - "Bind variables according to VARLIST then eval BODY. - -VARLIST is a list of lists of the form (PATTERN SOURCE). Each -PATTERN is matched against the SOURCE structurally. SOURCE is -only evaluated once for each PATTERN. - -Each SOURCE can refer to the symbols already bound by this -VARLIST. This is useful if you want to destructure SOURCE -recursively but also want to name the intermediate structures. - -See `-let' for the list of all possible patterns." - (declare (debug ((&rest [&or (sexp form) sexp]) body)) - (indent 1)) - (let* ((varlist (dash--normalize-let-varlist varlist)) - (bindings (--mapcat (dash--match (car it) (cadr it)) varlist))) - `(let* ,bindings - ,@body))) - -(defmacro -let (varlist &rest body) - "Bind variables according to VARLIST then eval BODY. - -VARLIST is a list of lists of the form (PATTERN SOURCE). Each -PATTERN is matched against the SOURCE \"structurally\". SOURCE -is only evaluated once for each PATTERN. Each PATTERN is matched -recursively, and can therefore contain sub-patterns which are -matched against corresponding sub-expressions of SOURCE. - -All the SOURCEs are evalled before any symbols are -bound (i.e. \"in parallel\"). - -If VARLIST only contains one (PATTERN SOURCE) element, you can -optionally specify it using a vector and discarding the -outer-most parens. Thus - - (-let ((PATTERN SOURCE)) ..) - -becomes - - (-let [PATTERN SOURCE] ..). - -`-let' uses a convention of not binding places (symbols) starting -with _ whenever it's possible. You can use this to skip over -entries you don't care about. However, this is not *always* -possible (as a result of implementation) and these symbols might -get bound to undefined values. - -Following is the overview of supported patterns. Remember that -patterns can be matched recursively, so every a, b, aK in the -following can be a matching construct and not necessarily a -symbol/variable. - -Symbol: - - a - bind the SOURCE to A. This is just like regular `let'. - -Conses and lists: - - (a) - bind `car' of cons/list to A - - (a . b) - bind car of cons to A and `cdr' to B - - (a b) - bind car of list to A and `cadr' to B - - (a1 a2 a3 ...) - bind 0th car of list to A1, 1st to A2, 2nd to A3 ... - - (a1 a2 a3 ... aN . rest) - as above, but bind the Nth cdr to REST. - -Vectors: - - [a] - bind 0th element of a non-list sequence to A (works with - vectors, strings, bit arrays...) - - [a1 a2 a3 ...] - bind 0th element of non-list sequence to A0, 1st to - A1, 2nd to A2, ... - If the PATTERN is shorter than SOURCE, the values at - places not in PATTERN are ignored. - If the PATTERN is longer than SOURCE, an `error' is - thrown. - - [a1 a2 a3 ... &rest rest] - as above, but bind the rest of - the sequence to REST. This is - conceptually the same as improper list - matching (a1 a2 ... aN . rest) - -Key/value stores: - - (&plist key0 a0 ... keyN aN) - bind value mapped by keyK in the - SOURCE plist to aK. If the - value is not found, aK is nil. - Uses `plist-get' to fetch values. - - (&alist key0 a0 ... keyN aN) - bind value mapped by keyK in the - SOURCE alist to aK. If the - value is not found, aK is nil. - Uses `assoc' to fetch values. - - (&hash key0 a0 ... keyN aN) - bind value mapped by keyK in the - SOURCE hash table to aK. If the - value is not found, aK is nil. - Uses `gethash' to fetch values. - -Further, special keyword &keys supports \"inline\" matching of -plist-like key-value pairs, similarly to &keys keyword of -`cl-defun'. - - (a1 a2 ... aN &keys key1 b1 ... keyN bK) - -This binds N values from the list to a1 ... aN, then interprets -the cdr as a plist (see key/value matching above). - -A shorthand notation for kv-destructuring exists which allows the -patterns be optionally left out and derived from the key name in -the following fashion: - -- a key :foo is converted into `foo' pattern, -- a key 'bar is converted into `bar' pattern, -- a key \"baz\" is converted into `baz' pattern. - -That is, the entire value under the key is bound to the derived -variable without any further destructuring. - -This is possible only when the form following the key is not a -valid pattern (i.e. not a symbol, a cons cell or a vector). -Otherwise the matching proceeds as usual and in case of an -invalid spec fails with an error. - -Thus the patterns are normalized as follows: - - ;; derive all the missing patterns - (&plist :foo 'bar \"baz\") => (&plist :foo foo 'bar bar \"baz\" baz) - - ;; we can specify some but not others - (&plist :foo 'bar explicit-bar) => (&plist :foo foo 'bar explicit-bar) - - ;; nothing happens, we store :foo in x - (&plist :foo x) => (&plist :foo x) - - ;; nothing happens, we match recursively - (&plist :foo (a b c)) => (&plist :foo (a b c)) - -You can name the source using the syntax SYMBOL &as PATTERN. -This syntax works with lists (proper or improper), vectors and -all types of maps. - - (list &as a b c) (list 1 2 3) - -binds A to 1, B to 2, C to 3 and LIST to (1 2 3). - -Similarly: - - (bounds &as beg . end) (cons 1 2) - -binds BEG to 1, END to 2 and BOUNDS to (1 . 2). - - (items &as first . rest) (list 1 2 3) - -binds FIRST to 1, REST to (2 3) and ITEMS to (1 2 3) - - [vect &as _ b c] [1 2 3] - -binds B to 2, C to 3 and VECT to [1 2 3] (_ avoids binding as usual). - - (plist &as &plist :b b) (list :a 1 :b 2 :c 3) - -binds B to 2 and PLIST to (:a 1 :b 2 :c 3). Same for &alist and &hash. - -This is especially useful when we want to capture the result of a -computation and destructure at the same time. Consider the -form (function-returning-complex-structure) returning a list of -two vectors with two items each. We want to capture this entire -result and pass it to another computation, but at the same time -we want to get the second item from each vector. We can achieve -it with pattern - - (result &as [_ a] [_ b]) (function-returning-complex-structure) - -Note: Clojure programmers may know this feature as the \":as -binding\". The difference is that we put the &as at the front -because we need to support improper list binding." - (declare (debug ([&or (&rest [&or (sexp form) sexp]) - (vector [&rest [sexp form]])] - body)) - (indent 1)) - (if (vectorp varlist) - `(let* ,(dash--match (aref varlist 0) (aref varlist 1)) - ,@body) - (let* ((varlist (dash--normalize-let-varlist varlist)) - (inputs (--map-indexed (list (make-symbol (format "input%d" it-index)) (cadr it)) varlist)) - (new-varlist (--map (list (caar it) (cadr it)) (-zip varlist inputs)))) - `(let ,inputs - (-let* ,new-varlist ,@body))))) - -(defmacro -lambda (match-form &rest body) - "Return a lambda which destructures its input as MATCH-FORM and executes BODY. - -Note that you have to enclose the MATCH-FORM in a pair of parens, -such that: - - (-lambda (x) body) - (-lambda (x y ...) body) - -has the usual semantics of `lambda'. Furthermore, these get -translated into normal lambda, so there is no performance -penalty. - -See `-let' for the description of destructuring mechanism." - (declare (doc-string 2) (indent defun) - (debug (&define sexp - [&optional stringp] - [&optional ("interactive" interactive)] - def-body))) - (cond - ((not (consp match-form)) - (signal 'wrong-type-argument "match-form must be a list")) - ;; no destructuring, so just return regular lambda to make things faster - ((-all? 'symbolp match-form) - `(lambda ,match-form ,@body)) - (t - (let* ((inputs (--map-indexed (list it (make-symbol (format "input%d" it-index))) match-form))) - ;; TODO: because inputs to the lambda are evaluated only once, - ;; -let* need not to create the extra bindings to ensure that. - ;; We should find a way to optimize that. Not critical however. - `(lambda ,(--map (cadr it) inputs) - (-let* ,inputs ,@body)))))) - -(defmacro -setq (&rest forms) - "Bind each MATCH-FORM to the value of its VAL. - -MATCH-FORM destructuring is done according to the rules of `-let'. - -This macro allows you to bind multiple variables by destructuring -the value, so for example: - - (-setq (a b) x - (&plist :c c) plist) - -expands roughly speaking to the following code - - (setq a (car x) - b (cadr x) - c (plist-get plist :c)) - -Care is taken to only evaluate each VAL once so that in case of -multiple assignments it does not cause unexpected side effects. - -\(fn [MATCH-FORM VAL]...)" - (declare (debug (&rest sexp form)) - (indent 1)) - (when (= (mod (length forms) 2) 1) - (error "Odd number of arguments")) - (let* ((forms-and-sources - ;; First get all the necessary mappings with all the - ;; intermediate bindings. - (-map (lambda (x) (dash--match (car x) (cadr x))) - (-partition 2 forms))) - ;; To preserve the logic of dynamic scoping we must ensure - ;; that we `setq' the variables outside of the `let*' form - ;; which holds the destructured intermediate values. For - ;; this we generate for each variable a placeholder which is - ;; bound to (lexically) the result of the destructuring. - ;; Then outside of the helper `let*' form we bind all the - ;; original variables to their respective placeholders. - ;; TODO: There is a lot of room for possible optimization, - ;; for start playing with `special-variable-p' to eliminate - ;; unnecessary re-binding. - (variables-to-placeholders - (-mapcat - (lambda (bindings) - (-map - (lambda (binding) - (let ((var (car binding))) - (list var (make-symbol (concat "--dash-binding-" (symbol-name var) "--"))))) - (--filter (not (string-prefix-p "--" (symbol-name (car it)))) bindings))) - forms-and-sources))) - `(let ,(-map 'cadr variables-to-placeholders) - (let* ,(-flatten-n 1 forms-and-sources) - (setq ,@(-flatten (-map 'reverse variables-to-placeholders)))) - (setq ,@(-flatten variables-to-placeholders))))) - -(defmacro -if-let* (vars-vals then &rest else) - "If all VALS evaluate to true, bind them to their corresponding -VARS and do THEN, otherwise do ELSE. VARS-VALS should be a list -of (VAR VAL) pairs. - -Note: binding is done according to `-let*'. VALS are evaluated -sequentially, and evaluation stops after the first nil VAL is -encountered." - (declare (debug ((&rest (sexp form)) form body)) - (indent 2)) - (->> vars-vals - (--mapcat (dash--match (car it) (cadr it))) - (--reduce-r-from - (let ((var (car it)) - (val (cadr it))) - `(let ((,var ,val)) - (if ,var ,acc ,@else))) - then))) - -(defmacro -if-let (var-val then &rest else) - "If VAL evaluates to non-nil, bind it to VAR and do THEN, -otherwise do ELSE. - -Note: binding is done according to `-let'. - -\(fn (VAR VAL) THEN &rest ELSE)" - (declare (debug ((sexp form) form body)) - (indent 2)) - `(-if-let* (,var-val) ,then ,@else)) - -(defmacro --if-let (val then &rest else) - "If VAL evaluates to non-nil, bind it to symbol `it' and do THEN, -otherwise do ELSE." - (declare (debug (form form body)) - (indent 2)) - `(-if-let (it ,val) ,then ,@else)) - -(defmacro -when-let* (vars-vals &rest body) - "If all VALS evaluate to true, bind them to their corresponding -VARS and execute body. VARS-VALS should be a list of (VAR VAL) -pairs. - -Note: binding is done according to `-let*'. VALS are evaluated -sequentially, and evaluation stops after the first nil VAL is -encountered." - (declare (debug ((&rest (sexp form)) body)) - (indent 1)) - `(-if-let* ,vars-vals (progn ,@body))) - -(defmacro -when-let (var-val &rest body) - "If VAL evaluates to non-nil, bind it to VAR and execute body. - -Note: binding is done according to `-let'. - -\(fn (VAR VAL) &rest BODY)" - (declare (debug ((sexp form) body)) - (indent 1)) - `(-if-let ,var-val (progn ,@body))) - -(defmacro --when-let (val &rest body) - "If VAL evaluates to non-nil, bind it to symbol `it' and -execute body." - (declare (debug (form body)) - (indent 1)) - `(--if-let ,val (progn ,@body))) - -(defvar -compare-fn nil - "Tests for equality use this function or `equal' if this is nil. -It should only be set using dynamic scope with a let, like: - - (let ((-compare-fn #\\='=)) (-union numbers1 numbers2 numbers3)") - -(defun -distinct (list) - "Return a new list with all duplicates removed. -The test for equality is done with `equal', -or with `-compare-fn' if that's non-nil. - -Alias: `-uniq'" - (let (result) - (--each list (unless (-contains? result it) (!cons it result))) - (nreverse result))) - -(defalias '-uniq '-distinct) - -(defun -union (list list2) - "Return a new list containing the elements of LIST and elements of LIST2 that are not in LIST. -The test for equality is done with `equal', -or with `-compare-fn' if that's non-nil." - ;; We fall back to iteration implementation if the comparison - ;; function isn't one of `eq', `eql' or `equal'. - (let* ((result (reverse list)) - ;; TODO: get rid of this dynamic variable, pass it as an - ;; argument instead. - (-compare-fn (if (bound-and-true-p -compare-fn) - -compare-fn - 'equal))) - (if (memq -compare-fn '(eq eql equal)) - (let ((ht (make-hash-table :test -compare-fn))) - (--each list (puthash it t ht)) - (--each list2 (unless (gethash it ht) (!cons it result)))) - (--each list2 (unless (-contains? result it) (!cons it result)))) - (nreverse result))) - -(defun -intersection (list list2) - "Return a new list containing only the elements that are members of both LIST and LIST2. -The test for equality is done with `equal', -or with `-compare-fn' if that's non-nil." - (--filter (-contains? list2 it) list)) - -(defun -difference (list list2) - "Return a new list with only the members of LIST that are not in LIST2. -The test for equality is done with `equal', -or with `-compare-fn' if that's non-nil." - (--filter (not (-contains? list2 it)) list)) - -(defun -powerset (list) - "Return the power set of LIST." - (if (null list) '(()) - (let ((last (-powerset (cdr list)))) - (append (mapcar (lambda (x) (cons (car list) x)) last) - last)))) - -(defun -permutations (list) - "Return the permutations of LIST." - (if (null list) '(()) - (apply #'append - (mapcar (lambda (x) - (mapcar (lambda (perm) (cons x perm)) - (-permutations (remove x list)))) - list)))) - -(defun -inits (list) - "Return all prefixes of LIST." - (nreverse (-map 'reverse (-tails (nreverse list))))) - -(defun -tails (list) - "Return all suffixes of LIST" - (-reductions-r-from 'cons nil list)) - -(defun -common-prefix (&rest lists) - "Return the longest common prefix of LISTS." - (declare (pure t) (side-effect-free t)) - (--reduce (--take-while (and acc (equal (pop acc) it)) it) - lists)) - -(defun -common-suffix (&rest lists) - "Return the longest common suffix of LISTS." - (nreverse (apply #'-common-prefix (mapcar #'reverse lists)))) - -(defun -contains? (list element) - "Return non-nil if LIST contains ELEMENT. - -The test for equality is done with `equal', or with `-compare-fn' -if that's non-nil. - -Alias: `-contains-p'" - (not - (null - (cond - ((null -compare-fn) (member element list)) - ((eq -compare-fn 'eq) (memq element list)) - ((eq -compare-fn 'eql) (memql element list)) - (t - (let ((lst list)) - (while (and lst - (not (funcall -compare-fn element (car lst)))) - (setq lst (cdr lst))) - lst)))))) - -(defalias '-contains-p '-contains?) - -(defun -same-items? (list list2) - "Return true if LIST and LIST2 has the same items. - -The order of the elements in the lists does not matter. - -Alias: `-same-items-p'" - (let ((length-a (length list)) - (length-b (length list2))) - (and - (= length-a length-b) - (= length-a (length (-intersection list list2)))))) - -(defalias '-same-items-p '-same-items?) - -(defun -is-prefix? (prefix list) - "Return non-nil if PREFIX is prefix of LIST. - -Alias: `-is-prefix-p'" - (declare (pure t) (side-effect-free t)) - (--each-while list (equal (car prefix) it) - (!cdr prefix)) - (not prefix)) - -(defun -is-suffix? (suffix list) - "Return non-nil if SUFFIX is suffix of LIST. - -Alias: `-is-suffix-p'" - (declare (pure t) (side-effect-free t)) - (-is-prefix? (reverse suffix) (reverse list))) - -(defun -is-infix? (infix list) - "Return non-nil if INFIX is infix of LIST. - -This operation runs in O(n^2) time - -Alias: `-is-infix-p'" - (declare (pure t) (side-effect-free t)) - (let (done) - (while (and (not done) list) - (setq done (-is-prefix? infix list)) - (!cdr list)) - done)) - -(defalias '-is-prefix-p '-is-prefix?) -(defalias '-is-suffix-p '-is-suffix?) -(defalias '-is-infix-p '-is-infix?) - -(defun -sort (comparator list) - "Sort LIST, stably, comparing elements using COMPARATOR. -Return the sorted list. LIST is NOT modified by side effects. -COMPARATOR is called with two elements of LIST, and should return non-nil -if the first element should sort before the second." - (sort (copy-sequence list) comparator)) - -(defmacro --sort (form list) - "Anaphoric form of `-sort'." - (declare (debug (form form))) - `(-sort (lambda (it other) ,form) ,list)) - -(defun -list (&rest args) - "Return a list with ARGS. - -If first item of ARGS is already a list, simply return ARGS. If -not, return a list with ARGS as elements." - (declare (pure t) (side-effect-free t)) - (let ((arg (car args))) - (if (listp arg) arg args))) - -(defun -repeat (n x) - "Return a list with X repeated N times. -Return nil if N is less than 1." - (declare (pure t) (side-effect-free t)) - (let (ret) - (--dotimes n (!cons x ret)) - ret)) - -(defun -sum (list) - "Return the sum of LIST." - (declare (pure t) (side-effect-free t)) - (apply '+ list)) - -(defun -running-sum (list) - "Return a list with running sums of items in LIST. - -LIST must be non-empty." - (declare (pure t) (side-effect-free t)) - (unless (consp list) - (error "LIST must be non-empty")) - (-reductions '+ list)) - -(defun -product (list) - "Return the product of LIST." - (declare (pure t) (side-effect-free t)) - (apply '* list)) - -(defun -running-product (list) - "Return a list with running products of items in LIST. - -LIST must be non-empty." - (declare (pure t) (side-effect-free t)) - (unless (consp list) - (error "LIST must be non-empty")) - (-reductions '* list)) - -(defun -max (list) - "Return the largest value from LIST of numbers or markers." - (declare (pure t) (side-effect-free t)) - (apply 'max list)) - -(defun -min (list) - "Return the smallest value from LIST of numbers or markers." - (declare (pure t) (side-effect-free t)) - (apply 'min list)) - -(defun -max-by (comparator list) - "Take a comparison function COMPARATOR and a LIST and return -the greatest element of the list by the comparison function. - -See also combinator `-on' which can transform the values before -comparing them." - (--reduce (if (funcall comparator it acc) it acc) list)) - -(defun -min-by (comparator list) - "Take a comparison function COMPARATOR and a LIST and return -the least element of the list by the comparison function. - -See also combinator `-on' which can transform the values before -comparing them." - (--reduce (if (funcall comparator it acc) acc it) list)) - -(defmacro --max-by (form list) - "Anaphoric version of `-max-by'. - -The items for the comparator form are exposed as \"it\" and \"other\"." - (declare (debug (form form))) - `(-max-by (lambda (it other) ,form) ,list)) - -(defmacro --min-by (form list) - "Anaphoric version of `-min-by'. - -The items for the comparator form are exposed as \"it\" and \"other\"." - (declare (debug (form form))) - `(-min-by (lambda (it other) ,form) ,list)) - -(defun -iterate (fun init n) - "Return a list of iterated applications of FUN to INIT. - -This means a list of form: - - (init (fun init) (fun (fun init)) ...) - -N is the length of the returned list." - (if (= n 0) nil - (let ((r (list init))) - (--dotimes (1- n) - (push (funcall fun (car r)) r)) - (nreverse r)))) - -(defun -fix (fn list) - "Compute the (least) fixpoint of FN with initial input LIST. - -FN is called at least once, results are compared with `equal'." - (let ((re (funcall fn list))) - (while (not (equal list re)) - (setq list re) - (setq re (funcall fn re))) - re)) - -(defmacro --fix (form list) - "Anaphoric form of `-fix'." - `(-fix (lambda (it) ,form) ,list)) - -(defun -unfold (fun seed) - "Build a list from SEED using FUN. - -This is \"dual\" operation to `-reduce-r': while -reduce-r -consumes a list to produce a single value, `-unfold' takes a -seed value and builds a (potentially infinite!) list. - -FUN should return `nil' to stop the generating process, or a -cons (A . B), where A will be prepended to the result and B is -the new seed." - (let ((last (funcall fun seed)) r) - (while last - (push (car last) r) - (setq last (funcall fun (cdr last)))) - (nreverse r))) - -(defmacro --unfold (form seed) - "Anaphoric version of `-unfold'." - (declare (debug (form form))) - `(-unfold (lambda (it) ,form) ,seed)) - -(defun -cons-pair? (con) - "Return non-nil if CON is true cons pair. -That is (A . B) where B is not a list. - -Alias: `-cons-pair-p'" - (declare (pure t) (side-effect-free t)) - (and (listp con) - (not (listp (cdr con))))) - -(defalias '-cons-pair-p '-cons-pair?) - -(defun -cons-to-list (con) - "Convert a cons pair to a list with `car' and `cdr' of the pair respectively." - (declare (pure t) (side-effect-free t)) - (list (car con) (cdr con))) - -(defun -value-to-list (val) - "Convert a value to a list. - -If the value is a cons pair, make a list with two elements, `car' -and `cdr' of the pair respectively. - -If the value is anything else, wrap it in a list." - (declare (pure t) (side-effect-free t)) - (cond - ((-cons-pair? val) (-cons-to-list val)) - (t (list val)))) - -(defun -tree-mapreduce-from (fn folder init-value tree) - "Apply FN to each element of TREE, and make a list of the results. -If elements of TREE are lists themselves, apply FN recursively to -elements of these nested lists. - -Then reduce the resulting lists using FOLDER and initial value -INIT-VALUE. See `-reduce-r-from'. - -This is the same as calling `-tree-reduce-from' after `-tree-map' -but is twice as fast as it only traverse the structure once." - (cond - ((not tree) nil) - ((-cons-pair? tree) (funcall fn tree)) - ((listp tree) - (-reduce-r-from folder init-value (mapcar (lambda (x) (-tree-mapreduce-from fn folder init-value x)) tree))) - (t (funcall fn tree)))) - -(defmacro --tree-mapreduce-from (form folder init-value tree) - "Anaphoric form of `-tree-mapreduce-from'." - (declare (debug (form form form form))) - `(-tree-mapreduce-from (lambda (it) ,form) (lambda (it acc) ,folder) ,init-value ,tree)) - -(defun -tree-mapreduce (fn folder tree) - "Apply FN to each element of TREE, and make a list of the results. -If elements of TREE are lists themselves, apply FN recursively to -elements of these nested lists. - -Then reduce the resulting lists using FOLDER and initial value -INIT-VALUE. See `-reduce-r-from'. - -This is the same as calling `-tree-reduce' after `-tree-map' -but is twice as fast as it only traverse the structure once." - (cond - ((not tree) nil) - ((-cons-pair? tree) (funcall fn tree)) - ((listp tree) - (-reduce-r folder (mapcar (lambda (x) (-tree-mapreduce fn folder x)) tree))) - (t (funcall fn tree)))) - -(defmacro --tree-mapreduce (form folder tree) - "Anaphoric form of `-tree-mapreduce'." - (declare (debug (form form form))) - `(-tree-mapreduce (lambda (it) ,form) (lambda (it acc) ,folder) ,tree)) - -(defun -tree-map (fn tree) - "Apply FN to each element of TREE while preserving the tree structure." - (cond - ((not tree) nil) - ((-cons-pair? tree) (funcall fn tree)) - ((listp tree) - (mapcar (lambda (x) (-tree-map fn x)) tree)) - (t (funcall fn tree)))) - -(defmacro --tree-map (form tree) - "Anaphoric form of `-tree-map'." - (declare (debug (form form))) - `(-tree-map (lambda (it) ,form) ,tree)) - -(defun -tree-reduce-from (fn init-value tree) - "Use FN to reduce elements of list TREE. -If elements of TREE are lists themselves, apply the reduction recursively. - -FN is first applied to INIT-VALUE and first element of the list, -then on this result and second element from the list etc. - -The initial value is ignored on cons pairs as they always contain -two elements." - (cond - ((not tree) nil) - ((-cons-pair? tree) tree) - ((listp tree) - (-reduce-r-from fn init-value (mapcar (lambda (x) (-tree-reduce-from fn init-value x)) tree))) - (t tree))) - -(defmacro --tree-reduce-from (form init-value tree) - "Anaphoric form of `-tree-reduce-from'." - (declare (debug (form form form))) - `(-tree-reduce-from (lambda (it acc) ,form) ,init-value ,tree)) - -(defun -tree-reduce (fn tree) - "Use FN to reduce elements of list TREE. -If elements of TREE are lists themselves, apply the reduction recursively. - -FN is first applied to first element of the list and second -element, then on this result and third element from the list etc. - -See `-reduce-r' for how exactly are lists of zero or one element handled." - (cond - ((not tree) nil) - ((-cons-pair? tree) tree) - ((listp tree) - (-reduce-r fn (mapcar (lambda (x) (-tree-reduce fn x)) tree))) - (t tree))) - -(defmacro --tree-reduce (form tree) - "Anaphoric form of `-tree-reduce'." - (declare (debug (form form))) - `(-tree-reduce (lambda (it acc) ,form) ,tree)) - -(defun -tree-map-nodes (pred fun tree) - "Call FUN on each node of TREE that satisfies PRED. - -If PRED returns nil, continue descending down this node. If PRED -returns non-nil, apply FUN to this node and do not descend -further." - (if (funcall pred tree) - (funcall fun tree) - (if (and (listp tree) - (not (-cons-pair? tree))) - (-map (lambda (x) (-tree-map-nodes pred fun x)) tree) - tree))) - -(defmacro --tree-map-nodes (pred form tree) - "Anaphoric form of `-tree-map-nodes'." - `(-tree-map-nodes (lambda (it) ,pred) (lambda (it) ,form) ,tree)) - -(defun -tree-seq (branch children tree) - "Return a sequence of the nodes in TREE, in depth-first search order. - -BRANCH is a predicate of one argument that returns non-nil if the -passed argument is a branch, that is, a node that can have children. - -CHILDREN is a function of one argument that returns the children -of the passed branch node. - -Non-branch nodes are simply copied." - (cons tree - (when (funcall branch tree) - (-mapcat (lambda (x) (-tree-seq branch children x)) - (funcall children tree))))) - -(defmacro --tree-seq (branch children tree) - "Anaphoric form of `-tree-seq'." - `(-tree-seq (lambda (it) ,branch) (lambda (it) ,children) ,tree)) - -(defun -clone (list) - "Create a deep copy of LIST. -The new list has the same elements and structure but all cons are -replaced with new ones. This is useful when you need to clone a -structure such as plist or alist." - (declare (pure t) (side-effect-free t)) - (-tree-map 'identity list)) - -(defun dash-enable-font-lock () - "Add syntax highlighting to dash functions, macros and magic values." - (eval-after-load 'lisp-mode - '(progn - (let ((new-keywords '( - "!cons" - "!cdr" - "-each" - "--each" - "-each-indexed" - "--each-indexed" - "-each-while" - "--each-while" - "-doto" - "-dotimes" - "--dotimes" - "-map" - "--map" - "-reduce-from" - "--reduce-from" - "-reduce" - "--reduce" - "-reduce-r-from" - "--reduce-r-from" - "-reduce-r" - "--reduce-r" - "-reductions-from" - "-reductions-r-from" - "-reductions" - "-reductions-r" - "-filter" - "--filter" - "-select" - "--select" - "-remove" - "--remove" - "-reject" - "--reject" - "-remove-first" - "--remove-first" - "-reject-first" - "--reject-first" - "-remove-last" - "--remove-last" - "-reject-last" - "--reject-last" - "-remove-item" - "-non-nil" - "-keep" - "--keep" - "-map-indexed" - "--map-indexed" - "-splice" - "--splice" - "-splice-list" - "--splice-list" - "-map-when" - "--map-when" - "-replace-where" - "--replace-where" - "-map-first" - "--map-first" - "-map-last" - "--map-last" - "-replace" - "-replace-first" - "-replace-last" - "-flatten" - "-flatten-n" - "-concat" - "-mapcat" - "--mapcat" - "-copy" - "-cons*" - "-snoc" - "-first" - "--first" - "-find" - "--find" - "-some" - "--some" - "-any" - "--any" - "-last" - "--last" - "-first-item" - "-second-item" - "-third-item" - "-fourth-item" - "-fifth-item" - "-last-item" - "-butlast" - "-count" - "--count" - "-any?" - "--any?" - "-some?" - "--some?" - "-any-p" - "--any-p" - "-some-p" - "--some-p" - "-some->" - "-some->>" - "-some-->" - "-all?" - "-all-p" - "--all?" - "--all-p" - "-every?" - "--every?" - "-all-p" - "--all-p" - "-every-p" - "--every-p" - "-none?" - "--none?" - "-none-p" - "--none-p" - "-only-some?" - "--only-some?" - "-only-some-p" - "--only-some-p" - "-slice" - "-take" - "-drop" - "-drop-last" - "-take-last" - "-take-while" - "--take-while" - "-drop-while" - "--drop-while" - "-split-at" - "-rotate" - "-insert-at" - "-replace-at" - "-update-at" - "--update-at" - "-remove-at" - "-remove-at-indices" - "-split-with" - "--split-with" - "-split-on" - "-split-when" - "--split-when" - "-separate" - "--separate" - "-partition-all-in-steps" - "-partition-in-steps" - "-partition-all" - "-partition" - "-partition-after-item" - "-partition-after-pred" - "-partition-before-item" - "-partition-before-pred" - "-partition-by" - "--partition-by" - "-partition-by-header" - "--partition-by-header" - "-group-by" - "--group-by" - "-interpose" - "-interleave" - "-unzip" - "-zip-with" - "--zip-with" - "-zip" - "-zip-fill" - "-zip-pair" - "-cycle" - "-pad" - "-annotate" - "--annotate" - "-table" - "-table-flat" - "-partial" - "-elem-index" - "-elem-indices" - "-find-indices" - "--find-indices" - "-find-index" - "--find-index" - "-find-last-index" - "--find-last-index" - "-select-by-indices" - "-select-columns" - "-select-column" - "-grade-up" - "-grade-down" - "->" - "->>" - "-->" - "-as->" - "-when-let" - "-when-let*" - "--when-let" - "-if-let" - "-if-let*" - "--if-let" - "-let*" - "-let" - "-lambda" - "-distinct" - "-uniq" - "-union" - "-intersection" - "-difference" - "-powerset" - "-permutations" - "-inits" - "-tails" - "-common-prefix" - "-common-suffix" - "-contains?" - "-contains-p" - "-same-items?" - "-same-items-p" - "-is-prefix-p" - "-is-prefix?" - "-is-suffix-p" - "-is-suffix?" - "-is-infix-p" - "-is-infix?" - "-sort" - "--sort" - "-list" - "-repeat" - "-sum" - "-running-sum" - "-product" - "-running-product" - "-max" - "-min" - "-max-by" - "--max-by" - "-min-by" - "--min-by" - "-iterate" - "--iterate" - "-fix" - "--fix" - "-unfold" - "--unfold" - "-cons-pair?" - "-cons-pair-p" - "-cons-to-list" - "-value-to-list" - "-tree-mapreduce-from" - "--tree-mapreduce-from" - "-tree-mapreduce" - "--tree-mapreduce" - "-tree-map" - "--tree-map" - "-tree-reduce-from" - "--tree-reduce-from" - "-tree-reduce" - "--tree-reduce" - "-tree-seq" - "--tree-seq" - "-tree-map-nodes" - "--tree-map-nodes" - "-clone" - "-rpartial" - "-juxt" - "-applify" - "-on" - "-flip" - "-const" - "-cut" - "-orfn" - "-andfn" - "-iteratefn" - "-fixfn" - "-prodfn" - )) - (special-variables '( - "it" - "it-index" - "acc" - "other" - ))) - (font-lock-add-keywords 'emacs-lisp-mode `((,(concat "\\_<" (regexp-opt special-variables 'paren) "\\_>") - 1 font-lock-variable-name-face)) 'append) - (font-lock-add-keywords 'emacs-lisp-mode `((,(concat "(\\s-*" (regexp-opt new-keywords 'paren) "\\_>") - 1 font-lock-keyword-face)) 'append)) - (--each (buffer-list) - (with-current-buffer it - (when (and (eq major-mode 'emacs-lisp-mode) - (boundp 'font-lock-mode) - font-lock-mode) - (font-lock-refresh-defaults))))))) - -(provide 'dash) -;;; dash.el ends here diff --git a/project1/.emacs.d/packages/dash-20190424.1804/dash.elc b/project1/.emacs.d/packages/dash-20190424.1804/dash.elc deleted file mode 100644 index 4038bccc9c728a1e4d46d942a0aa79c0cea93550..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94540 zcmeFa`+FPLc`hoF674Wg+NAgH?zSVUwkStXF}RXW>WHE!TTg7smE<(3<x@c<D4`|+ z1|V%Iznp*lyzl#cYt0&908o~lbnoZ1v51*jvu0hs`)&PV|I@v{y>#i)#xH*Hi)?Rn zaymHfAL?Q-%=S-u2b1iZ{&+GN4YNk;R_j(fztzy=ZwF^Dv)=J>Haa~UoDBZZJ42hv ztqnbV@^UcAj?h(hKIu=g!`H*!$>1P6934!~#)ILD$xS>RPtLO5;bH$Ui=WDOZZ&ph z`Zye+kKyPnI~WbmdT4xpc2wKOondYF@!tLW*}==+xOZ@dao*JDd&9$QGRh8m!|ZuK zJ0A5)AMyE2vVL!TJm`<JvzKVtXxewN4sZ2;9KhTD-^Rwq*1`GYY;;mP>>nKW#{Jrh z@#y?CyMEZ4yv&A!<7{(J&j)|#XZGl5G|u?+R{wZ2`_P*o4<@JCho|HI(co3K$;Y+L z8yj1P{iELTpf|DpYPJ5b_x!kDJHqlFj}E@hu6^0gTiNE*MxH-y)SK^IdfKelGhEj3 zBVS#8ibwVCX7;6eOx~{P^-2E><38%0AD?}dwb9S;>2T|4m_7d8XLlZcn*C<?(=YaK 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 diff --git a/project1/.emacs.d/packages/epl-20180205.2049/epl-autoloads.el b/project1/.emacs.d/packages/epl-20180205.2049/epl-autoloads.el deleted file mode 100644 index 8303251..0000000 --- a/project1/.emacs.d/packages/epl-20180205.2049/epl-autoloads.el +++ /dev/null @@ -1,15 +0,0 @@ -;;; epl-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil nil ("epl.el") (23815 54533 115475 0)) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; epl-autoloads.el ends here diff --git a/project1/.emacs.d/packages/epl-20180205.2049/epl-pkg.el b/project1/.emacs.d/packages/epl-20180205.2049/epl-pkg.el deleted file mode 100644 index 19a6ace..0000000 --- a/project1/.emacs.d/packages/epl-20180205.2049/epl-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "epl" "20180205.2049" "Emacs Package Library" '((cl-lib "0.3")) :commit "78ab7a85c08222cd15582a298a364774e3282ce6" :keywords '("convenience") :authors '(("Sebastian Wiesner" . "swiesner@lunaryorn.com")) :maintainer '("Johan Andersson" . "johan.rejeep@gmail.com") :url "http://github.com/cask/epl") diff --git a/project1/.emacs.d/packages/epl-20180205.2049/epl-pkg.elc b/project1/.emacs.d/packages/epl-20180205.2049/epl-pkg.elc deleted file mode 100644 index 608e3efff3f4f25a72bde0cc5d59d0f4b42d8495..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722 zcmbtSv2NQi5cRAd=z8E%8;E6@mSfpo5*Qg$WC)M~oloT1VoZ?&NyTu#z9%^-P;?Bp z<9qk+@g4V1FNbfF$t2tF_i*rSXDsQlFb<wtR1rQXMB^REGB5M>GM6KKF{uHx7JQdX zYkp&5PRz3r{MncYN0x#<QUrZ<*ct`etC)gur+CL`hzU?@((rfGa+}NTe;V4ehVu!O zcL|x?r{lch8#jM^J3K#wYA~Qm?DK9Mk4{7MpwK~0U_Jgb<nuid2!k~gAT>;stJ_@8 z;Y(*Q@YR!L*;LcfIGT5;&Uhja)L8*S7R#!T#X6Tox#jw{q1R8+i>U*KtAOv*sj_ox zY7j-f60;fXly6&;Kx`_kH(0GzQAsJ4Uar@bM7gbSbzg2aC9Py772ONio#}e<K}VJo z9Q_A5Lr#%kHSAO4!+=c18`T(-;S7HnijIPS97Md_iU->}_T+=h*}`b0<sA-t<mg%X zhacj9beh)}y&Id~hr2w`J5l#=V!pjK!>$h&M3YjtTP#le1^aqH77F8eF+?=W{s34> B*3<w1 diff --git a/project1/.emacs.d/packages/epl-20180205.2049/epl.el b/project1/.emacs.d/packages/epl-20180205.2049/epl.el deleted file mode 100644 index 5bbd76a..0000000 --- a/project1/.emacs.d/packages/epl-20180205.2049/epl.el +++ /dev/null @@ -1,711 +0,0 @@ -;;; epl.el --- Emacs Package Library -*- lexical-binding: t; -*- - -;; Copyright (C) 2013-2015 Sebastian Wiesner -;; Copyright (C) 1985-1986, 1992, 1994-1995, 1999-2015 Free Software - -;; Author: Sebastian Wiesner <swiesner@lunaryorn.com> -;; Maintainer: Johan Andersson <johan.rejeep@gmail.com> -;; Sebastian Wiesner <swiesner@lunaryorn.com> -;; Version: 0.10-cvs -;; Package-Version: 20180205.2049 -;; Package-Requires: ((cl-lib "0.3")) -;; Keywords: convenience -;; URL: http://github.com/cask/epl - -;; 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 <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; A package management library for Emacs, based on package.el. - -;; The purpose of this library is to wrap all the quirks and hassle of -;; package.el into a sane API. - -;; The following functions comprise the public interface of this library: - -;;; Package directory selection - -;; `epl-package-dir' gets the directory of packages. - -;; `epl-default-package-dir' gets the default package directory. - -;; `epl-change-package-dir' changes the directory of packages. - -;;; Package system management - -;; `epl-initialize' initializes the package system and activates all -;; packages. - -;; `epl-reset' resets the package system. - -;; `epl-refresh' refreshes all package archives. - -;; `epl-add-archive' adds a new package archive. - -;;; Package objects - -;; Struct `epl-requirement' describes a requirement of a package with `name' and -;; `version' slots. - -;; `epl-requirement-version-string' gets a requirement version as string. - -;; Struct `epl-package' describes an installed or installable package with a -;; `name' and some internal `description'. - -;; `epl-package-version' gets the version of a package. - -;; `epl-package-version-string' gets the version of a package as string. - -;; `epl-package-summary' gets the summary of a package. - -;; `epl-package-requirements' gets the requirements of a package. - -;; `epl-package-directory' gets the installation directory of a package. - -;; `epl-package-from-buffer' creates a package object for the package contained -;; in the current buffer. - -;; `epl-package-from-file' creates a package object for a package file, either -;; plain lisp or tarball. - -;; `epl-package-from-descriptor-file' creates a package object for a package -;; description (i.e. *-pkg.el) file. - -;;; Package database access - -;; `epl-package-installed-p' determines whether a package is installed, either -;; built-in or explicitly installed. - -;; `epl-package-outdated-p' determines whether a package is outdated, that is, -;; whether a package with a higher version number is available. - -;; `epl-built-in-packages', `epl-installed-packages', `epl-outdated-packages' -;; and `epl-available-packages' get all packages built-in, installed, outdated, -;; or available for installation respectively. - -;; `epl-find-built-in-package', `epl-find-installed-packages' and -;; `epl-find-available-packages' find built-in, installed and available packages -;; by name. - -;; `epl-find-upgrades' finds all upgradable packages. - -;; `epl-built-in-p' return true if package is built-in to Emacs. - -;;; Package operations - -;; `epl-install-file' installs a package file. - -;; `epl-package-install' installs a package. - -;; `epl-package-delete' deletes a package. - -;; `epl-upgrade' upgrades packages. - -;;; Code: - -(require 'cl-lib) -(require 'package) - - -(unless (fboundp #'define-error) - ;; `define-error' for 24.3 and earlier, copied from subr.el - (defun define-error (name message &optional parent) - "Define NAME as a new error signal. -MESSAGE is a string that will be output to the echo area if such an error -is signaled without being caught by a `condition-case'. -PARENT is either a signal or a list of signals from which it inherits. -Defaults to `error'." - (unless parent (setq parent 'error)) - (let ((conditions - (if (consp parent) - (apply #'append - (mapcar (lambda (parent) - (cons parent - (or (get parent 'error-conditions) - (error "Unknown signal `%s'" parent)))) - parent)) - (cons parent (get parent 'error-conditions))))) - (put name 'error-conditions - (delete-dups (copy-sequence (cons name conditions)))) - (when message (put name 'error-message message))))) - -(defsubst epl--package-desc-p (package) - "Whether PACKAGE is a `package-desc' object. - -Like `package-desc-p', but return nil, if `package-desc-p' is not -defined as function." - (and (fboundp 'package-desc-p) (package-desc-p package))) - - -;;; EPL errors -(define-error 'epl-error "EPL error") - -(define-error 'epl-invalid-package "Invalid EPL package" 'epl-error) - -(define-error 'epl-invalid-package-file "Invalid EPL package file" - 'epl-invalid-package) - - -;;; Package directory -(defun epl-package-dir () - "Get the directory of packages." - package-user-dir) - -(defun epl-default-package-dir () - "Get the default directory of packages." - (eval (car (get 'package-user-dir 'standard-value)))) - -(defun epl-change-package-dir (directory) - "Change the directory of packages to DIRECTORY." - (setq package-user-dir directory) - (epl-initialize)) - - -;;; Package system management -(defvar epl--load-path-before-initialize nil - "Remember the load path for `epl-reset'.") - -(defun epl-initialize (&optional no-activate) - "Load Emacs Lisp packages and activate them. - -With NO-ACTIVATE non-nil, do not activate packages." - (setq epl--load-path-before-initialize load-path) - (package-initialize no-activate)) - -(defalias 'epl-refresh 'package-refresh-contents) - -(defun epl-add-archive (name url) - "Add a package archive with NAME and URL." - (add-to-list 'package-archives (cons name url))) - -(defun epl-reset () - "Reset the package system. - -Clear the list of installed and available packages, the list of -package archives and reset the package directory." - (setq package-alist nil - package-archives nil - package-archive-contents nil - load-path epl--load-path-before-initialize) - (when (boundp 'package-obsolete-alist) ; Legacy package.el - (setq package-obsolete-alist nil)) - (epl-change-package-dir (epl-default-package-dir))) - - -;;; Package structures -(cl-defstruct (epl-requirement - (:constructor epl-requirement-create)) - "Structure describing a requirement. - -Slots: - -`name' The name of the required package, as symbol. - -`version' The version of the required package, as version list." - name - version) - -(defun epl-requirement-version-string (requirement) - "The version of a REQUIREMENT, as string." - (package-version-join (epl-requirement-version requirement))) - -(cl-defstruct (epl-package (:constructor epl-package-create)) - "Structure representing a package. - -Slots: - -`name' The package name, as symbol. - -`description' The package description. - -The format package description varies between package.el -variants. For `package-desc' variants, it is simply the -corresponding `package-desc' object. For legacy variants, it is -a vector `[VERSION REQS DOCSTRING]'. - -Do not access `description' directly, but instead use the -`epl-package' accessors." - name - description) - -(defmacro epl-package-as-description (var &rest body) - "Cast VAR to a package description in BODY. - -VAR is a symbol, bound to an `epl-package' object. This macro -casts this object to the `description' object, and binds the -description to VAR in BODY." - (declare (indent 1)) - (unless (symbolp var) - (signal 'wrong-type-argument (list #'symbolp var))) - `(if (epl-package-p ,var) - (let ((,var (epl-package-description ,var))) - ,@body) - (signal 'wrong-type-argument (list #'epl-package-p ,var)))) - -(defsubst epl-package--package-desc-p (package) - "Whether the description of PACKAGE is a `package-desc'." - (epl--package-desc-p (epl-package-description package))) - -(defun epl-package-version (package) - "Get the version of PACKAGE, as version list." - (epl-package-as-description package - (cond - ((fboundp 'package-desc-version) (package-desc-version package)) - ;; Legacy - ((fboundp 'package-desc-vers) - (let ((version (package-desc-vers package))) - (if (listp version) version (version-to-list version)))) - (:else (error "Cannot get version from %S" package))))) - -(defun epl-package-version-string (package) - "Get the version from a PACKAGE, as string." - (package-version-join (epl-package-version package))) - -(defun epl-package-summary (package) - "Get the summary of PACKAGE, as string." - (epl-package-as-description package - (cond - ((fboundp 'package-desc-summary) (package-desc-summary package)) - ((fboundp 'package-desc-doc) (package-desc-doc package)) ; Legacy - (:else (error "Cannot get summary from %S" package))))) - -(defsubst epl-requirement--from-req (req) - "Create a `epl-requirement' from a `package-desc' REQ." - (let ((version (cadr req))) - (epl-requirement-create :name (car req) - :version (if (listp version) version - (version-to-list version))))) - -(defun epl-package-requirements (package) - "Get the requirements of PACKAGE. - -The requirements are a list of `epl-requirement' objects." - (epl-package-as-description package - (mapcar #'epl-requirement--from-req (package-desc-reqs package)))) - -(defun epl-package-directory (package) - "Get the directory PACKAGE is installed to. - -Return the absolute path of the installation directory of -PACKAGE, or nil, if PACKAGE is not installed." - (cond - ((fboundp 'package-desc-dir) - (package-desc-dir (epl-package-description package))) - ((fboundp 'package--dir) - (package--dir (symbol-name (epl-package-name package)) - (epl-package-version-string package))) - (:else (error "Cannot get package directory from %S" package)))) - -(defun epl-package-->= (pkg1 pkg2) - "Determine whether PKG1 is before PKG2 by version." - (not (version-list-< (epl-package-version pkg1) - (epl-package-version pkg2)))) - -(defun epl-package--from-package-desc (package-desc) - "Create an `epl-package' from a PACKAGE-DESC. - -PACKAGE-DESC is a `package-desc' object, from recent package.el -variants." - (if (and (fboundp 'package-desc-name) - (epl--package-desc-p package-desc)) - (epl-package-create :name (package-desc-name package-desc) - :description package-desc) - (signal 'wrong-type-argument (list 'epl--package-desc-p package-desc)))) - -(defun epl-package--parse-info (info) - "Parse a package.el INFO." - (if (epl--package-desc-p info) - (epl-package--from-package-desc info) - ;; For legacy package.el, info is a vector [NAME REQUIRES DESCRIPTION - ;; VERSION COMMENTARY]. We need to re-shape this vector into the - ;; `package-alist' format [VERSION REQUIRES DESCRIPTION] to attach it to the - ;; new `epl-package'. - (let ((name (intern (aref info 0))) - (info (vector (aref info 3) (aref info 1) (aref info 2)))) - (epl-package-create :name name :description info)))) - -(defun epl-package-from-buffer (&optional buffer) - "Create an `epl-package' object from BUFFER. - -BUFFER defaults to the current buffer. - -Signal `epl-invalid-package' if the buffer does not contain a -valid package file." - (let ((info (with-current-buffer (or buffer (current-buffer)) - (condition-case err - (package-buffer-info) - (error (signal 'epl-invalid-package (cdr err))))))) - (epl-package--parse-info info))) - -(defun epl-package-from-lisp-file (file-name) - "Parse the package headers the file at FILE-NAME. - -Return an `epl-package' object with the header metadata." - (with-temp-buffer - (insert-file-contents file-name) - (condition-case err - (epl-package-from-buffer (current-buffer)) - ;; Attach file names to invalid package errors - (epl-invalid-package - (signal 'epl-invalid-package-file (cons file-name (cdr err)))) - ;; Forward other errors - (error (signal (car err) (cdr err)))))) - -(defun epl-package-from-tar-file (file-name) - "Parse the package tarball at FILE-NAME. - -Return a `epl-package' object with the meta data of the tarball -package in FILE-NAME." - (condition-case nil - ;; In legacy package.el, `package-tar-file-info' takes the name of the tar - ;; file to parse as argument. In modern package.el, it has no arguments - ;; and works on the current buffer. Hence, we just try to call the legacy - ;; version, and if that fails because of a mismatch between formal and - ;; actual arguments, we use the modern approach. To avoid spurious - ;; signature warnings by the byte compiler, we suppress warnings when - ;; calling the function. - (epl-package--parse-info (with-no-warnings - (package-tar-file-info file-name))) - (wrong-number-of-arguments - (with-temp-buffer - (insert-file-contents-literally file-name) - ;; Switch to `tar-mode' to enable extraction of the file. Modern - ;; `package-tar-file-info' relies on `tar-mode', and signals an error if - ;; called in a buffer with a different mode. - (tar-mode) - (epl-package--parse-info (with-no-warnings - (package-tar-file-info))))))) - -(defun epl-package-from-file (file-name) - "Parse the package at FILE-NAME. - -Return an `epl-package' object with the meta data of the package -at FILE-NAME." - (if (string-match-p (rx ".tar" string-end) file-name) - (epl-package-from-tar-file file-name) - (epl-package-from-lisp-file file-name))) - -(defun epl-package--parse-descriptor-requirement (requirement) - "Parse a REQUIREMENT in a package descriptor." - ;; This function is only called on legacy package.el. On package-desc - ;; package.el, we just let package.el do the work. - (cl-destructuring-bind (name version-string) requirement - (list name (version-to-list version-string)))) - -(defun epl-package-from-descriptor-file (descriptor-file) - "Load a `epl-package' from a package DESCRIPTOR-FILE. - -A package descriptor is a file defining a new package. Its name -typically ends with -pkg.el." - (with-temp-buffer - (insert-file-contents descriptor-file) - (goto-char (point-min)) - (let ((sexp (read (current-buffer)))) - (unless (eq (car sexp) 'define-package) - (error "%S is no valid package descriptor" descriptor-file)) - (if (and (fboundp 'package-desc-from-define) - (fboundp 'package-desc-name)) - ;; In Emacs snapshot, we can conveniently call a function to parse the - ;; descriptor - (let ((desc (apply #'package-desc-from-define (cdr sexp)))) - (epl-package-create :name (package-desc-name desc) - :description desc)) - ;; In legacy package.el, we must manually deconstruct the descriptor, - ;; because the load function has eval's the descriptor and has a lot of - ;; global side-effects. - (cl-destructuring-bind - (name version-string summary requirements) (cdr sexp) - (epl-package-create - :name (intern name) - :description - (vector (version-to-list version-string) - (mapcar #'epl-package--parse-descriptor-requirement - ;; Strip the leading `quote' from the package list - (cadr requirements)) - summary))))))) - - -;;; Package database access -(defun epl-package-installed-p (package &optional min-version) - "Determine whether a PACKAGE, of MIN-VERSION or newer, is installed. - -PACKAGE is either a package name as symbol, or a package object. -When a explicit MIN-VERSION is provided it overwrites the version of the PACKAGE object." - (let ((name (if (epl-package-p package) - (epl-package-name package) - package)) - (min-version (or min-version (and (epl-package-p package) - (epl-package-version package))))) - (package-installed-p name min-version))) - -(defun epl--parse-built-in-entry (entry) - "Parse an ENTRY from the list of built-in packages. - -Return the corresponding `epl-package' object." - (if (fboundp 'package--from-builtin) - ;; In package-desc package.el, convert the built-in package to a - ;; `package-desc' and convert that to an `epl-package' - (epl-package--from-package-desc (package--from-builtin entry)) - (epl-package-create :name (car entry) :description (cdr entry)))) - -(defun epl-built-in-packages () - "Get all built-in packages. - -Return a list of `epl-package' objects." - ;; This looks mighty strange, but it's the only way to force package.el to - ;; build the list of built-in packages. Without this, `package--builtins' - ;; might be empty. - (package-built-in-p 'foo) - (mapcar #'epl--parse-built-in-entry package--builtins)) - -(defun epl-find-built-in-package (name) - "Find a built-in package with NAME. - -NAME is a package name, as symbol. - -Return the built-in package as `epl-package' object, or nil if -there is no built-in package with NAME." - (when (package-built-in-p name) - ;; We must call `package-built-in-p' *before* inspecting - ;; `package--builtins', because otherwise `package--builtins' might be - ;; empty. - (epl--parse-built-in-entry (assq name package--builtins)))) - -(defun epl-package-outdated-p (package) - "Determine whether a PACKAGE is outdated. - -A package is outdated, if there is an available package with a -higher version. - -PACKAGE is either a package name as symbol, or a package object. -In the former case, test the installed or built-in package with -the highest version number, in the later case, test the package -object itself. - -Return t, if the package is outdated, or nil otherwise." - (let* ((package (if (epl-package-p package) - package - (or (car (epl-find-installed-packages package)) - (epl-find-built-in-package package)))) - (available (car (epl-find-available-packages - (epl-package-name package))))) - (and package available (version-list-< (epl-package-version package) - (epl-package-version available))))) - -(defun epl--parse-package-list-entry (entry) - "Parse a list of packages from ENTRY. - -ENTRY is a single entry in a package list, e.g. `package-alist', -`package-archive-contents', etc. Typically it is a cons cell, -but the exact format varies between package.el versions. This -function tries to parse all known variants. - -Return a list of `epl-package' objects parsed from ENTRY." - (let ((descriptions (cdr entry))) - (cond - ((listp descriptions) - (sort (mapcar #'epl-package--from-package-desc descriptions) - #'epl-package-->=)) - ;; Legacy package.el has just a single package in an entry, which is a - ;; standard description vector - ((vectorp descriptions) - (list (epl-package-create :name (car entry) - :description descriptions))) - (:else (error "Cannot parse entry %S" entry))))) - -(defun epl-installed-packages () - "Get all installed packages. - -Return a list of package objects." - (apply #'append (mapcar #'epl--parse-package-list-entry package-alist))) - -(defsubst epl--filter-outdated-packages (packages) - "Filter outdated packages from PACKAGES." - (let (res) - (dolist (package packages) - (when (epl-package-outdated-p package) - (push package res))) - (nreverse res))) - -(defun epl-outdated-packages () - "Get all outdated packages, as in `epl-package-outdated-p'. - -Return a list of package objects." - (epl--filter-outdated-packages (epl-installed-packages))) - -(defsubst epl--find-package-in-list (name list) - "Find a package by NAME in a package LIST. - -Return a list of corresponding `epl-package' objects." - (let ((entry (assq name list))) - (when entry - (epl--parse-package-list-entry entry)))) - -(defun epl-find-installed-package (name) - "Find the latest installed package by NAME. - -NAME is a package name, as symbol. - -Return the installed package with the highest version number as -`epl-package' object, or nil, if no package with NAME is -installed." - (car (epl-find-installed-packages name))) -(make-obsolete 'epl-find-installed-package 'epl-find-installed-packages "0.7") - -(defun epl-find-installed-packages (name) - "Find all installed packages by NAME. - -NAME is a package name, as symbol. - -Return a list of all installed packages with NAME, sorted by -version number in descending order. Return nil, if there are no -packages with NAME." - (epl--find-package-in-list name package-alist)) - -(defun epl-available-packages () - "Get all packages available for installation. - -Return a list of package objects." - (apply #'append (mapcar #'epl--parse-package-list-entry - package-archive-contents))) - -(defun epl-find-available-packages (name) - "Find available packages for NAME. - -NAME is a package name, as symbol. - -Return a list of available packages for NAME, sorted by version -number in descending order. Return nil, if there are no packages -for NAME." - (epl--find-package-in-list name package-archive-contents)) - -(cl-defstruct (epl-upgrade - (:constructor epl-upgrade-create)) - "Structure describing an upgradable package. -Slots: - -`installed' The installed package - -`available' The package available for installation." - installed - available) - -(defun epl-find-upgrades (&optional packages) - "Find all upgradable PACKAGES. - -PACKAGES is a list of package objects to upgrade, defaulting to -all installed packages. - -Return a list of `epl-upgrade' objects describing all upgradable -packages." - (let ((packages (or packages (epl-installed-packages))) - upgrades) - (dolist (pkg packages) - (let* ((version (epl-package-version pkg)) - (name (epl-package-name pkg)) - ;; Find the latest available package for NAME - (available-pkg (car (epl-find-available-packages name))) - (available-version (when available-pkg - (epl-package-version available-pkg)))) - (when (and available-version (version-list-< version available-version)) - (push (epl-upgrade-create :installed pkg - :available available-pkg) - upgrades)))) - (nreverse upgrades))) - -(defalias 'epl-built-in-p 'package-built-in-p) - - -;;; Package operations - -(defun epl-install-file (file) - "Install a package from FILE, like `package-install-file'." - (interactive (advice-eval-interactive-spec - (cadr (interactive-form #'package-install-file)))) - (apply #'package-install-file (list file)) - (let ((package (epl-package-from-file file))) - (unless (epl-package--package-desc-p package) - (epl--kill-autoload-buffer package)))) - -(defun epl--kill-autoload-buffer (package) - "Kill the buffer associated with autoloads for PACKAGE." - (let* ((auto-name (format "%s-autoloads.el" (epl-package-name package))) - (generated-autoload-file (expand-file-name auto-name (epl-package-directory package))) - (buf (find-buffer-visiting generated-autoload-file))) - (when buf (kill-buffer buf)))) - -(defun epl-package-install (package &optional force) - "Install a PACKAGE. - -PACKAGE is a `epl-package' object. If FORCE is given and -non-nil, install PACKAGE, even if it is already installed." - (when (or force (not (epl-package-installed-p package))) - (if (epl-package--package-desc-p package) - (package-install (epl-package-description package)) - ;; The legacy API installs by name. We have no control over versioning, - ;; etc. - (package-install (epl-package-name package)) - (epl--kill-autoload-buffer package)))) - -(defun epl-package-delete (package) - "Delete a PACKAGE. - -PACKAGE is a `epl-package' object to delete." - ;; package-delete allows for packages being trashed instead of fully deleted. - ;; Let's prevent his silly behavior - (let ((delete-by-moving-to-trash nil)) - ;; The byte compiler will warn us that we are calling `package-delete' with - ;; the wrong number of arguments, since it can't infer that we guarantee to - ;; always call the correct version. Thus we suppress all warnings when - ;; calling `package-delete'. I wish there was a more granular way to - ;; disable just that specific warning, but it is what it is. - (if (epl-package--package-desc-p package) - (with-no-warnings - (package-delete (epl-package-description package))) - ;; The legacy API deletes by name (as string!) and version instead by - ;; descriptor. Hence `package-delete' takes two arguments. For some - ;; insane reason, the arguments are strings here! - (let ((name (symbol-name (epl-package-name package))) - (version (epl-package-version-string package))) - (with-no-warnings - (package-delete name version)) - ;; Legacy package.el does not remove the deleted package - ;; from the `package-alist', so we do it manually here. - (let ((pkg (assq (epl-package-name package) package-alist))) - (when pkg - (setq package-alist (delq pkg package-alist)))))))) - -(defun epl-upgrade (&optional packages preserve-obsolete) - "Upgrade PACKAGES. - -PACKAGES is a list of package objects to upgrade, defaulting to -all installed packages. - -The old versions of the updated packages are deleted, unless -PRESERVE-OBSOLETE is non-nil. - -Return a list of all performed upgrades, as a list of -`epl-upgrade' objects." - (let ((upgrades (epl-find-upgrades packages))) - (dolist (upgrade upgrades) - (epl-package-install (epl-upgrade-available upgrade) 'force) - (unless preserve-obsolete - (epl-package-delete (epl-upgrade-installed upgrade)))) - upgrades)) - -(provide 'epl) - -;;; epl.el ends here diff --git a/project1/.emacs.d/packages/epl-20180205.2049/epl.elc b/project1/.emacs.d/packages/epl-20180205.2049/epl.elc deleted file mode 100644 index 1bec00420488b5f8a458297a9106127f7de48512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34745 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 diff --git a/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell-autoloads.el b/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell-autoloads.el deleted file mode 100644 index 54682af..0000000 --- a/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell-autoloads.el +++ /dev/null @@ -1,44 +0,0 @@ -;;; exec-path-from-shell-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil "exec-path-from-shell" "exec-path-from-shell.el" -;;;;;; (23815 54759 838126 488000)) -;;; Generated autoloads from exec-path-from-shell.el - -(autoload 'exec-path-from-shell-copy-envs "exec-path-from-shell" "\ -Set the environment variables with NAMES from the user's shell. - -As a special case, if the variable is $PATH, then `exec-path' and -`eshell-path-env' are also set appropriately. The result is an alist, -as described by `exec-path-from-shell-getenvs'. - -\(fn NAMES)" nil nil) - -(autoload 'exec-path-from-shell-copy-env "exec-path-from-shell" "\ -Set the environment variable $NAME from the user's shell. - -As a special case, if the variable is $PATH, then `exec-path' and -`eshell-path-env' are also set appropriately. Return the value -of the environment variable. - -\(fn NAME)" t nil) - -(autoload 'exec-path-from-shell-initialize "exec-path-from-shell" "\ -Initialize environment from the user's shell. - -The values of all the environment variables named in -`exec-path-from-shell-variables' are set from the corresponding -values used in the user's shell. - -\(fn)" t nil) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; exec-path-from-shell-autoloads.el ends here diff --git a/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell-pkg.el b/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell-pkg.el deleted file mode 100644 index 2699b23..0000000 --- a/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "exec-path-from-shell" "20190426.2227" "Get environment variables such as $PATH from the shell" 'nil :commit "3cfedb8791397ed50ee66bc0a7cbee5b9d78245c" :keywords '("unix" "environment") :authors '(("Steve Purcell" . "steve@sanityinc.com")) :maintainer '("Steve Purcell" . "steve@sanityinc.com") :url "https://github.com/purcell/exec-path-from-shell") diff --git a/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell-pkg.elc b/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell-pkg.elc deleted file mode 100644 index 950a88dfe147c022f7c29c647dc6c6a09d1c80d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 774 zcmbtSO;6)65bZgCV6P)<rEMjWw(duo^s=ZzyGR_6;14+Vq_J@9$aV_l*E0zSv04sD z%xz|#-+MFT{ngFk$7C`|_WL~?T-#}bYD~0+t5(PWC-gx(3w)iev&}N&WBXCZ281!- zx~N<IEFxh-mW<8&MhB>g3i^Nn)Y*zwOHfXR=(RnD3+nn1K`4a^-ldjB#*6<rlp_x7 zB1mVWAaEb+bVn7NUfvz9uR%7#3mM7h#V9YVg5W?33l)NK;vbQ>c><vDMx%$=5Rk84 zb!iXZiow8lBT15}!dhEQJ0Ty$5rN?oO3GrB*50*gXwVo2j4zhOV$HW1=RBwU4@N+H z(%#t?ZG@BXT2zJ>7<x$u3-I&y^8POjBs4g}8<EupO6l5GM_?;iqpEg!v0N27s?7p% zyRGCx<g!BCRE5fSe7%tj$_G3@I<Er!nzG*NC$jKCp3R^XeQcZ`08@4s@q}>OdpWw# zfQ6y*I|!@eSzDQr1vaBsE!}yzHJyi;zxWQy-Wy;|j9n<_^CNxHz8Wa!-K*sM(=E=D E7o$4u+5i9m diff --git a/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell.el b/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell.el deleted file mode 100644 index 712a9a2..0000000 --- a/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell.el +++ /dev/null @@ -1,277 +0,0 @@ -;;; exec-path-from-shell.el --- Get environment variables such as $PATH from the shell - -;; Copyright (C) 2012-2014 Steve Purcell - -;; Author: Steve Purcell <steve@sanityinc.com> -;; Keywords: unix, environment -;; URL: https://github.com/purcell/exec-path-from-shell -;; Package-Version: 20190426.2227 -;; Package-X-Original-Version: 0 - -;; This file is not part of GNU Emacs. - -;; This file 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 file 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 file. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; On OS X (and perhaps elsewhere) the $PATH environment variable and -;; `exec-path' used by a windowed Emacs instance will usually be the -;; system-wide default path, rather than that seen in a terminal -;; window. - -;; This library allows the user to set Emacs' `exec-path' and $PATH -;; from the shell path, so that `shell-command', `compile' and the -;; like work as expected. - -;; It also allows other environment variables to be retrieved from the -;; shell, so that Emacs will see the same values you get in a terminal. - -;; If you use a non-POSIX-standard shell like "tcsh" or "fish", your -;; shell will be asked to execute "sh" as a subshell in order to print -;; out the variables in a format which can be reliably parsed. "sh" -;; must be a POSIX-compliant shell in this case. - -;; Note that shell variables which have not been exported as -;; environment variables (e.g. using the "export" keyword) may not be -;; visible to `exec-path-from-shell'. - -;; Installation: - -;; ELPA packages are available on Marmalade and MELPA. Alternatively, -;; place this file on a directory in your `load-path', and explicitly -;; require it. - -;; Usage: -;; -;; (require 'exec-path-from-shell) ;; if not using the ELPA package -;; (exec-path-from-shell-initialize) -;; -;; Customize `exec-path-from-shell-variables' to modify the list of -;; variables imported. -;; -;; If you use your Emacs config on other platforms, you can instead -;; make initialization conditional as follows: -;; -;; (when (memq window-system '(mac ns)) -;; (exec-path-from-shell-initialize)) -;; -;; Alternatively, you can use `exec-path-from-shell-copy-envs' or -;; `exec-path-from-shell-copy-env' directly, e.g. -;; -;; (exec-path-from-shell-copy-env "PYTHONPATH") - -;;; Code: - -;; Satisfy the byte compiler -(defvar eshell-path-env) - -(defgroup exec-path-from-shell nil - "Make Emacs use shell-defined values for $PATH etc." - :prefix "exec-path-from-shell-" - :group 'environment) - -(defcustom exec-path-from-shell-variables - '("PATH" "MANPATH") - "List of environment variables which are copied from the shell." - :type '(repeat (string :tag "Environment variable")) - :group 'exec-path-from-shell) - -(defcustom exec-path-from-shell-check-startup-files t - "If non-nil, warn if variables are being set in the wrong shell startup files. -Environment variables should be set in .profile or .zshenv rather than -.bashrc or .zshrc." - :type 'boolean - :group 'exec-path-from-shell) - -(defcustom exec-path-from-shell-shell-name nil - "If non-nil, use this shell executable. -Otherwise, use either `shell-file-name' (if set), or the value of -the SHELL environment variable." - :type '(choice - (file :tag "Shell executable") - (const :tag "Use `shell-file-name' or $SHELL" nil)) - :group 'exec-path-from-shell) - -(defvar exec-path-from-shell-debug nil - "Display debug info when non-nil.") - -(defun exec-path-from-shell--double-quote (s) - "Double-quote S, escaping any double-quotes already contained in it." - (concat "\"" (replace-regexp-in-string "\"" "\\\\\"" s) "\"")) - -(defun exec-path-from-shell--shell () - "Return the shell to use. -See documentation for `exec-path-from-shell-shell-name'." - (or - exec-path-from-shell-shell-name - shell-file-name - (getenv "SHELL") - (error "SHELL environment variable is unset"))) - -(defcustom exec-path-from-shell-arguments - (let ((shell (exec-path-from-shell--shell))) - (if (string-match-p "t?csh$" shell) - (list "-d") - (if (string-match-p "fish" shell) - (list "-l") - (list "-l" "-i")))) - "Additional arguments to pass to the shell. - -The default value denotes an interactive login shell." - :type '(repeat (string :tag "Shell argument")) - :group 'exec-path-from-shell) - -(defun exec-path-from-shell--debug (msg &rest args) - "Print MSG and ARGS like `message', but only if debug output is enabled." - (when exec-path-from-shell-debug - (apply 'message msg args))) - -(defun exec-path-from-shell--standard-shell-p (shell) - "Return non-nil iff SHELL supports the standard ${VAR-default} syntax." - (not (string-match "\\(fish\\|t?csh\\)$" shell))) - -(defun exec-path-from-shell-printf (str &optional args) - "Return the result of printing STR in the user's shell. - -Executes the shell as interactive login shell. - -STR is inserted literally in a single-quoted argument to printf, -and may therefore contain backslashed escape sequences understood -by printf. - -ARGS is an optional list of args which will be inserted by printf -in place of any % placeholders in STR. ARGS are not automatically -shell-escaped, so they may contain $ etc." - (let* ((printf-bin (or (executable-find "printf") "printf")) - (printf-command - (concat printf-bin - " '__RESULT\\000" str "\\000__RESULT' " - (mapconcat #'exec-path-from-shell--double-quote args " "))) - (shell (exec-path-from-shell--shell)) - (shell-args (append exec-path-from-shell-arguments - (list "-c" - (if (exec-path-from-shell--standard-shell-p shell) - printf-command - (concat "sh -c " (shell-quote-argument printf-command))))))) - (with-temp-buffer - (exec-path-from-shell--debug "Invoking shell %s with args %S" shell shell-args) - (let ((exit-code (apply #'call-process shell nil t nil shell-args))) - (exec-path-from-shell--debug "Shell printed: %S" (buffer-string)) - (unless (zerop exit-code) - (error "Non-zero exit code from shell %s invoked with args %S. Output was:\n%S" - shell shell-args (buffer-string)))) - (goto-char (point-min)) - (if (re-search-forward "__RESULT\0\\(.*\\)\0__RESULT" nil t) - (match-string 1) - (error "Expected printf output from shell, but got: %S" (buffer-string)))))) - -(defun exec-path-from-shell-getenvs (names) - "Get the environment variables with NAMES from the user's shell. - -Execute the shell according to `exec-path-from-shell-arguments'. -The result is a list of (NAME . VALUE) pairs." - (when (file-remote-p default-directory) - (error "You cannot run exec-path-from-shell from a remote buffer (Tramp, etc.)")) - (let* ((random-default (md5 (format "%s%s%s" (emacs-pid) (random) (current-time)))) - (dollar-names (mapcar (lambda (n) (format "${%s-%s}" n random-default)) names)) - (values (split-string (exec-path-from-shell-printf - (mapconcat #'identity (make-list (length names) "%s") "\\000") - dollar-names) "\0"))) - (let (result) - (while names - (prog1 - (let ((value (car values))) - (push (cons (car names) - (unless (string-equal random-default value) - value)) - result)) - (setq values (cdr values) - names (cdr names)))) - result))) - -(defun exec-path-from-shell-getenv (name) - "Get the environment variable NAME from the user's shell. - -Execute the shell as interactive login shell, have it output the -variable of NAME and return this output as string." - (cdr (assoc name (exec-path-from-shell-getenvs (list name))))) - -(defun exec-path-from-shell-setenv (name value) - "Set the value of environment var NAME to VALUE. -Additionally, if NAME is \"PATH\" then also set corresponding -variables such as `exec-path'." - (setenv name value) - (when (string-equal "PATH" name) - (setq eshell-path-env value - exec-path (append (parse-colon-path value) (list exec-directory))))) - -;;;###autoload -(defun exec-path-from-shell-copy-envs (names) - "Set the environment variables with NAMES from the user's shell. - -As a special case, if the variable is $PATH, then `exec-path' and -`eshell-path-env' are also set appropriately. The result is an alist, -as described by `exec-path-from-shell-getenvs'." - (let ((pairs (exec-path-from-shell-getenvs names))) - (when exec-path-from-shell-check-startup-files - (exec-path-from-shell--maybe-warn-about-startup-files pairs)) - (mapc (lambda (pair) - (exec-path-from-shell-setenv (car pair) (cdr pair))) - pairs))) - -(defun exec-path-from-shell--maybe-warn-about-startup-files (pairs) - "Warn the user if the value of PAIRS seems to depend on interactive shell startup files." - (let ((without-minus-i (remove "-i" exec-path-from-shell-arguments))) - ;; If the user is using "-i", we warn them if it is necessary. - (unless (eq exec-path-from-shell-arguments without-minus-i) - (let* ((exec-path-from-shell-arguments without-minus-i) - (alt-pairs (exec-path-from-shell-getenvs (mapcar 'car pairs))) - different) - (dolist (pair pairs) - (unless (equal pair (assoc (car pair) alt-pairs)) - (push (car pair) different))) - (when different - (message "You appear to be setting environment variables %S in your .bashrc or .zshrc: those files are only read by interactive shells, so you should instead set environment variables in startup files like .profile, .bash_profile or .zshenv. Refer to your shell's man page for more info. Customize `exec-path-from-shell-arguments' to remove \"-i\" when done, or disable `exec-path-from-shell-check-startup-files' to disable this message." different)))))) - -;;;###autoload -(defun exec-path-from-shell-copy-env (name) - "Set the environment variable $NAME from the user's shell. - -As a special case, if the variable is $PATH, then `exec-path' and -`eshell-path-env' are also set appropriately. Return the value -of the environment variable." - (interactive "sCopy value of which environment variable from shell? ") - (cdar (exec-path-from-shell-copy-envs (list name)))) - -;;;###autoload -(defun exec-path-from-shell-initialize () - "Initialize environment from the user's shell. - -The values of all the environment variables named in -`exec-path-from-shell-variables' are set from the corresponding -values used in the user's shell." - (interactive) - (exec-path-from-shell-copy-envs exec-path-from-shell-variables)) - - -(provide 'exec-path-from-shell) - -;; Local Variables: -;; coding: utf-8 -;; indent-tabs-mode: nil -;; require-final-newline: t -;; checkdoc-minor-mode: t -;; End: - -;;; exec-path-from-shell.el ends here diff --git a/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell.elc b/project1/.emacs.d/packages/exec-path-from-shell-20190426.2227/exec-path-from-shell.elc deleted file mode 100644 index 3b4dbaf192434f2b4dc9b60f775d729e01911b8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8209 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 N{sOAK`c+P={y(3nT(tlI diff --git a/project1/.emacs.d/packages/exec-path-from-shell-readme.txt b/project1/.emacs.d/packages/exec-path-from-shell-readme.txt deleted file mode 100644 index 802f114..0000000 --- a/project1/.emacs.d/packages/exec-path-from-shell-readme.txt +++ /dev/null @@ -1,45 +0,0 @@ -On OS X (and perhaps elsewhere) the $PATH environment variable and -`exec-path' used by a windowed Emacs instance will usually be the -system-wide default path, rather than that seen in a terminal -window. - -This library allows the user to set Emacs' `exec-path' and $PATH -from the shell path, so that `shell-command', `compile' and the -like work as expected. - -It also allows other environment variables to be retrieved from the -shell, so that Emacs will see the same values you get in a terminal. - -If you use a non-POSIX-standard shell like "tcsh" or "fish", your -shell will be asked to execute "sh" as a subshell in order to print -out the variables in a format which can be reliably parsed. "sh" -must be a POSIX-compliant shell in this case. - -Note that shell variables which have not been exported as -environment variables (e.g. using the "export" keyword) may not be -visible to `exec-path-from-shell'. - -Installation: - -ELPA packages are available on Marmalade and MELPA. Alternatively, -place this file on a directory in your `load-path', and explicitly -require it. - -Usage: - - (require 'exec-path-from-shell) ;; if not using the ELPA package - (exec-path-from-shell-initialize) - -Customize `exec-path-from-shell-variables' to modify the list of -variables imported. - -If you use your Emacs config on other platforms, you can instead -make initialization conditional as follows: - - (when (memq window-system '(mac ns)) - (exec-path-from-shell-initialize)) - -Alternatively, you can use `exec-path-from-shell-copy-envs' or -`exec-path-from-shell-copy-env' directly, e.g. - - (exec-path-from-shell-copy-env "PYTHONPATH") diff --git a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-autoloads.el b/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-autoloads.el deleted file mode 100644 index dbe1972..0000000 --- a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-autoloads.el +++ /dev/null @@ -1,239 +0,0 @@ -;;; flycheck-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil "flycheck" "flycheck.el" (23815 54534 264972 -;;;;;; 749000)) -;;; Generated autoloads from flycheck.el - -(autoload 'flycheck-manual "flycheck" "\ -Open the Flycheck manual. - -\(fn)" t nil) - -(autoload 'flycheck-mode "flycheck" "\ -Minor mode for on-the-fly syntax checking. - -When called interactively, toggle `flycheck-mode'. With prefix -ARG, enable `flycheck-mode' if ARG is positive, otherwise disable -it. - -When called from Lisp, enable `flycheck-mode' if ARG is omitted, -nil or positive. If ARG is `toggle', toggle `flycheck-mode'. -Otherwise behave as if called interactively. - -In `flycheck-mode' the buffer is automatically syntax-checked -using the first suitable syntax checker from `flycheck-checkers'. -Use `flycheck-select-checker' to select a checker for the current -buffer manually. - -\\{flycheck-mode-map} - -\(fn &optional ARG)" t nil) - -(defvar global-flycheck-mode nil "\ -Non-nil if Global-Flycheck mode is enabled. -See the command `global-flycheck-mode' for a description of this minor mode. -Setting this variable directly does not take effect; -either customize it (see the info node `Easy Customization') -or call the function `global-flycheck-mode'.") - -(custom-autoload 'global-flycheck-mode "flycheck" nil) - -(autoload 'global-flycheck-mode "flycheck" "\ -Toggle Flycheck mode in all buffers. -With prefix ARG, enable Global-Flycheck mode if ARG is positive; -otherwise, disable it. If called from Lisp, enable the mode if -ARG is omitted or nil. - -Flycheck mode is enabled in all buffers where -`flycheck-mode-on-safe' would do it. -See `flycheck-mode' for more information on Flycheck mode. - -\(fn &optional ARG)" t nil) - -(autoload 'flycheck-define-error-level "flycheck" "\ -Define a new error LEVEL with PROPERTIES. - -The following PROPERTIES constitute an error level: - -`:severity SEVERITY' - A number denoting the severity of this level. The higher - the number, the more severe is this level compared to other - levels. Defaults to 0. - - The severity is used by `flycheck-error-level-<' to - determine the ordering of errors according to their levels. - -`:compilation-level LEVEL' - - A number indicating the broad class of messages that errors - at this level belong to: one of 0 (info), 1 (warning), or - 2 or nil (error). Defaults to nil. - - This is used by `flycheck-checker-pattern-to-error-regexp' - to map error levels into `compilation-mode''s hierarchy and - to get proper highlighting of errors in `compilation-mode'. - -`:overlay-category CATEGORY' - A symbol denoting the overlay category to use for error - highlight overlays for this level. See Info - node `(elisp)Overlay Properties' for more information about - overlay categories. - - A category for an error level overlay should at least define - the `face' property, for error highlighting. Another useful - property for error level categories is `priority', to - influence the stacking of multiple error level overlays. - -`:fringe-bitmap BITMAP' - A fringe bitmap symbol denoting the bitmap to use for fringe - indicators for this level. See Info node `(elisp)Fringe - Bitmaps' for more information about fringe bitmaps, - including a list of built-in fringe bitmaps. - -`:fringe-face FACE' - A face symbol denoting the face to use for fringe indicators - for this level. - -`:error-list-face FACE' - A face symbol denoting the face to use for messages of this - level in the error list. See `flycheck-list-errors'. - -\(fn LEVEL &rest PROPERTIES)" nil nil) - -(put 'flycheck-define-error-level 'lisp-indent-function '1) - -(autoload 'flycheck-define-command-checker "flycheck" "\ -Define SYMBOL as syntax checker to run a command. - -Define SYMBOL as generic syntax checker via -`flycheck-define-generic-checker', which uses an external command -to check the buffer. SYMBOL and DOCSTRING are the same as for -`flycheck-define-generic-checker'. - -In addition to the properties understood by -`flycheck-define-generic-checker', the following PROPERTIES -constitute a command syntax checker. Unless otherwise noted, all -properties are mandatory. Note that the default `:error-filter' -of command checkers is `flycheck-sanitize-errors'. - -`:command COMMAND' - The command to run for syntax checking. - - COMMAND is a list of the form `(EXECUTABLE [ARG ...])'. - - EXECUTABLE is a string with the executable of this syntax - checker. It can be overridden with the variable - `flycheck-SYMBOL-executable'. Note that this variable is - NOT implicitly defined by this function. Use - `flycheck-def-executable-var' to define this variable. - - Each ARG is an argument to the executable, either as string, - or as special symbol or form for - `flycheck-substitute-argument', which see. - -`:error-patterns PATTERNS' - A list of patterns to parse the output of the `:command'. - - Each ITEM in PATTERNS is a list `(LEVEL SEXP ...)', where - LEVEL is a Flycheck error level (see - `flycheck-define-error-level'), followed by one or more RX - `SEXP's which parse an error of that level and extract line, - column, file name and the message. - - See `rx' for general information about RX, and - `flycheck-rx-to-string' for some special RX forms provided - by Flycheck. - - All patterns are applied in the order of declaration to the - whole output of the syntax checker. Output already matched - by a pattern will not be matched by subsequent patterns. In - other words, the first pattern wins. - - This property is optional. If omitted, however, an - `:error-parser' is mandatory. - -`:error-parser FUNCTION' - A function to parse errors with. - - The function shall accept three arguments OUTPUT CHECKER - BUFFER. OUTPUT is the syntax checker output as string, - CHECKER the syntax checker that was used, and BUFFER a - buffer object representing the checked buffer. The function - must return a list of `flycheck-error' objects parsed from - OUTPUT. - - This property is optional. If omitted, it defaults to - `flycheck-parse-with-patterns'. In this case, - `:error-patterns' is mandatory. - -`:standard-input t' - Whether to send the buffer contents on standard input. - - If this property is given and has a non-nil value, send the - contents of the buffer on standard input. - - Defaults to nil. - -Note that you may not give `:start', `:interrupt', and -`:print-doc' for a command checker. You can give a custom -`:verify' function, though, whose results will be appended to the -default `:verify' function of command checkers. - -\(fn SYMBOL DOCSTRING &rest PROPERTIES)" nil nil) - -(put 'flycheck-define-command-checker 'lisp-indent-function '1) - -(put 'flycheck-define-command-checker 'doc-string-elt '2) - -(autoload 'flycheck-def-config-file-var "flycheck" "\ -Define SYMBOL as config file variable for CHECKER, with default FILE-NAME. - -SYMBOL is declared as customizable variable using `defcustom', to -provide a configuration file for the given syntax CHECKER. -CUSTOM-ARGS are forwarded to `defcustom'. - -FILE-NAME is the initial value of the new variable. If omitted, -the default value is nil. - -Use this together with the `config-file' form in the `:command' -argument to `flycheck-define-checker'. - -\(fn SYMBOL CHECKER &optional FILE-NAME &rest CUSTOM-ARGS)" nil t) - -(put 'flycheck-def-config-file-var 'lisp-indent-function '3) - -(autoload 'flycheck-def-option-var "flycheck" "\ -Define SYMBOL as option variable with INIT-VALUE for CHECKER. - -SYMBOL is declared as customizable variable using `defcustom', to -provide an option for the given syntax CHECKERS (a checker or a -list of checkers). INIT-VALUE is the initial value of the -variable, and DOCSTRING is its docstring. CUSTOM-ARGS are -forwarded to `defcustom'. - -Use this together with the `option', `option-list' and -`option-flag' forms in the `:command' argument to -`flycheck-define-checker'. - -\(fn SYMBOL INIT-VALUE CHECKERS DOCSTRING &rest CUSTOM-ARGS)" nil t) - -(put 'flycheck-def-option-var 'lisp-indent-function '3) - -(put 'flycheck-def-option-var 'doc-string-elt '4) - -;;;*** - -;;;### (autoloads nil nil ("flycheck-buttercup.el" "flycheck-ert.el" -;;;;;; "flycheck-pkg.el") (23815 54534 266985 0)) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; flycheck-autoloads.el ends here diff --git a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-buttercup.el b/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-buttercup.el deleted file mode 100644 index 9802265..0000000 --- a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-buttercup.el +++ /dev/null @@ -1,157 +0,0 @@ -;;; flycheck-buttercup.el --- Flycheck: Extensions to Buttercup -*- lexical-binding: t; -*- - -;; Copyright (C) 2017 Flycheck contributors -;; Copyright (C) 2016 Sebastian Wiesner and Flycheck contributors - -;; Author: Sebastian Wiesner <swiesner@lunaryorn.com> -;; Maintainer: Clément Pit-Claudel <clement.pitclaudel@live.com> -;; fmdkdd <fmdkdd@gmail.com> -;; Keywords: lisp, tools - -;; 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 <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; Extensions to Buttercup to write BDD tests for Flycheck. -;; -;; Buttercup is a BDD testing framework for Emacs, see URL -;; `https://github.com/jorgenschaefer/emacs-buttercup/'. Flycheck uses -;; Buttercup extensively for new tests. -;; -;; This library provides extensions to Buttercup to write Specs for Flycheck. -;; -;; * Custom matchers -;; -;; (expect 'foo :to-be-local) - Is `foo' a local variable in the current buffer? - -;;; Code: - -(require 'buttercup) -(require 'flycheck) -(require 'seq) - - -;;; Buttercup helpers - -(defun flycheck-buttercup-format-error-list (errors) - "Format ERRORS into a human-readable string." - (mapconcat (lambda (e) (flycheck-error-format e 'with-file-name)) - errors "\n")) - - -;;; Data matchers - -(buttercup-define-matcher :to-be-empty-string (s) - (let ((s (funcall s))) - (if (equal s "") - (cons t (format "Expected %S not be an empty string" s)) - (cons nil (format "Expected %S to be an empty string" s))))) - -(buttercup-define-matcher :to-match-with-group (re s index match) - (let* ((re (funcall re)) - (s (funcall s)) - (index (funcall index)) - (match (funcall match)) - (matches? (string-match re s)) - (result (and matches? (match-string index s)))) - (if (and matches? (equal result match)) - (cons t (format "Expected %S not to match %S with %S in group %s" - re s match index)) - - (cons nil (format "Expected %S to match %S with %S in group %s, %s" - re s match index - (if matches? - (format "but got %S" result) - "but did not match")))))) - - -;;; Emacs feature matchers - -(buttercup-define-matcher :to-be-live (buffer) - (let ((buffer (get-buffer (funcall buffer)))) - (if (buffer-live-p buffer) - (cons t (format "Expected %S not to be a live buffer, but it is" - buffer)) - (cons nil (format "Expected %S to be a live buffer, but it is not" - buffer))))) - -(buttercup-define-matcher :to-be-visible (buffer) - (let ((buffer (get-buffer (funcall buffer)))) - (cond - ((and buffer (get-buffer-window buffer)) - (cons t (format "Expected %S not to be a visible buffer, but it is" - buffer))) - ((not (bufferp buffer)) - (cons nil - (format "Expected %S to be a visible buffer, but it is not a buffer" - buffer))) - (t (cons - nil - (format "Expected %S to be a visible buffer, but it is not visible" - buffer)))))) - -(buttercup-define-matcher :to-be-local (symbol) - (let ((symbol (funcall symbol))) - (if (local-variable-p symbol) - (cons t (format "Expected %S not to be a local variable, but it is" - symbol)) - (cons nil (format "Expected %S to be a local variable, but it is not" - symbol))))) - -(buttercup-define-matcher :to-contain-match (buffer re) - (let ((buffer (funcall buffer)) - (re (funcall re))) - (if (not (get-buffer buffer)) - (cons nil (format "Expected %S to contain a match of %s, \ -but is not a buffer" buffer re)) - (with-current-buffer buffer - (save-excursion - (goto-char (point-min)) - (if (re-search-forward re nil 'noerror) - (cons t (format "Expected %S to contain a match \ -for %s, but it did not" buffer re)) - (cons nil (format "Expected %S not to contain a match for \ -%s but it did not." buffer re)))))))) - - -;;; Flycheck matchers - -(buttercup-define-matcher :to-be-equal-flycheck-errors (a b) - (let* ((a (funcall a)) - (b (funcall b)) - (a-formatted (flycheck-buttercup-format-error-list a)) - (b-formatted (flycheck-buttercup-format-error-list b))) - (if (equal a b) - (cons t (format "Expected -%s -not to be equal to -%s" a-formatted b-formatted)) - (cons nil (format "Expected -%s -to be equal to -%s" a-formatted b-formatted))))) - -(provide 'flycheck-buttercup) - -;; Disable byte compilation for this library, to prevent package.el choking on a -;; missing `buttercup' library. See -;; https://github.com/flycheck/flycheck/issues/860 - -;; Local Variables: -;; no-byte-compile: t -;; End: - -;;; flycheck-buttercup.el ends here diff --git a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-ert.el b/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-ert.el deleted file mode 100644 index b7c2bc0..0000000 --- a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-ert.el +++ /dev/null @@ -1,483 +0,0 @@ -;;; flycheck-ert.el --- Flycheck: ERT extensions -*- lexical-binding: t; -*- - -;; Copyright (C) 2017-2018 Flycheck contributors -;; Copyright (C) 2013-2016 Sebastian Wiesner and Flycheck contributors - -;; Author: Sebastian Wiesner <swiesner@lunaryorn.com> -;; Maintainer: Clément Pit-Claudel <clement.pitclaudel@live.com> -;; fmdkdd <fmdkdd@gmail.com> -;; URL: https://github.com/flycheck/flycheck - -;; 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 <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; Unit testing library for Flycheck, the modern on-the-fly syntax checking -;; extension for GNU Emacs. - -;; Provide various utility functions and unit test helpers to test Flycheck and -;; Flycheck extensions. - -;;; Code: - -(require 'flycheck) -(require 'ert) -(require 'macroexp) ; For macro utilities - - -;;; Compatibility - -(eval-and-compile - ;; Provide `ert-skip' and friends for Emacs 24.3 - (defconst flycheck-ert-ert-can-skip (fboundp 'ert-skip) - "Whether ERT supports test skipping.") - - (unless (fboundp 'define-error) - ;; from Emacs `subr.el' - (defun define-error (name message &optional parent) - "Define NAME as a new error signal. -MESSAGE is a string that will be output to the echo area if such an error -is signaled without being caught by a `condition-case'. -PARENT is either a signal or a list of signals from which it inherits. -Defaults to `error'." - (unless parent (setq parent 'error)) - (let ((conditions - (if (consp parent) - (apply #'append - (mapcar - (lambda (parent) - (cons parent - (or (get parent 'error-conditions) - (error "Unknown signal `%s'" parent)))) - parent)) - (cons parent (get parent 'error-conditions))))) - (put name 'error-conditions - (delete-dups (copy-sequence (cons name conditions)))) - (when message (put name 'error-message message))))) - - (unless flycheck-ert-ert-can-skip - ;; Fake skipping - - (define-error 'flycheck-ert-skipped "Test skipped") - - (defun ert-skip (data) - (signal 'flycheck-ert-skipped data)) - - (defmacro skip-unless (form) - `(unless (ignore-errors ,form) - (signal 'flycheck-ert-skipped ',form))) - - (defun ert-test-skipped-p (result) - (and (ert-test-failed-p result) - (eq (car (ert-test-failed-condition result)) - 'flycheck-ert-skipped))))) - - -;;; Internal variables - -(defvar flycheck-ert--resource-directory nil - "The directory to get resources from in this test suite.") - - -;;; Resource management macros - -(defmacro flycheck-ert-with-temp-buffer (&rest body) - "Eval BODY within a temporary buffer. - -Like `with-temp-buffer', but resets the modification state of the -temporary buffer to make sure that it is properly killed even if -it has a backing file and is modified." - (declare (indent 0)) - `(with-temp-buffer - (unwind-protect - ,(macroexp-progn body) - ;; Reset modification state of the buffer, and unlink it from its backing - ;; file, if any, because Emacs refuses to kill modified buffers with - ;; backing files, even if they are temporary. - (set-buffer-modified-p nil) - (set-visited-file-name nil 'no-query)))) - -(defmacro flycheck-ert-with-file-buffer (file-name &rest body) - "Create a buffer from FILE-NAME and eval BODY. - -BODY is evaluated with `current-buffer' being a buffer with the -contents FILE-NAME." - (declare (indent 1)) - `(let ((file-name ,file-name)) - (unless (file-exists-p file-name) - (error "%s does not exist" file-name)) - (flycheck-ert-with-temp-buffer - (insert-file-contents file-name 'visit) - (set-visited-file-name file-name 'no-query) - (cd (file-name-directory file-name)) - ;; Mark the buffer as not modified, because we just loaded the file up to - ;; now. - (set-buffer-modified-p nil) - ,@body))) - -(defmacro flycheck-ert-with-help-buffer (&rest body) - "Execute BODY and kill the help buffer afterwards. - -Use this macro to test functions that create a Help buffer." - (declare (indent 0)) - `(unwind-protect - ,(macroexp-progn body) - (when (buffer-live-p (get-buffer (help-buffer))) - (kill-buffer (help-buffer))))) - -(defmacro flycheck-ert-with-global-mode (&rest body) - "Execute BODY with Global Flycheck Mode enabled. - -After BODY, restore the old state of Global Flycheck Mode." - (declare (indent 0)) - `(let ((old-state global-flycheck-mode)) - (unwind-protect - (progn - (global-flycheck-mode 1) - ,@body) - (global-flycheck-mode (if old-state 1 -1))))) - -(defmacro flycheck-ert-with-env (env &rest body) - "Add ENV to `process-environment' in BODY. - -Execute BODY with a `process-environment' which contains all -variables from ENV added. - -ENV is an alist, where each cons cell `(VAR . VALUE)' is a -environment variable VAR to be added to `process-environment' -with VALUE." - (declare (indent 1)) - `(let ((process-environment (copy-sequence process-environment))) - (pcase-dolist (`(,var . ,value) ,env) - (setenv var value)) - ,@body)) - - -;;; Test resources -(defun flycheck-ert-resource-filename (resource-file) - "Determine the absolute file name of a RESOURCE-FILE. - -Relative file names are expanded against -`flycheck-ert--resource-directory'." - (expand-file-name resource-file flycheck-ert--resource-directory)) - -(defmacro flycheck-ert-with-resource-buffer (resource-file &rest body) - "Create a temp buffer from a RESOURCE-FILE and execute BODY. - -The absolute file name of RESOURCE-FILE is determined with -`flycheck-ert-resource-filename'." - (declare (indent 1)) - `(flycheck-ert-with-file-buffer - (flycheck-ert-resource-filename ,resource-file) - ,@body)) - - -;;; Test suite initialization - -(defun flycheck-ert-initialize (resource-dir) - "Initialize a test suite with RESOURCE-DIR. - -RESOURCE-DIR is the directory, `flycheck-ert-resource-filename' -should use to lookup resource files." - (when flycheck-ert--resource-directory - (error "Test suite already initialized")) - (let ((tests (ert-select-tests t t))) - ;; Select all tests - (unless tests - (error "No tests defined. \ -Call `flycheck-ert-initialize' after defining all tests!")) - - (setq flycheck-ert--resource-directory resource-dir) - - ;; Emacs 24.3 don't support skipped tests, so we add poor man's test - ;; skipping: We mark skipped tests as expected failures by adjusting the - ;; expected result of all test cases. Not particularly pretty, but works :) - (unless flycheck-ert-ert-can-skip - (dolist (test tests) - (let ((result (ert-test-expected-result-type test))) - (setf (ert-test-expected-result-type test) - `(or ,result (satisfies ert-test-skipped-p)))))))) - - -;;; Test case definitions -(defmacro flycheck-ert-def-checker-test (checker language name - &rest keys-and-body) - "Define a test case for a syntax CHECKER for LANGUAGE. - -CHECKER is a symbol or a list of symbols denoting syntax checkers -being tested by the test. The test case is skipped, if any of -these checkers cannot be used. LANGUAGE is a symbol or a list of -symbols denoting the programming languages supported by the -syntax checkers. This is currently only used for tagging the -test appropriately. - -NAME is a symbol denoting the local name of the test. The test -itself is ultimately named -`flycheck-define-checker/CHECKER/NAME'. If CHECKER is a list, -the first checker in the list is used for naming the test. - -Optionally, the keyword arguments `:tags' and `:expected-result' -may be given. They have the same meaning as in `ert-deftest.', -and are added to the tags and result expectations set up by this -macro. - -The remaining forms KEYS-AND-BODY denote the body of the test -case, including assertions and setup code." - (declare (indent 3)) - (unless checker - (error "No syntax checkers specified")) - (unless language - (error "No languages specified")) - (let* ((checkers (if (symbolp checker) (list checker) checker)) - (checker (car checkers)) - (languages (if (symbolp language) (list language) language)) - (language-tags (mapcar (lambda (l) (intern (format "language-%s" l))) - languages)) - (checker-tags (mapcar (lambda (c) (intern (format "checker-%s" c))) - checkers)) - (local-name (or name 'default)) - (full-name (intern (format "flycheck-define-checker/%s/%s" - checker local-name))) - (keys-and-body (ert--parse-keys-and-body keys-and-body)) - (body (cadr keys-and-body)) - (keys (car keys-and-body)) - (default-tags '(syntax-checker external-tool))) - `(ert-deftest ,full-name () - :expected-result ,(or (plist-get keys :expected-result) :passed) - :tags (append ',(append default-tags language-tags checker-tags) - ,(plist-get keys :tags)) - ,@(mapcar (lambda (c) - `(skip-unless - ;; Ignore non-command checkers - (or (not (flycheck-checker-get ',c 'command)) - (executable-find (flycheck-checker-executable ',c))))) - checkers) - ,@body))) - - -;;; Test case results - -(defun flycheck-ert-syntax-check-timed-out-p (result) - "Whether RESULT denotes a timed-out test. - -RESULT is an ERT test result object." - (and (ert-test-failed-p result) - (eq (car (ert-test-failed-condition result)) - 'flycheck-ert-syntax-check-timed-out))) - - -;;; Syntax checking in tests - -(defvar-local flycheck-ert-syntax-checker-finished nil - "Non-nil if the current checker has finished.") - -(add-hook 'flycheck-after-syntax-check-hook - (lambda () (setq flycheck-ert-syntax-checker-finished t))) - -(defconst flycheck-ert-checker-wait-time 10 - "Time to wait until a checker is finished in seconds. - -After this time has elapsed, the checker is considered to have -failed, and the test aborted with failure.") - -(define-error 'flycheck-ert-syntax-check-timed-out "Syntax check timed out.") - -(defun flycheck-ert-wait-for-syntax-checker () - "Wait until the syntax check in the current buffer is finished." - (let ((starttime (float-time))) - (while (and (not flycheck-ert-syntax-checker-finished) - (< (- (float-time) starttime) flycheck-ert-checker-wait-time)) - (sleep-for 1)) - (unless (< (- (float-time) starttime) flycheck-ert-checker-wait-time) - (flycheck-stop) - (signal 'flycheck-ert-syntax-check-timed-out nil))) - (setq flycheck-ert-syntax-checker-finished nil)) - -(defun flycheck-ert-buffer-sync () - "Like `flycheck-buffer', but synchronously." - (setq flycheck-ert-syntax-checker-finished nil) - (should (not (flycheck-running-p))) - (flycheck-mode) ; This will only start a deferred check, - (flycheck-buffer) ; so we need an explicit manual check - ;; After starting the check, the checker should either be running now, or - ;; already be finished (if it was fast). - (should (or flycheck-current-syntax-check - flycheck-ert-syntax-checker-finished)) - ;; Also there should be no deferred check pending anymore - (should-not (flycheck-deferred-check-p)) - (flycheck-ert-wait-for-syntax-checker)) - -(defun flycheck-ert-ensure-clear () - "Clear the current buffer. - -Raise an assertion error if the buffer is not clear afterwards." - (flycheck-clear) - (should (not flycheck-current-errors)) - (should (not (-any? (lambda (ov) (overlay-get ov 'flycheck-overlay)) - (overlays-in (point-min) (point-max)))))) - - -;;; Test assertions - -(defun flycheck-error-without-group (err) - "Return a copy ERR with the `group' property set to nil." - (let ((copy (copy-flycheck-error err))) - (setf (flycheck-error-group copy) nil) - copy)) - -(defun flycheck-ert-should-overlay (error) - "Test that ERROR has a proper overlay in the current buffer. - -ERROR is a Flycheck error object." - (let* ((overlay (-first (lambda (ov) - (equal (flycheck-error-without-group - (overlay-get ov 'flycheck-error)) - (flycheck-error-without-group error))) - (flycheck-overlays-in 0 (+ 1 (buffer-size))))) - (region - ;; Overlays of errors from other files are on the first line - (if (flycheck-relevant-error-other-file-p error) - (cons (point-min) - (save-excursion (goto-char (point-min)) (point-at-eol))) - (flycheck-error-region-for-mode error 'symbols))) - (level (flycheck-error-level error)) - (category (flycheck-error-level-overlay-category level)) - (face (get category 'face)) - (fringe-bitmap (flycheck-error-level-fringe-bitmap level)) - (fringe-face (flycheck-error-level-fringe-face level)) - (fringe-icon (list 'left-fringe fringe-bitmap fringe-face))) - (should overlay) - (should (overlay-get overlay 'flycheck-overlay)) - (should (= (overlay-start overlay) (car region))) - (should (= (overlay-end overlay) (cdr region))) - (should (eq (overlay-get overlay 'face) face)) - (should (equal (get-char-property 0 'display - (overlay-get overlay 'before-string)) - fringe-icon)) - (should (eq (overlay-get overlay 'category) category)) - (should (equal (flycheck-error-without-group (overlay-get overlay - 'flycheck-error)) - (flycheck-error-without-group error))))) - -(defun flycheck-ert-should-errors (&rest errors) - "Test that the current buffers has ERRORS. - -ERRORS is a list of errors expected to be present in the current -buffer. Each error is given as a list of arguments to -`flycheck-error-new-at'. - -If ERRORS are omitted, test that there are no errors at all in -the current buffer. - -With ERRORS, test that each error in ERRORS is present in the -current buffer, and that the number of errors in the current -buffer is equal to the number of given ERRORS. In other words, -check that the buffer has all ERRORS, and no other errors." - (let ((expected (mapcar (apply-partially #'apply #'flycheck-error-new-at) - errors))) - (should (equal (mapcar #'flycheck-error-without-group expected) - (mapcar #'flycheck-error-without-group - flycheck-current-errors))) - ;; Check that related errors are the same - (cl-mapcar (lambda (err1 err2) - (should (equal (mapcar #'flycheck-error-without-group - (flycheck-related-errors err1 expected)) - (mapcar #'flycheck-error-without-group - (flycheck-related-errors err2))))) - expected flycheck-current-errors) - (mapc #'flycheck-ert-should-overlay expected)) - (should (= (length errors) - (length (flycheck-overlays-in (point-min) (point-max)))))) - -(define-error 'flycheck-ert-suspicious-checker "Suspicious state from checker") - -(defun flycheck-ert-should-syntax-check (resource-file modes &rest errors) - "Test a syntax check in RESOURCE-FILE with MODES. - -RESOURCE-FILE is the file to check. MODES is a single major mode -symbol or a list thereof, specifying the major modes to syntax -check with. If more than one major mode is specified, the test -is run for each mode separately, so if you give three major -modes, the entire test will run three times. ERRORS is the list -of expected errors, as in `flycheck-ert-should-errors'. If -omitted, the syntax check must not emit any errors. The errors -are cleared after each test. - -The syntax checker is selected via standard syntax checker -selection. To test a specific checker, you need to set -`flycheck-checker' or `flycheck-disabled-checkers' accordingly -before using this predicate, depending on whether you want to use -manual or automatic checker selection. - -During the syntax check, configuration files of syntax checkers -are also searched in the `config-files' sub-directory of the -resource directory." - (when (symbolp modes) - (setq modes (list modes))) - (dolist (mode modes) - (unless (fboundp mode) - (ert-skip (format "%S missing" mode))) - (flycheck-ert-with-resource-buffer resource-file - (funcall mode) - ;; Load safe file-local variables because some tests depend on them - (let ((enable-local-variables :safe) - ;; Disable all hooks at this place, to prevent 3rd party packages - ;; from interfering - (hack-local-variables-hook)) - (hack-local-variables)) - ;; Configure config file locating for unit tests - (let ((process-hook-called 0)) - (add-hook 'flycheck-process-error-functions - (lambda (_err) - (setq process-hook-called (1+ process-hook-called)) - nil) - nil :local) - (add-hook 'flycheck-status-changed-functions - (lambda (status) - (when (eq status 'suspicious) - (signal 'flycheck-ert-suspicious-checker nil)))) - (flycheck-ert-buffer-sync) - (apply #'flycheck-ert-should-errors errors) - (should (= process-hook-called (length errors)))) - (flycheck-ert-ensure-clear)))) - -(defun flycheck-ert-at-nth-error (n) - "Determine whether point is at the N'th Flycheck error. - -Return non-nil if the point is at the N'th Flycheck error in the -current buffer. Otherwise return nil." - (let* ((error (nth (1- n) flycheck-current-errors)) - (mode flycheck-highlighting-mode) - (region (flycheck-error-region-for-mode error mode))) - (and (member error (flycheck-overlay-errors-at (point))) - (= (point) (car region))))) - -(defun flycheck-ert-explain--at-nth-error (n) - "Explain a failed at-nth-error predicate at N." - (let ((errors (flycheck-overlay-errors-at (point)))) - (if (null errors) - (format "Expected to be at error %s, but no error at point %s" - n (point)) - (let ((pos (cl-position (car errors) flycheck-current-errors))) - (format "Expected to be at error %s, but point %s is at error %s" - n (point) (1+ pos)))))) - -(put 'flycheck-ert-at-nth-error 'ert-explainer - 'flycheck-ert-explain--at-nth-error) - -(provide 'flycheck-ert) - -;;; flycheck-ert.el ends here diff --git a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-ert.elc b/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-ert.elc deleted file mode 100644 index b6c316856f4592019ccafb1b5919aec73413221b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22788 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 diff --git a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-pkg.el b/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-pkg.el deleted file mode 100644 index 02c69d7..0000000 --- a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck-pkg.el +++ /dev/null @@ -1,16 +0,0 @@ -(define-package "flycheck" "20190612.1645" "On-the-fly syntax checking" - '((dash "2.12.1") - (pkg-info "0.4") - (let-alist "1.0.4") - (seq "1.11") - (emacs "24.3")) - :keywords - '("convenience" "languages" "tools") - :authors - '(("Sebastian Wiesner" . "swiesner@lunaryorn.com")) - :maintainer - '("Clément Pit-Claudel" . "clement.pitclaudel@live.com") - :url "http://www.flycheck.org") -;; Local Variables: -;; no-byte-compile: t -;; End: diff --git a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck.el b/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck.el deleted file mode 100644 index 73bd46c..0000000 --- a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck.el +++ /dev/null @@ -1,11066 +0,0 @@ -;;; flycheck.el --- On-the-fly syntax checking -*- lexical-binding: t; -*- - -;; Copyright (C) 2017-2019 Flycheck contributors -;; Copyright (C) 2012-2016 Sebastian Wiesner and Flycheck contributors -;; Copyright (C) 2013, 2014 Free Software Foundation, Inc. -;; -;; Author: Sebastian Wiesner <swiesner@lunaryorn.com> -;; Maintainer: Clément Pit-Claudel <clement.pitclaudel@live.com> -;; fmdkdd <fmdkdd@gmail.com> -;; URL: http://www.flycheck.org -;; Keywords: convenience, languages, tools -;; Version: 32-cvs -;; Package-Requires: ((dash "2.12.1") (pkg-info "0.4") (let-alist "1.0.4") (seq "1.11") (emacs "24.3")) - -;; 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 <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; On-the-fly syntax checking for GNU Emacs 24. -;; -;; Flycheck is a modern on-the-fly syntax checking extension for GNU Emacs, -;; intended as replacement for the older Flymake extension which is part of GNU -;; Emacs. -;; -;; Flycheck automatically checks buffers for errors while you type, and reports -;; warnings and errors directly in the buffer and in an optional IDE-like error -;; list. -;; -;; It comes with a rich interface for custom syntax checkers and other -;; extensions, and has already many 3rd party extensions adding new features. -;; -;; Please read the online manual at http://www.flycheck.org for more -;; information. You can open the manual directly from Emacs with `M-x -;; flycheck-manual'. -;; -;; # Setup -;; -;; Flycheck works best on Unix systems. It does not officially support Windows, -;; but tries to maintain Windows compatibility and should generally work fine on -;; Windows, too. -;; -;; To enable Flycheck add the following to your init file: -;; -;; (add-hook 'after-init-hook #'global-flycheck-mode) -;; -;; Flycheck will then automatically check buffers in supported languages, as -;; long as all necessary tools are present. Use `flycheck-verify-setup' to -;; troubleshoot your Flycheck setup. - -;;; Code: - -(eval-when-compile - (require 'let-alist) ; `let-alist' - (require 'compile) ; Compile Mode integration - (require 'jka-compr) ; To inhibit compression of temp files - (require 'pcase) ; `pcase-dolist' (`pcase' itself is autoloaded) - ) - -(require 'dash) - -(require 'seq) ; Sequence functions -(require 'subr-x nil 'no-error) ; Additional utilities, Emacs 24.4 and upwards -(require 'cl-lib) ; `cl-defstruct' and CL utilities -(require 'tabulated-list) ; To list errors -(require 'easymenu) ; Flycheck Mode menu definition -(require 'rx) ; Regexp fanciness in `flycheck-define-checker' -(require 'help-mode) ; `define-button-type' -(require 'find-func) ; `find-function-regexp-alist' -(require 'json) ; `flycheck-parse-tslint' - - -;; Declare a bunch of dynamic variables that we need from other modes -(defvar sh-shell) ; For shell script checker predicates -(defvar ess-language) ; For r-lintr predicate - -;; Tell the byte compiler about autoloaded functions from packages -(declare-function pkg-info-version-info "pkg-info" (package)) - - -;;; Compatibility -(eval-and-compile - (unless (fboundp 'string-suffix-p) - ;; TODO: Remove when dropping support for Emacs 24.3 and earlier - (defun string-suffix-p (suffix string &optional ignore-case) - "Return non-nil if SUFFIX is a suffix of STRING. -If IGNORE-CASE is non-nil, the comparison is done without paying -attention to case differences." - (let ((start-pos (- (length string) (length suffix)))) - (and (>= start-pos 0) - (eq t (compare-strings suffix nil nil - string start-pos nil ignore-case)))))) - - ;; TODO: Remove when dropping support for Emacs 24.3 and earlier - (unless (featurep 'subr-x) - ;; `subr-x' function for Emacs 24.3 and below - (defsubst string-join (strings &optional separator) - "Join all STRINGS using SEPARATOR." - (mapconcat 'identity strings separator)) - - (defsubst string-trim-left (string) - "Remove leading whitespace from STRING." - (if (string-match "\\`[ \t\n\r]+" string) - (replace-match "" t t string) - string)) - - (defsubst string-trim-right (string) - "Remove trailing whitespace from STRING." - (if (string-match "[ \t\n\r]+\\'" string) - (replace-match "" t t string) - string)) - - (defsubst string-trim (string) - "Remove leading and trailing whitespace from STRING." - (string-trim-left (string-trim-right string))) - - (defsubst string-empty-p (string) - "Check whether STRING is empty." - (string= string "")))) - - -;;; Customization -(defgroup flycheck nil - "Modern on-the-fly syntax checking for GNU Emacs." - :prefix "flycheck-" - :group 'tools - :link '(url-link :tag "Website" "http://www.flycheck.org") - :link '(url-link :tag "Github" "https://github.com/flycheck/flycheck")) - -(defgroup flycheck-config-files nil - "Configuration files for on-the-fly syntax checkers." - :prefix "flycheck-" - :group 'flycheck) - -(defgroup flycheck-options nil - "Options for on-the-fly syntax checkers." - :prefix "flycheck-" - :group 'flycheck) - -(defgroup flycheck-executables nil - "Executables of syntax checkers." - :prefix "flycheck-" - :group 'flycheck) - -(defgroup flycheck-faces nil - "Faces used by on-the-fly syntax checking." - :prefix "flycheck-" - :group 'flycheck) - -(defcustom flycheck-checkers - '(ada-gnat - asciidoctor - asciidoc - c/c++-clang - c/c++-gcc - c/c++-cppcheck - cfengine - chef-foodcritic - coffee - coffee-coffeelint - coq - css-csslint - css-stylelint - cuda-nvcc - cwl - d-dmd - dockerfile-hadolint - emacs-lisp - emacs-lisp-checkdoc - erlang-rebar3 - erlang - eruby-erubis - fortran-gfortran - go-gofmt - go-golint - go-vet - go-build - go-test - go-errcheck - go-unconvert - go-staticcheck - groovy - haml - handlebars - haskell-stack-ghc - haskell-ghc - haskell-hlint - html-tidy - javascript-eslint - javascript-jshint - javascript-standard - json-jsonlint - json-python-json - json-jq - jsonnet - less - less-stylelint - llvm-llc - lua-luacheck - lua - markdown-markdownlint-cli - markdown-mdl - nix - nix-linter - opam - perl - perl-perlcritic - php - php-phpmd - php-phpcs - processing - proselint - protobuf-protoc - pug - puppet-parser - puppet-lint - python-flake8 - python-pylint - python-pycompile - python-mypy - r-lintr - racket - rpm-rpmlint - rst-sphinx - rst - ruby-rubocop - ruby-reek - ruby-rubylint - ruby - ruby-jruby - rust-cargo - rust - rust-clippy - scala - scala-scalastyle - scheme-chicken - scss-lint - scss-stylelint - sass/scss-sass-lint - sass - scss - sh-bash - sh-posix-dash - sh-posix-bash - sh-zsh - sh-shellcheck - slim - slim-lint - sql-sqlint - systemd-analyze - tcl-nagelfar - tex-chktex - tex-lacheck - texinfo - textlint - typescript-tslint - verilog-verilator - vhdl-ghdl - xml-xmlstarlet - xml-xmllint - yaml-jsyaml - yaml-ruby) - "Syntax checkers available for automatic selection. - -A list of Flycheck syntax checkers to choose from when syntax -checking a buffer. Flycheck will automatically select a suitable -syntax checker from this list, unless `flycheck-checker' is set, -either directly or with `flycheck-select-checker'. - -You should not need to change this variable normally. In order -to disable syntax checkers, please use -`flycheck-disabled-checkers'. This variable is intended for 3rd -party extensions to tell Flycheck about new syntax checkers. - -Syntax checkers in this list must be defined with -`flycheck-define-checker'." - :group 'flycheck - :type '(repeat (symbol :tag "Checker")) - :risky t) - -(defcustom flycheck-disabled-checkers nil - "Syntax checkers excluded from automatic selection. - -A list of Flycheck syntax checkers to exclude from automatic -selection. Flycheck will never automatically select a syntax -checker in this list, regardless of the value of -`flycheck-checkers'. - -However, syntax checkers in this list are still available for -manual selection with `flycheck-select-checker'. - -Use this variable to disable syntax checkers, instead of removing -the syntax checkers from `flycheck-checkers'. You may also use -this option as a file or directory local variable to disable -specific checkers in individual files and directories -respectively." - :group 'flycheck - :type '(repeat (symbol :tag "Checker")) - :package-version '(flycheck . "0.16") - :safe #'flycheck-symbol-list-p) -(make-variable-buffer-local 'flycheck-disabled-checkers) - -(defvar-local flycheck--automatically-disabled-checkers nil - "List of syntax checkers automatically disabled for this buffer. - -A checker can be automatically disabled in two cases: - -1. Its `:enabled' predicate returned false. -2. It returned too many errors (see `flycheck-checker-error-threshold'). - -To trigger a reverification from Emacs Lisp code, do not modify -this variable: use `flycheck-reset-enabled-checker'.") - -(defvar-local flycheck-checker nil - "Syntax checker to use for the current buffer. - -If unset or nil, automatically select a suitable syntax checker -from `flycheck-checkers' on every syntax check. - -If set to a syntax checker only use this syntax checker and never -select one from `flycheck-checkers' automatically. The syntax -checker is used regardless of whether it is contained in -`flycheck-checkers' or `flycheck-disabled-checkers'. If the -syntax checker is unusable in the current buffer an error is -signaled. - -A syntax checker assigned to this variable must be defined with -`flycheck-define-checker'. - -Use the command `flycheck-select-checker' to select a syntax -checker for the current buffer, or set this variable as file -local variable to always use a specific syntax checker for a -file. See Info Node `(emacs)Specifying File Variables' for more -information about file variables.") -(put 'flycheck-checker 'safe-local-variable 'flycheck-registered-checker-p) - -(defcustom flycheck-locate-config-file-functions nil - "Functions to locate syntax checker configuration files. - -Each function in this hook must accept two arguments: The value -of the configuration file variable, and the syntax checker -symbol. It must return either a string with an absolute path to -the configuration file, or nil, if it cannot locate the -configuration file. - -The functions in this hook are called in order of appearance, until a -function returns non-nil. The configuration file returned by that -function is then given to the syntax checker if it exists. - -This variable is an abnormal hook. See Info -node `(elisp)Hooks'." - :group 'flycheck - :type 'hook - :risky t) - -(defcustom flycheck-checker-error-threshold 400 - "Maximum errors allowed per syntax checker. - -The value of this variable is either an integer denoting the -maximum number of errors per syntax checker and buffer, or nil to -not limit the errors reported from a syntax checker. - -If this variable is a number and a syntax checker reports more -errors than the value of this variable, its errors are not -discarded, and not highlighted in the buffer or available in the -error list. The affected syntax checker is also disabled for -future syntax checks of the buffer." - :group 'flycheck - :type '(choice (const :tag "Do not limit reported errors" nil) - (integer :tag "Maximum number of errors")) - :risky t - :package-version '(flycheck . "0.22")) - -(defcustom flycheck-process-error-functions nil - "Functions to process errors. - -Each function in this hook must accept a single argument: A -Flycheck error to process. - -All functions in this hook are called in order of appearance, -until a function returns non-nil. Thus, a function in this hook -may return nil, to allow for further processing of the error, or -any non-nil value, to indicate that the error was fully processed -and inhibit any further processing. - -The functions are called for each newly parsed error immediately -after the corresponding syntax checker finished. At this stage, -the overlays from the previous syntax checks are still present, -and there may be further syntax checkers in the chain. - -This variable is an abnormal hook. See Info -node `(elisp)Hooks'." - :group 'flycheck - :type 'hook - :package-version '(flycheck . "0.13") - :risky t) - -(defcustom flycheck-display-errors-delay 0.9 - "Delay in seconds before displaying errors at point. - -Use floating point numbers to express fractions of seconds." - :group 'flycheck - :type 'number - :package-version '(flycheck . "0.15") - :safe #'numberp) - -(defcustom flycheck-display-errors-function #'flycheck-display-error-messages - "Function to display error messages. - -If set to a function, call the function with the list of errors -to display as single argument. Each error is an instance of the -`flycheck-error' struct. - -If set to nil, do not display errors at all." - :group 'flycheck - :type '(choice (const :tag "Display error messages" - flycheck-display-error-messages) - (const :tag "Display error messages only if no error list" - flycheck-display-error-messages-unless-error-list) - (function :tag "Error display function")) - :package-version '(flycheck . "0.13") - :risky t) - -(defcustom flycheck-help-echo-function #'flycheck-help-echo-all-error-messages - "Function to compute the contents of the error tooltips. - -If set to a function, call the function with the list of errors -to display as single argument. Each error is an instance of the -`flycheck-error' struct. The function is used to set the -help-echo property of flycheck error overlays. It should return -a string, which is displayed when the user hovers over an error -or presses \\[display-local-help]. - -If set to nil, do not show error tooltips." - :group 'flycheck - :type '(choice (const :tag "Concatenate error messages to form a tooltip" - flycheck-help-echo-all-error-messages) - (function :tag "Help echo function")) - :package-version '(flycheck . "0.25") - :risky t) - -(defcustom flycheck-command-wrapper-function #'identity - "Function to modify checker commands before execution. - -The value of this option is a function which is given a list -containing the full command of a syntax checker after -substitution through `flycheck-substitute-argument' but before -execution. The function may return a new command for Flycheck to -execute. - -The default value is `identity' which does not change the -command. You may provide your own function to run Flycheck -commands through `bundle exec', `nix-shell' or similar wrappers." - :group 'flycheck - :type '(choice (const :tag "Do not modify commands" identity) - (function :tag "Modify command with a custom function")) - :package-version '(flycheck . "0.25") - :risky t) - -(defcustom flycheck-executable-find #'flycheck-default-executable-find - "Function to search for executables. - -The value of this option is a function which is given the name or -path of an executable and shall return the full path to the -executable, or nil if the executable does not exit. - -The default is `flycheck-default-executable-find', which searches -variable `exec-path' when given a command name, and resolves -paths to absolute ones. You can customize this option to search -for checkers in other environments such as bundle or NixOS -sandboxes." - :group 'flycheck - :type '(choice - (const :tag "Search executables in `exec-path'" - flycheck-default-executable-find) - (function :tag "Search executables with a custom function")) - :package-version '(flycheck . "32") - :risky t) - -(defun flycheck-default-executable-find (executable) - "Resolve EXECUTABLE to a full path. - -Like `executable-find', but supports relative paths. - -Attempts invoking `executable-find' first; if that returns nil, -and EXECUTABLE contains a directory component, expands to a full -path and tries invoking `executable-find' again." - ;; file-name-directory returns non-nil iff the given path has a - ;; directory component. - (or - (executable-find executable) - (when (file-name-directory executable) - (executable-find (expand-file-name executable))))) - -(defcustom flycheck-indication-mode 'left-fringe - "The indication mode for Flycheck errors and warnings. - -This variable controls how Flycheck indicates errors in buffers. -May either be `left-fringe', `right-fringe', or nil. - -If set to `left-fringe' or `right-fringe', indicate errors and -warnings via icons in the left and right fringe respectively. - -If set to nil, do not indicate errors and warnings, but just -highlight them according to `flycheck-highlighting-mode'." - :group 'flycheck - :type '(choice (const :tag "Indicate in the left fringe" left-fringe) - (const :tag "Indicate in the right fringe" right-fringe) - (const :tag "Do not indicate" nil)) - :safe #'symbolp) - -(defcustom flycheck-highlighting-mode 'symbols - "The highlighting mode for Flycheck errors and warnings. - -The highlighting mode controls how Flycheck highlights errors in -buffers. The following modes are known: - -`columns' - Highlight the error column. If the error does not have a column, - highlight the whole line. - -`symbols' - Highlight the symbol at the error column, if there is any, - otherwise behave like `columns'. This is the default. - -`sexps' - Highlight the expression at the error column, if there is - any, otherwise behave like `columns'. Note that this mode - can be *very* slow in some major modes. - -`lines' - Highlight the whole line. - -nil - Do not highlight errors at all. However, errors will still - be reported in the mode line and in error message popups, - and indicated according to `flycheck-indication-mode'." - :group 'flycheck - :type '(choice (const :tag "Highlight columns only" columns) - (const :tag "Highlight symbols" symbols) - (const :tag "Highlight expressions" sexps) - (const :tag "Highlight whole lines" lines) - (const :tag "Do not highlight errors" nil)) - :package-version '(flycheck . "0.14") - :safe #'symbolp) - -(defcustom flycheck-check-syntax-automatically '(save - idle-change - new-line - mode-enabled) - "When Flycheck should check syntax automatically. - -This variable is a list of events that may trigger syntax checks. -The following events are known: - -`save' - Check syntax immediately after the buffer was saved. - -`idle-change' - Check syntax a short time (see `flycheck-idle-change-delay') - after the last change to the buffer. - -`idle-buffer-switch' - Check syntax a short time (see `flycheck-idle-buffer-switch-delay') - after the user switches to a buffer. - -`new-line' - Check syntax immediately after a new line was inserted into - the buffer. - -`mode-enabled' - Check syntax immediately when variable `flycheck-mode' is - non-nil. - -Flycheck performs a syntax checks only on events, which are -contained in this list. For instance, if the value of this -variable is `(mode-enabled save)', Flycheck will only check if -the mode is enabled or the buffer was saved, but never after -changes to the buffer contents. - -If nil, never check syntax automatically. In this case, use -`flycheck-buffer' to start a syntax check manually." - :group 'flycheck - :type '(set (const :tag "After the buffer was saved" save) - (const :tag "After the buffer was changed and idle" idle-change) - (const - :tag "After switching the current buffer" idle-buffer-switch) - (const :tag "After a new line was inserted" new-line) - (const :tag "After `flycheck-mode' was enabled" mode-enabled)) - :package-version '(flycheck . "0.12") - :safe #'flycheck-symbol-list-p) - -(defcustom flycheck-idle-change-delay 0.5 - "How many seconds to wait after a change before checking syntax. - -After the buffer was changed, Flycheck will wait as many seconds -as the value of this variable before starting a syntax check. If -the buffer is modified during this time, Flycheck will wait -again. - -This variable has no effect, if `idle-change' is not contained in -`flycheck-check-syntax-automatically'." - :group 'flycheck - :type 'number - :package-version '(flycheck . "0.13") - :safe #'numberp) - -(defcustom flycheck-idle-buffer-switch-delay 0.5 - "How many seconds to wait after switching buffers before checking syntax. - -After the user switches to a new buffer, Flycheck will wait as -many seconds as the value of this variable before starting a -syntax check. If the user switches to another buffer during this -time, whether a syntax check is still performed depends on the -value of `flycheck-buffer-switch-check-intermediate-buffers'. - -This variable has no effect if `idle-buffer-switch' is not -contained in `flycheck-check-syntax-automatically'." - :group 'flycheck - :type 'number - :package-version '(flycheck . "32") - :safe #'numberp) - -(defcustom flycheck-buffer-switch-check-intermediate-buffers nil - "Whether to check syntax in a buffer you only visit briefly. - -If nil, then when you switch to a buffer but switch to another -buffer before the syntax check is performed, then the check is -canceled. If non-nil, then syntax checks due to switching -buffers are always performed. This only affects buffer switches -that happen less than `flycheck-idle-buffer-switch-delay' seconds -apart. - -This variable has no effect if `idle-buffer-switch' is not -contained in `flycheck-check-syntax-automatically'." - :group 'flycheck - :type 'boolean - :package-version '(flycheck . "32") - :safe #'booleanp) - -(defcustom flycheck-standard-error-navigation t - "Whether to support error navigation with `next-error'. - -If non-nil, enable navigation of Flycheck errors with -`next-error', `previous-error' and `first-error'. Otherwise, -these functions just navigate errors from compilation modes. - -Flycheck error navigation with `flycheck-next-error', -`flycheck-previous-error' and `flycheck-first-error' is always -enabled, regardless of the value of this variable. - -Note that this setting only takes effect when variable -`flycheck-mode' is non-nil. Changing it will not affect buffers -where variable `flycheck-mode' is already non-nil." - :group 'flycheck - :type 'boolean - :package-version '(flycheck . "0.15") - :safe #'booleanp) - -(define-widget 'flycheck-minimum-level 'lazy - "A radio-type choice of minimum error levels. - -See `flycheck-navigation-minimum-level' and -`flycheck-error-list-minimum-level'." - :type '(radio (const :tag "All locations" nil) - (const :tag "Informational messages" info) - (const :tag "Warnings" warning) - (const :tag "Errors" error) - (symbol :tag "Custom error level"))) - -(defcustom flycheck-navigation-minimum-level nil - "The minimum level of errors to navigate. - -If set to an error level, only navigate errors whose error level -is at least as severe as this one. If nil, navigate all errors." - :group 'flycheck - :type 'flycheck-minimum-level - :safe #'flycheck-error-level-p - :package-version '(flycheck . "0.21")) - -(defcustom flycheck-error-list-minimum-level nil - "The minimum level of errors to display in the error list. - -If set to an error level, only display errors whose error level -is at least as severe as this one in the error list. If nil, -display all errors. - -This is the default level, used when the error list is opened. -You can temporarily change the level using -\\[flycheck-error-list-set-filter], or reset it to this value -using \\[flycheck-error-list-reset-filter]." - :group 'flycheck - :type 'flycheck-minimum-level - :safe #'flycheck-error-level-p - :package-version '(flycheck . "0.24")) - -(defcustom flycheck-relevant-error-other-file-minimum-level 'error - "The minimum level of errors from other files to display in this buffer. - -If set to an error level, only display errors from other files -whose error level is at least as severe as this one. If nil, -display all errors from other files." - :group 'flycheck - :type 'flycheck-minimum-level - :safe #'flycheck-error-level-p - :package-version '(flycheck . "32")) - -(defcustom flycheck-relevant-error-other-file-show t - "Whether to show errors from other files." - :group 'flycheck - :type 'boolean - :package-version '(flycheck . "32") - :safe #'booleanp) - -(defcustom flycheck-completing-read-function #'completing-read - "Function to read from minibuffer with completion. - -The function must be compatible to the built-in `completing-read' -function." - :group 'flycheck - :type '(choice (const :tag "Default" completing-read) - (const :tag "IDO" ido-completing-read) - (function :tag "Custom function")) - :risky t - :package-version '(flycheck . "26")) - -(defcustom flycheck-temp-prefix "flycheck" - "Prefix for temporary files created by Flycheck." - :group 'flycheck - :type 'string - :package-version '(flycheck . "0.19") - :risky t) - -(defcustom flycheck-mode-hook nil - "Hooks to run after command `flycheck-mode' is toggled." - :group 'flycheck - :type 'hook - :risky t) - -(defcustom flycheck-after-syntax-check-hook nil - "Functions to run after each syntax check. - -This hook is run after a syntax check was finished. - -At this point, *all* chained checkers were run, and all errors -were parsed, highlighted and reported. The variable -`flycheck-current-errors' contains all errors from all syntax -checkers run during the syntax check, so you can apply any error -analysis functions. - -Note that this hook does *not* run after each individual syntax -checker in the syntax checker chain, but only after the *last -checker*. - -This variable is a normal hook. See Info node `(elisp)Hooks'." - :group 'flycheck - :type 'hook - :risky t) - -(defcustom flycheck-before-syntax-check-hook nil - "Functions to run before each syntax check. - -This hook is run right before a syntax check starts. - -Error information from the previous syntax check is *not* -cleared before this hook runs. - -Note that this hook does *not* run before each individual syntax -checker in the syntax checker chain, but only before the *first -checker*. - -This variable is a normal hook. See Info node `(elisp)Hooks'." - :group 'flycheck - :type 'hook - :risky t) - -(defcustom flycheck-syntax-check-failed-hook nil - "Functions to run if a syntax check failed. - -This hook is run whenever an error occurs during Flycheck's -internal processing. No information about the error is given to -this hook. - -You should use this hook to conduct additional cleanup actions -when Flycheck failed. - -This variable is a normal hook. See Info node `(elisp)Hooks'." - :group 'flycheck - :type 'hook - :risky t) - -(defcustom flycheck-status-changed-functions nil - "Functions to run if the Flycheck status changed. - -This hook is run whenever the status of Flycheck changes. Each -hook function takes the status symbol as single argument, as -given to `flycheck-report-status', which see. - -This variable is an abnormal hook. See Info -node `(elisp)Hooks'." - :group 'flycheck - :type 'hook - :risky t - :package-version '(flycheck . "0.20")) - -(defcustom flycheck-error-list-after-refresh-hook nil - "Functions to run after the error list was refreshed. - -This hook is run whenever the error list is refreshed. - -This variable is a normal hook. See Info node `(elisp)Hooks'." - :group 'flycheck - :type 'hook - :risky t - :package-version '(flycheck . "0.21")) - -(defface flycheck-error - '((((supports :underline (:style wave))) - :underline (:style wave :color "Red1")) - (t - :underline t :inherit error)) - "Flycheck face for errors." - :package-version '(flycheck . "0.13") - :group 'flycheck-faces) - -(defface flycheck-warning - '((((supports :underline (:style wave))) - :underline (:style wave :color "DarkOrange")) - (t - :underline t :inherit warning)) - "Flycheck face for warnings." - :package-version '(flycheck . "0.13") - :group 'flycheck-faces) - -(defface flycheck-info - '((((supports :underline (:style wave))) - :underline (:style wave :color "ForestGreen")) - (t - :underline t :inherit success)) - "Flycheck face for informational messages." - :package-version '(flycheck . "0.15") - :group 'flycheck-faces) - -(defface flycheck-fringe-error - '((t :inherit error)) - "Flycheck face for fringe error indicators." - :package-version '(flycheck . "0.13") - :group 'flycheck-faces) - -(defface flycheck-fringe-warning - '((t :inherit warning)) - "Flycheck face for fringe warning indicators." - :package-version '(flycheck . "0.13") - :group 'flycheck-faces) - -(defface flycheck-fringe-info - ;; Semantically `success' is probably not the right face, but it looks nice as - ;; a base face - '((t :inherit success)) - "Flycheck face for fringe info indicators." - :package-version '(flycheck . "0.15") - :group 'flycheck-faces) - -(defface flycheck-error-list-error - '((t :inherit error)) - "Flycheck face for error messages in the error list." - :package-version '(flycheck . "0.16") - :group 'flycheck-faces) - -(defface flycheck-error-list-warning - '((t :inherit warning)) - "Flycheck face for warning messages in the error list." - :package-version '(flycheck . "0.16") - :group 'flycheck-faces) - -(defface flycheck-error-list-info - '((t :inherit success)) - "Flycheck face for info messages in the error list." - :package-version '(flycheck . "0.16") - :group 'flycheck-faces) - -;; The base faces for the following two faces are inspired by Compilation Mode -(defface flycheck-error-list-line-number - '((t :inherit font-lock-constant-face)) - "Face for line numbers in the error list." - :group 'flycheck-faces - :package-version '(flycheck . "0.16")) - -(defface flycheck-error-list-column-number - '((t :inherit font-lock-constant-face)) - "Face for line numbers in the error list." - :group 'flycheck-faces - :package-version '(flycheck . "0.16")) - -(defface flycheck-error-list-filename - '((t :inherit font-lock-variable-name-face)) - "Face for filenames in the error list." - :group 'flycheck-faces - :package-version '(flycheck . "32")) - -(defface flycheck-error-list-id - '((t :inherit font-lock-type-face)) - "Face for the error ID in the error list." - :group 'flycheck-faces - :package-version '(flycheck . "0.22")) - -(defface flycheck-error-list-id-with-explainer - '((t :inherit flycheck-error-list-id - :box (:style released-button))) - "Face for the error ID in the error list, for errors that have an explainer." - :group 'flycheck-faces - :package-version '(flycheck . "30")) - -(defface flycheck-error-list-checker-name - '((t :inherit font-lock-function-name-face)) - "Face for the syntax checker name in the error list." - :group 'flycheck-faces - :package-version '(flycheck . "0.21")) - -(defface flycheck-error-list-highlight - '((t :inherit highlight)) - "Flycheck face to highlight errors in the error list." - :package-version '(flycheck . "0.15") - :group 'flycheck-faces) - -(defface flycheck-verify-select-checker - '((t :box (:style released-button))) - "Flycheck face for the 'select' button in the verify setup buffer." - :package-version '(flycheck . "32") - :group 'flycheck-faces) - -(defvar flycheck-command-map - (let ((map (make-sparse-keymap))) - (define-key map "c" #'flycheck-buffer) - (define-key map "C" #'flycheck-clear) - (define-key map (kbd "C-c") #'flycheck-compile) - (define-key map "n" #'flycheck-next-error) - (define-key map "p" #'flycheck-previous-error) - (define-key map "l" #'flycheck-list-errors) - (define-key map (kbd "C-w") #'flycheck-copy-errors-as-kill) - (define-key map "s" #'flycheck-select-checker) - (define-key map "?" #'flycheck-describe-checker) - (define-key map "h" #'flycheck-display-error-at-point) - (define-key map "e" #'flycheck-explain-error-at-point) - (define-key map "H" #'display-local-help) - (define-key map "i" #'flycheck-manual) - (define-key map "V" #'flycheck-version) - (define-key map "v" #'flycheck-verify-setup) - (define-key map "x" #'flycheck-disable-checker) - map) - "Keymap of Flycheck interactive commands.") - -(defcustom flycheck-keymap-prefix (kbd "C-c !") - "Prefix for key bindings of Flycheck. - -Changing this variable outside Customize does not have any -effect. To change the keymap prefix from Lisp, you need to -explicitly re-define the prefix key: - - (define-key flycheck-mode-map flycheck-keymap-prefix nil) - (setq flycheck-keymap-prefix (kbd \"C-c f\")) - (define-key flycheck-mode-map flycheck-keymap-prefix - flycheck-command-map) - -Please note that Flycheck's manual documents the default -keybindings. Changing this variable is at your own risk." - :group 'flycheck - :package-version '(flycheck . "0.19") - :type 'string - :risky t - :set - (lambda (variable key) - (when (and (boundp variable) (boundp 'flycheck-mode-map)) - (define-key flycheck-mode-map (symbol-value variable) nil) - (define-key flycheck-mode-map key flycheck-command-map)) - (set-default variable key))) - -(defcustom flycheck-mode-line '(:eval (flycheck-mode-line-status-text)) - "Mode line lighter for Flycheck. - -The value of this variable is a mode line template as in -`mode-line-format'. See Info Node `(elisp)Mode Line Format' for -more information. Note that it should contain a _single_ mode -line construct only. - -Customize this variable to change how Flycheck reports its status -in the mode line. You may use `flycheck-mode-line-status-text' -to obtain a human-readable status text, including an -error/warning count. - -You may also assemble your own status text. The current status -of Flycheck is available in `flycheck-last-status-change'. The -errors in the current buffer are stored in -`flycheck-current-errors', and the function -`flycheck-count-errors' may be used to obtain the number of -errors grouped by error level. - -Set this variable to nil to disable the mode line completely." - :group 'flycheck - :type 'sexp - :risky t - :package-version '(flycheck . "0.20")) - -(defcustom flycheck-mode-line-prefix "FlyC" - "Base mode line lighter for Flycheck. - -This will have an effect only with the default -`flycheck-mode-line'. - -If you've customized `flycheck-mode-line' then the customized -function must be updated to use this variable." - :group 'flycheck - :type 'string - :package-version '(flycheck . "26")) - -(defcustom flycheck-error-list-mode-line - `(,(propertized-buffer-identification "%12b") - " for buffer " - (:eval (flycheck-error-list-propertized-source-name)) - (:eval (flycheck-error-list-mode-line-filter-indicator))) - "Mode line construct for Flycheck error list. - -The value of this variable is a mode line template as in -`mode-line-format', to be used as -`mode-line-buffer-identification' in `flycheck-error-list-mode'. -See Info Node `(elisp)Mode Line Format' for more information. - -Customize this variable to change how the error list appears in -the mode line. The default shows the name of the buffer and the -name of the source buffer, i.e. the buffer whose errors are -currently listed." - :group 'flycheck - :type 'sexp - :risky t - :package-version '(flycheck . "0.20")) - -(defcustom flycheck-global-modes t - "Modes for which option `flycheck-mode' is turned on. - -If t, Flycheck Mode is turned on for all major modes. If a list, -Flycheck Mode is turned on for all `major-mode' symbols in that -list. If the `car' of the list is `not', Flycheck Mode is turned -on for all `major-mode' symbols _not_ in that list. If nil, -Flycheck Mode is never turned on by command -`global-flycheck-mode'. - -Note that Flycheck is never turned on for modes whose -`mode-class' property is `special' (see Info node `(elisp)Major -Mode Conventions'), regardless of the value of this option. - -Only has effect when variable `global-flycheck-mode' is non-nil." - :group 'flycheck - :type '(choice (const :tag "none" nil) - (const :tag "all" t) - (set :menu-tag "mode specific" :tag "modes" - :value (not) - (const :tag "Except" not) - (repeat :inline t (symbol :tag "mode")))) - :risky t - :package-version '(flycheck . "0.23")) - -;; Add built-in functions to our hooks, via `add-hook', to make sure that our -;; functions are really present, even if the variable was implicitly defined by -;; another call to `add-hook' that occurred before Flycheck was loaded. See -;; http://lists.gnu.org/archive/html/emacs-devel/2015-02/msg01271.html for why -;; we don't initialize the hook variables right away. We append our own -;; functions, because a user likely expects that their functions come first, -;; even if the added them before Flycheck was loaded. -(dolist (hook (list #'flycheck-locate-config-file-by-path - #'flycheck-locate-config-file-ancestor-directories - #'flycheck-locate-config-file-home)) - (add-hook 'flycheck-locate-config-file-functions hook 'append)) - -(add-hook 'flycheck-process-error-functions #'flycheck-add-overlay 'append) - - -;;; Global Flycheck menu -(defvar flycheck-mode-menu-map - (easy-menu-create-menu - "Syntax Checking" - '(["Enable on-the-fly syntax checking" flycheck-mode - :style toggle :selected flycheck-mode - :enable (or flycheck-mode - ;; Don't let users toggle the mode if there is no syntax - ;; checker for this buffer - (seq-find #'flycheck-checker-supports-major-mode-p - flycheck-checkers))] - ["Check current buffer" flycheck-buffer flycheck-mode] - ["Clear errors in buffer" flycheck-clear t] - "---" - ["Go to next error" flycheck-next-error flycheck-mode] - ["Go to previous error" flycheck-previous-error flycheck-mode] - ["Show all errors" flycheck-list-errors flycheck-mode] - "---" - ["Copy messages at point" flycheck-copy-errors-as-kill - (flycheck-overlays-at (point))] - ["Explain error at point" flycheck-explain-error-at-point] - "---" - ["Select syntax checker" flycheck-select-checker flycheck-mode] - ["Disable syntax checker" flycheck-disable-checker flycheck-mode] - ["Set executable of syntax checker" flycheck-set-checker-executable - flycheck-mode] - "---" - ["Describe syntax checker" flycheck-describe-checker t] - ["Verify setup" flycheck-verify-setup t] - ["Show Flycheck version" flycheck-version t] - ["Read the Flycheck manual" flycheck-info t])) - "Menu of command `flycheck-mode'.") - -(easy-menu-add-item nil '("Tools") flycheck-mode-menu-map "Spell Checking") - - -;;; Version information, manual and loading of Flycheck -(defun flycheck-version (&optional show-version) - "Get the Flycheck version as string. - -If called interactively or if SHOW-VERSION is non-nil, show the -version in the echo area and the messages buffer. - -The returned string includes both, the version from package.el -and the library version, if both a present and different. - -If the version number could not be determined, signal an error, -if called interactively, or if SHOW-VERSION is non-nil, otherwise -just return nil." - (interactive (list t)) - (let ((version (pkg-info-version-info 'flycheck))) - (when show-version - (message "Flycheck version: %s" version)) - version)) - -(defun flycheck-unload-function () - "Unload function for Flycheck." - (global-flycheck-mode -1) - (easy-menu-remove-item nil '("Tools") (cadr flycheck-mode-menu-map)) - (remove-hook 'kill-emacs-hook #'flycheck-global-teardown) - (setq find-function-regexp-alist - (assq-delete-all 'flycheck-checker find-function-regexp-alist))) - -;;;###autoload -(defun flycheck-manual () - "Open the Flycheck manual." - (interactive) - (browse-url "http://www.flycheck.org")) - -(define-obsolete-function-alias 'flycheck-info - 'flycheck-manual "26" "Open the Flycheck manual.") - - -;;; Utility functions -(defun flycheck-sexp-to-string (sexp) - "Convert SEXP to a string. - -Like `prin1-to-string' but ensure that the returned string -is loadable." - (let ((print-quoted t) - (print-length nil) - (print-level nil)) - (prin1-to-string sexp))) - -(defun flycheck-string-to-number-safe (string) - "Safely convert STRING to a number. - -If STRING is of string type and a numeric string, convert STRING -to a number and return it. Otherwise return nil." - (let ((number-re (rx string-start (one-or-more (any digit)) string-end))) - (when (and (stringp string) (string-match-p number-re string)) - (string-to-number string)))) - -(defun flycheck-string-list-p (obj) - "Determine if OBJ is a list of strings." - (and (listp obj) (seq-every-p #'stringp obj))) - -(defun flycheck-symbol-list-p (obj) - "Determine if OBJ is a list of symbols." - (and (listp obj) (seq-every-p #'symbolp obj))) - -(defun flycheck-same-files-p (file-a file-b) - "Determine whether FILE-A and FILE-B refer to the same file." - (let ((file-a (expand-file-name file-a)) - (file-b (expand-file-name file-b))) - ;; We must resolve symbolic links here, since some syntax checker always - ;; output canonical file names with all symbolic links resolved. However, - ;; we still do a simple path compassion first, to avoid the comparatively - ;; expensive file system call if possible. See - ;; https://github.com/flycheck/flycheck/issues/561 - (or (string= (directory-file-name file-a) (directory-file-name file-b)) - (string= (directory-file-name (file-truename file-a)) - (directory-file-name (file-truename file-b)))))) - -(defvar-local flycheck-temporaries nil - "Temporary files and directories created by Flycheck.") - -(defun flycheck-temp-dir-system () - "Create a unique temporary directory. - -Use `flycheck-temp-prefix' as prefix, and add the directory to -`flycheck-temporaries'. - -Return the path of the directory" - (let* ((tempdir (make-temp-file flycheck-temp-prefix 'directory))) - (push tempdir flycheck-temporaries) - tempdir)) - -(defun flycheck-temp-file-system (filename) - "Create a temporary file named after FILENAME. - -If FILENAME is non-nil, this function creates a temporary -directory with `flycheck-temp-dir-system', and creates a file -with the same name as FILENAME in this directory. - -Otherwise this function creates a temporary file with -`flycheck-temp-prefix' and a random suffix. The path of the file -is added to `flycheck-temporaries'. - -Return the path of the file." - (let ((tempfile (convert-standard-filename - (if filename - (expand-file-name (file-name-nondirectory filename) - (flycheck-temp-dir-system)) - (make-temp-file flycheck-temp-prefix))))) - (push tempfile flycheck-temporaries) - tempfile)) - -(defun flycheck-temp-file-inplace (filename) - "Create an in-place copy of FILENAME. - -Prefix the file with `flycheck-temp-prefix' and add the path of -the file to `flycheck-temporaries'. - -If FILENAME is nil, fall back to `flycheck-temp-file-system'. - -Return the path of the file." - (if filename - (let* ((tempname (format "%s_%s" - flycheck-temp-prefix - (file-name-nondirectory filename))) - (tempfile (convert-standard-filename - (expand-file-name tempname - (file-name-directory filename))))) - (push tempfile flycheck-temporaries) - tempfile) - (flycheck-temp-file-system filename))) - -(defun flycheck-temp-directory (checker) - "Return the directory where CHECKER writes temporary files. - -Return nil if the CHECKER does not write temporary files." - (let ((args (flycheck-checker-arguments checker))) - (cond - ((memq 'source args) temporary-file-directory) - ((memq 'source-inplace args) - (if buffer-file-name (file-name-directory buffer-file-name) - temporary-file-directory)) - (t nil)))) - -(defun flycheck-temp-files-writable-p (checker) - "Whether CHECKER can write temporary files. - -If CHECKER has `source' or `source-inplace' in its `:command', -return whether flycheck has the permissions to create the -respective temporary files. - -Return t if CHECKER does not use temporary files." - (let ((dir (flycheck-temp-directory checker))) - (or (not dir) (file-writable-p dir)))) - -(defun flycheck-save-buffer-to-file (file-name) - "Save the contents of the current buffer to FILE-NAME." - (make-directory (file-name-directory file-name) t) - (let ((jka-compr-inhibit t)) - (write-region nil nil file-name nil 0))) - -(defun flycheck-save-buffer-to-temp (temp-file-fn) - "Save buffer to temp file returned by TEMP-FILE-FN. - -Return the name of the temporary file." - (let ((filename (funcall temp-file-fn (buffer-file-name)))) - ;; Do not flush short-lived temporary files onto disk - (let ((write-region-inhibit-fsync t)) - (flycheck-save-buffer-to-file filename)) - filename)) - -(defun flycheck-prepend-with-option (option items &optional prepend-fn) - "Prepend OPTION to each item in ITEMS, using PREPEND-FN. - -Prepend OPTION to each item in ITEMS. - -ITEMS is a list of strings to pass to the syntax checker. OPTION -is the option, as string. PREPEND-FN is a function called to -prepend OPTION to each item in ITEMS. It receives the option and -a single item from ITEMS as argument, and must return a string or -a list of strings with OPTION prepended to the item. If -PREPEND-FN is nil or omitted, use `list'. - -Return a list of strings where OPTION is prepended to each item -in ITEMS using PREPEND-FN. If PREPEND-FN returns a list, it is -spliced into the resulting list." - (unless (stringp option) - (error "Option %S is not a string" option)) - (unless prepend-fn - (setq prepend-fn #'list)) - (let ((prepend - (lambda (item) - (let ((result (funcall prepend-fn option item))) - (cond - ((and (listp result) (seq-every-p #'stringp result)) result) - ((stringp result) (list result)) - (t (error "Invalid result type for option: %S" result))))))) - (apply #'append (seq-map prepend items)))) - -(defun flycheck-find-in-buffer (pattern) - "Find PATTERN in the current buffer. - -Return the result of the first matching group of PATTERN, or nil, -if PATTERN did not match." - (save-restriction - (widen) - (save-excursion - (goto-char (point-min)) - (when (re-search-forward pattern nil 'no-error) - (match-string-no-properties 1))))) - -(defun flycheck-buffer-empty-p (&optional buffer) - "Whether a BUFFER is empty. - -If buffer is nil or omitted check the current buffer. - -Return non-nil if so, or nil if the buffer has content." - (<= (buffer-size buffer) 0)) - -(defun flycheck-ephemeral-buffer-p () - "Determine whether the current buffer is an ephemeral buffer. - -See Info node `(elisp)Buffer Names' for information about -ephemeral buffers." - (string-prefix-p " " (buffer-name))) - -(defun flycheck-encrypted-buffer-p () - "Determine whether the current buffer is an encrypted file. - -See Info node `(epa)Top' for Emacs' interface to encrypted -files." - ;; The EPA file handler sets this variable locally to remember the recipients - ;; of the encrypted file for re-encryption. Hence, a local binding of this - ;; variable is a good indication that the buffer is encrypted. I haven't - ;; found any better indicator anyway. - (local-variable-p 'epa-file-encrypt-to)) - -(defun flycheck-autoloads-file-p () - "Determine whether the current buffer is an autoloads file. - -Autoloads are generated by package.el during installation." - (string-suffix-p "-autoloads.el" (buffer-name))) - -(defun flycheck-in-user-emacs-directory-p (filename) - "Whether FILENAME is in `user-emacs-directory'." - (string-prefix-p (file-name-as-directory (file-truename user-emacs-directory)) - (file-truename filename))) - -(defun flycheck-safe-delete (file-or-dir) - "Safely delete FILE-OR-DIR." - (ignore-errors - (if (file-directory-p file-or-dir) - (delete-directory file-or-dir 'recursive) - (delete-file file-or-dir)))) - -(defun flycheck-safe-delete-temporaries () - "Safely delete all temp files and directories of Flycheck. - -Safely delete all files and directories listed in -`flycheck-temporaries' and set the variable's value to nil." - (seq-do #'flycheck-safe-delete flycheck-temporaries) - (setq flycheck-temporaries nil)) - -(defun flycheck-rx-file-name (form) - "Translate the `(file-name)' FORM into a regular expression." - (let ((body (or (cdr form) '((minimal-match - (one-or-more not-newline)))))) - (rx-submatch-n `(group-n 1 ,@body)))) - -(defun flycheck-rx-message (form) - "Translate the `(message)' FORM into a regular expression." - (let ((body (or (cdr form) '((one-or-more not-newline))))) - (rx-submatch-n `(group-n 4 ,@body)))) - -(defun flycheck-rx-id (form) - "Translate the `(id)' FORM into a regular expression." - (rx-submatch-n `(group-n 5 ,@(cdr form)))) - -(defun flycheck-rx-to-string (form &optional no-group) - "Like `rx-to-string' for FORM, but with special keywords: - -`line' - matches the line number. - -`column' - matches the column number. - -`(file-name SEXP ...)' - matches the file name. SEXP describes the file name. If no - SEXP is given, use a default body of `(minimal-match - (one-or-more not-newline))'. - -`(message SEXP ...)' - matches the message. SEXP constitutes the body of the - message. If no SEXP is given, use a default body - of `(one-or-more not-newline)'. - -`(id SEXP ...)' - matches an error ID. SEXP describes the ID. - -NO-GROUP is passed to `rx-to-string'. - -See `rx' for a complete list of all built-in `rx' forms." - (let ((rx-constituents - (append - `((line . ,(rx (group-n 2 (one-or-more digit)))) - (column . ,(rx (group-n 3 (one-or-more digit)))) - (file-name flycheck-rx-file-name 0 nil) - (message flycheck-rx-message 0 nil) - (id flycheck-rx-id 0 nil)) - rx-constituents nil))) - (rx-to-string form no-group))) - -(defun flycheck-current-load-file () - "Get the source file currently being loaded. - -Always return the name of the corresponding source file, never -any byte-compiled file. - -Return nil, if the currently loaded file cannot be determined." - (-when-let* ((this-file (cond - (load-in-progress load-file-name) - ((bound-and-true-p byte-compile-current-file)) - (t (buffer-file-name)))) - ;; A best guess for the source file of a compiled library. Works - ;; well in most cases, and especially for ELPA packages - (source-file (concat (file-name-sans-extension this-file) - ".el"))) - (when (file-exists-p source-file) - source-file))) - -(defun flycheck-module-root-directory (module &optional file-name) - "Get the root directory for a MODULE in FILE-NAME. - -MODULE is a qualified module name, either a string with -components separated by a dot, or as list of components. -FILE-NAME is the name of the file or directory containing the -module as string. When nil or omitted, defaults to the return -value of function `buffer-file-name'. - -Return the root directory of the module, that is, the directory, -from which FILE-NAME can be reached by descending directories -along each part of MODULE. - -If the MODULE name does not match the directory hierarchy upwards -from FILE-NAME, return the directory containing FILE-NAME. When -FILE-NAME is nil, return `default-directory'." - (let ((file-name (or file-name (buffer-file-name))) - (module-components (if (stringp module) - (split-string module (rx ".")) - (copy-sequence module)))) - (if (and module-components file-name) - (let ((parts (nreverse module-components)) - (base-directory (directory-file-name - (file-name-sans-extension file-name)))) - (while (and parts - (string= (file-name-nondirectory base-directory) - (car parts))) - (pop parts) - (setq base-directory (directory-file-name - (file-name-directory base-directory)))) - (file-name-as-directory base-directory)) - (if file-name - (file-name-directory file-name) - (expand-file-name default-directory))))) - - -;;; Minibuffer tools -(defvar read-flycheck-checker-history nil - "`completing-read' history of `read-flycheck-checker'.") - -(defun flycheck-completing-read (prompt candidates default &optional history) - "Read a value from the minibuffer. - -Use `flycheck-completing-read-function' to read input from the -minibuffer with completion. - -Show PROMPT and read one of CANDIDATES, defaulting to DEFAULT. -HISTORY is passed to `flycheck-completing-read-function'." - (funcall flycheck-completing-read-function - prompt candidates nil 'require-match nil history default)) - -(defun read-flycheck-checker (prompt &optional default property candidates) - "Read a flycheck checker from minibuffer with PROMPT and DEFAULT. - -PROMPT is a string to show in the minibuffer as prompt. It -should end with a single space. DEFAULT is a symbol denoting the -default checker to use, if the user did not select any checker. -PROPERTY is a symbol denoting a syntax checker property. If -non-nil, only complete syntax checkers which have a non-nil value -for PROPERTY. CANDIDATES is an optional list of all syntax -checkers available for completion, defaulting to all defined -checkers. If given, PROPERTY is ignored. - -Return the checker as symbol, or DEFAULT if no checker was -chosen. If DEFAULT is nil and no checker was chosen, signal a -`user-error' if the underlying completion system does not provide -a default on its own." - (when (and default (not (flycheck-valid-checker-p default))) - (error "%S is no valid Flycheck checker" default)) - (let* ((candidates (seq-map #'symbol-name - (or candidates - (flycheck-defined-checkers property)))) - (default (and default (symbol-name default))) - (input (flycheck-completing-read - prompt candidates default - 'read-flycheck-checker-history))) - (when (string-empty-p input) - (unless default - (user-error "No syntax checker selected")) - (setq input default)) - (let ((checker (intern input))) - (unless (flycheck-valid-checker-p checker) - (error "%S is not a valid Flycheck syntax checker" checker)) - checker))) - -(defun read-flycheck-error-level (prompt) - "Read an error level from the user with PROMPT. - -Only offers level for which errors currently exist, in addition -to the default levels." - (let* ((levels (seq-map #'flycheck-error-level - (flycheck-error-list-current-errors))) - (levels-with-defaults (append '(info warning error) levels)) - (uniq-levels (seq-uniq levels-with-defaults)) - (level (flycheck-completing-read prompt uniq-levels nil))) - (and (stringp level) (intern level)))) - - -;;; Checker API -(defun flycheck-defined-checkers (&optional property) - "Find all defined syntax checkers, optionally with PROPERTY. - -PROPERTY is a symbol. If given, only return syntax checkers with -a non-nil value for PROPERTY. - -The returned list is sorted alphapetically by the symbol name of -the syntax checkers." - (let (defined-checkers) - (mapatoms (lambda (symbol) - (when (and (flycheck-valid-checker-p symbol) - (or (null property) - (flycheck-checker-get symbol property))) - (push symbol defined-checkers)))) - (sort defined-checkers #'string<))) - -(defun flycheck-registered-checker-p (checker) - "Determine whether CHECKER is registered. - -A checker is registered if it is contained in -`flycheck-checkers'." - (and (flycheck-valid-checker-p checker) - (memq checker flycheck-checkers))) - -(defun flycheck-disabled-checker-p (checker) - "Determine whether CHECKER is disabled. - -A checker is disabled if it is contained in -`flycheck-disabled-checkers'." - (or (memq checker flycheck-disabled-checkers) - (flycheck-automatically-disabled-checker-p checker))) - -(defun flycheck-automatically-disabled-checker-p (checker) - "Determine whether CHECKER has been automatically disabled. - -A checker has been automatically disabled if it is contained in -`flycheck--automatically-disabled-checkers'." - (memq checker flycheck--automatically-disabled-checkers)) - - - -;;; Generic syntax checkers -(defconst flycheck-generic-checker-version 2 - "The internal version of generic syntax checker declarations. - -Flycheck will not use syntax checkers whose generic version is -less than this constant.") - -(defsubst flycheck--checker-property-name (property) - "Return the SYMBOL property for checker PROPERTY." - (intern (concat "flycheck-" (symbol-name property)))) - -(defun flycheck-checker-get (checker property) - "Get the value of CHECKER's PROPERTY." - (get checker (flycheck--checker-property-name property))) - -(gv-define-setter flycheck-checker-get (value checker property) - `(setf (get ,checker (flycheck--checker-property-name ,property)) ,value)) - -(defun flycheck-validate-next-checker (next &optional strict) - "Validate NEXT checker. - -With STRICT non-nil, also check whether the syntax checker and -the error level in NEXT are valid. Otherwise just check whether -these are symbols. - -Signal an error if NEXT is not a valid entry for -`:next-checkers'." - (when (symbolp next) - (setq next (cons t next))) - (pcase next - (`(,level . ,checker) - (if strict - (progn - (unless (or (eq level t) (flycheck-error-level-p level)) - (error "%S is not a valid Flycheck error level" level)) - (unless (flycheck-valid-checker-p checker) - (error "%s is not a valid Flycheck syntax checker" checker))) - (unless (symbolp level) - (error "Error level %S must be a symbol" level)) - (unless (symbolp checker) - (error "Checker %S must be a symbol" checker)))) - (_ (error "%S must be a symbol or cons cell" next))) - t) - -(defun flycheck-define-generic-checker (symbol docstring &rest properties) - "Define SYMBOL as generic syntax checker. - -Any syntax checker defined with this macro is eligible for manual -syntax checker selection with `flycheck-select-checker'. To make -the new syntax checker available for automatic selection, it must -be registered in `flycheck-checkers'. - -DOCSTRING is the documentation of the syntax checker, for -`flycheck-describe-checker'. The following PROPERTIES constitute -a generic syntax checker. Unless otherwise noted, all properties -are mandatory. - -`:start FUNCTION' - A function to start the syntax checker. - - FUNCTION shall take two arguments and return a context - object if the checker is started successfully. Otherwise it - shall signal an error. - - The first argument is the syntax checker being started. The - second is a callback function to report state changes to - Flycheck. The callback takes two arguments STATUS DATA, - where STATUS is a symbol denoting the syntax checker status - and DATA an optional argument with additional data for the - status report. See `flycheck-report-buffer-checker-status' - for more information about STATUS and DATA. - - FUNCTION may be synchronous or asynchronous, i.e. it may - call the given callback either immediately, or at some later - point (e.g. from a process sentinel). - - A syntax checker _must_ call CALLBACK at least once with a - STATUS that finishes the current syntax checker. Otherwise - Flycheck gets stuck at the current syntax check with this - syntax checker. - - The context object returned by FUNCTION is passed to - `:interrupt'. - -`:interrupt FUNCTION' - A function to interrupt the syntax check. - - FUNCTION is called with the syntax checker and the context - object returned by the `:start' function and shall try to - interrupt the syntax check. The context may be nil, if the - syntax check is interrupted before actually started. - FUNCTION should handle this situation. - - If it cannot interrupt the syntax check, it may either - signal an error or silently ignore the attempt to interrupt - the syntax checker, depending on the severity of the - situation. - - If interrupting the syntax check failed, Flycheck will let - the syntax check continue, but ignore any status reports. - Notably, it won't highlight any errors reported by the - syntax check in the buffer. - - This property is optional. If omitted, Flycheck won't - attempt to interrupt syntax checks wit this syntax checker, - and simply ignore their results. - -`:print-doc FUNCTION' - A function to print additional documentation into the Help - buffer of this checker. - - FUNCTION is called when creating the Help buffer for the - syntax checker, with the syntax checker as single argument, - after printing the name of the syntax checker and its modes - and predicate, but before printing DOCSTRING. It may insert - additional documentation into the current buffer. - - The call occurs within `with-help-window'. Hence - `standard-output' points to the current buffer, so you may - use `princ' and friends to add content. Also, the current - buffer is put into Help mode afterwards, which automatically - turns symbols into references, if possible. - - This property is optional. If omitted, no additional - documentation is printed for this syntax checker. - -:verify FUNCTION - A function to verify the checker for the current buffer. - - FUNCTION is called with the syntax checker as single - argument, and shall return a list of - `flycheck-verification-result' objects indicating whether - the syntax checker could be used in the current buffer, and - highlighting potential setup problems. - - This property is optional. If omitted, no additional - verification occurs for this syntax checker. It is however - absolutely recommended that you add a `:verify' function to - your syntax checker, because it will help users to spot - potential setup problems. - -`:modes MODES' - A major mode symbol or a list thereof, denoting major modes - to use this syntax checker in. - - This syntax checker will only be used in buffers whose - `major-mode' is contained in MODES. - - If `:predicate' is also given the syntax checker will only - be used in buffers for which the `:predicate' returns - non-nil. - -`:predicate FUNCTION' - A function to determine whether to use the syntax checker in - the current buffer. - - FUNCTION is called without arguments and shall return - non-nil if this syntax checker shall be used to check the - current buffer. Otherwise it shall return nil. - - If this checker has a `:working-directory' FUNCTION is - called with `default-directory' bound to the checker's - working directory. - - FUNCTION is only called in matching major modes. - - This property is optional. - -`:enabled FUNCTION' - A function to determine whether to use the syntax checker in - the current buffer. - - This property behaves as `:predicate', except that it's only - called the first time a syntax checker is to be used in a buffer. - - FUNCTION is called without arguments and shall return - non-nil if this syntax checker shall be used to check the - current buffer. Otherwise it shall return nil. - - If FUNCTION returns a non-nil value the checker is put in a - whitelist in `flycheck--automatically-enabled-checkers' to - prevent further invocations of `:enabled'. Otherwise it is - disabled via `flycheck--automatically-disabled-checkers' to - prevent any further use of it. - - If this checker has a `:working-directory' FUNCTION is - called with `default-directory' bound to the checker's - working directory. - - FUNCTION is only called in matching major modes. - - This property is optional. - -`:error-filter FUNCTION' - A function to filter the errors returned by this checker. - - FUNCTION is called with the list of `flycheck-error' objects - returned by the syntax checker and shall return another list - of `flycheck-error' objects, which is considered the final - result of this syntax checker. - - FUNCTION is free to add, remove or modify errors, whether in - place or by copying. - - This property is optional. The default filter is - `identity'. - -`:error-explainer FUNCTION' - A function to return an explanation text for errors - generated by this checker. - - FUNCTION is called with a `flycheck-error' object and shall - return an explanation message for this error as a string, or - nil if there is no explanation for this error. - - This property is optional. - -`:next-checkers NEXT-CHECKERS' - A list denoting syntax checkers to apply after this syntax - checker, in what we call \"chaining\" of syntax checkers. - - Each ITEM is a cons cell `(LEVEL . CHECKER)'. CHECKER is a - syntax checker to run after this syntax checker. LEVEL is - an error level. CHECKER will only be used if there are no - current errors of at least LEVEL. LEVEL may also be t, in - which case CHECKER is used regardless of the current errors. - - ITEM may also be a syntax checker symbol, which is - equivalent to `(t . ITEM)'. - - Flycheck tries all items in order of declaration, and uses - the first whose LEVEL matches and whose CHECKER is - registered and can be used for the current buffer. - - This feature is typically used to apply more than one syntax - checker to a buffer. For instance, you might first use a - compiler to check a buffer for syntax and type errors, and - then run a linting tool that checks for insecure code, or - questionable style. - - This property is optional. If omitted, it defaults to the - nil, i.e. no other syntax checkers are applied after this - syntax checker. - -`:working-directory FUNCTION' - The value of `default-directory' when invoking `:start'. - - FUNCTION is a function taking the syntax checker as sole - argument. It shall return the absolute path to an existing - directory to use as `default-directory' for `:start' or - nil to fall back to the `default-directory' of the current - buffer. - - This property is optional. If omitted, invoke `:start' - from the `default-directory' of the buffer being checked. - -Signal an error, if any property has an invalid value." - (declare (indent 1) - (doc-string 2)) - (let ((start (plist-get properties :start)) - (interrupt (plist-get properties :interrupt)) - (print-doc (plist-get properties :print-doc)) - (modes (plist-get properties :modes)) - (predicate (plist-get properties :predicate)) - (verify (plist-get properties :verify)) - (enabled (plist-get properties :enabled)) - (filter (or (plist-get properties :error-filter) #'identity)) - (explainer (plist-get properties :error-explainer)) - (next-checkers (plist-get properties :next-checkers)) - (file (flycheck-current-load-file)) - (working-directory (plist-get properties :working-directory))) - - (unless (listp modes) - (setq modes (list modes))) - - (unless (functionp start) - (error ":start %S of syntax checker %s is not a function" start symbol)) - (unless (or (null interrupt) (functionp interrupt)) - (error ":interrupt %S of syntax checker %s is not a function" - interrupt symbol)) - (unless (or (null print-doc) (functionp print-doc)) - (error ":print-doc %S of syntax checker %s is not a function" - print-doc symbol)) - (unless (or (null verify) (functionp verify)) - (error ":verify %S of syntax checker %S is not a function" - verify symbol)) - (unless (or (null enabled) (functionp enabled)) - (error ":enabled %S of syntax checker %S is not a function" - enabled symbol)) - (unless modes - (error "Missing :modes in syntax checker %s" symbol)) - (dolist (mode modes) - (unless (symbolp mode) - (error "Invalid :modes %s in syntax checker %s, %s must be a symbol" - modes symbol mode))) - (unless (or (null predicate) (functionp predicate)) - (error ":predicate %S of syntax checker %s is not a function" - predicate symbol)) - (unless (functionp filter) - (error ":error-filter %S of syntax checker %s is not a function" - filter symbol)) - (unless (or (null explainer) (functionp explainer)) - (error ":error-explainer %S of syntax checker %S is not a function" - explainer symbol)) - (dolist (checker next-checkers) - (flycheck-validate-next-checker checker)) - - (let ((real-predicate - (and predicate - (lambda () - ;; Run predicate in the checker's default directory - (let ((default-directory - (flycheck-compute-working-directory symbol))) - (funcall predicate))))) - (real-enabled - (lambda () - (if (flycheck-valid-checker-p symbol) - (or (null enabled) - ;; Run enabled in the checker's default directory - (let ((default-directory - (flycheck-compute-working-directory symbol))) - (funcall enabled))) - (lwarn 'flycheck - :warning "%S is no valid Flycheck syntax checker. -Try to reinstall the package defining this syntax checker." symbol) - nil)))) - (pcase-dolist (`(,prop . ,value) - `((start . ,start) - (interrupt . ,interrupt) - (print-doc . ,print-doc) - (modes . ,modes) - (predicate . ,real-predicate) - (verify . ,verify) - (enabled . ,real-enabled) - (error-filter . ,filter) - (error-explainer . ,explainer) - (next-checkers . ,next-checkers) - (documentation . ,docstring) - (file . ,file) - (working-directory . ,working-directory))) - (setf (flycheck-checker-get symbol prop) value))) - - ;; Track the version, to avoid breakage if the internal format changes - (setf (flycheck-checker-get symbol 'generic-checker-version) - flycheck-generic-checker-version))) - -(defun flycheck-valid-checker-p (checker) - "Check whether a CHECKER is valid. - -A valid checker is a symbol defined as syntax checker with -`flycheck-define-checker'." - (and (symbolp checker) - (= (or (get checker 'flycheck-generic-checker-version) 0) - flycheck-generic-checker-version))) - -(defun flycheck-checker-supports-major-mode-p (checker &optional mode) - "Whether CHECKER supports the given major MODE. - -CHECKER is a syntax checker symbol and MODE a major mode symbol. -Look at the `modes' property of CHECKER to determine whether -CHECKER supports buffers in the given major MODE. - -MODE defaults to the value of `major-mode' if omitted or nil. - -Return non-nil if CHECKER supports MODE and nil otherwise." - (let ((mode (or mode major-mode))) - (memq mode (flycheck-checker-get checker 'modes)))) - -(defvar flycheck--automatically-enabled-checkers nil - "Syntax checkers included in automatic selection. - -A list of Flycheck syntax checkers included in automatic -selection for the current buffer.") -(define-obsolete-variable-alias 'flycheck-enabled-checkers - 'flycheck--automatically-enabled-checkers "32") -(make-variable-buffer-local 'flycheck--automatically-enabled-checkers) - -(defun flycheck-may-enable-checker (checker) - "Whether a generic CHECKER may be enabled for current buffer. - -Return non-nil if CHECKER may be used for the current buffer, and -nil otherwise." - (let* ((enabled (flycheck-checker-get checker 'enabled)) - (shall-enable - (and (not (flycheck-disabled-checker-p checker)) - (or (memq checker flycheck--automatically-enabled-checkers) - (null enabled) - (funcall enabled))))) - (if shall-enable - (cl-pushnew checker flycheck--automatically-enabled-checkers) - (cl-pushnew checker flycheck--automatically-disabled-checkers)) - shall-enable)) - -(defun flycheck-reset-enabled-checker (checker) - "Reset the `:enabled' test of CHECKER. - -Forget that CHECKER has been enabled or automatically disabled -from a previous `:enabled' test. Once a checker has been enabled -or automatically disabled, `flycheck-may-enable-checker' will -always be constant (t or nil respectively). - -If you wish to test the `:enabled' predicate again, you must -first reset its state using this function." - (when (memq checker flycheck--automatically-disabled-checkers) - (setq flycheck--automatically-disabled-checkers - (remq checker flycheck--automatically-disabled-checkers))) - (when (memq checker flycheck--automatically-enabled-checkers) - (setq flycheck--automatically-enabled-checkers - (remq checker flycheck--automatically-enabled-checkers)))) - -(defun flycheck-may-use-checker (checker) - "Whether a generic CHECKER may be used. - -Return non-nil if CHECKER may be used for the current buffer, and -nil otherwise." - (let ((predicate (flycheck-checker-get checker 'predicate))) - (and (flycheck-valid-checker-p checker) - (flycheck-checker-supports-major-mode-p checker) - (flycheck-may-enable-checker checker) - (or (null predicate) (funcall predicate))))) - -(defun flycheck-may-use-next-checker (next-checker) - "Determine whether NEXT-CHECKER may be used." - (when (symbolp next-checker) - (push t next-checker)) - (let ((level (car next-checker)) - (next-checker (cdr next-checker))) - (and (or (eq level t) - (flycheck-has-max-current-errors-p level)) - (flycheck-registered-checker-p next-checker) - (flycheck-may-use-checker next-checker)))) - - -;;; Help for generic syntax checkers -(define-button-type 'help-flycheck-checker-def - :supertype 'help-xref - 'help-function #'flycheck-goto-checker-definition - 'help-echo "mouse-1, RET: find Flycheck checker definition") - -(defconst flycheck-find-checker-regexp - (rx line-start (zero-or-more (syntax whitespace)) - "(" symbol-start "flycheck-define-checker" symbol-end - (eval (list 'regexp find-function-space-re)) - symbol-start - "%s" - symbol-end - (or (syntax whitespace) line-end)) - "Regular expression to find a checker definition.") - -(add-to-list 'find-function-regexp-alist - '(flycheck-checker . flycheck-find-checker-regexp)) - -(defun flycheck-goto-checker-definition (checker file) - "Go to to the definition of CHECKER in FILE." - (let ((location (find-function-search-for-symbol - checker 'flycheck-checker file))) - (pop-to-buffer (car location)) - (if (cdr location) - (goto-char (cdr location)) - (message "Unable to find checker location in file")))) - -(defun flycheck-checker-at-point () - "Return the Flycheck checker found at or before point. - -Return nil if there is no checker." - (let ((symbol (variable-at-point 'any-symbol))) - (when (flycheck-valid-checker-p symbol) - symbol))) - -(defun flycheck-describe-checker (checker) - "Display the documentation of CHECKER. - -CHECKER is a checker symbol. - -Pop up a help buffer with the documentation of CHECKER." - (interactive - (let* ((enable-recursive-minibuffers t) - (default (or (flycheck-checker-at-point) - (ignore-errors (flycheck-get-checker-for-buffer)))) - (prompt (if default - (format "Describe syntax checker (default %s): " default) - "Describe syntax checker: "))) - (list (read-flycheck-checker prompt default)))) - (unless (flycheck-valid-checker-p checker) - (user-error "You didn't specify a Flycheck syntax checker")) - (help-setup-xref (list #'flycheck-describe-checker checker) - (called-interactively-p 'interactive)) - (save-excursion - (with-help-window (help-buffer) - (let ((filename (flycheck-checker-get checker 'file)) - (modes (flycheck-checker-get checker 'modes)) - (predicate (flycheck-checker-get checker 'predicate)) - (print-doc (flycheck-checker-get checker 'print-doc)) - (next-checkers (flycheck-checker-get checker 'next-checkers))) - (princ (format "%s is a Flycheck syntax checker" checker)) - (when filename - (princ (format " in `%s'" (file-name-nondirectory filename))) - (with-current-buffer standard-output - (save-excursion - (re-search-backward "`\\([^`']+\\)'" nil t) - (help-xref-button 1 'help-flycheck-checker-def - checker filename)))) - (princ ".\n\n") - - (let ((modes-start (with-current-buffer standard-output (point-max)))) - ;; Track the start of the modes documentation, to properly re-fill - ;; it later - (princ " This syntax checker checks syntax in the major mode(s) ") - (princ (string-join - (seq-map (apply-partially #'format "`%s'") modes) - ", ")) - (when predicate - (princ ", and uses a custom predicate")) - (princ ".") - (when next-checkers - (princ " It runs the following checkers afterwards:")) - (with-current-buffer standard-output - (save-excursion - (fill-region-as-paragraph modes-start (point-max)))) - (princ "\n") - - ;; Print the list of next checkers - (when next-checkers - (princ "\n") - (let ((beg-checker-list (with-current-buffer standard-output - (point)))) - (dolist (next-checker next-checkers) - (if (symbolp next-checker) - (princ (format " * `%s'\n" next-checker)) - (princ (format " * `%s' (maximum level `%s')\n" - (cdr next-checker) (car next-checker))))) - ;; - (with-current-buffer standard-output - (save-excursion - (while (re-search-backward "`\\([^`']+\\)'" - beg-checker-list t) - (when (flycheck-valid-checker-p - (intern-soft (match-string 1))) - (help-xref-button 1 'help-flycheck-checker-def checker - filename)))))))) - ;; Call the custom print-doc function of the checker, if present - (when print-doc - (funcall print-doc checker)) - ;; Ultimately, print the docstring - (princ "\nDocumentation:\n") - (princ (flycheck-checker-get checker 'documentation)))))) - - -;;; Syntax checker verification -(cl-defstruct (flycheck-verification-result - (:constructor flycheck-verification-result-new)) - "Structure for storing a single verification result. - -Slots: - -`label' - A label for this result, as string - -`message' - A message for this result, as string - -`face' - The face to use for the `message'. - - You can either use a face symbol, or a list of face symbols." - label message face) - -(defun flycheck-verify-generic-checker (checker) - "Verify a generic CHECKER in the current buffer. - -Return a list of `flycheck-verification-result' objects." - (let (results - (predicate (flycheck-checker-get checker 'predicate)) - (enabled (flycheck-checker-get checker 'enabled)) - (verify (flycheck-checker-get checker 'verify))) - (when enabled - (let ((result (flycheck-may-enable-checker checker))) - (push (flycheck-verification-result-new - :label "may enable" - :message (if result "yes" "Automatically disabled!") - :face (if result 'success '(bold warning))) - results))) - (when predicate - (let ((result (funcall predicate))) - (push (flycheck-verification-result-new - :label "predicate" - :message (prin1-to-string (not (null result))) - :face (if result 'success '(bold warning))) - results))) - (append (nreverse results) - (and verify (funcall verify checker))))) - -(define-button-type 'help-flycheck-checker-doc - :supertype 'help-xref - 'help-function #'flycheck-describe-checker - 'help-echo "mouse-1, RET: describe Flycheck checker") - -(define-button-type 'flycheck-checker-select - :supertype 'help-xref - 'help-function (lambda (buffer checker) - (with-current-buffer buffer - (flycheck-select-checker checker)) - ;; Revert the verify-setup buffer since it is now stale - (revert-buffer)) - 'help-echo "mouse-1, RET: select Flycheck checker" - 'face 'flycheck-verify-select-checker) - -(defun flycheck--verify-princ-checker (checker buffer - &optional with-mm with-select) - "Print verification result of CHECKER for BUFFER. - -When WITH-MM is given and non-nil, also include the major mode -into the verification results. - -When WITH-SELECT is non-nil, add a button to select this checker." - (princ " ") - (insert-button (symbol-name checker) - 'type 'help-flycheck-checker-doc - 'help-args (list checker)) - (when (with-current-buffer buffer (flycheck-disabled-checker-p checker)) - (insert (propertize " (disabled)" 'face '(bold error)))) - (when (eq checker (buffer-local-value 'flycheck-checker buffer)) - (insert (propertize " (explicitly selected)" 'face 'bold))) - (when with-select - (princ " ") - (insert-text-button "select" - 'type 'flycheck-checker-select - 'help-args (list buffer checker))) - (princ "\n") - (let ((results (with-current-buffer buffer - (append (flycheck-verify-generic-checker checker) - (flycheck--verify-next-checkers checker))))) - (when with-mm - (with-current-buffer buffer - (let ((message-and-face - (if (flycheck-checker-supports-major-mode-p checker) - (cons (format "`%s' supported" major-mode) 'success) - (cons (format "`%s' not supported" major-mode) 'error)))) - (push (flycheck-verification-result-new - :label "major mode" - :message (car message-and-face) - :face (cdr message-and-face)) - results)))) - (let* ((label-length - (seq-max (mapcar - (lambda (res) - (length (flycheck-verification-result-label res))) - results))) - (message-column (+ 8 label-length))) - (dolist (result results) - (princ " - ") - (princ (flycheck-verification-result-label result)) - (princ ": ") - (princ (make-string (- message-column (current-column)) ?\ )) - (let ((message (flycheck-verification-result-message result)) - (face (flycheck-verification-result-face result))) - ;; If face is nil, using propertize erases the face already contained - ;; by the message. We don't want that, since this would remove the - ;; button face from the checker chain result. - (insert (if face (propertize message 'face face) message))) - (princ "\n")))) - (princ "\n")) - -(defun flycheck-get-next-checkers (checker) - "Return the immediate next checkers of CHECKER. - -This is a list of checker symbols. The error levels of the -`:next-checker' property are ignored." - (mapcar (lambda (c) (if (consp c) (cdr c) c)) - (flycheck-checker-get checker 'next-checkers))) - -(defun flycheck-all-next-checkers (checker) - "Return all checkers that may follow CHECKER. - -Return the transitive closure of the next-checker relation. The -return value is a list of checkers, not including CHECKER." - (let ((next-checkers) - (visited) - (queue (list checker))) - (while queue - (let ((c (pop queue))) - (push c visited) - (dolist (n (flycheck-get-next-checkers c)) - (push n next-checkers) - (unless (memq n visited) - (cl-pushnew n queue))))) - (seq-uniq next-checkers))) - -(defun flycheck--verify-next-checkers (checker) - "Return a verification result for the next checkers of CHECKER." - (-when-let (next (flycheck-get-next-checkers checker)) - (list - (flycheck-verification-result-new - :label "next checkers" - ;; We use `make-text-button' to preserve the button properties in the - ;; string - :message (mapconcat - (lambda (checker) - (make-text-button (symbol-name checker) nil - 'type 'help-flycheck-checker-doc - 'help-args (list checker))) - next - ", "))))) - -(defun flycheck--verify-print-header (desc buffer) - "Print a title with DESC for BUFFER in the current buffer. - -DESC is an arbitrary string containing a description, and BUFFER -is the buffer being verified. The name and the major mode mode -of BUFFER are printed. - -DESC and information about BUFFER are printed in the current -buffer." - (princ desc) - (insert (propertize (buffer-name buffer) 'face 'bold)) - (princ " in ") - (let ((mode (buffer-local-value 'major-mode buffer))) - (insert-button (symbol-name mode) - 'type 'help-function - 'help-args (list mode))) - (princ ":\n\n")) - -(defun flycheck--verify-print-footer (buffer) - "Print a footer for BUFFER in the current buffer. - -BUFFER is the buffer being verified." - (princ "Flycheck Mode is ") - (let ((enabled (buffer-local-value 'flycheck-mode buffer))) - (insert (propertize (if enabled "enabled" "disabled") - 'face (if enabled 'success '(warning bold))))) - (princ - (with-current-buffer buffer - ;; Use key binding state in the verified buffer to print the help. - (substitute-command-keys - ". Use \\[universal-argument] \\[flycheck-disable-checker] \ -to enable disabled checkers."))) - (save-excursion - (let ((end (point))) - (backward-paragraph) - (fill-region-as-paragraph (point) end))) - - (princ "\n\n--------------------\n\n") - (princ (format "Flycheck version: %s\n" (flycheck-version))) - (princ (format "Emacs version: %s\n" emacs-version)) - (princ (format "System: %s\n" system-configuration)) - (princ (format "Window system: %S\n" window-system))) - -(defun flycheck-verify-checker (checker) - "Check whether a CHECKER can be used in this buffer. - -Show a buffer listing possible problems that prevent CHECKER from -being used for the current buffer. - -Note: Do not use this function to check whether a syntax checker -is applicable from Emacs Lisp code. Use -`flycheck-may-use-checker' instead." - (interactive (list (read-flycheck-checker "Checker to verify: "))) - (unless (flycheck-valid-checker-p checker) - (user-error "%s is not a syntax checker" checker)) - - ;; Save the buffer to make sure that all predicates are good - ;; FIXME: this may be surprising to users, with unintended side-effects. - (when (and (buffer-file-name) (buffer-modified-p)) - (save-buffer)) - - (let ((buffer (current-buffer))) - (with-help-window (get-buffer-create " *Flycheck checker*") - (with-current-buffer standard-output - (flycheck--verify-print-header "Syntax checker in buffer " buffer) - (flycheck--verify-princ-checker checker buffer 'with-mm) - (if (with-current-buffer buffer (flycheck-may-use-checker checker)) - (insert (propertize - "Flycheck can use this syntax checker for this buffer.\n" - 'face 'success)) - (insert (propertize - "Flycheck cannot use this syntax checker for this buffer.\n" - 'face 'error))) - (insert "\n") - (flycheck--verify-print-footer buffer))))) - -(defun flycheck-verify-setup () - "Check whether Flycheck can be used in this buffer. - -Display a new buffer listing all syntax checkers that could be -applicable in the current buffer. For each syntax checkers, -possible problems are shown." - (interactive) - ;; Save to make sure checkers that only work on saved buffers will pass the - ;; verification - (when (and (buffer-file-name) (buffer-modified-p)) - (save-buffer)) - - (let* ((buffer (current-buffer)) - (first-checker (flycheck-get-checker-for-buffer)) - (valid-checkers - (remq first-checker - (seq-filter #'flycheck-may-use-checker flycheck-checkers))) - (valid-next-checkers - (when first-checker - (seq-intersection valid-checkers - (flycheck-all-next-checkers first-checker)))) - (valid-remaining (seq-difference valid-checkers valid-next-checkers)) - (other-checkers - (seq-difference (seq-filter #'flycheck-checker-supports-major-mode-p - flycheck-checkers) - (cons first-checker valid-checkers))) - (help-buffer (get-buffer-create " *Flycheck checkers*"))) - - ;; Print all applicable checkers for this buffer - (with-help-window help-buffer - (with-current-buffer standard-output - (flycheck--verify-print-header "Syntax checkers for buffer " buffer) - - (if first-checker - (progn - (princ "First checker to run:\n\n") - (flycheck--verify-princ-checker first-checker buffer)) - (insert (propertize - "No checker to run in this buffer.\n\n" - 'face '(bold error)))) - - (when valid-next-checkers - (princ - "Checkers that may run as part of the first checker's chain:\n\n") - (dolist (checker valid-next-checkers) - (flycheck--verify-princ-checker checker buffer))) - - (when valid-remaining - (princ "Checkers that could run if selected:\n\n") - (dolist (checker valid-remaining) - (flycheck--verify-princ-checker checker buffer nil 'with-select))) - - (when other-checkers - (princ - "Checkers that are compatible with this mode, \ -but will not run until properly configured:\n\n") - (dolist (checker other-checkers) - (flycheck--verify-princ-checker checker buffer))) - - ;; If we have no checkers at all, that's worth mentioning - (unless (or first-checker valid-checkers other-checkers) - (insert (propertize - "No checkers are available for this buffer.\n\n" - 'face '(bold error)))) - - (let ((unregistered-checkers - (seq-difference (flycheck-defined-checkers) flycheck-checkers))) - (when unregistered-checkers - (insert (propertize - "\nThe following syntax checkers are not registered:\n\n" - 'face '(bold warning))) - (dolist (checker unregistered-checkers) - (princ " - ") - (princ checker) - (princ "\n")) - (princ - "\nTry adding these syntax checkers to `flycheck-checkers'.\n"))) - - (flycheck--verify-print-footer buffer))) - - (with-current-buffer help-buffer - (setq-local revert-buffer-function - (lambda (_ignore-auto _noconfirm) - (with-current-buffer buffer (flycheck-verify-setup))))))) - - -;;; Predicates for generic syntax checkers -(defun flycheck-buffer-saved-p (&optional buffer) - "Determine whether BUFFER is saved to a file. - -BUFFER is the buffer to check. If omitted or nil, use the -current buffer as BUFFER. - -Return non-nil if the BUFFER is backed by a file, and not -modified, or nil otherwise." - (let ((file-name (buffer-file-name buffer))) - (and file-name (file-exists-p file-name) (not (buffer-modified-p buffer))))) - - -;;; Extending generic checkers -(defun flycheck-add-next-checker (checker next &optional append) - "After CHECKER add a NEXT checker. - -CHECKER is a syntax checker symbol, to which to add NEXT checker. - -NEXT is a cons cell `(LEVEL . NEXT-CHECKER)'. NEXT-CHECKER is a -symbol denoting the syntax checker to run after CHECKER. LEVEL -is an error level. NEXT-CHECKER will only be used if there is no -current error whose level is more severe than LEVEL. LEVEL may -also be t, in which case NEXT-CHECKER is used regardless of the -current errors. - -NEXT can also be a syntax checker symbol only, which is -equivalent to `(t . NEXT)'. - -NEXT-CHECKER is prepended before other next checkers, unless -APPEND is non-nil." - (unless (flycheck-valid-checker-p checker) - (error "%s is not a valid syntax checker" checker)) - (flycheck-validate-next-checker next 'strict) - (if append - (setf (flycheck-checker-get checker 'next-checkers) - (append (flycheck-checker-get checker 'next-checkers) (list next))) - (push next (flycheck-checker-get checker 'next-checkers)))) - -(defun flycheck-add-mode (checker mode) - "To CHECKER add a new major MODE. - -CHECKER and MODE are symbols denoting a syntax checker and a -major mode respectively. - -Add MODE to the `:modes' property of CHECKER, so that CHECKER -will be used in buffers with MODE." - (unless (flycheck-valid-checker-p checker) - (error "%s is not a valid syntax checker" checker)) - (unless (symbolp mode) - (error "%s is not a symbol" mode)) - (push mode (flycheck-checker-get checker 'modes))) - - -;;; Generic syntax checks -(cl-defstruct (flycheck-syntax-check - (:constructor flycheck-syntax-check-new)) - "Structure for storing syntax check state. - -Slots: - -`buffer' - The buffer being checked. - -`checker' - The syntax checker being used. - -`context' - The context object. - -`working-directory' - Working directory for the syntax checker. Serve as a value for - `default-directory' for a checker." - buffer checker context working-directory) - -(defun flycheck-syntax-check-start (syntax-check callback) - "Start a SYNTAX-CHECK with CALLBACK." - (let ((checker (flycheck-syntax-check-checker syntax-check)) - (default-directory - (flycheck-syntax-check-working-directory syntax-check))) - (setf (flycheck-syntax-check-context syntax-check) - (funcall (flycheck-checker-get checker 'start) checker callback)))) - -(defun flycheck-syntax-check-interrupt (syntax-check) - "Interrupt a SYNTAX-CHECK." - (let* ((checker (flycheck-syntax-check-checker syntax-check)) - (interrupt-fn (flycheck-checker-get checker 'interrupt)) - (context (flycheck-syntax-check-context syntax-check))) - (when interrupt-fn - (funcall interrupt-fn checker context)))) - - -;;; Syntax checking mode - -(defvar flycheck-mode-map - (let ((map (make-sparse-keymap))) - (define-key map flycheck-keymap-prefix flycheck-command-map) - ;; We place the menu under a custom menu key. Since this menu key is not - ;; present in the menu of the global map, no top-level menu entry is added - ;; to the global menu bar. However, it still appears on the mode line - ;; lighter. - (define-key map [menu-bar flycheck] flycheck-mode-menu-map) - map) - "Keymap of command `flycheck-mode'.") - -(defvar-local flycheck-old-next-error-function nil - "Remember the old `next-error-function'.") - -(defconst flycheck-hooks-alist - '( - ;; Handle events that may start automatic syntax checks - (after-save-hook . flycheck-handle-save) - (after-change-functions . flycheck-handle-change) - ;; Handle events that may triggered pending deferred checks - (window-configuration-change-hook . flycheck-perform-deferred-syntax-check) - (post-command-hook . flycheck-perform-deferred-syntax-check) - ;; Teardown Flycheck whenever the buffer state is about to get lost, to - ;; clean up temporary files and directories. - (kill-buffer-hook . flycheck-teardown) - (change-major-mode-hook . flycheck-teardown) - (before-revert-hook . flycheck-teardown) - ;; Update the error list if necessary - (post-command-hook . flycheck-error-list-update-source) - (post-command-hook . flycheck-error-list-highlight-errors) - ;; Display errors. Show errors at point after commands (like movements) and - ;; when Emacs gets focus. Cancel the display timer when Emacs looses focus - ;; (as there's no need to display errors if the user can't see them), and - ;; hide the error buffer (for large error messages) if necessary. Note that - ;; the focus hooks only work on Emacs 24.4 and upwards, but since undefined - ;; hooks are perfectly ok we don't need a version guard here. They'll just - ;; not work silently. - (post-command-hook . flycheck-display-error-at-point-soon) - (focus-in-hook . flycheck-display-error-at-point-soon) - (focus-out-hook . flycheck-cancel-error-display-error-at-point-timer) - (post-command-hook . flycheck-hide-error-buffer) - ;; Immediately show error popups when navigating to an error - (next-error-hook . flycheck-display-error-at-point)) - "Hooks which Flycheck needs to hook in. - -The `car' of each pair is a hook variable, the `cdr' a function -to be added or removed from the hook variable if Flycheck mode is -enabled and disabled respectively.") - -;;;###autoload -(define-minor-mode flycheck-mode - "Minor mode for on-the-fly syntax checking. - -When called interactively, toggle `flycheck-mode'. With prefix -ARG, enable `flycheck-mode' if ARG is positive, otherwise disable -it. - -When called from Lisp, enable `flycheck-mode' if ARG is omitted, -nil or positive. If ARG is `toggle', toggle `flycheck-mode'. -Otherwise behave as if called interactively. - -In `flycheck-mode' the buffer is automatically syntax-checked -using the first suitable syntax checker from `flycheck-checkers'. -Use `flycheck-select-checker' to select a checker for the current -buffer manually. - -\\{flycheck-mode-map}" - :init-value nil - :keymap flycheck-mode-map - :lighter flycheck-mode-line - :after-hook (flycheck-buffer-automatically 'mode-enabled 'force-deferred) - (cond - (flycheck-mode - (flycheck-clear) - - (pcase-dolist (`(,hook . ,fn) flycheck-hooks-alist) - (add-hook hook fn nil 'local)) - - (setq flycheck-old-next-error-function - (if flycheck-standard-error-navigation - next-error-function - :unset)) - (when flycheck-standard-error-navigation - (setq next-error-function #'flycheck-next-error-function)) - - ;; This hook must be added globally since otherwise we cannot - ;; detect a change from a buffer where Flycheck is enabled to a - ;; buffer where Flycheck is not enabled, and therefore cannot - ;; notice that there has been any change when the user switches - ;; back to the buffer where Flycheck is enabled. - (add-hook 'buffer-list-update-hook #'flycheck-handle-buffer-switch)) - (t - (unless (eq flycheck-old-next-error-function :unset) - (setq next-error-function flycheck-old-next-error-function)) - - (pcase-dolist (`(,hook . ,fn) flycheck-hooks-alist) - (remove-hook hook fn 'local)) - - (flycheck-teardown)))) - - -;;; Syntax checker selection for the current buffer -(defun flycheck-get-checker-for-buffer () - "Find the checker for the current buffer. - -Use the selected checker for the current buffer, if any, -otherwise search for the best checker from `flycheck-checkers'. - -Return checker if there is a checker for the current buffer, or -nil otherwise." - (if flycheck-checker - (when (flycheck-may-use-checker flycheck-checker) - flycheck-checker) - (seq-find #'flycheck-may-use-checker flycheck-checkers))) - -(defun flycheck-get-next-checker-for-buffer (checker) - "Get the checker to run after CHECKER for the current buffer." - (let ((next (seq-find #'flycheck-may-use-next-checker - (flycheck-checker-get checker 'next-checkers)))) - (when next - (if (symbolp next) next (cdr next))))) - -(defun flycheck-select-checker (checker) - "Select CHECKER for the current buffer. - -CHECKER is a syntax checker symbol (see `flycheck-checkers') or -nil. In the former case, use CHECKER for the current buffer, -otherwise deselect the current syntax checker (if any) and use -automatic checker selection via `flycheck-checkers'. - -If called interactively prompt for CHECKER. With prefix arg -deselect the current syntax checker and enable automatic -selection again. - -Set `flycheck-checker' to CHECKER and automatically start a new -syntax check if the syntax checker changed. - -CHECKER will be used, even if it is not contained in -`flycheck-checkers', or if it is disabled via -`flycheck-disabled-checkers'." - (interactive - (if current-prefix-arg - (list nil) - (list (read-flycheck-checker "Select checker: " - (flycheck-get-checker-for-buffer))))) - (when (not (eq checker flycheck-checker)) - (unless (or (not checker) (flycheck-may-use-checker checker)) - (flycheck-verify-checker checker) - (user-error "Can't use syntax checker %S in this buffer" checker)) - (setq flycheck-checker checker) - (when flycheck-mode - (flycheck-buffer)))) - -(defun flycheck-disable-checker (checker &optional enable) - "Interactively disable CHECKER for the current buffer. - -Interactively, prompt for a syntax checker to disable, and add -the syntax checker to the buffer-local value of -`flycheck-disabled-checkers'. - -With non-nil ENABLE or with prefix arg, prompt for a disabled -syntax checker and re-enable it by removing it from the -buffer-local value of `flycheck-disabled-checkers'." - (declare - (interactive-only "Directly set `flycheck-disabled-checkers' instead")) - (interactive - (let* ((enable current-prefix-arg) - (candidates (if enable - (append flycheck-disabled-checkers - flycheck--automatically-disabled-checkers) - flycheck-checkers)) - (prompt (if enable "Enable syntax checker: " - "Disable syntax checker: "))) - (when (and enable (not candidates)) - (user-error "No syntax checkers disabled in this buffer")) - (list (read-flycheck-checker prompt nil nil candidates) enable))) - (unless checker - (user-error "No syntax checker given")) - (if enable - ;; We must use `remq' instead of `delq', because we must _not_ modify the - ;; list. Otherwise we could potentially modify the global default value, - ;; in case the list is the global default. - (progn - (when (memq checker flycheck-disabled-checkers) - (setq flycheck-disabled-checkers - (remq checker flycheck-disabled-checkers)) - (flycheck-buffer)) - (when (memq checker flycheck--automatically-disabled-checkers) - (setq flycheck--automatically-disabled-checkers - (remq checker flycheck--automatically-disabled-checkers)) - (flycheck-buffer))) - (unless (memq checker flycheck-disabled-checkers) - (push checker flycheck-disabled-checkers) - (flycheck-buffer)))) - - -;;; Syntax checks for the current buffer -(defvar-local flycheck-current-syntax-check nil - "The current syntax check in the this buffer.") -(put 'flycheck-current-syntax-check 'permanent-local t) - -(defun flycheck-start-current-syntax-check (checker) - "Start a syntax check in the current buffer with CHECKER. - -Set `flycheck-current-syntax-check' accordingly." - ;; Allocate the current syntax check *before* starting it. This allows for - ;; synchronous checks, which call the status callback immediately in their - ;; start function. - (let* ((check - (flycheck-syntax-check-new - :buffer (current-buffer) - :checker checker - :context nil - :working-directory (flycheck-compute-working-directory checker))) - (callback (flycheck-buffer-status-callback check))) - (setq flycheck-current-syntax-check check) - (flycheck-report-status 'running) - (flycheck-syntax-check-start check callback))) - -(defun flycheck-running-p () - "Determine whether a syntax check is running in the current buffer." - (not (null flycheck-current-syntax-check))) - -(defun flycheck-stop () - "Stop any ongoing syntax check in the current buffer." - (when (flycheck-running-p) - (flycheck-syntax-check-interrupt flycheck-current-syntax-check) - ;; Remove the current syntax check, to reset Flycheck into a non-running - ;; state, and to make `flycheck-report-buffer-checker-status' ignore any - ;; status reports from the current syntax check. - (setq flycheck-current-syntax-check nil) - (flycheck-report-status 'interrupted))) - -(defun flycheck-buffer-status-callback (syntax-check) - "Create a status callback for SYNTAX-CHECK in the current buffer." - (lambda (&rest args) - (apply #'flycheck-report-buffer-checker-status - syntax-check args))) - -(defun flycheck-buffer () - "Start checking syntax in the current buffer. - -Get a syntax checker for the current buffer with -`flycheck-get-checker-for-buffer', and start it." - (interactive) - (flycheck-clean-deferred-check) - (if flycheck-mode - (unless (flycheck-running-p) - ;; Clear error list and mark all overlays for deletion. We do not - ;; delete all overlays immediately to avoid excessive re-displays and - ;; flickering, if the same errors gets highlighted again after the check - ;; completed. - (run-hooks 'flycheck-before-syntax-check-hook) - (flycheck-clear-errors) - (flycheck-mark-all-overlays-for-deletion) - (condition-case err - (let* ((checker (flycheck-get-checker-for-buffer))) - (if checker - (flycheck-start-current-syntax-check checker) - (flycheck-clear) - (flycheck-report-status 'no-checker))) - (error - (flycheck-report-failed-syntax-check) - (signal (car err) (cdr err))))) - (user-error "Flycheck mode disabled"))) - -(defun flycheck-report-buffer-checker-status - (syntax-check status &optional data) - "In BUFFER, report a SYNTAX-CHECK STATUS with DATA. - -SYNTAX-CHECK is the `flycheck-syntax-check' which reported -STATUS. STATUS denotes the status of CHECKER, with an optional -DATA. STATUS may be one of the following symbols: - -`errored' - The syntax checker has errored. DATA is an optional error - message. - - This report finishes the current syntax check. - -`interrupted' - The syntax checker was interrupted. DATA is ignored. - - This report finishes the current syntax check. - -`finished' - The syntax checker has finished with a proper error report - for the current buffer. DATA is the (potentially empty) - list of `flycheck-error' objects reported by the syntax - check. - - This report finishes the current syntax check. - -`suspicious' - The syntax checker encountered a suspicious state, which the - user needs to be informed about. DATA is an optional - message. - -A syntax checker _must_ report a status at least once with any -symbol that finishes the current syntax checker. Otherwise -Flycheck gets stuck with the current syntax check. - -If CHECKER is not the currently used syntax checker in -`flycheck-current-syntax-check', the status report is largely -ignored. Notably, any errors reported by the checker are -discarded." - (let ((buffer (flycheck-syntax-check-buffer syntax-check))) - ;; Ignore the status report if the buffer is gone, or if this syntax check - ;; isn't the current one in buffer (which can happen if this is an old - ;; report of an interrupted syntax check, and a new syntax check was started - ;; since this check was interrupted) - (when (and (buffer-live-p buffer) - (eq syntax-check - (buffer-local-value 'flycheck-current-syntax-check buffer))) - (with-current-buffer buffer - (let ((checker (flycheck-syntax-check-checker syntax-check))) - (pcase status - ((or `errored `interrupted) - (flycheck-report-failed-syntax-check status) - (when (eq status 'errored) - ;; In case of error, show the error message - (message "Error from syntax checker %s: %s" - checker (or data "UNKNOWN!")))) - (`suspicious - (when flycheck-mode - (message "Suspicious state from syntax checker %s: %s" - checker (or data "UNKNOWN!"))) - (flycheck-report-status 'suspicious)) - (`finished - (when flycheck-mode - ;; Only report errors from the checker if Flycheck Mode is - ;; still enabled. - (flycheck-finish-current-syntax-check - data - (flycheck-syntax-check-working-directory syntax-check)))) - (_ - (error "Unknown status %s from syntax checker %s" - status checker)))))))) - -(defun flycheck-finish-current-syntax-check (errors working-dir) - "Finish the current syntax-check in the current buffer with ERRORS. - -ERRORS is a list of `flycheck-error' objects reported by the -current syntax check in `flycheck-current-syntax-check'. - -Report all ERRORS and potentially start any next syntax checkers. - -If the current syntax checker reported excessive errors, it is -disabled via `flycheck-disable-excessive-checker' for subsequent -syntax checks. - -Relative file names in ERRORS will be expanded relative to -WORKING-DIR." - (let* ((syntax-check flycheck-current-syntax-check) - (checker (flycheck-syntax-check-checker syntax-check)) - (errors (flycheck-relevant-errors - (flycheck-fill-and-expand-error-file-names - (flycheck-filter-errors - (flycheck-assert-error-list-p errors) checker) - working-dir)))) - (unless (flycheck-disable-excessive-checker checker errors) - (flycheck-report-current-errors errors)) - (let ((next-checker (flycheck-get-next-checker-for-buffer checker))) - (if next-checker - (flycheck-start-current-syntax-check next-checker) - (setq flycheck-current-syntax-check nil) - (flycheck-report-status 'finished) - ;; Delete overlays only after the very last checker has run, to avoid - ;; flickering on intermediate re-displays - (flycheck-delete-marked-overlays) - (flycheck-error-list-refresh) - (run-hooks 'flycheck-after-syntax-check-hook) - (when (eq (current-buffer) (window-buffer)) - (flycheck-display-error-at-point)) - ;; Immediately try to run any pending deferred syntax check, which - ;; were triggered by intermediate automatic check event, to make sure - ;; that we quickly refine outdated error information - (flycheck-perform-deferred-syntax-check))))) - -(defun flycheck-disable-excessive-checker (checker errors) - "Disable CHECKER if it reported excessive ERRORS. - -If ERRORS has more items than `flycheck-checker-error-threshold', -add CHECKER to `flycheck--automatically-disabled-checkers', and -show a warning. - -Return t when CHECKER was disabled, or nil otherwise." - (when (and flycheck-checker-error-threshold - (> (length errors) flycheck-checker-error-threshold)) - ;; Disable CHECKER for this buffer - ;; (`flycheck--automatically-disabled-checkers' is a local variable). - (lwarn '(flycheck syntax-checker) :warning - (substitute-command-keys - "Syntax checker %s reported too many errors (%s) and is disabled. -Use `\\[customize-variable] RET flycheck-checker-error-threshold' to -change the threshold or `\\[universal-argument] \ -\\[flycheck-disable-checker]' to re-enable the checker.") - checker (length errors)) - (push checker flycheck--automatically-disabled-checkers) - t)) - -(defun flycheck-clear (&optional shall-interrupt) - "Clear all errors in the current buffer. - -With prefix arg or SHALL-INTERRUPT non-nil, also interrupt the -current syntax check." - (interactive "P") - (when shall-interrupt - (flycheck-stop)) - (flycheck-delete-all-overlays) - (flycheck-clear-errors) - (flycheck-error-list-refresh) - (flycheck-hide-error-buffer)) - -(defun flycheck--empty-variables () - "Empty variables used by Flycheck." - (kill-local-variable 'flycheck--idle-trigger-timer) - (kill-local-variable 'flycheck--idle-trigger-conditions)) - -(defun flycheck-teardown (&optional ignore-global) - "Teardown Flycheck in the current buffer. - -Completely clear the whole Flycheck state. Remove overlays, kill -running checks, and empty all variables used by Flycheck. - -Unless optional argument IGNORE-GLOBAL is non-nil, check to see -if no more Flycheck buffers remain (aside from the current -buffer), and if so then clean up global hooks." - (flycheck-safe-delete-temporaries) - (flycheck-stop) - (flycheck-clean-deferred-check) - (flycheck-clear) - (flycheck-cancel-error-display-error-at-point-timer) - (flycheck--clear-idle-trigger-timer) - (flycheck--empty-variables) - (unless (or ignore-global - (seq-some (lambda (buf) - (and (not (equal buf (current-buffer))) - (buffer-local-value 'flycheck-mode buf))) - (buffer-list))) - (flycheck-global-teardown 'ignore-local))) - - -;;; Automatic syntax checking in a buffer -(defun flycheck-may-check-automatically (&rest conditions) - "Determine whether the buffer may be checked under one of CONDITIONS. - -Read-only buffers may never be checked automatically. - -If CONDITIONS are given, determine whether syntax may be checked -under at least one of them, according to -`flycheck-check-syntax-automatically'." - (and (not (or buffer-read-only (flycheck-ephemeral-buffer-p))) - (file-exists-p default-directory) - (or (not conditions) - (seq-some - (lambda (condition) - (memq condition flycheck-check-syntax-automatically)) - conditions)))) - -(defvar-local flycheck--idle-trigger-timer nil - "Timer used to trigger a syntax check after an idle delay.") - -(defvar-local flycheck--idle-trigger-conditions nil - "List of conditions under which an idle syntax check will be triggered. -This will be some subset of the allowable values for -`flycheck-check-syntax-automatically'. - -For example, if the user switches to a buffer and then makes an -edit, this list will have the values `idle-change' and -`idle-buffer-switch' in it, at least until the idle timer -expires.") - -(defun flycheck-buffer-automatically (&optional condition force-deferred) - "Automatically check syntax at CONDITION. - -Syntax is not checked if `flycheck-may-check-automatically' -returns nil for CONDITION. (CONDITION may be a single condition -or a list of them.) - -The syntax check is deferred if FORCE-DEFERRED is non-nil, or if -`flycheck-must-defer-check' returns t." - (when (and flycheck-mode (if (listp condition) - (apply #'flycheck-may-check-automatically - condition) - (flycheck-may-check-automatically condition))) - (flycheck--clear-idle-trigger-timer) - (setq flycheck--idle-trigger-conditions nil) - (if (or force-deferred (flycheck-must-defer-check)) - (flycheck-buffer-deferred) - (with-demoted-errors "Error while checking syntax automatically: %S" - (flycheck-buffer))))) - -(defun flycheck--clear-idle-trigger-timer () - "Clear the idle trigger timer." - (when flycheck--idle-trigger-timer - (cancel-timer flycheck--idle-trigger-timer) - (setq flycheck--idle-trigger-timer nil))) - -(defun flycheck--handle-idle-trigger (buffer) - "Run a syntax check in BUFFER if appropriate. -This function is called by `flycheck--idle-trigger-timer'." - (let ((current-buffer (current-buffer))) - (when (buffer-live-p buffer) - (with-current-buffer buffer - (unless (or flycheck-buffer-switch-check-intermediate-buffers - (eq buffer current-buffer)) - (setq flycheck--idle-trigger-conditions - (delq 'idle-buffer-switch - flycheck--idle-trigger-conditions))) - (when flycheck--idle-trigger-conditions - (flycheck-buffer-automatically flycheck--idle-trigger-conditions) - (setq flycheck--idle-trigger-conditions nil)))))) - -(defun flycheck-handle-change (beg end _len) - "Handle a buffer change between BEG and END. - -BEG and END mark the beginning and end of the change text. _LEN -is ignored. - -Start a syntax check if a new line has been inserted into the -buffer." - ;; Save and restore the match data, as recommended in (elisp)Change Hooks - (save-match-data - (when flycheck-mode - (if (string-match-p (rx "\n") (buffer-substring beg end)) - (flycheck-buffer-automatically 'new-line 'force-deferred) - (when (memq 'idle-change flycheck-check-syntax-automatically) - (flycheck--clear-idle-trigger-timer) - (cl-pushnew 'idle-change flycheck--idle-trigger-conditions) - (setq flycheck--idle-trigger-timer - (run-at-time flycheck-idle-change-delay nil - #'flycheck--handle-idle-trigger - (current-buffer)))))))) - -(defvar flycheck--last-buffer (current-buffer) - "The current buffer or the buffer that was previously current. -This is usually equal to the current buffer, unless the user just -switched buffers. After a buffer switch, it is the previous -buffer.") - -(defun flycheck-handle-buffer-switch () - "Handle a possible switch to another buffer. - -If a buffer switch actually happened, schedule a syntax check." - ;; Switching buffers here is weird, but unfortunately necessary. It - ;; turns out that `with-temp-buffer' triggers - ;; `buffer-list-update-hook' twice, and the value of - ;; `current-buffer' is bogus in one of those triggers (the one just - ;; after the temp buffer is killed). If we rely on the bogus value, - ;; Flycheck will think that the user is switching back and forth - ;; between different buffers during the `with-temp-buffer' call - ;; (note: two different normal buffers, not the current buffer and - ;; the temp buffer!), and that would trigger spurious syntax checks. - ;; It seems that reading (window-buffer) gets us the correct current - ;; buffer in all important real-life situations (although it doesn't - ;; necessarily catch uses of `set-buffer'). - (with-current-buffer (window-buffer) - (unless (or (equal flycheck--last-buffer (current-buffer)) - ;; Don't bother keeping track of changes to and from - ;; the minibuffer, as they will never require us to - ;; run a syntax check. - (minibufferp)) - (setq flycheck--last-buffer (current-buffer)) - (when (and flycheck-mode - (memq 'idle-buffer-switch flycheck-check-syntax-automatically)) - (flycheck--clear-idle-trigger-timer) - (cl-pushnew 'idle-buffer-switch flycheck--idle-trigger-conditions) - (setq flycheck--idle-trigger-timer - (run-at-time flycheck-idle-buffer-switch-delay nil - #'flycheck--handle-idle-trigger - (current-buffer))))))) - -(defun flycheck-handle-save () - "Handle a save of the buffer." - (flycheck-buffer-automatically 'save)) - - -;;; Deferred syntax checking -(defvar-local flycheck-deferred-syntax-check nil - "If non-nil, a deferred syntax check is pending.") - -(defun flycheck-must-defer-check () - "Determine whether the syntax check has to be deferred. - -A check has to be deferred if the buffer is not visible, or if the buffer is -currently being reverted. - -Return t if the check is to be deferred, or nil otherwise." - (or (not (get-buffer-window)) - ;; We defer the syntax check if Flycheck is already running, to - ;; immediately start a new syntax check after the current one finished, - ;; because the result of the current check will most likely be outdated by - ;; the time it is finished. - (flycheck-running-p) - ;; We must defer checks while a buffer is being reverted, to avoid race - ;; conditions while the buffer contents are being restored. - revert-buffer-in-progress-p)) - -(defun flycheck-deferred-check-p () - "Determine whether the current buffer has a deferred check. - -Return t if so, or nil otherwise." - flycheck-deferred-syntax-check) - -(defun flycheck-buffer-deferred () - "Defer syntax check for the current buffer." - (setq flycheck-deferred-syntax-check t)) - -(defun flycheck-clean-deferred-check () - "Clean a deferred syntax checking state." - (setq flycheck-deferred-syntax-check nil)) - -(defun flycheck-perform-deferred-syntax-check () - "Perform the deferred syntax check." - (when (flycheck-deferred-check-p) - (flycheck-clean-deferred-check) - (flycheck-buffer-automatically))) - - -;;; Syntax checking in all buffers -(defun flycheck-may-enable-mode () - "Determine whether Flycheck mode may be enabled. - -Flycheck mode is not enabled for - -- the minibuffer, -- `fundamental-mode' -- major modes whose `mode-class' property is `special', -- ephemeral buffers (see `flycheck-ephemeral-buffer-p'), -- encrypted buffers (see `flycheck-encrypted-buffer-p'), -- remote files (see `file-remote-p'), -- and major modes excluded by `flycheck-global-modes'. - -Return non-nil if Flycheck mode may be enabled, and nil -otherwise." - (and (pcase flycheck-global-modes - ;; Whether `major-mode' is disallowed by `flycheck-global-modes' - (`t t) - (`(not . ,modes) (not (memq major-mode modes))) - (modes (memq major-mode modes))) - (not (or (minibufferp) - (eq major-mode 'fundamental-mode) - (eq (get major-mode 'mode-class) 'special) - (flycheck-ephemeral-buffer-p) - (flycheck-encrypted-buffer-p) - (and (buffer-file-name) - (file-remote-p (buffer-file-name) 'method)))))) - -(defun flycheck-mode-on-safe () - "Enable command `flycheck-mode' if it is safe to do so. - -Command `flycheck-mode' is only enabled if -`flycheck-may-enable-mode' returns a non-nil result." - (when (flycheck-may-enable-mode) - (flycheck-mode))) - -;;;###autoload -(define-globalized-minor-mode global-flycheck-mode flycheck-mode - flycheck-mode-on-safe - :init-value nil - ;; Do not expose Global Flycheck Mode on customize interface, because the - ;; interaction between package.el and customize is currently broken. See - ;; https://github.com/flycheck/flycheck/issues/595 - - ;; :require 'flycheck :group - ;; 'flycheck - ) - -(defun flycheck-global-teardown (&optional ignore-local) - "Teardown Flycheck in all buffers. - -Completely clear the whole Flycheck state in all buffers, stop -all running checks, remove all temporary files, and empty all -variables of Flycheck. - -Also remove global hooks. (If optional argument IGNORE-LOCAL is -non-nil, then only do this and skip per-buffer teardown.)" - (unless ignore-local - (dolist (buffer (buffer-list)) - (with-current-buffer buffer - (when flycheck-mode - (flycheck-teardown 'ignore-global))))) - (remove-hook 'buffer-list-update-hook #'flycheck-handle-buffer-switch)) - -;; Clean up the entire state of Flycheck when Emacs is killed, to get rid of any -;; pending temporary files. -(add-hook 'kill-emacs-hook #'flycheck-global-teardown) - - -;;; Errors from syntax checks -(cl-defstruct (flycheck-error - (:constructor flycheck-error-new) - (:constructor flycheck-error-new-at - (line column - &optional level message - &key checker id group - (filename (buffer-file-name)) - (buffer (current-buffer))))) - "Structure representing an error reported by a syntax checker. -Slots: - -`buffer' - The buffer that the error was reported for, as buffer object. - -`checker' - The syntax checker which reported this error, as symbol. - -`filename' - The file name the error refers to, as string. - -`line' - The line number the error refers to, as number. - -`column' (optional) - The column number the error refers to, as number. - - For compatibility with external tools and unlike Emacs - itself (e.g. in Compile Mode) Flycheck uses _1-based_ - columns: The first character on a line is column 1. - - Occasionally some tools try to proactively adapt to Emacs - and emit 0-based columns automatically. In these cases, the - columns must be adjusted for Flycheck, see - `flycheck-increment-error-columns'. - -`message' (optional) - The error message as a string, if any. - -`level' - The error level, as either `info', `warning' or `error'. - -`id' (optional) - An ID identifying the kind of error. - -`group` (optional) - A symbol identifying the group the error belongs to. - - Some tools will emit multiple errors that relate to the same - issue (e.g., lifetime errors in Rust). All related errors - collected by a checker should have the same `group` value, - in order to be able to present them to the user. - - See `flycheck-related-errors`." - buffer checker filename line column message level id group) - -(defmacro flycheck-error-with-buffer (err &rest forms) - "Switch to the buffer of ERR and evaluate FORMS. - -If the buffer of ERR is not live, FORMS are not evaluated." - (declare (indent 1) (debug t)) - `(when (buffer-live-p (flycheck-error-buffer ,err)) - (with-current-buffer (flycheck-error-buffer ,err) - ,@forms))) - -(defun flycheck-error-line-region (err) - "Get the line region of ERR. - -ERR is a Flycheck error whose region to get. - -Return a cons cell `(BEG . END)' where BEG is the first -non-whitespace character on the line ERR refers to, and END the -end of the line." - (flycheck-error-with-buffer err - (save-restriction - (save-excursion - (widen) - (goto-char (point-min)) - (forward-line (- (flycheck-error-line err) 1)) - ;; We are at the beginning of the line now, so move to the beginning of - ;; its indentation, similar to `back-to-indentation' - (let ((end (line-end-position))) - (skip-syntax-forward " " end) - (backward-prefix-chars) - ;; If the current line is empty, include the previous line break - ;; character(s) to have any region at all. When called with 0, - ;; `line-end-position' gives us the end of the previous line - (cons (if (eolp) (line-end-position 0) (point)) end)))))) - -(defun flycheck-error-column-region (err) - "Get the error column region of ERR. - -ERR is a Flycheck error whose region to get. - -Return a cons cell `(BEG . END)' where BEG is the character -before the error column, and END the actual error column, or nil -if ERR has no column." - (flycheck-error-with-buffer err - (save-restriction - (save-excursion - (-when-let (column (flycheck-error-column err)) - (widen) - (goto-char (point-min)) - (forward-line (- (flycheck-error-line err) 1)) - (cond - ((eobp) ; Line beyond EOF - ;; If we are at the end of the file (i.e. the line was beyond the - ;; end of the file), use the very last column in the file. - (cons (- (point-max) 1) (point-max))) - ((eolp) ; Empty line - ;; If the target line is empty, there's no column to highlight on - ;; this line, so return the last column of the previous line. - (cons (line-end-position 0) (point))) - (t - ;; The end is either the column offset of the line, or the end of - ;; the line, if the column offset points beyond the end of the - ;; line. - (let ((end (min (+ (point) column) - (+ (line-end-position) 1)))) - (cons (- end 1) end))))))))) - -(defun flycheck-error-thing-region (thing err) - "Get the region of THING at the column of ERR. - -ERR is a Flycheck error whose region to get. THING is a -understood by `thing-at-point'. - -Return a cons cell `(BEG . END)' where BEG is the beginning of -the THING at the error column, and END the end of the symbol. If -ERR has no error column, or if there is no THING at this column, -return nil." - (-when-let (column (car (flycheck-error-column-region err))) - (flycheck-error-with-buffer err - (save-excursion - (save-restriction - (widen) - (goto-char column) - (bounds-of-thing-at-point thing)))))) - -(defun flycheck-error-region-for-mode (err mode) - "Get the region of ERR for the highlighting MODE. - -ERR is a Flycheck error. MODE may be one of the following symbols: - -`columns' - Get the column region of ERR, or the line region if ERR - has no column. - -`symbols' - Get the symbol region of ERR, or the result of `columns', if - there is no sexp at the error column. - -`sexps' - Get the sexp region of ERR, or the result of `columns', if - there is no sexp at the error column. - -`lines' - Return the line region. - -Otherwise signal an error." - ;; Ignoring fields speeds up calls to `line-end-position' in - ;; `flycheck-error-column-region' and `flycheck-error-line-region'. - (let ((inhibit-field-text-motion t)) - (pcase mode - (`columns (or (flycheck-error-column-region err) - (flycheck-error-line-region err))) - (`symbols (or (flycheck-error-thing-region 'symbol err) - (flycheck-error-region-for-mode err 'columns))) - (`sexps (or (flycheck-error-thing-region 'sexp err) - (flycheck-error-region-for-mode err 'columns))) - (`lines (flycheck-error-line-region err)) - (_ (error "Invalid mode %S" mode))))) - -(defun flycheck-error-pos (err) - "Get the buffer position of ERR. - -ERR is a Flycheck error whose position to get. - -The error position is the error column, or the first -non-whitespace character of the error line, if ERR has no error column." - (car (or (flycheck-error-column-region err) - (flycheck-error-line-region err)))) - -(defun flycheck-error-format-message-and-id (err) - "Format the message and id of ERR as human-readable string." - (let ((id (flycheck-error-id err)) - (filename (flycheck-error-filename err))) - (concat (when (and filename (not (equal filename (buffer-file-name)))) - (format "In \"%s\":\n" - (file-relative-name filename default-directory))) - (flycheck-error-message err) - (when id - (format " [%s]" id))))) - -(defun flycheck-error-format (err &optional with-file-name) - "Format ERR as human-readable string, optionally WITH-FILE-NAME. - -Return a string that represents the given ERR. If WITH-FILE-NAME -is given and non-nil, include the file-name as well, otherwise -omit it." - (let* ((line (flycheck-error-line err)) - (column (flycheck-error-column err)) - (level (symbol-name (flycheck-error-level err))) - (checker (symbol-name (flycheck-error-checker err))) - (format `(,@(when with-file-name - (list (flycheck-error-filename err) ":")) - ,(number-to-string line) ":" - ,@(when column (list (number-to-string column) ":")) - ,level ": " - ,(flycheck-error-format-message-and-id err) - " (" ,checker ")"))) - (apply #'concat format))) - -(defun flycheck-error-< (err1 err2) - "Determine whether ERR1 is less than ERR2 by location. - -Compare by line numbers and then by column numbers." - (let ((line1 (flycheck-error-line err1)) - (line2 (flycheck-error-line err2))) - (if (= line1 line2) - (let ((col1 (flycheck-error-column err1)) - (col2 (flycheck-error-column err2))) - (and col2 - ;; Sort errors for the whole line first - (or (not col1) (< col1 col2)))) - (< line1 line2)))) - -(defun flycheck-error-level-< (err1 err2) - "Determine whether ERR1 is less than ERR2 by error level. - -Like `flycheck-error-<', but compares by error level severity -first. Levels of the same severity are compared by name." - (let* ((level1 (flycheck-error-level err1)) - (level2 (flycheck-error-level err2)) - (severity1 (flycheck-error-level-severity level1)) - (severity2 (flycheck-error-level-severity level2))) - (cond - ((= severity1 severity2) - (if (string= level1 level2) - (flycheck-error-< err1 err2) - (string< level1 level2))) - (t (< severity1 severity2))))) - -(defun flycheck-assert-error-list-p (errors) - "Assert that all items in ERRORS are of `flycheck-error' type. - -Signal an error if any item in ERRORS is not a `flycheck-error' -object, as by `flycheck-error-p'. Otherwise return ERRORS -again." - (unless (listp errors) - (signal 'wrong-type-argument (list 'listp errors))) - (dolist (err errors) - (unless (flycheck-error-p err) - (signal 'wrong-type-argument (list 'flycheck-error-p err)))) - errors) - - -;;; Errors in the current buffer -(defvar-local flycheck-current-errors nil - "A list of all errors and warnings in the current buffer.") - -(defun flycheck-report-current-errors (errors) - "Report ERRORS in the current buffer. - -Add ERRORS to `flycheck-current-errors' and process each error -with `flycheck-process-error-functions'." - (setq flycheck-current-errors (sort (append errors flycheck-current-errors) - #'flycheck-error-<)) - (overlay-recenter (point-max)) - (seq-do (lambda (err) - (run-hook-with-args-until-success 'flycheck-process-error-functions - err)) - errors)) - -(defun flycheck-clear-errors () - "Remove all error information from the current buffer." - (setq flycheck-current-errors nil) - (flycheck-report-status 'not-checked)) - -(defun flycheck-fill-and-expand-error-file-names (errors directory) - "Fill and expand file names in ERRORS relative to DIRECTORY. - -Expand all file names of ERRORS against DIRECTORY. If the file -name of an error is nil fill in the result of function -`buffer-file-name' in the current buffer. - -Return ERRORS, modified in-place." - (seq-do (lambda (err) - (setf (flycheck-error-filename err) - (-if-let (filename (flycheck-error-filename err)) - (expand-file-name filename directory) - (buffer-file-name)))) - errors) - errors) - -(defun flycheck-relevant-error-other-file-p (err) - "Determine whether ERR is a relevant error for another file." - (let ((file-name (flycheck-error-filename err))) - (and file-name - flycheck-relevant-error-other-file-show - (or (null buffer-file-name) - (not (flycheck-same-files-p buffer-file-name file-name))) - (<= (flycheck-error-level-severity - flycheck-relevant-error-other-file-minimum-level) - (flycheck-error-level-severity (flycheck-error-level err)))))) - -(defun flycheck-relevant-error-p (err) - "Determine whether ERR is relevant for the current buffer. - -Return t if ERR may be shown for the current buffer, or nil -otherwise." - (flycheck-error-with-buffer err - (let ((file-name (flycheck-error-filename err)) - (message (flycheck-error-message err))) - (and - (or - ;; Neither the error nor buffer have a file name - (and (not file-name) (not buffer-file-name)) - ;; Both have files, and they match - (and buffer-file-name file-name - (flycheck-same-files-p file-name buffer-file-name)) - ;; This is a significant error from another file - (flycheck-relevant-error-other-file-p err)) - message - (not (string-empty-p message)) - (flycheck-error-line err))))) - -(defun flycheck-relevant-errors (errors) - "Filter the relevant errors from ERRORS. - -Return a list of all errors that are relevant for their -corresponding buffer." - (seq-filter #'flycheck-relevant-error-p errors)) - -(defun flycheck-related-errors (err &optional error-set) - "Get all the errors that are in the same group as ERR. - -Return a list of all errors (from ERROR-SET) that have the same -`flycheck-error-group' as ERR, including ERR itself. - -If ERROR-SET is nil, `flycheck-current-errors' is used instead." - (let ((group (flycheck-error-group err)) - (checker (flycheck-error-checker err))) - (if group - (seq-filter (lambda (e) - (and (eq (flycheck-error-checker e) checker) - (eq (flycheck-error-group e) group))) - (or error-set flycheck-current-errors)) - (list err)))) - - -;;; Status reporting for the current buffer -(defvar-local flycheck-last-status-change 'not-checked - "The last status change in the current buffer.") - -(defun flycheck-report-failed-syntax-check (&optional status) - "Report a failed Flycheck syntax check with STATUS. - -STATUS is a status symbol for `flycheck-report-status', -defaulting to `errored'. - -Clear Flycheck state, run `flycheck-syntax-check-failed-hook' and -report an error STATUS." - (flycheck-clear) - (setq flycheck-current-syntax-check nil) - (run-hooks 'flycheck-syntax-check-failed-hook) - (flycheck-report-status (or status 'errored))) - -(defun flycheck-report-status (status) - "Report Flycheck STATUS. - -STATUS is one of the following symbols: - -`not-checked' - The current buffer was not checked. - -`no-checker' - Automatic syntax checker selection did not find a suitable - syntax checker. - -`running' - A syntax check is now running in the current buffer. - -`errored' - The current syntax check has errored. - -`finished' - The current syntax check was finished normally. - -`interrupted' - The current syntax check was interrupted. - -`suspicious' - The last syntax check had a suspicious result. - -Set `flycheck-last-status-change' and call -`flycheck-status-changed-functions' with STATUS. Afterwards -refresh the mode line." - (setq flycheck-last-status-change status) - (run-hook-with-args 'flycheck-status-changed-functions status) - (force-mode-line-update)) - -(defun flycheck-mode-line-status-text (&optional status) - "Get a text describing STATUS for use in the mode line. - -STATUS defaults to `flycheck-last-status-change' if omitted or -nil." - (let ((text (pcase (or status flycheck-last-status-change) - (`not-checked "") - (`no-checker "-") - (`running "*") - (`errored "!") - (`finished - (let-alist (flycheck-count-errors flycheck-current-errors) - (if (or .error .warning) - (format ":%s/%s" (or .error 0) (or .warning 0)) - ""))) - (`interrupted ".") - (`suspicious "?")))) - (concat " " flycheck-mode-line-prefix text))) - - -;;; Error levels -;;;###autoload -(defun flycheck-define-error-level (level &rest properties) - "Define a new error LEVEL with PROPERTIES. - -The following PROPERTIES constitute an error level: - -`:severity SEVERITY' - A number denoting the severity of this level. The higher - the number, the more severe is this level compared to other - levels. Defaults to 0. - - The severity is used by `flycheck-error-level-<' to - determine the ordering of errors according to their levels. - -`:compilation-level LEVEL' - - A number indicating the broad class of messages that errors - at this level belong to: one of 0 (info), 1 (warning), or - 2 or nil (error). Defaults to nil. - - This is used by `flycheck-checker-pattern-to-error-regexp' - to map error levels into `compilation-mode''s hierarchy and - to get proper highlighting of errors in `compilation-mode'. - -`:overlay-category CATEGORY' - A symbol denoting the overlay category to use for error - highlight overlays for this level. See Info - node `(elisp)Overlay Properties' for more information about - overlay categories. - - A category for an error level overlay should at least define - the `face' property, for error highlighting. Another useful - property for error level categories is `priority', to - influence the stacking of multiple error level overlays. - -`:fringe-bitmap BITMAP' - A fringe bitmap symbol denoting the bitmap to use for fringe - indicators for this level. See Info node `(elisp)Fringe - Bitmaps' for more information about fringe bitmaps, - including a list of built-in fringe bitmaps. - -`:fringe-face FACE' - A face symbol denoting the face to use for fringe indicators - for this level. - -`:error-list-face FACE' - A face symbol denoting the face to use for messages of this - level in the error list. See `flycheck-list-errors'." - (declare (indent 1)) - (setf (get level 'flycheck-error-level) t) - (setf (get level 'flycheck-error-severity) - (or (plist-get properties :severity) 0)) - (setf (get level 'flycheck-compilation-level) - (plist-get properties :compilation-level)) - (setf (get level 'flycheck-overlay-category) - (plist-get properties :overlay-category)) - (setf (get level 'flycheck-fringe-bitmap-double-arrow) - (plist-get properties :fringe-bitmap)) - (setf (get level 'flycheck-fringe-face) - (plist-get properties :fringe-face)) - (setf (get level 'flycheck-error-list-face) - (plist-get properties :error-list-face))) - -(defun flycheck-error-level-p (level) - "Determine whether LEVEL is a Flycheck error level." - (get level 'flycheck-error-level)) - -(defun flycheck-error-level-severity (level) - "Get the numeric severity of LEVEL." - (or (get level 'flycheck-error-severity) 0)) - -(defun flycheck-error-level-compilation-level (level) - "Get the compilation level for LEVEL." - (get level 'flycheck-compilation-level)) - -(defun flycheck-error-level-overlay-category (level) - "Get the overlay category for LEVEL." - (get level 'flycheck-overlay-category)) - -(defun flycheck-error-level-fringe-bitmap (level) - "Get the fringe bitmap for LEVEL." - (get level 'flycheck-fringe-bitmap-double-arrow)) - -(defun flycheck-error-level-fringe-face (level) - "Get the fringe face for LEVEL." - (get level 'flycheck-fringe-face)) - -(defun flycheck-error-level-error-list-face (level) - "Get the error list face for LEVEL." - (get level 'flycheck-error-list-face)) - -(defun flycheck-error-level-make-fringe-icon (level side) - "Create the fringe icon for LEVEL at SIDE. - -Return a propertized string that shows a fringe bitmap according -to LEVEL and the given fringe SIDE. - -LEVEL is a Flycheck error level defined with -`flycheck-define-error-level', and SIDE is either `left-fringe' -or `right-fringe'. - -Return a propertized string representing the fringe icon, -intended for use as `before-string' of an overlay to actually -show the icon." - (unless (memq side '(left-fringe right-fringe)) - (error "Invalid fringe side: %S" side)) - (propertize "!" 'display - (list side - (flycheck-error-level-fringe-bitmap level) - (flycheck-error-level-fringe-face level)))) - - -;;; Built-in error levels -(when (fboundp 'define-fringe-bitmap) - (define-fringe-bitmap 'flycheck-fringe-bitmap-double-arrow - (vector #b00000000 - #b00000000 - #b00000000 - #b00000000 - #b00000000 - #b10011000 - #b01101100 - #b00110110 - #b00011011 - #b00110110 - #b01101100 - #b10011000 - #b00000000 - #b00000000 - #b00000000 - #b00000000 - #b00000000))) - -(setf (get 'flycheck-error-overlay 'face) 'flycheck-error) -(setf (get 'flycheck-error-overlay 'priority) 110) - -(flycheck-define-error-level 'error - :severity 100 - :compilation-level 2 - :overlay-category 'flycheck-error-overlay - :fringe-bitmap 'flycheck-fringe-bitmap-double-arrow - :fringe-face 'flycheck-fringe-error - :error-list-face 'flycheck-error-list-error) - -(setf (get 'flycheck-warning-overlay 'face) 'flycheck-warning) -(setf (get 'flycheck-warning-overlay 'priority) 100) - -(flycheck-define-error-level 'warning - :severity 10 - :compilation-level 1 - :overlay-category 'flycheck-warning-overlay - :fringe-bitmap 'flycheck-fringe-bitmap-double-arrow - :fringe-face 'flycheck-fringe-warning - :error-list-face 'flycheck-error-list-warning) - -(setf (get 'flycheck-info-overlay 'face) 'flycheck-info) -(setf (get 'flycheck-info-overlay 'priority) 90) - -(flycheck-define-error-level 'info - :severity -10 - :compilation-level 0 - :overlay-category 'flycheck-info-overlay - :fringe-bitmap 'flycheck-fringe-bitmap-double-arrow - :fringe-face 'flycheck-fringe-info - :error-list-face 'flycheck-error-list-info) - - -;;; Error filtering -(defun flycheck-filter-errors (errors checker) - "Filter ERRORS from CHECKER. - -Apply the error filter of CHECKER to ERRORs and return the -result. If CHECKER has no error filter, fall back to -`flycheck-sanitize-errors'." - (let ((filter (or (flycheck-checker-get checker 'error-filter) - #'flycheck-sanitize-errors))) - (funcall filter errors))) - -(defun flycheck-sanitize-errors (errors) - "Sanitize ERRORS. - -Sanitize ERRORS by trimming leading and trailing whitespace in -all error messages, and by replacing 0 columns and empty error -messages with nil. - -Returns sanitized ERRORS." - (dolist (err errors) - (flycheck-error-with-buffer err - (let ((message (flycheck-error-message err)) - (column (flycheck-error-column err)) - (id (flycheck-error-id err))) - (when message - (setq message (string-trim message)) - (setf (flycheck-error-message err) - (if (string-empty-p message) nil message))) - (when (and id (string-empty-p id)) - (setf (flycheck-error-id err) nil)) - (when (eq column 0) - (setf (flycheck-error-column err) nil))))) - errors) - -(defun flycheck-remove-error-file-names (file-name errors) - "Remove matching FILE-NAME from ERRORS. - -Use as `:error-filter' for syntax checkers that output faulty -filenames. Flycheck will later fill in the buffer file name. - -Return ERRORS." - (seq-do (lambda (err) - (when (and (flycheck-error-filename err) - (string= (flycheck-error-filename err) file-name)) - (setf (flycheck-error-filename err) nil))) - errors) - errors) - -(defun flycheck-increment-error-columns (errors &optional offset) - "Increment all columns of ERRORS by OFFSET. - -Use this as `:error-filter' if a syntax checker outputs 0-based -columns." - (seq-do (lambda (err) - (let ((column (flycheck-error-column err))) - (when column - (setf (flycheck-error-column err) - (+ column (or offset 1)))))) - errors) - errors) - -(defun flycheck-collapse-error-message-whitespace (errors) - "Collapse whitespace in all messages of ERRORS. - -Return ERRORS." - (dolist (err errors) - (-when-let (message (flycheck-error-message err)) - (setf (flycheck-error-message err) - (replace-regexp-in-string (rx (one-or-more (any space "\n" "\r"))) - " " message 'fixed-case 'literal)))) - errors) - -(defun flycheck-dedent-error-messages (errors) - "Dedent all messages of ERRORS. - -For each error in ERRORS, determine the indentation offset from -the leading whitespace of the first line, and dedent all further -lines accordingly. - -Return ERRORS, with in-place modifications." - (dolist (err errors) - (-when-let (message (flycheck-error-message err)) - (with-temp-buffer - (insert message) - ;; Determine the indentation offset - (goto-char (point-min)) - (back-to-indentation) - (let* ((indent-offset (- (point) (point-min)))) - ;; Now iterate over all lines and dedent each according to - ;; `indent-offset' - (while (not (eobp)) - (back-to-indentation) - ;; If the current line starts with sufficient whitespace, delete the - ;; indendation offset. Otherwise keep the line intact, as we might - ;; loose valuable information - (when (>= (- (point) (line-beginning-position)) indent-offset) - (delete-char (- indent-offset))) - (forward-line 1))) - (delete-trailing-whitespace (point-min) (point-max)) - (setf (flycheck-error-message err) - (buffer-substring-no-properties (point-min) (point-max)))))) - errors) - -(defun flycheck-fold-include-levels (errors sentinel-message) - "Fold levels of ERRORS from included files. - -ERRORS is a list of `flycheck-error' objects. SENTINEL-MESSAGE -is a regular expression matched against the error message to -determine whether the errror denotes errors from an included -file. Alternatively, it is a function that is given an error and -shall return non-nil, if the error denotes errors from an -included file." - (unless (or (stringp sentinel-message) (functionp sentinel-message)) - (error "Sentinel must be string or function: %S" sentinel-message)) - (let ((sentinel (if (functionp sentinel-message) - sentinel-message - (lambda (err) - (string-match-p sentinel-message - (flycheck-error-message err))))) - (remaining-errors errors)) - (while remaining-errors - (let* ((current-error (pop remaining-errors))) - (when (funcall sentinel current-error) - ;; We found an error denoting errors in the included file: - ;; 1. process all subsequent errors until faulty include file is found - ;; 2. process again all subsequent errors until an error has the - ;; current file name again - ;; 3. find the most severe error level - (let ((current-filename (flycheck-error-filename current-error)) - (current-level nil) - (faulty-include-filename nil) - (filename nil) - (done (null remaining-errors))) - - (while (not done) - (setq filename (flycheck-error-filename (car remaining-errors))) - (unless faulty-include-filename - (unless (string= filename current-filename) - (setq faulty-include-filename filename))) - - (let* ((error-in-include (pop remaining-errors)) - (in-include-level (flycheck-error-level error-in-include))) - (unless (funcall sentinel error-in-include) - ;; Ignore nested "included file" errors, we are only - ;; interested in real errors because these define our level - (when (or (not current-level) - (> (flycheck-error-level-severity in-include-level) - (flycheck-error-level-severity current-level))) - (setq current-level in-include-level)))) - - (setq done (or (null remaining-errors) - (and faulty-include-filename - (string= filename current-filename))))) - - (setf (flycheck-error-level current-error) current-level - (flycheck-error-message current-error) - (format "In include %s" faulty-include-filename)))))) - errors)) - -(defun flycheck-dequalify-error-ids (errors) - "De-qualify error ids in ERRORS. - -Remove all qualifications from error ids in ERRORS, by stripping -all leading dotted components from error IDs. For instance, if -the error ID is com.foo.E100, replace it with E100. - -This error filter is mainly useful to simplify error IDs obtained -from parsing Checkstyle XML, which frequently has very verbose -IDs, that include the name of the tool." - (seq-do (lambda (err) - (let ((id (flycheck-error-id err))) - (when id - (setf (flycheck-error-id err) - (replace-regexp-in-string - (rx string-start - (group - (optional (zero-or-more not-newline) ".")) - (one-or-more (not (any "."))) - string-end) - "" id 'fixedcase 'literal 1))))) - errors) - errors) - -(defun flycheck-remove-error-ids (errors) - "Remove all error ids from ERRORS." - (seq-do (lambda (err) (setf (flycheck-error-id err) nil)) errors) - errors) - -(defun flycheck-fill-empty-line-numbers (errors) - "Set ERRORS without lines to line 0. - -Use as `:error-filter' for syntax checkers that output errors -without line numbers. - -Return ERRORS." - (seq-do (lambda (err) - (unless (flycheck-error-line err) - (setf (flycheck-error-line err) 0))) - errors) - errors) - - -;;; Error analysis -(defun flycheck-count-errors (errors) - "Count the number of ERRORS, grouped by level. - -Return an alist, where each ITEM is a cons cell whose `car' is an -error level, and whose `cdr' is the number of errors of that -level." - (let (counts-by-level) - (dolist (err errors) - (let* ((level (flycheck-error-level err)) - (item (assq level counts-by-level))) - (if item - (cl-incf (cdr item)) - (push (cons level 1) counts-by-level)))) - counts-by-level)) - -(defun flycheck-has-max-errors-p (errors level) - "Check if there is no error in ERRORS more severe than LEVEL." - (let ((severity (flycheck-error-level-severity level))) - (seq-every-p (lambda (e) (<= (flycheck-error-level-severity - (flycheck-error-level e)) - severity)) - errors))) - -(defun flycheck-has-max-current-errors-p (level) - "Check if there is no current error more severe than LEVEL." - (flycheck-has-max-errors-p flycheck-current-errors level)) - -(defun flycheck-has-errors-p (errors level) - "Determine if there are any ERRORS with LEVEL." - (seq-some (lambda (e) (eq (flycheck-error-level e) level)) errors)) - -(defun flycheck-has-current-errors-p (&optional level) - "Determine if the current buffer has errors with LEVEL. - -If LEVEL is omitted if the current buffer has any errors at all." - (if level - (flycheck-has-errors-p flycheck-current-errors level) - (and flycheck-current-errors t))) - - -;;; Error overlays in the current buffer -(defun flycheck-add-overlay (err) - "Add overlay for ERR. - -Return the created overlay." - ;; We must have a proper error region for the sake of fringe indication, - ;; error display and error navigation, even if the highlighting is disabled. - ;; We erase the highlighting later on in this case - (pcase-let* ((`(,beg . ,end) - (if (flycheck-relevant-error-other-file-p err) - ;; Display overlays for other-file errors on the first line - (cons (point-min) - (save-excursion (goto-char (point-min)) - (point-at-eol))) - (flycheck-error-region-for-mode - err (or flycheck-highlighting-mode 'lines)))) - (overlay (make-overlay beg end)) - (level (flycheck-error-level err)) - (category (flycheck-error-level-overlay-category level))) - (unless (flycheck-error-level-p level) - (error "Undefined error level: %S" level)) - (setf (overlay-get overlay 'flycheck-overlay) t) - (setf (overlay-get overlay 'flycheck-error) err) - (setf (overlay-get overlay 'category) category) - (unless flycheck-highlighting-mode - ;; Erase the highlighting from the overlay if requested by the user - (setf (overlay-get overlay 'face) nil)) - (when flycheck-indication-mode - (setf (overlay-get overlay 'before-string) - (flycheck-error-level-make-fringe-icon - level flycheck-indication-mode))) - (setf (overlay-get overlay 'help-echo) #'flycheck-help-echo) - overlay)) - -(defun flycheck-help-echo (_window object pos) - "Construct a tooltip message. - -Most of the actual work is done by calling -`flycheck-help-echo-function' with the appropriate list of -errors. Arguments WINDOW, OBJECT and POS are as described in -info node `(elisp)Special properties', as this function is -intended to be used as the 'help-echo property of flycheck error -overlays." - (-when-let (buf (cond ((bufferp object) object) - ((overlayp object) (overlay-buffer object)))) - (with-current-buffer buf - (-when-let* ((fn flycheck-help-echo-function) - (errs (flycheck-overlay-errors-at pos))) - (funcall fn errs))))) - -(defun flycheck-help-echo-all-error-messages (errs) - "Concatenate error messages and ids from ERRS." - (mapconcat - (lambda (err) - (when err - (if (flycheck-error-message err) - (flycheck-error-format-message-and-id err) - (format "Unknown %s" (flycheck-error-level err))))) - (reverse errs) "\n\n")) - -(defun flycheck-filter-overlays (overlays) - "Get all Flycheck overlays from OVERLAYS." - (seq-filter (lambda (o) (overlay-get o 'flycheck-overlay)) overlays)) - -(defun flycheck-overlays-at (pos) - "Get all Flycheck overlays at POS." - (flycheck-filter-overlays (overlays-at pos))) - -(defun flycheck-overlays-in (beg end) - "Get all Flycheck overlays between BEG and END." - (flycheck-filter-overlays (overlays-in beg end))) - -(defun flycheck-overlay-errors-at (pos) - "Return a list of all flycheck errors overlayed at POS." - (seq-map (lambda (o) (overlay-get o 'flycheck-error)) - (flycheck-overlays-at pos))) - -(defun flycheck-overlay-errors-in (beg end) - "Return a list of all flycheck errors overlayed between BEG and END." - (seq-map (lambda (o) (overlay-get o 'flycheck-error)) - (flycheck-overlays-in beg end))) - -(defvar-local flycheck-overlays-to-delete nil - "Overlays mark for deletion after all syntax checks completed.") -(put 'flycheck-overlays-to-delete 'permanent-local t) - -(defun flycheck-delete-all-overlays () - "Remove all flycheck overlays in the current buffer." - (overlay-recenter (point-max)) - (flycheck-delete-marked-overlays) - (save-restriction - (widen) - (seq-do #'delete-overlay (flycheck-overlays-in (point-min) (point-max))))) - -(defun flycheck-mark-all-overlays-for-deletion () - "Mark all current overlays for deletion." - (setq flycheck-overlays-to-delete - (append (flycheck-overlays-in (point-min) (point-max)) - flycheck-overlays-to-delete))) - -(defun flycheck-delete-marked-overlays () - "Delete all overlays marked for deletion." - (overlay-recenter (point-max)) - (seq-do #'delete-overlay flycheck-overlays-to-delete) - (setq flycheck-overlays-to-delete nil)) - - -;;; Error navigation in the current buffer -(defun flycheck-error-level-interesting-at-pos-p (pos) - "Check if error severity at POS passes `flycheck-error-level-interesting-p'." - (flycheck-error-level-interesting-p (get-char-property pos 'flycheck-error))) - -(defun flycheck-error-level-interesting-p (err) - "Check if ERR severity is >= `flycheck-navigation-minimum-level'." - (when (flycheck-error-p err) - (-if-let (min-level flycheck-navigation-minimum-level) - (<= (flycheck-error-level-severity min-level) - (flycheck-error-level-severity (flycheck-error-level err))) - t))) - -(defun flycheck-next-error-pos (n &optional reset) - "Get the position of the N-th next error. - -With negative N, get the position of the (-N)-th previous error -instead. With non-nil RESET, search from `point-min', otherwise -search from the current point. - -Return the position of the next or previous error, or nil if -there is none. If N is zero, return `point', or `point-min' if -RESET is non-nil." - (let ((n (or n 1)) - (pos (if reset (point-min) (point)))) - (if (>= n 0) - ;; Search forwards - (while (and pos (> n 0)) - (setq n (1- n)) - (when (get-char-property pos 'flycheck-error) - ;; Move beyond from the current error if any - (setq pos (next-single-char-property-change pos 'flycheck-error))) - (while (not (or (= pos (point-max)) - (flycheck-error-level-interesting-at-pos-p pos))) - ;; Scan for the next error - (setq pos (next-single-char-property-change pos 'flycheck-error))) - (when (and (= pos (point-max)) - (not (flycheck-error-level-interesting-at-pos-p pos))) - ;; If we reached the end of the buffer, but no error, we didn't find - ;; any - (setq pos nil))) - ;; Search backwards - (while (and pos (< n 0)) - (setq n (1+ n)) - ;; Loop until we find an error. We need to check the position *before* - ;; the current one, because `previous-single-char-property-change' - ;; always moves to the position *of* the change. - (while (not (or (= pos (point-min)) - (flycheck-error-level-interesting-at-pos-p (1- pos)))) - (setq pos (previous-single-char-property-change pos 'flycheck-error))) - (when (and (= pos (point-min)) - (not (flycheck-error-level-interesting-at-pos-p pos))) - ;; We didn't find any error. - (setq pos nil)) - (when pos - ;; We found an error, so move to its beginning - (setq pos (previous-single-char-property-change pos - 'flycheck-error))))) - pos)) - -(defun flycheck-next-error-function (n reset) - "Visit the N-th error from the current point. - -N is the number of errors to advance by, where a negative N -advances backwards. With non-nil RESET, advance from the -beginning of the buffer, otherwise advance from the current -position. - -Intended for use with `next-error-function'." - (-if-let* ((pos (flycheck-next-error-pos n reset)) - (err (get-char-property pos 'flycheck-error))) - (flycheck-jump-to-error err) - (user-error "No more Flycheck errors"))) - -(defun flycheck-next-error (&optional n reset) - "Visit the N-th error from the current point. - -N is the number of errors to advance by, where a negative N -advances backwards. With non-nil RESET, advance from the -beginning of the buffer, otherwise advance from the current -position." - (interactive "P") - (when (consp n) - ;; Universal prefix argument means reset - (setq reset t n nil)) - (flycheck-next-error-function n reset) - (flycheck-display-error-at-point)) - -(defun flycheck-previous-error (&optional n) - "Visit the N-th previous error. - -If given, N specifies the number of errors to move backwards by. -If N is negative, move forwards instead." - (interactive "P") - (flycheck-next-error (- (or n 1)))) - -(defun flycheck-first-error (&optional n) - "Visit the N-th error from beginning of the buffer. - -If given, N specifies the number of errors to move forward from -the beginning of the buffer." - (interactive "P") - (flycheck-next-error n 'reset)) - - -;;; Listing errors in buffers -(defconst flycheck-error-list-buffer "*Flycheck errors*" - "The name of the buffer to show error lists.") - -(defvar flycheck-error-list-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "f") #'flycheck-error-list-set-filter) - (define-key map (kbd "F") #'flycheck-error-list-reset-filter) - (define-key map (kbd "n") #'flycheck-error-list-next-error) - (define-key map (kbd "p") #'flycheck-error-list-previous-error) - (define-key map (kbd "g") #'flycheck-error-list-check-source) - (define-key map (kbd "e") #'flycheck-error-list-explain-error) - (define-key map (kbd "RET") #'flycheck-error-list-goto-error) - map) - "The keymap of `flycheck-error-list-mode'.") - -(defun flycheck-error-list-make-last-column (message checker) - "Compute contents of the last error list cell. - -MESSAGE and CHECKER are displayed in a single column to allow the -message to stretch arbitrarily far." - (let ((checker-name (propertize (symbol-name checker) - 'face 'flycheck-error-list-checker-name))) - (format "%s (%s)" message checker-name))) - -(defconst flycheck-error-list-format - `[("File" 6) - ("Line" 5 flycheck-error-list-entry-< :right-align t) - ("Col" 3 nil :right-align t) - ("Level" 8 flycheck-error-list-entry-level-<) - ("ID" 6 t) - (,(flycheck-error-list-make-last-column "Message" 'Checker) 0 t)] - "Table format for the error list.") - -(defconst flycheck-error-list-padding 1 - "Padding used in error list.") - -(defconst flycheck--error-list-msg-offset - (seq-reduce - (lambda (offset fmt) - (pcase-let* ((`(,_ ,width ,_ . ,props) fmt) - (padding (or (plist-get props :pad-right) 1))) - (+ offset width padding))) - (seq-subseq flycheck-error-list-format 0 -1) - flycheck-error-list-padding) - "Amount of space to use in `flycheck-flush-multiline-message'.") - -(define-derived-mode flycheck-error-list-mode tabulated-list-mode - "Flycheck errors" - "Major mode for listing Flycheck errors. - -\\{flycheck-error-list-mode-map}" - (setq tabulated-list-format flycheck-error-list-format - ;; Sort by location initially - tabulated-list-sort-key (cons "Line" nil) - tabulated-list-padding flycheck-error-list-padding - tabulated-list-entries #'flycheck-error-list-entries - ;; `revert-buffer' updates the mode line for us, so all we need to do is - ;; set the corresponding mode line construct. - mode-line-buffer-identification flycheck-error-list-mode-line) - ;; Guard `truncate-string-ellipsis' for Emacs 24. - ;; TODO: Remove when dropping Emacs 24 compatibility - (when (boundp 'truncate-string-ellipsis) - ;; See https://github.com/flycheck/flycheck/issues/1101 - (setq-local truncate-string-ellipsis "…")) - (tabulated-list-init-header)) - -(defvar-local flycheck-error-list-source-buffer nil - "The current source buffer of the error list.") -;; Needs to permanently local to preserve the source buffer across buffer -;; reversions -(put 'flycheck-error-list-source-buffer 'permanent-local t) - -(defun flycheck-error-list-set-source (buffer) - "Set BUFFER as the source buffer of the error list." - (when (get-buffer flycheck-error-list-buffer) - (with-current-buffer flycheck-error-list-buffer - ;; Only update the source when required - (unless (eq buffer flycheck-error-list-source-buffer) - (setq flycheck-error-list-source-buffer buffer) - (flycheck-error-list-refresh))))) - -(defun flycheck-error-list-update-source () - "Update the source buffer of the error list." - (when (not (eq (current-buffer) (get-buffer flycheck-error-list-buffer))) - ;; We must not update the source buffer, if the current buffer is the error - ;; list itself. - (flycheck-error-list-set-source (current-buffer)))) - -(defun flycheck-error-list-check-source () - "Trigger a syntax check in the source buffer of the error list." - (interactive) - (let ((buffer (get-buffer flycheck-error-list-source-buffer))) - (when (buffer-live-p buffer) - (with-current-buffer buffer - (flycheck-buffer))))) - -(define-button-type 'flycheck-error-list - 'action #'flycheck-error-list-button-goto-error - 'help-echo "mouse-1, RET: goto error" - 'face nil) - -(defun flycheck-error-list-button-goto-error (button) - "Go to the error at BUTTON." - (flycheck-error-list-goto-error (button-start button))) - -(define-button-type 'flycheck-error-list-explain-error - 'action #'flycheck-error-list-button-explain-error - 'help-echo "mouse-1, RET: explain error") - -(defun flycheck-error-list-button-explain-error (button) - "Explain the error at BUTTON." - (flycheck-error-list-explain-error (button-start button))) - -(defsubst flycheck-error-list-make-cell (text &optional face help-echo type) - "Make an error list cell with TEXT and FACE. - -If FACE is nil don't set a FACE on TEXT. If TEXT already has -face properties, do not specify a FACE. Note though, that if -TEXT gets truncated it will not inherit any previous face -properties. If you expect TEXT to be truncated in the error -list, do specify a FACE explicitly! - -If HELP-ECHO is non-nil, set a help-echo property on TEXT, with -value HELP-ECHO. This is convenient if you expect TEXT to be -truncated. - -The cell will have the type TYPE unless TYPE is nil, and the -default type `flycheck-error-list' will be used instead." - (append (list text 'type (if type type - 'flycheck-error-list)) - (and face (list 'face face)) - (and help-echo (list 'help-echo help-echo)))) - -(defsubst flycheck-error-list-make-number-cell (number face) - "Make a table cell for a NUMBER with FACE. - -Convert NUMBER to string, fontify it with FACE and return the -string with attached text properties." - (flycheck-error-list-make-cell - (if (numberp number) (number-to-string number) "") - face)) - -(defun flycheck-error-list-make-entry (error) - "Make a table cell for the given ERROR. - -Return a list with the contents of the table cell." - (let* ((level (flycheck-error-level error)) - (level-face (flycheck-error-level-error-list-face level)) - (filename (flycheck-error-filename error)) - (line (flycheck-error-line error)) - (column (flycheck-error-column error)) - (message (or (flycheck-error-message error) - (format "Unknown %s" (symbol-name level)))) - (flushed-msg (flycheck-flush-multiline-message message)) - (id (flycheck-error-id error)) - (id-str (if id (format "%s" id) "")) - (checker (flycheck-error-checker error)) - (msg-and-checker - (flycheck-error-list-make-last-column flushed-msg checker)) - (explainer (flycheck-checker-get checker 'error-explainer))) - (list error - (vector (flycheck-error-list-make-cell - (if filename - (file-name-nondirectory filename) - "") - 'flycheck-error-list-filename) - (flycheck-error-list-make-number-cell - line 'flycheck-error-list-line-number) - (flycheck-error-list-make-number-cell - column 'flycheck-error-list-column-number) - (flycheck-error-list-make-cell - (symbol-name (flycheck-error-level error)) level-face) - ;; Error ID use a different face when an error-explainer is - ;; present - (flycheck-error-list-make-cell - id-str (if explainer 'flycheck-error-list-id-with-explainer - 'flycheck-error-list-id) - id-str 'flycheck-error-list-explain-error) - (flycheck-error-list-make-cell - msg-and-checker nil msg-and-checker))))) - -(defun flycheck-flush-multiline-message (msg) - "Prepare error message MSG for display in the error list. - -Prepend all lines of MSG except the first with enough space to -ensure that they line up properly once the message is displayed." - (let* ((spc-spec `(space . (:width ,flycheck--error-list-msg-offset))) - (spc (propertize " " 'display spc-spec)) - (rep (concat "\\1" spc "\\2"))) - (replace-regexp-in-string "\\([\r\n]+\\)\\(.\\)" rep msg))) - -(defun flycheck-error-list-current-errors () - "Read the list of errors in `flycheck-error-list-source-buffer'." - (when (buffer-live-p flycheck-error-list-source-buffer) - (buffer-local-value 'flycheck-current-errors - flycheck-error-list-source-buffer))) - -(defun flycheck-error-list-entries () - "Create the entries for the error list." - (-when-let* ((errors (flycheck-error-list-current-errors)) - (filtered (flycheck-error-list-apply-filter errors))) - (seq-map #'flycheck-error-list-make-entry filtered))) - -(defun flycheck-error-list-entry-< (entry1 entry2) - "Determine whether ENTRY1 is before ENTRY2 by location. - -See `flycheck-error-<'." - (flycheck-error-< (car entry1) (car entry2))) - -(defun flycheck-error-list-entry-level-< (entry1 entry2) - "Determine whether ENTRY1 is before ENTRY2 by level. - -See `flycheck-error-level-<'." - (not (flycheck-error-level-< (car entry1) (car entry2)))) - -(defvar flycheck-error-list-mode-line-map - (let ((map (make-sparse-keymap))) - (define-key map [mode-line mouse-1] - #'flycheck-error-list-mouse-switch-to-source) - map) - "Keymap for error list mode line.") - -(defun flycheck-error-list-propertized-source-name () - "Get the name of the current source buffer for the mode line. - -Propertize the name of the current source buffer for use in the -mode line indication of `flycheck-error-list-mode'." - (let ((name (replace-regexp-in-string - (rx "%") "%%" - (buffer-name flycheck-error-list-source-buffer) - 'fixed-case 'literal))) - (propertize name 'face 'mode-line-buffer-id - 'mouse-face 'mode-line-highlight - 'help-echo "mouse-1: switch to source" - 'local-map flycheck-error-list-mode-line-map))) - -(defun flycheck-error-list-mouse-switch-to-source (event) - "Switch to the error list source buffer of the EVENT window." - (interactive "e") - (save-selected-window - (when (eventp event) - (select-window (posn-window (event-start event)))) - (when (buffer-live-p flycheck-error-list-source-buffer) - (switch-to-buffer flycheck-error-list-source-buffer)))) - -(defun flycheck-get-error-list-window-list (&optional all-frames) - "Get all windows displaying the error list. - -ALL-FRAMES specifies the frames to consider, as in -`get-buffer-window-list'." - (-when-let (buf (get-buffer flycheck-error-list-buffer)) - (get-buffer-window-list buf nil all-frames))) - -(defun flycheck-get-error-list-window (&optional all-frames) - "Get a window displaying the error list, or nil if none. - -ALL-FRAMES specifies the frames to consider, as in -`get-buffer-window'." - (-when-let (buf (get-buffer flycheck-error-list-buffer)) - (get-buffer-window buf all-frames))) - -(defun flycheck-error-list-recenter-at (pos) - "Recenter the error list at POS." - (dolist (window (flycheck-get-error-list-window-list t)) - (with-selected-window window - (goto-char pos) - (let ((recenter-redisplay nil)) - (recenter))))) - -(defun flycheck-error-list-refresh () - "Refresh the current error list. - -Add all errors currently reported for the current -`flycheck-error-list-source-buffer', and recenter the error -list." - ;; We only refresh the error list, when it is visible in a window, and we - ;; select this window while reverting, because Tabulated List mode attempts to - ;; recenter the error at the old location, so it must have the proper window - ;; selected. - (-when-let (window (flycheck-get-error-list-window t)) - (with-selected-window window - (revert-buffer)) - (run-hooks 'flycheck-error-list-after-refresh-hook) - (let ((preserve-pos (eq (current-buffer) - (get-buffer flycheck-error-list-buffer)))) - ;; If the error list is the current buffer, don't recenter when - ;; highlighting - (flycheck-error-list-highlight-errors preserve-pos)))) - -(defun flycheck-error-list-mode-line-filter-indicator () - "Create a string representing the current error list filter." - (if flycheck-error-list-minimum-level - (format " [>= %s]" flycheck-error-list-minimum-level) - "")) - -(defun flycheck-error-list-set-filter (level) - "Restrict the error list to errors at level LEVEL or higher. - -LEVEL is either an error level symbol, or nil, to remove the filter." - (interactive - (list (read-flycheck-error-level - "Minimum error level (errors at lower levels will be hidden): "))) - (when (and level (not (flycheck-error-level-p level))) - (user-error "Invalid level: %s" level)) - (-when-let (buf (get-buffer flycheck-error-list-buffer)) - (with-current-buffer buf - (setq-local flycheck-error-list-minimum-level level)) - (flycheck-error-list-refresh) - (flycheck-error-list-recenter-at (point-min)))) - -(defun flycheck-error-list-reset-filter () - "Remove filters and show all errors in the error list." - (interactive) - (kill-local-variable 'flycheck-error-list-minimum-level)) - -(defun flycheck-error-list-apply-filter (errors) - "Filter ERRORS according to `flycheck-error-list-minimum-level'." - (-if-let* ((min-level flycheck-error-list-minimum-level) - (min-severity (flycheck-error-level-severity min-level))) - (seq-filter (lambda (err) (>= (flycheck-error-level-severity - (flycheck-error-level err)) - min-severity)) - errors) - errors)) - -(defun flycheck-error-list-goto-error (&optional pos) - "Go to the location of the error at POS in the error list. - -POS defaults to `point'." - (interactive) - (-when-let* ((error (tabulated-list-get-id pos))) - (flycheck-jump-to-error error))) - -(defun flycheck-jump-to-error (error) - "Go to the location of ERROR." - (let* ((error-copy (copy-flycheck-error error)) - (filename (flycheck-error-filename error)) - (other-file-error (flycheck-relevant-error-other-file-p error)) - (buffer (if filename - (find-file-noselect filename) - (flycheck-error-buffer error)))) - (when (buffer-live-p buffer) - (setf (flycheck-error-buffer error-copy) buffer) - (flycheck-jump-in-buffer buffer error-copy) - ;; When jumping to an error in another file, it may not have - ;; this error available for highlighting yet, so we trigger a check - ;; if necessary. - (when other-file-error - (with-current-buffer buffer - ;; `seq-contains-p' is only in seq >= 2.21, which isn't in ELPA - (unless (with-no-warnings - (seq-contains flycheck-current-errors error-copy 'equal)) - (when flycheck-mode - (flycheck-buffer)))))))) - -(defun flycheck-jump-in-buffer (buffer error) - "In BUFFER, jump to ERROR." - ;; FIXME: we assume BUFFER and the buffer of ERROR are the same. We don't - ;; need the first argument then. - (if (eq (window-buffer) (get-buffer flycheck-error-list-buffer)) - ;; When called from within the error list, keep the error list, - ;; otherwise replace the current buffer. - (pop-to-buffer buffer 'other-window) - (switch-to-buffer buffer)) - (let ((pos (flycheck-error-pos error))) - (unless (eq (goto-char pos) (point)) - ;; If widening gets in the way of moving to the right place, remove it - ;; and try again - (widen) - (goto-char pos))) - ;; Re-highlight the errors - (flycheck-error-list-highlight-errors 'preserve-pos)) - -(defun flycheck-error-list-explain-error (&optional pos) - "Explain the error at POS in the error list. - -POS defaults to `point'." - (interactive) - (-when-let* ((error (tabulated-list-get-id pos)) - (explainer (flycheck-checker-get (flycheck-error-checker error) - 'error-explainer)) - (explanation (funcall explainer error))) - (flycheck-display-error-explanation explanation))) - -(defun flycheck-error-list-next-error-pos (pos &optional n) - "Starting from POS get the N'th next error in the error list. - -N defaults to 1. If N is negative, search for the previous error -instead. - -Get the beginning position of the N'th next error from POS, or -nil, if there is no next error." - (let ((n (or n 1))) - (if (>= n 0) - ;; Search forward - (while (and pos (/= n 0)) - (setq n (1- n)) - (setq pos (next-single-property-change pos 'tabulated-list-id))) - ;; Search backwards - (while (/= n 0) - (setq n (1+ n)) - ;; We explicitly give the limit here to explicitly have the minimum - ;; point returned, to be able to move to the first error (which starts - ;; at `point-min') - (setq pos (previous-single-property-change pos 'tabulated-list-id - nil (point-min))))) - pos)) - -(defun flycheck-error-list-previous-error (n) - "Go to the N'th previous error in the error list." - (interactive "P") - (flycheck-error-list-next-error (- (or n 1)))) - -(defun flycheck-error-list-next-error (n) - "Go to the N'th next error in the error list." - (interactive "P") - (let ((pos (flycheck-error-list-next-error-pos (point) n))) - (when (and pos (/= pos (point))) - (goto-char pos) - (save-selected-window - ;; Keep the error list selected, so that the user can navigate errors by - ;; repeatedly pressing n/p, without having to re-select the error list - ;; window. - (flycheck-error-list-goto-error))))) - -(defvar-local flycheck-error-list-highlight-overlays nil - "Error highlight overlays in the error list buffer.") -(put 'flycheck-error-list-highlight-overlays 'permanent-local t) - -(defun flycheck-error-list-highlight-errors (&optional preserve-pos) - "Highlight errors in the error list. - -Highlight all errors in the error lists that are at point in the -source buffer, and on the same line as point. Then recenter the -error list to the highlighted error, unless PRESERVE-POS is -non-nil." - (when (get-buffer flycheck-error-list-buffer) - (let ((current-errors (flycheck-overlay-errors-in (line-beginning-position) - (line-end-position)))) - (with-current-buffer flycheck-error-list-buffer - (let ((old-overlays flycheck-error-list-highlight-overlays) - (min-point (point-max)) - (max-point (point-min))) - ;; Display the new overlays first, to avoid re-display flickering - (setq flycheck-error-list-highlight-overlays nil) - (when current-errors - (let ((next-error-pos (point-min))) - (while next-error-pos - (let* ((beg next-error-pos) - (end (flycheck-error-list-next-error-pos beg)) - (err (tabulated-list-get-id beg))) - (when (member err current-errors) - (setq min-point (min min-point beg) - max-point (max max-point beg)) - (let ((ov (make-overlay beg - ;; Extend overlay to the beginning - ;; of the next line, to highlight - ;; the whole line - (or end (point-max))))) - (push ov flycheck-error-list-highlight-overlays) - (setf (overlay-get ov 'flycheck-error-highlight-overlay) - t) - (setf (overlay-get ov 'face) - 'flycheck-error-list-highlight))) - (setq next-error-pos end))))) - ;; Delete the old overlays - (seq-do #'delete-overlay old-overlays) - (when (and (not preserve-pos) current-errors) - ;; Move point to the middle error - (goto-char (+ min-point (/ (- max-point min-point) 2))) - (beginning-of-line) - ;; And recenter the error list at this position - (flycheck-error-list-recenter-at (point)))))))) - -(defun flycheck-list-errors () - "Show the error list for the current buffer." - (interactive) - (unless flycheck-mode - (user-error "Flycheck mode not enabled")) - ;; Create and initialize the error list - (unless (get-buffer flycheck-error-list-buffer) - (with-current-buffer (get-buffer-create flycheck-error-list-buffer) - (flycheck-error-list-mode))) - (flycheck-error-list-set-source (current-buffer)) - ;; Reset the error filter - (flycheck-error-list-reset-filter) - ;; Show the error list in a window, and re-select the old window - (display-buffer flycheck-error-list-buffer) - ;; Finally, refresh the error list to show the most recent errors - (flycheck-error-list-refresh)) - -(defalias 'list-flycheck-errors 'flycheck-list-errors) - - -;;; Displaying errors in the current buffer -(defun flycheck-display-errors (errors) - "Display ERRORS using `flycheck-display-errors-function'." - (when flycheck-display-errors-function - (funcall flycheck-display-errors-function errors))) - -(defvar-local flycheck-display-error-at-point-timer nil - "Timer to automatically show the error at point in minibuffer.") - -(defun flycheck-cancel-error-display-error-at-point-timer () - "Cancel the error display timer for the current buffer." - (when flycheck-display-error-at-point-timer - (cancel-timer flycheck-display-error-at-point-timer) - (setq flycheck-display-error-at-point-timer nil))) - -(defun flycheck-display-error-at-point () - "Display the all error messages at point in minibuffer." - (interactive) - ;; This function runs from a timer, so we must take care to not ignore any - ;; errors - (with-demoted-errors "Flycheck error display error: %s" - (flycheck-cancel-error-display-error-at-point-timer) - (when flycheck-mode - (-when-let (errors (flycheck-overlay-errors-at (point))) - (flycheck-display-errors errors))))) - -(defun flycheck-display-error-at-point-soon () - "Display the first error message at point in minibuffer delayed." - (flycheck-cancel-error-display-error-at-point-timer) - (when (flycheck-overlays-at (point)) - (setq flycheck-display-error-at-point-timer - (run-at-time flycheck-display-errors-delay nil - 'flycheck-display-error-at-point)))) - - -;;; Functions to display errors -(defconst flycheck-error-message-buffer "*Flycheck error messages*" - "The name of the buffer to show long error messages in.") - -(defun flycheck-error-message-buffer () - "Get the buffer object to show long error messages in. - -Get the buffer named by variable `flycheck-error-message-buffer', -or nil if the buffer does not exist." - (get-buffer flycheck-error-message-buffer)) - -(defun flycheck-may-use-echo-area-p () - "Determine whether the echo area may be used. - -The echo area may be used if the cursor is not in the echo area, -and if the echo area is not occupied by minibuffer input." - (not (or cursor-in-echo-area (active-minibuffer-window)))) - -(defun flycheck-display-error-messages (errors) - "Display the messages of ERRORS. - -Concatenate all non-nil messages of ERRORS separated by empty -lines, and display them with `display-message-or-buffer', which -shows the messages either in the echo area or in a separate -buffer, depending on the number of lines. See Info -node `(elisp)Displaying Messages' for more information. - -In the latter case, show messages in the buffer denoted by -variable `flycheck-error-message-buffer'." - (when (and errors (flycheck-may-use-echo-area-p)) - (let ((messages (seq-map #'flycheck-error-format-message-and-id errors))) - (display-message-or-buffer (string-join messages "\n\n") - flycheck-error-message-buffer - 'not-this-window)))) - -(defun flycheck-display-error-messages-unless-error-list (errors) - "Show messages of ERRORS unless the error list is visible. - -Like `flycheck-display-error-messages', but only if the error -list (see `flycheck-list-errors') is not visible in any window in -the current frame." - (unless (flycheck-get-error-list-window 'current-frame) - (flycheck-display-error-messages errors))) - -(defun flycheck-hide-error-buffer () - "Hide the Flycheck error buffer if necessary. - -Hide the error buffer if there is no error under point." - (-when-let* ((buffer (flycheck-error-message-buffer)) - (window (get-buffer-window buffer))) - (unless (flycheck-overlays-at (point)) - ;; save-selected-window prevents `quit-window' from changing the current - ;; buffer (see https://github.com/flycheck/flycheck/issues/648). - (save-selected-window - (quit-window nil window))))) - - -;;; Working with errors -(defun flycheck-copy-errors-as-kill (pos &optional formatter) - "Copy each error at POS into kill ring, using FORMATTER. - -FORMATTER is a function to turn an error into a string, -defaulting to `flycheck-error-message'. - -Interactively, use `flycheck-error-format-message-and-id' as -FORMATTER with universal prefix arg, and `flycheck-error-id' with -normal prefix arg, i.e. copy the message and the ID with -universal prefix arg, and only the id with normal prefix arg." - (interactive (list (point) - (pcase current-prefix-arg - ((pred not) #'flycheck-error-message) - ((pred consp) #'flycheck-error-format-message-and-id) - (_ #'flycheck-error-id)))) - (let ((messages (delq nil (seq-map (or formatter #'flycheck-error-message) - (flycheck-overlay-errors-at pos))))) - (when messages - (seq-do #'kill-new (reverse messages)) - (message (string-join messages "\n"))))) - -(defun flycheck-explain-error-at-point () - "Display an explanation for the first explainable error at point. - -The first explainable error at point is the first error at point -with a non-nil `:error-explainer' function defined in its -checker. The `:error-explainer' function is then called with -this error to produce the explanation to display." - (interactive) - (-when-let* ((first-error - ;; Get the first error at point that has an `error-explainer'. - (seq-find (lambda (error) - (flycheck-checker-get - (flycheck-error-checker error) 'error-explainer)) - (flycheck-overlay-errors-at (point)))) - (explainer - (flycheck-checker-get (flycheck-error-checker first-error) - 'error-explainer)) - (explanation (funcall explainer first-error))) - (flycheck-display-error-explanation explanation))) - -(defconst flycheck-explain-error-buffer "*Flycheck error explanation*" - "The name of the buffer to show error explanations.") - -(defun flycheck-display-error-explanation (explanation) - "Display the EXPLANATION string in a help buffer." - (with-help-window (get-buffer-create flycheck-explain-error-buffer) - (princ explanation))) - - -;;; Syntax checkers using external commands -(defun flycheck-command-argument-p (arg) - "Check whether ARG is a valid command argument." - (pcase arg - ((pred stringp) t) - ((or `source `source-inplace `source-original) t) - ((or `temporary-directory `temporary-file-name) t) - (`null-device t) - (`(config-file ,option-name ,config-file-var) - (and (stringp option-name) - (symbolp config-file-var))) - (`(config-file ,option-name ,config-file-var ,prepender) - (and (stringp option-name) - (symbolp config-file-var) - (symbolp prepender))) - (`(,(or `option `option-list) ,option-name ,option-var) - (and (stringp option-name) - (symbolp option-var))) - (`(,(or `option `option-list) ,option-name ,option-var ,prepender) - (and (stringp option-name) - (symbolp option-var) - (symbolp prepender))) - (`(,(or `option `option-list) ,option-name ,option-var ,prepender ,filter) - (and (stringp option-name) - (symbolp option-var) - (symbolp prepender) - (symbolp filter))) - (`(option-flag ,option-name ,option-var) - (and (stringp option-name) - (symbolp option-var))) - (`(eval ,_) t) - (_ nil))) - -(defun flycheck-compute-working-directory (checker) - "Get the default working directory for CHECKER. - -Compute the value of `default-directory' for the invocation of -the syntax checker command, by calling the function in the -`working-directory' property of CHECKER, with CHECKER as sole -argument, and returning its value. Signal an error if the -function returns a non-existing working directory. - -If the property is undefined or if the function returns nil -return the `default-directory' of the current buffer." - (let* ((def-directory-fn (flycheck-checker-get checker 'working-directory)) - (directory (or (and def-directory-fn - (funcall def-directory-fn checker)) - ;; Default to the `default-directory' of the current - ;; buffer - default-directory))) - (unless (file-exists-p directory) - (error ":working-directory %s of syntax checker %S does not exist" - directory checker)) - directory)) - -;;;###autoload -(defun flycheck-define-command-checker (symbol docstring &rest properties) - "Define SYMBOL as syntax checker to run a command. - -Define SYMBOL as generic syntax checker via -`flycheck-define-generic-checker', which uses an external command -to check the buffer. SYMBOL and DOCSTRING are the same as for -`flycheck-define-generic-checker'. - -In addition to the properties understood by -`flycheck-define-generic-checker', the following PROPERTIES -constitute a command syntax checker. Unless otherwise noted, all -properties are mandatory. Note that the default `:error-filter' -of command checkers is `flycheck-sanitize-errors'. - -`:command COMMAND' - The command to run for syntax checking. - - COMMAND is a list of the form `(EXECUTABLE [ARG ...])'. - - EXECUTABLE is a string with the executable of this syntax - checker. It can be overridden with the variable - `flycheck-SYMBOL-executable'. Note that this variable is - NOT implicitly defined by this function. Use - `flycheck-def-executable-var' to define this variable. - - Each ARG is an argument to the executable, either as string, - or as special symbol or form for - `flycheck-substitute-argument', which see. - -`:error-patterns PATTERNS' - A list of patterns to parse the output of the `:command'. - - Each ITEM in PATTERNS is a list `(LEVEL SEXP ...)', where - LEVEL is a Flycheck error level (see - `flycheck-define-error-level'), followed by one or more RX - `SEXP's which parse an error of that level and extract line, - column, file name and the message. - - See `rx' for general information about RX, and - `flycheck-rx-to-string' for some special RX forms provided - by Flycheck. - - All patterns are applied in the order of declaration to the - whole output of the syntax checker. Output already matched - by a pattern will not be matched by subsequent patterns. In - other words, the first pattern wins. - - This property is optional. If omitted, however, an - `:error-parser' is mandatory. - -`:error-parser FUNCTION' - A function to parse errors with. - - The function shall accept three arguments OUTPUT CHECKER - BUFFER. OUTPUT is the syntax checker output as string, - CHECKER the syntax checker that was used, and BUFFER a - buffer object representing the checked buffer. The function - must return a list of `flycheck-error' objects parsed from - OUTPUT. - - This property is optional. If omitted, it defaults to - `flycheck-parse-with-patterns'. In this case, - `:error-patterns' is mandatory. - -`:standard-input t' - Whether to send the buffer contents on standard input. - - If this property is given and has a non-nil value, send the - contents of the buffer on standard input. - - Defaults to nil. - -Note that you may not give `:start', `:interrupt', and -`:print-doc' for a command checker. You can give a custom -`:verify' function, though, whose results will be appended to the -default `:verify' function of command checkers." - (declare (indent 1) - (doc-string 2)) - (dolist (prop '(:start :interrupt :print-doc)) - (when (plist-get properties prop) - (error "%s not allowed in definition of command syntax checker %s" - prop symbol))) - - (unless (plist-get properties :error-filter) - ;; Default to `flycheck-sanitize-errors' as error filter - (setq properties (plist-put properties :error-filter - #'flycheck-sanitize-errors))) - (let ((verify-fn (plist-get properties :verify))) - (setq properties - (plist-put properties :verify - (lambda (checker) - (append (flycheck-verify-command-checker checker) - (and verify-fn - (funcall verify-fn checker))))))) - - (let ((command (plist-get properties :command)) - (patterns (plist-get properties :error-patterns)) - (parser (or (plist-get properties :error-parser) - #'flycheck-parse-with-patterns)) - (enabled (plist-get properties :enabled)) - (standard-input (plist-get properties :standard-input))) - (unless command - (error "Missing :command in syntax checker %s" symbol)) - (unless (stringp (car command)) - (error "Command executable for syntax checker %s must be a string: %S" - symbol (car command))) - (dolist (arg (cdr command)) - (unless (flycheck-command-argument-p arg) - (error "Invalid command argument %S in syntax checker %s" arg symbol))) - (when (and (eq parser 'flycheck-parse-with-patterns) - (not patterns)) - (error "Missing :error-patterns in syntax checker %s" symbol)) - - (setq properties - ;; Automatically disable command checkers if the executable does not - ;; exist. - (plist-put properties :enabled - (lambda () - (and (flycheck-find-checker-executable symbol) - (flycheck-temp-files-writable-p symbol) - (or (not enabled) (funcall enabled)))))) - - (apply #'flycheck-define-generic-checker symbol docstring - :start #'flycheck-start-command-checker - :interrupt #'flycheck-interrupt-command-checker - :print-doc #'flycheck-command-checker-print-doc - properties) - - ;; Pre-compile all errors patterns into strings, so that we don't need to do - ;; that on each error parse - (let ((patterns (seq-map (lambda (p) - (cons (flycheck-rx-to-string `(and ,@(cdr p)) - 'no-group) - (car p))) - patterns))) - (pcase-dolist (`(,prop . ,value) - `((command . ,command) - (error-parser . ,parser) - (error-patterns . ,patterns) - (standard-input . ,standard-input))) - (setf (flycheck-checker-get symbol prop) value))))) - -(eval-and-compile - ;; Make this function available during byte-compilation, since we need it - ;; at macro expansion of `flycheck-def-executable-var'. - (defun flycheck-checker-executable-variable (checker) - "Get the executable variable of CHECKER. - -The executable variable is named `flycheck-CHECKER-executable'." - (intern (format "flycheck-%s-executable" checker)))) - -(defun flycheck-checker-default-executable (checker) - "Get the default executable of CHECKER." - (car (flycheck-checker-get checker 'command))) - -(defun flycheck-checker-executable (checker) - "Get the command executable of CHECKER. - -The executable is either the value of the variable -`flycheck-CHECKER-executable', or the default executable given in -the syntax checker definition, if the variable is nil." - (let ((var (flycheck-checker-executable-variable checker))) - (or (and (boundp var) (symbol-value var)) - (flycheck-checker-default-executable checker)))) - -(defun flycheck-find-checker-executable (checker) - "Get the full path of the executable of CHECKER. - -Return the full absolute path to the executable of CHECKER, or -nil if the executable does not exist." - (funcall flycheck-executable-find (flycheck-checker-executable checker))) - -(defun flycheck-checker-arguments (checker) - "Get the command arguments of CHECKER." - (cdr (flycheck-checker-get checker 'command))) - -(defun flycheck-substitute-argument (arg checker) - "Substitute ARG for CHECKER. - -Return a list of real arguments for the executable of CHECKER, -substituted for the symbolic argument ARG. Single arguments, -e.g. if ARG is a literal strings, are wrapped in a list. - -ARG may be one of the following forms: - -STRING - Return ARG unchanged. - -`source', `source-inplace' - Create a temporary file to check and return its path. With - `source-inplace' create the temporary file in the same - directory as the original file. The value of - `flycheck-temp-prefix' is used as prefix of the file name. - - With `source', try to retain the non-directory component of - the buffer's file name in the temporary file. - - `source' is the preferred way to pass the input file to a - syntax checker. `source-inplace' should only be used if the - syntax checker needs other files from the source directory, - such as include files in C. - -`source-original' - Return the path of the actual file to check, or an empty - string if the buffer has no file name. - - Note that the contents of the file may not be up to date - with the contents of the buffer to check. Do not use this - as primary input to a checker, unless absolutely necessary. - - When using this symbol as primary input to the syntax - checker, add `flycheck-buffer-saved-p' to the `:predicate'. - -`temporary-directory' - Create a unique temporary directory and return its path. - -`temporary-file-name' - Return a unique temporary filename. The file is *not* - created. - - To ignore the output of syntax checkers, try `null-device' - first. - -`null-device' - Return the value of `null-device', i.e the system null - device. - - Use this option to ignore the output of a syntax checker. - If the syntax checker cannot handle the null device, or - won't write to an existing file, try `temporary-file-name' - instead. - -`(config-file OPTION VARIABLE [PREPEND-FN])' - Search the configuration file bound to VARIABLE with - `flycheck-locate-config-file' and return a list of arguments - that pass this configuration file to the syntax checker, or - nil if the configuration file was not found. - - PREPEND-FN is called with the OPTION and the located - configuration file, and should return OPTION prepended - before the file, either a string or as list. If omitted, - PREPEND-FN defaults to `list'. - -`(option OPTION VARIABLE [PREPEND-FN [FILTER]])' - Retrieve the value of VARIABLE and return a list of - arguments that pass this value as value for OPTION to the - syntax checker. - - PREPEND-FN is called with the OPTION and the value of - VARIABLE, and should return OPTION prepended before the - file, either a string or as list. If omitted, PREPEND-FN - defaults to `list'. - - FILTER is an optional function to be applied to the value of - VARIABLE before prepending. This function must return nil - or a string. In the former case, return nil. In the latter - case, return a list of arguments as described above. - -`(option-list OPTION VARIABLE [PREPEND-FN [FILTER]])' - Retrieve the value of VARIABLE, which must be a list, - and prepend OPTION before each item in this list, using - PREPEND-FN. - - PREPEND-FN is called with the OPTION and each item of the - list as second argument, and should return OPTION prepended - before the item, either as string or as list. If omitted, - PREPEND-FN defaults to `list'. - - FILTER is an optional function to be applied to each item in - the list before prepending OPTION. It shall return the - option value for each item as string, or nil, if the item is - to be ignored. - -`(option-flag OPTION VARIABLE)' - Retrieve the value of VARIABLE and return OPTION, if the - value is non-nil. Otherwise return nil. - -`(eval FORM)' - Return the result of evaluating FORM in the buffer to be - checked. FORM must either return a string or a list of - strings, or nil to indicate that nothing should be - substituted for CELL. For all other return types, signal an - error - - _No_ further substitutions are performed, neither in FORM - before it is evaluated, nor in the result of evaluating - FORM. - -In all other cases, signal an error. - -Note that substitution is *not* recursive. No symbols or cells -are substituted within the body of cells!" - (pcase arg - ((pred stringp) (list arg)) - (`source - (list (flycheck-save-buffer-to-temp #'flycheck-temp-file-system))) - (`source-inplace - (list (flycheck-save-buffer-to-temp #'flycheck-temp-file-inplace))) - (`source-original (list (or (buffer-file-name) ""))) - (`temporary-directory (list (flycheck-temp-dir-system))) - (`temporary-file-name - (let ((directory (flycheck-temp-dir-system))) - (list (make-temp-name (expand-file-name "flycheck" directory))))) - (`null-device (list null-device)) - (`(config-file ,option-name ,file-name-var) - (-when-let* ((value (symbol-value file-name-var)) - (file-name (flycheck-locate-config-file value checker))) - (flycheck-prepend-with-option option-name (list file-name)))) - (`(config-file ,option-name ,file-name-var ,prepend-fn) - (-when-let* ((value (symbol-value file-name-var)) - (file-name (flycheck-locate-config-file value checker))) - (flycheck-prepend-with-option option-name (list file-name) prepend-fn))) - (`(option ,option-name ,variable) - (-when-let (value (symbol-value variable)) - (unless (stringp value) - (error "Value %S of %S for option %s is not a string" - value variable option-name)) - (flycheck-prepend-with-option option-name (list value)))) - (`(option ,option-name ,variable ,prepend-fn) - (-when-let (value (symbol-value variable)) - (unless (stringp value) - (error "Value %S of %S for option %s is not a string" - value variable option-name)) - (flycheck-prepend-with-option option-name (list value) prepend-fn))) - (`(option ,option-name ,variable ,prepend-fn ,filter) - (-when-let (value (funcall filter (symbol-value variable))) - (unless (stringp value) - (error "Value %S of %S (filter: %S) for option %s is not a string" - value variable filter option-name)) - (flycheck-prepend-with-option option-name (list value) prepend-fn))) - (`(option-list ,option-name ,variable) - (let ((value (symbol-value variable))) - (unless (and (listp value) (seq-every-p #'stringp value)) - (error "Value %S of %S for option %S is not a list of strings" - value variable option-name)) - (flycheck-prepend-with-option option-name value))) - (`(option-list ,option-name ,variable ,prepend-fn) - (let ((value (symbol-value variable))) - (unless (and (listp value) (seq-every-p #'stringp value)) - (error "Value %S of %S for option %S is not a list of strings" - value variable option-name)) - (flycheck-prepend-with-option option-name value prepend-fn))) - (`(option-list ,option-name ,variable ,prepend-fn ,filter) - (let ((value (delq nil (seq-map filter (symbol-value variable))))) - (unless (and (listp value) (seq-every-p #'stringp value)) - (error "Value %S of %S for option %S is not a list of strings" - value variable option-name)) - (flycheck-prepend-with-option option-name value prepend-fn))) - (`(option-flag ,option-name ,variable) - (when (symbol-value variable) - (list option-name))) - (`(eval ,form) - (let ((result (eval form))) - (cond - ((and (listp result) (seq-every-p #'stringp result)) result) - ((stringp result) (list result)) - (t (error "Invalid result from evaluation of %S: %S" form result))))) - (_ (error "Unsupported argument %S" arg)))) - -(defun flycheck-checker-substituted-arguments (checker) - "Get the substituted arguments of a CHECKER. - -Substitute each argument of CHECKER using -`flycheck-substitute-argument'. This replaces any special -symbols in the command." - (apply #'append - (seq-map (lambda (arg) (flycheck-substitute-argument arg checker)) - (flycheck-checker-arguments checker)))) - -(defun flycheck--process-send-buffer-contents-chunked (process) - "Send contents of current buffer to PROCESS in small batches. - -Send the entire buffer to the standard input of PROCESS in chunks -of 4096 characters. Chunking is done in Emacs Lisp, hence this -function is probably far less efficient than -`send-process-region'. Use only when required." - (let ((from (point-min))) - (while (< from (point-max)) - (let ((to (min (+ from 4096) (point-max)))) - (process-send-region process from to) - (setq from to))))) - -(defvar flycheck-chunked-process-input - ;; Chunk process output on Windows to work around - ;; https://github.com/flycheck/flycheck/issues/794 and - ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22344. The presence of - ;; `w32-pipe-buffer-size' denotes an Emacs version (> Emacs 25.1 )where pipe - ;; writes on Windows are fixed. - ;; - ;; TODO: Remove option and chunking when dropping Emacs 24 support, see - ;; https://github.com/flycheck/flycheck/issues/856 - (and (eq system-type 'windows-nt) (not (boundp 'w32-pipe-buffer-size))) - "If non-nil send process input in small chunks. - -If this variable is non-nil `flycheck-process-send-buffer' sends -buffer contents in small chunks. - -Defaults to nil, except on Windows to work around Emacs bug -#22344.") - -(defun flycheck-process-send-buffer (process) - "Send all contents of current buffer to PROCESS. - -Sends all contents of the current buffer to the standard input of -PROCESS, and terminates standard input with EOF. - -If `flycheck-chunked-process-input' is non-nil, send buffer -contents in chunks via -`flycheck--process-send-buffer-contents-chunked', which see. -Otherwise use `process-send-region' to send all contents at once -and rely on Emacs' own buffering and chunking." - (save-restriction - (widen) - (if flycheck-chunked-process-input - (flycheck--process-send-buffer-contents-chunked process) - (process-send-region process (point-min) (point-max)))) - (process-send-eof process)) - -(defun flycheck-start-command-checker (checker callback) - "Start a command CHECKER with CALLBACK." - (let (process) - (condition-case err - (let* ((program (flycheck-find-checker-executable checker)) - (args (flycheck-checker-substituted-arguments checker)) - (command (funcall flycheck-command-wrapper-function - (cons program args))) - ;; Use pipes to receive output from the syntax checker. They are - ;; more efficient and more robust than PTYs, which Emacs uses by - ;; default, and since we don't need any job control features, we - ;; can easily use pipes. - (process-connection-type nil)) - ;; We pass do not associate the process with any buffer, by - ;; passing nil for the BUFFER argument of `start-process'. - ;; Instead, we just remember the buffer being checked in a - ;; process property (see below). This neatly avoids all - ;; side-effects implied by attached a process to a buffer, which - ;; may cause conflicts with other packages. - ;; - ;; See https://github.com/flycheck/flycheck/issues/298 for an - ;; example for such a conflict. - (setq process (apply 'start-process (format "flycheck-%s" checker) - nil command)) - (setf (process-sentinel process) #'flycheck-handle-signal) - (setf (process-filter process) #'flycheck-receive-checker-output) - (set-process-query-on-exit-flag process nil) - ;; Remember the syntax checker, the buffer and the callback - (process-put process 'flycheck-checker checker) - (process-put process 'flycheck-callback callback) - (process-put process 'flycheck-buffer (current-buffer)) - ;; The default directory is bound in the `flycheck-syntax-check-start' - ;; function. - (process-put process 'flycheck-working-directory default-directory) - ;; Track the temporaries created by argument substitution in the - ;; process itself, to get rid of the global state ASAP. - (process-put process 'flycheck-temporaries flycheck-temporaries) - (setq flycheck-temporaries nil) - ;; Send the buffer to the process on standard input, if enabled. - (when (flycheck-checker-get checker 'standard-input) - (flycheck-process-send-buffer process)) - ;; Return the process. - process) - (error - ;; In case of error, clean up our resources, and report the error back to - ;; Flycheck. - (flycheck-safe-delete-temporaries) - (when process - ;; No need to explicitly delete the temporary files of the process, - ;; because deleting runs the sentinel, which will delete them anyway. - (delete-process process)) - (signal (car err) (cdr err)))))) - -(defun flycheck-interrupt-command-checker (_checker process) - "Interrupt a PROCESS." - ;; Deleting the process always triggers the sentinel, which does the cleanup - (when process - (delete-process process))) - -(defun flycheck-command-checker-print-doc (checker) - "Print additional documentation for a command CHECKER." - (let ((executable (flycheck-checker-default-executable checker)) - (config-file-var (flycheck-checker-get checker 'config-file-var)) - (option-vars (seq-sort #'string< - (flycheck-checker-get checker 'option-vars)))) - (princ "\n") - - (let ((doc-start (with-current-buffer standard-output (point-max)))) - ;; Track the start of our documentation so that we can re-indent it - ;; properly - (princ " This syntax checker executes \"") - (princ executable) - (princ "\"") - (when config-file-var - (princ ", using a configuration file from `") - (princ (symbol-name config-file-var)) - (princ "'")) - (princ ". The executable can be overridden with `") - (princ (symbol-name (flycheck-checker-executable-variable checker))) - (princ "'.") - - (with-current-buffer standard-output - (save-excursion - (fill-region-as-paragraph doc-start (point-max))))) - (princ "\n") - (when option-vars - (princ - "\n This syntax checker can be configured with these options:\n\n") - (dolist (var option-vars) - (princ (format " * `%s'\n" var)))))) - -(defun flycheck-verify-command-checker (checker) - "Verify a command CHECKER in the current buffer. - -Return a list of `flycheck-verification-result' objects for -CHECKER." - (let ((executable (flycheck-find-checker-executable checker)) - (config-file-var (flycheck-checker-get checker 'config-file-var))) - `( - ,(flycheck-verification-result-new - :label "executable" - :message (if executable (format "Found at %s" executable) "Not found") - :face (if executable 'success '(bold error))) - ,@(when config-file-var - (let* ((value (symbol-value config-file-var)) - (path (and value (flycheck-locate-config-file value checker)))) - (list (flycheck-verification-result-new - :label "configuration file" - :message (if path (format "Found at %S" path) "Not found") - :face (if path 'success 'warning))))) - ,@(when (not (flycheck-temp-files-writable-p checker)) - (list (flycheck-verification-result-new - :label "temp directory" - :message (format "%s is not writable" - (flycheck-temp-directory checker)) - :face 'error)))))) - - -;;; Process management for command syntax checkers -(defun flycheck-receive-checker-output (process output) - "Receive a syntax checking PROCESS OUTPUT." - (push output (process-get process 'flycheck-pending-output))) - -(defun flycheck-get-output (process) - "Get the complete output of PROCESS." - (with-demoted-errors "Error while retrieving process output: %S" - (let ((pending-output (process-get process 'flycheck-pending-output))) - (apply #'concat (nreverse pending-output))))) - -(defun flycheck-handle-signal (process _event) - "Handle a signal from the syntax checking PROCESS. - -_EVENT is ignored." - (when (memq (process-status process) '(signal exit)) - (let ((files (process-get process 'flycheck-temporaries)) - (buffer (process-get process 'flycheck-buffer)) - (callback (process-get process 'flycheck-callback)) - (cwd (process-get process 'flycheck-working-directory))) - ;; Delete the temporary files - (seq-do #'flycheck-safe-delete files) - (when (buffer-live-p buffer) - (with-current-buffer buffer - (condition-case err - (pcase (process-status process) - (`signal - (funcall callback 'interrupted)) - (`exit - (flycheck-finish-checker-process - (process-get process 'flycheck-checker) - (process-exit-status process) - files - (flycheck-get-output process) callback cwd))) - ((debug error) - (funcall callback 'errored (error-message-string err))))))))) - -(defun flycheck-finish-checker-process - (checker exit-status files output callback cwd) - "Finish a checker process from CHECKER with EXIT-STATUS. - -FILES is a list of files given as input to the checker. OUTPUT -is the output of the syntax checker. CALLBACK is the status -callback to use for reporting. - -Parse the OUTPUT and report an appropriate error status. - -Resolve all errors in OUTPUT using CWD as working directory." - (let ((errors (flycheck-parse-output output checker (current-buffer)))) - (when (and (/= exit-status 0) (not errors)) - ;; Warn about a suspicious result from the syntax checker. We do right - ;; after parsing the errors, before filtering, because a syntax checker - ;; might report errors from other files (e.g. includes) even if there - ;; are no errors in the file being checked. - (funcall callback 'suspicious - (format "Flycheck checker %S returned non-zero \ -exit code %s, but its output contained no errors: %s\nTry \ -installing a more recent version of %S, and please open a bug \ -report if the issue persists in the latest release. Thanks!" - checker exit-status output checker))) - (funcall callback 'finished - ;; Fix error file names, by substituting them backwards from the - ;; temporaries. - (seq-map (lambda (e) (flycheck-fix-error-filename e files cwd)) - errors)))) - - -;;; Executables of command checkers. -(defmacro flycheck-def-executable-var (checker default-executable) - "Define the executable variable for CHECKER. - -DEFAULT-EXECUTABLE is the default executable. It is only used in -the docstring of the variable. - -The variable is defined with `defcustom' in the -`flycheck-executables' group. It's also defined to be risky as -file-local variable, to avoid arbitrary executables being used -for syntax checking." - (let ((executable-var (flycheck-checker-executable-variable checker))) - `(progn - (defcustom ,executable-var nil - ,(format "The executable of the %s syntax checker. - -Either a string containing the name or the path of the -executable, or nil to use the default executable from the syntax -checker declaration. - -The default executable is %S." checker default-executable) - :type '(choice (const :tag "Default executable" nil) - (string :tag "Name or path")) - :group 'flycheck-executables - :risky t)))) - -(defun flycheck-set-checker-executable (checker &optional executable) - "Set the executable of CHECKER in the current buffer. - -CHECKER is a syntax checker symbol. EXECUTABLE is a string with -the name of an executable or the path to an executable file, which -is to be used as executable for CHECKER. If omitted or nil, -reset the executable of CHECKER. - -Interactively, prompt for a syntax checker and an executable -file, and set the executable of the selected syntax checker. -With prefix arg, prompt for a syntax checker only, and reset the -executable of the select checker to the default. - -Set the executable variable of CHECKER, that is, -`flycheck-CHECKER-executable' to EXECUTABLE. Signal -`user-error', if EXECUTABLE does not denote a command or an -executable file. - -This command is intended for interactive use only. In Lisp, just -`let'-bind the corresponding variable, or set it directly. Use -`flycheck-checker-executable-variable' to obtain the executable -variable symbol for a syntax checker." - (declare (interactive-only "Set the executable variable directly instead")) - (interactive - (let* ((checker (read-flycheck-checker "Syntax checker: ")) - (default-executable (flycheck-checker-default-executable checker)) - (executable (if current-prefix-arg - nil - (read-file-name "Executable: " nil default-executable - nil nil flycheck-executable-find)))) - (list checker executable))) - (when (and executable (not (funcall flycheck-executable-find executable))) - (user-error "%s is no executable" executable)) - (let ((variable (flycheck-checker-executable-variable checker))) - (set (make-local-variable variable) executable))) - - -;;; Configuration files and options for command checkers -(defun flycheck-register-config-file-var (var checkers) - "Register VAR as config file var for CHECKERS. - -CHECKERS is a single syntax checker or a list thereof." - (when (symbolp checkers) - (setq checkers (list checkers))) - (dolist (checker checkers) - (setf (flycheck-checker-get checker 'config-file-var) var))) - -;;;###autoload -(defmacro flycheck-def-config-file-var (symbol checker &optional file-name - &rest custom-args) - "Define SYMBOL as config file variable for CHECKER, with default FILE-NAME. - -SYMBOL is declared as customizable variable using `defcustom', to -provide a configuration file for the given syntax CHECKER. -CUSTOM-ARGS are forwarded to `defcustom'. - -FILE-NAME is the initial value of the new variable. If omitted, -the default value is nil. - -Use this together with the `config-file' form in the `:command' -argument to `flycheck-define-checker'." - ;; FIXME: We should allow multiple config files per checker as well as - ;; multiple checkers per config file - (declare (indent 3)) - `(progn - (defcustom ,symbol ,file-name - ,(format "Configuration file for `%s'. - -If set to a string, locate the configuration file using the -functions from `flycheck-locate-config-file-functions'. If the -file is found pass it to the syntax checker as configuration -file. - -If no configuration file is found, or if this variable is set to -nil, invoke the syntax checker without a configuration file. - -Use this variable as file-local variable if you need a specific -configuration file a buffer." checker) - :type '(choice (const :tag "No configuration file" nil) - (string :tag "File name or path")) - :group 'flycheck-config-files - ,@custom-args) - (flycheck-register-config-file-var ',symbol ',checker))) - -(defun flycheck-locate-config-file (filename checker) - "Locate the configuration file FILENAME for CHECKER. - -Locate the configuration file using -`flycheck-locate-config-file-functions'. - -Return the absolute path of the configuration file, or nil if no -configuration file was found." - (-when-let (filepath (run-hook-with-args-until-success - 'flycheck-locate-config-file-functions - filename checker)) - (when (file-exists-p filepath) - filepath))) - -(defun flycheck-locate-config-file-by-path (filepath _checker) - "Locate a configuration file by a FILEPATH. - -If FILEPATH is a contains a path separator, expand it against the -default directory and return it if it points to an existing file. -Otherwise return nil. - -_CHECKER is ignored." - ;; If the path is just a plain file name, skip it. - (unless (string= (file-name-nondirectory filepath) filepath) - (let ((file-name (expand-file-name filepath))) - (and (file-exists-p file-name) file-name)))) - -(defun flycheck-locate-config-file-ancestor-directories (filename _checker) - "Locate a configuration FILENAME in ancestor directories. - -If the current buffer has a file name, search FILENAME in the -directory of the current buffer and all ancestors thereof (see -`locate-dominating-file'). If the file is found, return its -absolute path. Otherwise return nil. - -_CHECKER is ignored." - (-when-let* ((basefile (buffer-file-name)) - (directory (locate-dominating-file basefile filename))) - (expand-file-name filename directory))) - -(defun flycheck-locate-config-file-home (filename _checker) - "Locate a configuration FILENAME in the home directory. - -Return the absolute path, if FILENAME exists in the user's home -directory, or nil otherwise." - (let ((path (expand-file-name filename "~"))) - (when (file-exists-p path) - path))) - -(seq-do (apply-partially #'custom-add-frequent-value - 'flycheck-locate-config-file-functions) - '(flycheck-locate-config-file-by-path - flycheck-locate-config-file-ancestor-directories - flycheck-locate-config-file-home)) - -(defun flycheck-register-option-var (var checkers) - "Register an option VAR with CHECKERS. - -VAR is an option symbol, and CHECKERS a syntax checker symbol or -a list thereof. Register VAR with all CHECKERS so that it -appears in the help output." - (when (symbolp checkers) - (setq checkers (list checkers))) - (dolist (checker checkers) - (cl-pushnew var (flycheck-checker-get checker 'option-vars)))) - -;;;###autoload -(defmacro flycheck-def-option-var (symbol init-value checkers docstring - &rest custom-args) - "Define SYMBOL as option variable with INIT-VALUE for CHECKER. - -SYMBOL is declared as customizable variable using `defcustom', to -provide an option for the given syntax CHECKERS (a checker or a -list of checkers). INIT-VALUE is the initial value of the -variable, and DOCSTRING is its docstring. CUSTOM-ARGS are -forwarded to `defcustom'. - -Use this together with the `option', `option-list' and -`option-flag' forms in the `:command' argument to -`flycheck-define-checker'." - (declare (indent 3) - (doc-string 4)) - `(progn - (defcustom ,symbol ,init-value - ,(concat docstring " - -This variable is an option for the following syntax checkers: - -" - (mapconcat (lambda (c) (format " - `%s'" c)) - (if (symbolp checkers) (list checkers) checkers) - "\n")) - :group 'flycheck-options - ,@custom-args) - (flycheck-register-option-var ',symbol ',checkers))) - -(defun flycheck-option-int (value) - "Convert an integral option VALUE to a string. - -If VALUE is nil, return nil. Otherwise return VALUE converted to -a string." - (and value (number-to-string value))) - -(defun flycheck-option-symbol (value) - "Convert a symbol option VALUE to string. - -If VALUE is nil return nil. Otherwise return VALUE converted to -a string." - (and value (symbol-name value))) - -(defun flycheck-option-comma-separated-list (value &optional separator filter) - "Convert VALUE into a list separated by SEPARATOR. - -SEPARATOR is a string to separate items in VALUE, defaulting to -\",\". FILTER is an optional function, which takes a single -argument and returns either a string or nil. - -If VALUE is a list, apply FILTER to each item in VALUE, remove -all nil items, and return a single string of all remaining items -separated by SEPARATOR. - -Otherwise, apply FILTER to VALUE and return the result. -SEPARATOR is ignored in this case." - (let ((filter (or filter #'identity)) - (separator (or separator ","))) - (if (listp value) - (-when-let (value (delq nil (seq-map filter value))) - (string-join value separator)) - (funcall filter value)))) - -(defmacro flycheck-def-args-var (symbol checkers &rest custom-args) - "Define SYMBOL as argument variable for CHECKERS. - -SYMBOL is declared as customizable, risky and buffer-local -variable using `defcustom' to provide an option for arbitrary -arguments for the given syntax CHECKERS (either a single checker -or a list of checkers). CUSTOM-ARGS is forwarded to `defcustom'. - -Use the `eval' form to splice this variable into the -`:command'." - (declare (indent 2)) - `(flycheck-def-option-var ,symbol nil ,checkers - "A list of additional command line arguments. - -The value of this variable is a list of strings with additional -command line arguments." - :risky t - :type '(repeat (string :tag "Argument")) - ,@custom-args)) - - -;;; Command syntax checkers as compile commands -(defun flycheck-checker-pattern-to-error-regexp (pattern) - "Convert PATTERN into an error regexp for compile.el. - -Return a list representing PATTERN, suitable as element in -`compilation-error-regexp-alist'." - (let* ((regexp (car pattern)) - (level (cdr pattern)) - (level-no (flycheck-error-level-compilation-level level))) - (list regexp 1 2 3 level-no))) - -(defun flycheck-checker-compilation-error-regexp-alist (checker) - "Convert error patterns of CHECKER for use with compile.el. - -Return an alist of all error patterns of CHECKER, suitable for -use with `compilation-error-regexp-alist'." - (seq-map #'flycheck-checker-pattern-to-error-regexp - (flycheck-checker-get checker 'error-patterns))) - -(defun flycheck-checker-shell-command (checker) - "Get a shell command for CHECKER. - -Perform substitution in the arguments of CHECKER, but with -`flycheck-substitute-shell-argument'. - -Return the command of CHECKER as single string, suitable for -shell execution." - ;; Note: Do NOT use `combine-and-quote-strings' here. Despite it's name it - ;; does not properly quote shell arguments, and actually breaks for special - ;; characters. See https://github.com/flycheck/flycheck/pull/522 - (let* ((args (apply #'append - (seq-map - (lambda (arg) - (if (memq arg '(source source-inplace source-original)) - (list (buffer-file-name)) - (flycheck-substitute-argument arg checker))) - (flycheck-checker-arguments checker)))) - (command (mapconcat - #'shell-quote-argument - (funcall flycheck-command-wrapper-function - (cons (flycheck-checker-executable checker) args)) - " "))) - (if (flycheck-checker-get checker 'standard-input) - ;; If the syntax checker expects the source from standard input add an - ;; appropriate shell redirection - (concat command " < " (shell-quote-argument (buffer-file-name))) - command))) - -(defun flycheck-compile-name (_name) - "Get a name for a Flycheck compilation buffer. - -_NAME is ignored." - (format "*Flycheck %s*" (buffer-file-name))) - -(defun flycheck-compile (checker) - "Run CHECKER via `compile'. - -CHECKER must be a valid syntax checker. Interactively, prompt -for a syntax checker to run. - -Instead of highlighting errors in the buffer, this command pops -up a separate buffer with the entire output of the syntax checker -tool, just like `compile' (\\[compile])." - (interactive - (let ((default (flycheck-get-checker-for-buffer))) - (list (read-flycheck-checker "Run syntax checker as compile command: " - (when (flycheck-checker-get default 'command) - default) - 'command)))) - (unless (flycheck-valid-checker-p checker) - (user-error "%S is not a valid syntax checker" checker)) - (unless (buffer-file-name) - (user-error "Cannot compile buffers without backing file")) - (unless (flycheck-may-use-checker checker) - (user-error "Cannot use syntax checker %S in this buffer" checker)) - (unless (flycheck-checker-executable checker) - (user-error "Cannot run checker %S as shell command" checker)) - (let* ((default-directory (flycheck-compute-working-directory checker)) - (command (flycheck-checker-shell-command checker)) - (buffer (compilation-start command nil #'flycheck-compile-name))) - (with-current-buffer buffer - (setq-local compilation-error-regexp-alist - (flycheck-checker-compilation-error-regexp-alist checker))))) - - -;;; General error parsing for command checkers -(defun flycheck-parse-output (output checker buffer) - "Parse OUTPUT from CHECKER in BUFFER. - -OUTPUT is a string with the output from the checker symbol -CHECKER. BUFFER is the buffer which was checked. - -Return the errors parsed with the error patterns of CHECKER." - (funcall (flycheck-checker-get checker 'error-parser) output checker buffer)) - -(defun flycheck-fix-error-filename (err buffer-files cwd) - "Fix the file name of ERR from BUFFER-FILES. - -Resolves error file names relative to CWD directory. - -Make the file name of ERR absolute. If the absolute file name of -ERR is in BUFFER-FILES, replace it with the return value of the -function `buffer-file-name'." - (flycheck-error-with-buffer err - (-when-let (filename (flycheck-error-filename err)) - (when (seq-some (apply-partially #'flycheck-same-files-p - (expand-file-name filename cwd)) - buffer-files) - (setf (flycheck-error-filename err) buffer-file-name) - (when (and buffer-file-name (flycheck-error-message err)) - (setf (flycheck-error-message err) - (replace-regexp-in-string - (regexp-quote filename) buffer-file-name - (flycheck-error-message err) 'fixed-case 'literal)))))) - err) - - -;;; Error parsers for command syntax checkers -(defun flycheck-parse-xml-region (beg end) - "Parse the xml region between BEG and END. - -Wrapper around `xml-parse-region' which transforms the return -value of this function into one compatible to -`libxml-parse-xml-region' by simply returning the first element -from the node list." - (ignore-errors (car (xml-parse-region beg end)))) - -(defun flycheck-parse-xml-region-with-fallback (beg end) - "Parse the xml region between BEG and END. - -Try parsing with libxml first; if that fails, revert to -`flycheck-parse-xml-region'. Failures can be caused by incorrect -XML (see URL `https://github.com/flycheck/flycheck/issues/1298'), -or on Windows by a missing libxml DLL with a libxml-enabled Emacs -\(see URL `https://github.com/flycheck/flycheck/issues/1330')." - ;; FIXME use `libxml-available-p' when it gets implemented. - (or (and (fboundp 'libxml-parse-xml-region) - (libxml-parse-xml-region beg end)) - (flycheck-parse-xml-region beg end))) - -(defvar flycheck-xml-parser 'flycheck-parse-xml-region-with-fallback - "Function used to parse an xml string from a region. - -The default uses libxml if available, and falls back to -`flycheck-parse-xml-region' otherwise.") - -(defun flycheck-parse-xml-string (xml) - "Parse an XML string. - -Return the document tree parsed from XML in the form `(ROOT ATTRS -BODY...)'. ROOT is a symbol identifying the name of the root -element. ATTRS is an alist of the attributes of the root node. -BODY is zero or more body elements, either as strings (in case of -text nodes) or as XML nodes, in the same for as the root node." - (with-temp-buffer - (insert xml) - (funcall flycheck-xml-parser (point-min) (point-max)))) - -(defun flycheck-parse-checkstyle (output checker buffer) - "Parse Checkstyle errors from OUTPUT. - -Parse Checkstyle-like XML output. Use this error parser for -checkers that have an option to output errors in this format. - -CHECKER and BUFFER denoted the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -See URL `http://checkstyle.sourceforge.net/' for information -about Checkstyle." - (pcase (flycheck-parse-xml-string output) - (`(checkstyle ,_ . ,file-nodes) - (let (errors) - (dolist (node file-nodes) - (pcase node - (`(file ,file-attrs . ,error-nodes) - (dolist (node error-nodes) - (pcase node - (`(error ,error-attrs . ,_) - (let-alist error-attrs - (push (flycheck-error-new-at - (flycheck-string-to-number-safe .line) - (flycheck-string-to-number-safe .column) - (pcase .severity - (`"error" 'error) - (`"warning" 'warning) - (`"info" 'info) - ;; Default to error for unknown .severity - (_ 'error)) - .message - :checker checker :id .source - :buffer buffer - :filename (cdr (assq 'name file-attrs))) - errors)))))))) - (nreverse errors))))) - -(defun flycheck-parse-cppcheck (output checker buffer) - "Parse Cppcheck errors from OUTPUT. - -Parse Cppcheck XML v2 output. - -CHECKER and BUFFER denoted the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -See URL `http://cppcheck.sourceforge.net/' for more information -about Cppcheck." - (pcase (flycheck-parse-xml-string output) - (`(results ,_ . ,body) - (let (errors) - (dolist (node body) - (pcase node - (`(errors ,_ . ,error-nodes) - (dolist (node error-nodes) - (pcase node - (`(error ,error-attrs . ,loc-nodes) - (let ((id (cdr (assq 'id error-attrs))) - (message (cdr (assq 'verbose error-attrs))) - (level (pcase (cdr (assq 'severity error-attrs)) - (`"error" 'error) - (`"style" 'info) - (`"information" 'info) - (_ 'warning)))) - (dolist (node loc-nodes) - (pcase node - (`(location ,loc-attrs . ,_) - (let-alist loc-attrs - (push (flycheck-error-new-at - (flycheck-string-to-number-safe .line) - nil - level - ;; cppcheck return newline characters as "\012" - (replace-regexp-in-string "\\\\012" "\n" - message) - :id id - :checker checker - :buffer buffer - :filename .file) - errors)))))))))))) - (nreverse errors))))) - -(defun flycheck-parse-phpmd (output checker buffer) - "Parse phpmd errors from OUTPUT. - -CHECKER and BUFFER denoted the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -See URL `http://phpmd.org/' for more information about phpmd." - (pcase (flycheck-parse-xml-string output) - (`(pmd ,_ . ,body) - (let (errors) - (dolist (node body) - (pcase node - (`(file ,file-attrs . ,violation-nodes) - (let ((filename (cdr (assq 'name file-attrs)))) - (dolist (node violation-nodes) - (pcase node - (`(violation ,vio-attrs ,(and message (pred stringp))) - (let-alist vio-attrs - (push - (flycheck-error-new-at - (flycheck-string-to-number-safe .beginline) - nil - 'warning (string-trim message) - :id .rule - :checker checker - :buffer buffer - :filename filename) - errors))))))))) - (nreverse errors))))) - -(defun flycheck-parse-reek (output checker buffer) - "Parse Reek warnings from JSON OUTPUT. - -CHECKER and BUFFER denote the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -See URL `https://github.com/troessner/reek' for more information -about Reek." - (let ((errors nil)) - (dolist (message (car (flycheck-parse-json output))) - (let-alist message - (dolist (line (delete-dups .lines)) - (push - (flycheck-error-new-at - line - nil - 'warning (concat .context " " .message) - :id .smell_type - :checker checker - :buffer buffer - :filename .source) - errors)))) - (nreverse errors))) - -(defun flycheck-parse-go-staticcheck (output checker buffer) - "Parse staticheck warnings from JSON OUTPUT. - -CHECKER and BUFFER denote the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -See URL `https://staticcheck.io/docs/formatters' for more -information about staticheck." - (let ((errors nil)) - (dolist (msg (flycheck-parse-json output)) - (let-alist msg - (push - (flycheck-error-new-at - .location.line - .location.column - (pcase .severity - (`"error" 'error) - (`"warning" 'warning) - (`"ignored" 'info) - ;; Default to warning for unknown .severity - (_ 'warning)) - .message - :id .code - :checker checker - :buffer buffer - :filename .location.file) - errors))) - (nreverse errors))) - -(defun flycheck-parse-tslint (output checker buffer) - "Parse TSLint errors from JSON OUTPUT. - -CHECKER and BUFFER denoted the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -See URL `https://palantir.github.io/tslint/' for more information -about TSLint." - (let ((json-array-type 'list)) - (seq-map (lambda (message) - (let-alist message - (flycheck-error-new-at - (+ 1 .startPosition.line) - (+ 1 .startPosition.character) - 'warning .failure - :id .ruleName - :checker checker - :buffer buffer - :filename .name))) - ;; Don't try to parse empty output as JSON - (and (not (string-empty-p output)) - (car (flycheck-parse-json output)))))) - -(defun flycheck-parse-rust-collect-spans (span) - "Return a list of spans contained in a SPAN object." - (let ((spans)) - (let-alist span - ;; With macro expansion errors, some spans will point to phony file names - ;; to indicate an error inside the std rust lib. We skip these spans as - ;; they won't appear in flycheck anyway. - (unless (string= .file_name "<std macros>") - (push span spans)) - - ;; Macro expansion errors will have a span in the 'expansion' field, so we - ;; recursively collect it. - (if .expansion.span - (append (flycheck-parse-rust-collect-spans .expansion.span) - spans) - spans)))) - -(defun flycheck-parse-rustc-diagnostic (diagnostic checker buffer) - "Turn a rustc DIAGNOSTIC into a `flycheck-error'. - -CHECKER and BUFFER denote the CHECKER that returned DIAGNOSTIC -and the BUFFER that was checked respectively. - -DIAGNOSTIC should be a parsed JSON object describing a rustc -diagnostic, following the format described there: - -https://github.com/rust-lang/rust/blob/master/src/libsyntax/json.rs#L67-L139" - (let ((error-message) - (error-level) - (error-code) - (primary-filename) - (primary-line) - (primary-column) - (group (make-symbol "group")) - (spans) - (children) - (errors)) - ;; The diagnostic format is described in the link above. The gist of it is - ;; that a diagnostic can have several causes in the source text; these - ;; causes are represented by spans. The diagnostic has a message and a - ;; level (error, warning), while the spans have a filename, line, column, - ;; and an optional label. The primary span points to the root cause of the - ;; error in the source text, while non-primary spans point to related - ;; causes. Spans may have an 'expansion' field for macro expansion errors; - ;; these expansion fields will contain another span (and so on). In - ;; addition, a diagnostic can also have children diagnostics that are used - ;; to provide additional information through their message field, but do not - ;; seem to contain any spans (yet). - ;; - ;; We first gather spans in order to turn every span into a flycheck error - ;; object, that we collect into the `errors' list. - - ;; Nested `let-alist' cause compilation warnings, hence we `setq' all - ;; these values here first to avoid nesting. - (let-alist diagnostic - (setq error-message .message - error-level (pcase .level - (`"error" 'error) - (`"warning" 'warning) - (`"note" 'info) - (_ 'error)) - ;; The 'code' field of the diagnostic contains the actual error - ;; code and an optional explanation that we ignore - error-code .code.code - ;; Collect all spans recursively - spans (seq-mapcat #'flycheck-parse-rust-collect-spans .spans) - children .children)) - - ;; Turn each span into a flycheck error - (dolist (span spans) - (let-alist span - ;; Children may not have filename/line/column information, so we use - ;; those from the primary span - (when .is_primary - (setq primary-filename .file_name - primary-line .line_start - primary-column .column_start)) - (push - (flycheck-error-new-at - .line_start - .column_start - ;; Non-primary spans are used for notes - (if .is_primary error-level 'info) - (if .is_primary - ;; Primary spans may have labels with additional information - (concat error-message (when .label - (format " (%s)" .label))) - ;; If the label is empty, fallback on the error message, - ;; otherwise we won't be able to display anything - (or .label error-message)) - :id error-code - :checker checker - :buffer buffer - :filename .file_name - :group group) - errors))) - - ;; Then we turn children messages into flycheck errors pointing to the - ;; location of the primary span. - (dolist (child children) - (let-alist child - (push - (flycheck-error-new-at - ;; Use the line/column from the first span if there is one, or - ;; fallback to the line/column information from the primary span of - ;; the diagnostic. - (or (cdr (assq 'line_start (car .spans))) - primary-line) - (or (cdr (assq 'column_start (car .spans))) - primary-column) - 'info - ;; Messages from `cargo clippy' may suggest replacement code. In - ;; these cases, the `message' field itself is an unhelpful `try' or - ;; `change this to'. We add the `suggested_replacement' field in - ;; these cases. - (-if-let (replacement - (cdr (assq 'suggested_replacement (car .spans)))) - (format "%s: `%s`" .message replacement) - .message) - :id error-code - :checker checker - :buffer buffer - :filename primary-filename - :group group) - errors))) - - ;; If there are no spans, the error is not associated with a specific - ;; file but with the project as a whole. We still need to report it to - ;; the user by emitting a corresponding flycheck-error object. - (unless spans - (push (flycheck-error-new-at - ;; We have no specific position to attach the error to, so - ;; let's use the top of the file. - 1 1 - error-level - error-message - :id error-code - :checker checker - :buffer buffer - :group group) - errors)) - (nreverse errors))) - -(defun flycheck-parse-json (output) - "Return parsed JSON data from OUTPUT. - -OUTPUT is a string that contains JSON data. Each line of OUTPUT -may be either plain text, a JSON array (starting with `['), or a -JSON object (starting with `{'). - -This function ignores the plain text lines, parses the JSON -lines, and returns the parsed JSON lines in a list." - (let ((objects nil) - (json-array-type 'list) - (json-false nil)) - (with-temp-buffer - (insert output) - (goto-char (point-min)) - (while (not (eobp)) - (when (memq (char-after) '(?\{ ?\[)) - (push (json-read) objects)) - (forward-line))) - (nreverse objects))) - -(defun flycheck-parse-rustc (output checker buffer) - "Parse rustc errors from OUTPUT and return a list of `flycheck-error'. - -CHECKER and BUFFER denote the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -The expected format for OUTPUT is a mix of plain text lines and -JSON lines. This function ignores the plain text lines and -parses only JSON lines. Each JSON line is expected to be a JSON -object that corresponds to a diagnostic from the compiler. The -expected diagnostic format is described there: - -https://github.com/rust-lang/rust/blob/master/src/libsyntax/json.rs#L67-L139" - (seq-mapcat (lambda (msg) - (flycheck-parse-rustc-diagnostic msg checker buffer)) - (flycheck-parse-json output))) - -(defun flycheck-parse-cargo-rustc (output checker buffer) - "Parse Cargo errors from OUTPUT and return a list of `flycheck-error'. - -CHECKER and BUFFER denote the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -The expected format for OUTPUT is a mix of plain text lines and -JSON lines. This function ignores the plain text lines and -parses only JSON lines. Each JSON line is expected to be a JSON -object that represents a message from Cargo. The format of -messages emitted by Cargo is described in cargo's -machine_message.rs at URL `https://git.io/vh24R'." - (let ((errors)) - (dolist (msg (flycheck-parse-json output)) - (let-alist msg - ;; Errors and warnings from rustc are wrapped by cargo, so we filter and - ;; unwrap them, and delegate the actual construction of `flycheck-error' - ;; objects to `flycheck-parse-rustc-diagnostic'. - (when (string= .reason "compiler-message") - (push (flycheck-parse-rustc-diagnostic .message checker buffer) - errors)))) - (apply #'nconc errors))) - - -;;; Error parsing with regular expressions -(defun flycheck-get-regexp (patterns) - "Create a single regular expression from PATTERNS." - (rx-to-string `(or ,@(seq-map (lambda (p) (list 'regexp (car p))) patterns)) - 'no-group)) - -(defun flycheck-tokenize-output-with-patterns (output patterns) - "Tokenize OUTPUT with PATTERNS. - -Split the output into error tokens, using all regular expressions -from the error PATTERNS. An error token is simply a string -containing a single error from OUTPUT. Such a token can then be -parsed into a structured error by applying the PATTERNS again, -see `flycheck-parse-errors-with-patterns'. - -Return a list of error tokens." - (let ((regexp (flycheck-get-regexp patterns)) - (last-match 0) - errors) - (while (string-match regexp output last-match) - (push (match-string 0 output) errors) - (setq last-match (match-end 0))) - (reverse errors))) - -(defun flycheck-try-parse-error-with-pattern (err pattern checker) - "Try to parse a single ERR with a PATTERN for CHECKER. - -Return the parsed error if PATTERN matched ERR, or nil -otherwise." - (let ((regexp (car pattern)) - (level (cdr pattern))) - (when (string-match regexp err) - (let ((filename (match-string 1 err)) - (line (match-string 2 err)) - (column (match-string 3 err)) - (message (match-string 4 err)) - (id (match-string 5 err))) - (flycheck-error-new-at - (flycheck-string-to-number-safe line) - (flycheck-string-to-number-safe column) - level - (unless (string-empty-p message) message) - :id (unless (string-empty-p id) id) - :checker checker - :filename (if (or (null filename) (string-empty-p filename)) - (buffer-file-name) - filename)))))) - -(defun flycheck-parse-error-with-patterns (err patterns checker) - "Parse a single ERR with error PATTERNS for CHECKER. - -Apply each pattern in PATTERNS to ERR, in the given order, and -return the first parsed error." - ;; Try to parse patterns in the order of declaration to make sure that the - ;; first match wins. - (let (parsed-error) - (while (and patterns - (not (setq parsed-error - (flycheck-try-parse-error-with-pattern - err (car patterns) checker)))) - (setq patterns (cdr patterns))) - parsed-error)) - -(defun flycheck-parse-with-patterns (output checker buffer) - "Parse OUTPUT from CHECKER with error patterns. - -Uses the error patterns of CHECKER to tokenize the output and -tries to parse each error token with all patterns, in the order -of declaration. Hence an error is never matched twice by two -different patterns. The pattern declared first always wins. - -_BUFFER is ignored. - -Return a list of parsed errors and warnings (as `flycheck-error' -objects)." - (with-current-buffer buffer - (let ((patterns (flycheck-checker-get checker 'error-patterns))) - (seq-map (lambda (err) - (flycheck-parse-error-with-patterns err patterns checker)) - (flycheck-tokenize-output-with-patterns output patterns))))) - - -;;; Convenience definition of command-syntax checkers -(defmacro flycheck-define-checker (symbol docstring &rest properties) - "Define SYMBOL as command syntax checker with DOCSTRING and PROPERTIES. - -Like `flycheck-define-command-checker', but PROPERTIES must not -be quoted. Also, implicitly define the executable variable for -SYMBOL with `flycheck-def-executable-var'." - (declare (indent 1) - (doc-string 2)) - (let ((command (plist-get properties :command)) - (parser (plist-get properties :error-parser)) - (filter (plist-get properties :error-filter)) - (explainer (plist-get properties :error-explainer)) - (predicate (plist-get properties :predicate)) - (enabled-fn (plist-get properties :enabled)) - (verify-fn (plist-get properties :verify))) - - `(progn - (flycheck-def-executable-var ,symbol ,(car command)) - - (flycheck-define-command-checker ',symbol - ,docstring - :command ',command - ,@(when parser - `(:error-parser #',parser)) - :error-patterns ',(plist-get properties :error-patterns) - ,@(when filter - `(:error-filter #',filter)) - ,@(when explainer - `(:error-explainer #',explainer)) - :modes ',(plist-get properties :modes) - ,@(when predicate - `(:predicate #',predicate)) - :next-checkers ',(plist-get properties :next-checkers) - ,@(when enabled-fn - `(:enabled #',enabled-fn)) - ,@(when verify-fn - `(:verify #',verify-fn)) - :standard-input ',(plist-get properties :standard-input) - :working-directory ',(plist-get properties :working-directory))))) - - -;;; Built-in checkers -(flycheck-def-args-var flycheck-gnat-args ada-gnat - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-gnat-include-path nil ada-gnat - "A list of include directories for GNAT. - -The value of this variable is a list of strings, where each -string is a directory to add to the include path of gcc. -Relative paths are relative to the file being checked." - :type '(repeat (directory :tag "Include directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-gnat-language-standard "2012" ada-gnat - "The language standard to use in GNAT. - -The value of this variable is either a string denoting a language -standard, or nil, to use the default standard. When non-nil, pass -the language standard via the `-std' option." - :type '(choice (const :tag "Default standard" nil) - (string :tag "Language standard")) - :safe #'stringp - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-gnat-warnings - '("wa") ada-gnat - "A list of additional Ada warnings to enable in GNAT. - -The value of this variable is a list of strings, where each -string is the name of a warning category to enable. By default, -most optional warnings are recommended, as in `-gnata'. - -Refer to Info Node `(gnat_ugn_unw)Warning Message Control' for -more information about GNAT warnings." - :type '(repeat :tag "Warnings" (string :tag "Warning name")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.20")) - -(flycheck-define-checker ada-gnat - "An Ada syntax checker using GNAT. - -Uses the GNAT compiler from GCC. See URL -`https://www.adacore.com/community/'." - :command ("gnatmake" - "-c" ; Just compile, don't bind - "-f" ; Force re-compilation - "-u" ; Compile the main file only - "-gnatf" ; Full error information - "-gnatef" ; Full source file name - "-D" temporary-directory - (option-list "-gnat" flycheck-gnat-warnings concat) - (option-list "-I" flycheck-gnat-include-path concat) - (option "-gnat" flycheck-gnat-language-standard concat) - (eval flycheck-gnat-args) - source) - :error-patterns - ((error line-start - (message "In file included from") " " (file-name) ":" line ":" - column ":" - line-end) - (info line-start (file-name) ":" line ":" column - ": note: " (message) line-end) - (warning line-start (file-name) ":" line ":" column - ": warning: " (message) line-end) - ;; no specific error prefix in Ada - (error line-start (file-name) ":" line ":" column - ": " (message) line-end)) - :modes ada-mode) - -(flycheck-define-checker asciidoc - "A AsciiDoc syntax checker using the AsciiDoc compiler. - -See URL `http://www.methods.co.nz/asciidoc'." - :command ("asciidoc" "-o" null-device "-") - :standard-input t - :error-patterns - ((error line-start - "asciidoc: ERROR: <stdin>: Line " line ": " (message) - line-end) - (warning line-start - "asciidoc: WARNING: <stdin>: Line " line ": " (message) - line-end) - (info line-start - "asciidoc: DEPRECATED: <stdin>: Line " line ": " (message) - line-end)) - :modes adoc-mode) - -(flycheck-define-checker asciidoctor - "An AsciiDoc syntax checker using the Asciidoctor compiler. - -See URL `http://asciidoctor.org'." - :command ("asciidoctor" "-o" null-device "-") - :standard-input t - :error-patterns - ((error line-start - "asciidoctor: ERROR: <stdin>: Line " line ": " (message) - line-end) - (warning line-start - "asciidoctor: WARNING: <stdin>: Line " line ": " (message) - line-end)) - :modes adoc-mode) - -(flycheck-def-args-var flycheck-clang-args c/c++-clang - :package-version '(flycheck . "0.22")) - -(flycheck-def-option-var flycheck-clang-blocks nil c/c++-clang - "Enable blocks in Clang. - -When non-nil, enable blocks in Clang with `-fblocks'. See URL -`http://clang.llvm.org/docs/BlockLanguageSpec.html' for more -information about blocks." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-clang-definitions nil c/c++-clang - "Additional preprocessor definitions for Clang. - -The value of this variable is a list of strings, where each -string is an additional definition to pass to Clang, via the `-D' -option." - :type '(repeat (string :tag "Definition")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.15")) - -(flycheck-def-option-var flycheck-clang-include-path nil c/c++-clang - "A list of include directories for Clang. - -The value of this variable is a list of strings, where each -string is a directory to add to the include path of Clang. -Relative paths are relative to the file being checked." - :type '(repeat (directory :tag "Include directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.14")) - -(flycheck-def-option-var flycheck-clang-includes nil c/c++-clang - "A list of additional include files for Clang. - -The value of this variable is a list of strings, where each -string is a file to include before syntax checking. Relative -paths are relative to the file being checked." - :type '(repeat (file :tag "Include file")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.15")) - -(flycheck-def-option-var flycheck-clang-language-standard nil c/c++-clang - "The language standard to use in Clang. - -The value of this variable is either a string denoting a language -standard, or nil, to use the default standard. When non-nil, -pass the language standard via the `-std' option." - :type '(choice (const :tag "Default standard" nil) - (string :tag "Language standard")) - :safe #'stringp - :package-version '(flycheck . "0.15")) -(make-variable-buffer-local 'flycheck-clang-language-standard) - -(flycheck-def-option-var flycheck-clang-ms-extensions nil c/c++-clang - "Whether to enable Microsoft extensions to C/C++ in Clang. - -When non-nil, enable Microsoft extensions to C/C++ via -`-fms-extensions'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.16")) - -(flycheck-def-option-var flycheck-clang-no-exceptions nil c/c++-clang - "Whether to disable exceptions in Clang. - -When non-nil, disable exceptions for syntax checks, via -`-fno-exceptions'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-clang-no-rtti nil c/c++-clang - "Whether to disable RTTI in Clang. - -When non-nil, disable RTTI for syntax checks, via `-fno-rtti'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.15")) - -(flycheck-def-option-var flycheck-clang-pedantic nil c/c++-clang - "Whether to warn about language extensions in Clang. - -For ISO C, follows the version specified by any -std option used. -When non-nil, disable non-ISO extensions to C/C++ via -`-pedantic'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.23")) - -(flycheck-def-option-var flycheck-clang-pedantic-errors nil c/c++-clang - "Whether to error on language extensions in Clang. - -For ISO C, follows the version specified by any -std option used. -When non-nil, disable non-ISO extensions to C/C++ via -`-pedantic-errors'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.23")) - -(flycheck-def-option-var flycheck-clang-standard-library nil c/c++-clang - "The standard library to use for Clang. - -The value of this variable is the name of a standard library as -string, or nil to use the default standard library. - -Refer to the Clang manual at URL -`http://clang.llvm.org/docs/UsersManual.html' for more -information about the standard library." - :type '(choice (const "libc++") - (const :tag "GNU libstdc++" "libstdc++") - (string :tag "Library name")) - :safe #'stringp - :package-version '(flycheck . "0.15")) - -(flycheck-def-option-var flycheck-clang-warnings '("all" "extra") c/c++-clang - "A list of additional warnings to enable in Clang. - -The value of this variable is a list of strings, where each string -is the name of a warning category to enable. By default, all -recommended warnings and some extra warnings are enabled (as by -`-Wall' and `-Wextra' respectively). - -Refer to the Clang manual at URL -`http://clang.llvm.org/docs/UsersManual.html' for more -information about warnings." - :type '(choice (const :tag "No additional warnings" nil) - (repeat :tag "Additional warnings" - (string :tag "Warning name"))) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.14")) - -(defun flycheck-c/c++-quoted-include-directory () - "Get the directory for quoted includes. - -C/C++ compiles typicall look up includes with quotation marks in -the directory of the file being compiled. However, since -Flycheck uses temporary copies for syntax checking, it needs to -explicitly determine the directory for quoted includes. - -This function determines the directory by looking at function -`buffer-file-name', or if that is nil, at `default-directory'." - (-if-let (fn (buffer-file-name)) - (file-name-directory fn) - ;; If the buffer has no file name, fall back to its default directory - default-directory)) - -(flycheck-define-checker c/c++-clang - "A C/C++ syntax checker using Clang. - -See URL `http://clang.llvm.org/'." - :command ("clang" - "-fsyntax-only" - "-fno-color-diagnostics" ; Do not include color codes in output - "-fno-caret-diagnostics" ; Do not visually indicate the source - ; location - "-fno-diagnostics-show-option" ; Do not show the corresponding - ; warning group - "-iquote" (eval (flycheck-c/c++-quoted-include-directory)) - (option "-std=" flycheck-clang-language-standard concat) - (option-flag "-pedantic" flycheck-clang-pedantic) - (option-flag "-pedantic-errors" flycheck-clang-pedantic-errors) - (option "-stdlib=" flycheck-clang-standard-library concat) - (option-flag "-fms-extensions" flycheck-clang-ms-extensions) - (option-flag "-fno-exceptions" flycheck-clang-no-exceptions) - (option-flag "-fno-rtti" flycheck-clang-no-rtti) - (option-flag "-fblocks" flycheck-clang-blocks) - (option-list "-include" flycheck-clang-includes) - (option-list "-W" flycheck-clang-warnings concat) - (option-list "-D" flycheck-clang-definitions concat) - (option-list "-I" flycheck-clang-include-path) - (eval flycheck-clang-args) - "-x" (eval - (pcase major-mode - (`c++-mode "c++") - (`c-mode "c"))) - ;; Read from standard input - "-") - :standard-input t - :error-patterns - ((info line-start (or "<stdin>" (file-name)) ":" line ":" column - ": note: " (optional (message)) line-end) - (warning line-start (or "<stdin>" (file-name)) ":" line ":" column - ": warning: " (optional (message)) line-end) - (error line-start (or "<stdin>" (file-name)) ":" line ":" column - ": " (or "fatal error" "error") ": " (optional (message)) line-end)) - :error-filter - (lambda (errors) - (let ((errors (flycheck-sanitize-errors errors))) - (dolist (err errors) - ;; Clang will output empty messages for #error/#warning pragmas without - ;; messages. We fill these empty errors with a dummy message to get - ;; them past our error filtering - (setf (flycheck-error-message err) - (or (flycheck-error-message err) "no message"))) - errors)) - :modes (c-mode c++-mode) - :next-checkers ((warning . c/c++-cppcheck))) - -(flycheck-def-args-var flycheck-gcc-args c/c++-gcc - :package-version '(flycheck . "0.22")) - -(flycheck-def-option-var flycheck-gcc-definitions nil c/c++-gcc - "Additional preprocessor definitions for GCC. - -The value of this variable is a list of strings, where each -string is an additional definition to pass to GCC, via the `-D' -option." - :type '(repeat (string :tag "Definition")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-gcc-include-path nil c/c++-gcc - "A list of include directories for GCC. - -The value of this variable is a list of strings, where each -string is a directory to add to the include path of gcc. -Relative paths are relative to the file being checked." - :type '(repeat (directory :tag "Include directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-gcc-includes nil c/c++-gcc - "A list of additional include files for GCC. - -The value of this variable is a list of strings, where each -string is a file to include before syntax checking. Relative -paths are relative to the file being checked." - :type '(repeat (file :tag "Include file")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-gcc-language-standard nil c/c++-gcc - "The language standard to use in GCC. - -The value of this variable is either a string denoting a language -standard, or nil, to use the default standard. When non-nil, -pass the language standard via the `-std' option." - :type '(choice (const :tag "Default standard" nil) - (string :tag "Language standard")) - :safe #'stringp - :package-version '(flycheck . "0.20")) -(make-variable-buffer-local 'flycheck-gcc-language-standard) - -(flycheck-def-option-var flycheck-gcc-no-exceptions nil c/c++-gcc - "Whether to disable exceptions in GCC. - -When non-nil, disable exceptions for syntax checks, via -`-fno-exceptions'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-gcc-no-rtti nil c/c++-gcc - "Whether to disable RTTI in GCC. - -When non-nil, disable RTTI for syntax checks, via `-fno-rtti'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-gcc-openmp nil c/c++-gcc - "Whether to enable OpenMP in GCC. - -When non-nil, enable OpenMP for syntax checkers, via -`-fopenmp'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.21")) - -(flycheck-def-option-var flycheck-gcc-pedantic nil c/c++-gcc - "Whether to warn about language extensions in GCC. - -For ISO C, follows the version specified by any -std option used. -When non-nil, disable non-ISO extensions to C/C++ via -`-pedantic'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.23")) - -(flycheck-def-option-var flycheck-gcc-pedantic-errors nil c/c++-gcc - "Whether to error on language extensions in GCC. - -For ISO C, follows the version specified by any -std option used. -When non-nil, disable non-ISO extensions to C/C++ via -`-pedantic-errors'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.23")) - -(flycheck-def-option-var flycheck-gcc-warnings '("all" "extra") c/c++-gcc - "A list of additional warnings to enable in GCC. - -The value of this variable is a list of strings, where each string -is the name of a warning category to enable. By default, all -recommended warnings and some extra warnings are enabled (as by -`-Wall' and `-Wextra' respectively). - -Refer to the gcc manual at URL -`https://gcc.gnu.org/onlinedocs/gcc/' for more information about -warnings." - :type '(choice (const :tag "No additional warnings" nil) - (repeat :tag "Additional warnings" - (string :tag "Warning name"))) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.20")) - -(flycheck-define-checker c/c++-gcc - "A C/C++ syntax checker using GCC. - -Requires GCC 4.4 or newer. See URL `https://gcc.gnu.org/'." - :command ("gcc" - "-fshow-column" - "-iquote" (eval (flycheck-c/c++-quoted-include-directory)) - (option "-std=" flycheck-gcc-language-standard concat) - (option-flag "-pedantic" flycheck-gcc-pedantic) - (option-flag "-pedantic-errors" flycheck-gcc-pedantic-errors) - (option-flag "-fno-exceptions" flycheck-gcc-no-exceptions) - (option-flag "-fno-rtti" flycheck-gcc-no-rtti) - (option-flag "-fopenmp" flycheck-gcc-openmp) - (option-list "-include" flycheck-gcc-includes) - (option-list "-W" flycheck-gcc-warnings concat) - (option-list "-D" flycheck-gcc-definitions concat) - (option-list "-I" flycheck-gcc-include-path) - (eval flycheck-gcc-args) - "-x" (eval - (pcase major-mode - (`c++-mode "c++") - (`c-mode "c"))) - ;; GCC performs full checking only when actually compiling, so - ;; `-fsyntax-only' is not enough. Just let it generate assembly - ;; code. - "-S" "-o" null-device - ;; Read from standard input - "-") - :standard-input t - :error-patterns - ((info line-start (or "<stdin>" (file-name)) ":" line ":" column - ": note: " (message) line-end) - (warning line-start (or "<stdin>" (file-name)) ":" line ":" column - ": warning: " (message (one-or-more (not (any "\n[")))) - (optional "[" (id (one-or-more not-newline)) "]") line-end) - (error line-start (or "<stdin>" (file-name)) ":" line ":" column - ": " (or "fatal error" "error") ": " (message) line-end)) - :modes (c-mode c++-mode) - :next-checkers ((warning . c/c++-cppcheck))) - -(flycheck-def-option-var flycheck-cppcheck-checks '("style") c/c++-cppcheck - "Enabled checks for Cppcheck. - -The value of this variable is a list of strings, where each -string is the name of an additional check to enable. By default, -all coding style checks are enabled. - -See section \"Enable message\" in the Cppcheck manual at URL -`http://cppcheck.sourceforge.net/manual.pdf', and the -documentation of the `--enable' option for more information, -including a list of supported checks." - :type '(repeat :tag "Additional checks" - (string :tag "Check name")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.14")) - -(flycheck-def-option-var flycheck-cppcheck-standards nil c/c++-cppcheck - "The standards to use in cppcheck. - -The value of this variable is either a list of strings denoting -the standards to use, or nil to pass nothing to cppcheck. When -non-nil, pass the standards via one or more `--std=' options." - :type '(choice (const :tag "Default" nil) - (repeat :tag "Custom standards" - (string :tag "Standard name"))) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "28")) -(make-variable-buffer-local 'flycheck-cppcheck-standards) - -(flycheck-def-option-var flycheck-cppcheck-suppressions-file nil c/c++-cppcheck - "The suppressions file to use in cppcheck. - -The value of this variable is a file with the suppressions to -use, or nil to pass nothing to cppcheck. When non-nil, pass the -suppressions file via the `--suppressions-list=' option." - :type '(choice (const :tag "Default" nil) - (file :tag "Suppressions file")) - :safe #'stringp - :package-version '(flycheck . "32")) -(make-variable-buffer-local 'flycheck-cppcheck-suppressions-file) - -(flycheck-def-option-var flycheck-cppcheck-suppressions nil c/c++-cppcheck - "The suppressions to use in cppcheck. - -The value of this variable is either a list of strings denoting -the suppressions to use, or nil to pass nothing to cppcheck. -When non-nil, pass the suppressions via one or more `--suppress=' -options." - :type '(choice (const :tag "Default" nil) - (repeat :tag "Additional suppressions" - (string :tag "Suppression"))) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "28")) - -(flycheck-def-option-var flycheck-cppcheck-inconclusive nil c/c++-cppcheck - "Whether to enable Cppcheck inconclusive checks. - -When non-nil, enable Cppcheck inconclusive checks. This allows Cppcheck to -report warnings it's not certain of, but it may result in false positives. - -This will have no effect when using Cppcheck 1.53 and older." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.19")) - -(flycheck-def-option-var flycheck-cppcheck-include-path nil c/c++-cppcheck - "A list of include directories for cppcheck. - -The value of this variable is a list of strings, where each -string is a directory to add to the include path of cppcheck. -Relative paths are relative to the file being checked." - :type '(repeat (directory :tag "Include directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.24")) - -(flycheck-define-checker c/c++-cppcheck - "A C/C++ checker using cppcheck. - -See URL `http://cppcheck.sourceforge.net/'." - :command ("cppcheck" "--quiet" "--xml-version=2" "--inline-suppr" - (option "--enable=" flycheck-cppcheck-checks concat - flycheck-option-comma-separated-list) - (option-flag "--inconclusive" flycheck-cppcheck-inconclusive) - (option-list "-I" flycheck-cppcheck-include-path) - (option-list "--std=" flycheck-cppcheck-standards concat) - (option-list "--suppress=" flycheck-cppcheck-suppressions concat) - (option "--suppressions-list=" - flycheck-cppcheck-suppressions-file concat) - "-x" (eval - (pcase major-mode - (`c++-mode "c++") - (`c-mode "c"))) - source) - :error-parser flycheck-parse-cppcheck - :modes (c-mode c++-mode)) - -(flycheck-define-checker cfengine - "A CFEngine syntax checker using cf-promises. - -See URL `https://cfengine.com/'." - :command ("cf-promises" "-Wall" "-f" - ;; We must stay in the same directory to resolve @include - source-inplace) - :error-patterns - ((warning line-start (file-name) ":" line ":" column - ": warning: " (message) line-end) - (error line-start (file-name) ":" line ":" column - ": error: " (message) line-end)) - :modes (cfengine-mode cfengine3-mode)) - -(flycheck-def-option-var flycheck-foodcritic-tags nil chef-foodcritic - "A list of tags to select for Foodcritic. - -The value of this variable is a list of strings where each string -is a tag expression describing Foodcritic rules to enable or -disable, via the `--tags' option. To disable a tag, prefix it -with `~'." - :type '(repeat :tag "Tags" (string :tag "Tag expression")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.23")) - -(flycheck-define-checker chef-foodcritic - "A Chef cookbooks syntax checker using Foodcritic. - -See URL `http://www.foodcritic.io'." - ;; Use `source-inplace' to allow resource discovery with relative paths. - ;; foodcritic interprets these as relative to the source file, so we need to - ;; stay within the source tree. See - ;; https://github.com/flycheck/flycheck/pull/556 - :command ("foodcritic" - (option-list "--tags" flycheck-foodcritic-tags) - source-inplace) - :error-patterns - ((error line-start (id (one-or-more alnum)) ": " - (message) ": " (file-name) ":" line line-end)) - :modes (enh-ruby-mode ruby-mode) - :predicate - (lambda () - (let ((parent-dir (file-name-directory - (directory-file-name - (expand-file-name default-directory))))) - (or - ;; Chef CookBook - ;; http://docs.opscode.com/chef/knife.html#id38 - (locate-dominating-file parent-dir "recipes") - ;; Knife Solo - ;; http://matschaffer.github.io/knife-solo/#label-Init+command - (locate-dominating-file parent-dir "cookbooks"))))) - -(flycheck-define-checker coffee - "A CoffeeScript syntax checker using coffee. - -See URL `https://coffeescript.org/'." - ;; --print suppresses generation of compiled .js files - :command ("coffee" "--compile" "--print" "--stdio") - :standard-input t - :error-patterns - ((error line-start "[stdin]:" line ":" column - ": error: " (message) line-end)) - :modes coffee-mode - :next-checkers ((warning . coffee-coffeelint))) - -(flycheck-def-config-file-var flycheck-coffeelintrc coffee-coffeelint - ".coffeelint.json" - :safe #'stringp) - -(flycheck-define-checker coffee-coffeelint - "A CoffeeScript style checker using coffeelint. - -See URL `http://www.coffeelint.org/'." - :command - ("coffeelint" - (config-file "--file" flycheck-coffeelintrc) - "--stdin" "--reporter" "checkstyle") - :standard-input t - :error-parser flycheck-parse-checkstyle - :error-filter (lambda (errors) - (flycheck-remove-error-file-names - "stdin" (flycheck-remove-error-ids - (flycheck-sanitize-errors errors)))) - :modes coffee-mode) - -(flycheck-define-checker coq - "A Coq syntax checker using the Coq compiler. - -See URL `https://coq.inria.fr/'." - ;; We use coqtop in batch mode, because coqc is picky about file names. - :command ("coqtop" "-batch" "-load-vernac-source" source) - :error-patterns - ((error line-start "File \"" (file-name) "\", line " line - ;; TODO: Parse the end column, once Flycheck supports that - ", characters " column "-" (one-or-more digit) ":\n" - (or "Syntax error:" "Error:") - ;; Most Coq error messages span multiple lines, and end with a dot. - ;; There are simple one-line messages, too, though. - (message (or (and (one-or-more (or not-newline "\n")) ".") - (one-or-more not-newline))) - line-end)) - :error-filter - (lambda (errors) - (dolist (err (flycheck-sanitize-errors errors)) - (setf (flycheck-error-message err) - (replace-regexp-in-string (rx (1+ (syntax whitespace)) line-end) - "" (flycheck-error-message err) - 'fixedcase 'literal))) - (flycheck-increment-error-columns errors)) - :modes coq-mode) - -(flycheck-define-checker css-csslint - "A CSS syntax and style checker using csslint. - -See URL `https://github.com/CSSLint/csslint'." - :command ("csslint" "--format=checkstyle-xml" source) - :error-parser flycheck-parse-checkstyle - :error-filter flycheck-dequalify-error-ids - :modes css-mode) - -(defconst flycheck-stylelint-args '("--formatter" "json") - "Common arguments to stylelint invocations.") - -(flycheck-def-config-file-var flycheck-stylelintrc - (css-stylelint scss-stylelint less-stylelint) nil - :safe #'stringp) - -(flycheck-def-option-var flycheck-stylelint-quiet - nil (css-stylelint scss-stylelint less-stylelint) - "Whether to run stylelint in quiet mode. - -When non-nil, enable quiet mode, via `--quiet'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . 26)) - -(defconst flycheck-stylelint-error-re - (flycheck-rx-to-string - '(: line-start (id (one-or-more word)) ": " (message) line-end))) - -(defun flycheck-parse-stylelint (output checker buffer) - "Parse stylelint errors from OUTPUT. - -CHECKER and BUFFER denoted the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -The CHECKER usually returns the errors as JSON. - -If the CHECKER throws an Error it returns an Error message with a stacktrace." - (condition-case nil - (flycheck-parse-stylelint-json output checker buffer) - - ;; The output could not be parsed as JSON - (json-error - - ;; Extract a flycheck error from the output (with a regular expression) - ;; For match-string 4/5 see flycheck-rx-message/flycheck-rx-id - (when (string-match flycheck-stylelint-error-re output) - (list (flycheck-error-new-at - 1 nil 'error - (match-string 4 output) - :id (match-string 5 output) - :checker checker - :buffer buffer - :filename (buffer-file-name buffer))))))) - -(defun flycheck-parse-stylelint-json (output checker buffer) - "Parse stylelint JSON errors from OUTPUT. - -CHECKER and BUFFER denoted the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -See URL `http://stylelint.io/developer-guide/formatters/' for information -about the JSON format of stylelint." - (let ((json-object-type 'plist)) - - ;; stylelint returns a vector of result objects - ;; Since we only passed one file, the first element is enough - (let* ((stylelint-output (elt (json-read-from-string output) 0)) - (filename (buffer-file-name buffer)) - - ;; Turn all deprecations into warnings - (deprecations - (mapcar (lambda (d) - (flycheck-error-new-at - 1 nil 'warning - (plist-get d :text) - :id "Deprecation Warning" - :checker checker - :buffer buffer - :filename filename)) - (plist-get stylelint-output :deprecations))) - - ;; Turn all invalid options into errors - (invalid-options - (mapcar (lambda (io) - (flycheck-error-new-at - 1 nil 'error - (plist-get io :text) - :id "Invalid Option" - :checker checker - :buffer buffer - :filename filename)) - (plist-get stylelint-output :invalidOptionWarnings))) - - ;; Read all linting warnings - (warnings - (mapcar (lambda (w) - (flycheck-error-new-at - (plist-get w :line) (plist-get w :column) - (pcase (plist-get w :severity) - (`"error" 'error) - (`"warning" 'warning) - ;; Default to info for unknown .severity - (_ 'info)) - (plist-get w :text) - :id (plist-get w :rule) - :checker checker - :buffer buffer - :filename filename)) - (plist-get stylelint-output :warnings)))) - - ;; Return the combined errors (deprecations, invalid options, warnings) - (append deprecations invalid-options warnings)))) - -(flycheck-define-checker css-stylelint - "A CSS syntax and style checker using stylelint. - -See URL `http://stylelint.io/'." - :command ("stylelint" - (eval flycheck-stylelint-args) - (option-flag "--quiet" flycheck-stylelint-quiet) - (config-file "--config" flycheck-stylelintrc)) - :standard-input t - :error-parser flycheck-parse-stylelint - :modes (css-mode)) - -(flycheck-def-option-var flycheck-cuda-language-standard nil cuda-nvcc - "Our CUDA Language Standard." - :type '(choice (const :tag "Default standard" nil) - (string :tag "Language standard")) - :safe #'stringp - :package-version '(flycheck . "32")) -(make-variable-buffer-local 'flycheck-cuda-language-standard) - -(flycheck-def-option-var flycheck-cuda-includes nil cuda-nvcc - "Our include directories to pass to nvcc." - :type '(repeat (file :tag "Include file")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "32")) - -(flycheck-def-option-var flycheck-cuda-definitions nil cuda-nvcc - "Additional preprocessor definitions for nvcc. -A list of strings to pass to cuda, a la flycheck-clang" - :type '(repeat (string :tag "Definitions")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "32")) - -(flycheck-def-option-var flycheck-cuda-include-path nil cuda-nvcc - "A list of include directories for nvcc." - :type '(repeat (directory :tag "Include directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "32")) - -(flycheck-define-checker cuda-nvcc - "A CUDA C/C++ syntax checker using nvcc. - -See URL `https://developer.nvidia.com/cuda-llvm-compiler'." - :command ("nvcc" - "-c" ;; Compile Only - (option "-std=" flycheck-cuda-language-standard concat) - (option-list "-include" flycheck-cuda-includes) - (option-list "-D" flycheck-cuda-definitions concat) - (option-list "-I" flycheck-cuda-include-path) - source) - :error-patterns - ((error line-start - (message "In file included from") - " " (or "<stdin>" (file-name)) - ":" line ":" line-end) - (error line-start (or "<stdin>" (file-name)) - "(" line "): error: " (message) line-end) - (error line-start (or "<stdin>" (file-name)) - ":" line ":" column - ": fatal error: " (optional (message)) line-end) - (warning line-start (or "<stdin>" (file-name)) - "(" line "): warning: " (message) line-end)) - :modes cuda-mode) - - -(flycheck-def-option-var flycheck-cwl-schema-path nil cwl - "A path for the schema file for Common Workflow Language. - -The value of this variable is a string that denotes a path for -the schema file of Common Workflow Language." - :type 'string - :safe #'stringp) - -(flycheck-define-checker cwl - "A CWL syntax checker using Schema Salad validator. - -Requires Schema Salad 2.6.20171101113912 or newer. -See URL `https://www.commonwl.org/v1.0/SchemaSalad.html'." - :command ("schema-salad-tool" - "--quiet" - "--print-oneline" - (eval flycheck-cwl-schema-path) - source-inplace) - :error-patterns - ((error line-start - (file-name) ":" line ":" column ":" (zero-or-more blank) - (message (one-or-more not-newline)) - line-end)) - :modes cwl-mode) - -(defconst flycheck-d-module-re - (rx "module" (one-or-more (syntax whitespace)) - (group (one-or-more (not (syntax whitespace)))) - (zero-or-more (syntax whitespace)) - ";") - "Regular expression to match a D module declaration.") - -(defun flycheck-d-base-directory () - "Get the relative base directory path for this module." - (let* ((file-name (buffer-file-name)) - (module-file (if (string= (file-name-nondirectory file-name) - "package.d") - (directory-file-name (file-name-directory file-name)) - file-name))) - (flycheck-module-root-directory - (flycheck-find-in-buffer flycheck-d-module-re) - module-file))) - -(flycheck-def-option-var flycheck-dmd-include-path nil d-dmd - "A list of include directories for dmd. - -The value of this variable is a list of strings, where each -string is a directory to add to the include path of dmd. -Relative paths are relative to the file being checked." - :type '(repeat (directory :tag "Include directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.18")) - -(flycheck-def-args-var flycheck-dmd-args d-dmd - :package-version '(flycheck . "0.24")) - -(flycheck-define-checker d-dmd - "A D syntax checker using the DMD compiler. - -Requires DMD 2.066 or newer. See URL `https://dlang.org/'." - :command ("dmd" - "-debug" ; Compile in debug mode - "-o-" ; Don't generate an object file - "-vcolumns" ; Add columns in output - "-wi" ; Compilation will continue even if there are warnings - (eval (concat "-I" (flycheck-d-base-directory))) - (option-list "-I" flycheck-dmd-include-path concat) - (eval flycheck-dmd-args) - source) - :error-patterns - ((error line-start - (file-name) "(" line "," column "): Error: " (message) - line-end) - (warning line-start (file-name) "(" line "," column "): " - (or "Warning" "Deprecation") ": " (message) line-end) - (info line-start (file-name) "(" line "," column "): " - (one-or-more " ") (message) line-end)) - :modes d-mode) - -(flycheck-define-checker dockerfile-hadolint - "A Dockerfile syntax checker using the hadolint. - -See URL `http://github.com/hadolint/hadolint/'." - :command ("hadolint" "-") - :standard-input t - :error-patterns - ((error line-start - (file-name) ":" line ":" column " " (message) - line-end) - (warning line-start - (file-name) ":" line " " (id (one-or-more alnum)) " " (message) - line-end)) - :error-filter - (lambda (errors) - (flycheck-sanitize-errors - (flycheck-remove-error-file-names "/dev/stdin" errors))) - :modes dockerfile-mode) - -(defconst flycheck-this-emacs-executable - (concat invocation-directory invocation-name) - "The path to the currently running Emacs executable.") - -(defconst flycheck-emacs-args '("-Q" "--batch") - "Common arguments to Emacs invocations.") - -(defmacro flycheck-prepare-emacs-lisp-form (&rest body) - "Prepare BODY for use as check form in a subprocess." - (declare (indent 0)) - `(flycheck-sexp-to-string - '(progn - (defvar jka-compr-inhibit) - (unwind-protect - ;; Flycheck inhibits compression of temporary files, thus we - ;; must not attempt to decompress. - (let ((jka-compr-inhibit t)) - ;; Strip option-argument separator from arguments, if present - (when (equal (car command-line-args-left) "--") - (setq command-line-args-left (cdr command-line-args-left))) - ,@body) - ;; Prevent Emacs from processing the arguments on its own, see - ;; https://github.com/flycheck/flycheck/issues/319 - (setq command-line-args-left nil))))) - -(defconst flycheck-emacs-lisp-check-form - (flycheck-prepare-emacs-lisp-form - ;; Keep track of the generated bytecode files, to delete them after byte - ;; compilation. - (defvar flycheck-byte-compiled-files nil) - (let ((byte-compile-dest-file-function - (lambda (source) - (let ((temp-file (make-temp-file (file-name-nondirectory source)))) - (push temp-file flycheck-byte-compiled-files) - temp-file)))) - (unwind-protect - (byte-compile-file (car command-line-args-left)) - (mapc (lambda (f) (ignore-errors (delete-file f))) - flycheck-byte-compiled-files)) - (when (bound-and-true-p flycheck-emacs-lisp-check-declare) - (check-declare-file (car command-line-args-left)))))) - -(flycheck-def-option-var flycheck-emacs-lisp-load-path nil emacs-lisp - "Load path to use in the Emacs Lisp syntax checker. - -When set to `inherit', use the `load-path' of the current Emacs -session during syntax checking. - -When set to a list of strings, add each directory in this list to -the `load-path' before invoking the byte compiler. Relative -paths in this list are expanded against the `default-directory' -of the buffer to check. - -When nil, do not explicitly set the `load-path' during syntax -checking. The syntax check only uses the built-in `load-path' of -Emacs in this case. - -Note that changing this variable can lead to wrong results of the -syntax check, e.g. if an unexpected version of a required library -is used." - :type '(choice (const :tag "Inherit current `load-path'" inherit) - (repeat :tag "Load path" directory)) - :risky t - :package-version '(flycheck . "0.14")) - -(flycheck-def-option-var flycheck-emacs-lisp-initialize-packages - 'auto emacs-lisp - "Whether to initialize packages in the Emacs Lisp syntax checker. - -When nil, never initialize packages. When `auto', initialize -packages only when checking `user-init-file' or files from -`user-emacs-directory'. For any other non-nil value, always -initialize packages. - -When initializing packages is enabled the `emacs-lisp' syntax -checker calls `package-initialize' before byte-compiling the file -to be checked. It also sets `package-user-dir' according to -`flycheck-emacs-lisp-package-user-dir'." - :type '(choice (const :tag "Do not initialize packages" nil) - (const :tag "Initialize packages for configuration only" auto) - (const :tag "Always initialize packages" t)) - :risky t - :package-version '(flycheck . "0.14")) - -(defconst flycheck-emacs-lisp-package-initialize-form - (flycheck-sexp-to-string - '(with-demoted-errors "Error during package initialization: %S" - (package-initialize))) - "Form used to initialize packages.") - -(defun flycheck-option-emacs-lisp-package-initialize (value) - "Option VALUE filter for `flycheck-emacs-lisp-initialize-packages'." - (let ((shall-initialize - (if (eq value 'auto) - (or (flycheck-in-user-emacs-directory-p (buffer-file-name)) - ;; `user-init-file' is nil in non-interactive sessions. Now, - ;; no user would possibly use Flycheck in a non-interactive - ;; session, but our unit tests run non-interactively, so we - ;; have to handle this case anyway - (and user-init-file - (flycheck-same-files-p (buffer-file-name) - user-init-file))) - value))) - (when shall-initialize - ;; If packages shall be initialized, return the corresponding form, - ;; otherwise make Flycheck ignore the option by returning nil. - flycheck-emacs-lisp-package-initialize-form))) - -(flycheck-def-option-var flycheck-emacs-lisp-package-user-dir nil emacs-lisp - "Package directory for the Emacs Lisp syntax checker. - -If set to a string set `package-user-dir' to the value of this -variable before initializing packages. If set to nil just inherit -the value of `package-user-dir' from the running Emacs session. - -This variable has no effect, if -`flycheck-emacs-lisp-initialize-packages' is nil." - :type '(choice (const :tag "Default package directory" nil) - (directory :tag "Custom package directory")) - :risky t - :package-version '(flycheck . "0.14")) - -(defun flycheck-option-emacs-lisp-package-user-dir (value) - "Option VALUE filter for `flycheck-emacs-lisp-package-user-dir'." - ;; Inherit the package directory from our Emacs session - (let ((value (or value (bound-and-true-p package-user-dir)))) - (when value - (flycheck-sexp-to-string `(setq package-user-dir ,value))))) - -(flycheck-def-option-var flycheck-emacs-lisp-check-declare nil emacs-lisp - "If non-nil, check ‘declare-function’ forms using ‘check-declare-file’." - :type '(choice (const :tag "Do not check declare forms" nil) - (const :tag "Check declare forms" t)) - :risky t - :package-version '(flycheck . "31")) - -(defun flycheck-option-emacs-lisp-check-declare (value) - "Option VALUE filter for `flycheck-emacs-lisp-check-declare'." - (when value - (flycheck-sexp-to-string - `(progn - (defvar flycheck-emacs-lisp-check-declare) - (setq flycheck-emacs-lisp-check-declare ,value))))) - -(flycheck-define-checker emacs-lisp - "An Emacs Lisp syntax checker using the Emacs Lisp Byte compiler. - -See Info Node `(elisp)Byte Compilation'." - :command ("emacs" (eval flycheck-emacs-args) - (eval - (let ((path (pcase flycheck-emacs-lisp-load-path - (`inherit load-path) - (p (seq-map #'expand-file-name p))))) - (flycheck-prepend-with-option "--directory" path))) - (option "--eval" flycheck-emacs-lisp-package-user-dir nil - flycheck-option-emacs-lisp-package-user-dir) - (option "--eval" flycheck-emacs-lisp-initialize-packages nil - flycheck-option-emacs-lisp-package-initialize) - (option "--eval" flycheck-emacs-lisp-check-declare nil - flycheck-option-emacs-lisp-check-declare) - "--eval" (eval flycheck-emacs-lisp-check-form) - "--" - source-inplace) - :error-patterns - ((error line-start (file-name) ":" line ":" column ":Error:" - (message (zero-or-more not-newline) - (zero-or-more "\n " (zero-or-more not-newline))) - line-end) - (warning line-start (file-name) ":" line ":" column ":Warning:" - (message (zero-or-more not-newline) - (zero-or-more "\n " (zero-or-more not-newline))) - line-end) - (warning line-start (file-name) ":" line (optional ":" column) - ":Warning (check-declare): said\n" - (message (zero-or-more " " (zero-or-more not-newline)) - (zero-or-more "\n " (zero-or-more not-newline))) - line-end) - ;; The following is for Emacs 24 ‘check-declare-file’, which uses a - ;; less informative format. - (warning line-start "Warning (check-declare): " (file-name) " said " - (message (zero-or-more not-newline)) - line-end)) - :error-filter - (lambda (errors) - (flycheck-fill-empty-line-numbers - (flycheck-collapse-error-message-whitespace - (flycheck-sanitize-errors errors)))) - :modes (emacs-lisp-mode lisp-interaction-mode) - :predicate - (lambda () - (and - ;; Ensure that we only check buffers with a backing file. For buffers - ;; without a backing file we cannot guarantee that file names in error - ;; messages are properly resolved, because `byte-compile-file' emits file - ;; names *relative to the directory of the checked file* instead of the - ;; working directory. Hence our backwards-substitution will fail, because - ;; the checker process has a different base directory to resolve relative - ;; file names than the Flycheck code working on the buffer to check. - (buffer-file-name) - ;; Do not check buffers which should not be byte-compiled. The checker - ;; process will refuse to compile these, which would confuse Flycheck - (not (bound-and-true-p no-byte-compile)) - ;; Do not check buffers used for autoloads generation during package - ;; installation. These buffers are too short-lived for being checked, and - ;; doing so causes spurious errors. See - ;; https://github.com/flycheck/flycheck/issues/45 and - ;; https://github.com/bbatsov/prelude/issues/248. We must also not check - ;; compilation buffers, but as these are ephemeral, Flycheck won't check - ;; them anyway. - (not (flycheck-autoloads-file-p)))) - :next-checkers (emacs-lisp-checkdoc)) - -(defconst flycheck-emacs-lisp-checkdoc-form - (flycheck-prepare-emacs-lisp-form - (unless (require 'elisp-mode nil 'no-error) - ;; TODO: Fallback for Emacs 24, remove when dropping support for 24 - (require 'lisp-mode)) - (require 'checkdoc) - - (let ((source (car command-line-args-left)) - ;; Remember the default directory of the process - (process-default-directory default-directory)) - ;; Note that we deliberately use our custom approach even despite of - ;; `checkdoc-file' which was added to Emacs 25.1. While it's conceptually - ;; the better thing, its implementation has too many flaws to be of use - ;; for us. - (with-temp-buffer - (insert-file-contents source 'visit) - (setq buffer-file-name source) - ;; And change back to the process default directory to make file-name - ;; back-substutition work - (setq default-directory process-default-directory) - (with-demoted-errors "Error in checkdoc: %S" - ;; Checkdoc needs the Emacs Lisp syntax table and comment syntax to - ;; parse sexps and identify docstrings correctly; see - ;; https://github.com/flycheck/flycheck/issues/833 - (delay-mode-hooks (emacs-lisp-mode)) - (setq delayed-mode-hooks nil) - (checkdoc-current-buffer t) - (with-current-buffer checkdoc-diagnostic-buffer - (princ (buffer-substring-no-properties (point-min) (point-max))) - (kill-buffer))))))) - -(defconst flycheck-emacs-lisp-checkdoc-variables - '(checkdoc-symbol-words - checkdoc-arguments-in-order-flag - checkdoc-force-history-flag - checkdoc-permit-comma-termination-flag - checkdoc-force-docstrings-flag - checkdoc-package-keywords-flag - checkdoc-spellcheck-documentation-flag - checkdoc-verb-check-experimental-flag - checkdoc-max-keyref-before-warn - sentence-end-double-space) - "Variables inherited by the checkdoc subprocess.") - -(defun flycheck-emacs-lisp-checkdoc-variables-form () - "Make a sexp to pass relevant variables to a checkdoc subprocess. - -Variables are taken from `flycheck-emacs-lisp-checkdoc-variables'." - `(progn - ,@(seq-map (lambda (opt) `(setq-default ,opt ',(symbol-value opt))) - (seq-filter #'boundp flycheck-emacs-lisp-checkdoc-variables)))) - -(flycheck-define-checker emacs-lisp-checkdoc - "An Emacs Lisp style checker using CheckDoc. - -The checker runs `checkdoc-current-buffer'." - :command ("emacs" (eval flycheck-emacs-args) - "--eval" (eval (flycheck-sexp-to-string - (flycheck-emacs-lisp-checkdoc-variables-form))) - "--eval" (eval flycheck-emacs-lisp-checkdoc-form) - "--" source) - :error-patterns - ((warning line-start (file-name) ":" line ": " (message) line-end)) - :modes (emacs-lisp-mode) - :predicate - (lambda () - ;; Do not check Autoloads, Cask/Carton and dir-locals files. These files - ;; really don't need to follow Checkdoc conventions. - (not (or (flycheck-autoloads-file-p) - (and (buffer-file-name) - (member (file-name-nondirectory (buffer-file-name)) - '("Cask" "Carton" ".dir-locals.el"))))))) - -(dolist (checker '(emacs-lisp emacs-lisp-checkdoc)) - (setf (car (flycheck-checker-get checker 'command)) - flycheck-this-emacs-executable)) - -(flycheck-def-option-var flycheck-erlang-include-path nil erlang - "A list of include directories for Erlang. - -The value of this variable is a list of strings, where each -string is a directory to add to the include path of erlc. -Relative paths are relative to the file being checked." - :type '(repeat (directory :tag "Include directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.24")) - -(flycheck-def-option-var flycheck-erlang-library-path nil erlang - "A list of library directories for Erlang. - -The value of this variable is a list of strings, where each -string is a directory to add to the library path of erlc. -Relative paths are relative to the file being checked." - :type '(repeat (directory :tag "Library directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.24")) - -(flycheck-define-checker erlang - "An Erlang syntax checker using the Erlang interpreter. - -See URL `http://www.erlang.org/'." - :command ("erlc" - "-o" temporary-directory - (option-list "-I" flycheck-erlang-include-path) - (option-list "-pa" flycheck-erlang-library-path) - "-Wall" - source) - :error-patterns - ((warning line-start (file-name) ":" line ": Warning:" (message) line-end) - (error line-start (file-name) ":" line ": " (message) line-end)) - :modes erlang-mode - :enabled (lambda () (string-suffix-p ".erl" (buffer-file-name)))) - -(defun contains-rebar-config (dir-name) - "Return DIR-NAME if DIR-NAME/rebar.config exists, nil otherwise." - (when (file-exists-p (expand-file-name "rebar.config" dir-name)) - dir-name)) - -(defun locate-rebar3-project-root (file-name &optional prev-file-name acc) - "Find the top-most rebar project root for source FILE-NAME. - -A project root directory is any directory containing a -rebar.config file. Find the top-most directory to move out of any -nested dependencies. - -FILE-NAME is a source file for which to find the project. - -PREV-FILE-NAME helps us prevent infinite looping - -ACC is an accumulator that keeps the list of results, the first -non-nil of which will be our project root. - -Return the absolute path to the directory" - (if (string= file-name prev-file-name) - (car (remove nil acc)) - (let ((current-dir (file-name-directory file-name))) - (locate-rebar3-project-root - (directory-file-name current-dir) - file-name - (cons (contains-rebar-config current-dir) acc))))) - -(defun flycheck-rebar3-project-root (&optional _checker) - "Return directory where rebar.config is located." - (locate-rebar3-project-root buffer-file-name)) - -(flycheck-def-option-var flycheck-erlang-rebar3-profile nil erlang-rebar3 - "The rebar3 profile to use. - -The profile used when compiling, if VALUE is nil \"test\" will be used -when the file is located in test directory, otherwise \"default\" will be -used as profile." - :type 'string - :safe #'stringp - :package-version '(flycheck . "32")) - -(defun flycheck-erlang-rebar3-get-profile () - "Return rebar3 profile. - -Use flycheck-erlang-rebar3-profile if set, otherwise use test profile if -dirname is test or else default." - (cond - (flycheck-erlang-rebar3-profile flycheck-erlang-rebar3-profile) - ((and buffer-file-name - (string= "test" - (file-name-base - (directory-file-name - (file-name-directory buffer-file-name))))) - "test") - (t "default"))) - -(flycheck-define-checker erlang-rebar3 - "An Erlang syntax checker using the rebar3 build tool." - :command ("rebar3" "as" (eval (flycheck-erlang-rebar3-get-profile)) "compile") - :error-parser - (lambda (output checker buffer) - ;; rebar3 outputs ANSI terminal colors, which don't match up with - ;; :error-patterns, so we strip those color codes from the output - ;; here before passing it along to the default behavior. The - ;; relevant discussion can be found at - ;; https://github.com/flycheck/flycheck/pull/1144 - (require 'ansi-color) - (flycheck-parse-with-patterns - (and (fboundp 'ansi-color-filter-apply) (ansi-color-filter-apply output)) - checker buffer)) - :error-patterns - ((warning line-start - (file-name) ":" line ": Warning:" (message) line-end) - (error line-start - (file-name) ":" line ": " (message) line-end)) - :modes erlang-mode - :enabled flycheck-rebar3-project-root - :predicate flycheck-buffer-saved-p - :working-directory flycheck-rebar3-project-root) - -(flycheck-define-checker eruby-erubis - "An eRuby syntax checker using the `erubis' command. - -See URL `http://www.kuwata-lab.com/erubis/'." - :command ("erubis" "-z" source) - :error-patterns - ((error line-start (file-name) ":" line ": " (message) line-end)) - :modes (html-erb-mode rhtml-mode)) - -(flycheck-def-args-var flycheck-gfortran-args fortran-gfortran - :package-version '(flycheck . "0.22")) - -(flycheck-def-option-var flycheck-gfortran-include-path nil fortran-gfortran - "A list of include directories for GCC Fortran. - -The value of this variable is a list of strings, where each -string is a directory to add to the include path of gcc. -Relative paths are relative to the file being checked." - :type '(repeat (directory :tag "Include directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-gfortran-language-standard "f95" - fortran-gfortran - "The language standard to use in GFortran. - -The value of this variable is either a string denoting a language -standard, or nil, to use the default standard. When non-nil, -pass the language standard via the `-std' option." - :type '(choice (const :tag "Default standard" nil) - (string :tag "Language standard")) - :safe #'stringp - :package-version '(flycheck . "0.20")) - -(flycheck-def-option-var flycheck-gfortran-layout nil fortran-gfortran - "The source code layout to use in GFortran. - -The value of this variable is one of the following symbols: - -nil - Let gfortran determine the layout from the extension - -`free' - Use free form layout - - -`fixed' - Use fixed form layout - -In any other case, an error is signaled." - :type '(choice (const :tag "Guess layout from extension" nil) - (const :tag "Free form layout" free) - (const :tag "Fixed form layout" fixed)) - :safe (lambda (value) (or (not value) (memq value '(free fixed)))) - :package-version '(flycheck . "0.20")) - -(defun flycheck-option-gfortran-layout (value) - "Option VALUE filter for `flycheck-gfortran-layout'." - (pcase value - (`nil nil) - (`free "free-form") - (`fixed "fixed-form") - (_ (error "Invalid value for flycheck-gfortran-layout: %S" value)))) - -(flycheck-def-option-var flycheck-gfortran-warnings '("all" "extra") - fortran-gfortran - "A list of warnings for GCC Fortran. - -The value of this variable is a list of strings, where each string -is the name of a warning category to enable. By default, all -recommended warnings and some extra warnings are enabled (as by -`-Wall' and `-Wextra' respectively). - -Refer to the gfortran manual at URL -`https://gcc.gnu.org/onlinedocs/gfortran/' for more information -about warnings" - :type '(choice (const :tag "No additional warnings" nil) - (repeat :tag "Additional warnings" - (string :tag "Warning name"))) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.20")) - -(flycheck-define-checker fortran-gfortran - "An Fortran syntax checker using GCC. - -Uses GCC's Fortran compiler gfortran. See URL -`https://gcc.gnu.org/onlinedocs/gfortran/'." - :command ("gfortran" - "-fsyntax-only" - "-fshow-column" - ;; Do not visually indicate the source location - "-fno-diagnostics-show-caret" - ;; Do not show the corresponding warning group - "-fno-diagnostics-show-option" - ;; Fortran has similar include processing as C/C++ - "-iquote" (eval (flycheck-c/c++-quoted-include-directory)) - (option "-std=" flycheck-gfortran-language-standard concat) - (option "-f" flycheck-gfortran-layout concat - flycheck-option-gfortran-layout) - (option-list "-W" flycheck-gfortran-warnings concat) - (option-list "-I" flycheck-gfortran-include-path concat) - (eval flycheck-gfortran-args) - source) - :error-patterns - ((error line-start (file-name) ":" line (or ":" ".") column (or ": " ":\n") - (or (= 3 (zero-or-more not-newline) "\n") "") - (or "Error" "Fatal Error") ": " - (message) line-end) - (warning line-start (file-name) ":" line (or ":" ".") column (or ": " ":\n") - (or (= 3 (zero-or-more not-newline) "\n") "") - "Warning: " (message) line-end)) - :modes (fortran-mode f90-mode)) - -(flycheck-define-checker go-gofmt - "A Go syntax and style checker using the gofmt utility. - -See URL `https://golang.org/cmd/gofmt/'." - :command ("gofmt") - :standard-input t - :error-patterns - ((error line-start "<standard input>:" line ":" column ": " - (message) line-end)) - :modes go-mode - :next-checkers ((warning . go-golint) - ;; Fall back, if go-golint doesn't exist - (warning . go-vet) - ;; Fall back, if go-vet doesn't exist - (warning . go-build) (warning . go-test) - (warning . go-errcheck) - (warning . go-unconvert) - (warning . go-staticcheck))) - -(flycheck-define-checker go-golint - "A Go style checker using Golint. - -See URL `https://github.com/golang/lint'." - :command ("golint" source) - :error-patterns - ((warning line-start (file-name) ":" line ":" column ": " (message) line-end)) - :modes go-mode - :next-checkers (go-vet - ;; Fall back, if go-vet doesn't exist - go-build go-test go-errcheck go-unconvert)) - -(flycheck-def-option-var flycheck-go-vet-print-functions nil go-vet - "A list of print-like functions for `go vet'. - -Go vet will check these functions for format string problems and -issues, such as a mismatch between the number of formats used, -and the number of arguments given. - -Each entry is in the form Name:N where N is the zero-based -argument position of the first argument involved in the print: -either the format or the first print argument for non-formatted -prints. For example, if you have Warn and Warnf functions that -take an io.Writer as their first argument, like Fprintf, --printfuncs=Warn:1,Warnf:1 " - :type '(repeat :tag "print-like functions" - (string :tag "function")) - :safe #'flycheck-string-list-p) - -(flycheck-define-checker go-vet - "A Go syntax checker using the `go vet' command. - -See URL `https://golang.org/cmd/go/' and URL -`https://golang.org/cmd/vet/'." - :command ("go" "vet" - (option "-printf.funcs=" flycheck-go-vet-print-functions concat - flycheck-option-comma-separated-list) - source) - :error-patterns - ((warning line-start (file-name) ":" line ": " (message) line-end)) - :modes go-mode - :next-checkers (go-build - go-test - ;; Fall back if `go build' or `go test' can be used - go-errcheck - go-unconvert - go-staticcheck) - :verify (lambda (_) - (let* ((go (flycheck-checker-executable 'go-vet)) - (have-vet (member "vet" (ignore-errors - (process-lines go "tool"))))) - (list - (flycheck-verification-result-new - :label "go tool vet" - :message (if have-vet "present" "missing") - :face (if have-vet 'success '(bold error))))))) - -(flycheck-def-option-var flycheck-go-build-install-deps nil (go-build go-test) - "Whether to install dependencies in `go build' and `go test'. - -If non-nil automatically install dependencies with `go build' -while syntax checking." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.25")) - -(flycheck-def-option-var flycheck-go-build-tags nil - (go-build go-test go-errcheck go-staticcheck) - "A list of tags for `go build'. - -Each item is a string with a tag to be given to `go build'." - :type '(repeat (string :tag "Tag")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.25")) - - -(flycheck-def-option-var flycheck-go-version nil go-staticcheck - "The version of go that should be targeted by `staticcheck'. - -Should be a string representing a version, like 1.6 or 1.11.4. -See `https://staticcheck.io/docs/#targeting-go-versions' for -details." - :type 'string - :safe #'stringp - :package-version '(flycheck . "0.32")) - -(flycheck-define-checker go-build - "A Go syntax and type checker using the `go build' command. - -Requires Go 1.6 or newer. See URL `https://golang.org/cmd/go'." - :command ("go" "build" - (option-flag "-i" flycheck-go-build-install-deps) - ;; multiple tags are listed as "dev debug ..." - (option-list "-tags=" flycheck-go-build-tags concat) - "-o" null-device) - :error-patterns - ((error line-start (file-name) ":" line ":" - (optional column ":") " " - (message (one-or-more not-newline) - (zero-or-more "\n\t" (one-or-more not-newline))) - line-end) - ;; Catch error message about multiple packages in a directory, which doesn't - ;; follow the standard error message format. - (info line-start - (message "can't load package: package " - (one-or-more (not (any ?: ?\n))) - ": found packages " - (one-or-more not-newline)) - line-end)) - :error-filter - (lambda (errors) - (dolist (error errors) - (unless (flycheck-error-line error) - ;; Flycheck ignores errors without line numbers, but the error - ;; message about multiple packages in a directory doesn't come with a - ;; line number, so inject a fake one. - (setf (flycheck-error-line error) 1))) - errors) - :modes go-mode - :predicate (lambda () - (and (flycheck-buffer-saved-p) - (not (string-suffix-p "_test.go" (buffer-file-name))))) - :next-checkers ((warning . go-errcheck) - (warning . go-unconvert) - (warning . go-staticcheck))) - -(flycheck-define-checker go-test - "A Go syntax and type checker using the `go test' command. - -Requires Go 1.6 or newer. See URL `https://golang.org/cmd/go'." - :command ("go" "test" - (option-flag "-i" flycheck-go-build-install-deps) - (option-list "-tags=" flycheck-go-build-tags concat) - "-c" "-o" null-device) - :error-patterns - ((error line-start (file-name) ":" line ":" - (optional column ":") " " - (message (one-or-more not-newline) - (zero-or-more "\n\t" (one-or-more not-newline))) - line-end)) - :modes go-mode - :predicate - (lambda () (and (flycheck-buffer-saved-p) - (string-suffix-p "_test.go" (buffer-file-name)))) - :next-checkers ((warning . go-errcheck) - (warning . go-unconvert) - (warning . go-staticcheck))) - -(flycheck-define-checker go-errcheck - "A Go checker for unchecked errors. - -Requires errcheck newer than commit 8515d34 (Aug 28th, 2015). - -See URL `https://github.com/kisielk/errcheck'." - :command ("errcheck" - "-abspath" - (option-list "-tags=" flycheck-go-build-tags concat) - ".") - :error-patterns - ((warning line-start - (file-name) ":" line ":" column (or (one-or-more "\t") ": " ":\t") - (message) - line-end)) - :error-filter - (lambda (errors) - (let ((errors (flycheck-sanitize-errors errors))) - (dolist (err errors) - (-when-let (message (flycheck-error-message err)) - ;; Improve the messages reported by errcheck to make them more clear. - (setf (flycheck-error-message err) - (format "Ignored `error` returned from `%s`" message))))) - errors) - :modes go-mode - :predicate (lambda () (flycheck-buffer-saved-p)) - :next-checkers ((warning . go-unconvert) - (warning . go-staticcheck))) - -(flycheck-define-checker go-unconvert - "A Go checker looking for unnecessary type conversions. - -See URL `https://github.com/mdempsky/unconvert'." - :command ("unconvert" ".") - :error-patterns - ((warning line-start (file-name) ":" line ":" column ": " (message) line-end)) - :modes go-mode - :predicate (lambda () (flycheck-buffer-saved-p))) - -(flycheck-define-checker go-staticcheck - "A Go checker that performs static analysis and linting using -the `staticcheck' command. - -`staticcheck' is explicitly fully compatible with \"the last two -versions of go\". `staticheck' can target earlier versions (with -limited features) if `flycheck-go-version' is set. See URL -`https://staticcheck.io/'." - :command ("staticcheck" "-f" "json" - (option-list "-tags" flycheck-go-build-tags concat) - (option "-go" flycheck-go-version)) - - :error-parser flycheck-parse-go-staticcheck - :modes go-mode) - -(flycheck-define-checker groovy - "A groovy syntax checker using groovy compiler API. - -See URL `http://www.groovy-lang.org'." - :command ("groovy" "-e" - "import org.codehaus.groovy.control.* - -unit = new CompilationUnit() -unit.addSource(\"input\", System.in) - -try { - unit.compile(Phases.CONVERSION) -} catch (MultipleCompilationErrorsException e) { - e.errorCollector.write(new PrintWriter(System.out, true), null) -}") - :standard-input t - :error-patterns - ((error line-start "input: " line ":" (message) - " @ line " line ", column " column "." line-end)) - :modes groovy-mode) - -(flycheck-define-checker haml - "A Haml syntax checker using the Haml compiler. - -See URL `http://haml.info'." - :command ("haml" "-c" "--stdin") - :standard-input t - :error-patterns - ((error line-start "Syntax error on line " line ": " (message) line-end) - (error line-start ":" line ": syntax error, " (message) line-end)) - :modes haml-mode) - -(flycheck-define-checker handlebars - "A Handlebars syntax checker using the Handlebars compiler. - -See URL `http://handlebarsjs.com/'." - :command ("handlebars" "-i-") - :standard-input t - :error-patterns - ((error line-start - "Error: Parse error on line " line ":" (optional "\r") "\n" - (zero-or-more not-newline) "\n" (zero-or-more not-newline) "\n" - (message) line-end)) - :modes (handlebars-mode handlebars-sgml-mode web-mode) - :predicate - (lambda () - (if (eq major-mode 'web-mode) - ;; Check if this is a handlebars file since web-mode does not store the - ;; non-canonical engine name - (let* ((regexp-alist (bound-and-true-p web-mode-engine-file-regexps)) - (pattern (cdr (assoc "handlebars" regexp-alist)))) - (and pattern (buffer-file-name) - (string-match-p pattern (buffer-file-name)))) - t))) - -(defconst flycheck-haskell-module-re - (rx line-start (zero-or-more (or "\n" (any space))) - "module" (one-or-more (or "\n" (any space))) - (group (one-or-more (not (any space "(" "\n"))))) - "Regular expression for a Haskell module name.") - -(flycheck-def-args-var flycheck-ghc-args (haskell-stack-ghc haskell-ghc) - :package-version '(flycheck . "0.22")) - -(flycheck-def-option-var flycheck-ghc-stack-use-nix nil haskell-stack-ghc - "Whether to enable nix support in stack. - -When non-nil, stack will append '--nix' flag to any call." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "26")) - -(flycheck-def-option-var flycheck-ghc-stack-project-file nil haskell-stack-ghc - "Override project stack.yaml file. - -The value of this variable is a file path that refers to a yaml -file for the current stack project. Relative file paths are -resolved against the checker's working directory. When non-nil, -stack will get overridden value via `--stack-yaml'." - :type 'string - :safe #'stringp - :package-version '(flycheck . "32")) - -(flycheck-def-option-var flycheck-ghc-no-user-package-database nil haskell-ghc - "Whether to disable the user package database in GHC. - -When non-nil, disable the user package database in GHC, via -`-no-user-package-db'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.16")) - -(flycheck-def-option-var flycheck-ghc-package-databases nil haskell-ghc - "Additional module databases for GHC. - -The value of this variable is a list of strings, where each -string is a directory of a package database. Each package -database is given to GHC via `-package-db'." - :type '(repeat (directory :tag "Package database")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.16")) - -(flycheck-def-option-var flycheck-ghc-search-path nil - (haskell-stack-ghc haskell-ghc) - "Module search path for (Stack) GHC. - -The value of this variable is a list of strings, where each -string is a directory containing Haskell modules. Each directory -is added to the GHC search path via `-i'." - :type '(repeat (directory :tag "Module directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.16")) - -(flycheck-def-option-var flycheck-ghc-language-extensions nil - (haskell-stack-ghc haskell-ghc) - "Language extensions for (Stack) GHC. - -The value of this variable is a list of strings, where each -string is a Haskell language extension, as in the LANGUAGE -pragma. Each extension is enabled via `-X'." - :type '(repeat (string :tag "Language extension")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.19")) - -(defvar flycheck-haskell-ghc-cache-directory nil - "The cache directory for `ghc' output.") - -(defun flycheck-haskell-ghc-cache-directory () - "Get the cache location for `ghc' output. - -If no cache directory exists yet, create one and return it. -Otherwise return the previously used cache directory." - (setq flycheck-haskell-ghc-cache-directory - (or flycheck-haskell-ghc-cache-directory - (make-temp-file "flycheck-haskell-ghc-cache" 'directory)))) - -(defun flycheck--locate-dominating-file-matching (directory regexp) - "Search for a file in directory hierarchy starting at DIRECTORY. - -Look up the directory hierarchy from DIRECTORY for a directory -containing a file that matches REGEXP." - (locate-dominating-file - directory - (lambda (dir) - (directory-files dir nil regexp t)))) - -(defun flycheck-haskell--find-default-directory (checker) - "Come up with a suitable default directory for Haskell to run CHECKER in. - -In case of `haskell-stack-ghc' checker it is directory with -stack.yaml file. If there's no stack.yaml file in any parent -directory, it will be the directory that \"stack path --project-root\" -command returns. - -For all other checkers, it is the closest parent directory that -contains a cabal file." - (pcase checker - (`haskell-stack-ghc - (or - (when (buffer-file-name) - (flycheck--locate-dominating-file-matching - (file-name-directory (buffer-file-name)) - "stack.*\\.yaml\\'")) - (-when-let* ((stack (funcall flycheck-executable-find "stack")) - (output (ignore-errors - (process-lines stack - "--no-install-ghc" - "path" "--project-root"))) - (stack-dir (car output))) - (and (file-directory-p stack-dir) stack-dir)))) - (_ - (when (buffer-file-name) - (flycheck--locate-dominating-file-matching - (file-name-directory (buffer-file-name)) - "\\.cabal\\'\\|\\`package\\.yaml\\'"))))) - -(flycheck-define-checker haskell-stack-ghc - "A Haskell syntax and type checker using `stack ghc'. - -See URL `https://github.com/commercialhaskell/stack'." - :command ("stack" - "--no-install-ghc" - (option "--stack-yaml" flycheck-ghc-stack-project-file) - (option-flag "--nix" flycheck-ghc-stack-use-nix) - "ghc" "--" "-Wall" "-no-link" - "-outputdir" (eval (flycheck-haskell-ghc-cache-directory)) - (option-list "-X" flycheck-ghc-language-extensions concat) - (option-list "-i" flycheck-ghc-search-path concat) - (eval (concat - "-i" - (flycheck-module-root-directory - (flycheck-find-in-buffer flycheck-haskell-module-re)))) - (eval flycheck-ghc-args) - "-x" (eval - (pcase major-mode - (`haskell-mode "hs") - (`literate-haskell-mode "lhs"))) - source) - :error-patterns - ((warning line-start (file-name) ":" line ":" column ":" - (or " " "\n ") (in "Ww") "arning:" - (optional " " "[" (id (one-or-more not-newline)) "]") - (optional "\n") - (message - (one-or-more " ") (one-or-more not-newline) - (zero-or-more "\n" - (one-or-more " ") - (one-or-more (not (any ?\n ?|))))) - line-end) - (error line-start (file-name) ":" line ":" column ":" (optional " error:") - (or (message (one-or-more not-newline)) - (and "\n" - (message - (one-or-more " ") (one-or-more not-newline) - (zero-or-more "\n" - (one-or-more " ") - (one-or-more (not (any ?\n ?|))))))) - line-end)) - :error-filter - (lambda (errors) - (flycheck-sanitize-errors (flycheck-dedent-error-messages errors))) - :modes (haskell-mode literate-haskell-mode) - :next-checkers ((warning . haskell-hlint)) - :working-directory flycheck-haskell--find-default-directory) - -(flycheck-define-checker haskell-ghc - "A Haskell syntax and type checker using ghc. - -See URL `https://www.haskell.org/ghc/'." - :command ("ghc" "-Wall" "-no-link" - "-outputdir" (eval (flycheck-haskell-ghc-cache-directory)) - (option-flag "-no-user-package-db" - flycheck-ghc-no-user-package-database) - (option-list "-package-db" flycheck-ghc-package-databases) - (option-list "-i" flycheck-ghc-search-path concat) - ;; Include the parent directory of the current module tree, to - ;; properly resolve local imports - (eval (concat - "-i" - (flycheck-module-root-directory - (flycheck-find-in-buffer flycheck-haskell-module-re)))) - (option-list "-X" flycheck-ghc-language-extensions concat) - (eval flycheck-ghc-args) - "-x" (eval - (pcase major-mode - (`haskell-mode "hs") - (`literate-haskell-mode "lhs"))) - source) - :error-patterns - ((warning line-start (file-name) ":" line ":" column ":" - (or " " "\n ") (in "Ww") "arning:" - (optional " " "[" (id (one-or-more not-newline)) "]") - (optional "\n") - (message - (one-or-more " ") (one-or-more not-newline) - (zero-or-more "\n" - (one-or-more " ") - (one-or-more (not (any ?\n ?|))))) - line-end) - (error line-start (file-name) ":" line ":" column ":" (optional " error:") - (or (message (one-or-more not-newline)) - (and "\n" - (message - (one-or-more " ") (one-or-more not-newline) - (zero-or-more "\n" - (one-or-more " ") - (one-or-more (not (any ?\n ?|))))))) - line-end)) - :error-filter - (lambda (errors) - (flycheck-sanitize-errors (flycheck-dedent-error-messages errors))) - :modes (haskell-mode literate-haskell-mode) - :next-checkers ((warning . haskell-hlint)) - :working-directory flycheck-haskell--find-default-directory) - -(flycheck-def-config-file-var flycheck-hlintrc haskell-hlint "HLint.hs" - :safe #'stringp) - -(flycheck-def-args-var flycheck-hlint-args haskell-hlint - :package-version '(flycheck . "0.25")) - -(flycheck-def-option-var flycheck-hlint-language-extensions - nil haskell-hlint - "Extensions list to enable for hlint. - -The value of this variable is a list of strings, where each -string is a name of extension to enable in -hlint (e.g. \"QuasiQuotes\")." - :type '(repeat :tag "Extensions" (string :tag "Extension")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.24")) - -(flycheck-def-option-var flycheck-hlint-ignore-rules - nil haskell-hlint - "Ignore rules list for hlint checks. - -The value of this variable is a list of strings, where each -string is an ignore rule (e.g. \"Use fmap\")." - :type '(repeat :tag "Ignore rules" (string :tag "Ignore rule")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.24")) - -(flycheck-def-option-var flycheck-hlint-hint-packages - nil haskell-hlint - "Hint packages to include for hlint checks. - -The value of this variable is a list of strings, where each -string is a default hint package (e.g. (\"Generalise\" -\"Default\" \"Dollar\"))." - :type '(repeat :tag "Hint packages" (string :tag "Hint package")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.24")) - -(flycheck-define-checker haskell-hlint - "A Haskell style checker using hlint. - -See URL `https://github.com/ndmitchell/hlint'." - :command ("hlint" - (option-list "-X" flycheck-hlint-language-extensions concat) - (option-list "-i=" flycheck-hlint-ignore-rules concat) - (option-list "-h" flycheck-hlint-hint-packages concat) - (config-file "-h" flycheck-hlintrc) - (eval flycheck-hlint-args) - source-inplace) - :error-patterns - ((info line-start - (file-name) ":" line ":" column - ": Suggestion: " - (message (one-or-more (and (one-or-more (not (any ?\n))) ?\n))) - line-end) - (warning line-start - (file-name) ":" line ":" column - ": Warning: " - (message (one-or-more (and (one-or-more (not (any ?\n))) ?\n))) - line-end) - (error line-start - (file-name) ":" line ":" column - ": Error: " - (message (one-or-more (and (one-or-more (not (any ?\n))) ?\n))) - line-end)) - :modes (haskell-mode literate-haskell-mode)) - -(flycheck-def-config-file-var flycheck-tidyrc html-tidy ".tidyrc" - :safe #'stringp) - -(flycheck-define-checker html-tidy - "A HTML syntax and style checker using Tidy. - -See URL `https://github.com/htacg/tidy-html5'." - :command ("tidy" (config-file "-config" flycheck-tidyrc) - "-lang" "en" - "-e" "-q") - :standard-input t - :error-patterns - ((error line-start - "line " line - " column " column - " - Error: " (message) line-end) - (warning line-start - "line " line - " column " column - " - Warning: " (message) line-end)) - :modes (html-mode mhtml-mode nxhtml-mode)) - -(flycheck-def-config-file-var flycheck-jshintrc javascript-jshint ".jshintrc" - :safe #'stringp) - -(flycheck-def-option-var flycheck-jshint-extract-javascript nil - javascript-jshint - "Whether jshint should extract Javascript from HTML. - -If nil no extract rule is given to jshint. If `auto' only -extract Javascript if a HTML file is detected. If `always' or -`never' extract Javascript always or never respectively. - -Refer to the jshint manual at the URL -`http://jshint.com/docs/cli/#flags' for more information." - :type - '(choice (const :tag "No extraction rule" nil) - (const :tag "Try to extract Javascript when detecting HTML files" - auto) - (const :tag "Always try to extract Javascript" always) - (const :tag "Never try to extract Javascript" never)) - :safe #'symbolp - :package-version '(flycheck . "26")) - -(flycheck-define-checker javascript-jshint - "A Javascript syntax and style checker using jshint. - -See URL `http://www.jshint.com'." - :command ("jshint" "--reporter=checkstyle" - "--filename" source-original - (config-file "--config" flycheck-jshintrc) - (option "--extract=" flycheck-jshint-extract-javascript - concat flycheck-option-symbol) - "-") - :standard-input t - :error-parser flycheck-parse-checkstyle - :error-filter - (lambda (errors) - (flycheck-remove-error-file-names - "stdin" (flycheck-dequalify-error-ids errors))) - :modes (js-mode js2-mode js3-mode rjsx-mode)) - -(flycheck-def-args-var flycheck-eslint-args javascript-eslint - :package-version '(flycheck . "32")) - -(flycheck-def-option-var flycheck-eslint-rules-directories nil javascript-eslint - "A list of directories with custom rules for ESLint. - -The value of this variable is a list of strings, where each -string is a directory with custom rules for ESLint. - -Refer to the ESLint manual at URL -`http://eslint.org/docs/user-guide/command-line-interface#--rulesdir' -for more information about the custom directories." - :type '(repeat (directory :tag "Custom rules directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "29")) - -(defun flycheck-eslint-config-exists-p () - "Whether there is a valid eslint config for the current buffer." - (let* ((executable (flycheck-find-checker-executable 'javascript-eslint)) - (exitcode (and executable (call-process executable nil nil nil - "--print-config" ".")))) - (eq exitcode 0))) - -(defun flycheck-parse-eslint (output checker buffer) - "Parse ESLint errors/warnings from JSON OUTPUT. - -CHECKER and BUFFER denote the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -See URL `https://eslint.org' for more information about ESLint." - (mapcar (lambda (err) - (let-alist err - (flycheck-error-new-at - .line - .column - (pcase .severity - (2 'error) - (1 'warning) - (_ 'warning)) - .message - :id .ruleId - :checker checker - :buffer buffer - :filename (buffer-file-name buffer)))) - (let-alist (caar (flycheck-parse-json output)) - .messages))) - -(defun flycheck-eslint--find-working-directory (_checker) - "Look for a working directory to run ESLint CHECKER in. - -This will be the directory that contains the `node_modules' -directory. If no such directory is found in the directory -hierarchy, it looks first for `.eslintignore' and then for -`.eslintrc' files to detect the project root." - (let* ((regex-config (concat "\\`\\.eslintrc" - "\\(\\.\\(js\\|ya?ml\\|json\\)\\)?\\'"))) - (when buffer-file-name - (or (locate-dominating-file buffer-file-name "node_modules") - (locate-dominating-file buffer-file-name ".eslintignore") - (locate-dominating-file - (file-name-directory buffer-file-name) - (lambda (directory) - (> (length (directory-files directory nil regex-config t)) 0))))))) - -(flycheck-define-checker javascript-eslint - "A Javascript syntax and style checker using eslint. - -See URL `https://eslint.org/'." - :command ("eslint" "--format=json" - (option-list "--rulesdir" flycheck-eslint-rules-directories) - (eval flycheck-eslint-args) - "--stdin" "--stdin-filename" source-original) - :standard-input t - :error-parser flycheck-parse-eslint - :enabled (lambda () (flycheck-eslint-config-exists-p)) - :modes (js-mode js-jsx-mode js2-mode js2-jsx-mode js3-mode rjsx-mode - typescript-mode) - :working-directory flycheck-eslint--find-working-directory - :verify - (lambda (_) - (let* ((default-directory - (flycheck-compute-working-directory 'javascript-eslint)) - (have-config (flycheck-eslint-config-exists-p))) - (list - (flycheck-verification-result-new - :label "config file" - :message (if have-config "found" "missing or incorrect") - :face (if have-config 'success '(bold error))))))) - -(flycheck-define-checker javascript-standard - "A Javascript code and style checker for the (Semi-)Standard Style. - -This checker works with `standard' and `semistandard', defaulting -to the former. To use it with the latter, set -`flycheck-javascript-standard-executable' to `semistandard'. - -See URL `https://github.com/standard/standard' and URL -`https://github.com/Flet/semistandard'." - :command ("standard" "--stdin") - :standard-input t - :error-patterns - ((error line-start " <text>:" line ":" column ":" (message) line-end)) - :modes (js-mode js-jsx-mode js2-mode js2-jsx-mode js3-mode rjsx-mode)) - -(flycheck-define-checker json-jsonlint - "A JSON syntax and style checker using jsonlint. - -See URL `https://github.com/zaach/jsonlint'." - ;; We can't use standard input for jsonlint, because it doesn't output errors - ;; anymore when using -c -q with standard input :/ - :command ("jsonlint" "-c" "-q" source) - :error-patterns - ((error line-start - (file-name) - ": line " line - ", col " column ", " - (message) line-end)) - :error-filter - (lambda (errors) - (flycheck-sanitize-errors (flycheck-increment-error-columns errors))) - :modes json-mode) - -(flycheck-define-checker json-python-json - "A JSON syntax checker using Python json.tool module. - -See URL `https://docs.python.org/3.5/library/json.html#command-line-interface'." - :command ("python" "-m" "json.tool" source - ;; Send the pretty-printed output to the null device - null-device) - :error-patterns - ((error line-start - (message) ": line " line " column " column - ;; Ignore the rest of the line which shows the char position. - (one-or-more not-newline) - line-end)) - :modes json-mode - ;; The JSON parser chokes if the buffer is empty and has no JSON inside - :predicate (lambda () (not (flycheck-buffer-empty-p)))) - -(flycheck-define-checker json-jq - "JSON checker using the jq tool. - -This checker accepts multiple consecutive JSON values in a -single input, which is useful for jsonlines data. - -See URL `https://stedolan.github.io/jq/'." - :command ("jq" "." source null-device) - ;; Example error message: - ;; parse error: Expected another key-value pair at line 3, column 1 - :error-patterns - ((error line-start - (optional "parse error: ") - (message) "at line " line ", column " column - (zero-or-more not-newline) line-end)) - :modes json-mode) - -(flycheck-define-checker jsonnet - "A Jsonnet syntax checker using the jsonnet binary. - -See URL `https://jsonnet.org'." - :command ("jsonnet" source-inplace) - :error-patterns - ((error line-start "STATIC ERROR: " (file-name) ":" line ":" column - (zero-or-one (group "-" (one-or-more digit))) ": " - (message) line-end) - (error line-start "RUNTIME ERROR: " (message) "\n" - (one-or-more space) (file-name) ":" (zero-or-one "(") - line ":" column (zero-or-more not-newline) line-end)) - :modes jsonnet-mode) - -(flycheck-define-checker less - "A LESS syntax checker using lessc. - -Requires lessc 1.4 or newer. - -See URL `http://lesscss.org'." - :command ("lessc" "--lint" "--no-color" - "-") - :standard-input t - :error-patterns - ((error line-start (one-or-more word) ":" - (message) - " in - on line " line - ", column " column ":" - line-end)) - :modes less-css-mode) - -(flycheck-define-checker less-stylelint - "A LESS syntax and style checker using stylelint. - -See URL `http://stylelint.io/'." - :command ("stylelint" - (eval flycheck-stylelint-args) - "--syntax" "less" - (option-flag "--quiet" flycheck-stylelint-quiet) - (config-file "--config" flycheck-stylelintrc)) - :standard-input t - :error-parser flycheck-parse-stylelint - :modes (less-css-mode)) - -(flycheck-define-checker llvm-llc - "Flycheck LLVM IR checker using llc. - -See URL `http://llvm.org/docs/CommandGuide/llc.html'." - :command ("llc" "-o" null-device source) - :error-patterns - ((error line-start - ;; llc prints the executable path - (zero-or-one (minimal-match (one-or-more not-newline)) ": ") - (file-name) ":" line ":" column ": error: " (message) - line-end)) - :error-filter - (lambda (errors) - ;; sanitize errors occurring in inline assembly - (flycheck-sanitize-errors - (flycheck-remove-error-file-names "<inline asm>" errors))) - :modes llvm-mode) - -(flycheck-def-config-file-var flycheck-luacheckrc lua-luacheck ".luacheckrc" - :safe #'stringp) - -(flycheck-def-option-var flycheck-luacheck-standards nil lua-luacheck - "The standards to use in luacheck. - -The value of this variable is either a list of strings denoting -the standards to use, or nil to pass nothing to luacheck. When -non-nil, pass the standards via one or more `--std' options." - :type '(choice (const :tag "Default" nil) - (repeat :tag "Custom standards" - (string :tag "Standard name"))) - :safe #'flycheck-string-list-p) -(make-variable-buffer-local 'flycheck-luacheck-standards) - -(flycheck-define-checker lua-luacheck - "A Lua syntax checker using luacheck. - -See URL `https://github.com/mpeterv/luacheck'." - :command ("luacheck" - "--formatter" "plain" - "--codes" ; Show warning codes - "--no-color" - (option-list "--std" flycheck-luacheck-standards) - (config-file "--config" flycheck-luacheckrc) - "--filename" source-original - ;; Read from standard input - "-") - :standard-input t - :error-patterns - ((warning line-start - (optional (file-name)) - ":" line ":" column - ": (" (id "W" (one-or-more digit)) ") " - (message) line-end) - (error line-start - (optional (file-name)) - ":" line ":" column ":" - ;; `luacheck' before 0.11.0 did not output codes for errors, hence - ;; the ID is optional here - (optional " (" (id "E" (one-or-more digit)) ") ") - (message) line-end)) - :modes lua-mode) - -(flycheck-define-checker lua - "A Lua syntax checker using the Lua compiler. - -See URL `http://www.lua.org/'." - :command ("luac" "-p" "-") - :standard-input t - :error-patterns - ((error line-start - ;; Skip the name of the luac executable. - (minimal-match (zero-or-more not-newline)) - ": stdin:" line ": " (message) line-end)) - :modes lua-mode) - -(flycheck-define-checker opam - "A Opam syntax and style checker using opam lint. - -See URL `https://opam.ocaml.org/doc/man/opam-lint.html'." - :command ("opam" "lint" "-") - :standard-input t - :error-patterns - ((error line-start ; syntax error - (one-or-more space) "error " (id ?2) - ": File format error" - (or (and " at line " line ", column " column ": " (message)) - (and ": " (message))) - line-end) - (error line-start - (one-or-more space) "error " (id ?3) - (minimal-match (zero-or-more not-newline)) - "at line " line ", column " column ": " (message) - line-end) - (error line-start - (one-or-more space) "error " (id (one-or-more num)) - ": " (message (one-or-more not-newline)) - line-end) - (warning line-start - (one-or-more space) "warning " (id (one-or-more num)) - ": " (message) - line-end)) - :error-filter - (lambda (errors) - (flycheck-increment-error-columns - (flycheck-fill-empty-line-numbers errors))) - :modes tuareg-opam-mode) - -(flycheck-def-option-var flycheck-perl-include-path nil perl - "A list of include directories for Perl. - -The value of this variable is a list of strings, where each -string is a directory to add to the include path of Perl. -Relative paths are relative to the file being checked." - :type '(repeat (directory :tag "Include directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.24")) - -(flycheck-def-option-var flycheck-perl-module-list nil perl - "A list of modules to use for Perl. - -The value of this variable is a list of strings, where each -string is a module to 'use' in Perl." - :type '(repeat :tag "Module") - :safe #'flycheck-string-list-p - :package-version '(flycheck . "32")) - -(flycheck-define-checker perl - "A Perl syntax checker using the Perl interpreter. - -See URL `https://www.perl.org'." - :command ("perl" "-w" "-c" - (option-list "-I" flycheck-perl-include-path) - (option-list "-M" flycheck-perl-module-list concat)) - :standard-input t - :error-patterns - ((error line-start (minimal-match (message)) - " at - line " line - (or "." (and ", " (zero-or-more not-newline))) line-end)) - :modes (perl-mode cperl-mode) - :next-checkers (perl-perlcritic)) - -(flycheck-def-option-var flycheck-perlcritic-severity nil perl-perlcritic - "The message severity for Perl Critic. - -The value of this variable is a severity level as integer, for -the `--severity' option to Perl Critic." - :type '(integer :tag "Severity level") - :safe #'integerp - :package-version '(flycheck . "0.18")) - -(flycheck-def-option-var flycheck-perlcritic-theme nil perl-perlcritic - "The theme expression for Perl Critic. - -The value of this variable is passed as the `--theme' option to -`Perl::Critic'. See the documentation of `Perl::Critic' for -details." - :type '(string :tag "Theme expression") - :safe #'stringp - :package-version '(flycheck . "32-csv")) - -(flycheck-def-config-file-var flycheck-perlcriticrc perl-perlcritic - ".perlcriticrc" - :safe #'stringp - :package-version '(flycheck . "26")) - -(flycheck-define-checker perl-perlcritic - "A Perl syntax checker using Perl::Critic. - -See URL `https://metacpan.org/pod/Perl::Critic'." - :command ("perlcritic" "--no-color" "--verbose" "%f/%l/%c/%s/%p/%m (%e)\n" - (config-file "--profile" flycheck-perlcriticrc) - (option "--severity" flycheck-perlcritic-severity nil - flycheck-option-int) - (option "--theme" flycheck-perlcritic-theme)) - :standard-input t - :error-patterns - ((info line-start - "STDIN/" line "/" column "/" (any "1") "/" - (id (one-or-more (not (any "/")))) "/" (message) - line-end) - (warning line-start - "STDIN/" line "/" column "/" (any "234") "/" - (id (one-or-more (not (any "/")))) "/" (message) - line-end) - (error line-start - "STDIN/" line "/" column "/" (any "5") "/" - (id (one-or-more (not (any "/")))) "/" (message) - line-end)) - :modes (cperl-mode perl-mode)) - -(flycheck-define-checker php - "A PHP syntax checker using the PHP command line interpreter. - -See URL `http://php.net/manual/en/features.commandline.php'." - :command ("php" "-l" "-d" "error_reporting=E_ALL" "-d" "display_errors=1" - "-d" "log_errors=0" source) - :error-patterns - ((error line-start (or "Parse" "Fatal" "syntax") " error" (any ":" ",") " " - (message) " in " (file-name) " on line " line line-end)) - :modes (php-mode php+-mode) - :next-checkers ((warning . php-phpmd) - (warning . php-phpcs))) - -(flycheck-def-option-var flycheck-phpmd-rulesets - '("cleancode" "codesize" "controversial" "design" "naming" "unusedcode") - php-phpmd - "The rule sets for PHP Mess Detector. - -Set default rule sets and custom rule set files. - -See section \"Using multiple rule sets\" in the PHP Mess Detector -manual at URL `https://phpmd.org/documentation/index.html'." - :type '(repeat :tag "rule sets" - (string :tag "A filename or rule set")) - :safe #'flycheck-string-list-p) - -(flycheck-define-checker php-phpmd - "A PHP style checker using PHP Mess Detector. - -See URL `https://phpmd.org/'." - :command ("phpmd" source "xml" - (eval (flycheck-option-comma-separated-list - flycheck-phpmd-rulesets))) - :error-parser flycheck-parse-phpmd - :modes (php-mode php+-mode) - :next-checkers (php-phpcs)) - -(flycheck-def-option-var flycheck-phpcs-standard nil php-phpcs - "The coding standard for PHP CodeSniffer. - -When nil, use the default standard from the global PHP -CodeSniffer configuration. When set to a string, pass the string -to PHP CodeSniffer which will interpret it as name as a standard, -or as path to a standard specification." - :type '(choice (const :tag "Default standard" nil) - (string :tag "Standard name or file")) - :safe #'stringp) - -(flycheck-define-checker php-phpcs - "A PHP style checker using PHP Code Sniffer. - -Needs PHP Code Sniffer 2.6 or newer. - -See URL `http://pear.php.net/package/PHP_CodeSniffer/'." - :command ("phpcs" "--report=checkstyle" - ;; Use -q flag to force quiet mode - ;; Quiet mode prevents errors from extra output when phpcs has - ;; been configured with show_progress enabled - "-q" - (option "--standard=" flycheck-phpcs-standard concat) - ;; Pass original file name to phpcs. We need to concat explicitly - ;; here, because phpcs really insists to get option and argument as - ;; a single command line argument :| - (eval (when (buffer-file-name) - (concat "--stdin-path=" (buffer-file-name)))) - ;; Read from standard input - "-") - :standard-input t - :error-parser flycheck-parse-checkstyle - :error-filter - (lambda (errors) - (flycheck-sanitize-errors - (flycheck-remove-error-file-names "STDIN" errors))) - :modes (php-mode php+-mode) - ;; phpcs seems to choke on empty standard input, hence skip phpcs if the - ;; buffer is empty, see https://github.com/flycheck/flycheck/issues/907 - :predicate (lambda () (not (flycheck-buffer-empty-p)))) - -(flycheck-define-checker processing - "Processing command line tool. - -See https://github.com/processing/processing/wiki/Command-Line" - :command ("processing-java" "--force" - ;; Don't change the order of these arguments, processing is pretty - ;; picky - (eval (concat "--sketch=" (file-name-directory (buffer-file-name)))) - (eval (concat "--output=" (flycheck-temp-dir-system))) - "--build") - :error-patterns - ((error line-start (file-name) ":" line ":" column - (zero-or-more (or digit ":")) (message) line-end)) - :modes processing-mode - ;; This syntax checker needs a file name - :predicate (lambda () (buffer-file-name))) - -(defun flycheck-proselint-parse-errors (output checker buffer) - "Parse proselint json output errors from OUTPUT. - -CHECKER and BUFFER denoted the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -See URL `http://proselint.com/' for more information about proselint." - (mapcar (lambda (err) - (let-alist err - (flycheck-error-new-at - .line - .column - (pcase .severity - (`"suggestion" 'info) - (`"warning" 'warning) - (`"error" 'error) - ;; Default to error - (_ 'error)) - .message - :id .check - :buffer buffer - :checker checker))) - (let-alist (car (flycheck-parse-json output)) - .data.errors))) - -(flycheck-define-checker proselint - "Flycheck checker using Proselint. - -See URL `http://proselint.com/'." - :command ("proselint" "--json" "-") - :standard-input t - :error-parser flycheck-proselint-parse-errors - :modes (text-mode markdown-mode gfm-mode message-mode org-mode)) - -(flycheck-define-checker protobuf-protoc - "A protobuf syntax checker using the protoc compiler. - -See URL `https://developers.google.com/protocol-buffers/'." - :command ("protoc" "--error_format" "gcc" - (eval (concat "--java_out=" (flycheck-temp-dir-system))) - ;; Add the file directory of protobuf path to resolve import - ;; directives - (eval (concat "--proto_path=" - (file-name-directory (buffer-file-name)))) - source-inplace) - :error-patterns - ((info line-start (file-name) ":" line ":" column - ": note: " (message) line-end) - (error line-start (file-name) ":" line ":" column - ": " (message) line-end) - (error line-start - (message "In file included from") " " (file-name) ":" line ":" - column ":" line-end)) - :modes protobuf-mode - :predicate (lambda () (buffer-file-name))) - -(flycheck-define-checker pug - "A Pug syntax checker using the pug compiler. - -See URL `https://pugjs.org/'." - :command ("pug" "-p" (eval (expand-file-name (buffer-file-name)))) - :standard-input t - :error-patterns - ;; errors with includes/extends (e.g. missing files) - ((error "Error: " (message) (zero-or-more not-newline) "\n" - (zero-or-more not-newline) "at " - (zero-or-more not-newline) " line " line) - ;; syntax/runtime errors (e.g. type errors, bad indentation, etc.) - (error line-start - (optional "Type") "Error: " (file-name) ":" - line (optional ":" column) - (zero-or-more not-newline) "\n" - (one-or-more (or (zero-or-more not-newline) "|" - (zero-or-more not-newline) "\n") - (zero-or-more "-") (zero-or-more not-newline) "|" - (zero-or-more not-newline) "\n") - (zero-or-more not-newline) "\n" - (one-or-more - (zero-or-more not-newline) "|" - (zero-or-more not-newline) "\n") - (zero-or-more not-newline) "\n" - (message) - line-end)) - :modes pug-mode) - -(flycheck-define-checker puppet-parser - "A Puppet DSL syntax checker using puppet's own parser. - -See URL `https://puppet.com/'." - :command ("puppet" "parser" "validate" "--color=false") - :standard-input t - :error-patterns - ( - ;; Patterns for Puppet 4 - (error line-start "Error: Could not parse for environment " - (one-or-more (in "a-z" "0-9" "_")) ":" - (message) "(line: " line ", column: " column ")" line-end) - ;; Errors from Puppet < 4 - (error line-start "Error: Could not parse for environment " - (one-or-more (in "a-z" "0-9" "_")) ":" - (message (minimal-match (one-or-more anything))) - " at line " line line-end) - (error line-start - ;; Skip over the path of the Puppet executable - (minimal-match (zero-or-more not-newline)) - ": Could not parse for environment " (one-or-more word) - ": " (message (minimal-match (zero-or-more anything))) - " at " (file-name "/" (zero-or-more not-newline)) ":" line line-end)) - :modes puppet-mode - :next-checkers ((warning . puppet-lint))) - -(flycheck-def-config-file-var flycheck-puppet-lint-rc puppet-lint - ".puppet-lint.rc" - :safe #'stringp - :package-version '(flycheck . "26")) - -(flycheck-def-option-var flycheck-puppet-lint-disabled-checks nil puppet-lint - "Disabled checkers for `puppet-lint'. - -The value of this variable is a list of strings, where each -string is the name of a check to disable (e.g. \"80chars\" or -\"double_quoted_strings\"). - -See URL `http://puppet-lint.com/checks/' for a list of all checks -and their names." - :type '(repeat (string :tag "Check Name")) - :package-version '(flycheck . "26")) - -(defun flycheck-puppet-lint-disabled-arg-name (check) - "Create an argument to disable a puppetlint CHECK." - (concat "--no-" check "-check")) - -(flycheck-define-checker puppet-lint - "A Puppet DSL style checker using puppet-lint. - -See URL `http://puppet-lint.com/'." - ;; We must check the original file, because Puppetlint is quite picky on the - ;; names of files and there place in the directory structure, to comply with - ;; Puppet's autoload directory layout. For instance, a class foo::bar is - ;; required to be in a file foo/bar.pp. Any other place, such as a Flycheck - ;; temporary file will cause an error. - :command ("puppet-lint" - (config-file "--config" flycheck-puppet-lint-rc) - "--log-format" - "%{path}:%{line}:%{kind}: %{message} (%{check})" - (option-list "" flycheck-puppet-lint-disabled-checks concat - flycheck-puppet-lint-disabled-arg-name) - source-original) - :error-patterns - ((warning line-start (file-name) ":" line ":warning: " (message) line-end) - (error line-start (file-name) ":" line ":error: " (message) line-end)) - :modes puppet-mode - ;; Since we check the original file, we can only use this syntax checker if - ;; the buffer is actually linked to a file, and if it is not modified. - :predicate flycheck-buffer-saved-p) - -(defun flycheck-python-find-module (checker module) - "Check if a Python MODULE is available. -CHECKER's executable is assumed to be a Python REPL." - (-when-let* ((py (flycheck-find-checker-executable checker)) - (script (concat "import sys; sys.path.pop(0);" - (format "import %s; print(%s.__file__)" - module module)))) - (with-temp-buffer - (and (eq (ignore-errors (call-process py nil t nil "-c" script)) 0) - (string-trim (buffer-string)))))) - -(defun flycheck-python-needs-module-p (checker) - "Determines whether CHECKER needs to be invoked through Python. -Previous versions of Flycheck called pylint and flake8 directly; -this check ensures that we don't break existing code." - (not (string-match-p (rx (or "pylint" "flake8") - (or "-script.pyw" ".exe" ".bat" "") - eos) - (flycheck-checker-executable checker)))) - -(defun flycheck-python-verify-module (checker module) - "Verify that a Python MODULE is available. -Return nil if CHECKER's executable is not a Python REPL. This -function's is suitable for a checker's :verify." - (when (flycheck-python-needs-module-p checker) - (let ((mod-path (flycheck-python-find-module checker module))) - (list (flycheck-verification-result-new - :label (format "`%s' module" module) - :message (if mod-path (format "Found at %S" mod-path) "Missing") - :face (if mod-path 'success '(bold error))))))) - -(defun flycheck-python-module-args (checker module-name) - "Compute arguments to pass to CHECKER's executable to run MODULE-NAME. -Return nil if CHECKER's executable is not a Python REPL. -Otherwise, return a list starting with -c (-m is not enough -because it adds the current directory to Python's path)." - (when (flycheck-python-needs-module-p checker) - `("-c" ,(concat "import sys,runpy;sys.path.pop(0);" - (format "runpy.run_module(%S)" module-name))))) - -(flycheck-def-config-file-var flycheck-flake8rc python-flake8 ".flake8rc" - :safe #'stringp) - -(flycheck-def-option-var flycheck-flake8-error-level-alist - '(("^E9.*$" . error) ; Syntax errors from pep8 - ("^F82.*$" . error) ; undefined variables from pyflakes - ("^F83.*$" . error) ; Duplicate arguments from flake8 - ("^D.*$" . info) ; Docstring issues from flake8-pep257 - ("^N.*$" . info) ; Naming issues from pep8-naming - ) - python-flake8 - "An alist mapping flake8 error IDs to Flycheck error levels. - -Each item in this list is a cons cell `(PATTERN . LEVEL)' where -PATTERN is a regular expression matched against the error ID, and -LEVEL is a Flycheck error level symbol. - -Each PATTERN is matched in the order of appearance in this list -against the error ID. If it matches the ID, the level of the -corresponding error is set to LEVEL. An error that is not -matched by any PATTERN defaults to warning level. - -The default value of this option matches errors from flake8 -itself and from the following flake8 plugins: - -- pep8-naming -- flake8-pep257 - -You may add your own mappings to this option in order to support -further flake8 plugins." - :type '(repeat (cons (regexp :tag "Error ID pattern") - (symbol :tag "Error level"))) - :package-version '(flycheck . "0.22")) - -(flycheck-def-option-var flycheck-flake8-maximum-complexity nil python-flake8 - "The maximum McCabe complexity of methods. - -If nil, do not check the complexity of methods. If set to an -integer, report any complexity greater than the value of this -variable as warning. - -If set to an integer, this variable overrules any similar setting -in the configuration file denoted by `flycheck-flake8rc'." - :type '(choice (const :tag "Do not check McCabe complexity" nil) - (integer :tag "Maximum complexity")) - :safe #'integerp) - -(flycheck-def-option-var flycheck-flake8-maximum-line-length nil python-flake8 - "The maximum length of lines. - -If set to an integer, the value of this variable denotes the -maximum length of lines, overruling any similar setting in the -configuration file denoted by `flycheck-flake8rc'. An error will -be reported for any line longer than the value of this variable. - -If set to nil, use the maximum line length from the configuration -file denoted by `flycheck-flake8rc', or the PEP 8 recommendation -of 79 characters if there is no configuration with this setting." - :type '(choice (const :tag "Default value") - (integer :tag "Maximum line length in characters")) - :safe #'integerp) - -(defun flycheck-flake8-fix-error-level (err) - "Fix the error level of ERR. - -Update the error level of ERR according to -`flycheck-flake8-error-level-alist'." - (pcase-dolist (`(,pattern . ,level) flycheck-flake8-error-level-alist) - (when (string-match-p pattern (flycheck-error-id err)) - (setf (flycheck-error-level err) level))) - err) - -(flycheck-define-checker python-flake8 - "A Python syntax and style checker using Flake8. - -Requires Flake8 3.0 or newer. See URL -`https://flake8.readthedocs.io/'." - ;; Not calling flake8 directly makes it easier to switch between different - ;; Python versions; see https://github.com/flycheck/flycheck/issues/1055. - :command ("python" - (eval (flycheck-python-module-args 'python-flake8 "flake8")) - "--format=default" - (config-file "--config" flycheck-flake8rc) - (option "--max-complexity" flycheck-flake8-maximum-complexity nil - flycheck-option-int) - (option "--max-line-length" flycheck-flake8-maximum-line-length nil - flycheck-option-int) - "-") - :standard-input t - :error-filter (lambda (errors) - (let ((errors (flycheck-sanitize-errors errors))) - (seq-map #'flycheck-flake8-fix-error-level errors))) - :error-patterns - ((warning line-start - "stdin:" line ":" (optional column ":") " " - (id (one-or-more (any alpha)) (one-or-more digit)) " " - (message (one-or-more not-newline)) - line-end)) - :enabled (lambda () - (or (not (flycheck-python-needs-module-p 'python-flake8)) - (flycheck-python-find-module 'python-flake8 "flake8"))) - :verify (lambda (_) (flycheck-python-verify-module 'python-flake8 "flake8")) - :modes python-mode) - -(flycheck-def-config-file-var flycheck-pylintrc python-pylint ".pylintrc" - :safe #'stringp) - -(flycheck-def-option-var flycheck-pylint-use-symbolic-id t python-pylint - "Whether to use pylint message symbols or message codes. - -A pylint message has both an opaque identifying code (such as `F0401') and a -more meaningful symbolic code (such as `import-error'). This option governs -which should be used and reported to the user." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.25")) - -(flycheck-define-checker python-pylint - "A Python syntax and style checker using Pylint. - -This syntax checker requires Pylint 1.0 or newer. - -See URL `https://www.pylint.org/'." - ;; --reports=n disables the scoring report. - ;; Not calling pylint directly makes it easier to switch between different - ;; Python versions; see https://github.com/flycheck/flycheck/issues/1055. - :command ("python" - (eval (flycheck-python-module-args 'python-pylint "pylint")) - "--reports=n" - "--output-format=text" - (eval (if flycheck-pylint-use-symbolic-id - "--msg-template={path}:{line}:{column}:{C}:{symbol}:{msg}" - "--msg-template={path}:{line}:{column}:{C}:{msg_id}:{msg}")) - (config-file "--rcfile=" flycheck-pylintrc concat) - ;; Need `source-inplace' for relative imports (e.g. `from .foo - ;; import bar'), see https://github.com/flycheck/flycheck/issues/280 - source-inplace) - :error-filter - (lambda (errors) - (flycheck-sanitize-errors (flycheck-increment-error-columns errors))) - :error-patterns - ((error line-start (file-name) ":" line ":" column ":" - (or "E" "F") ":" - (id (one-or-more (not (any ":")))) ":" - (message) line-end) - (warning line-start (file-name) ":" line ":" column ":" - (or "W" "R") ":" - (id (one-or-more (not (any ":")))) ":" - (message) line-end) - (info line-start (file-name) ":" line ":" column ":" - (or "C" "I") ":" - (id (one-or-more (not (any ":")))) ":" - (message) line-end)) - :enabled (lambda () - (or (not (flycheck-python-needs-module-p 'python-pylint)) - (flycheck-python-find-module 'python-pylint "pylint"))) - :verify (lambda (_) (flycheck-python-verify-module 'python-pylint "pylint")) - :modes python-mode) - -(flycheck-define-checker python-pycompile - "A Python syntax checker using Python's builtin compiler. - -See URL `https://docs.python.org/3.4/library/py_compile.html'." - :command ("python" "-m" "py_compile" source) - :error-patterns - ;; Python 2.7 - ((error line-start " File \"" (file-name) "\", line " line "\n" - (>= 2 (zero-or-more not-newline) "\n") - "SyntaxError: " (message) line-end) - (error line-start "Sorry: IndentationError: " - (message) "(" (file-name) ", line " line ")" - line-end) - ;; 2.6 - (error line-start "SyntaxError: ('" (message (one-or-more (not (any "'")))) - "', ('" (file-name (one-or-more (not (any "'")))) "', " - line ", " column ", " (one-or-more not-newline) line-end)) - :modes python-mode) - -(flycheck-def-config-file-var flycheck-python-mypy-ini python-mypy - "mypy.ini" - :safe #'stringp) - -(flycheck-def-option-var flycheck-python-mypy-cache-dir nil python-mypy - "Directory used to write .mypy_cache directories." - :safe #'stringp - :type '(choice - (const :tag "Write to the working directory" nil) - (const :tag "Never write .mypy_cache directories" null-device) - (string :tag "Path")) - :package-version '(flycheck . "32")) - -(flycheck-define-checker python-mypy - "Mypy syntax and type checker. Requires mypy>=0.580. - -See URL `http://mypy-lang.org/'." - :command ("mypy" - "--show-column-numbers" - (config-file "--config-file" flycheck-python-mypy-ini) - (option "--cache-dir" flycheck-python-mypy-cache-dir) - source-original) - :error-patterns - ((error line-start (file-name) ":" line (optional ":" column) - ": error:" (message) line-end) - (warning line-start (file-name) ":" line (optional ":" column) - ": warning:" (message) line-end)) - :modes python-mode - ;; Ensure the file is saved, to work around - ;; https://github.com/python/mypy/issues/4746. - :predicate flycheck-buffer-saved-p - :next-checkers (python-flake8)) - -(flycheck-def-option-var flycheck-lintr-caching t r-lintr - "Whether to enable caching in lintr. - -By default, lintr caches all expressions in a file and re-checks -only those that have changed. Setting this option to nil -disables caching in case there are problems." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.23")) - -(flycheck-def-option-var flycheck-lintr-linters "default_linters" r-lintr - "Linters to use with lintr. - -The value of this variable is a string containing an R -expression, which selects linters for lintr." - :type 'string - :risky t - :package-version '(flycheck . "0.23")) - -(defun flycheck-r-has-lintr (R) - "Whether R has installed the `lintr' library." - (with-temp-buffer - (let ((process-environment (append '("LC_ALL=C") process-environment))) - (call-process R nil t nil - "--slave" "--restore" "--no-save" "-e" - "library('lintr')") - (goto-char (point-min)) - (not (re-search-forward "there is no package called 'lintr'" - nil 'no-error))))) - -(flycheck-define-checker r-lintr - "An R style and syntax checker using the lintr package. - -See URL `https://github.com/jimhester/lintr'." - :command ("R" "--slave" "--restore" "--no-save" "-e" - (eval (concat - "library(lintr);" - "try(lint(commandArgs(TRUE)" - ", cache=" (if flycheck-lintr-caching "TRUE" "FALSE") - ", " flycheck-lintr-linters - "))")) - "--args" source) - :error-patterns - ((info line-start (file-name) ":" line ":" column ": style: " (message) - line-end) - (warning line-start (file-name) ":" line ":" column ": warning: " (message) - line-end) - (error line-start (file-name) ":" line ":" column ": error: " (message) - line-end)) - :modes (ess-mode ess-r-mode) - :predicate - ;; Don't check ESS files which do not contain R, and make sure that lintr is - ;; actually available - (lambda () - (and (equal ess-language "S") - (flycheck-r-has-lintr (flycheck-checker-executable 'r-lintr)))) - :verify (lambda (checker) - (let ((has-lintr (flycheck-r-has-lintr - (flycheck-checker-executable checker)))) - (list - (flycheck-verification-result-new - :label "lintr library" - :message (if has-lintr "present" "missing") - :face (if has-lintr 'success '(bold error))))))) - -(defun flycheck-racket-has-expand-p (checker) - "Whether the executable of CHECKER provides the `expand' command." - (let ((raco (flycheck-find-checker-executable checker))) - (when raco - (with-temp-buffer - (call-process raco nil t nil "expand") - (goto-char (point-min)) - (not (looking-at-p (rx bol (1+ not-newline) - "Unrecognized command: expand" - eol))))))) - -(flycheck-define-checker racket - "A Racket syntax checker with `raco expand'. - -The `compiler-lib' racket package is required for this syntax -checker. - -See URL `https://racket-lang.org/'." - :command ("raco" "expand" source-inplace) - :predicate - (lambda () - (and (or (not (eq major-mode 'scheme-mode)) - ;; In `scheme-mode' we must check the current Scheme implementation - ;; being used - (and (boundp 'geiser-impl--implementation) - (eq geiser-impl--implementation 'racket))) - (flycheck-racket-has-expand-p 'racket))) - :verify - (lambda (checker) - (let ((has-expand (flycheck-racket-has-expand-p checker)) - (in-scheme-mode (eq major-mode 'scheme-mode)) - (geiser-impl (bound-and-true-p geiser-impl--implementation))) - (list - (flycheck-verification-result-new - :label "compiler-lib package" - :message (if has-expand "present" "missing") - :face (if has-expand 'success '(bold error))) - (flycheck-verification-result-new - :label "Geiser Implementation" - :message (cond - ((not in-scheme-mode) "Using Racket Mode") - ((eq geiser-impl 'racket) "Racket") - (geiser-impl (format "Other: %s" geiser-impl)) - (t "Geiser not active")) - :face (cond - ((or (not in-scheme-mode) (eq geiser-impl 'racket)) 'success) - (t '(bold error))))))) - :error-filter - (lambda (errors) - (flycheck-sanitize-errors - (flycheck-increment-error-columns - (seq-remove - (lambda (err) - (string= - "/usr/share/racket/pkgs/compiler-lib/compiler/commands/expand.rkt" - (flycheck-error-filename err))) - errors)))) - :error-patterns - ((error line-start (zero-or-more space) - (file-name) ":" line ":" column ":" (message) line-end)) - :modes (racket-mode scheme-mode)) - -(flycheck-define-checker rpm-rpmlint - "A RPM SPEC file syntax checker using rpmlint. - -See URL `https://sourceforge.net/projects/rpmlint/'." - :command ("rpmlint" source) - :error-patterns - ((error line-start - (file-name) ":" (optional line ":") " E: " (message) - line-end) - (warning line-start - (file-name) ":" (optional line ":") " W: " (message) - line-end)) - :error-filter - ;; Add fake line numbers if they are missing in the lint output - (lambda (errors) - (dolist (err errors) - (unless (flycheck-error-line err) - (setf (flycheck-error-line err) 1))) - errors) - :error-explainer - (lambda (error) - (-when-let* ((error-message (flycheck-error-message error)) - (message-id (save-match-data - (string-match "\\([^ ]+\\)" error-message) - (match-string 1 error-message)))) - (with-output-to-string - (call-process "rpmlint" nil standard-output nil "-I" message-id)))) - :modes (sh-mode rpm-spec-mode) - :predicate (lambda () (or (not (eq major-mode 'sh-mode)) - ;; In `sh-mode', we need the proper shell - (eq sh-shell 'rpm)))) - -(flycheck-def-config-file-var flycheck-markdown-markdownlint-cli-config - markdown-markdownlint-cli nil - :safe #'stringp - :package-version '(flycheck . "32")) - -(flycheck-define-checker markdown-markdownlint-cli - "Markdown checker using markdownlint-cli. - -See URL `https://github.com/igorshubovych/markdownlint-cli'." - :command ("markdownlint" - (config-file "--config" flycheck-markdown-markdownlint-cli-config) - source) - :error-patterns - ((error line-start - (file-name) ": " line ": " (id (one-or-more (not (any space)))) - " " (message) line-end)) - :error-filter - (lambda (errors) - (flycheck-sanitize-errors - (flycheck-remove-error-file-names "(string)" errors))) - :modes (markdown-mode gfm-mode)) - -(flycheck-def-option-var flycheck-markdown-mdl-rules nil markdown-mdl - "Rules to enable for mdl. - -The value of this variable is a list of strings each of which is -the name of a rule to enable. - -By default all rules are enabled. - -See URL `https://git.io/vhi2t'." - :type '(repeat :tag "Enabled rules" - (string :tag "rule name")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "27")) - -(flycheck-def-option-var flycheck-markdown-mdl-tags nil markdown-mdl - "Rule tags to enable for mdl. - -The value of this variable is a list of strings each of which is -the name of a rule tag. Only rules with these tags are enabled. - -By default all rules are enabled. - -See URL `https://git.io/vhi2t'." - :type '(repeat :tag "Enabled tags" - (string :tag "tag name")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "27")) - -(flycheck-def-config-file-var flycheck-markdown-mdl-style markdown-mdl nil - :safe #'stringp - :package-version '(flycheck . "27")) - -(flycheck-define-checker markdown-mdl - "Markdown checker using mdl. - -See URL `https://github.com/markdownlint/markdownlint'." - :command ("mdl" - (config-file "--style" flycheck-markdown-mdl-style) - (option "--tags=" flycheck-markdown-mdl-rules concat - flycheck-option-comma-separated-list) - (option "--rules=" flycheck-markdown-mdl-rules concat - flycheck-option-comma-separated-list)) - :standard-input t - :error-patterns - ((error line-start - (file-name) ":" line ": " (id (one-or-more alnum)) " " (message) - line-end)) - :error-filter - (lambda (errors) - (flycheck-sanitize-errors - (flycheck-remove-error-file-names "(stdin)" errors))) - :modes (markdown-mode gfm-mode)) - -(flycheck-define-checker nix - "Nix checker using nix-instantiate. - -See URL `https://nixos.org/nix/manual/#sec-nix-instantiate'." - :command ("nix-instantiate" "--parse" "-") - :standard-input t - :error-patterns - ((error line-start - "error: " (message) " at " (file-name) ":" line ":" column - line-end)) - :error-filter - (lambda (errors) - (flycheck-sanitize-errors - (flycheck-remove-error-file-names "(string)" errors))) - :next-checkers ((warning . nix-linter)) - :modes nix-mode) - -(defun flycheck-parse-nix-linter (output checker buffer) - "Parse nix-linter warnings from JSON OUTPUT. - -CHECKER and BUFFER denote the CHECKER that returned OUTPUT and -the BUFFER that was checked respectively. - -See URL `https://github.com/Synthetica9/nix-linter' for more -information about nix-linter." - (mapcar (lambda (err) - (let-alist err - (flycheck-error-new-at - .pos.spanBegin.sourceLine - .pos.spanBegin.sourceColumn - 'warning - .description - :id .offense - :checker checker - :buffer buffer - :filename (buffer-file-name buffer)))) - (flycheck-parse-json output))) - -(flycheck-define-checker nix-linter - "Nix checker using nix-linter. - -See URL `https://github.com/Synthetica9/nix-linter'." - :command ("nix-linter" "--json-stream" "-") - :standard-input t - :error-parser flycheck-parse-nix-linter - :modes nix-mode) - -(defun flycheck-locate-sphinx-source-directory () - "Locate the Sphinx source directory for the current buffer. - -Return the source directory, or nil, if the current buffer is not -part of a Sphinx project." - (-when-let* ((filename (buffer-file-name)) - (dir (locate-dominating-file filename "conf.py"))) - (expand-file-name dir))) - -(flycheck-define-checker rst - "A ReStructuredText (RST) syntax checker using Docutils. - -See URL `http://docutils.sourceforge.net/'." - ;; We need to use source-inplace to properly resolve relative paths in - ;; include:: directives - :command ("rst2pseudoxml.py" "--report=2" "--halt=5" - ;; Read from standard input and throw output away - "-" null-device) - :standard-input t - :error-patterns - ((warning line-start "<stdin>:" line ": (WARNING/2) " (message) line-end) - (error line-start "<stdin>:" line - ": (" (or "ERROR/3" "SEVERE/4") ") " - (message) line-end)) - :modes rst-mode) - -(flycheck-def-option-var flycheck-sphinx-warn-on-missing-references t rst-sphinx - "Whether to warn about missing references in Sphinx. - -When non-nil (the default), warn about all missing references in -Sphinx via `-n'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.17")) - -(flycheck-define-checker rst-sphinx - "A ReStructuredText (RST) syntax checker using Sphinx. - -Requires Sphinx 1.2 or newer. See URL `http://sphinx-doc.org'." - :command ("sphinx-build" "-b" "pseudoxml" - "-q" "-N" ; Reduced output and no colors - (option-flag "-n" flycheck-sphinx-warn-on-missing-references) - (eval (flycheck-locate-sphinx-source-directory)) - temporary-directory ; Redirect the output to a temporary - ; directory - source-original) ; Sphinx needs the original document - :error-patterns - ((warning line-start (file-name) ":" line ": WARNING: " (message) line-end) - (error line-start - (file-name) ":" line - ": " (or "ERROR" "SEVERE") ": " - (message) line-end)) - :modes rst-mode - :predicate (lambda () (and (flycheck-buffer-saved-p) - (flycheck-locate-sphinx-source-directory)))) - -(defun flycheck-ruby--find-project-root (_checker) - "Compute an appropriate working-directory for flycheck-ruby. - -This is either a parent directory containing a Gemfile, or nil." - (and - buffer-file-name - (locate-dominating-file buffer-file-name "Gemfile"))) - -(flycheck-def-config-file-var flycheck-rubocoprc ruby-rubocop ".rubocop.yml" - :safe #'stringp) - -(flycheck-def-option-var flycheck-rubocop-lint-only nil ruby-rubocop - "Whether to only report code issues in Rubocop. - -When non-nil, only report code issues in Rubocop, via `--lint'. -Otherwise report style issues as well." - :safe #'booleanp - :type 'boolean - :package-version '(flycheck . "0.16")) - -(flycheck-define-checker ruby-rubocop - "A Ruby syntax and style checker using the RuboCop tool. - -You need at least RuboCop 0.34 for this syntax checker. - -See URL `http://batsov.com/rubocop/'." - :command ("rubocop" - "--display-cop-names" - "--force-exclusion" - "--format" "emacs" - ;; Explicitly disable caching to prevent Rubocop 0.35.1 and earlier - ;; from caching standard input. Later versions of Rubocop - ;; automatically disable caching with --stdin, see - ;; https://github.com/flycheck/flycheck/issues/844 and - ;; https://github.com/bbatsov/rubocop/issues/2576 - "--cache" "false" - (config-file "--config" flycheck-rubocoprc) - (option-flag "--lint" flycheck-rubocop-lint-only) - ;; Rubocop takes the original file name as argument when reading - ;; from standard input - "--stdin" source-original) - :standard-input t - :working-directory flycheck-ruby--find-project-root - :error-patterns - ((info line-start (file-name) ":" line ":" column ": C: " - (optional (id (one-or-more (not (any ":")))) ": ") (message) line-end) - (warning line-start (file-name) ":" line ":" column ": W: " - (optional (id (one-or-more (not (any ":")))) ": ") (message) - line-end) - (error line-start (file-name) ":" line ":" column ": " (or "E" "F") ": " - (optional (id (one-or-more (not (any ":")))) ": ") (message) - line-end)) - :modes (enh-ruby-mode ruby-mode) - :next-checkers ((warning . ruby-reek) - (warning . ruby-rubylint))) - -;; Default to `nil' to let Reek find its configuration file by itself -(flycheck-def-config-file-var flycheck-reekrc ruby-reek nil - :safe #'string-or-null-p - :package-version '(flycheck . "30")) - -(flycheck-define-checker ruby-reek - "A Ruby smell checker using reek. - -See URL `https://github.com/troessner/reek'." - :command ("reek" "--format" "json" - (config-file "--config" flycheck-reekrc) - source) - :error-parser flycheck-parse-reek - :modes (enh-ruby-mode ruby-mode) - :next-checkers ((warning . ruby-rubylint))) - -;; Default to `nil' to let Rubylint find its configuration file by itself, and -;; to maintain backwards compatibility with older Rubylint and Flycheck releases -(flycheck-def-config-file-var flycheck-rubylintrc ruby-rubylint nil - :safe #'stringp) - -(flycheck-define-checker ruby-rubylint - "A Ruby syntax and code analysis checker using ruby-lint. - -Requires ruby-lint 2.0.2 or newer. See URL -`https://github.com/YorickPeterse/ruby-lint'." - :command ("ruby-lint" "--presenter=syntastic" - (config-file "--config" flycheck-rubylintrc) - source) - ;; Ruby Lint can't read from standard input - :error-patterns - ((info line-start - (file-name) ":I:" line ":" column ": " (message) line-end) - (warning line-start - (file-name) ":W:" line ":" column ": " (message) line-end) - (error line-start - (file-name) ":E:" line ":" column ": " (message) line-end)) - :modes (enh-ruby-mode ruby-mode)) - -(flycheck-define-checker ruby - "A Ruby syntax checker using the standard Ruby interpreter. - -Please note that the output of different Ruby versions and -implementations varies wildly. This syntax checker supports -current versions of MRI and JRuby, but may break when used with -other implementations or future versions of these -implementations. - -Please consider using `ruby-rubocop' or `ruby-reek' instead. - -See URL `https://www.ruby-lang.org/'." - :command ("ruby" "-w" "-c") - :standard-input t - :error-patterns - ;; These patterns support output from JRuby, too, to deal with RVM or Rbenv - ((error line-start "SyntaxError in -:" line ": " (message) line-end) - (warning line-start "-:" line ":" (optional column ":") - " warning: " (message) line-end) - (error line-start "-:" line ": " (message) line-end)) - :modes (enh-ruby-mode ruby-mode) - :next-checkers ((warning . ruby-rubylint))) - -(flycheck-define-checker ruby-jruby - "A Ruby syntax checker using the JRuby interpreter. - -This syntax checker is very primitive, and may break on future -versions of JRuby. - -Please consider using `ruby-rubocop' or `ruby-rubylint' instead. - -See URL `http://jruby.org/'." - :command ("jruby" "-w" "-c") - :standard-input t - :error-patterns - ((error line-start "SyntaxError in -:" line ": " (message) line-end) - (warning line-start "-:" line ": warning: " (message) line-end) - (error line-start "-:" line ": " (message) line-end)) - :modes (enh-ruby-mode ruby-mode) - :next-checkers ((warning . ruby-rubylint))) - -(flycheck-def-args-var flycheck-cargo-check-args (rust-cargo) - :package-version '(flycheck . "32")) - -(flycheck-def-args-var flycheck-rust-args (rust) - :package-version '(flycheck . "0.24")) - -(flycheck-def-option-var flycheck-rust-check-tests t (rust-cargo rust) - "Whether to check test code in Rust. - -For the `rust' checker: When non-nil, `rustc' is passed the -`--test' flag, which will check any code marked with the -`#[cfg(test)]' attribute and any functions marked with -`#[test]'. Otherwise, `rustc' is not passed `--test' and test -code will not be checked. Skipping `--test' is necessary when -using `#![no_std]', because compiling the test runner requires -`std'. - -For the `rust-cargo' checker: When non-nil, calls `cargo test ---no-run' instead of `cargo check'." - :type 'boolean - :safe #'booleanp - :package-version '("flycheck" . "0.19")) - -(flycheck-def-option-var flycheck-rust-crate-root nil rust - "A path to the crate root for the current buffer. - -The value of this variable is either a string with the path to -the crate root for the current buffer, or nil if the current buffer -is a crate. A relative path is relative to the current buffer. - -If this variable is non nil the current buffer will only be checked -if it is not modified, i.e. after it has been saved." - :type 'string - :package-version '(flycheck . "0.20") - :safe #'stringp) -(make-variable-buffer-local 'flycheck-rust-crate-root) - -(flycheck-def-option-var flycheck-rust-crate-type "lib" (rust-cargo rust) - "The type of the Rust Crate to check. - -For `rust-cargo', the value should be a string denoting the -target type passed to Cargo. See -`flycheck-rust-valid-crate-type-p' for the list of allowed -values. - -For `rust', the value should be a string denoting the crate type -for the `--crate-type' flag of rustc." - :type '(choice (const :tag "nil (rust/rust-cargo)" nil) - (const :tag "lib (rust/rust-cargo)" "lib") - (const :tag "bin (rust/rust-cargo)" "bin") - (const :tag "example (rust-cargo)" "example") - (const :tag "test (rust-cargo)" "test") - (const :tag "bench (rust-cargo)" "bench") - (const :tag "rlib (rust)" "rlib") - (const :tag "dylib (rust)" "dylib") - (const :tag "cdylib (rust)" "cdylib") - (const :tag "staticlib (rust)" "staticlib") - (const :tag "metadata (rust)" "metadata")) - :safe #'stringp - :package-version '(flycheck . "0.20")) -(make-variable-buffer-local 'flycheck-rust-crate-type) - -(flycheck-def-option-var flycheck-rust-binary-name nil rust-cargo - "The name of the binary to pass to `cargo check --CRATE-TYPE'. - -The value of this variable is a string denoting the name of the -target to check: usually the name of the crate, or the name of -one of the files under `src/bin', `tests', `examples' or -`benches'. - -This always requires a non-nil value, unless -`flycheck-rust-crate-type' is `lib' or nil, in which case it is -ignored." - :type 'string - :safe #'stringp - :package-version '(flycheck . "28")) -(make-variable-buffer-local 'flycheck-rust-binary-name) - -(flycheck-def-option-var flycheck-rust-features nil rust-cargo - "List of features to activate during build or check. - -The value of this variable is a list of strings denoting features -that will be activated to build the target to check. Features will -be passed to `cargo check --features=FEATURES'." - :type '(repeat :tag "Features to activate" - (string :tag "Feature")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "32")) -(make-variable-buffer-local 'flycheck-rust-features) - -(flycheck-def-option-var flycheck-rust-library-path nil rust - "A list of library directories for Rust. - -The value of this variable is a list of strings, where each -string is a directory to add to the library path of Rust. -Relative paths are relative to the file being checked." - :type '(repeat (directory :tag "Library directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.18")) - -(defun flycheck-rust-error-explainer (error) - "Return an explanation text for the given `flycheck-error' ERROR." - (-when-let (error-code (flycheck-error-id error)) - (with-output-to-string - (call-process "rustc" nil standard-output nil "--explain" error-code)))) - -(defun flycheck-rust-error-filter (errors) - "Filter ERRORS from rustc output that have no explanatory value." - (seq-remove - (lambda (err) - (or - ;; Macro errors emit a diagnostic in a phony file, - ;; e.g. "<println macros>". - (-when-let (filename (flycheck-error-filename err)) - (string-match-p (rx "macros>" line-end) filename)) - ;; Redundant message giving the number of failed errors - (-when-let (msg (flycheck-error-message err)) - (string-match-p - (rx - (or (: "aborting due to " (optional (one-or-more num) " ") - "previous error") - (: "For more information about this error, try `rustc --explain " - (one-or-more alnum) "`."))) - msg)))) - errors)) - -(defun flycheck-rust-manifest-directory () - "Return the nearest directory holding the Cargo manifest. - -Return the nearest directory containing the `Cargo.toml' manifest -file, starting from the current buffer and using -`locate-dominating-file'. Return nil if there is no such file, -or if the current buffer has no file name." - (and buffer-file-name - (locate-dominating-file buffer-file-name "Cargo.toml"))) - -(defun flycheck-rust-cargo-metadata () - "Run 'cargo metadata' and return the result as parsed JSON object." - (car (flycheck-parse-json - (with-output-to-string - (call-process "cargo" nil standard-output nil - "metadata" "--no-deps" "--format-version" "1"))))) - -(defun flycheck-rust-cargo-workspace-root () - "Return the path to the workspace root of a Rust Cargo project. - -Return nil if the workspace root does not exist (for Rust -versions inferior to 1.25)." - (let-alist (flycheck-rust-cargo-metadata) - .workspace_root)) - -(defun flycheck-rust-cargo-has-command-p (command) - "Whether Cargo has COMMAND in its list of commands. - -Execute `cargo --list' to find out whether COMMAND is present." - (let ((cargo (funcall flycheck-executable-find "cargo"))) - (member command (mapcar #'string-trim-left - (ignore-errors (process-lines cargo "--list")))))) - -(defun flycheck-rust-valid-crate-type-p (crate-type) - "Whether CRATE-TYPE is a valid target type for Cargo. - -A valid Cargo target type is one of `lib', `bin', `example', -`test' or `bench'." - (member crate-type '(nil "lib" "bin" "example" "test" "bench"))) - -(flycheck-define-checker rust-cargo - "A Rust syntax checker using Cargo. - -This syntax checker requires Rust 1.17 or newer. See URL -`https://www.rust-lang.org'." - :command ("cargo" - (eval (if flycheck-rust-check-tests - "test" - "check")) - (eval (when flycheck-rust-check-tests - "--no-run")) - (eval (when flycheck-rust-crate-type - (concat "--" flycheck-rust-crate-type))) - ;; All crate targets except "lib" need a binary name - (eval (when (and flycheck-rust-crate-type - (not (string= flycheck-rust-crate-type "lib"))) - flycheck-rust-binary-name)) - (option "--features=" flycheck-rust-features concat - flycheck-option-comma-separated-list) - (eval flycheck-cargo-check-args) - "--message-format=json") - :error-parser flycheck-parse-cargo-rustc - :error-filter (lambda (errors) - ;; In Rust 1.25+, filenames are relative to the workspace - ;; root. - (let ((root (flycheck-rust-cargo-workspace-root))) - (seq-do (lambda (err) - ;; Some errors are crate level and do not have a - ;; filename - (when (flycheck-error-filename err) - (setf (flycheck-error-filename err) - (expand-file-name - (flycheck-error-filename err) root)))) - (flycheck-rust-error-filter errors)))) - :error-explainer flycheck-rust-error-explainer - :modes rust-mode - :predicate flycheck-buffer-saved-p - :enabled flycheck-rust-manifest-directory - :working-directory (lambda (_) (flycheck-rust-manifest-directory)) - :verify - (lambda (_) - (and buffer-file-name - (let* ((has-toml (flycheck-rust-manifest-directory)) - (valid-crate-type (flycheck-rust-valid-crate-type-p - flycheck-rust-crate-type)) - (need-binary-name - (and flycheck-rust-crate-type - (not (string= flycheck-rust-crate-type "lib"))))) - (list - (flycheck-verification-result-new - :label "Cargo.toml" - :message (if has-toml "Found" "Missing") - :face (if has-toml 'success '(bold warning))) - (flycheck-verification-result-new - :label "Crate type" - :message (if valid-crate-type - (format "%s" flycheck-rust-crate-type) - (format "%s (invalid, should be one of 'lib', 'bin', \ -'test', 'example' or 'bench')" - flycheck-rust-crate-type)) - :face (if valid-crate-type 'success '(bold error))) - (flycheck-verification-result-new - :label "Binary name" - :message (cond - ((not need-binary-name) "Not required") - ((not flycheck-rust-binary-name) "Required") - (t (format "%s" flycheck-rust-binary-name))) - :face (cond - ((not need-binary-name) 'success) - ((not flycheck-rust-binary-name) '(bold error)) - (t 'success)))))))) - -(flycheck-define-checker rust - "A Rust syntax checker using Rust compiler. - -This syntax checker needs Rust 1.18 or newer. See URL -`https://www.rust-lang.org'." - :command ("rustc" - (option "--crate-type" flycheck-rust-crate-type) - "--emit=mir" "-o" "/dev/null" ; avoid creating binaries - "--error-format=json" - (option-flag "--test" flycheck-rust-check-tests) - (option-list "-L" flycheck-rust-library-path concat) - (eval flycheck-rust-args) - (eval (or flycheck-rust-crate-root - (flycheck-substitute-argument 'source-original 'rust)))) - :error-parser flycheck-parse-rustc - :error-filter flycheck-rust-error-filter - :error-explainer flycheck-rust-error-explainer - :modes rust-mode - :predicate flycheck-buffer-saved-p) - -(flycheck-define-checker rust-clippy - "A Rust syntax checker using clippy. - -See URL `https://github.com/rust-lang-nursery/rust-clippy'." - :command ("cargo" "clippy" "--message-format=json") - :error-parser flycheck-parse-cargo-rustc - :error-filter flycheck-rust-error-filter - :error-explainer flycheck-rust-error-explainer - :modes rust-mode - :predicate flycheck-buffer-saved-p - :enabled (lambda () - (and (flycheck-rust-cargo-has-command-p "clippy") - (flycheck-rust-manifest-directory))) - :working-directory (lambda (_) (flycheck-rust-manifest-directory)) - :verify - (lambda (_) - (and buffer-file-name - (let ((has-toml (flycheck-rust-manifest-directory)) - (has-clippy (flycheck-rust-cargo-has-command-p "clippy"))) - (list - (flycheck-verification-result-new - :label "Clippy" - :message (if has-clippy "Found" - "Cannot find the `cargo clippy' command") - :face (if has-clippy 'success '(bold warning))) - (flycheck-verification-result-new - :label "Cargo.toml" - :message (if has-toml "Found" "Missing") - :face (if has-toml 'success '(bold warning)))))))) - -(defvar flycheck-sass-scss-cache-directory nil - "The cache directory for `sass' and `scss'.") - -(defun flycheck-sass-scss-cache-location () - "Get the cache location for `sass' and `scss'. - -If no cache directory exists yet, create one and return it. -Otherwise return the previously used cache directory." - (setq flycheck-sass-scss-cache-directory - (or flycheck-sass-scss-cache-directory - (make-temp-file "flycheck-sass-scss-cache" 'directory)))) - -(flycheck-def-option-var flycheck-sass-compass nil sass - "Whether to enable the Compass CSS framework. - -When non-nil, enable the Compass CSS framework, via `--compass'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.16")) - -(flycheck-define-checker sass - "A Sass syntax checker using the Sass compiler. - -See URL `http://sass-lang.com'." - :command ("sass" - "--cache-location" (eval (flycheck-sass-scss-cache-location)) - (option-flag "--compass" flycheck-sass-compass) - "--check" "--stdin") - :standard-input t - :error-patterns - ((error line-start - (or "Syntax error: " "Error: ") - (message (one-or-more not-newline) - (zero-or-more "\n" - (one-or-more " ") - (one-or-more not-newline))) - (optional "\r") "\n" (one-or-more " ") "on line " line - " of standard input" - line-end) - (warning line-start - "WARNING: " - (message (one-or-more not-newline) - (zero-or-more "\n" - (one-or-more " ") - (one-or-more not-newline))) - (optional "\r") "\n" (one-or-more " ") "on line " line - " of " (one-or-more not-newline) - line-end)) - :modes sass-mode) - -(flycheck-def-config-file-var flycheck-sass-lintrc sass/scss-sass-lint - ".sass-lint.yml" - :safe #'stringp - :package-version '(flycheck . "30")) - -(flycheck-define-checker sass/scss-sass-lint - "A SASS/SCSS syntax checker using sass-Lint. - -See URL `https://github.com/sasstools/sass-lint'." - :command ("sass-lint" - "--verbose" - "--no-exit" - "--format" "Checkstyle" - (config-file "--config" flycheck-sass-lintrc) - source) - :error-parser flycheck-parse-checkstyle - :modes (sass-mode scss-mode)) - -(flycheck-define-checker scala - "A Scala syntax checker using the Scala compiler. - -See URL `https://www.scala-lang.org/'." - :command ("scalac" "-Ystop-after:parser" source) - :error-patterns - ((error line-start (file-name) ":" line ": error: " (message) line-end)) - :modes scala-mode - :next-checkers ((warning . scala-scalastyle))) - -(flycheck-def-config-file-var flycheck-scalastylerc scala-scalastyle nil - :safe #'stringp - :package-version '(flycheck . "0.20")) - -(flycheck-define-checker scala-scalastyle - "A Scala style checker using scalastyle. - -Note that this syntax checker is not used if -`flycheck-scalastylerc' is nil or refers to a non-existing file. - -See URL `http://www.scalastyle.org'." - :command ("scalastyle" - (config-file "-c" flycheck-scalastylerc) - source) - :error-patterns - ((error line-start "error file=" (file-name) " message=" - (message) " line=" line (optional " column=" column) line-end) - (warning line-start "warning file=" (file-name) " message=" - (message) " line=" line (optional " column=" column) line-end)) - :error-filter (lambda (errors) - (flycheck-sanitize-errors - (flycheck-increment-error-columns errors))) - :modes scala-mode - :predicate - ;; Inhibit this syntax checker if the JAR or the configuration are unset or - ;; missing - (lambda () (and flycheck-scalastylerc - (flycheck-locate-config-file flycheck-scalastylerc - 'scala-scalastyle))) - :verify (lambda (checker) - (let ((config-file (and flycheck-scalastylerc - (flycheck-locate-config-file - flycheck-scalastylerc checker)))) - (list - (flycheck-verification-result-new - :label "Configuration file" - :message (cond - ((not flycheck-scalastylerc) - "`flycheck-scalastyletrc' not set") - ((not config-file) - (format "file %s not found" flycheck-scalastylerc)) - (t (format "found at %s" config-file))) - :face (cond - ((not flycheck-scalastylerc) '(bold warning)) - ((not config-file) '(bold error)) - (t 'success))))))) - -(flycheck-def-args-var flycheck-scheme-chicken-args scheme-chicken - :package-version '(flycheck . "32")) - -(flycheck-define-checker scheme-chicken - "A CHICKEN Scheme syntax checker using the CHICKEN compiler `csc'. - -See URL `http://call-cc.org/'." - :command ("csc" "-analyze-only" "-local" - (eval flycheck-scheme-chicken-args) - source) - :error-patterns - ((info line-start - "Note: " (zero-or-more not-newline) ":\n" - (one-or-more (any space)) "(" (file-name) ":" line ") " (message) - line-end) - (warning line-start - "Warning: " (zero-or-more not-newline) ",\n" - (one-or-more (any space)) (zero-or-more not-newline) ":\n" - (one-or-more (any space)) "(" (file-name) ":" line ") " (message) - line-end) - (warning line-start - "Warning: " (zero-or-more not-newline) ":\n" - (one-or-more (any space)) "(" (file-name) ":" line ") " (message) - line-end) - (error line-start "Error: (line " line ") " (message) line-end) - (error line-start "Syntax error: (" (file-name) ":" line ")" - (zero-or-more not-newline) " - " - (message (one-or-more not-newline) - (zero-or-more "\n" - (zero-or-more space) - (zero-or-more not-newline)) - (one-or-more space) "<--") - line-end) - ;; A of version 4.12.0, the chicken compiler doesn't provide a - ;; line number for this error. - (error line-start "Syntax error: " - (message (one-or-more not-newline) - (zero-or-more "\n" - (zero-or-more space) - (zero-or-more not-newline)) - (one-or-more space) "<--") - line-end) - (error line-start - "Error: " (zero-or-more not-newline) ":\n" - (one-or-more (any space)) "(" (file-name) ":" line ") " (message) - line-end) - ;; A of version 4.12.0, the chicken compiler doesn't provide a - ;; line number for this error. - (error line-start "Error: " - (message (one-or-more not-newline) - (zero-or-more "\n" - (zero-or-more space) - (zero-or-more not-newline)) - (one-or-more space) "<--"))) - :error-filter flycheck-fill-empty-line-numbers - :predicate - (lambda () - ;; In `scheme-mode' we must check the current Scheme implementation - ;; being used - (and (boundp 'geiser-impl--implementation) - (eq geiser-impl--implementation 'chicken))) - :verify - (lambda (_checker) - (let ((geiser-impl (bound-and-true-p geiser-impl--implementation))) - (list - (flycheck-verification-result-new - :label "Geiser Implementation" - :message (cond - ((eq geiser-impl 'chicken) "Chicken Scheme") - (geiser-impl (format "Other: %s" geiser-impl)) - (t "Geiser not active")) - :face (cond - ((eq geiser-impl 'chicken) 'success) - (t '(bold error))))))) - :modes scheme-mode) - -(defconst flycheck-scss-lint-checkstyle-re - (rx "cannot load such file" (1+ not-newline) "scss_lint_reporter_checkstyle") - "Regular expression to parse missing checkstyle error.") - -(defun flycheck-parse-scss-lint (output checker buffer) - "Parse SCSS-Lint OUTPUT from CHECKER and BUFFER. - -Like `flycheck-parse-checkstyle', but catches errors about -missing checkstyle reporter from SCSS-Lint." - (if (string-match-p flycheck-scss-lint-checkstyle-re output) - (list (flycheck-error-new-at - 1 nil 'error "Checkstyle reporter for SCSS-Lint missing. -Please run gem install scss_lint_reporter_checkstyle" - :checker checker - :buffer buffer - :filename (buffer-file-name buffer))) - (flycheck-parse-checkstyle output checker buffer))) - -(flycheck-def-config-file-var flycheck-scss-lintrc scss-lint ".scss-lint.yml" - :safe #'stringp - :package-version '(flycheck . "0.23")) - -(flycheck-define-checker scss-lint - "A SCSS syntax checker using SCSS-Lint. - -Needs SCSS-Lint 0.43.2 or newer. - -See URL `https://github.com/brigade/scss-lint'." - :command ("scss-lint" - "--require=scss_lint_reporter_checkstyle" - "--format=Checkstyle" - (config-file "--config" flycheck-scss-lintrc) - "--stdin-file-path" source-original "-") - :standard-input t - ;; We cannot directly parse Checkstyle XML, since for some mysterious reason - ;; SCSS-Lint doesn't have a built-in Checkstyle reporter, and instead ships it - ;; as an addon which might not be installed. We use a custom error parser to - ;; check whether the addon is missing and turn that into a special kind of - ;; Flycheck error. - :error-parser flycheck-parse-scss-lint - :modes scss-mode - :verify - (lambda (checker) - (let* ((executable (flycheck-find-checker-executable checker)) - (reporter-missing - (and executable - (with-temp-buffer - (call-process executable nil t nil - "--require=scss_lint_reporter_checkstyle") - (goto-char (point-min)) - (re-search-forward - flycheck-scss-lint-checkstyle-re - nil 'no-error))))) - (when executable - (list - (flycheck-verification-result-new - :label "checkstyle reporter" - :message (if reporter-missing - "scss_lint_reporter_checkstyle missing" - "present") - :face (if reporter-missing - '(bold error) - 'success))))))) - -(flycheck-define-checker scss-stylelint - "A SCSS syntax and style checker using stylelint. - -See URL `http://stylelint.io/'." - :command ("stylelint" - (eval flycheck-stylelint-args) - "--syntax" "scss" - (option-flag "--quiet" flycheck-stylelint-quiet) - (config-file "--config" flycheck-stylelintrc)) - :standard-input t - :error-parser flycheck-parse-stylelint - :modes (scss-mode)) - -(flycheck-def-option-var flycheck-scss-compass nil scss - "Whether to enable the Compass CSS framework. - -When non-nil, enable the Compass CSS framework, via `--compass'." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "0.16")) - -(flycheck-define-checker scss - "A SCSS syntax checker using the SCSS compiler. - -See URL `http://sass-lang.com'." - :command ("scss" - "--cache-location" (eval (flycheck-sass-scss-cache-location)) - (option-flag "--compass" flycheck-scss-compass) - "--check" "--stdin") - :standard-input t - :error-patterns - ((error line-start - (or "Syntax error: " "Error: ") - (message (one-or-more not-newline) - (zero-or-more "\n" - (one-or-more " ") - (one-or-more not-newline))) - (optional "\r") "\n" (one-or-more " ") "on line " line - " of standard input" - line-end) - (warning line-start - "WARNING: " - (message (one-or-more not-newline) - (zero-or-more "\n" - (one-or-more " ") - (one-or-more not-newline))) - (optional "\r") "\n" (one-or-more " ") "on line " line - " of an unknown file" - line-end)) - :modes scss-mode) - -(flycheck-def-args-var flycheck-sh-bash-args (sh-bash) - :package-version '(flycheck . "32")) - -(flycheck-define-checker sh-bash - "A Bash syntax checker using the Bash shell. - -See URL `http://www.gnu.org/software/bash/'." - :command ("bash" "--norc" "-n" - (eval flycheck-sh-bash-args) - "--") - :standard-input t - :error-patterns - ((error line-start - ;; The name/path of the bash executable - (one-or-more (not (any ":"))) ":" - ;; A label "line", possibly localized - (one-or-more (not (any digit))) - line (zero-or-more " ") ":" (zero-or-more " ") - (message) line-end)) - :modes sh-mode - :predicate (lambda () (eq sh-shell 'bash)) - :next-checkers ((warning . sh-shellcheck))) - -(flycheck-define-checker sh-posix-dash - "A POSIX Shell syntax checker using the Dash shell. - -See URL `http://gondor.apana.org.au/~herbert/dash/'." - :command ("dash" "-n") - :standard-input t - :error-patterns - ((error line-start (one-or-more (not (any ":"))) ": " line ": " (message))) - :modes sh-mode - :predicate (lambda () (eq sh-shell 'sh)) - :next-checkers ((warning . sh-shellcheck))) - -(flycheck-define-checker sh-posix-bash - "A POSIX Shell syntax checker using the Bash shell. - -See URL `http://www.gnu.org/software/bash/'." - :command ("bash" "--posix" "--norc" "-n" "--") - :standard-input t - :error-patterns - ((error line-start - ;; The name/path of the bash executable - (one-or-more (not (any ":"))) ":" - ;; A label "line", possibly localized - (one-or-more (not (any digit))) - line (zero-or-more " ") ":" (zero-or-more " ") - (message) line-end)) - :modes sh-mode - :predicate (lambda () (eq sh-shell 'sh)) - :next-checkers ((warning . sh-shellcheck))) - -(flycheck-define-checker sh-zsh - "A Zsh syntax checker using the Zsh shell. - -See URL `http://www.zsh.org/'." - :command ("zsh" "--no-exec" "--no-globalrcs" "--no-rcs" source) - :error-patterns - ((error line-start (file-name) ":" line ": " (message) line-end)) - :modes sh-mode - :predicate (lambda () (eq sh-shell 'zsh)) - :next-checkers ((warning . sh-shellcheck))) - -(defconst flycheck-shellcheck-supported-shells '(bash ksh88 sh) - "Shells supported by ShellCheck.") - -(flycheck-def-option-var flycheck-shellcheck-excluded-warnings nil sh-shellcheck - "A list of excluded warnings for ShellCheck. - -The value of this variable is a list of strings, where each -string is a warning code to be excluded from ShellCheck reports. -By default, no warnings are excluded." - :type '(repeat :tag "Excluded warnings" - (string :tag "Warning code")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.21")) - -(flycheck-def-option-var flycheck-shellcheck-follow-sources t sh-shellcheck - "Whether to follow external sourced files in scripts. - -Shellcheck will follow and parse sourced files so long as a -pre-runtime resolvable path to the file is present. This can -either be part of the source command itself: - source /full/path/to/file.txt -or added as a shellcheck directive before the source command: - # shellcheck source=/full/path/to/file.txt." - :type 'boolean - :safe #'booleanp - :package-version '(flycheck . "31")) - -(flycheck-define-checker sh-shellcheck - "A shell script syntax and style checker using Shellcheck. - -See URL `https://github.com/koalaman/shellcheck/'." - :command ("shellcheck" - "--format" "checkstyle" - "--shell" (eval (symbol-name sh-shell)) - (option-flag "--external-sources" - flycheck-shellcheck-follow-sources) - (option "--exclude" flycheck-shellcheck-excluded-warnings list - flycheck-option-comma-separated-list) - "-") - :standard-input t - :error-parser flycheck-parse-checkstyle - :error-filter - (lambda (errors) - (flycheck-remove-error-file-names - "-" (flycheck-dequalify-error-ids errors))) - :modes sh-mode - :predicate (lambda () (memq sh-shell flycheck-shellcheck-supported-shells)) - :verify (lambda (_) - (let ((supports-shell (memq sh-shell - flycheck-shellcheck-supported-shells))) - (list - (flycheck-verification-result-new - :label (format "Shell %s supported" sh-shell) - :message (if supports-shell "yes" "no") - :face (if supports-shell 'success '(bold warning))))))) - -(flycheck-define-checker slim - "A Slim syntax checker using the Slim compiler. - -See URL `http://slim-lang.com'." - :command ("slimrb" "--compile") - :standard-input t - :error-patterns - ((error line-start - "Slim::Parser::SyntaxError:" (message) (optional "\r") "\n " - "STDIN, Line " line (optional ", Column " column) - line-end)) - :modes slim-mode - :next-checkers ((warning . slim-lint))) - -(flycheck-define-checker slim-lint - "A Slim linter. - -See URL `https://github.com/sds/slim-lint'." - :command ("slim-lint" "--reporter=checkstyle" source) - :error-parser flycheck-parse-checkstyle - :modes slim-mode) - -(flycheck-define-checker sql-sqlint - "A SQL syntax checker using the sqlint tool. - -See URL `https://github.com/purcell/sqlint'." - :command ("sqlint") - :standard-input t - :error-patterns - ((warning line-start "stdin:" line ":" column ":WARNING " - (message (one-or-more not-newline) - (zero-or-more "\n" - (one-or-more " ") - (one-or-more not-newline))) - line-end) - (error line-start "stdin:" line ":" column ":ERROR " - (message (one-or-more not-newline) - (zero-or-more "\n" - (one-or-more " ") - (one-or-more not-newline))) - line-end)) - :modes (sql-mode)) - -(flycheck-define-checker systemd-analyze - "A systemd unit checker using systemd-analyze(1). - -See URL -`https://www.freedesktop.org/software/systemd/man/systemd-analyze.html'." - :command ("systemd-analyze" "verify" source) - :error-patterns - ((error line-start "[" (file-name) ":" line "] " (message) line-end)) - :modes (systemd-mode)) - -(flycheck-def-config-file-var flycheck-chktexrc tex-chktex ".chktexrc" - :safe #'stringp) - -(flycheck-define-checker tcl-nagelfar - "An extensible tcl syntax checker - -See URL `http://nagelfar.sourceforge.net/'." - :command ("nagelfar" "-H" source) - :error-patterns - ;; foo.tcl: 29: E Wrong number of arguments (4) to "set" - ;; foo.tcl: 29: W Expr without braces - ((info line-start (file-name) ": " line ": N " (message) line-end) - (warning line-start (file-name) ": " line ": W " (message) line-end) - (error line-start (file-name) ": " line ": E " (message) line-end)) - :modes tcl-mode) - -(flycheck-define-checker tex-chktex - "A TeX and LaTeX syntax and style checker using chktex. - -See URL `http://www.nongnu.org/chktex/'." - :command ("chktex" - (config-file "--localrc" flycheck-chktexrc) - ;; Compact error messages, and no version information, and execute - ;; \input statements - "--verbosity=0" "--quiet" "--inputfiles") - :standard-input t - :error-patterns - ((warning line-start "stdin:" line ":" column ":" - (id (one-or-more digit)) ":" (message) line-end)) - :error-filter - (lambda (errors) - (flycheck-sanitize-errors (flycheck-increment-error-columns errors))) - :modes (latex-mode plain-tex-mode)) - -(flycheck-define-checker tex-lacheck - "A LaTeX syntax and style checker using lacheck. - -See URL `http://www.ctan.org/pkg/lacheck'." - :command ("lacheck" source-inplace) - :error-patterns - ((warning line-start - "\"" (file-name) "\", line " line ": " (message) - line-end)) - :modes latex-mode) - -(flycheck-define-checker texinfo - "A Texinfo syntax checker using makeinfo. - -See URL `http://www.gnu.org/software/texinfo/'." - :command ("makeinfo" "-o" null-device "-") - :standard-input t - :error-patterns - ((warning line-start - "-:" line (optional ":" column) ": " "warning: " (message) - line-end) - (error line-start - "-:" line (optional ":" column) ": " (message) - line-end)) - :modes texinfo-mode) - -(flycheck-def-config-file-var flycheck-textlint-config - textlint "textlintrc.json" - :safe #'stringp) - -;; This needs to be set because textlint plugins are installed seperately, -;; and there is no way to check their installation status -- textlint simply -;; prints a backtrace. -(flycheck-def-option-var flycheck-textlint-plugin-alist - '((markdown-mode . "@textlint/markdown") - (gfm-mode . "@textlint/markdown") - (t . "@textlint/text")) - textlint - "An alist mapping major modes to textlint plugins. - -Each item is a cons cell `(MAJOR-MODE . PLUGIN)', where MAJOR-MODE is a mode -`flycheck-textlint' supports and PLUGIN is a textlint plugin. As a catch-all, -when MAJOR-MODE is t, that PLUGIN will be used for any supported mode that -isn't specified. - -See URL `https://npms.io/search?q=textlint-plugin' for all textlint plugins -published on NPM." - :type '(repeat (choice (cons symbol string) - (cons (const t) string)))) - -(defun flycheck--textlint-get-plugin () - "Return the textlint plugin for the current mode." - (cdr (-first - (lambda (arg) - (pcase-let ((`(,mode . _) arg)) - (or (and (booleanp mode) mode) ; mode is t - (derived-mode-p mode)))) - flycheck-textlint-plugin-alist))) - -(flycheck-define-checker textlint - "A text prose linter using textlint. - -See URL `https://textlint.github.io/'." - :command ("textlint" - (config-file "--config" flycheck-textlint-config) - "--format" "json" - ;; get the first matching plugin from plugin-alist - "--plugin" - (eval (flycheck--textlint-get-plugin)) - source) - ;; textlint seems to say that its json output is compatible with ESLint. - ;; https://textlint.github.io/docs/formatter.html - :error-parser flycheck-parse-eslint - ;; textlint can support different formats with textlint plugins, but - ;; only text and markdown formats are installed by default. Ask the - ;; user to add mode->plugin mappings manually in - ;; `flycheck-textlint-plugin-alist'. - :modes - (text-mode markdown-mode gfm-mode message-mode adoc-mode - mhtml-mode latex-mode org-mode rst-mode) - :enabled - (lambda () (flycheck--textlint-get-plugin)) - :verify - (lambda (_) - (let ((plugin (flycheck--textlint-get-plugin))) - (list - (flycheck-verification-result-new - :label "textlint plugin" - :message plugin - :face 'success))))) - -(flycheck-def-config-file-var flycheck-typescript-tslint-config - typescript-tslint "tslint.json" - :safe #'stringp - :package-version '(flycheck . "27")) - -(flycheck-def-option-var flycheck-typescript-tslint-rulesdir - nil typescript-tslint - "The directory of custom rules for TSLint. - -The value of this variable is either a string containing the path -to a directory with custom rules, or nil, to not give any custom -rules to TSLint. - -Refer to the TSLint manual at URL -`http://palantir.github.io/tslint/usage/cli/' -for more information about the custom directory." - :type '(choice (const :tag "No custom rules directory" nil) - (directory :tag "Custom rules directory")) - :safe #'stringp - :package-version '(flycheck . "27")) - -(flycheck-def-args-var flycheck-tslint-args (typescript-tslint) - :package-version '(flycheck . "31")) - -(flycheck-define-checker typescript-tslint - "TypeScript style checker using TSLint. - -Note that this syntax checker is not used if -`flycheck-typescript-tslint-config' is nil or refers to a -non-existing file. - -See URL `https://github.com/palantir/tslint'." - :command ("tslint" "--format" "json" - (config-file "--config" flycheck-typescript-tslint-config) - (option "--rules-dir" flycheck-typescript-tslint-rulesdir) - (eval flycheck-tslint-args) - source-inplace) - :error-parser flycheck-parse-tslint - :modes (typescript-mode)) - -(flycheck-def-option-var flycheck-verilator-include-path nil verilog-verilator - "A list of include directories for Verilator. - -The value of this variable is a list of strings, where each -string is a directory to add to the include path of Verilator. -Relative paths are relative to the file being checked." - :type '(repeat (directory :tag "Include directory")) - :safe #'flycheck-string-list-p - :package-version '(flycheck . "0.24")) - -(flycheck-define-checker verilog-verilator - "A Verilog syntax checker using the Verilator Verilog HDL simulator. - -See URL `https://www.veripool.org/wiki/verilator'." - :command ("verilator" "--lint-only" "-Wall" - (option-list "-I" flycheck-verilator-include-path concat) - source) - :error-patterns - ((warning line-start "%Warning-" (zero-or-more not-newline) ": " - (file-name) ":" line ": " (message) line-end) - (error line-start "%Error: " (file-name) ":" - line ": " (message) line-end)) - :modes verilog-mode) - -(flycheck-def-option-var flycheck-ghdl-language-standard nil vhdl-ghdl - "The language standard to use in GHDL. - -The value of this variable is either a string denoting a language -standard, or nil, to use the default standard. When non-nil, -pass the language standard via the `--std' option." - :type '(choice (const :tag "Default standard" nil) - (string :tag "Language standard")) - :safe #'stringp - :package-version '(flycheck . "32")) -(make-variable-buffer-local 'flycheck-ghdl-language-standard) - -(flycheck-def-option-var flycheck-ghdl-workdir nil vhdl-ghdl - "The directory to use for the file library. - -The value of this variable is either a string with the directory -to use for the file library, or nil, to use the default value. -When non-nil, pass the directory via the `--workdir' option." - :type '(choice (const :tag "Default directory" nil) - (string :tag "Directory for the file library")) - :safe #'stringp - :package-version '(flycheck . "32")) -(make-variable-buffer-local 'flycheck-ghdl-workdir) - -(flycheck-def-option-var flycheck-ghdl-ieee-library nil vhdl-ghdl - "The standard to use for the IEEE library. - -The value of this variable is either a string denoting an ieee library -standard, or nil, to use the default standard. When non-nil, -pass the ieee library standard via the `--ieee' option." - :type '(choice (const :tag "Default standard" nil) - (const :tag "No IEEE Library" "none") - (const :tag "IEEE standard" "standard") - (const :tag "Synopsys standard" "synopsys") - (const :tag "Mentor standard" "mentor")) - :safe #'stringp - :package-version '(flycheck . "32")) -(make-variable-buffer-local 'flycheck-ghdl-ieee-library) - -(flycheck-define-checker vhdl-ghdl - "A VHDL syntax checker using GHDL. - -See URL `https://github.com/ghdl/ghdl'." - :command ("ghdl" - "-s" ; only do the syntax checking - (option "--std=" flycheck-ghdl-language-standard concat) - (option "--workdir=" flycheck-ghdl-workdir concat) - (option "--ieee=" flycheck-ghdl-ieee-library concat) - source) - :error-patterns - ((error line-start (file-name) ":" line ":" column ": " (message) line-end)) - :modes vhdl-mode) - -(flycheck-def-option-var flycheck-xml-xmlstarlet-xsd-path nil xml-xmlstarlet - "An XSD schema to validate against." - :type '(file :tag "XSD schema") - :safe #'stringp - :package-version '(flycheck . "31")) - -(flycheck-define-checker xml-xmlstarlet - "A XML syntax checker and validator using the xmlstarlet utility. - -See URL `http://xmlstar.sourceforge.net/'." - ;; Validate standard input with verbose error messages, and do not dump - ;; contents to standard output - :command ("xmlstarlet" "val" "--err" "--quiet" - (option "--xsd" flycheck-xml-xmlstarlet-xsd-path) - "-") - :standard-input t - :error-patterns - ((error line-start "-:" line "." column ": " (message) line-end)) - :modes (xml-mode nxml-mode)) - -(flycheck-def-option-var flycheck-xml-xmllint-xsd-path nil xml-xmllint - "An XSD schema to validate against." - :type '(file :tag "XSD schema") - :safe #'stringp - :package-version '(flycheck . "31")) - -(flycheck-define-checker xml-xmllint - "A XML syntax checker and validator using the xmllint utility. - -The xmllint is part of libxml2, see URL -`http://www.xmlsoft.org/'." - :command ("xmllint" "--noout" - (option "--schema" flycheck-xml-xmllint-xsd-path) - "-") - :standard-input t - :error-patterns - ((error line-start "-:" line ": " (message) line-end)) - :modes (xml-mode nxml-mode)) - -(flycheck-define-checker yaml-jsyaml - "A YAML syntax checker using JS-YAML. - -See URL `https://github.com/nodeca/js-yaml'." - :command ("js-yaml") - :standard-input t - :error-patterns - ((error line-start - (or "JS-YAML" "YAMLException") ": " - (message) " at line " line ", column " column ":" - line-end)) - :modes yaml-mode - :next-checkers ((warning . cwl))) - -(flycheck-define-checker yaml-ruby - "A YAML syntax checker using Ruby's YAML parser. - -This syntax checker uses the YAML parser from Ruby's standard -library. - -See URL `http://www.ruby-doc.org/stdlib-2.0.0/libdoc/yaml/rdoc/YAML.html'." - :command ("ruby" "-ryaml" "-e" "begin; - YAML.load(STDIN); \ - rescue Exception => e; \ - STDERR.puts \"stdin:#{e}\"; \ - end") - :standard-input t - :error-patterns - ((error line-start "stdin:" (zero-or-more not-newline) ":" (message) - "at line " line " column " column line-end)) - :modes yaml-mode - :next-checkers ((warning . cwl))) - -(provide 'flycheck) - -;; Local Variables: -;; coding: utf-8 -;; indent-tabs-mode: nil -;; End: - -;;; flycheck.el ends here diff --git a/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck.elc b/project1/.emacs.d/packages/flycheck-20190612.1645/flycheck.elc deleted file mode 100644 index f772fe19c23f2fdcb114cae1fbecbffd23a90e32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 483861 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 IfA@|54_?RqjQ{`u diff --git a/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint-autoloads.el b/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint-autoloads.el deleted file mode 100644 index d934b57..0000000 --- a/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint-autoloads.el +++ /dev/null @@ -1,23 +0,0 @@ -;;; flycheck-golangci-lint-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil "flycheck-golangci-lint" "flycheck-golangci-lint.el" -;;;;;; (23815 54535 99184 704000)) -;;; Generated autoloads from flycheck-golangci-lint.el - -(autoload 'flycheck-golangci-lint-setup "flycheck-golangci-lint" "\ -Setup Flycheck GolangCI-Lint. -Add `golangci-lint' to `flycheck-checkers'. - -\(fn)" t nil) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; flycheck-golangci-lint-autoloads.el ends here diff --git a/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint-pkg.el b/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint-pkg.el deleted file mode 100644 index e5afce4..0000000 --- a/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "flycheck-golangci-lint" "20190330.1412" "Flycheck checker for golangci-lint" '((emacs "24") (flycheck "0.22")) :commit "8e446c68311048f0b87febf8ef0379e29d358851" :keywords '("convenience" "tools" "go") :authors '(("Wei Jian Gan" . "weijiangan@outlook.com")) :maintainer '("Wei Jian Gan" . "weijiangan@outlook.com") :url "https://github.com/weijiangan/flycheck-golangci-lint") diff --git a/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint-pkg.elc b/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint-pkg.elc deleted file mode 100644 index a6c5101f9fcd75fff4dc00881d53fa2eeebdb1fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 zcmbtSv2NQi5cRAd=z8E18Hi+wk`u{ZS{P}OqFV}drpc4Unj#I7is62J&q~rF=~5tE zgyTKF_wJpxci(m&7K=r)-ELv$#-lc<=0aPz8-)z;h(2g%f!BGRugjdz?URlJ2xGt< zqaO7y5eXCWWNv;RbbyYiU<w#Oovj$P1m$FiUfVugQ`d(GLMc@6N2+Xd-u}a(9C26| zK{^`+fv4DI4c*x6)5Grm9^@drkdb^|&+@`52o9vMutzXXyb^hyCjbg>G<t{w0eSVL zOF6vjTnxPTBuSDg?6k$~DC9x(2&^+_IiNgby)(l0QfEfn$bj*pY>TQY^0F>D)t{e% zlnTLVyv})e^XMu~ao#QCHCsaZLJq9RIcLiyY@{1U9f37i*EjN}smijbo37Y5w;k@g z2D_rVZIQRCS~tzQWUx8l`Q*F`aFsGz)gxMsRw8+d&Y3{p-jUiyOmT4j0!!Hs)bLeP z{$GS;kOMoR{z-K&>_<06<J=)9E3>7Mc7NGF%|r_S{Sr2lH^7D%k72V~_4MOT`wQvn Nuh!}%fj99kli!Vx@)Q67 diff --git a/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint.el b/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint.el deleted file mode 100644 index 03c6e49..0000000 --- a/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint.el +++ /dev/null @@ -1,103 +0,0 @@ -;;; flycheck-golangci-lint.el --- Flycheck checker for golangci-lint -*- lexical-binding: t; -*- - -;; Copyright (C) 2018 Wei Jian Gan - -;; Author: Wei Jian Gan <weijiangan@outlook.com> -;; Keywords: convenience, tools, go -;; Package-Version: 20190330.1412 -;; URL: https://github.com/weijiangan/flycheck-golangci-lint -;; Version: 0.1.0 -;; Package-Requires: ((emacs "24") (flycheck "0.22")) - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; Flycheck checker for golangci-lint -;; -;; Usage: -;; -;; (eval-after-load 'flycheck -;; '(add-hook 'flycheck-mode-hook #'flycheck-golangci-lint-setup)) - -;;; Code: - -(require 'flycheck) - -(flycheck-def-option-var flycheck-golangci-lint-config nil golangci-lint - "Path to golangci-lint configuration file if you don't like using default config path .golangci.(yml|toml|json)" - :safe #'stringp) - -(flycheck-def-option-var flycheck-golangci-lint-deadline "1m" golangci-lint - "Timeout for running golangci-lint, 1m by default." - :safe #'stringp) - -(flycheck-def-option-var flycheck-golangci-lint-tests nil golangci-lint - "Analyze *_test.go files. It's false by default." - :safe #'booleanp - :type 'boolean) - -(flycheck-def-option-var flycheck-golangci-lint-fast nil golangci-lint - "Run only fast linters from the enabled set of linters. To find out which linters are fast run golangci-lint linters." - :safe #'booleanp - :type 'boolean) - -(flycheck-def-option-var flycheck-golangci-lint-disable-all nil golangci-lint - "Disable all linters" - :safe #'booleanp - :type 'boolean) - -(flycheck-def-option-var flycheck-golangci-lint-enable-all nil golangci-lint - "Enable all linters" - :safe #'booleanp - :type 'boolean) - -(flycheck-def-option-var flycheck-golangci-lint-enable-linters nil golangci-lint - "Enable specific linters" - :type '(repeat (string :tag "linter")) - :safe #'flycheck-string-list-p) - -(flycheck-def-option-var flycheck-golangci-lint-disable-linters nil golangci-lint - "Disable specific linters" - :type '(repeat (string :tag "linter")) - :safe #'flycheck-string-list-p) - -(flycheck-define-checker golangci-lint - "A Go syntax checker using golangci-lint that's 5x faster than gometalinter - -See URL `https://github.com/golangci/golangci-lint'." - :command ("golangci-lint" "run" "--print-issued-lines=false" "--out-format=line-number" - (option "--config=" flycheck-golangci-lint-config concat) - (option "--deadline=" flycheck-golangci-lint-deadline concat) - (option-flag "--tests" flycheck-golangci-lint-tests) - (option-flag "--fast" flycheck-golangci-lint-fast) - (option-flag "--disable-all" flycheck-golangci-lint-disable-all) - (option-flag "--enable-all" flycheck-golangci-lint-enable-all) - (option-list "--disable=" flycheck-golangci-lint-disable-linters concat) - (option-list "--enable=" flycheck-golangci-lint-enable-linters concat) - ".") - :error-patterns - ((error line-start (file-name) ":" line ":" column ": " (message) line-end) - (error line-start (file-name) ":" line ":" (message) line-end)) - :modes go-mode) - -;;;###autoload -(defun flycheck-golangci-lint-setup () - "Setup Flycheck GolangCI-Lint. -Add `golangci-lint' to `flycheck-checkers'." - (interactive) - (add-to-list 'flycheck-checkers 'golangci-lint)) - -(provide 'flycheck-golangci-lint) -;;; flycheck-golangci-lint.el ends here diff --git a/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint.elc b/project1/.emacs.d/packages/flycheck-golangci-lint-20190330.1412/flycheck-golangci-lint.elc deleted file mode 100644 index 7c4ba5cf61a3726db14150e96722517be3d39003..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4723 zcmd5=-*4MC5boPBKkRjnyQxEC50M-BXXm28f+Q;f6vNPVPj#>|5^ZadNKd4iy67Lj z?<g^{oO;brw5S2uvUvC150c*<_4w@B$@ll}-RnGl{FqL3zD_flxId|)vs}c6-pInF zTG3$CAN9vkf8d6%Q@bLOWu(_O&C_?nLdNtvZt&$QHM9T}l|~v$HcI4aOo@(-EmE~K zhZrr4C6OdDp&L`tFa5zUw=fb745cl_T3G?%(k{YBc%s7N7boZE6t6@fVhcYHoq3@W zGMZwc=u%RqMaxJXk0B|FER_Y>6$A&v$}aNoNgsCLQ$L+fr+c}vGK_U1DVPtBj&Mak z&Ib|S3~&u`jc|=|O-@hoJ)IAEG>ULRA{svUrjn0X4)W1>9yAEi1W#*(Xvzo!*4~T2 z@@<3xEO~^%z#*`eErbE^2k>w(dGKxH3+wG5!FP`|JYu9F%X}P(V{Sz?<lNLz4Tla1 z|2~eydOJv*S&!s0Jlx6fhoc)puZ=W993E*Du}>qmR!7JA8FAk5Y&6==6YK3DZTU2E zK8?0~Vx%$a+(x?P(|Bv{#%}J$@WCO}`5H4C=6pQ$K20irh7;&cU}FM}38W{GoIr8{ zU#5_mVtk5m_Y0Y6^x(Vs;Ak4qt3v)$riG+Mwux6VzM{A^R_9?N<4hDXd?SifT!J>d zK)BSIP|G+Cvs78^2en9-v?x`~)Wg3_J9PimQN2wnJ1WgCD8eH(SKWo`1s4?jAwXDG zQwxzP1&C$g=&PcvbU_<kf~?emr7XQ-5(8&ZA{U~}91F1%YsTw)w0?J!XYUb9_Wp09 zRgWz@7Q6`wj0l=xwuHkA&9s9!b(ZOCMmHO9+gnf>(gGrzF#u6Wue}AAfrEf%%R-my zCPNjXp_vg2Nfp0t4Ht5m8c<_c$#IHzQm`l2i4+NvE^j3_h;rl;*^Tn;{Ju<csY~lZ zD@vs}sFv@C6y<ce@p<fjz7*|=$Vy|)t#CfHR*sd(Ht!_;{1@wBlHJNMeLA-XC~P7# z^2<bWsdXlWTGPyK*05RqZ6?2!;BX;OQtz@Co|jmOD%&6wXz<p;lA}eTbGIs`;!TJe zDlO@SAMevk&I4*IPxJLEjaPn%uz4#i%zS&+y~vlJ?j$uFM#xNYm!zCl@~)|=Q}V@^ zXqEXpyL{#*>TB@Wuc5mny7t<vWt=Y17Jl|*cMG|e!cw<lM{Fjsq@Xez^m@&9s>Z>z z#)exQ+TLY;UHzYs{o48pV{Qj0-^#eOt_I&_Dqo_8ZK;4PxT>`vcPg9XfioN)(0Gfw zT=~YHO9t!Xv>>Ujkgm*DxO3H*I^=OsH&=9=F`Sw&(2Z0>X;pchtGd3T2yw^Zs(#H( z(if)ffKasOK`Wej&=05^uXGwq{Nl`G>-BV6_XmynfIaN(EW6+9;5e|>;%oF!%!|}q zZ3xx0?v&6XfqMBwkmoqwgg%bon4apL6xaPq%WWh`aP1nubv*4)JxiTSE2@>uWcNZ! z`t$iSdcCrCZDtQ2E-_Q(WgliAdc2#Psv|)<X0=z;ZRaYW0QCUhVYtSz&xWZnrA$~) znkTM|x<S;F5FJr2>=PaeRheJP0%@+hCFoau+LNG3h<C?%;X6Z!#lj-xji&Eo_Un2H zUWVJ+;UZ(62t(I6>^1F1Z%p1OacSMF!-Ka~JhPx;?bY0pxed^ikG=YhNTbet$8px! z|B<P>q<ZSxO_&F&jO@p$o!EuJ*6Ptr7KJWCY!5Ug%22oK9&nYAp|PR>kMpaAkXfQf z!7Ok??k3h*nJe597EdmX5le_TO{o$De0Qi1sKd7$2XX^`3;Bj-AS4`0>XzNn(F`7{ zL=;Jwsx{iA*|jdNz-!2DA!DnH4O-`MuXF#`M-jb{7M=WW{xI~^opnym!)Mql{myZc z>~{amcCT+J!5conn+rbW{Ltw#1!k!*bZ{fp-Y013V6vfhyjH;Jbii*0+zAaYWJ0T5 o1#GsOH`FHf3mQ`Q{!i4W(P%pDarhU#PIq1CHz|^{$AezyU!#=(*8l(j diff --git a/project1/.emacs.d/packages/flycheck-golangci-lint-readme.txt b/project1/.emacs.d/packages/flycheck-golangci-lint-readme.txt deleted file mode 100644 index fdcc735..0000000 --- a/project1/.emacs.d/packages/flycheck-golangci-lint-readme.txt +++ /dev/null @@ -1,6 +0,0 @@ -Flycheck checker for golangci-lint - -Usage: - - (eval-after-load 'flycheck - '(add-hook 'flycheck-mode-hook #'flycheck-golangci-lint-setup)) diff --git a/project1/.emacs.d/packages/gnupg/pubring.kbx b/project1/.emacs.d/packages/gnupg/pubring.kbx deleted file mode 100644 index fdccde2902ff016cfc870f98c4eef937f399f6c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1177 zcmZQzU{GLWWMJ}kib!Jsf>@46-$59}h5(jICPpwTj)8%Noq>@-=9G&L!%y*&kM)r^ zH@N$=HrMZcKO3k*0iqtLf`@^Dc|MS*2Nq#uV1dfODVPm2ne|vglrDM*axk=4e>nA} zNvGc~Dg8~_#iiG$mZ}E$PPy{`nW$XUl7!X$uUl$<?mWVBnB7wJ*{9_W2b!X-1U4T3 zXRdT~^^4ETSoVnhj?`+Z*=H;}dGo^kCv?xd99*|)(QIiA-Vcngj@+295dD4AvfLP- zh@Ue&B2DAAam?EJbIuZjqmhN*53S9e`seL>C#kY!i7Ug5B<~qq**Rw))048#oo9s- zZ*-JruUvicT?XS^_qrKEF%JS~Xf(3@wPIO(`*Tshe`m9wORJk);IV1#6IWl1-83m} z`uubeU)g$l=i;8Ghf}XumscD9oN07*_lkFg8>+W`*I0B_N~D{A=S$`Mqra`SrZ+^f zAAkKfDV&kv;f35C>wT|A_OaT`nd+(iErGebNvp6w(D`@z=W3y!sqFuK&oo82z5Uyz z_4!8l!OXK0UNU(6Q{h`awe;Y+I9o@B>J5LtP3W54&)u)Of7&y#rEH-q=AL@-`sL!! z(_VONnUvlq)Bf+b%M6=4t`kZPk_9YZzf+uaQc_J}v(S?NI*Up!%KUA}*n4lM?3rV{ zj~+?fkU12rc=FEH;O+&ff}1umzrB2L36q42qxH9Ek!wzEik3FL^DkFp+M$PMdUQoZ zHhRCSHn|<9d)Z~xiI+L2#IGLT%2j*isfU`wg#Wj0{$1Im_4}u$wE8xWztuT;_oC%P z62Eg={rRlFd{R{Ao3>{w!mfw=PUd-e|CYxkIc+tAMWsJ`l%yL?qB7dnWS<TG%&&WI zVW1=X|46O*O*IeN!{m&d<{sR_|Ju`ax|fdI%MWFT1gtn#vp(k9J9D1;$H?h5r)1gg zK02{QqiqhO9P=#Q%pV4AN~KYn6Zp@sHPu$@Z~d0iAa`F?e$!D;J^tkzs$!D=m7Ql( zZa=hHTU~XsP0Rc0+e@tWoafdl?f+A0d`EMql3>*1JgE~;xT=HugKYUlt`svTd3@`M zwLcqcdwbJbA=4zMhndbFS0y>~+}GN#+MRW-yVlEk*Sg~S`~S+eEZ=i-zg+E>53ANM zzVy+2PtcKvf^(N~J-lO{zBF#x-qIagL;t(8WmIgvP%7?wy7X6Dm5Y(f`Ar%!X8Th! zm9LtdSvSMKyCZ7vr7atPSu4FD9g-m#w&=P0g(|rE1UM=LXQt<6=A|n*rl;nWDA=Ut z6eJb{g&aT(z4W|Nz5JqdJE(3ZNIvXnU=appJPlSRP!?p8W@hE&Ok-?d<L2aGXJ%p( z<zV9E;${(JVrFELV`LI<VBq2ufMxgcjST;twd5x=9q(@c{pF~L%$fVHjIs;MdrrSk zv2|jvn7cCP8zaNCB@9nbuAck+hpGL7nZoDhtMnDkk9qr?uW8EXdP|n@;tgyJ%s}5T a%$2HtFZoz^hj;#U?O9WP<*(j&$OZt{Ui~)! diff --git a/project1/.emacs.d/packages/gnupg/trustdb.gpg b/project1/.emacs.d/packages/gnupg/trustdb.gpg deleted file mode 100644 index 4e69eed82312b72b6950b097b607f505c482d58a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1200 zcmZQfFGy!*W@Ke#Vql2nc=VkCJ7DC(E{-8OstzMazyhP;G8!(R5ExAdl%)dzFVh6D diff --git a/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete-autoloads.el b/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete-autoloads.el deleted file mode 100644 index f4876b1..0000000 --- a/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete-autoloads.el +++ /dev/null @@ -1,16 +0,0 @@ -;;; go-autocomplete-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil nil ("go-autocomplete.el") (23815 56396 514216 -;;;;;; 0)) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; go-autocomplete-autoloads.el ends here diff --git a/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete-pkg.el b/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete-pkg.el deleted file mode 100644 index f35f751..0000000 --- a/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "go-autocomplete" "20150904.240" "auto-complete-mode backend for go-mode" '((auto-complete "1.4.0")) :commit "7fb65232883f19a8305706b4b4ff32916ffbcaf5" :keywords '("languages") :authors '(("Mikhail" . "tensai@cirno.in")) :maintainer '("Mikhail" . "tensai@cirno.in")) diff --git a/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete-pkg.elc b/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete-pkg.elc deleted file mode 100644 index 32fce7066f243f92492891b15c22e29aa81b65b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmbtR%WmT^49wX-uvbEtO@P|4Wjl?VON*d~0^QT@572tVL~JRLlosvRFYRs%6b1HD z-N+fvP@Mh!<Kf3@waWJUJskXWrqSr7AP4sost8XeMDh+~Q#3_e6>@=}DGh+*2>zUC zqE}4JiAA=6e+G(RSqd)EM9?n|CsLrjiYbsg#w$icOn_P&4IfrjSIF**hW4!Cd;;ZN zLMC65&3D{!`Q7is!vm-R1FFP(UM=?MG(-;y9rOl9kDpBb{U?IKFp>$71}4h-&6n@+ ztv4_5-IrzAS{qBw<Y!bTJQ@&3pW`KY#Sx7r8396;Ra<stQ^=;|az^uaIG?;W(DSh2 zTUZ}}=jWb)pX>D}Du{}6EyZR7H#|O30oZ7XZJ+ts$}a95Y@b-C@EzOlBJUA48g zS7=)SHz)J*?1PT1D@Jt33vU|*Yq81T!`xqsUvwIfMgawgWL!kLRTP{r$SuATr#dIg KVX(~q+1X!w>CE{6 diff --git a/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete.el b/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete.el deleted file mode 100644 index b8a8ec6..0000000 --- a/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete.el +++ /dev/null @@ -1,212 +0,0 @@ -;;; go-autocomplete.el --- auto-complete-mode backend for go-mode - -;; Copyright (C) 2010 - -;; Author: Mikhail <tensai@cirno.in> Kuryshev -;; Keywords: languages -;; Package-Version: 20150904.240 -;; Package-Requires: ((auto-complete "1.4.0")) - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; Ensure that go-autocomplete in your load-path and add to your ~/.emacs -;; following line: -;; -;; (require 'go-autocomplete) - -;; Also you could setup any combination (for example M-TAB) -;; for invoking auto-complete: -;; -;; (require 'auto-complete-config) -;; (define-key ac-mode-map (kbd "M-TAB") 'auto-complete) - -;;; Code: - -(eval-when-compile - (require 'cl)) - -(require 'auto-complete) - -(declare-function yas-expand-snippet "yasnippet") - -(defgroup go-autocomplete nil - "auto-complete for go language." - :prefix "ac-go-" - :group 'auto-complete) - -(defcustom ac-go-expand-arguments-into-snippets t - "Expand function arguments into snippets. This feature requires `yasnippet'." - :type 'boolean - :group 'go-autocomplete) - -;; Close gocode daemon at exit unless it was already running -(eval-after-load "go-mode" - '(progn - (let* ((user (or (getenv "USER") "all")) - (sock (format (concat temporary-file-directory "gocode-daemon.%s") user))) - (unless (file-exists-p sock) - (add-hook 'kill-emacs-hook #'(lambda () - (ignore-errors - (call-process "gocode" nil nil nil "close")))))))) - -;(defvar go-reserved-keywords -; '("break" "case" "chan" "const" "continue" "default" "defer" "else" -; "fallthrough" "for" "func" "go" "goto" "if" "import" "interface" -; "map" "package" "range" "return" "select" "struct" "switch" "type" "var") -; "Go reserved keywords.") - -(defun ac-comphist-sort (db collection prefix &optional threshold) -;; redefine to disable sorting - (let (result - (n 0) - (total 0) - (cur 0)) - (setq result (mapcar (lambda (a) - (when (and cur threshold) - (if (>= cur (* total threshold)) - (setq cur nil) - (incf n) - (incf cur (cdr a)))) - (car a)) - (mapcar (lambda (string) - (let ((score (ac-comphist-score db string prefix))) - (incf total score) - (cons string score))) - collection))) - (if threshold - (cons n result) - result))) - -(defun ac-go-invoke-autocomplete () - (let ((temp-buffer (generate-new-buffer "*gocode*"))) - (unwind-protect - (progn - (call-process-region (point-min) - (point-max) - "gocode" - nil - temp-buffer - nil - "-f=emacs" - "autocomplete" - (or (buffer-file-name) "") - (concat "c" (int-to-string (- (point) 1)))) - (with-current-buffer temp-buffer (buffer-string))) - (kill-buffer temp-buffer)))) - -(defun ac-go-format-autocomplete (buffer-contents) - (sort - (split-string buffer-contents "\n" t) - (lambda (a b) (string< (downcase a) - (downcase b))))) - -(defun ac-go-get-candidates (strings) - (let ((prop (lambda (entry) - (let* ((name (nth 0 entry)) - (summary (nth 1 entry)) - (symbol (substring summary 0 1))) - (propertize name - 'summary summary - 'symbol symbol)))) - (split (lambda (strings) - (mapcar (lambda (str) - (split-string str ",," t)) - strings)))) - (mapcar prop (funcall split strings)))) - -(defun ac-go-action () - (let ((item (cdr ac-last-completion))) - (when (stringp item) - (let ((symbol (get-text-property 0 'summary item))) - (message "%s" symbol) - (when (and (featurep 'yasnippet) ac-go-expand-arguments-into-snippets) - (ac-go-insert-yas-snippet-string symbol)))))) - -(defun ac-go-insert-yas-snippet-string (s) - (let ((ret "") (pos (point)) match-res match args) - (save-match-data - (setq match-res (string-match "func(." s)) - (when (and match-res (= 0 match-res)) - (setq match (match-string 0 s)) - (unless (string= match "func()") - (setq args (ac-go-split-args s)) - (dolist (arg args) - (setq ret (concat ret "${" arg "}, "))) - (when (> (length ret) 2) - (setq ret (substring ret 0 (- (length ret) 2))))) - (setq ret (concat "(" ret ")")) - (yas-expand-snippet ret pos pos))))) - -(defun ac-go-split-args (args-str) - (let ((cur 5) - (pre 5) - (unmatch-l-paren-count 1) - (args (list)) - c) - (while (> unmatch-l-paren-count 0) - (setq c (aref args-str cur)) - (cond ((= ?\( c) - (setq unmatch-l-paren-count (1+ unmatch-l-paren-count))) - ((= ?\) c) - (setq unmatch-l-paren-count (1- unmatch-l-paren-count)) - (when (= 0 unmatch-l-paren-count) - (push (substring args-str pre cur) args))) - ((= ?\, c) - (when (= 1 unmatch-l-paren-count) - (push (substring args-str pre cur) args) - (setq cur (+ cur 2)) - (setq pre cur)))) - (setq cur (1+ cur))) - (nreverse args))) - -(defun ac-go-document (item) - (if (stringp item) - (let ((s (get-text-property 0 'summary item))) - (message "%s" s) - nil))) - -(defun ac-go-candidates () - (let ((candidates (ac-go-get-candidates - (ac-go-format-autocomplete (ac-go-invoke-autocomplete))))) - (if (equal candidates '("PANIC")) - (progn - (message "GOCODE PANIC: Please check your code by \"go build\"") - nil) - candidates))) - -(defun ac-go-prefix () - (or (ac-prefix-symbol) - (let ((c (char-before))) - (when (eq ?\. c) - (point))))) - -(ac-define-source go - '((candidates . ac-go-candidates) - (candidate-face . ac-candidate-face) - (selection-face . ac-selection-face) - (document . ac-go-document) - (action . ac-go-action) - (prefix . ac-go-prefix) - (requires . 0) - (cache))) - -(add-to-list 'ac-modes 'go-mode) - -(add-hook 'go-mode-hook #'(lambda () - (add-to-list 'ac-sources 'ac-source-go))) - -(provide 'go-autocomplete) -;;; go-autocomplete.el ends here diff --git a/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete.elc b/project1/.emacs.d/packages/go-autocomplete-20150904.240/go-autocomplete.elc deleted file mode 100644 index 7239866c81026a0ec6cc2b9c59f52300436b4508..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4583 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 diff --git a/project1/.emacs.d/packages/go-autocomplete-readme.txt b/project1/.emacs.d/packages/go-autocomplete-readme.txt deleted file mode 100644 index feb6c88..0000000 --- a/project1/.emacs.d/packages/go-autocomplete-readme.txt +++ /dev/null @@ -1,10 +0,0 @@ -Ensure that go-autocomplete in your load-path and add to your ~/.emacs -following line: - -(require 'go-autocomplete) - -Also you could setup any combination (for example M-TAB) -for invoking auto-complete: - -(require 'auto-complete-config) -(define-key ac-mode-map (kbd "M-TAB") 'auto-complete) diff --git a/project1/.emacs.d/packages/go-complete-20190409.516/go-complete-autoloads.el b/project1/.emacs.d/packages/go-complete-20190409.516/go-complete-autoloads.el deleted file mode 100644 index 95486a9..0000000 --- a/project1/.emacs.d/packages/go-complete-20190409.516/go-complete-autoloads.el +++ /dev/null @@ -1,22 +0,0 @@ -;;; go-complete-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil "go-complete" "go-complete.el" (23815 54139 -;;;;;; 916216 26000)) -;;; Generated autoloads from go-complete.el - -(autoload 'go-complete-at-point "go-complete" "\ -Complete go expression at point. - -\(fn)" t nil) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; go-complete-autoloads.el ends here diff --git a/project1/.emacs.d/packages/go-complete-20190409.516/go-complete-pkg.el b/project1/.emacs.d/packages/go-complete-20190409.516/go-complete-pkg.el deleted file mode 100644 index e19868c..0000000 --- a/project1/.emacs.d/packages/go-complete-20190409.516/go-complete-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "go-complete" "20190409.516" "Native code completion for Go" '((go-mode "0") (cl-lib "0.5")) :commit "056294014f37a1004958ec17ebd6748deed63502" :keywords '("go" "golang" "completion") :authors '(("Vibhav Pant" . "vibhavp@gmail.com")) :maintainer '("Vibhav Pant" . "vibhavp@gmail.com") :url "https://github.com/vibhavp/go-complete") diff --git a/project1/.emacs.d/packages/go-complete-20190409.516/go-complete-pkg.elc b/project1/.emacs.d/packages/go-complete-20190409.516/go-complete-pkg.elc deleted file mode 100644 index 2e1dcdd9513bce28147ed97d26ef77d3d0254b5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmbtS!ET%|5ZyCB(Cf&TvQl7yh24d{v|2?`q^hdas`tS*V8z(THXEg1pMge6t6nO_ z2gLKty!V*L`S#1@!)CLI&gU~+>^Lbc#R`;x+Yz~kt8`vj14WsZX_cqNT7Fbv0Mr`n z6x67GVW1wLMr-lMpgeR$1+$kP#FN2MaS)dK;FRh84ON{FfI>(CuTpuP7WF?I!V-tE z0k|~*sd)}va-tiPeExp9zXv{`LmtTI%_@&ZfVaTWKr2C8{7dBJdpt;VT1f|CpvGeV zTbK6muCo|;?}?%)7P3=DCKK`p>?N??CY<8YGDrrj$nrWXvzqca5d2Epze?JVSRQNF zl2~UQ+*t-6<Cw<BrOGn4g_!F^tCm1ovF#Qbni*9fTpfzK%<{6^A2H9evaU{&=SSI! z!?8RGDaB!5Wd(!gK|VcNCp?jpH}cS1ji#rUHv=Tq;2Z|)mbRGvRPBIQ_=YAhNP%5f wJbmg%R63=()eM0(W=e**|6>N4*=b-y2$OGiyPp2cxn1aXF9N$im$!|c0an4_zyJUM diff --git a/project1/.emacs.d/packages/go-complete-20190409.516/go-complete.el b/project1/.emacs.d/packages/go-complete-20190409.516/go-complete.el deleted file mode 100644 index a9574bf..0000000 --- a/project1/.emacs.d/packages/go-complete-20190409.516/go-complete.el +++ /dev/null @@ -1,132 +0,0 @@ -;;; go-complete.el --- Native code completion for Go -;; Copyright (C) 2015 Vibhav Pant - -;; Author: Vibhav Pant <vibhavp@gmail.com> -;; Version: 1.0 -;; Package-Version: 20190409.516 -;; Package-Requires: ((go-mode "0") (cl-lib "0.5")) -;; Keywords: go, golang, completion -;; URL: https://github.com/vibhavp/go-complete - -;;; Commentary: -;; This package provides native code completion for the Go Programming -;; Language. -;; To enable, ad the following code into your .emacs: -;; (require 'go-complete) -;; (add-hook 'completion-at-point-functions 'go-complete-at-point) -;; You need to have gocode (https://github.com/nsf/gocode) installed to use -;; this package. - -;;; License: - -;; This program is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see <http://www.gnu.org/licenses/>. - -;;; Code: - -(require 'cl-lib) - -(defcustom go-complete-gocode-command "gocode" - "The command to invoke `gocode'." - :group 'go-completion - :type 'string) - -(defun go-complete-run-gocode () - "Run gocode on the current point, return a buffer containing the output." - (let ((temp-buffer (generate-new-buffer "*gocode*"))) - (if (buffer-modified-p) - (call-process-region (point-min) - (point-max) - go-complete-gocode-command - nil - temp-buffer - nil - "-f=emacs" - "autocomplete" - buffer-file-name - (concat "c" (int-to-string (- (point) 1)))) - (call-process-region - (point-min) - (point-min) - go-complete-gocode-command - nil - temp-buffer - nil - "-f=emacs" - (format "--in=%s" buffer-file-name) - "autocomplete" - (concat "c" (int-to-string (- (point) 1))))) - temp-buffer)) - -(defun go-complete-char-at (string index) - "Return the character in STRING at index INDEX." - (substring string index (+ index 1))) - -(defun go-complete-args-commas (string) - "STRING is a function completion returned by gocode. -Return a string in the format foo(,,), where foo is the function -name, and the number of commas = number of arguments taken by the function" - (let ((index (string-match ",,func(" string)) - (args 0)) - (unless (or (eq index nil) (string= (go-complete-char-at string (+ index 1)) ")")) - (cl-incf index 2) - (while (and (not (eq index (- (length string) 1))) (not (string= (go-complete-char-at string index) ")"))) - (when (string= (go-complete-char-at string index) ",") - (cl-incf args)) - (cl-incf index)) - (format "(%s)" (make-string args ?,))))) - -(defun go-complete-make-completion (string) - "Take a completion STRING from gocode, return a completion string. -If STRING is a function completion, return foo(,,), where foo is the function -name, and the number of commas = number of arguments taken by the function" - (format "%s%s" - (substring string 0 (string-match "," string)) - (if (string-match ",,func(" string) (go-complete-args-commas string) ""))) - -(defun go-complete-make-completion-list (buffer) - "Take a BUFFER containing gocode output, return a list of completions. -The list returned is compatible with `completion-at-point-functions'" - (with-current-buffer buffer - (goto-char (point-min)) - (let ((completion-list '())) - (while (not (eq (point) (point-max))) - (setq completion-list - (append completion-list (list (go-complete-make-completion - (buffer-substring - (line-beginning-position) - (line-end-position)))))) - (forward-line)) - (kill-buffer buffer) - completion-list))) - -;;;###autoload -(defun go-complete-at-point () - "Complete go expression at point." - (interactive) - (when (derived-mode-p 'go-mode) - (let ((token (current-word t)) - (completing-field (string= "." (buffer-substring - (- (point) 1) (point))))) - (when (or token completing-field) - (list - (if completing-field - (point) - (save-excursion (left-word) (point))) - (point) - (go-complete-make-completion-list (go-complete-run-gocode)) - . - nil))))) - -(provide 'go-complete) -;;; go-complete.el ends here diff --git a/project1/.emacs.d/packages/go-complete-20190409.516/go-complete.elc b/project1/.emacs.d/packages/go-complete-20190409.516/go-complete.elc deleted file mode 100644 index 8edf60908634fc0e88796cf07cf69e07c6217e97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2986 zcmd5;U2oeq6!qI2zjYYacEHeUWo_)jGW6k(q(QK5Sy}`b+9C0P0d)Y&5)})TNL3$6 zv;O&=OG%EJF5AOiW`K!EUS5*toO>@1Pkudq*y(h7hlhuBtdcZ}MW8#8q?5$+bGi~) z9w|xAWIP#9?Xjb$ucKl^UL2E3iztcy^a|MI<DQ;eY@(b(xS}!_IR!V;OCp~F<>y5f z$;*6%*(@)}3jz_)b}Rc}>>PaIBT(=mRYAUzg$LuZ2+e(rNb{%j<I_{}H(uuX1<pCr z+j}ygT#@fdS__Jm_t_@(eR2|B7DpnZVgp0Rt@Z^D|LMmE_^-cSuQyoV6vFgXAjnv{ zmW5{bmyXRJ4w{QLL7Sq@(B?~*=WP4gS4+p58}u#{AIc~b<i}<lt;sL*LM3J({MgHc zdF5r1w+2C%3cDm}EU?|B;tjc<FoZ_cH^^9Q;HMrf6!^MQ?**-@`Mt40FD^4xrY&bI zm>0!ODyU-og7$~K-IsHh&PoY8eKXh;?77S`Aqz@XB#RMcq9`*-9<9qT1U)tDkd3xh zWs#P}_(^XNh|r58FQ>isC9+c17opvEGKw{R8m|5$28@7@`=rCTiC~AJ>$dS*N}vdY zZFhCv|LqyN47y`E(`t$MVhL!lr?3N0w*5DYyTh81LL{kKU#flLJFr(4CWnuSxB*2% zip&E)Qd~Fdjpx;>=SB^anW!KNBN3P>gdfLdnkir8xtWPeCPO1(hDU;98kBlv0TL?W z(e(|mT9}10E50aHS>hFBm}Vr8p612{*)9!sf1okVoZ0Y#*_`atSw)tnv57*C=kvwc z>6_OC50MPSM>>7;%gG=2lg1Hj!g%-Hpx$3E8<Nr80Ri^nZH-}j_JW!d+1CDkbtL=1 zZT3bA@+d5&&zXtk%OdB`N?^!4>zi7M<6eCaua+xcf$vnK5GpkojfNw--Ux&gx&-gq zp!VNmrbfhJ!^5&n){w3WtFX!Gs5Rtemt_LM!-Mx;AV=MN=IUN$V_jYaXMPJ5AcB0g zzPl_zYx<Z0`wm~TBY-yhhII>#%Y{}bwCq|xVq*HbqqS}?m%QNX?(1{5pS*1BZ_U3P zcGwGs-Gk1~;sN_+7Z`B9$8sCTv2|D=SnL@b8P74tS*hlauTm?c8ZjX@e?!J-#EcCL zvb18`VbW;C7#ifj(rDN*22XR0B>=Ng?__d8vs$jU<JNk09E%pPf-YKesHGZaDyikr z%0Vr=>Y(G^Y4~pn+phnA=tcw6y2v)jD(xU=Sq|sGZB2oY-lEU-WyYcc&)-(6Knb#( zhfJ}x`#GaczId7=S%AGev?9f9scn<m*0g~nGjB+n&*ybSPqw7}{QIj{Cui+~&=e9~ z6SlB>6i0YmRMA&QJ)R~D1g4(YCIAF6<AS#fmqPudS=|DKgk<WPWHwnO-@7+B?|_V& zixU9pDw_l8tos2$Vu>~XWyl||0v&LDhSue>q6<1P>h!69yfhxL*^Rab>^oZuY-^{9 zr)`aFvRkz=XL~PA1=3L)?K_7A8d8{R6bLC%UUAtx(iu{ZWAW|C`v@ha+U$a+HA#+R zPb!k!iGDotD*_vm_?Tv>J)CTj)HR0p=l%xeR=L(M9M;-&%$L@<^jGJrPmB$xo=2Q- zkm#(*<4%|DO#RR8cUI^*dmYTPlR2urZLNkYRxFxL{gVc|hG<+Ibu&id#-m13AhPHR zWfb*Ppq2tY{%Rg6=C#UTNd_K0u?UN*{|^{fe6$U2A1Ey(XYORk84q=JfXaOpVaxWj HX4v}+iQ$<@ diff --git a/project1/.emacs.d/packages/go-complete-readme.txt b/project1/.emacs.d/packages/go-complete-readme.txt deleted file mode 100644 index 8d79fcf..0000000 --- a/project1/.emacs.d/packages/go-complete-readme.txt +++ /dev/null @@ -1,7 +0,0 @@ -This package provides native code completion for the Go Programming -Language. -To enable, ad the following code into your .emacs: -(require 'go-complete) -(add-hook 'completion-at-point-functions 'go-complete-at-point) -You need to have gocode (https://github.com/nsf/gocode) installed to use -this package. diff --git a/project1/.emacs.d/packages/go-mode-20181012.329/go-mode-autoloads.el b/project1/.emacs.d/packages/go-mode-20181012.329/go-mode-autoloads.el deleted file mode 100644 index 8f1d086..0000000 --- a/project1/.emacs.d/packages/go-mode-20181012.329/go-mode-autoloads.el +++ /dev/null @@ -1,104 +0,0 @@ -;;; go-mode-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil "go-mode" "go-mode.el" (23815 54139 515561 -;;;;;; 384000)) -;;; Generated autoloads from go-mode.el - -(autoload 'go-mode "go-mode" "\ -Major mode for editing Go source text. - -This mode provides (not just) basic editing capabilities for -working with Go code. It offers almost complete syntax -highlighting, indentation that is almost identical to gofmt and -proper parsing of the buffer content to allow features such as -navigation by function, manipulation of comments or detection of -strings. - -In addition to these core features, it offers various features to -help with writing Go code. You can directly run buffer content -through gofmt, read godoc documentation from within Emacs, modify -and clean up the list of package imports or interact with the -Playground (uploading and downloading pastes). - -The following extra functions are defined: - -- `gofmt' -- `godoc' and `godoc-at-point' -- `go-import-add' -- `go-remove-unused-imports' -- `go-goto-arguments' -- `go-goto-docstring' -- `go-goto-function' -- `go-goto-function-name' -- `go-goto-imports' -- `go-goto-return-values' -- `go-goto-method-receiver' -- `go-play-buffer' and `go-play-region' -- `go-download-play' -- `godef-describe' and `godef-jump' -- `go-coverage' -- `go-set-project' -- `go-reset-gopath' - -If you want to automatically run `gofmt' before saving a file, -add the following hook to your emacs configuration: - -\(add-hook 'before-save-hook #'gofmt-before-save) - -If you want to use `godef-jump' instead of etags (or similar), -consider binding godef-jump to `M-.', which is the default key -for `find-tag': - -\(add-hook 'go-mode-hook (lambda () - (local-set-key (kbd \"M-.\") #'godef-jump))) - -Please note that godef is an external dependency. You can install -it with - -go get github.com/rogpeppe/godef - - -If you're looking for even more integration with Go, namely -on-the-fly syntax checking, auto-completion and snippets, it is -recommended that you look at flycheck -\(see URL `https://github.com/flycheck/flycheck') or flymake in combination -with goflymake (see URL `https://github.com/dougm/goflymake'), gocode -\(see URL `https://github.com/nsf/gocode'), go-eldoc -\(see URL `github.com/syohex/emacs-go-eldoc') and yasnippet-go -\(see URL `https://github.com/dominikh/yasnippet-go') - -\(fn)" t nil) - -(add-to-list 'auto-mode-alist (cons "\\.go\\'" 'go-mode)) - -(autoload 'gofmt-before-save "go-mode" "\ -Add this to .emacs to run gofmt on the current buffer when saving: -\(add-hook 'before-save-hook 'gofmt-before-save). - -Note that this will cause ‘go-mode’ to get loaded the first time -you save any file, kind of defeating the point of autoloading. - -\(fn)" t nil) - -(autoload 'godoc "go-mode" "\ -Show Go documentation for QUERY, much like \\<go-mode-map>\\[man]. - -\(fn QUERY)" t nil) - -(autoload 'go-download-play "go-mode" "\ -Download a paste from the playground and insert it in a Go buffer. -Tries to look for a URL at point. - -\(fn URL)" t nil) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; go-mode-autoloads.el ends here diff --git a/project1/.emacs.d/packages/go-mode-20181012.329/go-mode-pkg.el b/project1/.emacs.d/packages/go-mode-20181012.329/go-mode-pkg.el deleted file mode 100644 index b51b195..0000000 --- a/project1/.emacs.d/packages/go-mode-20181012.329/go-mode-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "go-mode" "20181012.329" "Major mode for the Go programming language" 'nil :commit "120fb911f1d8038f828da85eed8aaad977dabd8c" :keywords '("languages" "go") :authors '(("The go-mode Authors")) :maintainer '("The go-mode Authors") :url "https://github.com/dominikh/go-mode.el") diff --git a/project1/.emacs.d/packages/go-mode-20181012.329/go-mode-pkg.elc b/project1/.emacs.d/packages/go-mode-20181012.329/go-mode-pkg.elc deleted file mode 100644 index 4ccd472bf857e8e2ecd8b6dad9360ce5a2b797a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmbtS%Wm5+5cF9;(CdPi+CVIubb?UwDKLT}KznL_U`<jIYl<t7RD<;EyLQ|FMSIJh zxI2THeQ^Ky_3&x2SXBG{9u724J~(?xe1yjlO@^N?Wls^*ZGBtc$y#0D7heXz5P+uQ zNB;{8b8=l>z~{kd=vWHo>@wKbh@&@P$>frJ?DGwyDHlL%orQNR+0?4}N5c|pL@Hn? z7G&~Vy0zv?Tt9q2JUxLKFrg{j=gq|)qlHXhFv8J6ApFbZI!^|NDR`Hl3`|tJH(%bv zhvMA8N298$rFET;ZatwnVedfnv>wSi0YYu1mRqUnooYD!hCe958H0`=WpMC?U`o^{ z97kR@1dRR6A_Afh&>G@$0U_14J2p~w((3I_cUozS`p!A45z#jH_ZE*<8v*Ufy}nSg z89pz?AGOThJ&6^xIG2Ia8C;5Iw!gLt4{vp`V$R5SJKv7i%^Lq@K|7}aVkl+G?Pk;S X2b+&Ice}B~bNJJ+xhmH#h*k9)Y|zq8 diff --git a/project1/.emacs.d/packages/go-mode-20181012.329/go-mode.el b/project1/.emacs.d/packages/go-mode-20181012.329/go-mode.el deleted file mode 100644 index c3976a9..0000000 --- a/project1/.emacs.d/packages/go-mode-20181012.329/go-mode.el +++ /dev/null @@ -1,2049 +0,0 @@ -;;; go-mode.el --- Major mode for the Go programming language - -;;; Commentary: - -;; Copyright 2013 The go-mode Authors. All rights reserved. -;; Use of this source code is governed by a BSD-style -;; license that can be found in the LICENSE file. - -;; Author: The go-mode Authors -;; Version: 1.5.0 -;; Package-Version: 20181012.329 -;; Keywords: languages go -;; URL: https://github.com/dominikh/go-mode.el -;; -;; This file is not part of GNU Emacs. - -;;; Code: - -(require 'cl-lib) -(require 'compile) -(require 'etags) -(require 'ffap) -(require 'find-file) -(require 'ring) -(require 'url) -(require 'xref nil :noerror) ; xref is new in Emacs 25.1 - - -(eval-when-compile - (defmacro go--forward-word (&optional arg) - (if (fboundp 'forward-word-strictly) - `(forward-word-strictly ,arg) - `(forward-word ,arg)))) - -(defun go--delete-whole-line (&optional arg) - "Delete the current line without putting it in the `kill-ring'. -Derived from function `kill-whole-line'. ARG is defined as for that -function." - (setq arg (or arg 1)) - (if (and (> arg 0) - (eobp) - (save-excursion (forward-visible-line 0) (eobp))) - (signal 'end-of-buffer nil)) - (if (and (< arg 0) - (bobp) - (save-excursion (end-of-visible-line) (bobp))) - (signal 'beginning-of-buffer nil)) - (cond ((zerop arg) - (delete-region (progn (forward-visible-line 0) (point)) - (progn (end-of-visible-line) (point)))) - ((< arg 0) - (delete-region (progn (end-of-visible-line) (point)) - (progn (forward-visible-line (1+ arg)) - (unless (bobp) - (backward-char)) - (point)))) - (t - (delete-region (progn (forward-visible-line 0) (point)) - (progn (forward-visible-line arg) (point)))))) - -(defun go-goto-opening-parenthesis (&optional _legacy-unused) - "Move up one level of parentheses." - ;; The old implementation of go-goto-opening-parenthesis had an - ;; optional argument to speed up the function. It didn't change the - ;; function's outcome. - - ;; Silently fail if there's no matching opening parenthesis. - (condition-case nil - (backward-up-list) - (scan-error nil))) - - -(defconst go-dangling-operators-regexp "[^-]-\\|[^+]\\+\\|[/*&><.=|^]") -(defconst go--max-dangling-operator-length 2 - "The maximum length of dangling operators. -This must be at least the length of the longest string matched by -‘go-dangling-operators-regexp.’, and must be updated whenever -that constant is changed.") - -(defconst go-identifier-regexp "[[:word:][:multibyte:]]+") -(defconst go-type-name-no-prefix-regexp "\\(?:[[:word:][:multibyte:]]+\\.\\)?[[:word:][:multibyte:]]+") -(defconst go-qualified-identifier-regexp (concat go-identifier-regexp "\\." go-identifier-regexp)) -(defconst go-label-regexp go-identifier-regexp) -(defconst go-type-regexp "[[:word:][:multibyte:]*]+") -(defconst go-func-regexp (concat "\\_<func\\_>\\s *\\(" go-identifier-regexp "\\)")) -(defconst go-func-meth-regexp (concat - "\\_<func\\_>\\s *\\(?:(\\s *" - "\\(" go-identifier-regexp "\\s +\\)?" go-type-regexp - "\\s *)\\s *\\)?\\(" - go-identifier-regexp - "\\)(")) - -(defconst go-builtins - '("append" "cap" "close" "complex" "copy" - "delete" "imag" "len" "make" "new" - "panic" "print" "println" "real" "recover") - "All built-in functions in the Go language. Used for font locking.") - -(defconst go-mode-keywords - '("break" "default" "func" "interface" "select" - "case" "defer" "go" "map" "struct" - "chan" "else" "goto" "package" "switch" - "const" "fallthrough" "if" "range" "type" - "continue" "for" "import" "return" "var") - "All keywords in the Go language. Used for font locking.") - -(defconst go-constants '("nil" "true" "false" "iota")) -(defconst go-type-name-regexp (concat "\\(?:[*(]\\)*\\(\\(?:" go-identifier-regexp "\\.\\)?" go-identifier-regexp "\\)")) - -;; Maximum number of identifiers that can be highlighted as type names -;; in one function type/declaration. -(defconst go--font-lock-func-param-num-groups 16) - -(defvar go-dangling-cache) -(defvar go-godoc-history nil) -(defvar go--coverage-current-file-name) - -(defgroup go nil - "Major mode for editing Go code." - :link '(url-link "https://github.com/dominikh/go-mode.el") - :group 'languages) - -(defgroup go-cover nil - "Options specific to `cover`." - :group 'go) - -(defgroup godoc nil - "Options specific to `godoc'." - :group 'go) - -(defcustom go-fontify-function-calls t - "Fontify function and method calls if this is non-nil." - :type 'boolean - :group 'go) - -(defcustom go-mode-hook nil - "Hook called by `go-mode'." - :type 'hook - :group 'go) - -(defcustom go-command "go" - "The 'go' command. -Some users have multiple Go development trees and invoke the 'go' -tool via a wrapper that sets GOROOT and GOPATH based on the -current directory. Such users should customize this variable to -point to the wrapper script." - :type 'string - :group 'go) - -(defcustom gofmt-command "gofmt" - "The 'gofmt' command. -Some users may replace this with 'goimports' -from https://golang.org/x/tools/cmd/goimports." - :type 'string - :group 'go) - -(defcustom gofmt-args nil - "Additional arguments to pass to gofmt." - :type '(repeat string) - :group 'go) - -(defcustom gofmt-show-errors 'buffer - "Where to display gofmt error output. -It can either be displayed in its own buffer, in the echo area, or not at all. - -Please note that Emacs outputs to the echo area when writing -files and will overwrite gofmt's echo output if used from inside -a `before-save-hook'." - :type '(choice - (const :tag "Own buffer" buffer) - (const :tag "Echo area" echo) - (const :tag "None" nil)) - :group 'go) - -(defcustom godef-command "godef" - "The 'godef' command." - :type 'string - :group 'go) - -(defcustom go-other-file-alist - '(("_test\\.go\\'" (".go")) - ("\\.go\\'" ("_test.go"))) - "See the documentation of `ff-other-file-alist' for details." - :type '(repeat (list regexp (choice (repeat string) function))) - :group 'go) - -(defcustom go-packages-function 'go-packages-native - "Function called by `go-packages' to determine the list of available packages. -This is used in e.g. tab completion in `go-import-add'. - -This package provides two functions: `go-packages-native' uses -elisp to find all .a files in all /pkg/ directories. -`go-packages-go-list' uses 'go list all' to determine all Go -packages. `go-packages-go-list' generally produces more accurate -results, but can be slower than `go-packages-native'." - :type 'function - :package-version '(go-mode . 1.4.0) - :group 'go) - -(defcustom go-guess-gopath-functions (list #'go-godep-gopath - #'go-wgo-gopath - #'go-gb-gopath - #'go-plain-gopath) - "Functions to call in sequence to detect a project's GOPATH. - -The functions in this list will be called one after another, -until a function returns non-nil. The order of the functions in -this list is important, as some project layouts may superficially -look like others. For example, a subset of wgo projects look like -gb projects. That's why we need to detect wgo first, to avoid -mis-identifying them as gb projects." - :type '(repeat function) - :group 'go) - -(defcustom godoc-command "go doc" - "Which executable to use for `godoc'. -This can either be 'godoc' or 'go doc', both as an absolute path -or an executable in PATH." - :type 'string - :group 'go) - -(defcustom godoc-and-godef-command "godoc" - "Which executable to use for `godoc' in `godoc-and-godef-command'. -Must be 'godoc' and not 'go doc' and can be an absolute path or -an executable in PATH." - :type 'string - :group 'go) - -(defcustom godoc-use-completing-read nil - "Provide auto-completion for godoc. -Only really desirable when using `godoc' instead of `go doc'." - :type 'boolean - :group 'godoc) - -(defcustom godoc-at-point-function #'godoc-and-godef - "Function to call to display the documentation for an -identifier at a given position. - -This package provides two functions: `godoc-and-godef' uses a -combination of godef and godoc to find the documentation. This -approach has several caveats. See its documentation for more -information. The second function, `godoc-gogetdoc' uses an -additional tool that correctly determines the documentation for -any identifier. It provides better results than -`godoc-and-godef'." - :type 'function - :group 'godoc) - -(defun godoc-and-godef (point) - "Use a combination of godef and godoc to guess the documentation at POINT. - -Due to a limitation in godoc, it is not possible to differentiate -between functions and methods, which may cause `godoc-at-point' -to display more documentation than desired. Furthermore, it -doesn't work on package names or variables. - -Consider using ‘godoc-gogetdoc’ instead for more accurate results." - (condition-case nil - (let* ((output (godef--call point)) - (file (car output)) - (name-parts (split-string (cadr output) " ")) - (first (car name-parts))) - (if (not (godef--successful-p file)) - (message "%s" (godef--error file)) - (go--godoc (format "%s %s" - (file-name-directory file) - (if (or (string= first "type") (string= first "const")) - (cadr name-parts) - (car name-parts))) - godoc-and-godef-command))) - (file-error (message "Could not run godef binary")))) - -(defun godoc-gogetdoc (point) - "Use the gogetdoc tool to find the documentation for an identifier at POINT. - -You can install gogetdoc with 'go get -u github.com/zmb3/gogetdoc'." - (if (not (buffer-file-name (go--coverage-origin-buffer))) - ;; TODO: gogetdoc supports unsaved files, but not introducing - ;; new artifical files, so this limitation will stay for now. - (error "Cannot use gogetdoc on a buffer without a file name")) - (let ((posn (format "%s:#%d" (shell-quote-argument (file-truename buffer-file-name)) (1- (position-bytes point)))) - (out (godoc--get-buffer "<at point>"))) - (with-current-buffer (get-buffer-create "*go-gogetdoc-input*") - (setq buffer-read-only nil) - (erase-buffer) - (go--insert-modified-files) - (call-process-region (point-min) (point-max) "gogetdoc" nil out nil - "-modified" - (format "-pos=%s" posn))) - (with-current-buffer out - (goto-char (point-min)) - (godoc-mode) - (display-buffer (current-buffer) t)))) - -(defun go--kill-new-message (url) - "Make URL the latest kill and print a message." - (kill-new url) - (message "%s" url)) - -(defcustom go-play-browse-function 'go--kill-new-message - "Function to call with the Playground URL. -See `go-play-region' for more details." - :type '(choice - (const :tag "Nothing" nil) - (const :tag "Kill + Message" go--kill-new-message) - (const :tag "Browse URL" browse-url) - (function :tag "Call function")) - :group 'go) - -(defcustom go-coverage-display-buffer-func 'display-buffer-reuse-window - "How `go-coverage' should display the coverage buffer. -See `display-buffer' for a list of possible functions." - :type 'function - :group 'go-cover) - -(defface go-coverage-untracked - '((t (:foreground "#505050"))) - "Coverage color of untracked code." - :group 'go-cover) - -(defface go-coverage-0 - '((t (:foreground "#c00000"))) - "Coverage color for uncovered code." - :group 'go-cover) -(defface go-coverage-1 - '((t (:foreground "#808080"))) - "Coverage color for covered code with weight 1." - :group 'go-cover) -(defface go-coverage-2 - '((t (:foreground "#748c83"))) - "Coverage color for covered code with weight 2." - :group 'go-cover) -(defface go-coverage-3 - '((t (:foreground "#689886"))) - "Coverage color for covered code with weight 3." - :group 'go-cover) -(defface go-coverage-4 - '((t (:foreground "#5ca489"))) - "Coverage color for covered code with weight 4." - :group 'go-cover) -(defface go-coverage-5 - '((t (:foreground "#50b08c"))) - "Coverage color for covered code with weight 5." - :group 'go-cover) -(defface go-coverage-6 - '((t (:foreground "#44bc8f"))) - "Coverage color for covered code with weight 6." - :group 'go-cover) -(defface go-coverage-7 - '((t (:foreground "#38c892"))) - "Coverage color for covered code with weight 7." - :group 'go-cover) -(defface go-coverage-8 - '((t (:foreground "#2cd495"))) - "Coverage color for covered code with weight 8. -For mode=set, all covered lines will have this weight." - :group 'go-cover) -(defface go-coverage-9 - '((t (:foreground "#20e098"))) - "Coverage color for covered code with weight 9." - :group 'go-cover) -(defface go-coverage-10 - '((t (:foreground "#14ec9b"))) - "Coverage color for covered code with weight 10." - :group 'go-cover) -(defface go-coverage-covered - '((t (:foreground "#2cd495"))) - "Coverage color of covered code." - :group 'go-cover) - -(defvar go-mode-syntax-table - (let ((st (make-syntax-table))) - (modify-syntax-entry ?+ "." st) - (modify-syntax-entry ?- "." st) - (modify-syntax-entry ?% "." st) - (modify-syntax-entry ?& "." st) - (modify-syntax-entry ?| "." st) - (modify-syntax-entry ?^ "." st) - (modify-syntax-entry ?! "." st) - (modify-syntax-entry ?= "." st) - (modify-syntax-entry ?< "." st) - (modify-syntax-entry ?> "." st) - (modify-syntax-entry ?/ ". 124b" st) - (modify-syntax-entry ?* ". 23" st) - (modify-syntax-entry ?\n "> b" st) - (modify-syntax-entry ?\" "\"" st) - (modify-syntax-entry ?\' "\"" st) - (modify-syntax-entry ?` "\"" st) - (modify-syntax-entry ?\\ "\\" st) - ;; TODO make _ a symbol constituent now that xemacs is gone - (modify-syntax-entry ?_ "w" st) - - st) - "Syntax table for Go mode.") - -(defun go--build-font-lock-keywords () - ;; we cannot use 'symbols in regexp-opt because GNU Emacs <24 - ;; doesn't understand that - (append - `((go--match-func - ,@(mapcar (lambda (x) `(,x font-lock-type-face)) - (number-sequence 1 go--font-lock-func-param-num-groups))) - (,(concat "\\_<" (regexp-opt go-mode-keywords t) "\\_>") . font-lock-keyword-face) - (,(concat "\\(\\_<" (regexp-opt go-builtins t) "\\_>\\)[[:space:]]*(") 1 font-lock-builtin-face) - (,(concat "\\_<" (regexp-opt go-constants t) "\\_>") . font-lock-constant-face) - (,go-func-regexp 1 font-lock-function-name-face)) ;; function (not method) name - - (if go-fontify-function-calls - `((,(concat "\\(" go-identifier-regexp "\\)[[:space:]]*(") 1 font-lock-function-name-face) ;; function call/method name - (,(concat "[^[:word:][:multibyte:]](\\(" go-identifier-regexp "\\))[[:space:]]*(") 1 font-lock-function-name-face)) ;; bracketed function call - `((,go-func-meth-regexp 2 font-lock-function-name-face))) ;; method name - - `( - ("\\(`[^`]*`\\)" 1 font-lock-multiline) ;; raw string literal, needed for font-lock-syntactic-keywords - (,(concat "\\_<type\\_>[[:space:]]+\\([^[:space:](]+\\)") 1 font-lock-type-face) ;; types - (,(concat "\\_<type\\_>[[:space:]]+" go-identifier-regexp "[[:space:]]*" go-type-name-regexp) 1 font-lock-type-face) ;; types - (,(concat "[^[:word:][:multibyte:]]\\[\\([[:digit:]]+\\|\\.\\.\\.\\)?\\]" go-type-name-regexp) 2 font-lock-type-face) ;; Arrays/slices - (,(concat "\\(" go-identifier-regexp "\\)" "{") 1 font-lock-type-face) - (,(concat "\\_<map\\_>\\[[^]]+\\]" go-type-name-regexp) 1 font-lock-type-face) ;; map value type - (,(concat "\\_<map\\_>\\[" go-type-name-regexp) 1 font-lock-type-face) ;; map key type - (,(concat "\\_<chan\\_>[[:space:]]*\\(?:<-[[:space:]]*\\)?" go-type-name-regexp) 1 font-lock-type-face) ;; channel type - (,(concat "\\_<\\(?:new\\|make\\)\\_>\\(?:[[:space:]]\\|)\\)*(" go-type-name-regexp) 1 font-lock-type-face) ;; new/make type - ;; TODO do we actually need this one or isn't it just a function call? - (,(concat "\\.\\s *(" go-type-name-regexp) 1 font-lock-type-face) ;; Type conversion - ;; Like the original go-mode this also marks compound literal - ;; fields. There, it was marked as to fix, but I grew quite - ;; accustomed to it, so it'll stay for now. - (,(concat "^[[:space:]]*\\(" go-label-regexp "\\)[[:space:]]*:\\(\\S.\\|$\\)") 1 font-lock-constant-face) ;; Labels and compound literal fields - (,(concat "\\_<\\(goto\\|break\\|continue\\)\\_>[[:space:]]*\\(" go-label-regexp "\\)") 2 font-lock-constant-face)))) ;; labels in goto/break/continue - -(let ((m (define-prefix-command 'go-goto-map))) - (define-key m "a" #'go-goto-arguments) - (define-key m "d" #'go-goto-docstring) - (define-key m "f" #'go-goto-function) - (define-key m "i" #'go-goto-imports) - (define-key m "m" #'go-goto-method-receiver) - (define-key m "n" #'go-goto-function-name) - (define-key m "r" #'go-goto-return-values)) - -(defvar go-mode-map - (let ((m (make-sparse-keymap))) - (unless (boundp 'electric-indent-chars) - (define-key m "}" #'go-mode-insert-and-indent) - (define-key m ")" #'go-mode-insert-and-indent)) - (define-key m (kbd "C-c C-a") #'go-import-add) - (define-key m (kbd "C-c C-j") #'godef-jump) - (define-key m (kbd "C-x 4 C-c C-j") #'godef-jump-other-window) - (define-key m (kbd "C-c C-d") #'godef-describe) - (define-key m (kbd "C-c C-f") 'go-goto-map) - m) - "Keymap used by ‘go-mode’.") - -(easy-menu-define go-mode-menu go-mode-map - "Menu for Go mode." - '("Go" - ["Describe Expression" godef-describe t] - ["Jump to Definition" godef-jump t] - "---" - ["Add Import" go-import-add t] - ["Remove Unused Imports" go-remove-unused-imports t] - ["Go to Imports" go-goto-imports t] - "---" - ("Playground" - ["Send Buffer" go-play-buffer t] - ["Send Region" go-play-region t] - ["Download" go-download-play t]) - "---" - ["Coverage" go-coverage t] - ["Gofmt" gofmt t] - ["Godoc" godoc t] - "---" - ["Customize Mode" (customize-group 'go) t])) - -(defun go-mode-insert-and-indent (key) - "Invoke the global binding of KEY, then reindent the line." - - (interactive (list (this-command-keys))) - (call-interactively (lookup-key (current-global-map) key)) - (indent-according-to-mode)) - -(defmacro go-paren-level () - `(car (syntax-ppss))) - -(defmacro go-in-string-or-comment-p () - `(nth 8 (syntax-ppss))) - -(defmacro go-in-string-p () - `(nth 3 (syntax-ppss))) - -(defmacro go-in-comment-p () - `(nth 4 (syntax-ppss))) - -(defmacro go-goto-beginning-of-string-or-comment () - `(goto-char (nth 8 (syntax-ppss)))) - -(defun go--backward-irrelevant (&optional stop-at-string) - "Skip backwards over any characters that are irrelevant for -indentation and related tasks. - -It skips over whitespace, comments, cases and labels and, if -STOP-AT-STRING is not true, over strings." - - (let (pos (start-pos (point))) - (skip-chars-backward "\n\s\t") - (if (and (save-excursion (beginning-of-line) (go-in-string-p)) - (= (char-before) ?`) - (not stop-at-string)) - (backward-char)) - (if (and (go-in-string-p) - (not stop-at-string)) - (go-goto-beginning-of-string-or-comment)) - (if (looking-back "\\*/" (line-beginning-position)) - (backward-char)) - (if (go-in-comment-p) - (go-goto-beginning-of-string-or-comment)) - (setq pos (point)) - (beginning-of-line) - (if (or (looking-at (concat "^" go-label-regexp ":")) - (looking-at "^[[:space:]]*\\(case .+\\|default\\):")) - (end-of-line 0) - (goto-char pos)) - (if (/= start-pos (point)) - (go--backward-irrelevant stop-at-string)) - (/= start-pos (point)))) - -(defun go--buffer-narrowed-p () - "Return non-nil if the current buffer is narrowed." - (/= (buffer-size) - (- (point-max) - (point-min)))) - -(defun go-previous-line-has-dangling-op-p () - "Return non-nil if the current line is a continuation line." - (let* ((cur-line (line-number-at-pos)) - (val (gethash cur-line go-dangling-cache 'nope))) - (if (or (go--buffer-narrowed-p) (equal val 'nope)) - (save-excursion - (beginning-of-line) - (go--backward-irrelevant t) - (setq val (looking-back go-dangling-operators-regexp - (- (point) go--max-dangling-operator-length))) - (if (not (go--buffer-narrowed-p)) - (puthash cur-line val go-dangling-cache)))) - val)) - -(defun go--at-function-definition () - "Return non-nil if point is on the opening curly brace of a -function definition. - -We do this by first calling (beginning-of-defun), which will take -us to the start of *some* function. We then look for the opening -curly brace of that function and compare its position against the -curly brace we are checking. If they match, we return non-nil." - (if (= (char-after) ?\{) - (save-excursion - (let ((old-point (point)) - start-nesting) - (beginning-of-defun) - (when (looking-at "func ") - (setq start-nesting (go-paren-level)) - (skip-chars-forward "^{") - (while (> (go-paren-level) start-nesting) - (forward-char) - (skip-chars-forward "^{") 0) - (if (and (= (go-paren-level) start-nesting) (= old-point (point))) - t)))))) - -(defun go--indentation-for-opening-parenthesis () - "Return the semantic indentation for the current opening parenthesis. - -If point is on an opening curly brace and said curly brace -belongs to a function declaration, the indentation of the func -keyword will be returned. Otherwise the indentation of the -current line will be returned." - (save-excursion - (if (go--at-function-definition) - (progn - (beginning-of-defun) - (current-indentation)) - (current-indentation)))) - -(defun go-indentation-at-point () - (save-excursion - (let (start-nesting) - (back-to-indentation) - (setq start-nesting (go-paren-level)) - - (cond - ((go-in-string-p) - (current-indentation)) - ((looking-at "[])}]") - (go-goto-opening-parenthesis) - (if (go-previous-line-has-dangling-op-p) - (- (current-indentation) tab-width) - (go--indentation-for-opening-parenthesis))) - ((progn (go--backward-irrelevant t) - (looking-back go-dangling-operators-regexp - (- (point) go--max-dangling-operator-length))) - ;; only one nesting for all dangling operators in one operation - (if (go-previous-line-has-dangling-op-p) - (current-indentation) - (+ (current-indentation) tab-width))) - ((zerop (go-paren-level)) - 0) - ((progn (go-goto-opening-parenthesis) (< (go-paren-level) start-nesting)) - (if (go-previous-line-has-dangling-op-p) - (current-indentation) - (+ (go--indentation-for-opening-parenthesis) tab-width))) - (t - (current-indentation)))))) - -(defun go-mode-indent-line () - (interactive) - (let (indent - shift-amt - (pos (- (point-max) (point))) - (point (point)) - (beg (line-beginning-position))) - (back-to-indentation) - (if (go-in-string-or-comment-p) - (goto-char point) - (setq indent (go-indentation-at-point)) - (if (looking-at (concat go-label-regexp ":\\([[:space:]]*/.+\\)?$\\|case .+:\\|default:")) - (cl-decf indent tab-width)) - (setq shift-amt (- indent (current-column))) - (if (zerop shift-amt) - nil - (delete-region beg (point)) - (indent-to indent)) - ;; If initial point was within line's indentation, - ;; position after the indentation. Else stay at same point in text. - (if (> (- (point-max) pos) (point)) - (goto-char (- (point-max) pos)))))) - -(defun go-beginning-of-defun (&optional count) - (unless (bolp) - (end-of-line)) - (setq count (or count 1)) - (let (first failure) - (dotimes (i (abs count)) - (setq first t) - (while (and (not failure) - (or first (go-in-string-or-comment-p))) - (if (>= count 0) - (progn - (go--backward-irrelevant) - (if (not (re-search-backward go-func-meth-regexp nil t)) - (setq failure t))) - (if (looking-at go-func-meth-regexp) - (forward-char)) - (if (not (re-search-forward go-func-meth-regexp nil t)) - (setq failure t))) - (setq first nil))) - (if (< count 0) - (beginning-of-line)) - (not failure))) - -(defun go-end-of-defun () - (let (orig-level) - ;; It can happen that we're not placed before a function by emacs - (if (not (looking-at "func")) - (go-beginning-of-defun -1)) - ;; Find the { that starts the function, i.e., the next { that isn't - ;; preceded by struct or interface, or a comment or struct tag. BUG: - ;; breaks if there's a comment between the struct/interface keyword and - ;; bracket, like this: - ;; - ;; struct /* why? */ { - (while (progn - (skip-chars-forward "^{") - (forward-char) - (or (go-in-string-or-comment-p) - (looking-back "\\(struct\\|interface\\)\\s-*{" - (line-beginning-position))))) - (setq orig-level (go-paren-level)) - (while (>= (go-paren-level) orig-level) - (skip-chars-forward "^}") - (forward-char)))) - -(defun go--find-enclosing-parentheses (position) - "Return points of outermost '(' and ')' surrounding POSITION if -such parentheses exist. - -If outermost '(' exists but ')' does not, it returns the next blank -line or end-of-buffer position instead of the position of the closing -parenthesis. - -If the starting parenthesis is not found, it returns (POSITION -POSITION)." - (save-excursion - (let (beg end) - (goto-char position) - (while (> (go-paren-level) 0) - (re-search-backward "[(\\[{]" nil t) - (when (looking-at "(") - (setq beg (point)))) - (if (null beg) - (list position position) - (goto-char position) - (while (and (> (go-paren-level) 0) - (search-forward ")" nil t))) - (when (> (go-paren-level) 0) - (unless (re-search-forward "^[[:space:]]*$" nil t) - (goto-char (point-max)))) - (list beg (point)))))) - -(defun go--search-next-comma (end) - "Search forward from point for a comma whose nesting level is -the same as point. If it reaches the end of line or a closing -parenthesis before a comma, it stops at it." - (let ((orig-level (go-paren-level))) - (while (and (< (point) end) - (or (looking-at "[^,)\n]") - (> (go-paren-level) orig-level))) - (forward-char)) - (when (and (looking-at ",") - (< (point) (1- end))) - (forward-char)))) - -(defun go--looking-at-keyword () - (and (looking-at (concat "\\(" go-identifier-regexp "\\)")) - (member (match-string 1) go-mode-keywords))) - -(defun go--match-func (end) - "Search for identifiers used as type names from a function -parameter list, and set the identifier positions as the results -of last search. Return t if search succeeded." - (when (re-search-forward "\\_<func\\_>" end t) - (let ((regions (go--match-func-type-names end))) - (if (null regions) - ;; Nothing to highlight. This can happen if the current func - ;; is "func()". Try next one. - (go--match-func end) - ;; There are something to highlight. Set those positions as - ;; last search results. - (setq regions (go--filter-match-data regions end)) - (when regions - (set-match-data (go--make-match-data regions)) - t))))) - -(defun go--match-func-type-names (end) - (cond - ;; Function declaration (e.g. "func foo(") - ((looking-at (concat "[[:space:]\n]*" go-identifier-regexp "[[:space:]\n]*(")) - (goto-char (match-end 0)) - (nconc (go--match-parameter-list end) - (go--match-function-result end))) - ;; Method declaration, function literal, or function type - ((looking-at "[[:space:]]*(") - (goto-char (match-end 0)) - (let ((regions (go--match-parameter-list end))) - ;; Method declaration (e.g. "func (x y) foo(") - (when (looking-at (concat "[[:space:]]*" go-identifier-regexp "[[:space:]\n]*(")) - (goto-char (match-end 0)) - (setq regions (nconc regions (go--match-parameter-list end)))) - (nconc regions (go--match-function-result end)))))) - -(defun go--parameter-list-type (end) - "Return `present' if the parameter list has names, or `absent' if not. -Assumes point is at the beginning of a parameter list, just -after '('." - (save-excursion - (skip-chars-forward "[:space:]\n" end) - (cond ((> (point) end) - nil) - ((looking-at (concat go-identifier-regexp "[[:space:]\n]*,")) - (goto-char (match-end 0)) - (go--parameter-list-type end)) - ((or (looking-at go-qualified-identifier-regexp) - (looking-at (concat go-type-name-no-prefix-regexp "[[:space:]\n]*\\(?:)\\|\\'\\)")) - (go--looking-at-keyword) - (looking-at "[*\\[]\\|\\.\\.\\.\\|\\'")) - 'absent) - (t 'present)))) - -(defconst go--opt-dotdotdot-regexp "\\(?:\\.\\.\\.\\)?") -(defconst go--parameter-type-regexp - (concat go--opt-dotdotdot-regexp "[[:space:]*\n]*\\(" go-type-name-no-prefix-regexp "\\)[[:space:]\n]*\\([,)]\\|\\'\\)")) -(defconst go--func-type-in-parameter-list-regexp - (concat go--opt-dotdotdot-regexp "[[:space:]*\n]*\\(\\_<func\\_>" "\\)")) - -(defun go--match-parameters-common (identifier-regexp end) - (let ((acc ()) - (start -1)) - (while (progn (skip-chars-forward "[:space:]\n" end) - (and (not (looking-at "\\(?:)\\|\\'\\)")) - (< start (point)) - (<= (point) end))) - (setq start (point)) - (cond - ((looking-at (concat identifier-regexp go--parameter-type-regexp)) - (setq acc (nconc acc (list (match-beginning 1) (match-end 1)))) - (goto-char (match-beginning 2))) - ((looking-at (concat identifier-regexp go--func-type-in-parameter-list-regexp)) - (goto-char (match-beginning 1)) - (setq acc (nconc acc (go--match-func-type-names end))) - (go--search-next-comma end)) - (t - (go--search-next-comma end)))) - (when (and (looking-at ")") - (< (point) end)) - (forward-char)) - acc)) - -(defun go--match-parameters-with-identifier-list (end) - (go--match-parameters-common - (concat go-identifier-regexp "[[:space:]\n]+") - end)) - -(defun go--match-parameters-without-identifier-list (end) - (go--match-parameters-common "" end)) - -(defun go--filter-match-data (regions end) - "Remove points from REGIONS if they are beyond END. -REGIONS are a list whose size is multiple of 2. Element 2n is beginning of a -region and 2n+1 is end of it. - -This function is used to make sure we don't override end point -that `font-lock-mode' gave to us." - (when regions - (let* ((vec (vconcat regions)) - (i 0) - (len (length vec))) - (while (and (< i len) - (<= (nth i regions) end) - (<= (nth (1+ i) regions) end)) - (setq i (+ i 2))) - (cond ((= i len) - regions) - ((zerop i) - nil) - (t - (butlast regions (- (length regions) i))))))) - -(defun go--make-match-data (regions) - (let ((deficit (- (* 2 go--font-lock-func-param-num-groups) - (length regions)))) - (when (> deficit 0) - (let ((last (car (last regions)))) - (setq regions (nconc regions (make-list deficit last)))))) - `(,(car regions) ,@(last regions) ,@regions)) - -(defun go--match-parameter-list (end) - "Return a list of identifier positions that are used as type -names in a function parameter list, assuming point is at the -beginning of a parameter list. Return nil if the text after -point does not look like a parameter list. - -Set point to end of closing parenthesis on success. - -In Go, the names must either all be present or all be absent -within a list of parameters. - -Parsing a parameter list is a little bit complicated because we -have to scan through the parameter list to determine whether or -not the list has names. Until a type name is found or reaching -end of a parameter list, we are not sure which form the parameter -list is. - -For example, X and Y are type names in a parameter list \"(X, -Y)\" but are parameter names in \"(X, Y int)\". We cannot say if -X is a type name until we see int after Y. - -Note that even \"(int, float T)\" is a valid parameter -list. Builtin type names are not reserved words. In this example, -int and float are parameter names and only T is a type name. - -In this function, we first scan the parameter list to see if the -list has names, and then handle it accordingly." - (let ((name (go--parameter-list-type end))) - (cond ((eq name 'present) - (go--match-parameters-with-identifier-list end)) - ((eq name 'absent) - (go--match-parameters-without-identifier-list end)) - (t nil)))) - -(defun go--match-function-result (end) - "Return a list of identifier positions that are used as type -names in a function result, assuming point is at the beginning of -a result. - -Function result is a unparenthesized type or a parameter list." - (cond ((and (looking-at (concat "[[:space:]*]*\\(" go-type-name-no-prefix-regexp "\\)")) - (not (member (match-string 1) go-mode-keywords))) - (list (match-beginning 1) (match-end 1))) - ((looking-at "[[:space:]]*(") - (goto-char (match-end 0)) - (go--match-parameter-list end)) - (t nil))) - -(defun go--reset-dangling-cache-before-change (&optional _beg _end) - "Reset `go-dangling-cache'. - -This is intended to be called from `before-change-functions'." - (setq go-dangling-cache (make-hash-table :test 'eql))) - -;;;###autoload -(define-derived-mode go-mode prog-mode "Go" - "Major mode for editing Go source text. - -This mode provides (not just) basic editing capabilities for -working with Go code. It offers almost complete syntax -highlighting, indentation that is almost identical to gofmt and -proper parsing of the buffer content to allow features such as -navigation by function, manipulation of comments or detection of -strings. - -In addition to these core features, it offers various features to -help with writing Go code. You can directly run buffer content -through gofmt, read godoc documentation from within Emacs, modify -and clean up the list of package imports or interact with the -Playground (uploading and downloading pastes). - -The following extra functions are defined: - -- `gofmt' -- `godoc' and `godoc-at-point' -- `go-import-add' -- `go-remove-unused-imports' -- `go-goto-arguments' -- `go-goto-docstring' -- `go-goto-function' -- `go-goto-function-name' -- `go-goto-imports' -- `go-goto-return-values' -- `go-goto-method-receiver' -- `go-play-buffer' and `go-play-region' -- `go-download-play' -- `godef-describe' and `godef-jump' -- `go-coverage' -- `go-set-project' -- `go-reset-gopath' - -If you want to automatically run `gofmt' before saving a file, -add the following hook to your emacs configuration: - -\(add-hook 'before-save-hook #'gofmt-before-save) - -If you want to use `godef-jump' instead of etags (or similar), -consider binding godef-jump to `M-.', which is the default key -for `find-tag': - -\(add-hook 'go-mode-hook (lambda () - (local-set-key (kbd \"M-.\") #'godef-jump))) - -Please note that godef is an external dependency. You can install -it with - -go get github.com/rogpeppe/godef - - -If you're looking for even more integration with Go, namely -on-the-fly syntax checking, auto-completion and snippets, it is -recommended that you look at flycheck -\(see URL `https://github.com/flycheck/flycheck') or flymake in combination -with goflymake \(see URL `https://github.com/dougm/goflymake'), gocode -\(see URL `https://github.com/nsf/gocode'), go-eldoc -\(see URL `github.com/syohex/emacs-go-eldoc') and yasnippet-go -\(see URL `https://github.com/dominikh/yasnippet-go')" - - ;; Font lock - (set (make-local-variable 'font-lock-defaults) - '(go--build-font-lock-keywords)) - - ;; Indentation - (set (make-local-variable 'indent-line-function) #'go-mode-indent-line) - - ;; Comments - (set (make-local-variable 'comment-start) "// ") - (set (make-local-variable 'comment-end) "") - (set (make-local-variable 'comment-use-syntax) t) - (set (make-local-variable 'comment-start-skip) "\\(//+\\|/\\*+\\)\\s *") - - (set (make-local-variable 'beginning-of-defun-function) #'go-beginning-of-defun) - (set (make-local-variable 'end-of-defun-function) #'go-end-of-defun) - - (set (make-local-variable 'parse-sexp-lookup-properties) t) - (set (make-local-variable 'syntax-propertize-function) #'go-propertize-syntax) - - (if (boundp 'electric-indent-chars) - (set (make-local-variable 'electric-indent-chars) '(?\n ?} ?\)))) - - (set (make-local-variable 'compilation-error-screen-columns) nil) - - (set (make-local-variable 'go-dangling-cache) (make-hash-table :test 'eql)) - (add-hook 'before-change-functions #'go--reset-dangling-cache-before-change t t) - - ;; ff-find-other-file - (setq ff-other-file-alist 'go-other-file-alist) - - (setq imenu-generic-expression - '(("type" "^type *\\([^ \t\n\r\f]*\\)" 1) - ("func" "^func *\\(.*\\) {" 1))) - (imenu-add-to-menubar "Index") - - ;; Go style - (setq indent-tabs-mode t) - - ;; Handle unit test failure output in compilation-mode - ;; - ;; Note that we add our entry to the beginning of - ;; compilation-error-regexp-alist. In older versions of Emacs, the - ;; list was processed from the end, and we would've wanted to add - ;; ours last. But at some point this changed, and now the list is - ;; processed from the beginning. It's important that our entry comes - ;; before gnu, because gnu matches go test output, but includes the - ;; leading whitespace in the file name. - ;; - ;; http://lists.gnu.org/archive/html/bug-gnu-emacs/2001-12/msg00674.html - ;; documents the old, reverseed order. - (when (and (boundp 'compilation-error-regexp-alist) - (boundp 'compilation-error-regexp-alist-alist)) - (add-to-list 'compilation-error-regexp-alist 'go-test) - (add-to-list 'compilation-error-regexp-alist-alist - '(go-test . ("^\t+\\([^()\t\n]+\\):\\([0-9]+\\):? .*$" 1 2)) t))) - -;;;###autoload -(add-to-list 'auto-mode-alist (cons "\\.go\\'" 'go-mode)) - -(defun go--apply-rcs-patch (patch-buffer) - "Apply an RCS-formatted diff from PATCH-BUFFER to the current buffer." - (let ((target-buffer (current-buffer)) - ;; Relative offset between buffer line numbers and line numbers - ;; in patch. - ;; - ;; Line numbers in the patch are based on the source file, so - ;; we have to keep an offset when making changes to the - ;; buffer. - ;; - ;; Appending lines decrements the offset (possibly making it - ;; negative), deleting lines increments it. This order - ;; simplifies the forward-line invocations. - (line-offset 0) - (column (current-column))) - (save-excursion - (with-current-buffer patch-buffer - (goto-char (point-min)) - (while (not (eobp)) - (unless (looking-at "^\\([ad]\\)\\([0-9]+\\) \\([0-9]+\\)") - (error "Invalid rcs patch or internal error in go--apply-rcs-patch")) - (forward-line) - (let ((action (match-string 1)) - (from (string-to-number (match-string 2))) - (len (string-to-number (match-string 3)))) - (cond - ((equal action "a") - (let ((start (point))) - (forward-line len) - (let ((text (buffer-substring start (point)))) - (with-current-buffer target-buffer - (cl-decf line-offset len) - (goto-char (point-min)) - (forward-line (- from len line-offset)) - (insert text))))) - ((equal action "d") - (with-current-buffer target-buffer - (go--goto-line (- from line-offset)) - (cl-incf line-offset len) - (go--delete-whole-line len))) - (t - (error "Invalid rcs patch or internal error in go--apply-rcs-patch"))))))) - (move-to-column column))) - -(defun gofmt--is-goimports-p () - (string-equal (file-name-base gofmt-command) "goimports")) - -(defun gofmt () - "Format the current buffer according to the formatting tool. - -The tool used can be set via ‘gofmt-command` (default: gofmt) and additional -arguments can be set as a list via ‘gofmt-args`." - (interactive) - (let ((tmpfile (go--make-nearby-temp-file "gofmt" nil ".go")) - (patchbuf (get-buffer-create "*Gofmt patch*")) - (errbuf (if gofmt-show-errors (get-buffer-create "*Gofmt Errors*"))) - (coding-system-for-read 'utf-8) - (coding-system-for-write 'utf-8) - our-gofmt-args) - - (unwind-protect - (save-restriction - (widen) - (if errbuf - (with-current-buffer errbuf - (setq buffer-read-only nil) - (erase-buffer))) - (with-current-buffer patchbuf - (erase-buffer)) - - (write-region nil nil tmpfile) - - (when (and (gofmt--is-goimports-p) buffer-file-name) - (setq our-gofmt-args - (append our-gofmt-args - ;; srcdir, despite its name, supports - ;; accepting a full path, and some features - ;; of goimports rely on knowing the full - ;; name. - (list "-srcdir" (go--file-local-name - (file-truename buffer-file-name)))))) - (setq our-gofmt-args - (append our-gofmt-args gofmt-args - (list "-w" (go--file-local-name tmpfile)))) - (message "Calling gofmt: %s %s" gofmt-command our-gofmt-args) - ;; We're using errbuf for the mixed stdout and stderr output. This - ;; is not an issue because gofmt -w does not produce any stdout - ;; output in case of success. - (if (zerop (apply #'process-file gofmt-command nil errbuf nil our-gofmt-args)) - (progn - ;; There is no remote variant of ‘call-process-region’, but we - ;; can invoke diff locally, and the results should be the same. - (if (zerop (let ((local-copy (file-local-copy tmpfile))) - (unwind-protect - (call-process-region - (point-min) (point-max) "diff" nil patchbuf - nil "-n" "-" (or local-copy tmpfile)) - (when local-copy (delete-file local-copy))))) - (message "Buffer is already gofmted") - (go--apply-rcs-patch patchbuf) - (message "Applied gofmt")) - (if errbuf (gofmt--kill-error-buffer errbuf))) - (message "Could not apply gofmt") - (if errbuf (gofmt--process-errors (buffer-file-name) tmpfile errbuf)))) - - (kill-buffer patchbuf) - (delete-file tmpfile)))) - - -(defun gofmt--process-errors (filename tmpfile errbuf) - (with-current-buffer errbuf - (if (eq gofmt-show-errors 'echo) - (progn - (message "%s" (buffer-string)) - (gofmt--kill-error-buffer errbuf)) - ;; Convert the gofmt stderr to something understood by the compilation mode. - (goto-char (point-min)) - (if (save-excursion - (save-match-data - (search-forward "flag provided but not defined: -srcdir" nil t))) - (insert "Your version of goimports is too old and doesn't support vendoring. Please update goimports!\n\n")) - (insert "gofmt errors:\n") - (let ((truefile - (if (gofmt--is-goimports-p) - (concat (file-name-directory filename) (file-name-nondirectory tmpfile)) - tmpfile))) - (while (search-forward-regexp - (concat "^\\(" (regexp-quote (go--file-local-name truefile)) - "\\):") - nil t) - (replace-match (file-name-nondirectory filename) t t nil 1))) - (compilation-mode) - (display-buffer errbuf)))) - -(defun gofmt--kill-error-buffer (errbuf) - (let ((win (get-buffer-window errbuf))) - (if win - (quit-window t win) - (kill-buffer errbuf)))) - -;;;###autoload -(defun gofmt-before-save () - "Add this to .emacs to run gofmt on the current buffer when saving: -\(add-hook 'before-save-hook 'gofmt-before-save). - -Note that this will cause ‘go-mode’ to get loaded the first time -you save any file, kind of defeating the point of autoloading." - - (interactive) - (when (eq major-mode 'go-mode) (gofmt))) - -(defun godoc--read-query () - "Read a godoc query from the minibuffer." - (if godoc-use-completing-read - (completing-read "godoc; " - (go-packages) nil nil nil 'go-godoc-history) - (read-from-minibuffer "godoc: " nil nil nil 'go-godoc-history))) - -(defun godoc--get-buffer (query) - "Get an empty buffer for a godoc QUERY." - (let* ((buffer-name (concat "*godoc " query "*")) - (buffer (get-buffer buffer-name))) - ;; Kill the existing buffer if it already exists. - (when buffer (kill-buffer buffer)) - (get-buffer-create buffer-name))) - -(defun godoc--buffer-sentinel (proc event) - "Sentinel function run when godoc command completes." - (with-current-buffer (process-buffer proc) - (cond ((string= event "finished\n") ;; Successful exit. - (goto-char (point-min)) - (godoc-mode) - (display-buffer (current-buffer) t)) - ((/= (process-exit-status proc) 0) ;; Error exit. - (let ((output (buffer-string))) - (kill-buffer (current-buffer)) - (message (concat "godoc: " output))))))) - -(define-derived-mode godoc-mode special-mode "Godoc" - "Major mode for showing Go documentation." - (view-mode-enter)) - -;;;###autoload -(defun godoc (query) - "Show Go documentation for QUERY, much like \\<go-mode-map>\\[man]." - (interactive (list (godoc--read-query))) - (go--godoc query godoc-command)) - -(defun go--godoc (query command) - (unless (string= query "") - (set-process-sentinel - (start-process-shell-command "godoc" (godoc--get-buffer query) - (concat command " " query)) - 'godoc--buffer-sentinel) - nil)) - -(defun godoc-at-point (point) - "Show Go documentation for the identifier at POINT. - -It uses `godoc-at-point-function' to look up the documentation." - (interactive "d") - (funcall godoc-at-point-function point)) - -(defun go-goto-imports () - "Move point to the block of imports. - -If using - - import ( - \"foo\" - \"bar\" - ) - -it will move point directly behind the last import. - -If using - - import \"foo\" - import \"bar\" - -it will move point to the next line after the last import. - -If no imports can be found, point will be moved after the package -declaration." - (interactive) - ;; FIXME if there's a block-commented import before the real - ;; imports, we'll jump to that one. - - ;; Generally, this function isn't very forgiving. it'll bark on - ;; extra whitespace. It works well for clean code. - (let ((old-point (point))) - (goto-char (point-min)) - (cond - ((re-search-forward "^import ()" nil t) - (backward-char 1) - 'block-empty) - ((re-search-forward "^import ([^)]+)" nil t) - (backward-char 2) - 'block) - ((re-search-forward "\\(^import \\([^\"]+ \\)?\"[^\"]+\"\n?\\)+" nil t) - 'single) - ((re-search-forward "^[[:space:]\n]*package .+?\n" nil t) - (message "No imports found, moving point after package declaration") - 'none) - (t - (goto-char old-point) - (message "No imports or package declaration found. Is this really a Go file?") - 'fail)))) - -(defun go-play-buffer () - "Like `go-play-region', but acts on the entire buffer." - (interactive) - (go-play-region (point-min) (point-max))) - -(defun go-play-region (start end) - "Send the region between START and END to the Playground. -If non-nil `go-play-browse-function' is called with the -Playground URL." - (interactive "r") - (let* ((url-request-method "POST") - (url-request-extra-headers - '(("Content-Type" . "application/x-www-form-urlencoded"))) - (url-request-data - (encode-coding-string - (buffer-substring-no-properties start end) - 'utf-8)) - (content-buf (url-retrieve - "https://play.golang.org/share" - (lambda (arg) - (cond - ((equal :error (car arg)) - (signal 'go-play-error (cdr arg))) - (t - (re-search-forward "\n\n") - (let ((url (format "https://play.golang.org/p/%s" - (buffer-substring (point) (point-max))))) - (when go-play-browse-function - (funcall go-play-browse-function url))))))))))) - -;;;###autoload -(defun go-download-play (url) - "Download a paste from the playground and insert it in a Go buffer. -Tries to look for a URL at point." - (interactive (list (read-from-minibuffer "Playground URL: " (ffap-url-p (ffap-string-at-point 'url))))) - (with-current-buffer - (let ((url-request-method "GET") url-request-data url-request-extra-headers) - (url-retrieve-synchronously (concat url ".go"))) - (let ((buffer (generate-new-buffer (concat (car (last (split-string url "/"))) ".go")))) - (goto-char (point-min)) - (re-search-forward "\n\n") - (copy-to-buffer buffer (point) (point-max)) - (kill-buffer) - (with-current-buffer buffer - (go-mode) - (switch-to-buffer buffer))))) - -(defun go-propertize-syntax (start end) - (save-excursion - (goto-char start) - (while (search-forward "\\" end t) - (put-text-property (1- (point)) (point) 'syntax-table (if (= (char-after) ?`) '(1) '(9)))))) - -(defun go-import-add (arg import) - "Add a new IMPORT to the list of imports. - -When called with a prefix ARG asks for an alternative name to -import the package as. - -If no list exists yet, one will be created if possible. - -If an identical import has been commented, it will be -uncommented, otherwise a new import will be added." - - ;; - If there's a matching `// import "foo"`, uncomment it - ;; - If we're in an import() block and there's a matching `"foo"`, uncomment it - ;; - Otherwise add a new import, with the appropriate syntax - (interactive - (list - current-prefix-arg - (replace-regexp-in-string "^[\"']\\|[\"']$" "" (completing-read "Package: " (go-packages))))) - (save-excursion - (let (as line import-start) - (if arg - (setq as (read-from-minibuffer "Import as: "))) - (if as - (setq line (format "%s \"%s\"" as import)) - (setq line (format "\"%s\"" import))) - - (goto-char (point-min)) - (if (re-search-forward (concat "^[[:space:]]*//[[:space:]]*import " line "$") nil t) - (uncomment-region (line-beginning-position) (line-end-position)) - (cl-case (go-goto-imports) - ('fail (message "Could not find a place to add import.")) - ('block-empty - (insert "\n\t" line "\n")) - ('block - (save-excursion - (re-search-backward "^import (") - (setq import-start (point))) - (if (re-search-backward (concat "^[[:space:]]*//[[:space:]]*" line "$") import-start t) - (uncomment-region (line-beginning-position) (line-end-position)) - (insert "\n\t" line))) - ('single (insert "import " line "\n")) - ('none (insert "\nimport (\n\t" line "\n)\n"))))))) - -(defun go-root-and-paths () - (let* ((output (process-lines go-command "env" "GOROOT" "GOPATH")) - (root (car output)) - (paths (split-string (cadr output) path-separator))) - (cons root paths))) - -(defun go--string-prefix-p (s1 s2 &optional ignore-case) - "Return non-nil if S1 is a prefix of S2. -If IGNORE-CASE is non-nil, the comparison is case-insensitive." - (eq t (compare-strings s1 nil nil - s2 0 (length s1) ignore-case))) - -(defun go--directory-dirs (dir) - "Recursively return all subdirectories in DIR." - (if (file-directory-p dir) - (let ((dir (directory-file-name dir)) - (dirs '()) - (files (directory-files dir nil nil t))) - (dolist (file files) - (unless (member file '("." "..")) - (let ((file (concat dir "/" file))) - (if (file-directory-p file) - (setq dirs (append (cons file - (go--directory-dirs file)) - dirs)))))) - dirs) - '())) - - -(defun go-packages () - (funcall go-packages-function)) - -(defun go-packages-native () - "Return a list of all installed Go packages. -It looks for archive files in /pkg/." - (sort - (delete-dups - (cl-mapcan - (lambda (topdir) - (let ((pkgdir (concat topdir "/pkg/"))) - (cl-mapcan (lambda (dir) - (mapcar (lambda (file) - (let ((sub (substring file (length pkgdir) -2))) - (unless (or (go--string-prefix-p "obj/" sub) (go--string-prefix-p "tool/" sub)) - (mapconcat #'identity (cdr (split-string sub "/")) "/")))) - (if (file-directory-p dir) - (directory-files dir t "\\.a$")))) - (if (file-directory-p pkgdir) - (go--directory-dirs pkgdir))))) - (go-root-and-paths))) - #'string<)) - -(defun go-packages-go-list () - "Return a list of all Go packages, using `go list'." - (process-lines go-command "list" "-e" "all")) - -(defun go-unused-imports-lines () - (reverse (remove nil - (mapcar - (lambda (line) - (when (string-match "^\\(.+\\):\\([[:digit:]]+\\): imported and not used: \".+\".*$" line) - (let ((error-file-name (match-string 1 line)) - (error-line-num (match-string 2 line))) - (if (string= (file-truename error-file-name) (file-truename buffer-file-name)) - (string-to-number error-line-num))))) - (split-string (shell-command-to-string - (concat go-command - (if (string-match "_test\\.go$" buffer-file-truename) - " test -c" - (concat " build -o " null-device)) - " -gcflags=-e" - " " - (shell-quote-argument (file-truename buffer-file-name)))) "\n"))))) - -(defun go-remove-unused-imports (arg) - "Remove all unused imports. -If ARG is non-nil, unused imports will be commented, otherwise -they will be removed completely." - (interactive "P") - (save-excursion - (let ((cur-buffer (current-buffer)) flymake-state lines) - (when (boundp 'flymake-mode) - (setq flymake-state flymake-mode) - (flymake-mode-off)) - (save-some-buffers nil (lambda () (equal cur-buffer (current-buffer)))) - (if (buffer-modified-p) - (message "Cannot operate on unsaved buffer") - (setq lines (go-unused-imports-lines)) - (dolist (import lines) - (go--goto-line import) - (beginning-of-line) - (if arg - (comment-region (line-beginning-position) (line-end-position)) - (go--delete-whole-line))) - (message "Removed %d imports" (length lines))) - (if flymake-state (flymake-mode-on))))) - -(defun godef--find-file-line-column (specifier other-window) - "Given a file name in the format of `filename:line:column', -visit FILENAME and go to line LINE and column COLUMN." - (if (not (string-match "\\(.+\\):\\([0-9]+\\):\\([0-9]+\\)" specifier)) - ;; We've only been given a directory name - (funcall (if other-window #'find-file-other-window #'find-file) specifier) - (let ((filename (match-string 1 specifier)) - (line (string-to-number (match-string 2 specifier))) - (column (string-to-number (match-string 3 specifier)))) - (funcall (if other-window #'find-file-other-window #'find-file) filename) - (go--goto-line line) - (beginning-of-line) - (forward-char (1- column)) - (if (buffer-modified-p) - (message "Buffer is modified, file position might not have been correct"))))) - -(defun godef--call (point) - "Call godef, acquiring definition position and expression -description at POINT." - (if (not (buffer-file-name (go--coverage-origin-buffer))) - (error "Cannot use godef on a buffer without a file name") - (let ((outbuf (generate-new-buffer "*godef*")) - (coding-system-for-read 'utf-8) - (coding-system-for-write 'utf-8)) - (prog2 - (call-process-region (point-min) - (point-max) - godef-command - nil - outbuf - nil - "-i" - "-t" - "-f" - (file-truename (buffer-file-name (go--coverage-origin-buffer))) - "-o" - ;; Emacs point and byte positions are 1-indexed. - (number-to-string (1- (position-bytes point)))) - (with-current-buffer outbuf - (split-string (buffer-substring-no-properties (point-min) (point-max)) "\n")) - (kill-buffer outbuf))))) - -(defun godef--successful-p (output) - (not (or (string= "-" output) - (string= "godef: no identifier found" output) - (go--string-prefix-p "godef: no declaration found for " output) - (go--string-prefix-p "error finding import path for " output)))) - -(defun godef--error (output) - (cond - ((godef--successful-p output) - nil) - ((string= "-" output) - "godef: expression is not defined anywhere") - (t - output))) - -(defun godef-describe (point) - "Describe the expression at POINT." - (interactive "d") - (condition-case nil - (let ((description (cdr (butlast (godef--call point) 1)))) - (if (not description) - (message "No description found for expression at point") - (message "%s" (mapconcat #'identity description "\n")))) - (file-error (message "Could not run godef binary")))) - -(defun godef-jump (point &optional other-window) - "Jump to the definition of the expression at POINT." - (interactive "d") - (condition-case nil - (let ((file (car (godef--call point)))) - (if (not (godef--successful-p file)) - (message "%s" (godef--error file)) - (push-mark) - (if (eval-when-compile (fboundp 'xref-push-marker-stack)) - ;; TODO: Integrate this facility with XRef. - (xref-push-marker-stack) - (ring-insert find-tag-marker-ring (point-marker))) - (godef--find-file-line-column file other-window))) - (file-error (message "Could not run godef binary")))) - -(defun godef-jump-other-window (point) - (interactive "d") - (godef-jump point t)) - -(defun go--goto-line (line) - (goto-char (point-min)) - (forward-line (1- line))) - -(defun go--line-column-to-point (line column) - (save-excursion - (go--goto-line line) - (forward-char (1- column)) - (point))) - -(cl-defstruct go--covered - start-line start-column end-line end-column covered count) - -(defun go--coverage-file () - "Return the coverage file to use, either by reading it from the -current coverage buffer or by prompting for it." - (if (boundp 'go--coverage-current-file-name) - go--coverage-current-file-name - (read-file-name "Coverage file: " nil nil t))) - -(defun go--coverage-origin-buffer () - "Return the buffer to base the coverage on." - (or (buffer-base-buffer) (current-buffer))) - -(defun go--coverage-face (count divisor) - "Return the intensity face for COUNT when using DIVISOR -to scale it to a range [0,10]. - -DIVISOR scales the absolute cover count to values from 0 to 10. -For DIVISOR = 0 the count will always translate to 8." - (let* ((norm (cond - ((= count 0) - -0.1) ;; Uncovered code, set to -0.1 so n becomes 0. - ((= divisor 0) - 0.8) ;; covermode=set, set to 0.8 so n becomes 8. - (t - (/ (log count) divisor)))) - (n (1+ (floor (* norm 9))))) ;; Convert normalized count [0,1] to intensity [0,10] - (concat "go-coverage-" (number-to-string n)))) - -(defun go--coverage-make-overlay (range divisor) - "Create a coverage overlay for a RANGE of covered/uncovered code. -Use DIVISOR to scale absolute counts to a [0,10] scale." - (let* ((count (go--covered-count range)) - (face (go--coverage-face count divisor)) - (ov (make-overlay (go--line-column-to-point (go--covered-start-line range) - (go--covered-start-column range)) - (go--line-column-to-point (go--covered-end-line range) - (go--covered-end-column range))))) - - (overlay-put ov 'face face) - (overlay-put ov 'help-echo (format "Count: %d" count)))) - -(defun go--coverage-clear-overlays () - "Remove existing overlays and put a single untracked overlay -over the entire buffer." - (remove-overlays) - (overlay-put (make-overlay (point-min) (point-max)) - 'face - 'go-coverage-untracked)) - -(defun go--coverage-parse-file (coverage-file file-name) - "Parse COVERAGE-FILE and extract coverage information and -divisor for FILE-NAME." - (let (ranges - (max-count 0)) - (with-temp-buffer - (insert-file-contents coverage-file) - (go--goto-line 2) ;; Skip over mode - (while (not (eobp)) - (let* ((parts (split-string (buffer-substring (point-at-bol) (point-at-eol)) ":")) - (file (car parts)) - (rest (split-string (nth 1 parts) "[., ]"))) - - (cl-destructuring-bind - (start-line start-column end-line end-column num count) - (mapcar #'string-to-number rest) - - (when (string= (file-name-nondirectory file) file-name) - (if (> count max-count) - (setq max-count count)) - (push (make-go--covered :start-line start-line - :start-column start-column - :end-line end-line - :end-column end-column - :covered (/= count 0) - :count count) - ranges))) - - (forward-line))) - - (list ranges (if (> max-count 0) (log max-count) 0))))) - -(defun go-coverage (&optional coverage-file) - "Open a clone of the current buffer and overlay it with -coverage information gathered via go test -coverprofile=COVERAGE-FILE. - -If COVERAGE-FILE is nil, it will either be inferred from the -current buffer if it's already a coverage buffer, or be prompted -for." - (interactive) - (let* ((cur-buffer (current-buffer)) - (origin-buffer (go--coverage-origin-buffer)) - (gocov-buffer-name (concat (buffer-name origin-buffer) "<gocov>")) - (coverage-file (or coverage-file (go--coverage-file))) - (ranges-and-divisor (go--coverage-parse-file - coverage-file - (file-name-nondirectory (buffer-file-name origin-buffer)))) - (cov-mtime (nth 5 (file-attributes coverage-file))) - (cur-mtime (nth 5 (file-attributes (buffer-file-name origin-buffer))))) - - (if (< (float-time cov-mtime) (float-time cur-mtime)) - (message "Coverage file is older than the source file.")) - - (with-current-buffer (or (get-buffer gocov-buffer-name) - (make-indirect-buffer origin-buffer gocov-buffer-name t)) - (set (make-local-variable 'go--coverage-current-file-name) coverage-file) - - (save-excursion - (go--coverage-clear-overlays) - (dolist (range (car ranges-and-divisor)) - (go--coverage-make-overlay range (cadr ranges-and-divisor)))) - - (if (not (eq cur-buffer (current-buffer))) - (display-buffer (current-buffer) `(,go-coverage-display-buffer-func)))))) - -(defun go-goto-function (&optional arg) - "Go to the function defintion (named or anonymous) surrounding point. - -If we are on a docstring, follow the docstring down. -If no function is found, assume that we are at the top of a file -and search forward instead. - -If point is looking at the func keyword of an anonymous function, -go to the surrounding function. - -If ARG is non-nil, anonymous functions are ignored." - (interactive "P") - (let ((p (point))) - (cond - ((save-excursion - (beginning-of-line) - (looking-at "^//")) - ;; In case we are looking at the docstring, move on forward until we are - ;; not anymore - (beginning-of-line) - (while (looking-at "^//") - (forward-line 1)) - ;; If we are still not looking at a function, retry by calling self again. - (when (not (looking-at "\\<func\\>")) - (go-goto-function arg))) - - ;; If we're already looking at an anonymous func, look for the - ;; surrounding function. - ((and (looking-at "\\<func\\>") - (not (looking-at "^func\\>"))) - (re-search-backward "\\<func\\>" nil t)) - - ((not (looking-at "\\<func\\>")) - ;; If point is on the "func" keyword, step back a word and retry - (if (string= (symbol-name (symbol-at-point)) "func") - (backward-word) - ;; If we are not looking at the beginning of a function line, do a regexp - ;; search backwards - (re-search-backward "\\<func\\>" nil t)) - - ;; If nothing is found, assume that we are at the top of the file and - ;; should search forward instead. - (when (not (looking-at "\\<func\\>")) - (re-search-forward "\\<func\\>" nil t) - (go--forward-word -1)) - - ;; If we have landed at an anonymous function, it is possible that we - ;; were not inside it but below it. If we were not inside it, we should - ;; go to the containing function. - (while (and (not (go--in-function-p p)) - (not (looking-at "^func\\>"))) - (go-goto-function arg))))) - - (cond - ((go-in-comment-p) - ;; If we are still in a comment, redo the call so that we get out of it. - (go-goto-function arg)) - - ((and (looking-at "\\<func(") arg) - ;; If we are looking at an anonymous function and a prefix argument has - ;; been supplied, redo the call so that we skip the anonymous function. - (go-goto-function arg)))) - -(defun go--goto-opening-curly-brace () - ;; Find the { that starts the function, i.e., the next { that isn't - ;; preceded by struct or interface, or a comment or struct tag. BUG: - ;; breaks if there's a comment between the struct/interface keyword and - ;; bracket, like this: - ;; - ;; struct /* why? */ { - (go--goto-return-values) - (while (progn - (skip-chars-forward "^{") - (forward-char) - (or (go-in-string-or-comment-p) - (looking-back "\\(struct\\|interface\\)\\s-*{" - (line-beginning-position))))) - (backward-char)) - -(defun go--in-function-p (compare-point) - "Return t if COMPARE-POINT lies inside the function immediately surrounding point." - (save-excursion - (when (not (looking-at "\\<func\\>")) - (go-goto-function)) - (let ((start (point))) - (go--goto-opening-curly-brace) - - (unless (looking-at "{") - (error "Expected to be looking at opening curly brace")) - (forward-list 1) - (and (>= compare-point start) - (<= compare-point (point)))))) - -(defun go-goto-function-name (&optional arg) - "Go to the name of the current function. - -If the function is a test, place point after 'Test'. -If the function is anonymous, place point on the 'func' keyword. - -If ARG is non-nil, anonymous functions are skipped." - (interactive "P") - (when (not (looking-at "\\<func\\>")) - (go-goto-function arg)) - ;; If we are looking at func( we are on an anonymous function and - ;; nothing else should be done. - (when (not (looking-at "\\<func(")) - (let ((words 1) - (chars 1)) - (when (looking-at "\\<func (") - (setq words 3 - chars 2)) - (go--forward-word words) - (forward-char chars) - (when (looking-at "Test") - (forward-char 4))))) - -(defun go-goto-arguments (&optional arg) - "Go to the arguments of the current function. - -If ARG is non-nil, anonymous functions are skipped." - (interactive "P") - (go-goto-function-name arg) - (go--forward-word 1) - (forward-char 1)) - -(defun go--goto-return-values (&optional arg) - "Go to the declaration of return values for the current function." - (go-goto-arguments arg) - (backward-char) - (forward-list) - (forward-char)) - -(defun go-goto-return-values (&optional arg) - "Go to the return value declaration of the current function. - -If there are multiple ones contained in a parenthesis, enter the parenthesis. -If there is none, make space for one to be added. - -If ARG is non-nil, anonymous functions are skipped." - (interactive "P") - (go--goto-return-values arg) - - ;; Opening parenthesis, enter it - (when (looking-at "(") - (forward-char 1)) - - ;; No return arguments, add space for adding - (when (looking-at "{") - (insert " ") - (backward-char 1))) - -(defun go-goto-method-receiver (&optional arg) - "Go to the receiver of the current method. - -If there is none, add parenthesis to add one. - -Anonymous functions cannot have method receivers, so when this is called -interactively anonymous functions will be skipped. If called programmatically, -an error is raised unless ARG is non-nil." - (interactive "P") - - (when (and (not (called-interactively-p 'interactive)) - (not arg) - (go--in-anonymous-funcion-p)) - (error "Anonymous functions cannot have method receivers")) - - (go-goto-function t) ; Always skip anonymous functions - (forward-char 5) - (when (not (looking-at "(")) - (save-excursion - (insert "() "))) - (forward-char 1)) - -(defun go-goto-docstring (&optional arg) - "Go to the top of the docstring of the current function. - -If there is none, add one beginning with the name of the current function. - -Anonymous functions do not have docstrings, so when this is called -interactively anonymous functions will be skipped. If called programmatically, -an error is raised unless ARG is non-nil." - (interactive "P") - - (when (and (not (called-interactively-p 'interactive)) - (not arg) - (go--in-anonymous-funcion-p)) - (error "Anonymous functions do not have docstrings")) - - (go-goto-function t) - (forward-line -1) - (beginning-of-line) - - (while (looking-at "^//") - (forward-line -1)) - (forward-line 1) - (beginning-of-line) - - (cond - ;; If we are looking at an empty comment, add a single space in front of it. - ((looking-at "^//$") - (forward-char 2) - (insert (format " %s " (go--function-name t)))) - ;; If we are not looking at the function signature, we are looking at a docstring. - ;; Move to the beginning of the first word of it. - ((not (looking-at "^func")) - (forward-char 3)) - ;; If we are still at the function signature, we should add a new docstring. - (t - (forward-line -1) - (newline) - (insert "// ") - (insert (go--function-name t))))) - -(defun go--function-name (&optional arg) - "Return the name of the surrounding function. - -If ARG is non-nil, anonymous functions will be ignored and the -name returned will be that of the top-level function. If ARG is -nil and the surrounding function is anonymous, nil will be -returned." - (when (or (not (go--in-anonymous-funcion-p)) - arg) - (save-excursion - (go-goto-function-name t) - (symbol-name (symbol-at-point))))) - -(defun go--in-anonymous-funcion-p () - "Return t if point is inside an anonymous function, nil otherwise." - (save-excursion - (go-goto-function) - (looking-at "\\<func("))) - -(defun go-guess-gopath (&optional buffer) - "Determine a suitable GOPATH for BUFFER, or the current buffer if BUFFER is nil. - -This function supports gb-based projects as well as Godep, in -addition to ordinary uses of GOPATH." - (with-current-buffer (or buffer (current-buffer)) - (let ((gopath (cl-some (lambda (el) (funcall el)) - go-guess-gopath-functions))) - (if gopath - (mapconcat - (lambda (el) (file-truename el)) - gopath - path-separator))))) - -(defun go-plain-gopath () - "Detect a normal GOPATH, by looking for the first `src' -directory up the directory tree." - (let ((d (locate-dominating-file buffer-file-name "src"))) - (if d - (list d)))) - -(defun go-godep-gopath () - "Detect a Godeps workspace by looking for Godeps/_workspace up -the directory tree. The result is combined with that of -`go-plain-gopath'." - (let* ((d (locate-dominating-file buffer-file-name "Godeps")) - (workspace (concat d - (file-name-as-directory "Godeps") - (file-name-as-directory "_workspace")))) - (if (and d - (file-exists-p workspace)) - (list workspace - (locate-dominating-file buffer-file-name "src"))))) - -(defun go-gb-gopath () - "Detect a gb project." - (or (go--gb-vendor-gopath) - (go--gb-vendor-gopath-reverse))) - -(defun go--gb-vendor-gopath () - (let* ((d (locate-dominating-file buffer-file-name "src")) - (vendor (concat d (file-name-as-directory "vendor")))) - (if (and d - (file-exists-p vendor)) - (list d vendor)))) - -(defun go--gb-vendor-gopath-reverse () - (let* ((d (locate-dominating-file buffer-file-name "vendor")) - (src (concat d (file-name-as-directory "src")))) - (if (and d - (file-exists-p src)) - (list d (concat d - (file-name-as-directory "vendor")))))) - -(defun go-wgo-gopath () - "Detect a wgo project." - (or (go--wgo-gocfg "src") - (go--wgo-gocfg "vendor"))) - -(defun go--wgo-gocfg (needle) - (let* ((d (locate-dominating-file buffer-file-name needle)) - (gocfg (concat d (file-name-as-directory ".gocfg")))) - (if (and d - (file-exists-p gocfg)) - (with-temp-buffer - (insert-file-contents (concat gocfg "gopaths")) - (append - (mapcar (lambda (el) (concat d (file-name-as-directory el))) (split-string (buffer-string) "\n" t)) - (list (go-original-gopath))))))) - -(defun go-set-project (&optional buffer) - "Set GOPATH based on `go-guess-gopath' for BUFFER, or the current buffer if BUFFER is nil. - -If go-guess-gopath returns nil, that is if it couldn't determine -a valid value for GOPATH, GOPATH will be set to the initial value -of when Emacs was started. - -This function can for example be used as a -projectile-switch-project-hook, or simply be called manually when -switching projects." - (interactive) - (let ((gopath (or (go-guess-gopath buffer) - (go-original-gopath)))) - (setenv "GOPATH" gopath) - (message "Set GOPATH to %s" gopath))) - -(defun go-reset-gopath () - "Reset GOPATH to the value it had when Emacs started." - (interactive) - (let ((gopath (go-original-gopath))) - (setenv "GOPATH" gopath) - (message "Set GOPATH to %s" gopath))) - -(defun go-original-gopath () - "Return the original value of GOPATH from when Emacs was started." - (let ((process-environment initial-environment)) (getenv "GOPATH"))) - -(defun go--insert-modified-files () - "Insert the contents of each modified Go buffer into the -current buffer in the format specified by guru's -modified flag." - (mapc #'(lambda (b) - (and (buffer-modified-p b) - (buffer-file-name b) - (string= (file-name-extension (buffer-file-name b)) "go") - (go--insert-modified-file (buffer-file-name b) b))) - (buffer-list))) - -(defun go--insert-modified-file (name buffer) - (insert (format "%s\n%d\n" name (go--buffer-size-bytes buffer))) - (insert-buffer-substring buffer)) - -(defun go--buffer-size-bytes (&optional buffer) - (message "buffer; %s" buffer) - "Return the number of bytes in the current buffer. -If BUFFER, return the number of characters in that buffer instead." - (with-current-buffer (or buffer (current-buffer)) - (1- (position-bytes (point-max))))) - - -;; Polyfills for functions added in Emacs 26. Remove these once we don’t -;; support Emacs 25 any more. -(defalias 'go--file-local-name - (if (fboundp 'file-local-name) #'file-local-name - (lambda (file) (or (file-remote-p file 'localname) file)))) - -(defalias 'go--make-nearby-temp-file - (if (fboundp 'make-nearby-temp-file) #'make-nearby-temp-file - (lambda (prefix &optional dir-flag suffix) - (let ((temporary-file-directory (go--temporary-file-directory))) - (make-temp-file prefix dir-flag suffix))))) - -(defalias 'go--temporary-file-directory - (if (fboundp 'temporary-file-directory) #'temporary-file-directory - (lambda () - (let ((remote (file-remote-p default-directory))) - (if remote - ;; Assume that /tmp is a temporary directory on the remote host. - ;; This won’t work on Windows. - (concat remote "/tmp") - temporary-file-directory))))) - -(provide 'go-mode) - -;;; go-mode.el ends here diff --git a/project1/.emacs.d/packages/go-mode-20181012.329/go-mode.elc b/project1/.emacs.d/packages/go-mode-20181012.329/go-mode.elc deleted file mode 100644 index 91cf8cde0acd174ede9f1dc9603443d8187adaf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71431 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 Jh{VI_{vQQ;I-vjn diff --git a/project1/.emacs.d/packages/let-alist-1.0.5/let-alist-autoloads.el b/project1/.emacs.d/packages/let-alist-1.0.5/let-alist-autoloads.el deleted file mode 100644 index 874276a..0000000 --- a/project1/.emacs.d/packages/let-alist-1.0.5/let-alist-autoloads.el +++ /dev/null @@ -1,50 +0,0 @@ -;;; let-alist-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil "let-alist" "let-alist.el" (23815 54532 920722 -;;;;;; 715000)) -;;; Generated autoloads from let-alist.el - -(autoload 'let-alist "let-alist" "\ -Let-bind dotted symbols to their cdrs in ALIST and execute BODY. -Dotted symbol is any symbol starting with a `.'. Only those present -in BODY are let-bound and this search is done at compile time. - -For instance, the following code - - (let-alist alist - (if (and .title .body) - .body - .site - .site.contents)) - -essentially expands to - - (let ((.title (cdr (assq \\='title alist))) - (.body (cdr (assq \\='body alist))) - (.site (cdr (assq \\='site alist))) - (.site.contents (cdr (assq \\='contents (cdr (assq \\='site alist)))))) - (if (and .title .body) - .body - .site - .site.contents)) - -If you nest `let-alist' invocations, the inner one can't access -the variables of the outer one. You can, however, access alists -inside the original alist by using dots inside the symbol, as -displayed in the example above. - -\(fn ALIST &rest BODY)" nil t) - -(put 'let-alist 'lisp-indent-function '1) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; let-alist-autoloads.el ends here diff --git a/project1/.emacs.d/packages/let-alist-1.0.5/let-alist-pkg.el b/project1/.emacs.d/packages/let-alist-1.0.5/let-alist-pkg.el deleted file mode 100644 index 247d8c9..0000000 --- a/project1/.emacs.d/packages/let-alist-1.0.5/let-alist-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "let-alist" "1.0.5" "Easily let-bind values of an assoc-list by their names" '((emacs "24.1")) :url "http://elpa.gnu.org/packages/let-alist.html" :keywords '("extensions" "lisp")) diff --git a/project1/.emacs.d/packages/let-alist-1.0.5/let-alist-pkg.elc b/project1/.emacs.d/packages/let-alist-1.0.5/let-alist-pkg.elc deleted file mode 100644 index 141b1c816275da4559ef04f3e6add6eb9c09ed4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmbtSy>7xV5N6H`bUk?~NW>HhQh}*L3`pJD7dY&LSU7g%bD-(d_ec>^)v;bI`#XO> zcV2JbHV=crpjfZhu!(i!JlX!>0&HtE3};I0Vu0CP&-G%eXFYszxdQYaVv}9%zA#G- z>!JrgD#vgTDrlJ)Y!|S025dB(lM6>43z|3sT1yu0Qq!fLE&p)XC>$YXFfnA5;x-@3 z7r6=L>-%Q615;r_lf~z_m&ag%BNz;@C-4z}iQMuq5GL;^L9V25_WYwOefZb98u;%j ziehN#-~yEmniC!gl&4&xcbpZdseaN6*|*5fcW{OFPBNd-x6-P3011T5(UjL0u<s-z zxdbu>Vg--GA@!qGGSjIVjbPO#530(!SxqM78`Q_p>X?p`n*pBO4d^P@Ucu@_-6bZ= TLZ|36Q@H*TVOOHr2x;*RQiZin diff --git a/project1/.emacs.d/packages/let-alist-1.0.5/let-alist.el b/project1/.emacs.d/packages/let-alist-1.0.5/let-alist.el deleted file mode 100644 index 43973c2..0000000 --- a/project1/.emacs.d/packages/let-alist-1.0.5/let-alist.el +++ /dev/null @@ -1,182 +0,0 @@ -;;; let-alist.el --- Easily let-bind values of an assoc-list by their names -*- lexical-binding: t; -*- - -;; Copyright (C) 2014-2017 Free Software Foundation, Inc. - -;; Author: Artur Malabarba <emacs@endlessparentheses.com> -;; Package-Requires: ((emacs "24.1")) -;; Version: 1.0.5 -;; Keywords: extensions lisp -;; Prefix: let-alist -;; Separator: - - -;; This is an Elpa :core package. Don't use functionality that is not -;; compatible with Emacs 24.1. - -;; This file is part of GNU Emacs. - -;; GNU Emacs 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. - -;; GNU Emacs 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; This package offers a single macro, `let-alist'. This macro takes a -;; first argument (whose value must be an alist) and a body. -;; -;; The macro expands to a let form containing body, where each dotted -;; symbol inside body is let-bound to their cdrs in the alist. Dotted -;; symbol is any symbol starting with a `.'. Only those present in -;; the body are let-bound and this search is done at compile time. -;; -;; For instance, the following code -;; -;; (let-alist alist -;; (if (and .title .body) -;; .body -;; .site -;; .site.contents)) -;; -;; essentially expands to -;; -;; (let ((.title (cdr (assq 'title alist))) -;; (.body (cdr (assq 'body alist))) -;; (.site (cdr (assq 'site alist))) -;; (.site.contents (cdr (assq 'contents (cdr (assq 'site alist)))))) -;; (if (and .title .body) -;; .body -;; .site -;; .site.contents)) -;; -;; If you nest `let-alist' invocations, the inner one can't access -;; the variables of the outer one. You can, however, access alists -;; inside the original alist by using dots inside the symbol, as -;; displayed in the example above by the `.site.contents'. -;; -;;; Code: - - -(defun let-alist--deep-dot-search (data) - "Return alist of symbols inside DATA that start with a `.'. -Perform a deep search and return an alist where each car is the -symbol, and each cdr is the same symbol without the `.'." - (cond - ((symbolp data) - (let ((name (symbol-name data))) - (when (string-match "\\`\\." name) - ;; Return the cons cell inside a list, so it can be appended - ;; with other results in the clause below. - (list (cons data (intern (replace-match "" nil nil name))))))) - ((not (consp data)) nil) - ((eq (car data) 'let-alist) - ;; For nested ‘let-alist’ forms, ignore symbols appearing in the - ;; inner body because they don’t refer to the alist currently - ;; being processed. See Bug#24641. - (let-alist--deep-dot-search (cadr data))) - (t (append (let-alist--deep-dot-search (car data)) - (let-alist--deep-dot-search (cdr data)))))) - -(defun let-alist--access-sexp (symbol variable) - "Return a sexp used to access SYMBOL inside VARIABLE." - (let* ((clean (let-alist--remove-dot symbol)) - (name (symbol-name clean))) - (if (string-match "\\`\\." name) - clean - (let-alist--list-to-sexp - (mapcar #'intern (nreverse (split-string name "\\."))) - variable)))) - -(defun let-alist--list-to-sexp (list var) - "Turn symbols LIST into recursive calls to `cdr' `assq' on VAR." - `(cdr (assq ',(car list) - ,(if (cdr list) (let-alist--list-to-sexp (cdr list) var) - var)))) - -(defun let-alist--remove-dot (symbol) - "Return SYMBOL, sans an initial dot." - (let ((name (symbol-name symbol))) - (if (string-match "\\`\\." name) - (intern (replace-match "" nil nil name)) - symbol))) - - -;;; The actual macro. -;;;###autoload -(defmacro let-alist (alist &rest body) - "Let-bind dotted symbols to their cdrs in ALIST and execute BODY. -Dotted symbol is any symbol starting with a `.'. Only those present -in BODY are let-bound and this search is done at compile time. - -For instance, the following code - - (let-alist alist - (if (and .title .body) - .body - .site - .site.contents)) - -essentially expands to - - (let ((.title (cdr (assq \\='title alist))) - (.body (cdr (assq \\='body alist))) - (.site (cdr (assq \\='site alist))) - (.site.contents (cdr (assq \\='contents (cdr (assq \\='site alist)))))) - (if (and .title .body) - .body - .site - .site.contents)) - -If you nest `let-alist' invocations, the inner one can't access -the variables of the outer one. You can, however, access alists -inside the original alist by using dots inside the symbol, as -displayed in the example above." - (declare (indent 1) (debug t)) - (let ((var (make-symbol "alist"))) - `(let ((,var ,alist)) - (let ,(mapcar (lambda (x) `(,(car x) ,(let-alist--access-sexp (car x) var))) - (delete-dups (let-alist--deep-dot-search body))) - ,@body)))) - -;;;; ChangeLog: - -;; 2015-12-01 Artur Malabarba <bruce.connor.am@gmail.com> -;; -;; packages/let-alist: Define it as a :core package -;; -;; 2015-06-11 Artur Malabarba <bruce.connor.am@gmail.com> -;; -;; * let-alist (let-alist--deep-dot-search): Fix cons -;; -;; 2015-03-07 Artur Malabarba <bruce.connor.am@gmail.com> -;; -;; let-alist: Update copyright -;; -;; 2014-12-22 Artur Malabarba <bruce.connor.am@gmail.com> -;; -;; packages/let-alist: Use `make-symbol' instead of `gensym'. -;; -;; 2014-12-20 Artur Malabarba <bruce.connor.am@gmail.com> -;; -;; packages/let-alist: Enable access to deeper alists -;; -;; 2014-12-14 Artur Malabarba <bruce.connor.am@gmail.com> -;; -;; let-alist.el: Add lexical binding. Version bump. -;; -;; 2014-12-11 Artur Malabarba <bruce.connor.am@gmail.com> -;; -;; let-alist: New package -;; - - -(provide 'let-alist) - -;;; let-alist.el ends here diff --git a/project1/.emacs.d/packages/let-alist-1.0.5/let-alist.elc b/project1/.emacs.d/packages/let-alist-1.0.5/let-alist.elc deleted file mode 100644 index c2bd983f6b8b2d88cc3dc3ac32fd6ba002b01d84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3056 zcmb_eTTkOg6b2Sh>$j@6hgRw#Y@0;FR%|Db6s<(KR6?TKY8O>q5hNz|gjjVvUe5$J z{q_CM*baeR`m&AWBy;h(edm1V9G+dAe80A~<{Ta#(utboNh)KzNHRK`iAd9(EOeqW z3c6m`>-k<_kM9#RC6T72a+A!Ge}usu?K$@Fa++wGKorfj)D$l=F-szfRisUkWVd<` zr-e2o;#kJCROJu6VDOQQSV2an3`Ht40+;7z;`XtVxx=?7=jRknMIj;sJNK-5k;SAH zMIxiIq*RGVN-BReNl~PUEXYi8F$hb&h{I=n*nrRdIF7S><PQRRBh9?X5atB2QWMgP z*;u6-0n<q=>2!EGWa|xSBML($CUoO9J?9TuOjI!=L9vuMX*e4JFhr)Pgw}HJr?QX; z296_95Rfxd>6EJW>>K4-T%VB^Gg;YUb*j1HcS^-hYm!;Z+CMq1SWaNP(9}$&ajhS& z%LcizGHzwm?p4q`pvEZh{lO^cgg>s0!cJ#>2j4!PU}J={PVa}cb*w@>T|7NJ`~1rG z_RF2)6I?jp)vx%|-DLqdEVquZICzCs7-HY=tn<C$(J0stpo1@kKJ@sVjU%Y^J1>Si zR^dT|uF5F5NMAT?Q`emdgGe<-qnpvlYXA!5U523Msfc8K+Mp~+Y3cLBzmL5ac`mc~ zng-O`eMug5{ciiZjRZK@U*Zq=KIB|WF&RZ7ilo-`_TBHtuP^Fc_;dK?e0Y3uhAd_P zs>6EsSu9FfKmzi2uX=tLo+0=fHux5T0PC=XAp8mt1f9SF^Z)|FyUBs$sD%fk#^y47 z%K*4;A!q7NGVE36{8vy{-s9AFjVdjiiQJ}W8FQVd36jXd!hm><Yw|l)7ze?A6~+Nw zauL<Fb8-Iml2KE@ESiJb?j-U)MO9(zCW?zD-3YDUHwm1F_*DV5uVMLYBp(^N5=w;6 zX7T3H>E@8L@N3S_aBH|_!xVh8_Tuc6(-7$f?Zmq2{ahI^*F(*$O24Ll<)k0<!qUrL zr%sj<`8^bArcu3cH8F`uLB8fuZanMA3Q~1texe-1Z><|}<slJJS6eT+q=N5kqI`A* zt$5n)SDyC!`*eZ8j1zDfoH8hi8e1R;9!d&AAekj;Xkla4lOKRKVtV}g^quFNuD-{V zC$dG&XqHRSq*m#a=yjGZAY5rlc_FpTj05>BjRfeEp&F|>6tObH{jXv-{EJm42`n9z z{gu!#C9wESfl)K4%ObgF33Q^;RNb@gNX61|h+4}WD7yf*u$fG##d<uG7&KXLtl~x6 z9`UhVRx3{@My~$%xQW7g-EKP$Xas+e9q<hd0Fhh;wO(qqDg`Z0%$Ci}(W_>u)RK7{ zQdlK_T2?Q9A6;hCO4A?TWxJl<wR@kC%lk{apUAJ>d9wXTRIT}ci`)5x7HUqJL|eXD zBGd$$cPc6;p%Ty}%P?Rt{1`@>n0G97JKQYqM3IPbiqQs*oj1@$%ex-EgK)gCM^kk# zF|VKvmz-~dqmg;G|J%2U<TlAr-}Z>c3$zJNAXLV3PT+gXey*K30dtB)Ie77z{2*pI z@<@z9(G^LQmGcWy-PkODhAybt!jM=fG_KvNu-_}&2Xh{GkYIiD^n`!$JZ{|R8Qe0q zzvPzdg9$?)m;CT&e1TB>-u4$eXv15_$7dBc&cxr+Exn+Ib+*A(M^#U-$K!>OE|(51 zCkpQV{sw=eKUF+?hok{am~1118oXK}=(;QY@S510Y?N_7{j1%;Acc!)Ve?$CQuC8> z20bXO>G{C#gPz+?>%lPFUfCu*HY~dsM>^KLa?{djy}8df?T~`*kYmhRno8&hxeE?N k0lSlV7V-Q|KFL^)=eI7;ey+}CL<W4N?l3N1Q@8E>3kt}Q1^@s6 diff --git a/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info-autoloads.el b/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info-autoloads.el deleted file mode 100644 index 28e1be0..0000000 --- a/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info-autoloads.el +++ /dev/null @@ -1,122 +0,0 @@ -;;; pkg-info-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil "pkg-info" "pkg-info.el" (23815 54533 304279 -;;;;;; 28000)) -;;; Generated autoloads from pkg-info.el - -(autoload 'pkg-info-library-original-version "pkg-info" "\ -Get the original version in the header of LIBRARY. - -The original version is stored in the X-Original-Version header. -This header is added by the MELPA package archive to preserve -upstream version numbers. - -LIBRARY is either a symbol denoting a named feature, or a library -name as string. - -If SHOW is non-nil, show the version in the minibuffer. - -Return the version from the header of LIBRARY as list. Signal an -error if the LIBRARY was not found or had no X-Original-Version -header. - -See Info node `(elisp)Library Headers' for more information -about library headers. - -\(fn LIBRARY &optional SHOW)" t nil) - -(autoload 'pkg-info-library-version "pkg-info" "\ -Get the version in the header of LIBRARY. - -LIBRARY is either a symbol denoting a named feature, or a library -name as string. - -If SHOW is non-nil, show the version in the minibuffer. - -Return the version from the header of LIBRARY as list. Signal an -error if the LIBRARY was not found or had no proper header. - -See Info node `(elisp)Library Headers' for more information -about library headers. - -\(fn LIBRARY &optional SHOW)" t nil) - -(autoload 'pkg-info-defining-library-original-version "pkg-info" "\ -Get the original version of the library defining FUNCTION. - -The original version is stored in the X-Original-Version header. -This header is added by the MELPA package archive to preserve -upstream version numbers. - -If SHOW is non-nil, show the version in mini-buffer. - -This function is mainly intended to find the version of a major -or minor mode, i.e. - - (pkg-info-defining-library-version 'flycheck-mode) - -Return the version of the library defining FUNCTION. Signal an -error if FUNCTION is not a valid function, if its defining -library was not found, or if the library had no proper version -header. - -\(fn FUNCTION &optional SHOW)" t nil) - -(autoload 'pkg-info-defining-library-version "pkg-info" "\ -Get the version of the library defining FUNCTION. - -If SHOW is non-nil, show the version in mini-buffer. - -This function is mainly intended to find the version of a major -or minor mode, i.e. - - (pkg-info-defining-library-version 'flycheck-mode) - -Return the version of the library defining FUNCTION. Signal an -error if FUNCTION is not a valid function, if its defining -library was not found, or if the library had no proper version -header. - -\(fn FUNCTION &optional SHOW)" t nil) - -(autoload 'pkg-info-package-version "pkg-info" "\ -Get the version of an installed PACKAGE. - -If SHOW is non-nil, show the version in the minibuffer. - -Return the version as list, or nil if PACKAGE is not installed. - -\(fn PACKAGE &optional SHOW)" t nil) - -(autoload 'pkg-info-version-info "pkg-info" "\ -Obtain complete version info for LIBRARY and PACKAGE. - -LIBRARY is a symbol denoting a named feature, or a library name -as string. PACKAGE is a symbol denoting an ELPA package. If -omitted or nil, default to LIBRARY. - -If SHOW is non-nil, show the version in the minibuffer. - -When called interactively, prompt for LIBRARY. When called -interactively with prefix argument, prompt for PACKAGE as well. - -Return a string with complete version information for LIBRARY. -This version information contains the version from the headers of -LIBRARY, and the version of the installed PACKAGE, the LIBRARY is -part of. If PACKAGE is not installed, or if the PACKAGE version -is the same as the LIBRARY version, do not include a package -version. - -\(fn LIBRARY &optional PACKAGE SHOW)" t nil) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; pkg-info-autoloads.el ends here diff --git a/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info-pkg.el b/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info-pkg.el deleted file mode 100644 index 2a510bd..0000000 --- a/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "pkg-info" "20150517.1143" "Information about packages" '((epl "0.8")) :commit "76ba7415480687d05a4353b27fea2ae02b8d9d61" :keywords '("convenience") :authors '(("Sebastian Wiesner" . "swiesner@lunaryorn.com")) :maintainer '("Sebastian Wiesner" . "swiesner@lunaryorn.com") :url "https://github.com/lunaryorn/pkg-info.el") diff --git a/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info-pkg.elc b/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info-pkg.elc deleted file mode 100644 index d4040a2fb2a788f662d304327f4cdc10e1e18b14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmbtSJ#X7E5cRA-(DlHjHW1U2ELr|o5*Qf_bW4HGC-P(wmPmo5Vz|G)XC(~~bSiS& zeek_^_jq{zar`!$&630607uskrXxKi#=>)tD!?oGV4Q`#kcBKWnNRJji7jB)fg7Uf z&2Nl66J#<qf3_w-!%#2=3ZQQmd!s-*6{0ux93HsqLj=^CG<;BHJDKnP!O)H|tc#$W zjmX1eY?fQD*yYp9@pJ;!qDK{3=fgygRzq;0&_YenIs8QOzE1!`-x=}{TOQ2UZ@hem zFU4KJS0hQ1xu(WgS`Mf#cqS0T<-9buaRNl1W@TDtmCUkY&H0JTzMl*Ltlb#l{Z$a~ zeLkn51Ch$DSS(<#T;H1rqT1A06<Jwq)6KThX^F+UT-SNk5avi}UT^hIZ!!V<3*D~H z>%dro9e5>c$SM+yhGT4<zjx;1g=!4Z@F{;83YNS82_jtIlE-ee=x@$j$r2_hJzIIV mlO15>|9cMm(eqYqj6>M3R%iZ<V|_<neekUQUQALa7Rev$(BX{$ diff --git a/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info.el b/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info.el deleted file mode 100644 index e6a03a1..0000000 --- a/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info.el +++ /dev/null @@ -1,331 +0,0 @@ -;;; pkg-info.el --- Information about packages -*- lexical-binding: t; -*- - -;; Copyright (C) 2013-2015 Sebastian Wiesner <swiesner@lunaryorn.com> - -;; Author: Sebastian Wiesner <swiesner@lunaryorn.com> -;; URL: https://github.com/lunaryorn/pkg-info.el -;; Package-Version: 20150517.1143 -;; Keywords: convenience -;; Version: 0.7-cvs -;; Package-Requires: ((epl "0.8")) - -;; 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 <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; This library extracts information from installed packages. - -;;;; Functions: - -;; `pkg-info-library-version' extracts the version from the header of a library. -;; -;; `pkg-info-defining-library-version' extracts the version from the header of a -;; library defining a function. -;; -;; `pkg-info-package-version' gets the version of an installed package. -;; -;; `pkg-info-format-version' formats a version list as human readable string. -;; -;; `pkg-info-version-info' returns complete version information for a specific -;; package. -;; -;; `pkg-info-get-melpa-recipe' gets the MELPA recipe for a package. -;; -;; `pkg-info-get-melpa-fetcher' gets the fetcher used to build a package on -;; MELPA. -;; -;; `pkg-info-wiki-package-p' determines whether a package was build from -;; EmacsWiki on MELPA. - -;;; Code: - -(require 'epl) - -(require 'lisp-mnt) -(require 'find-func) -(require 'json) ; `json-read' -(require 'url-http) ; `url-http-parse-response' - -(defvar url-http-end-of-headers) - - -;;; Version information -(defun pkg-info-format-version (version) - "Format VERSION as human-readable string. - -Return a human-readable string representing VERSION." - ;; XXX: Find a better, more flexible way of formatting? - (package-version-join version)) - -(defsubst pkg-info--show-version-and-return (version show) - "Show and return VERSION. - -When SHOW is non-nil, show VERSION in minibuffer. - -Return VERSION." - (when show - (message (if (listp version) (pkg-info-format-version version) version))) - version) - -(defun pkg-info--read-library () - "Read a library from minibuffer." - (completing-read "Load library: " - (apply-partially 'locate-file-completion-table - load-path - (get-load-suffixes)))) - -(defun pkg-info--read-function () - "Read a function name from minibuffer." - (let ((input (completing-read "Function: " obarray #'boundp :require-match))) - (if (string= input "") nil (intern input)))) - -(defun pkg-info--read-package () - "Read a package name from minibuffer." - (let* ((installed (epl-installed-packages)) - (names (sort (mapcar (lambda (pkg) - (symbol-name (epl-package-name pkg))) - installed) - #'string<)) - (default (car names))) - (completing-read "Installed package: " names nil 'require-match - nil nil default))) - -(defun pkg-info-library-source (library) - "Get the source file of LIBRARY. - -LIBRARY is either a symbol denoting a named feature, or a library -name as string. - -Return the source file of LIBRARY as string." - (find-library-name (if (symbolp library) (symbol-name library) library))) - -(defun pkg-info-defining-library (function) - "Get the source file of the library defining FUNCTION. - -FUNCTION is a function symbol. - -Return the file name of the library as string. Signal an error -if the library does not exist, or if the definition of FUNCTION -was not found." - (unless (functionp function) - (signal 'wrong-type-argument (list 'functionp function))) - (let ((library (symbol-file function 'defun))) - (unless library - (error "Can't find definition of %s" function)) - library)) - -(defun pkg-info-x-original-version (file) - "Read the X-Original-Version header from FILE. - -Return the value as version list, or return nil if FILE lacks -this header. Signal an error, if the value of the header is not -a valid version." - (let ((version-str (with-temp-buffer - (insert-file-contents file) - (lm-header "X-Original-Version")))) - (when version-str - (version-to-list version-str)))) - -;;;###autoload -(defun pkg-info-library-original-version (library &optional show) - "Get the original version in the header of LIBRARY. - -The original version is stored in the X-Original-Version header. -This header is added by the MELPA package archive to preserve -upstream version numbers. - -LIBRARY is either a symbol denoting a named feature, or a library -name as string. - -If SHOW is non-nil, show the version in the minibuffer. - -Return the version from the header of LIBRARY as list. Signal an -error if the LIBRARY was not found or had no X-Original-Version -header. - -See Info node `(elisp)Library Headers' for more information -about library headers." - (interactive (list (pkg-info--read-library) t)) - (let ((version (pkg-info-x-original-version - (pkg-info-library-source library)))) - (if version - (pkg-info--show-version-and-return version show) - (error "Library %s has no original version" library)))) - -;;;###autoload -(defun pkg-info-library-version (library &optional show) - "Get the version in the header of LIBRARY. - -LIBRARY is either a symbol denoting a named feature, or a library -name as string. - -If SHOW is non-nil, show the version in the minibuffer. - -Return the version from the header of LIBRARY as list. Signal an -error if the LIBRARY was not found or had no proper header. - -See Info node `(elisp)Library Headers' for more information -about library headers." - (interactive (list (pkg-info--read-library) t)) - (let* ((source (pkg-info-library-source library)) - (version (epl-package-version (epl-package-from-file source)))) - (pkg-info--show-version-and-return version show))) - -;;;###autoload -(defun pkg-info-defining-library-original-version (function &optional show) - "Get the original version of the library defining FUNCTION. - -The original version is stored in the X-Original-Version header. -This header is added by the MELPA package archive to preserve -upstream version numbers. - -If SHOW is non-nil, show the version in mini-buffer. - -This function is mainly intended to find the version of a major -or minor mode, i.e. - - (pkg-info-defining-library-version 'flycheck-mode) - -Return the version of the library defining FUNCTION. Signal an -error if FUNCTION is not a valid function, if its defining -library was not found, or if the library had no proper version -header." - (interactive (list (pkg-info--read-function) t)) - (pkg-info-library-original-version (pkg-info-defining-library function) show)) - -;;;###autoload -(defun pkg-info-defining-library-version (function &optional show) - "Get the version of the library defining FUNCTION. - -If SHOW is non-nil, show the version in mini-buffer. - -This function is mainly intended to find the version of a major -or minor mode, i.e. - - (pkg-info-defining-library-version 'flycheck-mode) - -Return the version of the library defining FUNCTION. Signal an -error if FUNCTION is not a valid function, if its defining -library was not found, or if the library had no proper version -header." - (interactive (list (pkg-info--read-function) t)) - (pkg-info-library-version (pkg-info-defining-library function) show)) - -;;;###autoload -(defun pkg-info-package-version (package &optional show) - "Get the version of an installed PACKAGE. - -If SHOW is non-nil, show the version in the minibuffer. - -Return the version as list, or nil if PACKAGE is not installed." - (interactive (list (pkg-info--read-package) t)) - (let* ((name (if (stringp package) (intern package) package)) - (package (car (epl-find-installed-packages name)))) - (unless package - (error "Can't find installed package %s" name)) - (pkg-info--show-version-and-return (epl-package-version package) show))) - -;;;###autoload -(defun pkg-info-version-info (library &optional package show) - "Obtain complete version info for LIBRARY and PACKAGE. - -LIBRARY is a symbol denoting a named feature, or a library name -as string. PACKAGE is a symbol denoting an ELPA package. If -omitted or nil, default to LIBRARY. - -If SHOW is non-nil, show the version in the minibuffer. - -When called interactively, prompt for LIBRARY. When called -interactively with prefix argument, prompt for PACKAGE as well. - -Return a string with complete version information for LIBRARY. -This version information contains the version from the headers of -LIBRARY, and the version of the installed PACKAGE, the LIBRARY is -part of. If PACKAGE is not installed, or if the PACKAGE version -is the same as the LIBRARY version, do not include a package -version." - (interactive (list (pkg-info--read-library) - (when current-prefix-arg - (pkg-info--read-package)) - t)) - (let* ((package (or package (if (stringp library) (intern library) library))) - (orig-version (condition-case nil - (pkg-info-library-original-version library) - (error nil))) - ;; If we have X-Original-Version, we assume that MELPA replaced the - ;; library version with its generated version, so we use the - ;; X-Original-Version header instead, and ignore the library version - ;; header - (lib-version (or orig-version (pkg-info-library-version library))) - (pkg-version (condition-case nil - (pkg-info-package-version package) - (error nil))) - (version (if (and pkg-version - (not (version-list-= lib-version pkg-version))) - (format "%s (package: %s)" - (pkg-info-format-version lib-version) - (pkg-info-format-version pkg-version)) - (pkg-info-format-version lib-version)))) - (pkg-info--show-version-and-return version show))) - -(defconst pkg-info-melpa-recipe-url "http://melpa.org/recipes.json" - "The URL from which to fetch MELPA recipes.") - -(defvar pkg-info-melpa-recipes nil - "An alist of MELPA recipes.") - -(defun pkg-info-retrieve-melpa-recipes () - "Retrieve MELPA recipes from MELPA archive." - (let ((buffer (url-retrieve-synchronously pkg-info-melpa-recipe-url))) - (with-current-buffer buffer - (unwind-protect - (let ((response-code (url-http-parse-response))) - (unless (equal response-code 200) - (error "Failed to retrieve MELPA recipes from %s (code %s)" - pkg-info-melpa-recipe-url response-code)) - (goto-char url-http-end-of-headers) - (json-read)) - (when (and buffer (buffer-live-p buffer)) - (kill-buffer buffer)))))) - -(defun pkg-info-get-melpa-recipes () - "Get MELPA recipes." - (setq pkg-info-melpa-recipes - (or pkg-info-melpa-recipes - (pkg-info-retrieve-melpa-recipes)))) - -(defun pkg-info-get-melpa-recipe (package) - "Get the MELPA recipe for PACKAGE. - -Return nil if PACKAGE is not on MELPA." - (cdr (assq package (pkg-info-get-melpa-recipes)))) - -(defun pkg-info-get-melpa-fetcher (package) - "Get the MELPA fetcher for PACKAGE." - (cdr (assq 'fetcher (pkg-info-get-melpa-recipe package)))) - -(defun pkg-info-wiki-package-p (package) - "Determine whether PACKAGE is build from the EmacsWiki." - (equal (pkg-info-get-melpa-fetcher package) "wiki")) - -(provide 'pkg-info) - -;; Local Variables: -;; indent-tabs-mode: nil -;; coding: utf-8 -;; End: - -;;; pkg-info.el ends here diff --git a/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info.elc b/project1/.emacs.d/packages/pkg-info-20150517.1143/pkg-info.elc deleted file mode 100644 index 16bec5fb1b8c44a51610867cdc0a6805da78c4d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10312 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 Yw4`0fb;O%3n@Dai668|mEv+r<zwGFbO#lD@ diff --git a/project1/.emacs.d/packages/popup-20160709.1429/popup-autoloads.el b/project1/.emacs.d/packages/popup-20160709.1429/popup-autoloads.el deleted file mode 100644 index cb40af7..0000000 --- a/project1/.emacs.d/packages/popup-20160709.1429/popup-autoloads.el +++ /dev/null @@ -1,15 +0,0 @@ -;;; popup-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil nil ("popup.el") (23815 56364 565104 0)) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; popup-autoloads.el ends here diff --git a/project1/.emacs.d/packages/popup-20160709.1429/popup-pkg.el b/project1/.emacs.d/packages/popup-20160709.1429/popup-pkg.el deleted file mode 100644 index d52e65f..0000000 --- a/project1/.emacs.d/packages/popup-20160709.1429/popup-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "popup" "20160709.1429" "Visual Popup User Interface" '((cl-lib "0.5")) :commit "80829dd46381754639fb764da11c67235fe63282" :keywords '("lisp") :authors '(("Tomohiro Matsuyama" . "m2ym.pub@gmail.com")) :maintainer '("Tomohiro Matsuyama" . "m2ym.pub@gmail.com")) diff --git a/project1/.emacs.d/packages/popup-20160709.1429/popup-pkg.elc b/project1/.emacs.d/packages/popup-20160709.1429/popup-pkg.elc deleted file mode 100644 index 15194b78d4d269dce1cee2922ed0bcbe7ee6e70e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmbtRO>f&U49(epU{^wyB|szCisRVLrA5#~fDIVXk2@pDu~2;&lDs1O^<%tZz_3$M zUI_A0?>$ochi`{3i^ZbY@Aq&BZZuY_xiB6c9LfYgbxbCB5H+v)w&G%j-%K6=t%WdV z<IFG2G?RESgHMA=&=VC*NheSjkIqO?L8csyKc^c)W6FR^X$60!s*a29KMoa$!-otq z_>43><$m2#$FJ`n562_O0VB#xK5u4u^a@e{i5^ZGY`}j+-uFqMF<PS|<bejo=8rDj z;Zt!n@YyJeVySd*yk3teU-7JgjbWTd227MyQ|`)+SGDM<elcl63qP(fJSSS`=;;zY zO3mQwaw+ZFniH^+Z`o=Ew=y_qGO)I6MW<BVY}#tKrPTGOT~jNpD%tGBX4~s#BU-`W z_ElfrLR5+9m^Eo+M1xZvLcF$?>?yb~m>A$Y<}_W<Ap;J~iHqaobh<k`G?tU_Y=DaS M7s)B{edKNN8(lleSO5S3 diff --git a/project1/.emacs.d/packages/popup-20160709.1429/popup.el b/project1/.emacs.d/packages/popup-20160709.1429/popup.el deleted file mode 100644 index f112cba..0000000 --- a/project1/.emacs.d/packages/popup-20160709.1429/popup.el +++ /dev/null @@ -1,1432 +0,0 @@ -;;; popup.el --- Visual Popup User Interface - -;; Copyright (C) 2009-2015 Tomohiro Matsuyama - -;; Author: Tomohiro Matsuyama <m2ym.pub@gmail.com> -;; Keywords: lisp -;; Package-Version: 20160709.1429 -;; Version: 0.5.3 -;; Package-Requires: ((cl-lib "0.5")) - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; popup.el is a visual popup user interface library for Emacs. This -;; provides a basic API and common UI widgets such as popup tooltips -;; and popup menus. -;; See README.markdown for more information. - -;;; Code: - -(require 'cl-lib) - -(defconst popup-version "0.5.3") - - - -;;; Utilities - -(defun popup-calculate-max-width (max-width) - "Determines whether the width desired is -character or window proportion based, And returns the result." - (cl-typecase max-width - (integer max-width) - (float (* (ceiling (/ (round (* max-width (window-width))) 10.0)) 10)))) - -(defvar popup-use-optimized-column-computation t - "Use the optimized column computation routine. -If there is a problem, please set it nil.") - -(defmacro popup-aif (test then &rest else) - "Anaphoric if." - (declare (indent 2)) - `(let ((it ,test)) - (if it ,then ,@else))) - -(defmacro popup-awhen (test &rest body) - "Anaphoric when." - (declare (indent 1)) - `(let ((it ,test)) - (when it ,@body))) - -(defun popup-x-to-string (x) - "Convert any object to string effeciently. -This is faster than `prin1-to-string' in many cases." - (cl-typecase x - (string x) - (symbol (symbol-name x)) - (integer (number-to-string x)) - (float (number-to-string x)) - (t (format "%s" x)))) - -(defun popup-substring-by-width (string width) - "Return a cons cell of substring and remaining string by -splitting with WIDTH." - ;; Expand tabs into 4 spaces - (setq string (replace-regexp-in-string "\t" " " string)) - (cl-loop with len = (length string) - with w = 0 - for l from 0 - for c in (append string nil) - while (<= (cl-incf w (char-width c)) width) - finally return - (if (< l len) - (cons (substring string 0 l) (substring string l)) - (list string)))) - -(defun popup-fill-string (string &optional width max-width justify squeeze) - "Split STRING into fixed width strings and return a cons cell -like \(WIDTH . ROWS). Here, the car WIDTH indicates the actual -maxim width of ROWS. - -The argument WIDTH specifies the width of filling each -paragraph. WIDTH nil means don't perform any justification and -word wrap. Note that this function doesn't add any padding -characters at the end of each row. - -MAX-WIDTH, if WIDTH is nil, specifies the maximum number of -columns. - -The optional fourth argument JUSTIFY specifies which kind of -justification to do: `full', `left', `right', `center', or -`none' (equivalent to nil). A value of t means handle each -paragraph as specified by its text properties. - -SQUEEZE nil means leave whitespaces other than line breaks -untouched." - (if (eq width 0) - (error "Can't fill string with 0 width")) - (if width - (setq max-width width)) - (with-temp-buffer - (let ((tab-width 4) - (fill-column width) - (left-margin 0) - (kinsoku-limit 1) - indent-tabs-mode - row rows) - (insert string) - (untabify (point-min) (point-max)) - (if width - (fill-region (point-min) (point-max) justify (not squeeze))) - (goto-char (point-min)) - (setq width 0) - (while (prog2 - (let ((line (buffer-substring - (point) (progn (end-of-line) (point))))) - (if max-width - (while (progn - (setq row (truncate-string-to-width line max-width) - width (max width (string-width row))) - (push row rows) - (if (not (= (length row) (length line))) - (setq line (substring line (length row)))))) - (setq width (max width (string-width line))) - (push line rows))) - (< (point) (point-max)) - (beginning-of-line 2))) - (cons width (nreverse rows))))) - -(defmacro popup-save-buffer-state (&rest body) - (declare (indent 0)) - `(save-excursion - (let ((buffer-undo-list t) - (inhibit-read-only t) - (modified (buffer-modified-p))) - (unwind-protect - (progn ,@body) - (set-buffer-modified-p modified))))) - -(defun popup-vertical-motion (column direction) - "A portable version of `vertical-motion'." - (if (>= emacs-major-version 23) - (vertical-motion (cons column direction)) - (vertical-motion direction) - (move-to-column (+ (current-column) column)))) - -(defun popup-last-line-of-buffer-p () - "Return non-nil if the cursor is at the last line of the -buffer." - (save-excursion (end-of-line) (/= (forward-line) 0))) - -(defun popup-lookup-key-by-event (function event) - (or (funcall function (vector event)) - (if (symbolp event) - (popup-aif (get event 'event-symbol-element-mask) - (funcall function - (vector (logior (or (get (car it) 'ascii-character) - 0) - (cadr it)))))))) - - - -;;; Core - -(defgroup popup nil - "Visual Popup User Interface" - :group 'lisp - :prefix "popup-") - -(defface popup-face - '((t (:inherit default :background "lightgray" :foreground "black"))) - "Face for popup." - :group 'popup) - -(defface popup-summary-face - '((t (:inherit popup-face :foreground "dimgray"))) - "Face for popup summary." - :group 'popup) - -(defface popup-scroll-bar-foreground-face - '((t (:background "black"))) - "Foreground face for scroll-bar." - :group 'popup) - -(defface popup-scroll-bar-background-face - '((t (:background "gray"))) - "Background face for scroll-bar." - :group 'popup) - -(defvar popup-instances nil - "Popup instances.") - -(defvar popup-scroll-bar-foreground-char - (propertize " " 'face 'popup-scroll-bar-foreground-face) - "Foreground character for scroll-bar.") - -(defvar popup-scroll-bar-background-char - (propertize " " 'face 'popup-scroll-bar-background-face) - "Background character for scroll-bar.") - -(cl-defstruct popup - point row column width height min-height direction overlays keymap - parent depth - face mouse-face selection-face summary-face - margin-left margin-right margin-left-cancel scroll-bar symbol - cursor offset scroll-top current-height list newlines - pattern original-list invis-overlays) - -(defun popup-item-propertize (item &rest properties) - "Same as `propertize' except that this avoids overriding -existed value with `nil' property." - (cl-loop for (k v) on properties by 'cddr - if v append (list k v) into props - finally return - (apply 'propertize - (popup-x-to-string item) - props))) - -(defun popup-item-property (item property) - "Same as `get-text-property' except that this returns nil if -ITEM is not string." - (if (stringp item) - (get-text-property 0 property item))) - -(cl-defun popup-make-item (name - &key - value - face - mouse-face - selection-face - sublist - document - symbol - summary) - "Utility function to make popup item. See also -`popup-item-propertize'." - (popup-item-propertize name - 'value value - 'popup-face face - 'popup-mouse-face mouse-face - 'selection-face selection-face - 'document document - 'symbol symbol - 'summary summary - 'sublist sublist)) - -(defsubst popup-item-value (item) (popup-item-property item 'value)) -(defsubst popup-item-value-or-self (item) (or (popup-item-value item) item)) -(defsubst popup-item-face (item) (popup-item-property item 'popup-face)) -(defsubst popup-item-mouse-face (item) (popup-item-property item 'popup-mouse-face)) -(defsubst popup-item-selection-face (item) (popup-item-property item 'selection-face)) -(defsubst popup-item-document (item) (popup-item-property item 'document)) -(defsubst popup-item-summary (item) (popup-item-property item 'summary)) -(defsubst popup-item-symbol (item) (popup-item-property item 'symbol)) -(defsubst popup-item-sublist (item) (popup-item-property item 'sublist)) - -(defun popup-item-documentation (item) - (let ((doc (popup-item-document item))) - (if (functionp doc) - (setq doc (funcall doc (popup-item-value-or-self item)))) - doc)) - -(defun popup-item-show-help-1 (item) - (let ((doc (popup-item-documentation item))) - (when doc - (with-current-buffer (get-buffer-create " *Popup Help*") - (erase-buffer) - (insert doc) - (goto-char (point-min)) - (display-buffer (current-buffer))) - t))) - -(defun popup-item-show-help-with-event-loop (item) - (save-window-excursion - (when (popup-item-show-help-1 item) - (cl-loop do (clear-this-command-keys) - for key = (read-key-sequence-vector nil) - do - (cl-case (key-binding key) - (scroll-other-window - (scroll-other-window)) - (scroll-other-window-down - (scroll-other-window-down nil)) - (otherwise - (setq unread-command-events (append key unread-command-events)) - (cl-return))))))) - -(defun popup-item-show-help (item &optional persist) - "Display the documentation of ITEM with `display-buffer'. If -PERSIST is nil, the documentation buffer will be closed -automatically, meaning interal event loop ensures the buffer to -be closed. Otherwise, the buffer will be just displayed as -usual." - (when item - (if (not persist) - (popup-item-show-help-with-event-loop item) - (popup-item-show-help-1 item)))) - -(defun popup-set-list (popup list) - (popup-set-filtered-list popup list) - (setf (popup-pattern popup) nil) - (setf (popup-original-list popup) list)) - -(defun popup-set-filtered-list (popup list) - (let ((offset - (if (> (popup-direction popup) 0) - 0 - (max (- (popup-height popup) (length list)) 0)))) - (setf (popup-list popup) list - (popup-offset popup) offset))) - -(defun popup-selected-item (popup) - (nth (popup-cursor popup) (popup-list popup))) - -(defun popup-selected-line (popup) - (- (popup-cursor popup) (popup-scroll-top popup))) - -(defun popup-line-overlay (popup line) - (aref (popup-overlays popup) line)) - -(defun popup-selected-line-overlay (popup) - (popup-line-overlay popup (popup-selected-line popup))) - -(defun popup-hide-line (popup line) - (let ((overlay (popup-line-overlay popup line))) - (overlay-put overlay 'display nil) - (overlay-put overlay 'after-string nil))) - -(defun popup-line-hidden-p (popup line) - (let ((overlay (popup-line-overlay popup line))) - (and (eq (overlay-get overlay 'display) nil) - (eq (overlay-get overlay 'after-string) nil)))) - -(cl-defun popup-set-line-item (popup - line - &key - item - face - mouse-face - margin-left - margin-right - scroll-bar-char - symbol - summary - summary-face - keymap) - (let* ((overlay (popup-line-overlay popup line)) - (content (popup-create-line-string popup (popup-x-to-string item) - :margin-left margin-left - :margin-right margin-right - :symbol symbol - :summary summary - :summary-face summary-face)) - (start 0) - (prefix (overlay-get overlay 'prefix)) - (postfix (overlay-get overlay 'postfix)) - end) - (put-text-property 0 (length content) 'popup-item item content) - (put-text-property 0 (length content) 'keymap keymap content) - ;; Overlap face properties - (when (get-text-property start 'face content) - (setq start (next-single-property-change start 'face content))) - (while (and start (setq end (next-single-property-change start 'face content))) - (put-text-property start end 'face face content) - (setq start (next-single-property-change end 'face content))) - (when start - (put-text-property start (length content) 'face face content)) - (when mouse-face - (put-text-property 0 (length content) 'mouse-face mouse-face content)) - (let ((prop (if (overlay-get overlay 'dangle) - 'after-string - 'display))) - (overlay-put overlay - prop - (concat prefix - content - scroll-bar-char - postfix))))) - -(cl-defun popup-create-line-string (popup - string - &key - margin-left - margin-right - symbol - summary - summary-face) - (let* ((popup-width (popup-width popup)) - (summary-width (string-width summary)) - (content-width (max - (min popup-width (string-width string)) - (- popup-width - (if (> summary-width 0) - (+ summary-width 2) - 0)))) - (string (car (popup-substring-by-width string content-width))) - (string-width (string-width string)) - (spacing (max (- popup-width string-width summary-width) - (if (> popup-width string-width) 1 0))) - (truncated-summary - (car (popup-substring-by-width - summary (max (- popup-width string-width spacing) 0))))) - (when summary-face - (put-text-property 0 (length truncated-summary) - 'face summary-face truncated-summary)) - (concat margin-left - string - (make-string spacing ? ) - truncated-summary - symbol - margin-right))) - -(defun popup-live-p (popup) - "Return non-nil if POPUP is alive." - (and popup (popup-overlays popup) t)) - -(defun popup-child-point (popup &optional offset) - (overlay-end - (popup-line-overlay - popup - (or offset - (popup-selected-line popup))))) - -(defun popup-calculate-direction (height row) - "Return a proper direction when displaying a popup on this -window. HEIGHT is the a height of the popup, and ROW is a line -number at the point." - (let* ((remaining-rows (- (max 1 (- (window-height) - (if mode-line-format 1 0) - (if header-line-format 1 0))) - (count-lines (window-start) (point)))) - (enough-space-above (> row height)) - (enough-space-below (<= height remaining-rows))) - (if (and enough-space-above - (not enough-space-below)) - -1 - 1))) - -(cl-defun popup-create (point - width - height - &key - min-height - max-width - around - (face 'popup-face) - mouse-face - (selection-face face) - (summary-face 'popup-summary-face) - scroll-bar - margin-left - margin-right - symbol - parent - parent-offset - keymap) - "Create a popup instance at POINT with WIDTH and HEIGHT. - -MIN-HEIGHT is a minimal height of the popup. The default value is -0. - -MAX-WIDTH is the maximum width of the popup. The default value is -nil (no limit). If a floating point, the value refers to the ratio of -the window. If an integer, limit is in characters. - -If AROUND is non-nil, the popup will be displayed around the -point but not at the point. - -FACE is a background face of the popup. The default value is POPUP-FACE. - -SELECTION-FACE is a foreground (selection) face of the popup The -default value is POPUP-FACE. - -If SCROLL-BAR is non-nil, the popup will have a scroll bar at the -right. - -If MARGIN-LEFT is non-nil, the popup will have a margin at the -left. - -If MARGIN-RIGHT is non-nil, the popup will have a margin at the -right. - -SYMBOL is a single character which indicates a kind of the item. - -PARENT is a parent popup instance. If PARENT is omitted, the -popup will be a root instance. - -PARENT-OFFSET is a row offset from the parent popup. - -KEYMAP is a keymap that will be put on the popup contents." - (or margin-left (setq margin-left 0)) - (or margin-right (setq margin-right 0)) - (unless point - (setq point - (if parent (popup-child-point parent parent-offset) (point)))) - (when max-width - (setq width (min width (popup-calculate-max-width max-width)))) - (save-excursion - (goto-char point) - (let* ((col-row (posn-col-row (posn-at-point))) - (row (cdr col-row)) - (column (car col-row)) - (overlays (make-vector height nil)) - (popup-width (+ width - (if scroll-bar 1 0) - margin-left - margin-right - (if symbol 2 0))) - margin-left-cancel - (window (selected-window)) - (window-start (window-start)) - (window-hscroll (window-hscroll)) - (window-width (window-width)) - (right (+ column popup-width)) - (overflow (and (> right window-width) - (>= right popup-width))) - (foldable (and (null parent) - (>= column popup-width))) - (direction (or - ;; Currently the direction of cascade popup won't be changed - (and parent (popup-direction parent)) - - ;; Calculate direction - (popup-calculate-direction height row))) - (depth (if parent (1+ (popup-depth parent)) 0)) - (newlines (max 0 (+ (- height (count-lines point (point-max))) (if around 1 0)))) - invis-overlays - current-column) - ;; Case: no newlines at the end of the buffer - (when (> newlines 0) - (popup-save-buffer-state - (goto-char (point-max)) - (insert (make-string newlines ?\n)))) - - ;; Case: the popup overflows - (if overflow - (if foldable - (progn - (cl-decf column (- popup-width margin-left margin-right)) - (unless around (move-to-column column))) - (when (not truncate-lines) - ;; Truncate. - (let ((d (1+ (- popup-width (- window-width column))))) - (cl-decf popup-width d) - (cl-decf width d))) - (cl-decf column margin-left)) - (cl-decf column margin-left)) - - ;; Case: no space at the left - (when (and (null parent) - (< column 0)) - ;; Cancel margin left - (setq column 0) - (cl-decf popup-width margin-left) - (setq margin-left-cancel t)) - - (dotimes (i height) - (let (overlay begin w (dangle t) (prefix "") (postfix "")) - (when around - (popup-vertical-motion column direction)) - (cl-loop for ov in (overlays-in (save-excursion - (beginning-of-visual-line) - (point)) - (save-excursion - (end-of-visual-line) - (point))) - when (and (not (overlay-get ov 'popup)) - (not (overlay-get ov 'popup-item)) - (or (overlay-get ov 'invisible) - (overlay-get ov 'display))) - do (progn - (push (list ov (overlay-get ov 'display)) invis-overlays) - (overlay-put ov 'display ""))) - (setq around t) - (setq current-column (car (posn-col-row (posn-at-point)))) - - (when (< current-column column) - ;; Extend short buffer lines by popup prefix (line of spaces) - (setq prefix (make-string - (+ (if (= current-column 0) - (- window-hscroll current-column) - 0) - (- column current-column)) - ? ))) - - (setq begin (point)) - (setq w (+ popup-width (length prefix))) - (while (and (not (eolp)) (> w 0)) - (setq dangle nil) - (cl-decf w (char-width (char-after))) - (forward-char)) - (if (< w 0) - (setq postfix (make-string (- w) ? ))) - - (setq overlay (make-overlay begin (point))) - (overlay-put overlay 'popup t) - (overlay-put overlay 'window window) - (overlay-put overlay 'dangle dangle) - (overlay-put overlay 'prefix prefix) - (overlay-put overlay 'postfix postfix) - (overlay-put overlay 'width width) - (aset overlays - (if (> direction 0) i (- height i 1)) - overlay))) - (cl-loop for p from (- 10000 (* depth 1000)) - for overlay in (nreverse (append overlays nil)) - do (overlay-put overlay 'priority p)) - (let ((it (make-popup :point point - :row row - :column column - :width width - :height height - :min-height min-height - :direction direction - :parent parent - :depth depth - :face face - :mouse-face mouse-face - :selection-face selection-face - :summary-face summary-face - :margin-left margin-left - :margin-right margin-right - :margin-left-cancel margin-left-cancel - :scroll-bar scroll-bar - :symbol symbol - :cursor 0 - :offset 0 - :scroll-top 0 - :current-height 0 - :list nil - :newlines newlines - :overlays overlays - :invis-overlays invis-overlays - :keymap keymap))) - (push it popup-instances) - it)))) - -(defun popup-delete (popup) - "Delete POPUP instance." - (when (popup-live-p popup) - (popup-hide popup) - (mapc 'delete-overlay (popup-overlays popup)) - (setf (popup-overlays popup) nil) - (setq popup-instances (delq popup popup-instances)) - ;; Restore newlines state - (let ((newlines (popup-newlines popup))) - (when (> newlines 0) - (popup-save-buffer-state - (goto-char (point-max)) - (dotimes (i newlines) - (if (and (char-before) - (= (char-before) ?\n)) - (delete-char -1))))))) - nil) - -(defun popup-draw (popup) - "Draw POPUP." - (cl-loop for (ov olddisplay) in (popup-invis-overlays popup) - do (overlay-put ov 'display "")) - - (cl-loop with height = (popup-height popup) - with min-height = (popup-min-height popup) - with popup-face = (popup-face popup) - with mouse-face = (popup-mouse-face popup) - with selection-face = (popup-selection-face popup) - with summary-face-0 = (popup-summary-face popup) - with list = (popup-list popup) - with length = (length list) - with thum-size = (max (/ (* height height) (max length 1)) 1) - with page-size = (/ (+ 0.0 (max length 1)) height) - with scroll-bar = (popup-scroll-bar popup) - with margin-left = (make-string (if (popup-margin-left-cancel popup) 0 (popup-margin-left popup)) ? ) - with margin-right = (make-string (popup-margin-right popup) ? ) - with symbol = (popup-symbol popup) - with cursor = (popup-cursor popup) - with scroll-top = (popup-scroll-top popup) - with offset = (popup-offset popup) - with keymap = (popup-keymap popup) - for o from offset - for i from scroll-top - while (< o height) - for item in (nthcdr scroll-top list) - for page-index = (* thum-size (/ o thum-size)) - for face = (if (= i cursor) - (or (popup-item-selection-face item) selection-face) - (or (popup-item-face item) popup-face)) - for summary-face = (unless (= i cursor) summary-face-0) - for empty-char = (propertize " " 'face face) - for scroll-bar-char = (if scroll-bar - (cond - ((and (not (eq scroll-bar :always)) - (<= page-size 1)) - empty-char) - ((and (> page-size 1) - (>= cursor (* page-index page-size)) - (< cursor (* (+ page-index thum-size) page-size))) - popup-scroll-bar-foreground-char) - (t - popup-scroll-bar-background-char)) - "") - for sym = (if symbol - (concat " " (or (popup-item-symbol item) " ")) - "") - for summary = (or (popup-item-summary item) "") - - do - ;; Show line and set item to the line - (popup-set-line-item popup o - :item item - :face face - :mouse-face mouse-face - :margin-left margin-left - :margin-right margin-right - :scroll-bar-char scroll-bar-char - :symbol sym - :summary summary - :summary-face summary-face - :keymap keymap) - - finally - ;; Remember current height - (setf (popup-current-height popup) (- o offset)) - - ;; Hide remaining lines - (let ((scroll-bar-char (if scroll-bar (propertize " " 'face popup-face) "")) - (symbol (if symbol " " ""))) - (if (> (popup-direction popup) 0) - (progn - (when min-height - (while (< o min-height) - (popup-set-line-item popup o - :item "" - :face popup-face - :margin-left margin-left - :margin-right margin-right - :scroll-bar-char scroll-bar-char - :symbol symbol - :summary "") - (cl-incf o))) - (while (< o height) - (popup-hide-line popup o) - (cl-incf o))) - (cl-loop with h = (if min-height (- height min-height) offset) - for o from 0 below offset - if (< o h) - do (popup-hide-line popup o) - if (>= o h) - do (popup-set-line-item popup o - :item "" - :face popup-face - :margin-left margin-left - :margin-right margin-right - :scroll-bar-char scroll-bar-char - :symbol symbol - :summary "")))))) - -(defun popup-hide (popup) - "Hide POPUP." - (cl-loop for (ov olddisplay) in (popup-invis-overlays popup) - do (overlay-put ov 'display olddisplay)) - (dotimes (i (popup-height popup)) - (popup-hide-line popup i))) - -(defun popup-hidden-p (popup) - "Return non-nil if POPUP is hidden." - (let ((hidden t)) - (when (popup-live-p popup) - (dotimes (i (popup-height popup)) - (unless (popup-line-hidden-p popup i) - (setq hidden nil)))) - hidden)) - -(defun popup-jump (popup cursor) - "Jump to a position specified by CURSOR of POPUP and draw." - (let ((scroll-top (popup-scroll-top popup))) - ;; Do not change page as much as possible. - (unless (and (<= scroll-top cursor) - (< cursor (+ scroll-top (popup-height popup)))) - (setf (popup-scroll-top popup) cursor)) - (setf (popup-cursor popup) cursor) - (popup-draw popup))) - -(defun popup-select (popup i) - "Select the item at I of POPUP and draw." - (setq i (+ i (popup-offset popup))) - (when (and (<= 0 i) (< i (popup-height popup))) - (setf (popup-cursor popup) i) - (popup-draw popup) - t)) - -(defun popup-next (popup) - "Select the next item of POPUP and draw." - (let ((height (popup-height popup)) - (cursor (1+ (popup-cursor popup))) - (scroll-top (popup-scroll-top popup)) - (length (length (popup-list popup)))) - (cond - ((>= cursor length) - ;; Back to first page - (setq cursor 0 - scroll-top 0)) - ((= cursor (+ scroll-top height)) - ;; Go to next page - (setq scroll-top (min (1+ scroll-top) (max (- length height) 0))))) - (setf (popup-cursor popup) cursor - (popup-scroll-top popup) scroll-top) - (popup-draw popup))) - -(defun popup-previous (popup) - "Select the previous item of POPUP and draw." - (let ((height (popup-height popup)) - (cursor (1- (popup-cursor popup))) - (scroll-top (popup-scroll-top popup)) - (length (length (popup-list popup)))) - (cond - ((< cursor 0) - ;; Go to last page - (setq cursor (1- length) - scroll-top (max (- length height) 0))) - ((= cursor (1- scroll-top)) - ;; Go to previous page - (cl-decf scroll-top))) - (setf (popup-cursor popup) cursor - (popup-scroll-top popup) scroll-top) - (popup-draw popup))) - -(defun popup-page-next (popup) - "Select next item of POPUP per `popup-height' range. -Pages down through POPUP." - (dotimes (counter (1- (popup-height popup))) - (popup-next popup))) - -(defun popup-page-previous (popup) - "Select previous item of POPUP per `popup-height' range. -Pages up through POPUP." - (dotimes (counter (1- (popup-height popup))) - (popup-previous popup))) - -(defun popup-scroll-down (popup &optional n) - "Scroll down N of POPUP and draw." - (let ((scroll-top (min (+ (popup-scroll-top popup) (or n 1)) - (- (length (popup-list popup)) (popup-height popup))))) - (setf (popup-cursor popup) scroll-top - (popup-scroll-top popup) scroll-top) - (popup-draw popup))) - -(defun popup-scroll-up (popup &optional n) - "Scroll up N of POPUP and draw." - (let ((scroll-top (max (- (popup-scroll-top popup) (or n 1)) - 0))) - (setf (popup-cursor popup) scroll-top - (popup-scroll-top popup) scroll-top) - (popup-draw popup))) - - - -;;; Popup Incremental Search - -(defface popup-isearch-match - '((t (:inherit default :background "sky blue"))) - "Popup isearch match face." - :group 'popup) - -(defvar popup-isearch-cursor-color "blue") - -(defvar popup-isearch-keymap - (let ((map (make-sparse-keymap))) - ;(define-key map "\r" 'popup-isearch-done) - (define-key map "\C-g" 'popup-isearch-cancel) - (define-key map "\C-b" 'popup-isearch-close) - (define-key map [left] 'popup-isearch-close) - (define-key map "\C-h" 'popup-isearch-delete) - (define-key map (kbd "DEL") 'popup-isearch-delete) - (define-key map (kbd "C-y") 'popup-isearch-yank) - map)) - -(defvar popup-menu-show-quick-help-function 'popup-menu-show-quick-help - "Function used for showing quick help by `popup-menu*'.") - -(defcustom popup-isearch-regexp-builder-function #'regexp-quote - "Function used to construct a regexp from a pattern. You may for instance - provide a function that replaces spaces by '.+' if you like helm or ivy style - of completion." - :type 'function) - -(defsubst popup-isearch-char-p (char) - (and (integerp char) - (<= 32 char) - (<= char 126))) - -(defun popup-isearch-filter-list (pattern list) - (cl-loop with regexp = (funcall popup-isearch-regexp-builder-function pattern) - for item in list - do - (unless (stringp item) - (setq item (popup-item-propertize (popup-x-to-string item) - 'value item))) - if (string-match regexp item) - collect - (let ((beg (match-beginning 0)) - (end (match-end 0))) - (alter-text-property 0 (length item) 'face - (lambda (prop) - (unless (eq prop 'popup-isearch-match) - prop)) - item) - (put-text-property beg end - 'face 'popup-isearch-match - item) - item))) - -(defun popup-isearch-prompt (popup pattern) - (format "Pattern: %s" (if (= (length (popup-list popup)) 0) - (propertize pattern 'face 'isearch-fail) - pattern))) - -(defun popup-isearch-update (popup filter pattern &optional callback) - (setf (popup-cursor popup) 0 - (popup-scroll-top popup) 0 - (popup-pattern popup) pattern) - (let ((list (funcall filter pattern (popup-original-list popup)))) - (popup-set-filtered-list popup list) - (if callback - (funcall callback list))) - (popup-draw popup)) - -(cl-defun popup-isearch (popup - &key - (filter 'popup-isearch-filter-list) - (cursor-color popup-isearch-cursor-color) - (keymap popup-isearch-keymap) - callback - help-delay) - "Start isearch on POPUP. This function is synchronized, meaning -event loop waits for quiting of isearch. - -FILTER is function with two argumenst to perform popup items filtering. - -CURSOR-COLOR is a cursor color during isearch. The default value -is `popup-isearch-cursor-color'. - -KEYMAP is a keymap which is used when processing events during -event loop. The default value is `popup-isearch-keymap'. - -CALLBACK is a function taking one argument. `popup-isearch' calls -CALLBACK, if specified, after isearch finished or isearch -canceled. The arguments is whole filtered list of items. - -HELP-DELAY is a delay of displaying helps." - (let ((list (popup-original-list popup)) - (pattern (or (popup-pattern popup) "")) - (old-cursor-color (frame-parameter (selected-frame) 'cursor-color)) - prompt key binding) - (unwind-protect - (cl-block nil - (if cursor-color - (set-cursor-color cursor-color)) - (while t - (setq prompt (popup-isearch-prompt popup pattern)) - (setq key (popup-menu-read-key-sequence keymap prompt help-delay)) - (if (null key) - (unless (funcall popup-menu-show-quick-help-function popup nil :prompt prompt) - (clear-this-command-keys) - (push (read-event prompt) unread-command-events)) - (setq binding (lookup-key keymap key)) - (cond - ((and (stringp key) - (popup-isearch-char-p (aref key 0))) - (setq pattern (concat pattern key))) - ((eq binding 'popup-isearch-done) - (cl-return nil)) - ((eq binding 'popup-isearch-cancel) - (popup-isearch-update popup filter "" callback) - (cl-return t)) - ((eq binding 'popup-isearch-close) - (popup-isearch-update popup filter "" callback) - (setq unread-command-events - (append (listify-key-sequence key) unread-command-events)) - (cl-return nil)) - ((eq binding 'popup-isearch-delete) - (if (> (length pattern) 0) - (setq pattern (substring pattern 0 (1- (length pattern)))))) - ((eq binding 'popup-isearch-yank) - (popup-isearch-update popup filter (car kill-ring) callback) - (cl-return nil)) - (t - (setq unread-command-events - (append (listify-key-sequence key) unread-command-events)) - (cl-return nil))) - (popup-isearch-update popup filter pattern callback)))) - (if old-cursor-color - (set-cursor-color old-cursor-color))))) - - - -;;; Popup Tip - -(defface popup-tip-face - '((t (:background "khaki1" :foreground "black"))) - "Face for popup tip." - :group 'popup) - -(defvar popup-tip-max-width 80) - -(cl-defun popup-tip (string - &key - point - (around t) - width - (height 15) - min-height - max-width - truncate - margin - margin-left - margin-right - scroll-bar - parent - parent-offset - nowait - nostrip - prompt - &aux tip lines) - "Show a tooltip of STRING at POINT. This function is -synchronized unless NOWAIT specified. Almost all arguments are -the same as in `popup-create', except for TRUNCATE, NOWAIT, and -PROMPT. - -If TRUNCATE is non-nil, the tooltip can be truncated. - -If NOWAIT is non-nil, this function immediately returns the -tooltip instance without entering event loop. - -If `NOSTRIP` is non-nil, `STRING` properties are not stripped. - -PROMPT is a prompt string when reading events during event loop." - (if (bufferp string) - (setq string (with-current-buffer string (buffer-string)))) - - (unless nostrip - ;; TODO strip text (mainly face) properties - (setq string (substring-no-properties string))) - - (and (eq margin t) (setq margin 1)) - (or margin-left (setq margin-left margin)) - (or margin-right (setq margin-right margin)) - - (let ((it (popup-fill-string string width popup-tip-max-width))) - (setq width (car it) - lines (cdr it))) - - (setq tip (popup-create point width height - :min-height min-height - :max-width max-width - :around around - :margin-left margin-left - :margin-right margin-right - :scroll-bar scroll-bar - :face 'popup-tip-face - :parent parent - :parent-offset parent-offset)) - - (unwind-protect - (when (> (popup-width tip) 0) ; not to be corrupted - (when (and (not (eq width (popup-width tip))) ; truncated - (not truncate)) - ;; Refill once again to lines be fitted to popup width - (setq width (popup-width tip)) - (setq lines (cdr (popup-fill-string string width width)))) - - (popup-set-list tip lines) - (popup-draw tip) - (if nowait - tip - (clear-this-command-keys) - (push (read-event prompt) unread-command-events) - t)) - (unless nowait - (popup-delete tip)))) - - - -;;; Popup Menu - -(defface popup-menu-face - '((t (:inherit popup-face))) - "Face for popup menu." - :group 'popup) - -(defface popup-menu-mouse-face - '((t (:background "blue" :foreground "white"))) - "Face for popup menu." - :group 'popup) - -(defface popup-menu-selection-face - '((t (:inherit default :background "steelblue" :foreground "white"))) - "Face for popup menu selection." - :group 'popup) - -(defface popup-menu-summary-face - '((t (:inherit popup-summary-face))) - "Face for popup summary." - :group 'popup) - -(defvar popup-menu-show-tip-function 'popup-tip - "Function used for showing tooltip by `popup-menu-show-quick-help'.") - -(defun popup-menu-show-help (menu &optional persist item) - (popup-item-show-help (or item (popup-selected-item menu)) persist)) - -(defun popup-menu-documentation (menu &optional item) - (popup-item-documentation (or item (popup-selected-item menu)))) - -(defun popup-menu-show-quick-help (menu &optional item &rest args) - (let* ((point (plist-get args :point)) - (height (or (plist-get args :height) (popup-height menu))) - (min-height (min height (popup-current-height menu))) - (around nil) - (parent-offset (popup-offset menu)) - (doc (popup-menu-documentation menu item))) - (when (stringp doc) - (if (popup-hidden-p menu) - (setq around t - menu nil - parent-offset nil) - (setq point nil)) - (let ((popup-use-optimized-column-computation nil)) ; To avoid wrong positioning - (apply popup-menu-show-tip-function - doc - :point point - :height height - :min-height min-height - :around around - :parent menu - :parent-offset parent-offset - args))))) - -(defun popup-menu-item-of-mouse-event (event) - (when (and (consp event) - (memq (cl-first event) '(mouse-1 mouse-2 mouse-3 mouse-4 mouse-5))) - (let* ((position (cl-second event)) - (object (elt position 4))) - (when (consp object) - (get-text-property (cdr object) 'popup-item (car object)))))) - -(defun popup-menu-read-key-sequence (keymap &optional prompt timeout) - (catch 'timeout - (let ((timer (and timeout - (run-with-timer timeout nil - (lambda () - (if (zerop (length (this-command-keys))) - (throw 'timeout nil)))))) - (old-global-map (current-global-map)) - (temp-global-map (make-sparse-keymap)) - (overriding-terminal-local-map (make-sparse-keymap))) - (substitute-key-definition 'keyboard-quit 'keyboard-quit - temp-global-map old-global-map) - (define-key temp-global-map [menu-bar] (lookup-key old-global-map [menu-bar])) - (define-key temp-global-map [tool-bar] (lookup-key old-global-map [tool-bar])) - (set-keymap-parent overriding-terminal-local-map keymap) - (if (current-local-map) - (define-key overriding-terminal-local-map [menu-bar] - (lookup-key (current-local-map) [menu-bar]))) - (unwind-protect - (progn - (use-global-map temp-global-map) - (clear-this-command-keys) - (with-temp-message prompt - (read-key-sequence nil))) - (use-global-map old-global-map) - (if timer (cancel-timer timer)))))) - -(defun popup-menu-fallback (event default)) - -(cl-defun popup-menu-event-loop (menu - keymap - fallback - &key - prompt - help-delay - isearch - isearch-filter - isearch-cursor-color - isearch-keymap - isearch-callback - &aux key binding) - (cl-block nil - (while (popup-live-p menu) - (and isearch - (popup-isearch menu - :filter isearch-filter - :cursor-color isearch-cursor-color - :keymap isearch-keymap - :callback isearch-callback - :help-delay help-delay) - (keyboard-quit)) - (setq key (popup-menu-read-key-sequence keymap prompt help-delay)) - (setq binding (and key (lookup-key keymap key))) - (cond - ((or (null key) (zerop (length key))) - (unless (funcall popup-menu-show-quick-help-function menu nil :prompt prompt) - (clear-this-command-keys) - (push (read-event prompt) unread-command-events))) - ((eq (lookup-key (current-global-map) key) 'keyboard-quit) - (keyboard-quit) - (cl-return)) - ((eq binding 'popup-close) - (if (popup-parent menu) - (cl-return))) - ((memq binding '(popup-select popup-open)) - (let* ((item (or (popup-menu-item-of-mouse-event (elt key 0)) - (popup-selected-item menu))) - (index (cl-position item (popup-list menu))) - (sublist (popup-item-sublist item))) - (unless index (cl-return)) - (if sublist - (popup-aif (let (popup-use-optimized-column-computation) - (popup-cascade-menu sublist - :around nil - :margin-left (popup-margin-left menu) - :margin-right (popup-margin-right menu) - :scroll-bar (popup-scroll-bar menu) - :parent menu - :parent-offset index - :help-delay help-delay - :isearch isearch - :isearch-filter isearch-filter - :isearch-cursor-color isearch-cursor-color - :isearch-keymap isearch-keymap - :isearch-callback isearch-callback)) - (and it (cl-return it))) - (if (eq binding 'popup-select) - (cl-return (popup-item-value-or-self item)))))) - ((eq binding 'popup-next) - (popup-next menu)) - ((eq binding 'popup-previous) - (popup-previous menu)) - ((eq binding 'popup-page-next) - (popup-page-next menu)) - ((eq binding 'popup-page-previous) - (popup-page-previous menu)) - ((eq binding 'popup-help) - (popup-menu-show-help menu)) - ((eq binding 'popup-isearch) - (popup-isearch menu - :filter isearch-filter - :cursor-color isearch-cursor-color - :keymap isearch-keymap - :callback isearch-callback - :help-delay help-delay)) - ((commandp binding) - (call-interactively binding)) - (t - (funcall fallback key (key-binding key))))))) - -(defun popup-preferred-width (list) - "Return the preferred width to show LIST beautifully." - (cl-loop with tab-width = 4 - for item in list - for summary = (popup-item-summary item) - maximize (string-width (popup-x-to-string item)) into width - if (stringp summary) - maximize (+ (string-width summary) 2) into summary-width - finally return - (let ((total (+ (or width 0) (or summary-width 0)))) - (* (ceiling (/ total 10.0)) 10)))) - -(defvar popup-menu-keymap - (let ((map (make-sparse-keymap))) - (define-key map "\r" 'popup-select) - (define-key map "\C-f" 'popup-open) - (define-key map [right] 'popup-open) - (define-key map "\C-b" 'popup-close) - (define-key map [left] 'popup-close) - - (define-key map "\C-n" 'popup-next) - (define-key map [down] 'popup-next) - (define-key map "\C-p" 'popup-previous) - (define-key map [up] 'popup-previous) - - (define-key map [next] 'popup-page-next) - (define-key map [prior] 'popup-page-previous) - - (define-key map [f1] 'popup-help) - (define-key map (kbd "\C-?") 'popup-help) - - (define-key map "\C-s" 'popup-isearch) - - (define-key map [mouse-1] 'popup-select) - (define-key map [mouse-4] 'popup-previous) - (define-key map [mouse-5] 'popup-next) - map)) - -(cl-defun popup-menu* (list - &key - point - (around t) - (width (popup-preferred-width list)) - (height 15) - max-width - margin - margin-left - margin-right - scroll-bar - symbol - parent - parent-offset - cursor - (keymap popup-menu-keymap) - (fallback 'popup-menu-fallback) - help-delay - nowait - prompt - isearch - (isearch-filter 'popup-isearch-filter-list) - (isearch-cursor-color popup-isearch-cursor-color) - (isearch-keymap popup-isearch-keymap) - isearch-callback - initial-index - &aux menu event) - "Show a popup menu of LIST at POINT. This function returns a -value of the selected item. Almost all arguments are the same as in -`popup-create', except for KEYMAP, FALLBACK, HELP-DELAY, PROMPT, -ISEARCH, ISEARCH-FILTER, ISEARCH-CURSOR-COLOR, ISEARCH-KEYMAP, and -ISEARCH-CALLBACK. - -If KEYMAP is a keymap which is used when processing events during -event loop. - -If FALLBACK is a function taking two arguments; a key and a -command. FALLBACK is called when no special operation is found on -the key. The default value is `popup-menu-fallback', which does -nothing. - -HELP-DELAY is a delay of displaying helps. - -If NOWAIT is non-nil, this function immediately returns the menu -instance without entering event loop. - -PROMPT is a prompt string when reading events during event loop. - -If ISEARCH is non-nil, do isearch as soon as displaying the popup -menu. - -ISEARCH-FILTER is a filtering function taking two arguments: -search pattern and list of items. Returns a list of matching items. - -ISEARCH-CURSOR-COLOR is a cursor color during isearch. The -default value is `popup-isearch-cursor-color'. - -ISEARCH-KEYMAP is a keymap which is used when processing events -during event loop. The default value is `popup-isearch-keymap'. - -ISEARCH-CALLBACK is a function taking one argument. `popup-menu' -calls ISEARCH-CALLBACK, if specified, after isearch finished or -isearch canceled. The arguments is whole filtered list of items. - -If `INITIAL-INDEX' is non-nil, this is an initial index value for -`popup-select'. Only positive integer is valid." - (and (eq margin t) (setq margin 1)) - (or margin-left (setq margin-left margin)) - (or margin-right (setq margin-right margin)) - (if (and scroll-bar - (integerp margin-right) - (> margin-right 0)) - ;; Make scroll-bar space as margin-right - (cl-decf margin-right)) - (setq menu (popup-create point width height - :max-width max-width - :around around - :face 'popup-menu-face - :mouse-face 'popup-menu-mouse-face - :selection-face 'popup-menu-selection-face - :summary-face 'popup-menu-summary-face - :margin-left margin-left - :margin-right margin-right - :scroll-bar scroll-bar - :symbol symbol - :parent parent - :parent-offset parent-offset)) - (unwind-protect - (progn - (popup-set-list menu list) - (if cursor - (popup-jump menu cursor) - (popup-draw menu)) - (when initial-index - (dotimes (_i (min (- (length list) 1) initial-index)) - (popup-next menu))) - (if nowait - menu - (popup-menu-event-loop menu keymap fallback - :prompt prompt - :help-delay help-delay - :isearch isearch - :isearch-filter isearch-filter - :isearch-cursor-color isearch-cursor-color - :isearch-keymap isearch-keymap - :isearch-callback isearch-callback))) - (unless nowait - (popup-delete menu)))) - -(defun popup-cascade-menu (list &rest args) - "Same as `popup-menu' except that an element of LIST can be -also a sub-menu if the element is a cons cell formed (ITEM -. SUBLIST) where ITEM is an usual item and SUBLIST is a list of -the sub menu." - (apply 'popup-menu* - (mapcar (lambda (item) - (if (consp item) - (popup-make-item (car item) - :sublist (cdr item) - :symbol ">") - item)) - list) - :symbol t - args)) - -(provide 'popup) -;;; popup.el ends here diff --git a/project1/.emacs.d/packages/popup-20160709.1429/popup.elc b/project1/.emacs.d/packages/popup-20160709.1429/popup.elc deleted file mode 100644 index 35f23722c6aa08a7425d5be806d297c8f5a09c76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75992 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 diff --git a/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode-autoloads.el b/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode-autoloads.el deleted file mode 100644 index a6f5098..0000000 --- a/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode-autoloads.el +++ /dev/null @@ -1,29 +0,0 @@ -;;; protobuf-mode-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil "protobuf-mode" "protobuf-mode.el" (23815 56877 -;;;;;; 296889 459000)) -;;; Generated autoloads from protobuf-mode.el - (add-to-list 'auto-mode-alist '("\\.proto\\'" . protobuf-mode)) - -(autoload 'protobuf-mode "protobuf-mode" "\ -Major mode for editing Protocol Buffers description language. - -The hook `c-mode-common-hook' is run with no argument at mode -initialization, then `protobuf-mode-hook'. - -Key bindings: -\\{protobuf-mode-map} - -\(fn)" t nil) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; protobuf-mode-autoloads.el ends here diff --git a/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode-pkg.el b/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode-pkg.el deleted file mode 100644 index c790c5f..0000000 --- a/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode-pkg.el +++ /dev/null @@ -1 +0,0 @@ -(define-package "protobuf-mode" "20170526.1650" "major mode for editing protocol buffers." 'nil :commit "997bd354d55de6a8462ac3db0b002aa73b240cff" :keywords '("google" "protobuf" "languages") :authors '(("Alexandre Vassalotti" . "alexandre@peadrop.com")) :maintainer '("Alexandre Vassalotti" . "alexandre@peadrop.com")) diff --git a/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode-pkg.elc b/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode-pkg.elc deleted file mode 100644 index 051579507aa36eee4de2977b1cc8b883c2ffdbcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmbtR!EW0y49(d;uq&ZUQ=kzX$4;8$vLfiAz-}9MrzP3eDv5?9uj{^kw6_)*dMe5j zsYkx|M4s=zTt2N<tKxh<!-f24ozY8S1KfL534WTGECr})S<7ZCs|9|tc>r_{Xw25z z-<Y{4$zlP&4K_i?R4^rzKtBicR)Hp!a<rjOH;l%V0kt+7UZu82SsmYSXkv~)85D(# z+&txObIUJbbNBV~@BnJSh$^$sn?)XjhD4w+Kx@De{wMP9KM4#*XHA4WaAURmtIK=% zP|OBC8bwj8wdrgyn-SF`_6EclDN{Rj8&BE@5LLN7lufml+kI1V?ePaim_g_`G1_Kc zG%RC^9Pntz3z7nYb#PMTz0Dww$3v@kO|6?on?2sv`wG=gw`E(F72;vnR&}YmPQdBW zJU>y?39i<nC+gj7<HZ)I4nse&*Cejtgi{_U&b@1K=gcoYNi^^sQ$j~MTLBUTz5t&` ZgF4bE*_OEGanEO-PtDh1wRaN~e*i*0-E05= diff --git a/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode.el b/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode.el deleted file mode 100644 index 2b04926..0000000 --- a/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode.el +++ /dev/null @@ -1,224 +0,0 @@ -;;; protobuf-mode.el --- major mode for editing protocol buffers. - -;; Author: Alexandre Vassalotti <alexandre@peadrop.com> -;; Created: 23-Apr-2009 -;; Version: 0.3 -;; Package-Version: 20170526.1650 -;; Keywords: google protobuf languages - -;; Redistribution and use in source and binary forms, with or without -;; modification, are permitted provided that the following conditions are -;; met: -;; -;; * Redistributions of source code must retain the above copyright -;; notice, this list of conditions and the following disclaimer. -;; * Redistributions in binary form must reproduce the above -;; copyright notice, this list of conditions and the following disclaimer -;; in the documentation and/or other materials provided with the -;; distribution. -;; * Neither the name of Google Inc. nor the names of its -;; contributors may be used to endorse or promote products derived from -;; this software without specific prior written permission. -;; -;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -;; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -;; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -;; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -;; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -;;; Commentary: - -;; Installation: -;; - Put `protobuf-mode.el' in your Emacs load-path. -;; - Add this line to your .emacs file: -;; (require 'protobuf-mode) -;; -;; You can customize this mode just like any mode derived from CC Mode. If -;; you want to add customizations specific to protobuf-mode, you can use the -;; `protobuf-mode-hook'. For example, the following would make protocol-mode -;; use 2-space indentation: -;; -;; (defconst my-protobuf-style -;; '((c-basic-offset . 2) -;; (indent-tabs-mode . nil))) -;; -;; (add-hook 'protobuf-mode-hook -;; (lambda () (c-add-style "my-style" my-protobuf-style t))) -;; -;; Refer to the documentation of CC Mode for more information about -;; customization details and how to use this mode. -;; -;; TODO: -;; - Make highlighting for enum values work properly. -;; - Fix the parser to recognize extensions as identifiers and not -;; as casts. -;; - Improve the parsing of option assignment lists. For example: -;; optional int32 foo = 1 [(my_field_option) = 4.5]; -;; - Add support for fully-qualified identifiers (e.g., with a leading "."). - -;;; Code: - -(require 'cc-mode) - -(eval-when-compile - (and (= emacs-major-version 24) - (>= emacs-minor-version 4) - (require 'cl)) - (require 'cc-langs) - (require 'cc-fonts)) - -;; This mode does not inherit properties from other modes. So, we do not use -;; the usual `c-add-language' function. -(eval-and-compile - (put 'protobuf-mode 'c-mode-prefix "protobuf-")) - -;; The following code uses of the `c-lang-defconst' macro define syntactic -;; features of protocol buffer language. Refer to the documentation in the -;; cc-langs.el file for information about the meaning of the -kwds variables. - -(c-lang-defconst c-primitive-type-kwds - protobuf '("double" "float" "int32" "int64" "uint32" "uint64" "sint32" - "sint64" "fixed32" "fixed64" "sfixed32" "sfixed64" "bool" - "string" "bytes" "group")) - -(c-lang-defconst c-modifier-kwds - protobuf '("required" "optional" "repeated")) - -(c-lang-defconst c-class-decl-kwds - protobuf '("message" "enum" "service")) - -(c-lang-defconst c-constant-kwds - protobuf '("true" "false")) - -(c-lang-defconst c-other-decl-kwds - protobuf '("package" "import")) - -(c-lang-defconst c-other-kwds - protobuf '("default" "max")) - -(c-lang-defconst c-identifier-ops - ;; Handle extended identifiers like google.protobuf.MessageOptions - protobuf '((left-assoc "."))) - -;; The following keywords do not fit well in keyword classes defined by -;; cc-mode. So, we approximate as best we can. - -(c-lang-defconst c-type-list-kwds - protobuf '("extensions" "to" "reserved")) - -(c-lang-defconst c-typeless-decl-kwds - protobuf '("extend" "rpc" "option" "returns")) - - -;; Here we remove default syntax for loops, if-statements and other C -;; syntactic features that are not supported by the protocol buffer language. - -(c-lang-defconst c-brace-list-decl-kwds - ;; Remove syntax for C-style enumerations. - protobuf nil) - -(c-lang-defconst c-block-stmt-1-kwds - ;; Remove syntax for "do" and "else" keywords. - protobuf nil) - -(c-lang-defconst c-block-stmt-2-kwds - ;; Remove syntax for "for", "if", "switch" and "while" keywords. - protobuf nil) - -(c-lang-defconst c-simple-stmt-kwds - ;; Remove syntax for "break", "continue", "goto" and "return" keywords. - protobuf nil) - -(c-lang-defconst c-paren-stmt-kwds - ;; Remove special case for the "(;;)" in for-loops. - protobuf nil) - -(c-lang-defconst c-label-kwds - ;; Remove case label syntax for the "case" and "default" keywords. - protobuf nil) - -(c-lang-defconst c-before-label-kwds - ;; Remove special case for the label in a goto statement. - protobuf nil) - -(c-lang-defconst c-cpp-matchers - ;; Disable all the C preprocessor syntax. - protobuf nil) - -(c-lang-defconst c-decl-prefix-re - ;; Same as for C, except it does not match "(". This is needed for disabling - ;; the syntax for casts. - protobuf "\\([\{\};,]+\\)") - - -;; Add support for variable levels of syntax highlighting. - -(defconst protobuf-font-lock-keywords-1 (c-lang-const c-matchers-1 protobuf) - "Minimal highlighting for protobuf-mode.") - -(defconst protobuf-font-lock-keywords-2 (c-lang-const c-matchers-2 protobuf) - "Fast normal highlighting for protobuf-mode.") - -(defconst protobuf-font-lock-keywords-3 (c-lang-const c-matchers-3 protobuf) - "Accurate normal highlighting for protobuf-mode.") - -(defvar protobuf-font-lock-keywords protobuf-font-lock-keywords-3 - "Default expressions to highlight in protobuf-mode.") - -;; Our syntax table is auto-generated from the keyword classes we defined -;; previously with the `c-lang-const' macro. -(defvar protobuf-mode-syntax-table nil - "Syntax table used in protobuf-mode buffers.") -(or protobuf-mode-syntax-table - (setq protobuf-mode-syntax-table - (funcall (c-lang-const c-make-mode-syntax-table protobuf)))) - -(defvar protobuf-mode-abbrev-table nil - "Abbreviation table used in protobuf-mode buffers.") - -(defvar protobuf-mode-map nil - "Keymap used in protobuf-mode buffers.") -(or protobuf-mode-map - (setq protobuf-mode-map (c-make-inherited-keymap))) - -(easy-menu-define protobuf-menu protobuf-mode-map - "Protocol Buffers Mode Commands" - (cons "Protocol Buffers" (c-lang-const c-mode-menu protobuf))) - -;;;###autoload (add-to-list 'auto-mode-alist '("\\.proto\\'" . protobuf-mode)) - -;;;###autoload -(defun protobuf-mode () - "Major mode for editing Protocol Buffers description language. - -The hook `c-mode-common-hook' is run with no argument at mode -initialization, then `protobuf-mode-hook'. - -Key bindings: -\\{protobuf-mode-map}" - (interactive) - (kill-all-local-variables) - (set-syntax-table protobuf-mode-syntax-table) - (setq major-mode 'protobuf-mode - mode-name "Protocol-Buffers" - local-abbrev-table protobuf-mode-abbrev-table - abbrev-mode t) - (use-local-map protobuf-mode-map) - (c-initialize-cc-mode t) - (if (fboundp 'c-make-emacs-variables-local) - (c-make-emacs-variables-local)) - (c-init-language-vars protobuf-mode) - (c-common-init 'protobuf-mode) - (easy-menu-add protobuf-menu) - (c-run-mode-hooks 'c-mode-common-hook 'protobuf-mode-hook) - (c-update-modeline)) - -(provide 'protobuf-mode) - -;;; protobuf-mode.el ends here diff --git a/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode.elc b/project1/.emacs.d/packages/protobuf-mode-20170526.1650/protobuf-mode.elc deleted file mode 100644 index c8d6fc11310a3bbd44e40841493059003f313506..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43280 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 B`yBuP diff --git a/project1/.emacs.d/packages/protobuf-mode-readme.txt b/project1/.emacs.d/packages/protobuf-mode-readme.txt deleted file mode 100644 index f3fa3cd..0000000 --- a/project1/.emacs.d/packages/protobuf-mode-readme.txt +++ /dev/null @@ -1,27 +0,0 @@ -Installation: - - Put `protobuf-mode.el' in your Emacs load-path. - - Add this line to your .emacs file: - (require 'protobuf-mode) - -You can customize this mode just like any mode derived from CC Mode. If -you want to add customizations specific to protobuf-mode, you can use the -`protobuf-mode-hook'. For example, the following would make protocol-mode -use 2-space indentation: - - (defconst my-protobuf-style - '((c-basic-offset . 2) - (indent-tabs-mode . nil))) - - (add-hook 'protobuf-mode-hook - (lambda () (c-add-style "my-style" my-protobuf-style t))) - -Refer to the documentation of CC Mode for more information about -customization details and how to use this mode. - -TODO: - - Make highlighting for enum values work properly. - - Fix the parser to recognize extensions as identifiers and not - as casts. - - Improve the parsing of option assignment lists. For example: - optional int32 foo = 1 [(my_field_option) = 4.5]; - - Add support for fully-qualified identifiers (e.g., with a leading "."). diff --git a/project1/.emacs.d/packages/seq-2.20/ChangeLog b/project1/.emacs.d/packages/seq-2.20/ChangeLog deleted file mode 100644 index 07f4988..0000000 --- a/project1/.emacs.d/packages/seq-2.20/ChangeLog +++ /dev/null @@ -1,195 +0,0 @@ -2017-05-04 Nicolas Petton <nicolas@petton.fr> - - Update seq.el to 2.20 - -2016-12-16 Nicolas Petton <nicolas@petton.fr> - - Backport the latest changes to seq.el from Emacs master - - * packages/seq/seq-24.el: - * packages/seq/seq-25.el (seq-into): Do not convert the sequence if not - needed. - * packages/seq/tests/seq-tests.el: Add a regression test. - -2016-12-15 Nicolas Petton <nicolas@petton.fr> - - Backport seq-mapn fix from Emacs master - - * packages/seq/seq-24.el (seq-mapn): - * packages/seq/seq-25.el (seq-mapn): Fix for circular lists. - * packages/seq/tests/seq-tests.el: Add a regression test. - -2016-11-16 Nicolas Petton <nicolas@petton.fr> - - Do not use map.el in seq-tests.el - - * packages/seq/tests/seq-tests.el: Do not use map.el. map.el was - introduced in Emacs 25.1, but seq.el is also available in GNU ELPA for - Emacs 24.5. - -2016-10-25 Nicolas Petton <nicolas@petton.fr> - - Fix seq-random-elt docstring - - * packages/seq/seq-24.el: - * packages/seq/seq-25.el (seq-random-elt): Fix the docstring. - -2016-10-25 Nicolas Petton <nicolas@petton.fr> - - Backport seq.el changes from Emacs master - - * packages/seq/seq-24.el: - * packages/seq/seq-25.el (seq-random-elt): New function. - * packages/seq/seq.el: Bump version to 2.19. - * packages/seq/tests/seq-tests.el: Add tests for seq-random-elt. - -2016-09-02 Clément Pit--Claudel <clement.pitclaudel@live.com> - - ; Fix documentation of seq-subseq - -2016-08-28 Nicolas Petton <nicolas@petton.fr> - - * packages/seq/seq-24.el: Rename seq-p to seqp - -2016-06-12 Nicolas Petton <nicolas@petton.fr> - - Update seq.el to 2.16 - - * packages/seq/seq-24.el: - * packages/seq/seq-25.el: Better implementation of seq-drop for lists. - * packages/seq/seq.el: Bump version number. - -2016-04-22 Stefan Monnier <monnier@iro.umontreal.ca> - - * seq-24.el (seq-concatenate,seq-into,seq--make-bindings): Use _ - - rather than t as catch-all for pcase. - -2016-03-31 Nicolas Petton <nicolas@petton.fr> - - Update seq to version 2.15 - - * packages/seq/seq-25.el: Require cl-lib. - * packages/seq/seq.el: Bump version number. - -2016-03-29 Nicolas Petton <nicolas@petton.fr> - - Update seq.el to version 2.14 - - * packages/seq/seq.el: Bump version number. - * packages/seq/seq-24.el (seq-sort-by): New function. - * packages/seq/seq-25.el (seq-sort-by): New function. - * packages/seq/tests/seq-tests.el: Add a test for seq-sort-by. - -2016-03-25 Nicolas Petton <nicolas@petton.fr> - - * packages/seq/seq-25.el: Better declarations for seq--when-emacs-25-p - -2016-03-25 Nicolas Petton <nicolas@petton.fr> - - Split seq.el into separate files for different versions of Emacs - - All functions in seq-25.el are wrapped in a `seq--when-emacs-25-p' to - make sure that the byte compiler won't emit warnings or errors when the - file is byte compiled in Emacs < 25. - - * packages/seq/seq-24.el: - * packages/seq/seq-25.el: New files. - * packages/seq/seq.el: Load seq-VERSION.el based on the version of - Emacs. - * packages/seq/test/seq.el-test.el: Backport a test from seq.el in Emacs - master. - -2015-11-30 Stefan Monnier <monnier@iro.umontreal.ca> - - * packages/seq: Don't define it as a :core package - - Revert the removal of packages/seq/seq.el since it's different from the - one in lisp/emacs-lisp. - * .gitignore: Remove packages/seq. - * externals-list: Remove "seq" entry. - -2015-11-29 Stefan Monnier <monnier@iro.umontreal.ca> - - * externals-list: Add seq and python as :core packages - - * .gitignore: Add packages/{seq,python}. - * packages/seq: Remove. - -2015-10-20 Nicolas Petton <nicolas@petton.fr> - - Update seq.el to version 1.11 - - * packages/seq/seq.el: - * packages/seq/tests/seq-tests.el: Update. - -2015-09-18 Nicolas Petton <nicolas@petton.fr> - - Update seq.el to version 1.9 - - * packages/seq/seq.el: Update to version 1.9. - * packages/seq/tests/seq-tests.el: Update to version 1.9. - -2015-07-09 Nicolas Petton <nicolas@petton.fr> - - Update seq.el to version 1.8 - - * packages/seq/seq.el: Update to version 1.8. - * packages/seq/tests/seq-tests.el: Update to version 1.8. - -2015-05-15 Nicolas Petton <nicolas@petton.fr> - - Update seq.el to version 1.7 - - * packages/seq/seq.el: Update to version 1.7. - * packages/seq/tests/seq-tests.el: Update to version 1.7. - -2015-04-27 Nicolas Petton <nicolas@petton.fr> - - * packages/seq/seq.el: Update seq.el to version 1.5. - -2015-04-15 Nicolas Petton <nicolas@petton.fr> - - seq.el update - - * packages/seq/seq.el: Update seq.el to version 1.4 - * packages/seq/tests/seq-tests.el: Update seq.el to version 1.4 - -2015-03-25 Nicolas Petton <nicolas@petton.fr> - - Rephrases a comment in seq.el about the order of the arguments - - * packages/seq/seq.el: Better comment about the order of the arguments - -2015-03-09 Nicolas Petton <nicolas@petton.fr> - - Update seq.el to version 1.3 - - * packages/seq/seq.el: update to version 1.3 - * packages/seq/tests/seq-tests.el: update to version 1.3 - -2015-02-11 Nicolas Petton <nicolas@petton.fr> - - Update seq.el to version 1.2 - - * package/seq/seq.el: Update to version 1.2 - * packages/seq/tests/seq-tests.el: Update to version 1.2 - -2015-02-09 Nicolas Petton <nicolas@petton.fr> - - Update seq.el to version 1.1.1 - - * package/seq/seq.el: Update to version 1.1.1 - * packages/seq/tests/seq-tests.el: Update to version 1.1.1 - -2015-02-06 Nicolas Petton <nicolas@petton.fr> - - Update seq.el to version 1.1 - - * packages/seq/seq.el: Update to version 1.1 - * packages/seq/tests/seq-tests.el: Update to version 1.1 - -2015-01-14 Nicolas Petton <nicolas@petton.fr> - - packages/seq: New package - diff --git a/project1/.emacs.d/packages/seq-2.20/seq-24.el b/project1/.emacs.d/packages/seq-2.20/seq-24.el deleted file mode 100644 index d7ea729..0000000 --- a/project1/.emacs.d/packages/seq-2.20/seq-24.el +++ /dev/null @@ -1,496 +0,0 @@ -;;; seq-24.el --- seq.el implementation for Emacs 24.x -*- lexical-binding: t -*- - -;; Copyright (C) 2014-2016 Free Software Foundation, Inc. - -;; Author: Nicolas Petton <nicolas@petton.fr> -;; Keywords: sequences - -;; Maintainer: emacs-devel@gnu.org - -;; This file is part of GNU Emacs. - -;; GNU Emacs 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. - -;; GNU Emacs 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; Sequence-manipulation functions that complement basic functions -;; provided by subr.el. -;; -;; All functions are prefixed with "seq-". -;; -;; All provided functions work on lists, strings and vectors. -;; -;; Functions taking a predicate or iterating over a sequence using a -;; function as argument take the function as their first argument and -;; the sequence as their second argument. All other functions take -;; the sequence as their first argument. - -;;; Code: - -(defmacro seq-doseq (spec &rest body) - "Loop over a sequence. -Similar to `dolist' but can be applied to lists, strings, and vectors. - -Evaluate BODY with VAR bound to each element of SEQ, in turn. - -\(fn (VAR SEQ) BODY...)" - (declare (indent 1) (debug ((symbolp form &optional form) body))) - (let ((length (make-symbol "length")) - (seq (make-symbol "seq")) - (index (make-symbol "index"))) - `(let* ((,seq ,(cadr spec)) - (,length (if (listp ,seq) nil (seq-length ,seq))) - (,index (if ,length 0 ,seq))) - (while (if ,length - (< ,index ,length) - (consp ,index)) - (let ((,(car spec) (if ,length - (prog1 (seq-elt ,seq ,index) - (setq ,index (+ ,index 1))) - (pop ,index)))) - ,@body))))) - -;; Implementation of `seq-let' compatible with Emacs<25.1. -(defmacro seq-let (args sequence &rest body) - "Bind the variables in ARGS to the elements of SEQUENCE then evaluate BODY. - -ARGS can also include the `&rest' marker followed by a variable -name to be bound to the rest of SEQUENCE." - (declare (indent 2) (debug t)) - (let ((seq-var (make-symbol "seq"))) - `(let* ((,seq-var ,sequence) - ,@(seq--make-bindings args seq-var)) - ,@body))) - -(defun seq-drop (sequence n) - "Return a subsequence of SEQUENCE without its first N elements. -The result is a sequence of the same type as SEQUENCE. - -If N is a negative integer or zero, SEQUENCE is returned." - (if (<= n 0) - sequence - (if (listp sequence) - (seq--drop-list sequence n) - (let ((length (seq-length sequence))) - (seq-subseq sequence (min n length) length))))) - -(defun seq-take (sequence n) - "Return a subsequence of SEQUENCE with its first N elements. -The result is a sequence of the same type as SEQUENCE. - -If N is a negative integer or zero, an empty sequence is -returned." - (if (listp sequence) - (seq--take-list sequence n) - (seq-subseq sequence 0 (min (max n 0) (seq-length sequence))))) - -(defun seq-drop-while (predicate sequence) - "Return a sequence from the first element for which (PREDICATE element) is nil in SEQUENCE. -The result is a sequence of the same type as SEQUENCE." - (if (listp sequence) - (seq--drop-while-list predicate sequence) - (seq-drop sequence (seq--count-successive predicate sequence)))) - -(defun seq-take-while (predicate sequence) - "Return the successive elements for which (PREDICATE element) is non-nil in SEQUENCE. -The result is a sequence of the same type as SEQUENCE." - (if (listp sequence) - (seq--take-while-list predicate sequence) - (seq-take sequence (seq--count-successive predicate sequence)))) - -(defun seq-filter (predicate sequence) - "Return a list of all the elements for which (PREDICATE element) is non-nil in SEQUENCE." - (let ((exclude (make-symbol "exclude"))) - (delq exclude (seq-map (lambda (elt) - (if (funcall predicate elt) - elt - exclude)) - sequence)))) - -(defun seq-map-indexed (function sequence) - "Return the result of applying FUNCTION to each element of SEQUENCE. -Unlike `seq-map', FUNCTION takes two arguments: the element of -the sequence, and its index within the sequence." - (let ((index 0)) - (seq-map (lambda (elt) - (prog1 - (funcall function elt index) - (setq index (1+ index)))) - sequence))) - -(defun seq-remove (predicate sequence) - "Return a list of all the elements for which (PREDICATE element) is nil in SEQUENCE." - (seq-filter (lambda (elt) (not (funcall predicate elt))) - sequence)) - -(defun seq-reduce (function sequence initial-value) - "Reduce the function FUNCTION across SEQUENCE, starting with INITIAL-VALUE. - -Return the result of calling FUNCTION with INITIAL-VALUE and the -first element of SEQUENCE, then calling FUNCTION with that result and -the second element of SEQUENCE, then with that result and the third -element of SEQUENCE, etc. - -If SEQUENCE is empty, return INITIAL-VALUE and FUNCTION is not called." - (if (seq-empty-p sequence) - initial-value - (let ((acc initial-value)) - (seq-doseq (elt sequence) - (setq acc (funcall function acc elt))) - acc))) - -(defun seq-some (predicate sequence) - "Return the first value for which if (PREDICATE element) is non-nil for in SEQUENCE." - (catch 'seq--break - (seq-doseq (elt sequence) - (let ((result (funcall predicate elt))) - (when result - (throw 'seq--break result)))) - nil)) - -(defun seq-find (predicate sequence &optional default) - "Return the first element for which (PREDICATE element) is non-nil in SEQUENCE. -If no element is found, return DEFAULT. - -Note that `seq-find' has an ambiguity if the found element is -identical to DEFAULT, as it cannot be known if an element was -found or not." - (catch 'seq--break - (seq-doseq (elt sequence) - (when (funcall predicate elt) - (throw 'seq--break elt))) - default)) - -(defun seq-every-p (predicate sequence) - "Return non-nil if (PREDICATE element) is non-nil for all elements of the sequence SEQUENCE." - (catch 'seq--break - (seq-doseq (elt sequence) - (or (funcall predicate elt) - (throw 'seq--break nil))) - t)) - -(defun seq-count (predicate sequence) - "Return the number of elements for which (PREDICATE element) is non-nil in SEQUENCE." - (let ((count 0)) - (seq-doseq (elt sequence) - (when (funcall predicate elt) - (setq count (+ 1 count)))) - count)) - -(defun seq-empty-p (sequence) - "Return non-nil if the sequence SEQUENCE is empty, nil otherwise." - (if (listp sequence) - (null sequence) - (= 0 (seq-length sequence)))) - -(defun seq-sort (predicate sequence) - "Return a sorted sequence comparing using PREDICATE the elements of SEQUENCE. -The result is a sequence of the same type as SEQUENCE." - (if (listp sequence) - (sort (seq-copy sequence) predicate) - (let ((result (seq-sort predicate (append sequence nil)))) - (seq-into result (type-of sequence))))) - -(defun seq-sort-by (function pred sequence) - "Sort SEQUENCE using PRED as a comparison function. -Elements of SEQUENCE are transformed by FUNCTION before being -sorted. FUNCTION must be a function of one argument." - (seq-sort (lambda (a b) - (funcall pred - (funcall function a) - (funcall function b))) - sequence)) - -(defun seq-contains (sequence elt &optional testfn) - "Return the first element in SEQUENCE that equals to ELT. -Equality is defined by TESTFN if non-nil or by `equal' if nil." - (seq-some (lambda (e) - (funcall (or testfn #'equal) elt e)) - sequence)) - -(defun seq-set-equal-p (sequence1 sequence2 &optional testfn) - "Return non-nil if SEQUENCE1 and SEQUENCE2 contain the same elements, regardless of order. -Equality is defined by TESTFN if non-nil or by `equal' if nil." - (and (seq-every-p (lambda (item1) (seq-contains sequence2 item1 testfn)) sequence1) - (seq-every-p (lambda (item2) (seq-contains sequence1 item2 testfn)) sequence2))) - -(defun seq-position (sequence elt &optional testfn) - "Return the index of the first element in SEQUENCE that is equal to ELT. -Equality is defined by TESTFN if non-nil or by `equal' if nil." - (let ((index 0)) - (catch 'seq--break - (seq-doseq (e sequence) - (when (funcall (or testfn #'equal) e elt) - (throw 'seq--break index)) - (setq index (1+ index))) - nil))) - -(defun seq-uniq (sequence &optional testfn) - "Return a list of the elements of SEQUENCE with duplicates removed. -TESTFN is used to compare elements, or `equal' if TESTFN is nil." - (let ((result '())) - (seq-doseq (elt sequence) - (unless (seq-contains result elt testfn) - (setq result (cons elt result)))) - (nreverse result))) - -(defun seq-subseq (sequence start &optional end) - "Return the subsequence of SEQUENCE from START to END. -If END is omitted, it defaults to the length of the sequence. -If START or END is negative, it counts from the end." - (cond ((or (stringp sequence) (vectorp sequence)) (substring sequence start end)) - ((listp sequence) - (let (len (errtext (format "Bad bounding indices: %s, %s" start end))) - (and end (< end 0) (setq end (+ end (setq len (seq-length sequence))))) - (if (< start 0) (setq start (+ start (or len (setq len (seq-length sequence)))))) - (when (> start 0) - (setq sequence (nthcdr (1- start) sequence)) - (or sequence (error "%s" errtext)) - (setq sequence (cdr sequence))) - (if end - (let ((res nil)) - (while (and (>= (setq end (1- end)) start) sequence) - (push (pop sequence) res)) - (or (= (1+ end) start) (error "%s" errtext)) - (nreverse res)) - (seq-copy sequence)))) - (t (error "Unsupported sequence: %s" sequence)))) - -(defun seq-concatenate (type &rest seqs) - "Concatenate, into a sequence of type TYPE, the sequences SEQS. -TYPE must be one of following symbols: vector, string or list. - -\n(fn TYPE SEQUENCE...)" - (pcase type - (`vector (apply #'vconcat seqs)) - (`string (apply #'concat seqs)) - (`list (apply #'append (append seqs '(nil)))) - (_ (error "Not a sequence type name: %S" type)))) - -(defun seq-mapcat (function sequence &optional type) - "Concatenate the result of applying FUNCTION to each element of SEQUENCE. -The result is a sequence of type TYPE, or a list if TYPE is nil." - (apply #'seq-concatenate (or type 'list) - (seq-map function sequence))) - -(defun seq-mapn (function sequence &rest seqs) - "Like `seq-map' but FUNCTION is mapped over all SEQS. -The arity of FUNCTION must match the number of SEQS, and the -mapping stops on the shortest sequence. -Return a list of the results. - -\(fn FUNCTION SEQS...)" - (let ((result nil) - (seqs (seq-map (lambda (s) - (seq-into s 'list)) - (cons sequence seqs)))) - (while (not (memq nil seqs)) - (push (apply function (seq-map #'car seqs)) result) - (setq seqs (seq-map #'cdr seqs))) - (nreverse result))) - -(defun seq-partition (sequence n) - "Return a list of the elements of SEQUENCE grouped into sub-sequences of length N. -The last sequence may contain less than N elements. If N is a -negative integer or 0, nil is returned." - (unless (< n 1) - (let ((result '())) - (while (not (seq-empty-p sequence)) - (push (seq-take sequence n) result) - (setq sequence (seq-drop sequence n))) - (nreverse result)))) - -(defun seq-intersection (seq1 seq2 &optional testfn) - "Return a list of the elements that appear in both SEQ1 and SEQ2. -Equality is defined by TESTFN if non-nil or by `equal' if nil." - (seq-reduce (lambda (acc elt) - (if (seq-contains seq2 elt testfn) - (cons elt acc) - acc)) - (seq-reverse seq1) - '())) - -(defun seq-difference (seq1 seq2 &optional testfn) - "Return a list of the elements that appear in SEQ1 but not in SEQ2. -Equality is defined by TESTFN if non-nil or by `equal' if nil." - (seq-reduce (lambda (acc elt) - (if (not (seq-contains seq2 elt testfn)) - (cons elt acc) - acc)) - (seq-reverse seq1) - '())) - -(defun seq-group-by (function sequence) - "Apply FUNCTION to each element of SEQUENCE. -Separate the elements of SEQUENCE into an alist using the results as -keys. Keys are compared using `equal'." - (seq-reduce - (lambda (acc elt) - (let* ((key (funcall function elt)) - (cell (assoc key acc))) - (if cell - (setcdr cell (push elt (cdr cell))) - (push (list key elt) acc)) - acc)) - (seq-reverse sequence) - nil)) - -(defalias 'seq-reverse - (if (ignore-errors (reverse [1 2])) - #'reverse - (lambda (sequence) - "Return the reversed copy of list, vector, or string SEQUENCE. -See also the function `nreverse', which is used more often." - (let ((result '())) - (seq-map (lambda (elt) (push elt result)) - sequence) - (if (listp sequence) - result - (seq-into result (type-of sequence))))))) - -(defun seq-into (sequence type) - "Convert the sequence SEQUENCE into a sequence of type TYPE. -TYPE can be one of the following symbols: vector, string or list." - (pcase type - (`vector (seq--into-vector sequence)) - (`string (seq--into-string sequence)) - (`list (seq--into-list sequence)) - (_ (error "Not a sequence type name: %S" type)))) - -(defun seq-min (sequence) - "Return the smallest element of SEQUENCE. -SEQUENCE must be a sequence of numbers or markers." - (apply #'min (seq-into sequence 'list))) - -(defun seq-max (sequence) - "Return the largest element of SEQUENCE. -SEQUENCE must be a sequence of numbers or markers." - (apply #'max (seq-into sequence 'list))) - -(defun seq-random-elt (sequence) - "Return a random element from SEQUENCE. -Signal an error if SEQUENCE is empty." - (if (seq-empty-p sequence) - (error "Sequence cannot be empty") - (seq-elt sequence (random (seq-length sequence))))) - -(defun seq--drop-list (list n) - "Return a list from LIST without its first N elements. -This is an optimization for lists in `seq-drop'." - (nthcdr n list)) - -(defun seq--take-list (list n) - "Return a list from LIST made of its first N elements. -This is an optimization for lists in `seq-take'." - (let ((result '())) - (while (and list (> n 0)) - (setq n (1- n)) - (push (pop list) result)) - (nreverse result))) - -(defun seq--drop-while-list (predicate list) - "Return a list from the first element for which (PREDICATE element) is nil in LIST. -This is an optimization for lists in `seq-drop-while'." - (while (and list (funcall predicate (car list))) - (setq list (cdr list))) - list) - -(defun seq--take-while-list (predicate list) - "Return the successive elements for which (PREDICATE element) is non-nil in LIST. -This is an optimization for lists in `seq-take-while'." - (let ((result '())) - (while (and list (funcall predicate (car list))) - (push (pop list) result)) - (nreverse result))) - -(defun seq--count-successive (predicate sequence) - "Return the number of successive elements for which (PREDICATE element) is non-nil in SEQUENCE." - (let ((n 0) - (len (seq-length sequence))) - (while (and (< n len) - (funcall predicate (seq-elt sequence n))) - (setq n (+ 1 n))) - n)) - -;; Helper function for the Backward-compatible version of `seq-let' -;; for Emacs<25.1. -(defun seq--make-bindings (args sequence &optional bindings) - "Return a list of bindings of the variables in ARGS to the elements of a sequence. -if BINDINGS is non-nil, append new bindings to it, and return -BINDINGS." - (let ((index 0) - (rest-marker nil)) - (seq-doseq (name args) - (unless rest-marker - (pcase name - ((pred seqp) - (setq bindings (seq--make-bindings (seq--elt-safe args index) - `(seq--elt-safe ,sequence ,index) - bindings))) - (`&rest - (progn (push `(,(seq--elt-safe args (1+ index)) - (seq-drop ,sequence ,index)) - bindings) - (setq rest-marker t))) - (_ - (push `(,name (seq--elt-safe ,sequence ,index)) bindings)))) - (setq index (1+ index))) - bindings)) - -(defun seq--elt-safe (sequence n) - "Return element of SEQUENCE at the index N. -If no element is found, return nil." - (when (or (listp sequence) - (and (sequencep sequence) - (> (seq-length sequence) n))) - (seq-elt sequence n))) - -(defun seq--activate-font-lock-keywords () - "Activate font-lock keywords for some symbols defined in seq." - (font-lock-add-keywords 'emacs-lisp-mode - '("\\<seq-doseq\\>" "\\<seq-let\\>"))) - -(defalias 'seq-copy #'copy-sequence) -(defalias 'seq-elt #'elt) -(defalias 'seq-length #'length) -(defalias 'seq-do #'mapc) -(defalias 'seq-each #'seq-do) -(defalias 'seq-map #'mapcar) -(defalias 'seqp #'sequencep) - -(defun seq--into-list (sequence) - "Concatenate the elements of SEQUENCE into a list." - (if (listp sequence) - sequence - (append sequence nil))) - -(defun seq--into-vector (sequence) - "Concatenate the elements of SEQUENCE into a vector." - (if (vectorp sequence) - sequence - (vconcat sequence))) - -(defun seq--into-string (sequence) - "Concatenate the elements of SEQUENCE into a string." - (if (stringp sequence) - sequence - (concat sequence))) - -(unless (fboundp 'elisp--font-lock-flush-elisp-buffers) - ;; In Emacs≥25, (via elisp--font-lock-flush-elisp-buffers and a few others) - ;; we automatically highlight macros. - (add-hook 'emacs-lisp-mode-hook #'seq--activate-font-lock-keywords)) - -(provide 'seq-24) -;;; seq-24.el ends here diff --git a/project1/.emacs.d/packages/seq-2.20/seq-24.elc b/project1/.emacs.d/packages/seq-2.20/seq-24.elc deleted file mode 100644 index 9c45a63c0faaa66a296a10abea076e476a5de55b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18037 zcmdU1`Ewh`ndJ#daBbCAj!ngTq(xd0nH5-=0|UbLCguS-+||;FNZIj<bZH0-NR$8! zi~&S5KkVPW?|t1p2M&>vmAKZ4NMNR?r~5nKcQik1K0El;($Z4-v(G+L2XTMc?L}?* z(jBN~KWruHO*Bfn@j$u$j=xiLc3ioA-5p=4u-8-ZaNO;8{~C@lCfO;=&C{!HqB@vL zO_C^4?VCZ^@3vGsZYASUcW{|J!QD|ZR$;pxwN?5mr?KNUX69(em}3x+RVyBhLkymb zJC$8r8C3R84vvmg>na?Dtufa5L|z{b+A4`vD;%hcNcG~d@Dj71L`C7K*NsMMe1(Co zr{4=Y{HXu9fFJu`xm@1-!r67yvp62A7z<XRN}}&4(V!LWlutnKUWj$a>Qy`Lb(8U9 zbuj^X^nSzP5Zh|=Ht&JfDbY!oH&JUGkI1R!o3J+t$C29q>hN174E=iVxw?oa7>1{# zuyv)PUeu2UV-<JQN%PN7$gA;WG{ECqoq^io1Gv5|bL{NwZ2zXb)s8x0uNx-nG1gpZ z$M~rpZ$XwuvD#6aFTLHG+Boy7Rs3@vnh&o1;PHdMQYxLfj<fg0nH#vvhikZ2!@r<Z zI>fK~ndekX_Ya>QuJT6d9=<!J`%e#>_~6Q=5<YpQQt1IN`K5b@Pw~4}dhmtZeSj|k z{?$t#l|I4<w_5rLKb_J);HSI4-{du~bT+^%4oVN?f?KU`sF(flbyP`i`WJCeZS<nS z<@jntZD5P|*&Vc_A2w7k8vjmpJ3{@T8gzT)T}6*oRdszu#rT}koD4Zw4M*{%BZH#e z7{ABgtAAHp&bAuH!*k_U)z;=Gpq%gc+vnTc<*kdGaa3u=?I<H7cEx>ro1hx$DzwFK zAOC8&C~F@=NHUf{IEEE2c`&YYCW96gSUD<cM;DXJN+%xmE6FfwsjV%&-J#+&^;;@@ zJP3R8bsOT+zS%xk{x)RRb$qptDWOu4dJ~Si;YAO+3z^w_{^bc}iZ_f%B}S%RG>;FO zyfIKwULql4@)X57>_MNqgH~^XO>>S{za2%C`+hij4fW{6y<U6`p})9+s@OM|VRkS) zrWHt~noslD{M(H*%j+P`dPVXEk?UEZCfD*J9r$j>3ktBiyhcHV1g@QJ?62<c8x|DA zN2Erig<Pq~y$g_!7V=y*4BH*28hjYObJcUX?#^<3Y*^|vYU+7Jm8T7wTwtYQhVtYS z+Yv*!x?`Gs8usIq%RA*$P4Nk28*U-9WSoNBNQ6r_!$`qqSn`7<M;%NfPYj|<_?I^k zL|`0Ug5U8-{WTiJPtxHWH<D#WZNp7FlRBQ|UwZ_@y7{sOdEKC$0jsKi0gJr*OUvZc z^5^{Wvn5=2R#wh1hBl|_u8_Ch>gwuut5&J1qEZ#kSfRa@uSVI)R!y^WRk!S{)jhD2 z+ER7yM%tf%uF$!tKOEn1H=5twr2Gy99>Yvp0&8NP4M@#uj+)L2NlFXuo|CMl(!=j8 zRYf5<Nk&smNElGw(*!<OyOydAx2mb?)ZH9a?dm(DxG%z{#nXB<STx#W__?h=J#QW! z9qgSpt>kV~rf9ukzN{?0zcABVX0NdG&6muIb`d%G6mgtG!DSL}4JJm5DEyNUPJ~e= z$;c-nFLzsT@MFkjs}&^)v?`NL7tYpDF$gRbMMcxWmO4=MTWJS?_IIbB$jpzWUp7fb zKauF$=vUj_HS~jJNzJC11sFTRWl}SBfbT~_L0)%}B_MEsVylJ_l@xKg6dVu#1Rvlx zz>q;zXM@rMND}~+`~<3SyhrOf2`jj;=m+u18>$`kz8B5xheLQ}C~k&Q+*)0G$K{7K ztM`_SId%AZL%jhKYK3EiOx4SC<ze{XY(Sl9K0DpsI9HBm6y0r94T;@q>X}GX_;h+0 zk{JN_20m0heQ|tndi2%t0x&CXey99m(Cfljy&`Y1_{UFj&tV^l8ehjM99>R`gOgA5 z9K_qoq8`S~JW)j0^nwBf#V-;t)5)13#yO=+TWkri7J+9!0M=Mj02UsAQ}kB?_wYOA zVCg<^FmZKV7zbWE&ZAX)*5FUu&9`z#W_Ep7W&v{`0{C`{A60>s3%EreI>jx=aLaQ8 z<LrQ9K8Qk0+v7Vc!zk(_lFCz3wmU`0(mi_kz|av<#v|kXjcGM1wOGLaaCe!u0M82= zhDg3ctJ|KmG{{X+c`7Z8p^^+FF|-RuW6HXOZ%4;Rr$>9wDqrtCd(niX84FZYj~2{O zK|5w26*0zB<)XLLF`%f;6AJYJA?Lig5Kxb;K0+akia^WT*7W7kqnS!pG4-Tq&iJZ3 zYL~6YF03IMw=_<)T11yExaEmKgQ`Fh*;h(Tx_4$3u!j^hrZ>|W3lq%x>yc*H=F58B z(MAp!F*9<|p%p69=ah?@29&gdRIRG_F(HwQPwqc2EfaWpk6;_|$Tz(9SU!Ks%l|2` z)N63Ow+fM5hE@hHrmnhwkYUSv=7R5*?yZZ^2JX61TTG9;!K!&L<5*fdp;Tp<15^fG zAq<7dO_jK@%K(HqiA;$pQ(8J0v*B}!1`zo!0#gPMaBKlo-C2o~7y(_*7|v5+>Mv~J zeWSy4W!e@VV*52v%x=GOF^a<1idsg`Jf+iB;igzY%{&di+>Cp|O^+=2x#8Zw=D7Ep zjC+67+;hl1e~NqcY3^Z6HG9VapOMUmuoOE1ABF8dH!P*SpKF-O;WX(W?1p<BUyb5x zVYt~n02)!Wwcz4wE#v*5W_&HA)LQS1@m3`>*5AVS0?!fM4Ul6p=_Tl5hk2(|Zx5SK z_g*|Zg?b;yNKuJl5EtEnYkjP)5Gpb+(7)(jPP&LwAa$}bNnT~Mmb=VvbirVP05d7v zG(5B<%xD0R9e6#6uLqoiagSNjb(oZ8O^h}%&Uo%w;FU{>m>0~N39cG~Td!-evgw&w zC;p&>|80Wlc`yD!B-hKNN+j36gXBKVNp9_~l3VrmDYXJAQ>mroQc<)W(pGN{_PdkN zGGHkPtObWPCxaWiR$!SYmN4W_c8Qk2NPr}$C{$RKj)ARHSSSj!jE|7Ly@8GWe`mDv ztiQ9-s`|ouF<3^1nU9ozIqr)vyf619CWn8Tk^yV9YP&TX!xp{OVA8)}>Zp_P_x&u_ zoxPO=+Ih~y#ak%w5mm&=R1%uO_zXJo3*$`wO+15!0!ls$6!=oBq|5Q{luGW(usjqf z@eNh)U};SNLkb9fVH8mV5qiXYUPT;)fB=h811~VH0A&dSD|3o9S4(nWjQSU2(CE6G zpn@S3w8}I`XP9{sozamaiN;;rm+c9{Cb6(JknjcWSdVVq9V1AcGY{(3hQThi)FL1S z8IQ&Yt5U^oq4I@vHE{GK;m^#-b7y&bU|0RO&jfLesqk15oOQIEFfaMg1a}k!rqVp7 z(tN-k27xt3_`%vkd@=OlbTqH6cqnPTio5{9as<~z2Jt2mtVq%$7h8!tSzajEZLst} z1lXvn6V7DmkRuqqYKXFikTO9r!NxB;<)-$j#gu<If?pqng9K{W*SY%?eqThmh^&1C zZj?2*c2pLa_a{iS!f%J^JE+(309Q<)ZiFnIkQ_}HJu7m21u_=mq79A*{bu6q6jv^e z5QVB!SW@Si^?cP;iY<Q{&djDig4DaIJ+)teWOX;qb0Vpdi|>k&S`KMx=mZaj8VWHG z5-Q*azY1(Zbv6Px(d0jEo}4~K&YjRqJ54|zQ00|8{#b5wdsF($8FLUw&oN73Q@l-t z#BV`CrF$lgktZ=ToSB+S6fi|%n`2^J6|9SKB$)+&%u6!Kj!@&sNZl+FI*@9c5&2n* zXXW3Kn9_c8(;Br{L>4xz@gTCj3`cDg#6%6^Q9BxaSWY;pfV+2K2<nU#p@LZ2w<6QG z@T7()m5yt^vPeQoXA&j7=;jhqG&dF<Enp_$F<6MXO<iDGSF}Bot^icbSXMTPsH4;7 ze>>YI&b6X<UcB!X8Q!SZjE&1G2;`zp<-xr0%Pnfg^aEAvr&P3IoOGp@n+rFllZND1 zmN-Pp*Z%(#+*lNOXoT?gsF|*Zc+Vs}bj<8$Fh?Q}2I05G%+EE<k(fD{f;sbIW@b@> z&nb&_dOjwvff)XX3jmu;W;5TdbDO$Cj&Fth=5$!?aK^i0RKxVS!SxhQtr=vp>(?z# z4bnt*C`|+OWs7i!PV}`W=<z_#9NB4|*F@3N8t;TnH`2hNU2)z7!JOx8dG-X{|Fl)l z>iml=`ee}kUH}Ty^`fXL-{+!RNp#(UZcU;~(Cu`hYX;rorT+R#={}8v|5U)?`aaWO z^I@)M5+yG!*s*ZY!d(N8tT{;&V2x_SB*3O>4vXsHQf)jr-Ftp2hT!;chsEsX@gX5` z-0zM7KG8}urtb|=wGhWlj++%3{=>SNmLEK=rvn4cG`1!#^GKwD6pF2K0@6+MQ$L?^ z71PW*X;Wi0mSg2J5>|LgyaIjt$EB5(m9MB6E4n1<x;5%t3Y6B?Hdi>Xx<s?>GmmLL z*HGToDi^qGXJ=&7ssL6Q(_Dg%LxXkrI6HJrhJMZIzFS&70fRj#FgU%2OaA|G4f%Y- z+Me8$rJT90SP^IS#J+!h{aeoTze||M{6eo0AGt>xu`EKgjC*ctY4voSAqKJ~j!31v zMv%7zw!j;dD>Nx_INs%p$ytAhuWT8>aL38ui|)SCT|tDsNR)5vhv-{j-inb2yiFH% z*-zCYG;TdgHVXA_6^%xafDK;Pt`AUt<HaDE42J-)xrm0(qiklww?@sib(or?4y4`| z4PZam&;?L9)s(?rjMH!b)Rfdb-y~uvb%zre8r)G9ffI8>Ty+BuH=vt^umQbQ+kM6) z8tb4CONstu5(}H=Hjcq-)539;urks#M$2CP4^Y<A1_oad`D~EXyyeNQf3gDU=Wf;H z)+hE>KuMrT(bviI)=y*wGrfLYO-yT)x|NP7j}=QP?3xH_3sz;@G6*@#JWUx;DK;a4 zEhk`0+6z*3T^pX(ck_G^`~Ti0%~O~X^Dqp~Lgs=c#^C_*3qvqEa|LPaWZ9Glm5_m1 z^MUFj$&v#eATbLd)c{3bCjG!9H071fHf*DZ6l<;FP5GTR(qP6+iqQz=)ip+QtGnu1 zp=>KHkm-`K5j;ACM(FlQWc9EM3NJ{5NFNzvNNqY?q#4SHMi83eELFsZbX6DE%bZeV zd>jv9$W3MUimIm@e~h^{;X=`yYlg7#l6CF$)v~O4jgxrU0HiFmmXU^QYx@vcD8lmZ zL0JDG3G1!n2aT{Vy&x-Mz-WPattNV4EYv;Xsu@p+ci~kwhN@-=%4Sx?N{}mskm-a7 zT63_4hSXMjgtC!sS9Gck-}K}_VQs8hq=^lV$c$9VE=Tc%oRfFLBULg3gki=-9&1+i z!W`kj@|!dOlQ>ISdvm>LO2L!rrn0hipnQ*QDyu%x9Y62XOoq(S*dp#iN7*-0^xL#X z#}yyyqc8-9!S`)gKLfV$E4>IxbX8a9x$=&MY;e*fO}=iIwxzJY=UfE_T{@0ew+&H2 zTDw_5d?~I_TfjqP4la<XBRA5}*8N~%szj)F2~NqAQG!-wHl<G46OgY^H<=rq((S?t zqaD~<8ahl<t(^)tZF;5{ZhFkM!A($^=wI+-wpT@aVT%~^iJOB1-Mb>TZNxw~fni~_ zEyb0NQ?EHD<_zZa3(*v%8ZyNs;SamMS;5ljo}YkC?QW+Njo6m{6EVsE+cU{UN1;s& z?5aIB7iHEP*lA9iyy+}DiC`KCUkZ%On>sOZtYeD9)4693HogKG)$;4;CPC`+zwir= zD>C_2m`6R@gmZJeiY#K*M~ijUsZJ~R^RqWIoiJ1>CNJMbrA(53SrBmA^Z>1bK0!fO z_MluoFtm6levs0T`*3M_^$>mz*Ma=!YF?Nmaf{d>&H3ytRym7<9k-@?ZQj;H5BuV? zd7D)%_Q(<OyUoJ`ERGSR_e&aZesT#lv0zwkDM6$MAGE2_D!=(DKzrI`u!%a0IB!gW zvk&??YaL+X-E%bjr(2?X)sR2uoXtaGO0uEq=*#1;kmKefcD~$0(+Qv~`GcsenDQ~P zjqcjj9SxE=!G4LK9Y#9n5kp&GuDXELh@m5pn6j<~RDs-(?~>;%b<MG-1$ZI7e=@D; zNm`Zw&vTh?v)eW_1JMu>0$|FMH2eU_HK5%BjGeQ=Ndy$gGX+#OTc%L224*hw0P3z_ zz(`4^^jVCEJBUW`ux?DWvw`4fppe>#UnhhI+u3I^r);bd%>p=X;wp29$And~JUQEN zx6q2n(k@I8{jB~ADQz_xItcFTkV@z3P*x&msGYduO4x*AAvB?I!<QQ<Q4(J2C-M=v zsDlZhs0>n9s@My122A*>uN(fPpkH5=uO{HVC7!Z5HOC8l+klGzAtxkBpIu(SipHPj z0VhsW*)tzDsx9(JhXVloBgi(-n^+KUpPQv}A1*nkejt;OlOd-Edtohx#?Bl}DhX@2 z?HrEttG-Q3R|^FnoB+H0du}NF;T<-F!3#I!*35<)xu5`Lz&1McEq8PR&2WV$-Y$9I zh|M{Y071BFNuL&(r}AC1EYYv1@Q788GfYi`C2}}HSY(CSV-O@}a_wPSt1Gn48QDBB z=@Fj4BN#(jQUJP6(eQO<bEJrlUh@3)vzC>VzXqoZ6`mcPoZfoC26hVn2YvFVF{LMu z;v^@qUh(w|5*`~$$;5Nc#^jE&<jlm1&bWzU(@5*`y5rY9E1u5c<@a#{lNz_^e9&E& z&tT`)<xBIv7!SLAotv(D|AN>TiYQq`d`3DDEtJ@p$^9XfSjhb?3;dsoma8l?+08dx z+ZY*4cQ>c0*kZ-#_Kp+X;7sN)!o4eHvJ)ScK3NL`=bBXq&F0)85lbyveyGIH(1!Ab zC<kgbmPE_A<1XR*v>eo&x=mzdeHP*bf8@!LcO`^yUv_n8LS&EV(;k)(OtFv>zedtq zQ{vZ5o)~EXEWK4)a<WqMeJd+&+Cf7CWx1y8M2@wC?|aDR&K*i<1}UBef@v&71uGAi zm%kwqK3<~llCwr46dy0;T9DUB7ZHj1T}0_AEu4L`=Atnt;I)SzX)8z@dyrEM*rFq( znXld{!!hh19UmSY<FqMM$8<3ufoHm0qHC4D1EE_NIFTndMsjknY#%iSa_Tr}dhXQ@ zo1;@2`Z9-)Bb=aRp{fr1lGa6~jVISjED%fDzkX@jzjXhwZvR4#506Uw7e4qxZO;=_ zhO$Y%85|wr7@6w;lllml!?HwG3b9r1F9O@}Jz(8eH%iOL2Tk^#!YZN+B7Nz23e#a^ zUGUyD9}Li;dhZkv2B8l=-fte3?g7#BA=X*(fmIb2`_iZRNN(J^^rG>Ax7jfsVvW~| zkPRkGs*jF~ZWO<DuX^#MtRM{zs3c)0Qu^4gb#{u4?5Ve^H5w*=j5a2N4lU%!hvmp& zQ~Y%0ADKoZ4d2$QjP*{Tk9lWKvn3iGlL*V#jemlnYri6WfxwsPqVzX9s0~9IY)TT$ znhHhg<V;NvSS1UPuRsdz4Ra73{PBcJFK)e7$S7Q+`$QWT>7_9>o3s^3<59h*IZ}?l zwIFlikhqz%lFnHOaIqU6CenP(2IH?jWDi9ABNH^d!%Ck=+P5~&&OR6R@ec=_o&6pM z>&+FMU*>n5Hn;74POuw@L0K5j<L!_#m~#Bn2j22mbfaqiiu`E-uGv1N#lLVxg5Saw z;6xlPz*Axb3wZ#EO8FyAV~fC2pp8)5F8v%s+cC=*Ej^NdhJggpu{A0zh-i%}XmJ2N z7=Pl(X0Ea)5}ala^U|%8PPQ7C4;kn1nuD!dEOuj-1O||_f~wNpTU*OiXR3Ly`vxCC zCf{Y1I%b?wuSM%L0p<+6&rTdJ(|IwQu7?h7VJ|0A^_pvZ)H^O!hp~5Ds)>2+QekCT zZ1)UNX>{E{;0G7WoRGns^+5L`%oBL-O_%Gl{J525k#xKHj+C2+5J0M3PK`UgNpb~4 r#mg5H=5`TPKwGck_%))Mf~M+=6wJ!o3<CbR#Ty*L5D9jD5!L?#!tE`; diff --git a/project1/.emacs.d/packages/seq-2.20/seq-25.el b/project1/.emacs.d/packages/seq-2.20/seq-25.el deleted file mode 100644 index d26bde6..0000000 --- a/project1/.emacs.d/packages/seq-2.20/seq-25.el +++ /dev/null @@ -1,530 +0,0 @@ -;;; seq-25.el --- seq.el implementation for Emacs 25.x -*- lexical-binding: t -*- - -;; Copyright (C) 2014-2016 Free Software Foundation, Inc. - -;; Author: Nicolas Petton <nicolas@petton.fr> -;; Keywords: sequences - -;; Maintainer: emacs-devel@gnu.org - -;; This file is part of GNU Emacs. - -;; GNU Emacs 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. - -;; GNU Emacs 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; Sequence-manipulation functions that complement basic functions -;; provided by subr.el. -;; -;; All functions are prefixed with "seq-". -;; -;; All provided functions work on lists, strings and vectors. -;; -;; Functions taking a predicate or iterating over a sequence using a -;; function as argument take the function as their first argument and -;; the sequence as their second argument. All other functions take -;; the sequence as their first argument. -;; -;; seq.el can be extended to support new type of sequences. Here are -;; the generic functions that must be implemented by new seq types: -;; - `seq-elt' -;; - `seq-length' -;; - `seq-do' -;; - `seqp' -;; - `seq-subseq' -;; - `seq-into-sequence' -;; - `seq-copy' -;; - `seq-into' - -;;; Code: - -;; When loading seq.el in Emacs 24.x, this file gets byte-compiled, even if -;; never used. This takes care of byte-compilation warnings is emitted, by -;; emitting nil in the macro expansion in Emacs 24.x. -(defmacro seq--when-emacs-25-p (&rest body) - "Execute BODY if in Emacs>=25.x." - (declare (indent (lambda (&rest x) 0)) (debug t)) - (when (version<= "25" emacs-version) - `(progn ,@body))) - -(seq--when-emacs-25-p - -(require 'cl-generic) -(require 'cl-lib) ;; for cl-subseq - -(defmacro seq-doseq (spec &rest body) - "Loop over a sequence. -Evaluate BODY with VAR bound to each element of SEQUENCE, in turn. - -Similar to `dolist' but can be applied to lists, strings, and vectors. - -\(fn (VAR SEQUENCE) BODY...)" - (declare (indent 1) (debug ((symbolp form &optional form) body))) - `(seq-do (lambda (,(car spec)) - ,@body) - ,(cadr spec))) - -(pcase-defmacro seq (&rest patterns) - "Build a `pcase' pattern that matches elements of SEQUENCE. - -The `pcase' pattern will match each element of PATTERNS against the -corresponding element of SEQUENCE. - -Extra elements of the sequence are ignored if fewer PATTERNS are -given, and the match does not fail." - `(and (pred seqp) - ,@(seq--make-pcase-bindings patterns))) - -(defmacro seq-let (args sequence &rest body) - "Bind the variables in ARGS to the elements of SEQUENCE, then evaluate BODY. - -ARGS can also include the `&rest' marker followed by a variable -name to be bound to the rest of SEQUENCE." - (declare (indent 2) (debug (sexp form body))) - `(pcase-let ((,(seq--make-pcase-patterns args) ,sequence)) - ,@body)) - - -;;; Basic seq functions that have to be implemented by new sequence types -(cl-defgeneric seq-elt (sequence n) - "Return Nth element of SEQUENCE." - (elt sequence n)) - -;; Default gv setters for `seq-elt'. -;; It can be a good idea for new sequence implementations to provide a -;; "gv-setter" for `seq-elt'. -(cl-defmethod (setf seq-elt) (store (sequence array) n) - (aset sequence n store)) - -(cl-defmethod (setf seq-elt) (store (sequence cons) n) - (setcar (nthcdr n sequence) store)) - -(cl-defgeneric seq-length (sequence) - "Return the number of elements of SEQUENCE." - (length sequence)) - -(cl-defgeneric seq-do (function sequence) - "Apply FUNCTION to each element of SEQUENCE, presumably for side effects. -Return SEQUENCE." - (mapc function sequence)) - -(defalias 'seq-each #'seq-do) - -(cl-defgeneric seqp (sequence) - "Return non-nil if SEQUENCE is a sequence, nil otherwise." - (sequencep sequence)) - -(cl-defgeneric seq-copy (sequence) - "Return a shallow copy of SEQUENCE." - (copy-sequence sequence)) - -(cl-defgeneric seq-subseq (sequence start &optional end) - "Return the sequence of elements of SEQUENCE from START to END. -END is exclusive. - -If END is omitted, it defaults to the length of the sequence. If -START or END is negative, it counts from the end. Signal an -error if START or END are outside of the sequence (i.e too large -if positive or too small if negative)." - (cl-subseq sequence start end)) - - -(cl-defgeneric seq-map (function sequence) - "Return the result of applying FUNCTION to each element of SEQUENCE." - (let (result) - (seq-do (lambda (elt) - (push (funcall function elt) result)) - sequence) - (nreverse result))) - -(defun seq-map-indexed (function sequence) - "Return the result of applying FUNCTION to each element of SEQUENCE. -Unlike `seq-map', FUNCTION takes two arguments: the element of -the sequence, and its index within the sequence." - (let ((index 0)) - (seq-map (lambda (elt) - (prog1 - (funcall function elt index) - (setq index (1+ index)))) - sequence))) - -;; faster implementation for sequences (sequencep) -(cl-defmethod seq-map (function (sequence sequence)) - (mapcar function sequence)) - -(cl-defgeneric seq-mapn (function sequence &rest sequences) - "Like `seq-map' but FUNCTION is mapped over all SEQUENCES. -The arity of FUNCTION must match the number of SEQUENCES, and the -mapping stops on the shortest sequence. -Return a list of the results. - -\(fn FUNCTION SEQUENCES...)" - (let ((result nil) - (sequences (seq-map (lambda (s) - (seq-into s 'list)) - (cons sequence sequences)))) - (while (not (memq nil sequences)) - (push (apply function (seq-map #'car sequences)) result) - (setq sequences (seq-map #'cdr sequences))) - (nreverse result))) - -(cl-defgeneric seq-drop (sequence n) - "Remove the first N elements of SEQUENCE and return the result. -The result is a sequence of the same type as SEQUENCE. - -If N is a negative integer or zero, SEQUENCE is returned." - (if (<= n 0) - sequence - (let ((length (seq-length sequence))) - (seq-subseq sequence (min n length) length)))) - -(cl-defgeneric seq-take (sequence n) - "Take the first N elements of SEQUENCE and return the result. -The result is a sequence of the same type as SEQUENCE. - -If N is a negative integer or zero, an empty sequence is -returned." - (seq-subseq sequence 0 (min (max n 0) (seq-length sequence)))) - -(cl-defgeneric seq-drop-while (pred sequence) - "Remove the successive elements of SEQUENCE for which PRED returns non-nil. -PRED is a function of one argument. The result is a sequence of -the same type as SEQUENCE." - (seq-drop sequence (seq--count-successive pred sequence))) - -(cl-defgeneric seq-take-while (pred sequence) - "Take the successive elements of SEQUENCE for which PRED returns non-nil. -PRED is a function of one argument. The result is a sequence of -the same type as SEQUENCE." - (seq-take sequence (seq--count-successive pred sequence))) - -(cl-defgeneric seq-empty-p (sequence) - "Return non-nil if the SEQUENCE is empty, nil otherwise." - (= 0 (seq-length sequence))) - -(cl-defgeneric seq-sort (pred sequence) - "Sort SEQUENCE using PRED as comparison function. -The result is a sequence of the same type as SEQUENCE." - (let ((result (seq-sort pred (append sequence nil)))) - (seq-into result (type-of sequence)))) - -(defun seq-sort-by (function pred sequence) - "Sort SEQUENCE using PRED as a comparison function. -Elements of SEQUENCE are transformed by FUNCTION before being -sorted. FUNCTION must be a function of one argument." - (seq-sort (lambda (a b) - (funcall pred - (funcall function a) - (funcall function b))) - sequence)) - -(cl-defmethod seq-sort (pred (list list)) - (sort (seq-copy list) pred)) - -(cl-defgeneric seq-reverse (sequence) - "Return a sequence with elements of SEQUENCE in reverse order." - (let ((result '())) - (seq-map (lambda (elt) - (push elt result)) - sequence) - (seq-into result (type-of sequence)))) - -;; faster implementation for sequences (sequencep) -(cl-defmethod seq-reverse ((sequence sequence)) - (reverse sequence)) - -(cl-defgeneric seq-concatenate (type &rest sequences) - "Concatenate SEQUENCES into a single sequence of type TYPE. -TYPE must be one of following symbols: vector, string or list. - -\n(fn TYPE SEQUENCE...)" - (apply #'cl-concatenate type (seq-map #'seq-into-sequence sequences))) - -(cl-defgeneric seq-into-sequence (sequence) - "Convert SEQUENCE into a sequence. - -The default implementation is to signal an error if SEQUENCE is not a -sequence, specific functions should be implemented for new types -of sequence." - (unless (sequencep sequence) - (error "Cannot convert %S into a sequence" sequence)) - sequence) - -(cl-defgeneric seq-into (sequence type) - "Concatenate the elements of SEQUENCE into a sequence of type TYPE. -TYPE can be one of the following symbols: vector, string or -list." - (pcase type - (`vector (seq--into-vector sequence)) - (`string (seq--into-string sequence)) - (`list (seq--into-list sequence)) - (_ (error "Not a sequence type name: %S" type)))) - -(cl-defgeneric seq-filter (pred sequence) - "Return a list of all the elements for which (PRED element) is non-nil in SEQUENCE." - (let ((exclude (make-symbol "exclude"))) - (delq exclude (seq-map (lambda (elt) - (if (funcall pred elt) - elt - exclude)) - sequence)))) - -(cl-defgeneric seq-remove (pred sequence) - "Return a list of all the elements for which (PRED element) is nil in SEQUENCE." - (seq-filter (lambda (elt) (not (funcall pred elt))) - sequence)) - -(cl-defgeneric seq-reduce (function sequence initial-value) - "Reduce the function FUNCTION across SEQUENCE, starting with INITIAL-VALUE. - -Return the result of calling FUNCTION with INITIAL-VALUE and the -first element of SEQUENCE, then calling FUNCTION with that result and -the second element of SEQUENCE, then with that result and the third -element of SEQUENCE, etc. - -If SEQUENCE is empty, return INITIAL-VALUE and FUNCTION is not called." - (if (seq-empty-p sequence) - initial-value - (let ((acc initial-value)) - (seq-doseq (elt sequence) - (setq acc (funcall function acc elt))) - acc))) - -(cl-defgeneric seq-every-p (pred sequence) - "Return non-nil if (PRED element) is non-nil for all elements of SEQUENCE." - (catch 'seq--break - (seq-doseq (elt sequence) - (or (funcall pred elt) - (throw 'seq--break nil))) - t)) - -(cl-defgeneric seq-some (pred sequence) - "Return the first value for which if (PRED element) is non-nil for in SEQUENCE." - (catch 'seq--break - (seq-doseq (elt sequence) - (let ((result (funcall pred elt))) - (when result - (throw 'seq--break result)))) - nil)) - -(cl-defgeneric seq-find (pred sequence &optional default) - "Return the first element for which (PRED element) is non-nil in SEQUENCE. -If no element is found, return DEFAULT. - -Note that `seq-find' has an ambiguity if the found element is -identical to DEFAULT, as it cannot be known if an element was -found or not." - (catch 'seq--break - (seq-doseq (elt sequence) - (when (funcall pred elt) - (throw 'seq--break elt))) - default)) - -(cl-defgeneric seq-count (pred sequence) - "Return the number of elements for which (PRED element) is non-nil in SEQUENCE." - (let ((count 0)) - (seq-doseq (elt sequence) - (when (funcall pred elt) - (setq count (+ 1 count)))) - count)) - -(cl-defgeneric seq-contains (sequence elt &optional testfn) - "Return the first element in SEQUENCE that is equal to ELT. -Equality is defined by TESTFN if non-nil or by `equal' if nil." - (seq-some (lambda (e) - (funcall (or testfn #'equal) elt e)) - sequence)) - -(cl-defgeneric seq-set-equal-p (sequence1 sequence2 &optional testfn) - "Return non-nil if SEQUENCE1 and SEQUENCE2 contain the same elements, regardless of order. -Equality is defined by TESTFN if non-nil or by `equal' if nil." - (and (seq-every-p (lambda (item1) (seq-contains sequence2 item1 testfn)) sequence1) - (seq-every-p (lambda (item2) (seq-contains sequence1 item2 testfn)) sequence2))) - -(cl-defgeneric seq-position (sequence elt &optional testfn) - "Return the index of the first element in SEQUENCE that is equal to ELT. -Equality is defined by TESTFN if non-nil or by `equal' if nil." - (let ((index 0)) - (catch 'seq--break - (seq-doseq (e sequence) - (when (funcall (or testfn #'equal) e elt) - (throw 'seq--break index)) - (setq index (1+ index))) - nil))) - -(cl-defgeneric seq-uniq (sequence &optional testfn) - "Return a list of the elements of SEQUENCE with duplicates removed. -TESTFN is used to compare elements, or `equal' if TESTFN is nil." - (let ((result '())) - (seq-doseq (elt sequence) - (unless (seq-contains result elt testfn) - (setq result (cons elt result)))) - (nreverse result))) - -(cl-defgeneric seq-mapcat (function sequence &optional type) - "Concatenate the result of applying FUNCTION to each element of SEQUENCE. -The result is a sequence of type TYPE, or a list if TYPE is nil." - (apply #'seq-concatenate (or type 'list) - (seq-map function sequence))) - -(cl-defgeneric seq-partition (sequence n) - "Return a list of the elements of SEQUENCE grouped into sub-sequences of length N. -The last sequence may contain less than N elements. If N is a -negative integer or 0, nil is returned." - (unless (< n 1) - (let ((result '())) - (while (not (seq-empty-p sequence)) - (push (seq-take sequence n) result) - (setq sequence (seq-drop sequence n))) - (nreverse result)))) - -(cl-defgeneric seq-intersection (sequence1 sequence2 &optional testfn) - "Return a list of the elements that appear in both SEQUENCE1 and SEQUENCE2. -Equality is defined by TESTFN if non-nil or by `equal' if nil." - (seq-reduce (lambda (acc elt) - (if (seq-contains sequence2 elt testfn) - (cons elt acc) - acc)) - (seq-reverse sequence1) - '())) - -(cl-defgeneric seq-difference (sequence1 sequence2 &optional testfn) - "Return a list of the elements that appear in SEQUENCE1 but not in SEQUENCE2. -Equality is defined by TESTFN if non-nil or by `equal' if nil." - (seq-reduce (lambda (acc elt) - (if (not (seq-contains sequence2 elt testfn)) - (cons elt acc) - acc)) - (seq-reverse sequence1) - '())) - -(cl-defgeneric seq-group-by (function sequence) - "Apply FUNCTION to each element of SEQUENCE. -Separate the elements of SEQUENCE into an alist using the results as -keys. Keys are compared using `equal'." - (seq-reduce - (lambda (acc elt) - (let* ((key (funcall function elt)) - (cell (assoc key acc))) - (if cell - (setcdr cell (push elt (cdr cell))) - (push (list key elt) acc)) - acc)) - (seq-reverse sequence) - nil)) - -(cl-defgeneric seq-min (sequence) - "Return the smallest element of SEQUENCE. -SEQUENCE must be a sequence of numbers or markers." - (apply #'min (seq-into sequence 'list))) - -(cl-defgeneric seq-max (sequence) - "Return the largest element of SEQUENCE. -SEQUENCE must be a sequence of numbers or markers." - (apply #'max (seq-into sequence 'list))) - -(defun seq--count-successive (pred sequence) - "Return the number of successive elements for which (PRED element) is non-nil in SEQUENCE." - (let ((n 0) - (len (seq-length sequence))) - (while (and (< n len) - (funcall pred (seq-elt sequence n))) - (setq n (+ 1 n))) - n)) - -;;; Optimized implementations for lists - -(cl-defmethod seq-drop ((list list) n) - "Optimized implementation of `seq-drop' for lists." - (nthcdr n list)) - -(cl-defmethod seq-take ((list list) n) - "Optimized implementation of `seq-take' for lists." - (let ((result '())) - (while (and list (> n 0)) - (setq n (1- n)) - (push (pop list) result)) - (nreverse result))) - -(cl-defmethod seq-drop-while (pred (list list)) - "Optimized implementation of `seq-drop-while' for lists." - (while (and list (funcall pred (car list))) - (setq list (cdr list))) - list) - -(cl-defmethod seq-empty-p ((list list)) - "Optimized implementation of `seq-empty-p' for lists." - (null list)) - - -(defun seq--into-list (sequence) - "Concatenate the elements of SEQUENCE into a list." - (if (listp sequence) - sequence - (append sequence nil))) - -(defun seq--into-vector (sequence) - "Concatenate the elements of SEQUENCE into a vector." - (if (vectorp sequence) - sequence - (vconcat sequence))) - -(defun seq--into-string (sequence) - "Concatenate the elements of SEQUENCE into a string." - (if (stringp sequence) - sequence - (concat sequence))) - -(defun seq--make-pcase-bindings (args) - "Return a list of bindings of the variables in ARGS to the elements of a sequence." - (let ((bindings '()) - (index 0) - (rest-marker nil)) - (seq-doseq (name args) - (unless rest-marker - (pcase name - (`&rest - (progn (push `(app (pcase--flip seq-drop ,index) - ,(seq--elt-safe args (1+ index))) - bindings) - (setq rest-marker t))) - (_ - (push `(app (pcase--flip seq--elt-safe ,index) ,name) bindings)))) - (setq index (1+ index))) - bindings)) - -(defun seq--make-pcase-patterns (args) - "Return a list of `(seq ...)' pcase patterns from the argument list ARGS." - (cons 'seq - (seq-map (lambda (elt) - (if (seqp elt) - (seq--make-pcase-patterns elt) - elt)) - args))) - -;; TODO: make public? -(defun seq--elt-safe (sequence n) - "Return element of SEQUENCE at the index N. -If no element is found, return nil." - (ignore-errors (seq-elt sequence n)))) - -(cl-defgeneric seq-random-elt (sequence) - "Return a random element from SEQUENCE. -Signal an error if SEQUENCE is empty." - (if (seq-empty-p sequence) - (error "Sequence cannot be empty") - (seq-elt sequence (random (seq-length sequence))))) - -(provide 'seq-25) -;;; seq-25.el ends here diff --git a/project1/.emacs.d/packages/seq-2.20/seq-25.elc b/project1/.emacs.d/packages/seq-2.20/seq-25.elc deleted file mode 100644 index 86dd52b991519e989102a707d8b2c912f7bfad72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1023 zcmbtTQE$^Q5H4?9{s2#iTRK=G%~9hvY*QJ6l|D>DASgVbWe;w0X)Psou$^t?*K<zW zNobF=<mAqG_uc2a^K|}Y_Hr;71k>phX1Zx*jb*P$1@lG}7VgkksTJ@^GD)&D;l24@ zx;2Qp2HiT@$iKpok4=K!_;W2SR0IW`MGNIdiAEMs>cToB)ykfd)mR6jEU|>gROv;+ zFP>nOnlO}hP-x`@Id`sN=X9djr^W308j7_rqHx6Xv`;To306ZP6f6;HE&fZgyN?AF zrj}^Ht;vy(w|S`!&sv_qb5{@q!;jer<_}nO4&mzC=ieZ!$2xtu<XQ4Se4|RiTZ2?c z?-IWbq7o}nOJU)};vdHD*Qgl!HZq>E7EU6PjfMn<Hz_}dFdvUn+Wa67b3V#)H6U&L z;);~B5N@`i`w7_n-(Nz=vk+RNSLzlf5DkwBagvVX+c*xQ<;Ec^bcsDY_kgq~w6kH( z(-8^#!*?W~?GDq?0ck1Z<CG|+{P2iKj9(F<l;YEgSNR*SW{32l(Ddx^=qL}5x1gMW zdFs79bANq9gP<FRwF6Q+R0TrY^~%%I)Y7(0suGoBRi_F+&k)t3S(XB#ZIvHl7{!1k zF1r=0v}u@au>hLPno;FfsL;@yhd<DDMuC7W1Hc*^!iCD{1{U-0zvf?O^CVXbxl*DA z8b35f8{gx-73c+F)4EL(dh*mnlBt7R$8fQ~4-L708Z_s<$Ih8<yi4t4Yg8+Gt<<kO ONnP<rJiCR9IQR!i*exyq diff --git a/project1/.emacs.d/packages/seq-2.20/seq-autoloads.el b/project1/.emacs.d/packages/seq-2.20/seq-autoloads.el deleted file mode 100644 index c575064..0000000 --- a/project1/.emacs.d/packages/seq-2.20/seq-autoloads.el +++ /dev/null @@ -1,16 +0,0 @@ -;;; seq-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil nil ("seq-24.el" "seq-25.el" "seq-pkg.el" "seq.el") -;;;;;; (23815 54532 562546 0)) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; seq-autoloads.el ends here diff --git a/project1/.emacs.d/packages/seq-2.20/seq-pkg.el b/project1/.emacs.d/packages/seq-2.20/seq-pkg.el deleted file mode 100644 index 0ce3587..0000000 --- a/project1/.emacs.d/packages/seq-2.20/seq-pkg.el +++ /dev/null @@ -1,2 +0,0 @@ -;; Generated package description from seq.el -(define-package "seq" "2.20" "Sequence manipulation functions" 'nil :url "http://elpa.gnu.org/packages/seq.html" :keywords '("sequences")) diff --git a/project1/.emacs.d/packages/seq-2.20/seq-pkg.elc b/project1/.emacs.d/packages/seq-2.20/seq-pkg.elc deleted file mode 100644 index 92e4b4fffc873aab25330692e55d869c60a76838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmbu6!EVAZ42C)P1$MQ1*^nR|9g_w<O^5^1ZtMlT#BC!|r^M+Hd-{bAO`3MZmni;! zeZS*W+qcc#WHQOBs)CL0dh5uH7t65iPz!ug5bGJrrCO@zg(^q+WMd2H9QZ!k&VFG` z9#PpSzPDDOPAC|J1k9PSvl@)o5`*PNW=Rba0gWL8zfp^oDp&s)#wP~*2-<VRWFBHY ze@PvlzwS4?9q1MV>X_!7jq%6^#DhkL4+7`$PssH>0))X?3J}|5ET4XI(;jZB%K*1l zmSqoyYRfe5Q6I1&$c2tM<fSSf)3K-HK&%NmWZMsJTt3tT>+u(IVC!H#1P6H=W4|s6 may_bs2jxRkT%l4VsA^;9a#$beeDc8v+&^5hM!e+HY4#1*=A-5S diff --git a/project1/.emacs.d/packages/seq-2.20/seq.el b/project1/.emacs.d/packages/seq-2.20/seq.el deleted file mode 100644 index 83d4392..0000000 --- a/project1/.emacs.d/packages/seq-2.20/seq.el +++ /dev/null @@ -1,48 +0,0 @@ -;;; seq.el --- Sequence manipulation functions -*- lexical-binding: t -*- - -;; Copyright (C) 2014-2016 Free Software Foundation, Inc. - -;; Author: Nicolas Petton <nicolas@petton.fr> -;; Keywords: sequences -;; Version: 2.20 -;; Package: seq - -;; Maintainer: emacs-devel@gnu.org - -;; This file is part of GNU Emacs. - -;; GNU Emacs 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. - -;; GNU Emacs 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; Sequence-manipulation functions that complement basic functions -;; provided by subr.el. -;; -;; All functions are prefixed with "seq-". -;; -;; All provided functions work on lists, strings and vectors. -;; -;; Functions taking a predicate or iterating over a sequence using a -;; function as argument take the function as their first argument and -;; the sequence as their second argument. All other functions take -;; the sequence as their first argument. - -;;; Code: - -(if (version< emacs-version "25") - (require 'seq-24) - (require 'seq-25)) - -(provide 'seq) -;;; seq.el ends here diff --git a/project1/.emacs.d/packages/seq-2.20/seq.elc b/project1/.emacs.d/packages/seq-2.20/seq.elc deleted file mode 100644 index 34f2518d9332a2aaa8028c467547f5fc9d54df1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmbtRJx{|h5Y31(FtD&bGJ(`YiIY&Ou%N0#B{tXygKN9QQewBZTU35MM?a7dV^6a0 z?!D8!v#*&wPp_jWikqgv)DA1%E4fd!!EE5dW2>Ck)__%6mDNSY_VlL?9eCfvu7V!) z7Y|h9vv^OwcG_b}t+4URL+%V8w1Bk22dB-49}(+(0GCop{7My*j7|Rakd}HF8z8I+ zoQgMLnLZF=(x;c{d=AlZ$3>tyM|*j0B)o;-1`CDW@;@TS_joAodaWEnM}@3B=+Zx& zWj_O)YjGUkE_Oks!b*jtE%V}nF4iV3%gf7%;*w5v)3PEbh+Una`T&*rJ@I2o@^OMU n^|QzHw8x`=M8fI>POUfEDR{L`S#@wVR?coUX%qU6@-F@c?L(ZY diff --git a/project1/.emacs.d/packages/seq-2.20/tests/seq-tests.el b/project1/.emacs.d/packages/seq-2.20/tests/seq-tests.el deleted file mode 100644 index d53fa36..0000000 --- a/project1/.emacs.d/packages/seq-2.20/tests/seq-tests.el +++ /dev/null @@ -1,382 +0,0 @@ -;;; seq-tests.el --- Tests for sequences.el - -;; Copyright (C) 2014-2015 Free Software Foundation, Inc. - -;; Author: Nicolas Petton <nicolas@petton.fr> -;; Maintainer: emacs-devel@gnu.org - -;; This file is part of GNU Emacs. - -;; GNU Emacs 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. - -;; GNU Emacs 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; Tests for seq.el - -;;; Code: - -(require 'ert) -(require 'seq) - -(defmacro with-test-sequences (spec &rest body) - "Successively bind VAR to a list, vector, and string built from SEQ. -Evaluate BODY for each created sequence. - -\(fn (var seq) body)" - (declare (indent 1) (debug ((symbolp form) body))) - (let ((initial-seq (make-symbol "initial-seq"))) - `(let ((,initial-seq ,(cadr spec))) - ,@(mapcar (lambda (s) - `(let ((,(car spec) (apply (function ,s) ,initial-seq))) - ,@body)) - '(list vector string))))) - -(defun same-contents-p (seq1 seq2) - "Return t if SEQ1 and SEQ2 have the same contents, nil otherwise." - (equal (append seq1 '()) (append seq2 '()))) - -(defun test-sequences-evenp (integer) - "Return t if INTEGER is even." - (eq (logand integer 1) 0)) - -(defun test-sequences-oddp (integer) - "Return t if INTEGER is odd." - (not (test-sequences-evenp integer))) - -(ert-deftest test-seq-drop () - (with-test-sequences (seq '(1 2 3 4)) - (should (equal (seq-drop seq 0) seq)) - (should (equal (seq-drop seq 1) (seq-subseq seq 1))) - (should (equal (seq-drop seq 2) (seq-subseq seq 2))) - (should (seq-empty-p (seq-drop seq 4))) - (should (seq-empty-p (seq-drop seq 10)))) - (with-test-sequences (seq '()) - (should (seq-empty-p (seq-drop seq 0))) - (should (seq-empty-p (seq-drop seq 1))))) - -(ert-deftest test-seq-take () - (with-test-sequences (seq '(2 3 4 5)) - (should (seq-empty-p (seq-take seq 0))) - (should (= (seq-length (seq-take seq 1)) 1)) - (should (= (seq-elt (seq-take seq 1) 0) 2)) - (should (same-contents-p (seq-take seq 3) '(2 3 4))) - (should (equal (seq-take seq 10) seq)))) - -(ert-deftest test-seq-drop-while () - (with-test-sequences (seq '(1 3 2 4)) - (should (equal (seq-drop-while #'test-sequences-oddp seq) - (seq-drop seq 2))) - (should (equal (seq-drop-while #'test-sequences-evenp seq) - seq)) - (should (seq-empty-p (seq-drop-while #'numberp seq)))) - (with-test-sequences (seq '()) - (should (seq-empty-p (seq-drop-while #'test-sequences-oddp seq))))) - -(ert-deftest test-seq-take-while () - (with-test-sequences (seq '(1 3 2 4)) - (should (equal (seq-take-while #'test-sequences-oddp seq) - (seq-take seq 2))) - (should (seq-empty-p (seq-take-while #'test-sequences-evenp seq))) - (should (equal (seq-take-while #'numberp seq) seq))) - (with-test-sequences (seq '()) - (should (seq-empty-p (seq-take-while #'test-sequences-oddp seq))))) - -(ert-deftest test-seq-map-indexed () - (should (equal (seq-map-indexed (lambda (elt i) - (list elt i)) - nil) - nil)) - (should (equal (seq-map-indexed (lambda (elt i) - (list elt i)) - '(a b c d)) - '((a 0) (b 1) (c 2) (d 3))))) - -(ert-deftest test-seq-filter () - (with-test-sequences (seq '(6 7 8 9 10)) - (should (equal (seq-filter #'test-sequences-evenp seq) '(6 8 10))) - (should (equal (seq-filter #'test-sequences-oddp seq) '(7 9))) - (should (equal (seq-filter (lambda (elt) nil) seq) '()))) - (with-test-sequences (seq '()) - (should (equal (seq-filter #'test-sequences-evenp seq) '())))) - -(ert-deftest test-seq-remove () - (with-test-sequences (seq '(6 7 8 9 10)) - (should (equal (seq-remove #'test-sequences-evenp seq) '(7 9))) - (should (equal (seq-remove #'test-sequences-oddp seq) '(6 8 10))) - (should (same-contents-p (seq-remove (lambda (elt) nil) seq) seq))) - (with-test-sequences (seq '()) - (should (equal (seq-remove #'test-sequences-evenp seq) '())))) - -(ert-deftest test-seq-count () - (with-test-sequences (seq '(6 7 8 9 10)) - (should (equal (seq-count #'test-sequences-evenp seq) 3)) - (should (equal (seq-count #'test-sequences-oddp seq) 2)) - (should (equal (seq-count (lambda (elt) nil) seq) 0))) - (with-test-sequences (seq '()) - (should (equal (seq-count #'test-sequences-evenp seq) 0)))) - -(ert-deftest test-seq-reduce () - (with-test-sequences (seq '(1 2 3 4)) - (should (= (seq-reduce #'+ seq 0) 10)) - (should (= (seq-reduce #'+ seq 5) 15))) - (with-test-sequences (seq '()) - (should (eq (seq-reduce #'+ seq 0) 0)) - (should (eq (seq-reduce #'+ seq 7) 7)))) - -(ert-deftest test-seq-some () - (with-test-sequences (seq '(4 3 2 1)) - (should (seq-some #'test-sequences-evenp seq)) - (should (seq-some #'test-sequences-oddp seq)) - (should-not (seq-some (lambda (elt) (> elt 10)) seq))) - (with-test-sequences (seq '()) - (should-not (seq-some #'test-sequences-oddp seq))) - (should (seq-some #'null '(1 nil 2)))) - -(ert-deftest test-seq-find () - (with-test-sequences (seq '(4 3 2 1)) - (should (= 4 (seq-find #'test-sequences-evenp seq))) - (should (= 3 (seq-find #'test-sequences-oddp seq))) - (should-not (seq-find (lambda (elt) (> elt 10)) seq))) - (should-not (seq-find #'null '(1 nil 2))) - (should-not (seq-find #'null '(1 nil 2) t)) - (should-not (seq-find #'null '(1 2 3))) - (should (seq-find #'null '(1 2 3) 'sentinel))) - -(ert-deftest test-seq-contains () - (with-test-sequences (seq '(3 4 5 6)) - (should (seq-contains seq 3)) - (should-not (seq-contains seq 7))) - (with-test-sequences (seq '()) - (should-not (seq-contains seq 3)) - (should-not (seq-contains seq nil)))) - -(ert-deftest test-seq-every-p () - (with-test-sequences (seq '(43 54 22 1)) - (should (seq-every-p (lambda (elt) t) seq)) - (should-not (seq-every-p #'test-sequences-oddp seq)) - (should-not (seq-every-p #'test-sequences-evenp seq))) - (with-test-sequences (seq '(42 54 22 2)) - (should (seq-every-p #'test-sequences-evenp seq)) - (should-not (seq-every-p #'test-sequences-oddp seq))) - (with-test-sequences (seq '()) - (should (seq-every-p #'identity seq)) - (should (seq-every-p #'test-sequences-evenp seq)))) - -(ert-deftest test-seq-empty-p () - (with-test-sequences (seq '(0)) - (should-not (seq-empty-p seq))) - (with-test-sequences (seq '(0 1 2)) - (should-not (seq-empty-p seq))) - (with-test-sequences (seq '()) - (should (seq-empty-p seq)))) - -(ert-deftest test-seq-sort () - (should (equal (seq-sort #'< "cbaf") "abcf")) - (should (equal (seq-sort #'< '(2 1 9 4)) '(1 2 4 9))) - (should (equal (seq-sort #'< [2 1 9 4]) [1 2 4 9])) - (should (equal (seq-sort #'< "") ""))) - -(ert-deftest test-seq-uniq () - (with-test-sequences (seq '(2 4 6 8 6 4 3)) - (should (equal (seq-uniq seq) '(2 4 6 8 3)))) - (with-test-sequences (seq '(3 3 3 3 3)) - (should (equal (seq-uniq seq) '(3)))) - (with-test-sequences (seq '()) - (should (equal (seq-uniq seq) '())))) - -(ert-deftest test-seq-subseq () - (with-test-sequences (seq '(2 3 4 5)) - (should (equal (seq-subseq seq 0 4) seq)) - (should (same-contents-p (seq-subseq seq 2 4) '(4 5))) - (should (same-contents-p (seq-subseq seq 1 3) '(3 4))) - (should (same-contents-p (seq-subseq seq 1 -1) '(3 4)))) - (should (vectorp (seq-subseq [2 3 4 5] 2))) - (should (stringp (seq-subseq "foo" 2 3))) - (should (listp (seq-subseq '(2 3 4 4) 2 3))) - (should-error (seq-subseq '(1 2 3) 4)) - (should-not (seq-subseq '(1 2 3) 3)) - (should (seq-subseq '(1 2 3) -3)) - (should-error (seq-subseq '(1 2 3) 1 4)) - (should (seq-subseq '(1 2 3) 1 3))) - -(ert-deftest test-seq-concatenate () - (with-test-sequences (seq '(2 4 6)) - (should (equal (seq-concatenate 'string seq [8]) (string 2 4 6 8))) - (should (equal (seq-concatenate 'list seq '(8 10)) '(2 4 6 8 10))) - (should (equal (seq-concatenate 'vector seq '(8 10)) [2 4 6 8 10])) - (should (equal (seq-concatenate 'vector nil '(8 10)) [8 10])) - (should (equal (seq-concatenate 'vector seq nil) [2 4 6])))) - -(ert-deftest test-seq-mapcat () - (should (equal (seq-mapcat #'seq-reverse '((3 2 1) (6 5 4))) - '(1 2 3 4 5 6))) - (should (equal (seq-mapcat #'seq-reverse '[(3 2 1) (6 5 4)]) - '(1 2 3 4 5 6))) - (should (equal (seq-mapcat #'seq-reverse '((3 2 1) (6 5 4)) 'vector) - '[1 2 3 4 5 6]))) - -(ert-deftest test-seq-partition () - (should (same-contents-p (seq-partition '(0 1 2 3 4 5 6 7) 3) - '((0 1 2) (3 4 5) (6 7)))) - (should (same-contents-p (seq-partition '[0 1 2 3 4 5 6 7] 3) - '([0 1 2] [3 4 5] [6 7]))) - (should (same-contents-p (seq-partition "Hello world" 2) - '("He" "ll" "o " "wo" "rl" "d"))) - (should (equal (seq-partition '() 2) '())) - (should (equal (seq-partition '(1 2 3) -1) '()))) - -(ert-deftest test-seq-group-by () - (with-test-sequences (seq '(1 2 3 4)) - (should (equal (seq-group-by #'test-sequences-oddp seq) - '((t 1 3) (nil 2 4))))) - (should (equal (seq-group-by #'car '((a 1) (b 3) (c 4) (a 2))) - '((b (b 3)) (c (c 4)) (a (a 1) (a 2)))))) - -(ert-deftest test-seq-reverse () - (with-test-sequences (seq '(1 2 3 4)) - (should (same-contents-p (seq-reverse seq) '(4 3 2 1))) - (should (equal (type-of (seq-reverse seq)) - (type-of seq))))) - -(ert-deftest test-seq-into () - (let* ((vector [1 2 3]) - (list (seq-into vector 'list))) - (should (same-contents-p vector list)) - (should (listp list))) - (let* ((list '(hello world)) - (vector (seq-into list 'vector))) - (should (same-contents-p vector list)) - (should (vectorp vector))) - (let* ((string "hello") - (list (seq-into string 'list))) - (should (same-contents-p string list)) - (should (stringp string))) - (let* ((string "hello") - (vector (seq-into string 'vector))) - (should (same-contents-p string vector)) - (should (stringp string))) - (let* ((list nil) - (vector (seq-into list 'vector))) - (should (same-contents-p list vector)) - (should (vectorp vector)))) - -(ert-deftest test-seq-intersection () - (let ((v1 [2 3 4 5]) - (v2 [1 3 5 6 7])) - (should (same-contents-p (seq-intersection v1 v2) - '(3 5)))) - (let ((l1 '(2 3 4 5)) - (l2 '(1 3 5 6 7))) - (should (same-contents-p (seq-intersection l1 l2) - '(3 5)))) - (let ((v1 [2 4 6]) - (v2 [1 3 5])) - (should (seq-empty-p (seq-intersection v1 v2))))) - -(ert-deftest test-seq-difference () - (let ((v1 [2 3 4 5]) - (v2 [1 3 5 6 7])) - (should (same-contents-p (seq-difference v1 v2) - '(2 4)))) - (let ((l1 '(2 3 4 5)) - (l2 '(1 3 5 6 7))) - (should (same-contents-p (seq-difference l1 l2) - '(2 4)))) - (let ((v1 [2 4 6]) - (v2 [2 4 6])) - (should (seq-empty-p (seq-difference v1 v2))))) - -(ert-deftest test-seq-let () - (with-test-sequences (seq '(1 2 3 4)) - (seq-let (a b c d e) seq - (should (= a 1)) - (should (= b 2)) - (should (= c 3)) - (should (= d 4)) - (should (null e))) - (seq-let (a b &rest others) seq - (should (= a 1)) - (should (= b 2)) - (should (same-contents-p others (seq-drop seq 2))))) - (let ((seq '(1 (2 (3 (4)))))) - (seq-let (_ (_ (_ (a)))) seq - (should (= a 4)))) - (let (seq) - (seq-let (a b c) seq - (should (null a)) - (should (null b)) - (should (null c))))) - -(ert-deftest test-seq-min-max () - (with-test-sequences (seq '(4 5 3 2 0 4)) - (should (= (seq-min seq) 0)) - (should (= (seq-max seq) 5)))) - -(ert-deftest test-seq-position () - (with-test-sequences (seq '(2 4 6)) - (should (null (seq-position seq 1))) - (should (= (seq-position seq 4) 1))) - (let ((seq '(a b c))) - (should (null (seq-position seq 'd #'eq))) - (should (= (seq-position seq 'a #'eq) 0)) - (should (null (seq-position seq (make-symbol "a") #'eq))))) - -(ert-deftest test-seq-mapn () - (should-error (seq-mapn #'identity)) - (with-test-sequences (seq '(1 2 3 4 5 6 7)) - (should (equal (append seq nil) - (seq-mapn #'identity seq))) - (should (equal (seq-mapn #'1+ seq) - (seq-map #'1+ seq))) - - (with-test-sequences (seq-2 '(10 20 30 40 50)) - (should (equal (seq-mapn #'+ seq seq-2) - '(11 22 33 44 55))) - (should (equal (seq-mapn #'+ seq seq-2 nil) nil))))) - -(ert-deftest test-seq-sort-by () - (let ((seq ["x" "xx" "xxx"])) - (should (equal (seq-sort-by #'seq-length #'> seq) - ["xxx" "xx" "x"])))) - -(ert-deftest test-seq-random-elt-take-all () - (let ((seq '(a b c d e)) - (elts '())) - (should (= 0 (length elts))) - (dotimes (_ 1000) - (let ((random-elt (seq-random-elt seq))) - (add-to-list 'elts - random-elt))) - (should (= 5 (length elts))))) - -(ert-deftest test-seq-random-elt-signal-on-empty () - (should-error (seq-random-elt nil)) - (should-error (seq-random-elt [])) - (should-error (seq-random-elt ""))) - -(ert-deftest test-seq-mapn-circular-lists () - (let ((l1 '#1=(1 . #1#))) - (should (equal (seq-mapn #'+ '(3 4 5 7) l1) - '(4 5 6 8))))) - -(ert-deftest test-seq-into-and-identity () - (let ((lst '(1 2 3)) - (vec [1 2 3]) - (str "foo bar")) - (should (eq (seq-into lst 'list) lst)) - (should (eq (seq-into vec 'vector) vec)) - (should (eq (seq-into str 'string) str)))) - -(provide 'seq-tests) -;;; seq-tests.el ends here diff --git a/project1/.emacs.d/packages/seq-2.20/tests/seq-tests.elc b/project1/.emacs.d/packages/seq-2.20/tests/seq-tests.elc deleted file mode 100644 index c5c9fd7390a5961a7ed55eccbfd2895e867c04f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183169 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 RLmCm8YwiRahuO|Q{~uM)qM!f( diff --git a/project1/DDL.sql b/project1/DDL.sql deleted file mode 100644 index 1bc6621..0000000 --- a/project1/DDL.sql +++ /dev/null @@ -1,128 +0,0 @@ -drop table if exists prereq; -drop table if exists time_slot; -drop table if exists advisor; -drop table if exists takes; -drop table if exists student; -drop table if exists teaches; -drop table if exists section; -drop table if exists instructor; -drop table if exists course; -drop table if exists department; -drop table if exists classroom; - -create table classroom - (building varchar(15), - room_number varchar(7), - capacity numeric(4,0), - primary key (building, room_number) - ); - -create table department - (dept_name varchar(20), - building varchar(15), - budget numeric(12,2) check (budget > 0), - primary key (dept_name) - ); - -create table course - (course_id varchar(8), - title varchar(50), - dept_name varchar(20), - credits numeric(2,0) check (credits > 0), - primary key (course_id), - foreign key (dept_name) references department - on delete set null - ); - -create table instructor - (ID varchar(5), - name varchar(20) not null, - dept_name varchar(20), - salary numeric(8,2) check (salary > 29000), - primary key (ID), - foreign key (dept_name) references department - on delete set null - ); - -create table section - (course_id varchar(8), - sec_id varchar(8), - semester varchar(6) - check (semester in ('Fall', 'Winter', 'Spring', 'Summer')), - year numeric(4,0) check (year > 1701 and year < 2100), - building varchar(15), - room_number varchar(7), - time_slot_id varchar(4), - primary key (course_id, sec_id, semester, year), - foreign key (course_id) references course - on delete cascade, - foreign key (building, room_number) references classroom - on delete set null - ); - -create table teaches - (ID varchar(5), - course_id varchar(8), - sec_id varchar(8), - semester varchar(6), - year numeric(4,0), - primary key (ID, course_id, sec_id, semester, year), - foreign key (course_id,sec_id, semester, year) references section - on delete cascade, - foreign key (ID) references instructor - on delete cascade - ); - -create table student - (ID varchar(5), - name varchar(20) not null, - dept_name varchar(20), - tot_cred numeric(3,0) check (tot_cred >= 0), - primary key (ID), - foreign key (dept_name) references department - on delete set null - ); - -create table takes - (ID varchar(5), - course_id varchar(8), - sec_id varchar(8), - semester varchar(6), - year numeric(4,0), - grade varchar(2), - primary key (ID, course_id, sec_id, semester, year), - foreign key (course_id,sec_id, semester, year) references section - on delete cascade, - foreign key (ID) references student - on delete cascade - ); - -create table advisor - (s_ID varchar(5), - i_ID varchar(5), - primary key (s_ID), - foreign key (i_ID) references instructor (ID) - on delete set null, - foreign key (s_ID) references student (ID) - on delete cascade - ); - -create table time_slot - (time_slot_id varchar(4), - day varchar(1), - start_hr numeric(2) check (start_hr >= 0 and start_hr < 24), - start_min numeric(2) check (start_min >= 0 and start_min < 60), - end_hr numeric(2) check (end_hr >= 0 and end_hr < 24), - end_min numeric(2) check (end_min >= 0 and end_min < 60), - primary key (time_slot_id, day, start_hr, start_min) - ); - -create table prereq - (course_id varchar(8), - prereq_id varchar(8), - primary key (course_id, prereq_id), - foreign key (course_id) references course - on delete cascade, - foreign key (prereq_id) references course - ); - diff --git a/project1/README.md b/project1/README.md deleted file mode 100644 index 43f8084..0000000 --- a/project1/README.md +++ /dev/null @@ -1,68 +0,0 @@ -## Project 1: SQL Assignment, CMSC424, Fall 2019 - -*The assignment is to be done by yourself.* - -Start by `cd`-ing into `424f19`. Do a `git pull origin master`. You should see a `project1` directory with the following files: - -1. README.md: This file. -1. small.sql: The SQL script for creating the data. -1. queries.py: The file where to enter your answer; this is the file to be submitted -1. answers.py: The answers to the queries on the small dataset. -1. SQLTesting.py: File to be used for testing your submission -- see below. - -**Note:** The testing will be done on a different, larger dataset. - -### Schema -The dataset contains synthetic air flight data. Specifically it contains the following tables: - -1. airports: airportid, city, name, total2011, total2012 -1. customers: customerid, name, birthdate, frequentflieron -1. airlines: airlineid, name, hub -1. flights: flightid, source, dest, airlineid, local_departing_time, local_arrival_time -1. flewon: flightid, customerid, flightdate - -See the provided SQL file for the table definitions. - -The dataset was generated synthetically: the airport ids and the cities were chosen from the biggest airports in the US, but the rest of the data is populated randomly. The data will not make sense. For example, two different flights between the same cities may have very different flight durations. The flight times between the cities may not correspond to geographical distances that you know. Some other information about the data: -- **The dates in the *large* database might be different than in the *small*.** -- Each customer may at most take one flight every day. -- The flight times were chosen between 30 minutes to 5 hours randomly. -- All flights are daily (start and end on a single day), and none are overnight. -- For every flight from city A to city B, there is corresponding return flight from B to A. -- The "flewon" table only contains the flight date -- the flight times must be extracted from the flights table. - -In many cases (especially for complex queries or queries involving -`max` or `min`), you will find it easier to create temporary tables -using the `with` construct. This also allows you to break down the full -query and makes it easier to debug. - -You don't have to use the "hints" if you don't want to; there might -be simpler ways to solve the questions. - -### Testing and submitting using SQLTesting.py -Your answers (i.e., SQL queries) should be added to the `queries.py` file. A simple query is provided for the first answer to show you how it works. -You are also provided with a Python file `SQLTesting.py` for testing your answers. - -- We recommend that you use `psql` to design your queries, and then paste the queries to the `queries.py` file, and confirm it works. - -- SQLTesting takes quite a few options: use `python3 SQLTesting.py -h` to see the options. - -- To get started with SQLTesting, do: `python3 SQLTesting.py -v -i` -- that will run each of the queries and show you your answer and correct answer. - -- If you want to test your answer to Question 1, use: `python3 SQLTesting.py -q 1`. The program compares the result of running your query against the provided answer (in the `answers.py` file). - -- The `-v` flag will print out more information, including the correct and submitted answers etc. - -- If you want to test your answers to all questions (this is what we will do), use: `python3 SQLTesting.py` and look at the final total score. - -- `-i` flag to SQLTesting will run all the queries, one at a time (waiting for you to press Enter after each query). - -- **Note that**: We will basically run this same program on your submitted `queries.py` file, but with the larger dataset; your score on the assignment will -be score output by the program. The program tries to do partial credits (as you can see in the code). It is very unlikely that your score on the larger, hidden -dataset will be higher than your score on the provided dataset. - -### Submission Instructions -Submit the `queries.py` file using ELMS [here](https://myelms.umd.edu/courses/1227917/assignments/4492249). **Due September 17.** - -### Assignment Questions -See `queries.py` file. diff --git a/project1/SQLTesting.py b/project1/SQLTesting.py deleted file mode 100644 index e809967..0000000 --- a/project1/SQLTesting.py +++ /dev/null @@ -1,111 +0,0 @@ -import psycopg2 -import os -import sys -import datetime -from collections import Counter -from types import * -import argparse - -from queries import * -from answers import * - -parser = argparse.ArgumentParser() -parser.add_argument('-v', '--verbose', help="Print out the query results and more details", required=False, action="store_true") -parser.add_argument('-i', '--interactive', help="Run queries one at a time, and wait for user to proceed", required=False, action="store_true") -parser.add_argument('-q', '--query', type = int, help="Only run and check the given query number", required=False) -args = parser.parse_args() - -verbose = args.verbose -interactive = args.interactive - -# Check if x and y are almost near match -def match(x, y): - if type(x) != type(y): - return False - if type(x) is int or type(x) is bool: - return x == y - if type(x) is float: - return (abs(x - y) < 0.01) - # Conver to string and compare - # print "Found type: {}".format(type(x)) - return str(x).strip() == str(y).strip() - -def compareAnswers(ans, correct): - # Special case empty answer - if len(ans) == 0: - if len(correct) == 0: - return ("Score = 4: Both answers empty", 4) - else: - return ("Score = 0: Empty answer", 0) - - if len(correct) == 0: - return ("Score = 0: The answer should have been empty", 0) - - - # If the number of columns is not correct, no score - if len(ans[0]) != len(correct[0]): - return ("Score = 0: Incorrect Number of Columns", 0) - - # If the number of rows in the answer is the same, check for near-exact match - if len(ans) == len(correct): - c = Counter() - for (t1, t2) in zip(ans, correct): - for (t1x, t2x) in zip(t1, t2): - c[match(t1x, t2x)] += 1 - if c[False] == 0: - return ("Score = 4: Exact or Near-exact Match", 4) - - # Let's try to do an approximate match - flattened_ans = Counter([str(x).strip() for y in ans for x in y]) - flattened_correct = Counter([str(x).strip() for y in correct for x in y]) - - - jaccard = sum((flattened_correct & flattened_ans).values()) * 1.0/sum((flattened_correct | flattened_ans).values()) - if verbose: - print("------ Creating word counts and comparing answers ---------") - print(flattened_correct ) - print(flattened_ans) - print("Jaccard Coefficient: {}".format(jaccard) ) - - if jaccard > 0.9: - if len(ans) == len(correct): - return ("Score = 3: Very similar, but not an exact match (possibly wrong sort order)", 3) - else: - return ("Score = 2: Very similar, but incorrect number of rows", 2) - if jaccard > 0.5: - return ("Score = 1: Somewhat similar answers", 1) - return ("Score = 0: Answers too different", 0) - -conn = psycopg2.connect("dbname=flights user=ubuntu") -cur = conn.cursor() - -totalscore = 0 -for i in range(1, 11): - # If a query is specified by -q option, only do that one - if args.query is None or args.query == i: - try: - print("========== Executing Query {}".format(i)) - print(queries[i]) - cur.execute(queries[i]) - ans = cur.fetchall() - - if verbose: - print("--------- Your Query Answer ---------") - for t in ans: - print(t) - print("--------- Correct Answer ---------") - for t in correctanswers[i]: - print(t) - - # Compare with correctanswers[i] - cmp_res = compareAnswers(ans, correctanswers[i]) - print("-----> " + cmp_res[0]) - totalscore += cmp_res[1] - if interactive: - input('Press enter to proceed') - os.system('clear') - except: - print(sys.exc_info()) - raise - -print("-----------------> Total Score = {}".format(totalscore)) diff --git a/project1/answers.py b/project1/answers.py deleted file mode 100644 index 85b711b..0000000 --- a/project1/answers.py +++ /dev/null @@ -1,27 +0,0 @@ -import datetime - -correctanswers = ["" for i in range(0, 11)] - -correctanswers[0] = [('ATL', 'Atlanta '), ('BOS', 'Boston '), ('ORD', 'Chicago '), ('DFW', 'Dallas-Fort Worth '), ('DEN', 'Denver '), ('FLL', 'Fort Lauderdale '), ('LAX', 'Los Angeles '), ('JFK', 'New York '), ('OAK', 'Oakland '), ('IAD', 'Washington ')] - -correctanswers[1] = [('Elizabeth Anderson ',), ('Elizabeth Baker ',), ('Elizabeth Collins ',), ('Elizabeth Gonzalez ',), ('Elizabeth Green ',), ('Elizabeth Harris ',), ('Elizabeth Hernandez ',), ('Elizabeth Jackson ',)] - -correctanswers[2] = [('cust41 ', 'Daniel Hall ', datetime.date(1989, 8, 4), 'UA'), ('cust116 ', 'Jason Carter ', datetime.date(1987, 8, 4), 'UA', ), ('cust123 ', 'Jeff Baker ', datetime.date(1996, 8, 4), 'AA')] - - -correctanswers[3] = [('Dallas-Fort Worth ', 'DFW', 'Oakland ', 'OAK', 5),('Oakland ', 'OAK', 'Dallas-Fort Worth ', 'DFW', 5),('Atlanta ', 'ATL', 'Denver ', 'DEN', 3),('Chicago ', 'ORD', 'Oakland ', 'OAK', 3),('Denver ', 'DEN', 'Atlanta ', 'ATL', 3),('New York ', 'JFK', 'Oakland ', 'OAK', 3),('Oakland ', 'OAK', 'Chicago ', 'ORD', 3),('Oakland ', 'OAK', 'New York ', 'JFK', 3)] - -correctanswers[4] = [('American Airlines ',)] - -correctanswers[5] = [('SW118 ', 'Southwest Airlines ', 2.0, 7.0),('SW136 ', 'Southwest Airlines ', 3.0, 51.0)] - -correctanswers[6] = [('AA109 ', datetime.date(2016, 8, 2)), ('AA109 ', datetime.date(2016, 8, 7)), ('AA113 ', datetime.date(2016, 8, 5)), ('AA114 ', datetime.date(2016, 8, 4)), ('AA114 ', datetime.date(2016, 8, 5)), ('AA115 ', datetime.date(2016, 8, 2)), ('AA115 ', datetime.date(2016, 8, 3)), ('AA115 ', datetime.date(2016, 8, 8)), ('AA127 ', datetime.date(2016, 8, 3)), ('AA127 ', datetime.date(2016, 8, 6)), ('AA127 ', datetime.date(2016, 8, 7)), ('AA127 ', datetime.date(2016, 8, 8)), ('AA127 ', datetime.date(2016, 8, 9)), ('AA130 ', datetime.date(2016, 8, 1)), ('AA130 ', datetime.date(2016, 8, 4)), ('AA130 ', datetime.date(2016, 8, 6)), ('AA130 ', datetime.date(2016, 8, 7)), ('AA150 ', datetime.date(2016, 8, 1)), ('AA150 ', datetime.date(2016, 8, 2)), ('AA150 ', datetime.date(2016, 8, 3)), ('AA150 ', datetime.date(2016, 8, 4)), ('AA150 ', datetime.date(2016, 8, 5)), ('AA150 ', datetime.date(2016, 8, 6)), ('AA150 ', datetime.date(2016, 8, 7)), ('AA150 ', datetime.date(2016, 8, 8)), ('AA150 ', datetime.date(2016, 8, 9)), ('AA151 ', datetime.date(2016, 8, 1)), ('AA151 ', datetime.date(2016, 8, 2)), ('AA151 ', datetime.date(2016, 8, 3)), ('AA151 ', datetime.date(2016, 8, 4)), ('AA151 ', datetime.date(2016, 8, 5)), ('AA151 ', datetime.date(2016, 8, 6)), ('AA151 ', datetime.date(2016, 8, 7)), ('AA151 ', datetime.date(2016, 8, 8)), ('AA151 ', datetime.date(2016, 8, 9)), ('AA154 ', datetime.date(2016, 8, 1)), ('AA154 ', datetime.date(2016, 8, 2)), ('AA154 ', datetime.date(2016, 8, 3)), ('AA154 ', datetime.date(2016, 8, 4)), ('AA154 ', datetime.date(2016, 8, 5)), ('AA154 ', datetime.date(2016, 8, 6)), ('AA154 ', datetime.date(2016, 8, 7)), ('AA154 ', datetime.date(2016, 8, 8)), ('AA154 ', datetime.date(2016, 8, 9)), ('AA166 ', datetime.date(2016, 8, 1)), ('AA166 ', datetime.date(2016, 8, 2)), ('AA166 ', datetime.date(2016, 8, 3)), ('AA166 ', datetime.date(2016, 8, 4)), ('AA166 ', datetime.date(2016, 8, 5)), ('AA166 ', datetime.date(2016, 8, 6)), ('AA166 ', datetime.date(2016, 8, 7)), ('AA166 ', datetime.date(2016, 8, 8)), ('AA166 ', datetime.date(2016, 8, 9)), ('AA167 ', datetime.date(2016, 8, 1)), ('AA167 ', datetime.date(2016, 8, 2)), ('AA167 ', datetime.date(2016, 8, 3)), ('AA167 ', datetime.date(2016, 8, 4)), ('AA167 ', datetime.date(2016, 8, 5)), ('AA167 ', datetime.date(2016, 8, 6)), ('AA167 ', datetime.date(2016, 8, 7)), ('AA167 ', datetime.date(2016, 8, 8)), ('AA167 ', datetime.date(2016, 8, 9)), ('AA168 ', datetime.date(2016, 8, 1)), ('AA168 ', datetime.date(2016, 8, 2)), ('AA168 ', datetime.date(2016, 8, 3)), ('AA168 ', datetime.date(2016, 8, 4)), ('AA168 ', datetime.date(2016, 8, 5)), ('AA168 ', datetime.date(2016, 8, 6)), ('AA168 ', datetime.date(2016, 8, 7)), ('AA168 ', datetime.date(2016, 8, 8)), ('AA168 ', datetime.date(2016, 8, 9)), ('AA172 ', datetime.date(2016, 8, 1)), ('AA172 ', datetime.date(2016, 8, 2)), ('AA172 ', datetime.date(2016, 8, 3)), ('AA172 ', datetime.date(2016, 8, 4)), ('AA172 ', datetime.date(2016, 8, 5)), ('AA172 ', datetime.date(2016, 8, 6)), ('AA172 ', datetime.date(2016, 8, 7)), ('AA172 ', datetime.date(2016, 8, 8)), ('AA172 ', datetime.date(2016, 8, 9)), ('DL119 ', datetime.date(2016, 8, 9)), ('DL121 ', datetime.date(2016, 8, 2)), ('DL121 ', datetime.date(2016, 8, 4)), ('DL121 ', datetime.date(2016, 8, 6)), ('DL134 ', datetime.date(2016, 8, 2)), ('DL134 ', datetime.date(2016, 8, 4)), ('DL134 ', datetime.date(2016, 8, 7)), ('DL134 ', datetime.date(2016, 8, 9)), ('DL140 ', datetime.date(2016, 8, 2)), ('DL140 ', datetime.date(2016, 8, 4)), ('DL140 ', datetime.date(2016, 8, 7)), ('DL140 ', datetime.date(2016, 8, 8)), ('DL141 ', datetime.date(2016, 8, 1)), ('DL141 ', datetime.date(2016, 8, 2)), ('DL141 ', datetime.date(2016, 8, 3)), ('DL141 ', datetime.date(2016, 8, 4)), ('DL141 ', datetime.date(2016, 8, 5)), ('DL141 ', datetime.date(2016, 8, 6)), ('DL141 ', datetime.date(2016, 8, 7)), ('DL141 ', datetime.date(2016, 8, 8)), ('DL141 ', datetime.date(2016, 8, 9)), ('DL147 ', datetime.date(2016, 8, 1)), ('DL147 ', datetime.date(2016, 8, 2)), ('DL147 ', datetime.date(2016, 8, 3)), ('DL147 ', datetime.date(2016, 8, 4)), ('DL147 ', datetime.date(2016, 8, 5)), ('DL147 ', datetime.date(2016, 8, 6)), ('DL147 ', datetime.date(2016, 8, 7)), ('DL147 ', datetime.date(2016, 8, 8)), ('DL147 ', datetime.date(2016, 8, 9)), ('DL160 ', datetime.date(2016, 8, 1)), ('DL160 ', datetime.date(2016, 8, 2)), ('DL160 ', datetime.date(2016, 8, 3)), ('DL160 ', datetime.date(2016, 8, 4)), ('DL160 ', datetime.date(2016, 8, 5)), ('DL160 ', datetime.date(2016, 8, 6)), ('DL160 ', datetime.date(2016, 8, 7)), ('DL160 ', datetime.date(2016, 8, 8)), ('DL160 ', datetime.date(2016, 8, 9)), ('DL162 ', datetime.date(2016, 8, 1)), ('DL162 ', datetime.date(2016, 8, 2)), ('DL162 ', datetime.date(2016, 8, 3)), ('DL162 ', datetime.date(2016, 8, 4)), ('DL162 ', datetime.date(2016, 8, 5)), ('DL162 ', datetime.date(2016, 8, 6)), ('DL162 ', datetime.date(2016, 8, 7)), ('DL162 ', datetime.date(2016, 8, 8)), ('DL162 ', datetime.date(2016, 8, 9)), ('SW103 ', datetime.date(2016, 8, 2)), ('SW104 ', datetime.date(2016, 8, 9)), ('SW107 ', datetime.date(2016, 8, 1)), ('SW107 ', datetime.date(2016, 8, 2)), ('SW108 ', datetime.date(2016, 8, 1)), ('SW108 ', datetime.date(2016, 8, 4)), ('SW110 ', datetime.date(2016, 8, 5)), ('SW110 ', datetime.date(2016, 8, 6)), ('SW111 ', datetime.date(2016, 8, 5)), ('SW111 ', datetime.date(2016, 8, 8)), ('SW112 ', datetime.date(2016, 8, 3)), ('SW112 ', datetime.date(2016, 8, 4)), ('SW112 ', datetime.date(2016, 8, 5)), ('SW116 ', datetime.date(2016, 8, 1)), ('SW116 ', datetime.date(2016, 8, 6)), ('SW116 ', datetime.date(2016, 8, 8)), ('SW118 ', datetime.date(2016, 8, 4)), ('SW120 ', datetime.date(2016, 8, 3)), ('SW120 ', datetime.date(2016, 8, 6)), ('SW120 ', datetime.date(2016, 8, 8)), ('SW120 ', datetime.date(2016, 8, 9)), ('SW122 ', datetime.date(2016, 8, 1)), ('SW122 ', datetime.date(2016, 8, 2)), ('SW122 ', datetime.date(2016, 8, 3)), ('SW122 ', datetime.date(2016, 8, 4)), ('SW122 ', datetime.date(2016, 8, 6)), ('SW122 ', datetime.date(2016, 8, 7)), ('SW123 ', datetime.date(2016, 8, 3)), ('SW124 ', datetime.date(2016, 8, 9)), ('SW125 ', datetime.date(2016, 8, 1)), ('SW125 ', datetime.date(2016, 8, 5)), ('SW126 ', datetime.date(2016, 8, 9)), ('SW129 ', datetime.date(2016, 8, 1)), ('SW129 ', datetime.date(2016, 8, 3)), ('SW129 ', datetime.date(2016, 8, 4)), ('SW129 ', datetime.date(2016, 8, 8)), ('SW132 ', datetime.date(2016, 8, 4)), ('SW132 ', datetime.date(2016, 8, 7)), ('SW132 ', datetime.date(2016, 8, 9)), ('SW133 ', datetime.date(2016, 8, 2)), ('SW133 ', datetime.date(2016, 8, 3)), ('SW133 ', datetime.date(2016, 8, 5)), ('SW133 ', datetime.date(2016, 8, 6)), ('SW133 ', datetime.date(2016, 8, 7)), ('SW133 ', datetime.date(2016, 8, 8)), ('SW136 ', datetime.date(2016, 8, 2)), ('SW136 ', datetime.date(2016, 8, 4)), ('SW136 ', datetime.date(2016, 8, 5)), ('SW136 ', datetime.date(2016, 8, 8)), ('SW136 ', datetime.date(2016, 8, 9)), ('SW137 ', datetime.date(2016, 8, 1)), ('SW137 ', datetime.date(2016, 8, 2)), ('SW137 ', datetime.date(2016, 8, 7)), ('SW137 ', datetime.date(2016, 8, 9)), ('SW139 ', datetime.date(2016, 8, 1)), ('SW139 ', datetime.date(2016, 8, 2)), ('SW139 ', datetime.date(2016, 8, 3)), ('SW139 ', datetime.date(2016, 8, 4)), ('SW139 ', datetime.date(2016, 8, 5)), ('SW139 ', datetime.date(2016, 8, 6)), ('SW139 ', datetime.date(2016, 8, 7)), ('SW139 ', datetime.date(2016, 8, 8)), ('SW139 ', datetime.date(2016, 8, 9)), ('SW142 ', datetime.date(2016, 8, 1)), ('SW142 ', datetime.date(2016, 8, 2)), ('SW142 ', datetime.date(2016, 8, 3)), ('SW142 ', datetime.date(2016, 8, 4)), ('SW142 ', datetime.date(2016, 8, 5)), ('SW142 ', datetime.date(2016, 8, 6)), ('SW142 ', datetime.date(2016, 8, 7)), ('SW142 ', datetime.date(2016, 8, 8)), ('SW142 ', datetime.date(2016, 8, 9)), ('SW144 ', datetime.date(2016, 8, 1)), ('SW144 ', datetime.date(2016, 8, 2)), ('SW144 ', datetime.date(2016, 8, 3)), ('SW144 ', datetime.date(2016, 8, 4)), ('SW144 ', datetime.date(2016, 8, 5)), ('SW144 ', datetime.date(2016, 8, 6)), ('SW144 ', datetime.date(2016, 8, 7)), ('SW144 ', datetime.date(2016, 8, 8)), ('SW144 ', datetime.date(2016, 8, 9)), ('SW145 ', datetime.date(2016, 8, 1)), ('SW145 ', datetime.date(2016, 8, 2)), ('SW145 ', datetime.date(2016, 8, 3)), ('SW145 ', datetime.date(2016, 8, 4)), ('SW145 ', datetime.date(2016, 8, 5)), ('SW145 ', datetime.date(2016, 8, 6)), ('SW145 ', datetime.date(2016, 8, 7)), ('SW145 ', datetime.date(2016, 8, 8)), ('SW145 ', datetime.date(2016, 8, 9)), ('SW148 ', datetime.date(2016, 8, 1)), ('SW148 ', datetime.date(2016, 8, 2)), ('SW148 ', datetime.date(2016, 8, 3)), ('SW148 ', datetime.date(2016, 8, 4)), ('SW148 ', datetime.date(2016, 8, 5)), ('SW148 ', datetime.date(2016, 8, 6)), ('SW148 ', datetime.date(2016, 8, 7)), ('SW148 ', datetime.date(2016, 8, 8)), ('SW148 ', datetime.date(2016, 8, 9)), ('SW149 ', datetime.date(2016, 8, 1)), ('SW149 ', datetime.date(2016, 8, 2)), ('SW149 ', datetime.date(2016, 8, 3)), ('SW149 ', datetime.date(2016, 8, 4)), ('SW149 ', datetime.date(2016, 8, 5)), ('SW149 ', datetime.date(2016, 8, 6)), ('SW149 ', datetime.date(2016, 8, 7)), ('SW149 ', datetime.date(2016, 8, 8)), ('SW149 ', datetime.date(2016, 8, 9)), ('SW152 ', datetime.date(2016, 8, 1)), ('SW152 ', datetime.date(2016, 8, 2)), ('SW152 ', datetime.date(2016, 8, 3)), ('SW152 ', datetime.date(2016, 8, 4)), ('SW152 ', datetime.date(2016, 8, 5)), ('SW152 ', datetime.date(2016, 8, 6)), ('SW152 ', datetime.date(2016, 8, 7)), ('SW152 ', datetime.date(2016, 8, 8)), ('SW152 ', datetime.date(2016, 8, 9)), ('SW155 ', datetime.date(2016, 8, 1)), ('SW155 ', datetime.date(2016, 8, 2)), ('SW155 ', datetime.date(2016, 8, 3)), ('SW155 ', datetime.date(2016, 8, 4)), ('SW155 ', datetime.date(2016, 8, 5)), ('SW155 ', datetime.date(2016, 8, 6)), ('SW155 ', datetime.date(2016, 8, 7)), ('SW155 ', datetime.date(2016, 8, 8)), ('SW155 ', datetime.date(2016, 8, 9)), ('SW156 ', datetime.date(2016, 8, 1)), ('SW156 ', datetime.date(2016, 8, 2)), ('SW156 ', datetime.date(2016, 8, 3)), ('SW156 ', datetime.date(2016, 8, 4)), ('SW156 ', datetime.date(2016, 8, 5)), ('SW156 ', datetime.date(2016, 8, 6)), ('SW156 ', datetime.date(2016, 8, 7)), ('SW156 ', datetime.date(2016, 8, 8)), ('SW156 ', datetime.date(2016, 8, 9)), ('SW157 ', datetime.date(2016, 8, 1)), ('SW157 ', datetime.date(2016, 8, 2)), ('SW157 ', datetime.date(2016, 8, 3)), ('SW157 ', datetime.date(2016, 8, 4)), ('SW157 ', datetime.date(2016, 8, 5)), ('SW157 ', datetime.date(2016, 8, 6)), ('SW157 ', datetime.date(2016, 8, 7)), ('SW157 ', datetime.date(2016, 8, 8)), ('SW157 ', datetime.date(2016, 8, 9)), ('SW158 ', datetime.date(2016, 8, 1)), ('SW158 ', datetime.date(2016, 8, 2)), ('SW158 ', datetime.date(2016, 8, 3)), ('SW158 ', datetime.date(2016, 8, 4)), ('SW158 ', datetime.date(2016, 8, 5)), ('SW158 ', datetime.date(2016, 8, 6)), ('SW158 ', datetime.date(2016, 8, 7)), ('SW158 ', datetime.date(2016, 8, 8)), ('SW158 ', datetime.date(2016, 8, 9)), ('SW159 ', datetime.date(2016, 8, 1)), ('SW159 ', datetime.date(2016, 8, 2)), ('SW159 ', datetime.date(2016, 8, 3)), ('SW159 ', datetime.date(2016, 8, 4)), ('SW159 ', datetime.date(2016, 8, 5)), ('SW159 ', datetime.date(2016, 8, 6)), ('SW159 ', datetime.date(2016, 8, 7)), ('SW159 ', datetime.date(2016, 8, 8)), ('SW159 ', datetime.date(2016, 8, 9)), ('SW161 ', datetime.date(2016, 8, 1)), ('SW161 ', datetime.date(2016, 8, 2)), ('SW161 ', datetime.date(2016, 8, 3)), ('SW161 ', datetime.date(2016, 8, 4)), ('SW161 ', datetime.date(2016, 8, 5)), ('SW161 ', datetime.date(2016, 8, 6)), ('SW161 ', datetime.date(2016, 8, 7)), ('SW161 ', datetime.date(2016, 8, 8)), ('SW161 ', datetime.date(2016, 8, 9)), ('SW163 ', datetime.date(2016, 8, 1)), ('SW163 ', datetime.date(2016, 8, 2)), ('SW163 ', datetime.date(2016, 8, 3)), ('SW163 ', datetime.date(2016, 8, 4)), ('SW163 ', datetime.date(2016, 8, 5)), ('SW163 ', datetime.date(2016, 8, 6)), ('SW163 ', datetime.date(2016, 8, 7)), ('SW163 ', datetime.date(2016, 8, 8)), ('SW163 ', datetime.date(2016, 8, 9)), ('SW165 ', datetime.date(2016, 8, 1)), ('SW165 ', datetime.date(2016, 8, 2)), ('SW165 ', datetime.date(2016, 8, 3)), ('SW165 ', datetime.date(2016, 8, 4)), ('SW165 ', datetime.date(2016, 8, 5)), ('SW165 ', datetime.date(2016, 8, 6)), ('SW165 ', datetime.date(2016, 8, 7)), ('SW165 ', datetime.date(2016, 8, 8)), ('SW165 ', datetime.date(2016, 8, 9)), ('SW169 ', datetime.date(2016, 8, 1)), ('SW169 ', datetime.date(2016, 8, 2)), ('SW169 ', datetime.date(2016, 8, 3)), ('SW169 ', datetime.date(2016, 8, 4)), ('SW169 ', datetime.date(2016, 8, 5)), ('SW169 ', datetime.date(2016, 8, 6)), ('SW169 ', datetime.date(2016, 8, 7)), ('SW169 ', datetime.date(2016, 8, 8)), ('SW169 ', datetime.date(2016, 8, 9)), ('SW170 ', datetime.date(2016, 8, 1)), ('SW170 ', datetime.date(2016, 8, 2)), ('SW170 ', datetime.date(2016, 8, 3)), ('SW170 ', datetime.date(2016, 8, 4)), ('SW170 ', datetime.date(2016, 8, 5)), ('SW170 ', datetime.date(2016, 8, 6)), ('SW170 ', datetime.date(2016, 8, 7)), ('SW170 ', datetime.date(2016, 8, 8)), ('SW170 ', datetime.date(2016, 8, 9)), ('SW171 ', datetime.date(2016, 8, 1)), ('SW171 ', datetime.date(2016, 8, 2)), ('SW171 ', datetime.date(2016, 8, 3)), ('SW171 ', datetime.date(2016, 8, 4)), ('SW171 ', datetime.date(2016, 8, 5)), ('SW171 ', datetime.date(2016, 8, 6)), ('SW171 ', datetime.date(2016, 8, 7)), ('SW171 ', datetime.date(2016, 8, 8)), ('SW171 ', datetime.date(2016, 8, 9)), ('SW173 ', datetime.date(2016, 8, 1)), ('SW173 ', datetime.date(2016, 8, 2)), ('SW173 ', datetime.date(2016, 8, 3)), ('SW173 ', datetime.date(2016, 8, 4)), ('SW173 ', datetime.date(2016, 8, 5)), ('SW173 ', datetime.date(2016, 8, 6)), ('SW173 ', datetime.date(2016, 8, 7)), ('SW173 ', datetime.date(2016, 8, 8)), ('SW173 ', datetime.date(2016, 8, 9)), ('SW174 ', datetime.date(2016, 8, 1)), ('SW174 ', datetime.date(2016, 8, 2)), ('SW174 ', datetime.date(2016, 8, 3)), ('SW174 ', datetime.date(2016, 8, 4)), ('SW174 ', datetime.date(2016, 8, 5)), ('SW174 ', datetime.date(2016, 8, 6)), ('SW174 ', datetime.date(2016, 8, 7)), ('SW174 ', datetime.date(2016, 8, 8)), ('SW174 ', datetime.date(2016, 8, 9)), ('SW175 ', datetime.date(2016, 8, 1)), ('SW175 ', datetime.date(2016, 8, 2)), ('SW175 ', datetime.date(2016, 8, 3)), ('SW175 ', datetime.date(2016, 8, 4)), ('SW175 ', datetime.date(2016, 8, 5)), ('SW175 ', datetime.date(2016, 8, 6)), ('SW175 ', datetime.date(2016, 8, 7)), ('SW175 ', datetime.date(2016, 8, 8)), ('SW175 ', datetime.date(2016, 8, 9)), ('SW177 ', datetime.date(2016, 8, 1)), ('SW177 ', datetime.date(2016, 8, 2)), ('SW177 ', datetime.date(2016, 8, 3)), ('SW177 ', datetime.date(2016, 8, 4)), ('SW177 ', datetime.date(2016, 8, 5)), ('SW177 ', datetime.date(2016, 8, 6)), ('SW177 ', datetime.date(2016, 8, 7)), ('SW177 ', datetime.date(2016, 8, 8)), ('SW177 ', datetime.date(2016, 8, 9)), ('SW178 ', datetime.date(2016, 8, 1)), ('SW178 ', datetime.date(2016, 8, 2)), ('SW178 ', datetime.date(2016, 8, 3)), ('SW178 ', datetime.date(2016, 8, 4)), ('SW178 ', datetime.date(2016, 8, 5)), ('SW178 ', datetime.date(2016, 8, 6)), ('SW178 ', datetime.date(2016, 8, 7)), ('SW178 ', datetime.date(2016, 8, 8)), ('SW178 ', datetime.date(2016, 8, 9)), ('SW179 ', datetime.date(2016, 8, 1)), ('SW179 ', datetime.date(2016, 8, 2)), ('SW179 ', datetime.date(2016, 8, 3)), ('SW179 ', datetime.date(2016, 8, 4)), ('SW179 ', datetime.date(2016, 8, 5)), ('SW179 ', datetime.date(2016, 8, 6)), ('SW179 ', datetime.date(2016, 8, 7)), ('SW179 ', datetime.date(2016, 8, 8)), ('SW179 ', datetime.date(2016, 8, 9)), ('UA117 ', datetime.date(2016, 8, 2)), ('UA128 ', datetime.date(2016, 8, 2)), ('UA128 ', datetime.date(2016, 8, 4)), ('UA128 ', datetime.date(2016, 8, 6)), ('UA128 ', datetime.date(2016, 8, 7)), ('UA128 ', datetime.date(2016, 8, 8)), ('UA128 ', datetime.date(2016, 8, 9)), ('UA135 ', datetime.date(2016, 8, 2)), ('UA135 ', datetime.date(2016, 8, 4)), ('UA135 ', datetime.date(2016, 8, 7)), ('UA138 ', datetime.date(2016, 8, 1)), ('UA138 ', datetime.date(2016, 8, 6)), ('UA138 ', datetime.date(2016, 8, 8)), ('UA143 ', datetime.date(2016, 8, 1)), ('UA143 ', datetime.date(2016, 8, 2)), ('UA143 ', datetime.date(2016, 8, 3)), ('UA143 ', datetime.date(2016, 8, 4)), ('UA143 ', datetime.date(2016, 8, 5)), ('UA143 ', datetime.date(2016, 8, 6)), ('UA143 ', datetime.date(2016, 8, 7)), ('UA143 ', datetime.date(2016, 8, 8)), ('UA143 ', datetime.date(2016, 8, 9)), ('UA146 ', datetime.date(2016, 8, 1)), ('UA146 ', datetime.date(2016, 8, 2)), ('UA146 ', datetime.date(2016, 8, 3)), ('UA146 ', datetime.date(2016, 8, 4)), ('UA146 ', datetime.date(2016, 8, 5)), ('UA146 ', datetime.date(2016, 8, 6)), ('UA146 ', datetime.date(2016, 8, 7)), ('UA146 ', datetime.date(2016, 8, 8)), ('UA146 ', datetime.date(2016, 8, 9)), ('UA153 ', datetime.date(2016, 8, 1)), ('UA153 ', datetime.date(2016, 8, 2)), ('UA153 ', datetime.date(2016, 8, 3)), ('UA153 ', datetime.date(2016, 8, 4)), ('UA153 ', datetime.date(2016, 8, 5)), ('UA153 ', datetime.date(2016, 8, 6)), ('UA153 ', datetime.date(2016, 8, 7)), ('UA153 ', datetime.date(2016, 8, 8)), ('UA153 ', datetime.date(2016, 8, 9)), ('UA164 ', datetime.date(2016, 8, 1)), ('UA164 ', datetime.date(2016, 8, 2)), ('UA164 ', datetime.date(2016, 8, 3)), ('UA164 ', datetime.date(2016, 8, 4)), ('UA164 ', datetime.date(2016, 8, 5)), ('UA164 ', datetime.date(2016, 8, 6)), ('UA164 ', datetime.date(2016, 8, 7)), ('UA164 ', datetime.date(2016, 8, 8)), ('UA164 ', datetime.date(2016, 8, 9)), ('UA176 ', datetime.date(2016, 8, 1)), ('UA176 ', datetime.date(2016, 8, 2)), ('UA176 ', datetime.date(2016, 8, 3)), ('UA176 ', datetime.date(2016, 8, 4)), ('UA176 ', datetime.date(2016, 8, 5)), ('UA176 ', datetime.date(2016, 8, 6)), ('UA176 ', datetime.date(2016, 8, 7)), ('UA176 ', datetime.date(2016, 8, 8)), ('UA176 ', datetime.date(2016, 8, 9)), ('UA180 ', datetime.date(2016, 8, 1)), ('UA180 ', datetime.date(2016, 8, 2)), ('UA180 ', datetime.date(2016, 8, 3)), ('UA180 ', datetime.date(2016, 8, 4)), ('UA180 ', datetime.date(2016, 8, 5)), ('UA180 ', datetime.date(2016, 8, 6)), ('UA180 ', datetime.date(2016, 8, 7)), ('UA180 ', datetime.date(2016, 8, 8)), ('UA180 ', datetime.date(2016, 8, 9))] - -correctanswers[7] = [('cust0 ', 'Anthony Allen '), ('cust10 ', 'Barbara Harris '), ('cust101 ', 'George Garcia '), ('cust102 ', 'George Gonzalez '), ('cust103 ', 'Helen Adams '), ('cust104 ', 'Helen Allen '), ('cust105 ', 'Helen Edwards '), ('cust106 ', 'Helen Evans '), ('cust108 ', 'Helen Hernandez '), ('cust109 ', 'James Adams '), ('cust11 ', 'Betty Baker '), ('cust111 ', 'James Carter '), ('cust113 ', 'James Green '), ('cust114 ', 'James Hall '), ('cust116 ', 'Jason Carter '), ('cust117 ', 'Jason Clark '), ('cust12 ', 'Betty Brown '), ('cust120 ', 'Jason Hernandez '), ('cust125 ', 'Jeff Green '), ('cust126 ', 'Jeff Harris '), ('cust13 ', 'Betty Carter '), ('cust14 ', 'Betty Edwards '), ('cust16 ', 'Betty Jackson '), ('cust18 ', 'Brian Garcia '), ('cust20 ', 'Brian Jackson '), ('cust21 ', 'Carol Anderson '), ('cust24 ', 'Carol Clark '), ('cust26 ', 'Carol Hall '), ('cust27 ', 'Charles Brown '), ('cust31 ', 'Charles Gonzalez '), ('cust32 ', 'Charles Hall '), ('cust33 ', 'Christopher Davis '), ('cust37 ', 'Daniel Brown '), ('cust39 ', 'Daniel Garcia '), ('cust4 ', 'Anthony Gonzalez '), ('cust41 ', 'Daniel Hall '), ('cust42 ', 'Daniel Harris '), ('cust43 ', 'Daniel Hernandez '), ('cust45 ', 'David Adams '), ('cust46 ', 'David Baker '), ('cust47 ', 'David Campbell '), ('cust48 ', 'David Carter '), ('cust50 ', 'David Hall '), ('cust52 ', 'David Hill '), ('cust54 ', 'Deborah Allen '), ('cust55 ', 'Deborah Anderson '), ('cust56 ', 'Deborah Baker '), ('cust6 ', 'Barbara Collins '), ('cust60 ', 'Donald Adams '), ('cust62 ', 'Donald Campbell '), ('cust63 ', 'Donald Carter '), ('cust65 ', 'Donald Evans '), ('cust66 ', 'Donna Allen '), ('cust68 ', 'Donna Edwards '), ('cust69 ', 'Donna Hall '), ('cust7 ', 'Barbara Davis '), ('cust75 ', 'Dorothy Collins '), ('cust76 ', 'Dorothy Edwards '), ('cust78 ', 'Edward Baker '), ('cust79 ', 'Edward Brown '), ('cust8 ', 'Barbara Gonzalez '), ('cust80 ', 'Edward Carter '), ('cust81 ', 'Edward Davis '), ('cust82 ', 'Edward Edwards '), ('cust84 ', 'Edward Garcia '), ('cust86 ', 'Elizabeth Anderson '), ('cust87 ', 'Elizabeth Baker '), ('cust88 ', 'Elizabeth Collins '), ('cust89 ', 'Elizabeth Gonzalez '), ('cust91 ', 'Elizabeth Hall '), ('cust92 ', 'Elizabeth Harris '), ('cust94 ', 'Elizabeth Hill ')] - -correctanswers[8] = [('Carol Clark ',),('Daniel Harris ',),('Deborah Adams ',),('Donald Adams ',),('George Collins ',),('Helen Adams ',),('Jason Carter ',)] - -correctanswers[9] = [('Brian Jackson ',),('Deborah Allen ',),('Donald Edwards ',),('Edward Edwards ',),('Edward Garcia ',),('Elizabeth Jackson ',),('Jeff Adams ',)] - -correctanswers[10] = [('OAK', 1),('DFW', 2),('FLL', 3),('ATL', 4),('IAD', 4),('JFK', 6),('ORD', 6),('BOS', 8),('DEN', 8),('LAX', 10)] - diff --git a/project1/queries.py b/project1/queries.py deleted file mode 100644 index 8b1d3e7..0000000 --- a/project1/queries.py +++ /dev/null @@ -1,87 +0,0 @@ -queries = ["" for i in range(0, 11)] - -### 0. List all airport codes and their cities. Order by the city name in the increasing order. -### Output column order: airportid, city - -queries[0] = """ -select airportid, city -from airports -order by city; -""" - -### 1. Write a query to find the names of the customers whose names are at least 15 characters long, and the second letter in the name is "l". -### Order by name. -queries[1] = """ -select 0; -""" - - -### 2. Write a query to find any customers who flew on their birthday. Hint: Use "extract" function that operates on the dates. -### Order output by Customer Name. -### Output columns: all columns from customers -queries[2] = """ -select 0; -""" - -### 3. Write a query to generate a list: (source_city, source_airport_code, dest_city, dest_airport_code, number_of_flights) for all source-dest pairs with at least 3 flights. -### Order first by number_of_flights in decreasing order, then source_city in the increasing order, and then dest_city in the increasing order. -### Note: You must generate the source and destination cities along with the airport codes. -queries[3] = """ -select 0; -""" - -### 4. Find the name of the airline with the maximum number of customers registered as frequent fliers. -### Output only the name of the airline. If multiple answers, order by name. -queries[4] = """ -select 0; -""" - -### 5. For all flights from OAK to IAD, list the flight id, airline name, and the -### duration in hours and minutes. So the output will have 4 fields: flightid, airline name, -### hours, minutes. Order by flightid. -queries[5] = """ -select 0; -""" - -### 6. Write a query to find empty flights (flight, flight date) on any date -### which someone flew. Assume that if anyone flew on a given date, all -### flights took off as scheduled, with or without passengers. Order by flight -### id in increasing order, and then by date in increasing order. -queries[6] = """ -select 0; -""" - -### 7. Write a query to generate a list of customers who don't list Southwest as their frequent flier airline, but -### actually flew the most (by number of flights) on that airline. -### Output columns: customerid, customer_name -### Order by: customerid -queries[7] = """ -select 0; -""" - -# fall17 -### 8. Write a query to generate a list of customers where the interval between first and last flight is 5 days. -### Order by the customer name. -queries[8] = """ -select 0; -""" - - -# fall17 -### 9. Name of customer whose max interval between any two consecutive flights is 4 days. -### The output should be simply a list of names -### Order by the customer name. -queries[9] = """ -select 0; -""" - -### 10. Write a query that outputs a list: (AirportID, Airport-rank), where we rank the airports -### by the total number of flights that depart that airport. So the airport with the maximum number -### of flights departing gets rank 1, and so on. If two airports tie, then they should -### both get the same rank, and the next rank should be skipped. -### Order the output in increasing order by rank, and then airport ID. - -queries[10] = """ -select 0; -""" - diff --git a/project1/small.sql b/project1/small.sql deleted file mode 100644 index 6b7d80c..0000000 --- a/project1/small.sql +++ /dev/null @@ -1,1037 +0,0 @@ -drop table flewon; -drop table flights; -drop table customers; -drop table airlines; -drop table airports; - -create table airports (airportid char(3) primary key, city char(20), name char(100), total2011 int, total2012 int); -insert into airports(name, city, airportid, total2011, total2012) values('Metropolitan Oakland International','Oakland','OAK',10040864,9266570); -insert into airports(name, city, airportid, total2011, total2012) values('Fort Lauderdale Hollywood International','Fort Lauderdale','FLL',23569103,23349835); -insert into airports(name, city, airportid, total2011, total2012) values('General Edward Lawrence Logan International','Boston','BOS',29349759,28932808); -insert into airports(name, city, airportid, total2011, total2012) values('Washington Dulles International','Washington','IAD',22408105,23056291); -insert into airports(name, city, airportid, total2011, total2012) values('Hartsfield Jackson Atlanta International','Atlanta','ATL',95513828,92389023); -insert into airports(name, city, airportid, total2011, total2012) values('Chicago O''Hare International','Chicago','ORD',66633503,66701241); -insert into airports(name, city, airportid, total2011, total2012) values('Los Angeles International','Los Angeles','LAX',63688121,61862052); -insert into airports(name, city, airportid, total2011, total2012) values('Dallas Fort Worth International','Dallas-Fort Worth','DFW',58621369,57832495); -insert into airports(name, city, airportid, total2011, total2012) values('Denver International','Denver','DEN',53156278,52849132); -insert into airports(name, city, airportid, total2011, total2012) values('John F Kennedy International','New York','JFK',49291765,47644060); - - - - -create table airlines (airlineid char(2) primary key, name char(20), hub char(3) references airports(airportid)); -create table customers (customerid char(10) primary key, name char(30), birthdate date, frequentflieron char(2) references airlines(airlineid)); -create table flights (flightid char(6) primary key, source char(3) references airports(airportid), dest char(3) references airports(airportid), airlineid char(2) references airlines(airlineid), local_departing_time time, local_arrival_time time); -create table flewon (flightid char(6) references flights(flightid), customerid char(10) references customers, flightdate date); -insert into airlines values ('SW', 'Southwest Airlines', 'OAK'); -insert into airlines values ('AA', 'American Airlines', 'DFW'); -insert into airlines values ('DL', 'Delta Airlines', 'ATL'); -insert into airlines values ('UA', 'United Airlines', 'ORD'); -insert into customers values ('cust0', 'Anthony Allen', to_date('1985-05-14', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust1', 'Anthony Edwards', to_date('1986-10-18', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust2', 'Anthony Evans', to_date('1987-02-08', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust3', 'Anthony Garcia', to_date('1994-08-23', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust4', 'Anthony Gonzalez', to_date('1977-10-06', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust5', 'Anthony Harris', to_date('1991-03-15', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust6', 'Barbara Collins', to_date('1983-09-09', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust7', 'Barbara Davis', to_date('1982-03-29', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust8', 'Barbara Gonzalez', to_date('1976-01-10', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust9', 'Barbara Hall', to_date('1989-08-26', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust10', 'Barbara Harris', to_date('1991-09-02', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust11', 'Betty Baker', to_date('1998-03-03', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust12', 'Betty Brown', to_date('1975-08-14', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust13', 'Betty Carter', to_date('1989-04-02', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust14', 'Betty Edwards', to_date('1969-07-11', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust15', 'Betty Gonzalez', to_date('1993-12-28', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust16', 'Betty Jackson', to_date('1977-07-11', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust17', 'Brian Evans', to_date('1980-05-07', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust18', 'Brian Garcia', to_date('1998-04-10', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust19', 'Brian Gonzalez', to_date('1971-05-16', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust20', 'Brian Jackson', to_date('1975-01-06', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust21', 'Carol Anderson', to_date('1971-09-21', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust22', 'Carol Baker', to_date('1990-08-29', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust23', 'Carol Campbell', to_date('1998-02-03', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust24', 'Carol Clark', to_date('1984-08-24', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust25', 'Carol Evans', to_date('1976-05-29', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust26', 'Carol Hall', to_date('1969-10-29', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust27', 'Charles Brown', to_date('1973-10-11', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust28', 'Charles Collins', to_date('1974-08-28', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust29', 'Charles Evans', to_date('1997-12-12', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust30', 'Charles Garcia', to_date('1994-10-03', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust31', 'Charles Gonzalez', to_date('1978-05-18', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust32', 'Charles Hall', to_date('1970-11-16', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust33', 'Christopher Davis', to_date('1984-05-13', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust34', 'Christopher Hernandez', to_date('1986-06-21', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust35', 'Christopher Hill', to_date('1975-04-04', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust36', 'Daniel Baker', to_date('1998-05-27', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust37', 'Daniel Brown', to_date('1994-07-13', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust38', 'Daniel Edwards', to_date('1986-05-19', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust39', 'Daniel Garcia', to_date('1986-09-13', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust40', 'Daniel Green', to_date('1974-05-01', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust41', 'Daniel Hall', to_date('1989-08-04', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust42', 'Daniel Harris', to_date('1976-06-14', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust43', 'Daniel Hernandez', to_date('1978-06-03', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust44', 'Daniel Jackson', to_date('1974-03-23', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust45', 'David Adams', to_date('1988-10-19', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust46', 'David Baker', to_date('1987-06-26', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust47', 'David Campbell', to_date('1986-03-22', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust48', 'David Carter', to_date('1983-05-01', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust49', 'David Garcia', to_date('1987-06-06', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust50', 'David Hall', to_date('1969-12-02', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust51', 'David Hernandez', to_date('1976-04-06', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust52', 'David Hill', to_date('1989-11-23', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust53', 'Deborah Adams', to_date('1971-05-16', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust54', 'Deborah Allen', to_date('1988-08-17', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust55', 'Deborah Anderson', to_date('1987-02-02', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust56', 'Deborah Baker', to_date('1996-04-29', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust57', 'Deborah Collins', to_date('1980-09-25', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust58', 'Deborah Edwards', to_date('1991-03-10', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust59', 'Deborah Hill', to_date('1969-11-09', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust60', 'Donald Adams', to_date('1981-01-17', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust61', 'Donald Allen', to_date('1972-06-09', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust62', 'Donald Campbell', to_date('1995-11-30', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust63', 'Donald Carter', to_date('1979-11-25', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust64', 'Donald Edwards', to_date('1971-06-04', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust65', 'Donald Evans', to_date('1988-10-04', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust66', 'Donna Allen', to_date('1994-03-18', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust67', 'Donna Brown', to_date('1971-03-09', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust68', 'Donna Edwards', to_date('1975-11-04', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust69', 'Donna Hall', to_date('1977-01-15', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust70', 'Donna Hill', to_date('1978-09-04', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust71', 'Dorothy Allen', to_date('1981-09-01', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust72', 'Dorothy Anderson', to_date('1980-03-21', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust73', 'Dorothy Campbell', to_date('1992-06-18', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust74', 'Dorothy Carter', to_date('1976-03-14', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust75', 'Dorothy Collins', to_date('1976-02-13', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust76', 'Dorothy Edwards', to_date('1981-11-24', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust77', 'Dorothy Harris', to_date('1994-02-02', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust78', 'Edward Baker', to_date('1972-11-10', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust79', 'Edward Brown', to_date('1969-07-11', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust80', 'Edward Carter', to_date('1981-06-05', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust81', 'Edward Davis', to_date('1981-02-12', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust82', 'Edward Edwards', to_date('1984-07-15', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust83', 'Edward Evans', to_date('1982-06-22', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust84', 'Edward Garcia', to_date('1980-02-07', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust85', 'Edward Harris', to_date('1994-05-08', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust86', 'Elizabeth Anderson', to_date('1995-03-28', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust87', 'Elizabeth Baker', to_date('1986-11-23', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust88', 'Elizabeth Collins', to_date('1978-09-16', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust89', 'Elizabeth Gonzalez', to_date('1995-04-09', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust90', 'Elizabeth Green', to_date('1972-01-11', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust91', 'Elizabeth Hall', to_date('1978-03-16', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust92', 'Elizabeth Harris', to_date('1980-05-26', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust93', 'Elizabeth Hernandez', to_date('1972-03-21', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust94', 'Elizabeth Hill', to_date('1993-05-09', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust95', 'Elizabeth Jackson', to_date('1987-06-18', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust96', 'George Anderson', to_date('1978-02-23', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust97', 'George Brown', to_date('1971-03-26', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust98', 'George Collins', to_date('1995-03-07', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust99', 'George Davis', to_date('1974-09-07', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust100', 'George Evans', to_date('1974-08-25', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust101', 'George Garcia', to_date('1996-05-10', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust102', 'George Gonzalez', to_date('1996-01-30', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust103', 'Helen Adams', to_date('1971-07-31', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust104', 'Helen Allen', to_date('1970-03-13', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust105', 'Helen Edwards', to_date('1971-08-21', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust106', 'Helen Evans', to_date('1991-01-04', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust107', 'Helen Harris', to_date('1980-02-21', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust108', 'Helen Hernandez', to_date('1981-05-14', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust109', 'James Adams', to_date('1994-05-22', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust110', 'James Brown', to_date('1970-02-08', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust111', 'James Carter', to_date('1980-05-13', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust112', 'James Evans', to_date('1981-01-19', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust113', 'James Green', to_date('1977-09-16', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust114', 'James Hall', to_date('1986-10-13', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust115', 'James Hill', to_date('1988-03-19', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust116', 'Jason Carter', to_date('1987-08-04', 'yyyy-mm-dd'), 'UA'); -insert into customers values ('cust117', 'Jason Clark', to_date('1976-02-25', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust118', 'Jason Hall', to_date('1996-12-13', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust119', 'Jason Harris', to_date('1992-07-04', 'yyyy-mm-dd'), 'SW'); -insert into customers values ('cust120', 'Jason Hernandez', to_date('1998-08-23', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust121', 'Jeff Adams', to_date('1977-08-27', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust122', 'Jeff Anderson', to_date('1978-03-25', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust123', 'Jeff Baker', to_date('1996-08-04', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust124', 'Jeff Clark', to_date('1982-08-16', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust125', 'Jeff Green', to_date('1991-01-06', 'yyyy-mm-dd'), 'AA'); -insert into customers values ('cust126', 'Jeff Harris', to_date('1976-01-19', 'yyyy-mm-dd'), 'DL'); -insert into customers values ('cust127', 'Jeff Hill', to_date('1978-07-22', 'yyyy-mm-dd'), 'SW'); -insert into flights values('UA101', 'BOS', 'FLL', 'UA', time '00:00' + interval '60 minutes', time '00:00' + interval '189 minutes'); -insert into flights values('UA180', 'FLL', 'BOS', 'UA', time '00:00' + interval '236 minutes', time '00:00' + interval '365 minutes'); -insert into flights values('SW102', 'OAK', 'DFW', 'SW', time '00:00' + interval '484 minutes', time '00:00' + interval '706 minutes'); -insert into flights values('SW179', 'DFW', 'OAK', 'SW', time '00:00' + interval '742 minutes', time '00:00' + interval '964 minutes'); -insert into flights values('SW103', 'OAK', 'FLL', 'SW', time '00:00' + interval '709 minutes', time '00:00' + interval '983 minutes'); -insert into flights values('SW178', 'FLL', 'OAK', 'SW', time '00:00' + interval '996 minutes', time '00:00' + interval '1270 minutes'); -insert into flights values('SW104', 'OAK', 'ORD', 'SW', time '00:00' + interval '608 minutes', time '00:00' + interval '843 minutes'); -insert into flights values('SW177', 'ORD', 'OAK', 'SW', time '00:00' + interval '864 minutes', time '00:00' + interval '1099 minutes'); -insert into flights values('UA105', 'ORD', 'LAX', 'UA', time '00:00' + interval '185 minutes', time '00:00' + interval '449 minutes'); -insert into flights values('UA176', 'LAX', 'ORD', 'UA', time '00:00' + interval '465 minutes', time '00:00' + interval '729 minutes'); -insert into flights values('SW106', 'ATL', 'FLL', 'SW', time '00:00' + interval '390 minutes', time '00:00' + interval '538 minutes'); -insert into flights values('SW175', 'FLL', 'ATL', 'SW', time '00:00' + interval '546 minutes', time '00:00' + interval '694 minutes'); -insert into flights values('SW107', 'OAK', 'DFW', 'SW', time '00:00' + interval '285 minutes', time '00:00' + interval '529 minutes'); -insert into flights values('SW174', 'DFW', 'OAK', 'SW', time '00:00' + interval '561 minutes', time '00:00' + interval '805 minutes'); -insert into flights values('SW108', 'JFK', 'BOS', 'SW', time '00:00' + interval '119 minutes', time '00:00' + interval '211 minutes'); -insert into flights values('SW173', 'BOS', 'JFK', 'SW', time '00:00' + interval '271 minutes', time '00:00' + interval '363 minutes'); -insert into flights values('AA109', 'DFW', 'JFK', 'AA', time '00:00' + interval '454 minutes', time '00:00' + interval '536 minutes'); -insert into flights values('AA172', 'JFK', 'DFW', 'AA', time '00:00' + interval '563 minutes', time '00:00' + interval '645 minutes'); -insert into flights values('SW110', 'DFW', 'IAD', 'SW', time '00:00' + interval '363 minutes', time '00:00' + interval '493 minutes'); -insert into flights values('SW171', 'IAD', 'DFW', 'SW', time '00:00' + interval '557 minutes', time '00:00' + interval '687 minutes'); -insert into flights values('SW111', 'OAK', 'JFK', 'SW', time '00:00' + interval '734 minutes', time '00:00' + interval '1024 minutes'); -insert into flights values('SW170', 'JFK', 'OAK', 'SW', time '00:00' + interval '1037 minutes', time '00:00' + interval '1327 minutes'); -insert into flights values('SW112', 'OAK', 'DFW', 'SW', time '00:00' + interval '576 minutes', time '00:00' + interval '698 minutes'); -insert into flights values('SW169', 'DFW', 'OAK', 'SW', time '00:00' + interval '796 minutes', time '00:00' + interval '918 minutes'); -insert into flights values('AA113', 'DFW', 'FLL', 'AA', time '00:00' + interval '560 minutes', time '00:00' + interval '769 minutes'); -insert into flights values('AA168', 'FLL', 'DFW', 'AA', time '00:00' + interval '835 minutes', time '00:00' + interval '1044 minutes'); -insert into flights values('AA114', 'DFW', 'IAD', 'AA', time '00:00' + interval '423 minutes', time '00:00' + interval '456 minutes'); -insert into flights values('AA167', 'IAD', 'DFW', 'AA', time '00:00' + interval '457 minutes', time '00:00' + interval '490 minutes'); -insert into flights values('AA115', 'JFK', 'OAK', 'AA', time '00:00' + interval '95 minutes', time '00:00' + interval '233 minutes'); -insert into flights values('AA166', 'OAK', 'JFK', 'AA', time '00:00' + interval '329 minutes', time '00:00' + interval '467 minutes'); -insert into flights values('SW116', 'ORD', 'OAK', 'SW', time '00:00' + interval '933 minutes', time '00:00' + interval '1111 minutes'); -insert into flights values('SW165', 'OAK', 'ORD', 'SW', time '00:00' + interval '1157 minutes', time '00:00' + interval '1335 minutes'); -insert into flights values('UA117', 'ATL', 'FLL', 'UA', time '00:00' + interval '499 minutes', time '00:00' + interval '761 minutes'); -insert into flights values('UA164', 'FLL', 'ATL', 'UA', time '00:00' + interval '848 minutes', time '00:00' + interval '1110 minutes'); -insert into flights values('SW118', 'OAK', 'IAD', 'SW', time '00:00' + interval '210 minutes', time '00:00' + interval '337 minutes'); -insert into flights values('SW163', 'IAD', 'OAK', 'SW', time '00:00' + interval '391 minutes', time '00:00' + interval '518 minutes'); -insert into flights values('DL119', 'LAX', 'OAK', 'DL', time '00:00' + interval '380 minutes', time '00:00' + interval '642 minutes'); -insert into flights values('DL162', 'OAK', 'LAX', 'DL', time '00:00' + interval '728 minutes', time '00:00' + interval '990 minutes'); -insert into flights values('SW120', 'OAK', 'JFK', 'SW', time '00:00' + interval '123 minutes', time '00:00' + interval '182 minutes'); -insert into flights values('SW161', 'JFK', 'OAK', 'SW', time '00:00' + interval '247 minutes', time '00:00' + interval '306 minutes'); -insert into flights values('DL121', 'DFW', 'ORD', 'DL', time '00:00' + interval '690 minutes', time '00:00' + interval '869 minutes'); -insert into flights values('DL160', 'ORD', 'DFW', 'DL', time '00:00' + interval '895 minutes', time '00:00' + interval '1074 minutes'); -insert into flights values('SW122', 'OAK', 'DEN', 'SW', time '00:00' + interval '177 minutes', time '00:00' + interval '387 minutes'); -insert into flights values('SW159', 'DEN', 'OAK', 'SW', time '00:00' + interval '472 minutes', time '00:00' + interval '682 minutes'); -insert into flights values('SW123', 'BOS', 'OAK', 'SW', time '00:00' + interval '202 minutes', time '00:00' + interval '322 minutes'); -insert into flights values('SW158', 'OAK', 'BOS', 'SW', time '00:00' + interval '398 minutes', time '00:00' + interval '518 minutes'); -insert into flights values('SW124', 'FLL', 'IAD', 'SW', time '00:00' + interval '607 minutes', time '00:00' + interval '810 minutes'); -insert into flights values('SW157', 'IAD', 'FLL', 'SW', time '00:00' + interval '832 minutes', time '00:00' + interval '1035 minutes'); -insert into flights values('SW125', 'DFW', 'JFK', 'SW', time '00:00' + interval '684 minutes', time '00:00' + interval '921 minutes'); -insert into flights values('SW156', 'JFK', 'DFW', 'SW', time '00:00' + interval '991 minutes', time '00:00' + interval '1228 minutes'); -insert into flights values('SW126', 'ATL', 'DEN', 'SW', time '00:00' + interval '777 minutes', time '00:00' + interval '949 minutes'); -insert into flights values('SW155', 'DEN', 'ATL', 'SW', time '00:00' + interval '1029 minutes', time '00:00' + interval '1201 minutes'); -insert into flights values('AA127', 'DFW', 'FLL', 'AA', time '00:00' + interval '834 minutes', time '00:00' + interval '893 minutes'); -insert into flights values('AA154', 'FLL', 'DFW', 'AA', time '00:00' + interval '930 minutes', time '00:00' + interval '989 minutes'); -insert into flights values('UA128', 'IAD', 'FLL', 'UA', time '00:00' + interval '460 minutes', time '00:00' + interval '731 minutes'); -insert into flights values('UA153', 'FLL', 'IAD', 'UA', time '00:00' + interval '786 minutes', time '00:00' + interval '1057 minutes'); -insert into flights values('SW129', 'OAK', 'DFW', 'SW', time '00:00' + interval '199 minutes', time '00:00' + interval '455 minutes'); -insert into flights values('SW152', 'DFW', 'OAK', 'SW', time '00:00' + interval '464 minutes', time '00:00' + interval '720 minutes'); -insert into flights values('AA130', 'LAX', 'ATL', 'AA', time '00:00' + interval '566 minutes', time '00:00' + interval '772 minutes'); -insert into flights values('AA151', 'ATL', 'LAX', 'AA', time '00:00' + interval '866 minutes', time '00:00' + interval '1072 minutes'); -insert into flights values('AA131', 'DFW', 'OAK', 'AA', time '00:00' + interval '24 minutes', time '00:00' + interval '199 minutes'); -insert into flights values('AA150', 'OAK', 'DFW', 'AA', time '00:00' + interval '261 minutes', time '00:00' + interval '436 minutes'); -insert into flights values('SW132', 'BOS', 'DFW', 'SW', time '00:00' + interval '944 minutes', time '00:00' + interval '1214 minutes'); -insert into flights values('SW149', 'DFW', 'BOS', 'SW', time '00:00' + interval '243 minutes', time '00:00' + interval '513 minutes'); -insert into flights values('SW133', 'OAK', 'ORD', 'SW', time '00:00' + interval '136 minutes', time '00:00' + interval '336 minutes'); -insert into flights values('SW148', 'ORD', 'OAK', 'SW', time '00:00' + interval '453 minutes', time '00:00' + interval '653 minutes'); -insert into flights values('DL134', 'ATL', 'DEN', 'DL', time '00:00' + interval '834 minutes', time '00:00' + interval '1033 minutes'); -insert into flights values('DL147', 'DEN', 'ATL', 'DL', time '00:00' + interval '1130 minutes', time '00:00' + interval '1329 minutes'); -insert into flights values('UA135', 'ORD', 'DEN', 'UA', time '00:00' + interval '749 minutes', time '00:00' + interval '783 minutes'); -insert into flights values('UA146', 'DEN', 'ORD', 'UA', time '00:00' + interval '829 minutes', time '00:00' + interval '863 minutes'); -insert into flights values('SW136', 'OAK', 'IAD', 'SW', time '00:00' + interval '522 minutes', time '00:00' + interval '753 minutes'); -insert into flights values('SW145', 'IAD', 'OAK', 'SW', time '00:00' + interval '787 minutes', time '00:00' + interval '1018 minutes'); -insert into flights values('SW137', 'OAK', 'FLL', 'SW', time '00:00' + interval '261 minutes', time '00:00' + interval '409 minutes'); -insert into flights values('SW144', 'FLL', 'OAK', 'SW', time '00:00' + interval '453 minutes', time '00:00' + interval '601 minutes'); -insert into flights values('UA138', 'BOS', 'IAD', 'UA', time '00:00' + interval '828 minutes', time '00:00' + interval '1071 minutes'); -insert into flights values('UA143', 'IAD', 'BOS', 'UA', time '00:00' + interval '1104 minutes', time '00:00' + interval '1347 minutes'); -insert into flights values('SW139', 'OAK', 'ATL', 'SW', time '00:00' + interval '738 minutes', time '00:00' + interval '989 minutes'); -insert into flights values('SW142', 'ATL', 'OAK', 'SW', time '00:00' + interval '1065 minutes', time '00:00' + interval '1316 minutes'); -insert into flights values('DL140', 'ATL', 'DEN', 'DL', time '00:00' + interval '717 minutes', time '00:00' + interval '997 minutes'); -insert into flights values('DL141', 'DEN', 'ATL', 'DL', time '00:00' + interval '1059 minutes', time '00:00' + interval '1339 minutes'); -insert into flewon values ('DL119', 'cust59', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust116', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust19', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust11', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust68', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust64', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust52', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust62', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust20', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust97', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW137', 'cust98', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust71', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust30', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust7', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust44', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust33', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust65', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust34', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust55', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust1', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust26', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust31', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust3', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW137', 'cust17', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust7', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust50', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust44', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW132', 'cust8', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust79', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust73', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust29', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust22', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust2', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW132', 'cust110', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust37', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust75', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust17', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust90', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust21', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust114', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust26', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust32', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW125', 'cust73', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust0', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust37', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA135', 'cust0', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW129', 'cust23', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust87', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust2', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust101', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust77', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust0', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust115', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust18', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust3', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust107', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust90', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust70', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust11', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust104', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust0', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW132', 'cust57', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust81', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust40', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust19', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust57', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW129', 'cust118', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust21', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust0', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust113', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust10', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('DL121', 'cust40', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust25', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust22', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW122', 'cust13', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW120', 'cust116', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust78', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust111', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW129', 'cust12', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust26', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('DL134', 'cust115', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust36', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust13', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW124', 'cust119', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust79', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust60', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust78', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust127', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW132', 'cust32', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('AA127', 'cust49', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust14', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW112', 'cust0', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust106', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust62', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust23', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust32', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust124', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW122', 'cust93', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA138', 'cust0', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust45', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust5', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust30', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust9', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust93', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust31', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust14', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW112', 'cust39', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust44', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust113', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust83', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust118', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust71', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust72', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust40', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust112', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust87', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW111', 'cust45', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust2', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW111', 'cust120', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust98', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW125', 'cust111', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust26', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust48', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust88', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust9', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust56', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('DL140', 'cust89', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust0', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('DL140', 'cust5', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust28', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA130', 'cust79', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust83', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust2', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust102', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust98', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust86', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust30', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust1', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust6', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust6', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust60', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust36', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW112', 'cust12', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust100', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust69', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust15', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust49', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW120', 'cust22', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA135', 'cust13', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust6', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('DL134', 'cust21', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('AA130', 'cust24', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust103', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust68', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW111', 'cust65', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW112', 'cust56', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust9', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust96', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust111', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust35', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust104', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust5', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust26', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust39', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW125', 'cust36', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust67', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust57', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust71', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW137', 'cust93', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust16', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust10', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust32', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust108', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust6', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW112', 'cust112', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust18', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust18', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust91', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust19', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust34', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust9', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust121', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust7', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust5', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('DL134', 'cust8', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust2', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust1', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust3', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust56', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust1', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust122', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust29', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW129', 'cust100', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust9', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust14', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust1', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust101', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust17', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust125', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust71', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust18', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust1', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust43', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust0', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust17', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust37', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust3', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust79', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust57', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust82', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust106', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust83', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust12', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust29', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust39', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA135', 'cust3', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust15', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW120', 'cust48', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust80', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust65', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust23', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust56', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust99', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust66', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust62', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('AA127', 'cust30', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust71', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust58', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA138', 'cust118', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust118', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust126', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW125', 'cust31', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust106', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust45', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust45', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust105', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust3', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW137', 'cust37', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust62', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW111', 'cust119', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW129', 'cust22', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust13', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust121', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust33', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust58', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust75', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust40', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW120', 'cust69', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW124', 'cust84', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust2', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust100', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW136', 'cust6', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust34', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust6', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust17', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust81', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust109', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust36', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust45', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust54', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust61', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust11', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust120', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust27', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust47', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust40', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA135', 'cust19', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust52', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust58', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust43', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW132', 'cust4', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('DL121', 'cust108', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA115', 'cust16', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust52', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust57', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust84', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust114', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust47', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust105', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust2', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust52', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust44', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA135', 'cust2', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust45', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust61', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust89', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust41', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust127', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust85', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust9', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust4', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust19', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust5', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust49', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA128', 'cust5', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust45', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust107', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust69', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust47', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust22', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust75', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust4', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust121', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust6', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust79', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA135', 'cust57', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust53', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('DL121', 'cust58', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust106', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust7', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW124', 'cust20', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('AA127', 'cust51', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust10', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust6', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust15', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust95', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust33', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust106', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust19', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust59', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust18', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust71', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust78', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust5', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust17', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust111', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust33', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust88', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust29', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('DL134', 'cust94', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust7', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust30', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust3', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust10', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust10', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA130', 'cust77', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust110', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust99', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust28', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust84', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust15', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust94', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust98', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust23', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust55', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust60', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust78', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust101', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust23', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust107', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust45', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust85', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust115', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA130', 'cust86', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('DL121', 'cust73', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust81', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust69', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust48', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust63', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust74', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust53', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA135', 'cust23', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('AA115', 'cust43', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust8', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust20', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust112', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust44', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW120', 'cust58', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust115', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust90', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust5', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('DL140', 'cust46', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust55', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust42', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust105', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust94', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust97', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust97', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust51', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust61', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW137', 'cust36', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW120', 'cust20', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW112', 'cust43', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust13', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust84', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW133', 'cust28', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust105', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust103', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust61', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('DL121', 'cust22', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust51', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust16', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust60', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust66', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust31', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust33', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust7', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW124', 'cust108', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW136', 'cust88', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust44', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust2', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust11', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust14', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW124', 'cust88', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust49', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW125', 'cust66', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust4', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW111', 'cust48', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust25', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust101', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust26', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW129', 'cust99', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust10', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust22', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust92', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust17', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust14', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust54', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust20', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust1', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust4', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust4', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW129', 'cust80', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust29', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust17', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust24', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust8', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust13', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust54', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust12', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW112', 'cust66', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust8', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust56', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW125', 'cust63', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW124', 'cust9', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust91', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust13', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust30', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust19', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA138', 'cust95', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust113', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW112', 'cust82', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust41', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust76', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust29', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust109', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust41', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW133', 'cust55', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust19', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust103', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust123', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW122', 'cust19', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA138', 'cust51', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('AA115', 'cust14', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA128', 'cust33', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust55', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW132', 'cust50', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust12', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust80', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust8', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust70', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust108', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('DL140', 'cust42', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust21', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust51', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust116', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust55', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust79', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('AA115', 'cust72', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust97', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust112', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA127', 'cust109', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW111', 'cust16', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust11', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust59', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust92', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust81', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust81', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW124', 'cust16', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust34', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust35', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust25', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust43', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA138', 'cust5', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW137', 'cust87', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA138', 'cust31', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust117', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW129', 'cust83', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust68', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust77', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust68', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust123', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW133', 'cust65', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust27', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust40', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust76', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust120', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust47', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust15', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust83', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust37', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW132', 'cust39', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust90', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust68', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust98', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust124', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust70', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust109', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust50', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust125', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust61', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust56', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust27', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust101', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust89', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust15', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust82', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust46', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('DL140', 'cust80', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW132', 'cust14', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust60', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW111', 'cust48', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust1', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW111', 'cust125', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust43', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust14', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW137', 'cust53', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust66', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust101', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('AA115', 'cust7', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust24', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust76', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW125', 'cust16', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust92', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust21', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust16', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust104', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust61', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust52', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust30', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust59', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA130', 'cust38', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust89', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust72', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('DL140', 'cust102', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('AA115', 'cust97', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust11', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust112', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust22', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust125', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW112', 'cust16', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust33', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust33', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust66', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust79', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust122', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust116', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust39', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('AA114', 'cust88', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW125', 'cust78', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust56', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust1', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust85', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust39', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust42', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW120', 'cust50', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW124', 'cust55', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust29', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust97', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('DL121', 'cust21', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust21', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust72', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust29', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust17', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust89', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust87', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust70', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust68', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust18', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust78', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust36', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust36', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust8', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust95', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust117', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust110', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust88', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust73', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust70', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust46', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust34', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust14', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust82', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust119', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('DL134', 'cust96', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust124', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA130', 'cust93', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust43', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust40', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA138', 'cust11', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust123', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust38', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust48', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust18', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust41', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust29', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust92', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW120', 'cust100', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust77', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust9', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW136', 'cust12', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust119', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust103', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust122', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW111', 'cust99', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust48', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust52', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust28', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust62', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust125', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust4', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('DL121', 'cust44', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust60', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust82', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust49', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust58', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust109', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('AA127', 'cust27', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust88', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust51', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust59', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust24', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust54', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust25', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('DL134', 'cust67', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust77', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust123', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust75', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust103', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust120', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust123', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust115', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust7', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust37', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW137', 'cust105', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust118', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust28', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('DL140', 'cust66', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust101', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust113', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust83', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust41', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust67', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust69', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust35', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust65', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA135', 'cust25', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust86', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust64', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust74', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust13', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('AA131', 'cust82', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust76', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust41', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust110', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust25', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust94', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('DL121', 'cust43', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust27', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust8', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust3', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust65', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust58', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust25', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW125', 'cust126', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW122', 'cust123', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust37', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('DL121', 'cust91', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust25', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust10', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust96', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust102', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust35', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA138', 'cust4', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust40', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust21', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust106', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust15', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust32', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust120', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust107', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust6', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust86', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust86', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('AA109', 'cust49', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust9', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust45', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust102', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust73', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust122', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust56', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust94', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust112', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust15', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust101', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW129', 'cust42', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust79', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust72', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust12', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW136', 'cust86', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('DL140', 'cust47', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust26', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('DL121', 'cust47', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW124', 'cust88', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust64', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust59', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust102', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust30', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust111', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust126', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust99', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust96', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust25', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW125', 'cust7', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust106', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust69', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust74', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW116', 'cust55', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW124', 'cust28', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW112', 'cust64', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('DL134', 'cust46', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust38', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust46', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('AA127', 'cust30', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust54', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust52', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust35', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW111', 'cust83', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA128', 'cust100', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust67', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust20', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('AA130', 'cust102', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust113', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust81', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW137', 'cust39', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust104', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust71', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust105', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust61', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust100', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust122', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust27', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust66', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust110', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW102', 'cust32', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust127', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust85', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust90', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust34', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust36', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('SW106', 'cust50', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust74', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('UA128', 'cust122', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust76', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust114', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust104', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust107', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust99', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('AA115', 'cust41', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust32', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW111', 'cust31', to_date('2016-08-06', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust77', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA117', 'cust61', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust11', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW103', 'cust10', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('AA113', 'cust76', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW132', 'cust114', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust12', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW108', 'cust15', to_date('2016-08-09', 'YYYY-MM-DD')); -insert into flewon values ('SW110', 'cust108', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW118', 'cust112', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust104', to_date('2016-08-03', 'YYYY-MM-DD')); -insert into flewon values ('SW123', 'cust24', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('SW126', 'cust42', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust50', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust4', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust78', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('AA127', 'cust77', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust10', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA105', 'cust28', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('SW107', 'cust114', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust50', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust108', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust8', to_date('2016-08-04', 'YYYY-MM-DD')); -insert into flewon values ('SW104', 'cust38', to_date('2016-08-01', 'YYYY-MM-DD')); -insert into flewon values ('DL119', 'cust33', to_date('2016-08-02', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust53', to_date('2016-08-07', 'YYYY-MM-DD')); -insert into flewon values ('SW122', 'cust92', to_date('2016-08-05', 'YYYY-MM-DD')); -insert into flewon values ('UA135', 'cust67', to_date('2016-08-08', 'YYYY-MM-DD')); -insert into flewon values ('UA101', 'cust26', to_date('2016-08-04', 'YYYY-MM-DD')); diff --git a/project1/smallRelationsInsertFile.sql b/project1/smallRelationsInsertFile.sql deleted file mode 100644 index 7792ac2..0000000 --- a/project1/smallRelationsInsertFile.sql +++ /dev/null @@ -1,149 +0,0 @@ -delete from prereq; -delete from time_slot; -delete from advisor; -delete from takes; -delete from student; -delete from teaches; -delete from section; -delete from instructor; -delete from course; -delete from department; -delete from classroom; -insert into classroom values ('Packard', '101', '500'); -insert into classroom values ('Painter', '514', '10'); -insert into classroom values ('Taylor', '3128', '70'); -insert into classroom values ('Watson', '100', '30'); -insert into classroom values ('Watson', '120', '50'); -insert into department values ('Biology', 'Watson', '90000'); -insert into department values ('Comp. Sci.', 'Taylor', '100000'); -insert into department values ('Elec. Eng.', 'Taylor', '85000'); -insert into department values ('Finance', 'Painter', '120000'); -insert into department values ('History', 'Painter', '50000'); -insert into department values ('Music', 'Packard', '80000'); -insert into department values ('Physics', 'Watson', '70000'); -insert into course values ('BIO-101', 'Intro. to Biology', 'Biology', '4'); -insert into course values ('BIO-301', 'Genetics', 'Biology', '4'); -insert into course values ('BIO-399', 'Computational Biology', 'Biology', '3'); -insert into course values ('CS-101', 'Intro. to Computer Science', 'Comp. Sci.', '4'); -insert into course values ('CS-190', 'Game Design', 'Comp. Sci.', '4'); -insert into course values ('CS-315', 'Robotics', 'Comp. Sci.', '3'); -insert into course values ('CS-319', 'Image Processing', 'Comp. Sci.', '3'); -insert into course values ('CS-347', 'Database System Concepts', 'Comp. Sci.', '3'); -insert into course values ('EE-181', 'Intro. to Digital Systems', 'Elec. Eng.', '3'); -insert into course values ('FIN-201', 'Investment Banking', 'Finance', '3'); -insert into course values ('HIS-351', 'World History', 'History', '3'); -insert into course values ('MU-199', 'Music Video Production', 'Music', '3'); -insert into course values ('PHY-101', 'Physical Principles', 'Physics', '4'); -insert into instructor values ('10101', 'Srinivasan', 'Comp. Sci.', '65000'); -insert into instructor values ('12121', 'Wu', 'Finance', '90000'); -insert into instructor values ('15151', 'Mozart', 'Music', '40000'); -insert into instructor values ('22222', 'Einstein', 'Physics', '95000'); -insert into instructor values ('32343', 'El Said', 'History', '60000'); -insert into instructor values ('33456', 'Gold', 'Physics', '87000'); -insert into instructor values ('45565', 'Katz', 'Comp. Sci.', '75000'); -insert into instructor values ('58583', 'Califieri', 'History', '62000'); -insert into instructor values ('76543', 'Singh', 'Finance', '80000'); -insert into instructor values ('76766', 'Crick', 'Biology', '72000'); -insert into instructor values ('83821', 'Brandt', 'Comp. Sci.', '92000'); -insert into instructor values ('98345', 'Kim', 'Elec. Eng.', '80000'); -insert into section values ('BIO-101', '1', 'Summer', '2009', 'Painter', '514', 'B'); -insert into section values ('BIO-301', '1', 'Summer', '2010', 'Painter', '514', 'A'); -insert into section values ('CS-101', '1', 'Fall', '2009', 'Packard', '101', 'H'); -insert into section values ('CS-101', '1', 'Spring', '2010', 'Packard', '101', 'F'); -insert into section values ('CS-190', '1', 'Spring', '2009', 'Taylor', '3128', 'E'); -insert into section values ('CS-190', '2', 'Spring', '2009', 'Taylor', '3128', 'A'); -insert into section values ('CS-315', '1', 'Spring', '2010', 'Watson', '120', 'D'); -insert into section values ('CS-319', '1', 'Spring', '2010', 'Watson', '100', 'B'); -insert into section values ('CS-319', '2', 'Spring', '2010', 'Taylor', '3128', 'C'); -insert into section values ('CS-347', '1', 'Fall', '2009', 'Taylor', '3128', 'A'); -insert into section values ('EE-181', '1', 'Spring', '2009', 'Taylor', '3128', 'C'); -insert into section values ('FIN-201', '1', 'Spring', '2010', 'Packard', '101', 'B'); -insert into section values ('HIS-351', '1', 'Spring', '2010', 'Painter', '514', 'C'); -insert into section values ('MU-199', '1', 'Spring', '2010', 'Packard', '101', 'D'); -insert into section values ('PHY-101', '1', 'Fall', '2009', 'Watson', '100', 'A'); -insert into teaches values ('10101', 'CS-101', '1', 'Fall', '2009'); -insert into teaches values ('10101', 'CS-315', '1', 'Spring', '2010'); -insert into teaches values ('10101', 'CS-347', '1', 'Fall', '2009'); -insert into teaches values ('12121', 'FIN-201', '1', 'Spring', '2010'); -insert into teaches values ('15151', 'MU-199', '1', 'Spring', '2010'); -insert into teaches values ('22222', 'PHY-101', '1', 'Fall', '2009'); -insert into teaches values ('32343', 'HIS-351', '1', 'Spring', '2010'); -insert into teaches values ('45565', 'CS-101', '1', 'Spring', '2010'); -insert into teaches values ('45565', 'CS-319', '1', 'Spring', '2010'); -insert into teaches values ('76766', 'BIO-101', '1', 'Summer', '2009'); -insert into teaches values ('76766', 'BIO-301', '1', 'Summer', '2010'); -insert into teaches values ('83821', 'CS-190', '1', 'Spring', '2009'); -insert into teaches values ('83821', 'CS-190', '2', 'Spring', '2009'); -insert into teaches values ('83821', 'CS-319', '2', 'Spring', '2010'); -insert into teaches values ('98345', 'EE-181', '1', 'Spring', '2009'); -insert into student values ('00128', 'Zhang', 'Comp. Sci.', '102'); -insert into student values ('12345', 'Shankar', 'Comp. Sci.', '32'); -insert into student values ('19991', 'Brandt', 'History', '80'); -insert into student values ('23121', 'Chavez', 'Finance', '110'); -insert into student values ('44553', 'Peltier', 'Physics', '56'); -insert into student values ('45678', 'Levy', 'Physics', '46'); -insert into student values ('54321', 'Williams', 'Comp. Sci.', '54'); -insert into student values ('55739', 'Sanchez', 'Music', '38'); -insert into student values ('70557', 'Snow', 'Physics', '0'); -insert into student values ('76543', 'Brown', 'Comp. Sci.', '58'); -insert into student values ('76653', 'Aoi', 'Elec. Eng.', '60'); -insert into student values ('98765', 'Bourikas', 'Elec. Eng.', '98'); -insert into student values ('98988', 'Tanaka', 'Biology', '120'); -insert into takes values ('00128', 'CS-101', '1', 'Fall', '2009', 'A'); -insert into takes values ('00128', 'CS-347', '1', 'Fall', '2009', 'A-'); -insert into takes values ('12345', 'CS-101', '1', 'Fall', '2009', 'C'); -insert into takes values ('12345', 'CS-190', '2', 'Spring', '2009', 'A'); -insert into takes values ('12345', 'CS-315', '1', 'Spring', '2010', 'A'); -insert into takes values ('12345', 'CS-347', '1', 'Fall', '2009', 'A'); -insert into takes values ('19991', 'HIS-351', '1', 'Spring', '2010', 'B'); -insert into takes values ('23121', 'FIN-201', '1', 'Spring', '2010', 'C+'); -insert into takes values ('44553', 'PHY-101', '1', 'Fall', '2009', 'B-'); -insert into takes values ('45678', 'CS-101', '1', 'Fall', '2009', 'F'); -insert into takes values ('45678', 'CS-101', '1', 'Spring', '2010', 'B+'); -insert into takes values ('45678', 'CS-319', '1', 'Spring', '2010', 'B'); -insert into takes values ('54321', 'CS-101', '1', 'Fall', '2009', 'A-'); -insert into takes values ('54321', 'CS-190', '2', 'Spring', '2009', 'B+'); -insert into takes values ('55739', 'MU-199', '1', 'Spring', '2010', 'A-'); -insert into takes values ('76543', 'CS-101', '1', 'Fall', '2009', 'A'); -insert into takes values ('76543', 'CS-319', '2', 'Spring', '2010', 'A'); -insert into takes values ('76653', 'EE-181', '1', 'Spring', '2009', 'C'); -insert into takes values ('98765', 'CS-101', '1', 'Fall', '2009', 'C-'); -insert into takes values ('98765', 'CS-315', '1', 'Spring', '2010', 'B'); -insert into takes values ('98988', 'BIO-101', '1', 'Summer', '2009', 'A'); -insert into takes values ('98988', 'BIO-301', '1', 'Summer', '2010', null); -insert into advisor values ('00128', '45565'); -insert into advisor values ('12345', '10101'); -insert into advisor values ('23121', '76543'); -insert into advisor values ('44553', '22222'); -insert into advisor values ('45678', '22222'); -insert into advisor values ('76543', '45565'); -insert into advisor values ('76653', '98345'); -insert into advisor values ('98765', '98345'); -insert into advisor values ('98988', '76766'); -insert into time_slot values ('A', 'M', '8', '0', '8', '50'); -insert into time_slot values ('A', 'W', '8', '0', '8', '50'); -insert into time_slot values ('A', 'F', '8', '0', '8', '50'); -insert into time_slot values ('B', 'M', '9', '0', '9', '50'); -insert into time_slot values ('B', 'W', '9', '0', '9', '50'); -insert into time_slot values ('B', 'F', '9', '0', '9', '50'); -insert into time_slot values ('C', 'M', '11', '0', '11', '50'); -insert into time_slot values ('C', 'W', '11', '0', '11', '50'); -insert into time_slot values ('C', 'F', '11', '0', '11', '50'); -insert into time_slot values ('D', 'M', '13', '0', '13', '50'); -insert into time_slot values ('D', 'W', '13', '0', '13', '50'); -insert into time_slot values ('D', 'F', '13', '0', '13', '50'); -insert into time_slot values ('E', 'T', '10', '30', '11', '45 '); -insert into time_slot values ('E', 'R', '10', '30', '11', '45 '); -insert into time_slot values ('F', 'T', '14', '30', '15', '45 '); -insert into time_slot values ('F', 'R', '14', '30', '15', '45 '); -insert into time_slot values ('G', 'M', '16', '0', '16', '50'); -insert into time_slot values ('G', 'W', '16', '0', '16', '50'); -insert into time_slot values ('G', 'F', '16', '0', '16', '50'); -insert into time_slot values ('H', 'W', '10', '0', '12', '30'); -insert into prereq values ('BIO-301', 'BIO-101'); -insert into prereq values ('BIO-399', 'BIO-101'); -insert into prereq values ('CS-190', 'CS-101'); -insert into prereq values ('CS-315', 'CS-101'); -insert into prereq values ('CS-319', 'CS-101'); -insert into prereq values ('CS-347', 'CS-101'); -insert into prereq values ('EE-181', 'PHY-101'); diff --git a/project1/tst.sql b/project1/tst.sql deleted file mode 100644 index 1e1a5a2..0000000 --- a/project1/tst.sql +++ /dev/null @@ -1,31 +0,0 @@ -DROP TABLE IF EXISTS one; -DROP TABLE IF EXISTS two; - -CREATE TABLE one (a int, b int); -CREATE TABLE two (b int, c int); - -INSERT INTO one VALUES (1,2); -INSERT INTO one VALUES (2,3); -INSERT INTO two VALUES (1,2); -INSERT INTO two VALUES (2,1); - -SELECT * FROM one; -SELECT * FROM two; - -select ',' as query; -SELECT * FROM one,two; -select ' NATURAL JOIN ' as query; -SELECT * FROM one NATURAL JOIN two; -select ' INNER JOIN ' as query; -SELECT * FROM one INNER JOIN two; -select ' INNER JOIN on one.b=two.b;' as query; -SELECT * FROM one INNER JOIN two on one.b=two.b; -select ' CROSS JOIN on one.b=two.b;' as query; -SELECT * FROM one CROSS JOIN two on one.b=two.b; -select ' CROSS JOIN ' as query; -SELECT * FROM one CROSS JOIN two; -select ' LEFT OUTER JOIN on one.b=two.b;' as query; -SELECT * FROM one LEFT OUTER JOIN two on one.b=two.b; -select ' FULL OUTER JOIN on one.b=two.b;' as query; -SELECT * FROM one FULL OUTER JOIN two on one.b=two.b; - -- GitLab