From 46a9040434aa7cd6dc932ce8e728dbc1a53892a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mika=C3=ABl=20Capelle?= Date: Mon, 22 Feb 2016 12:25:50 +0100 Subject: [PATCH] Update. --- .bashrc | 0 .emacs.d/ac-comphist.dat | 548 +- .../.saves-12370-pinkfloyd.laas.fr~ | 6 - .emacs.d/clang-complete | Bin 58894 -> 73 bytes .../ac-c-headers-autoloads.el | 5 +- .../ac-c-headers-autoloads.el~ | 11 - .../ac-c-headers-pkg.elc | Bin 550 -> 550 bytes .../ac-c-headers.elc | Bin 3481 -> 3481 bytes .../ac-clang-autoloads.el | 16 - .../ac-clang-autoloads.el~ | 11 - .../ac-clang-20150906.1008/ac-clang-pkg.el | 11 - .../elpa/ac-clang-20150906.1008/ac-clang.el | 1406 - .../elpa/ac-clang-20150906.1008/ac-clang.elc | Bin 51514 -> 0 bytes .../build/builder_sample.bat | 26 - .../build/builder_sample.sh | 28 - .../clang-server/.nosearch | 0 .../clang-server/CMakeLists.txt | 383 - .../clang-server/ClangServer.cpp | 439 - .../clang-server/ClangServer.hpp | 132 - .../clang-server/ClangSession.cpp | 739 - .../clang-server/ClangSession.hpp | 133 - .../clang-server/CommandLine.hpp | 607 - .../clang-server/Common.cpp | 284 - .../clang-server/Common.hpp | 371 - .../clang-server/changes.org | 32 - .../clang-server/clang-c/BuildSystem.h | 156 - .../clang-c/CXCompilationDatabase.h | 170 - .../clang-server/clang-c/CXErrorCode.h | 64 - .../clang-server/clang-c/CXString.h | 61 - .../clang-server/clang-c/Documentation.h | 554 - .../clang-server/clang-c/Index.h | 5755 --- .../clang-server/clang-c/Makefile | 38 - .../clang-server/clang-c/Platform.h | 45 - .../clang-server/clang-c/module.modulemap | 4 - .../library/x86_32/debug/.gitkeep | 0 .../library/x86_32/release/.gitkeep | 0 .../library/x86_64/debug/.gitkeep | 0 .../library/x86_64/release/.gitkeep | 0 .../clang-server/main.cpp | 176 - .../clang-server/patch/invalidate-mmap.patch | 22 - .../clang-server/patch/libclang-x86_64.patch | 29 - .../clang-server/readme.ja.md | 381 - .../clang-server/readme.ja.org | 297 - .../clang-server/readme.md | 392 - .../clang-server/readme.org | 314 - .../sample-pic-complete.png | Bin 60125 -> 0 bytes .emacs.d/elpa/archives/gnu/archive-contents | 17 +- .../elpa/archives/gnu/archive-contents.signed | 2 +- .emacs.d/elpa/archives/melpa/archive-contents | 2 +- .../auto-complete-clang-async-autoloads.el | 16 - .../auto-complete-clang-async-autoloads.el~ | 11 - .../auto-complete-clang-async-pkg.el | 1 - .../auto-complete-clang-async-pkg.elc | Bin 558 -> 0 bytes .../auto-complete-clang-async.el | 639 - .../auto-complete-clang-async.elc | Bin 17883 -> 0 bytes .../autopair-autoloads.el | 43 - .../autopair-autoloads.el~ | 11 - .../autopair-20140825.427/autopair-pkg.el | 1 - .../autopair-20140825.427/autopair-pkg.elc | Bin 597 -> 0 bytes .../elpa/autopair-20140825.427/autopair.el | 1134 - .../elpa/autopair-20140825.427/autopair.elc | Bin 31665 -> 0 bytes .emacs.d/elpa/company-0.8.12/.dir-locals.el | 4 - .emacs.d/elpa/company-0.8.12/.elpaignore | 5 - .emacs.d/elpa/company-0.8.12/ChangeLog | 310 - .emacs.d/elpa/company-0.8.12/NEWS.md | 329 - .emacs.d/elpa/company-0.8.12/README.md | 4 - .../elpa/company-0.8.12/company-abbrev.el | 51 - .../elpa/company-0.8.12/company-abbrev.elc | Bin 1348 -> 0 bytes .../elpa/company-0.8.12/company-autoloads.el | 296 - .../elpa/company-0.8.12/company-autoloads.el~ | 13 - .emacs.d/elpa/company-0.8.12/company-bbdb.el | 61 - .emacs.d/elpa/company-0.8.12/company-bbdb.elc | Bin 1846 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-capf.el | 153 - .emacs.d/elpa/company-0.8.12/company-capf.elc | Bin 3282 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-clang.el | 335 - .../elpa/company-0.8.12/company-clang.elc | Bin 13503 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-cmake.el | 198 - .../elpa/company-0.8.12/company-cmake.elc | Bin 5997 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-css.el | 438 - .emacs.d/elpa/company-0.8.12/company-css.elc | Bin 17094 -> 0 bytes .../company-0.8.12/company-dabbrev-code.el | 104 - .../company-0.8.12/company-dabbrev-code.elc | Bin 3937 -> 0 bytes .../elpa/company-0.8.12/company-dabbrev.el | 163 - .../elpa/company-0.8.12/company-dabbrev.elc | Bin 6545 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-eclim.el | 183 - .../elpa/company-0.8.12/company-eclim.elc | Bin 5629 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-elisp.el | 225 - .../elpa/company-0.8.12/company-elisp.elc | Bin 7805 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-etags.el | 94 - .../elpa/company-0.8.12/company-etags.elc | Bin 2874 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-files.el | 105 - .../elpa/company-0.8.12/company-files.elc | Bin 3239 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-gtags.el | 115 - .../elpa/company-0.8.12/company-gtags.elc | Bin 3787 -> 0 bytes .../elpa/company-0.8.12/company-ispell.el | 76 - .../elpa/company-0.8.12/company-ispell.elc | Bin 2025 -> 0 bytes .../elpa/company-0.8.12/company-keywords.el | 236 - .../elpa/company-0.8.12/company-keywords.elc | Bin 14849 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-nxml.el | 142 - .emacs.d/elpa/company-0.8.12/company-nxml.elc | Bin 4357 -> 0 bytes .../elpa/company-0.8.12/company-oddmuse.el | 57 - .../elpa/company-0.8.12/company-oddmuse.elc | Bin 1561 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-pkg.el | 2 - .emacs.d/elpa/company-0.8.12/company-pkg.elc | Bin 726 -> 0 bytes .../elpa/company-0.8.12/company-pysmell.el | 69 - .../elpa/company-0.8.12/company-pysmell.elc | Bin 1734 -> 0 bytes .../elpa/company-0.8.12/company-ropemacs.el | 72 - .../elpa/company-0.8.12/company-ropemacs.elc | Bin 2491 -> 0 bytes .../elpa/company-0.8.12/company-semantic.el | 156 - .../elpa/company-0.8.12/company-semantic.elc | Bin 4959 -> 0 bytes .../elpa/company-0.8.12/company-template.el | 195 - .../elpa/company-0.8.12/company-template.elc | Bin 6063 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-tempo.el | 63 - .../elpa/company-0.8.12/company-tempo.elc | Bin 2057 -> 0 bytes .emacs.d/elpa/company-0.8.12/company-xcode.el | 123 - .../elpa/company-0.8.12/company-xcode.elc | Bin 3893 -> 0 bytes .../elpa/company-0.8.12/company-yasnippet.el | 104 - .../elpa/company-0.8.12/company-yasnippet.elc | Bin 2529 -> 0 bytes .emacs.d/elpa/company-0.8.12/company.el | 2784 -- .emacs.d/elpa/company-0.8.12/company.elc | Bin 93424 -> 0 bytes .emacs.d/elpa/company-0.8.12/test/all.el | 28 - .emacs.d/elpa/company-0.8.12/test/all.elc | Bin 817 -> 0 bytes .../elpa/company-0.8.12/test/async-tests.el | 217 - .../elpa/company-0.8.12/test/clang-tests.el | 46 - .../elpa/company-0.8.12/test/core-tests.el | 481 - .../elpa/company-0.8.12/test/elisp-tests.el | 190 - .../company-0.8.12/test/frontends-tests.el | 332 - .../company-0.8.12/test/keywords-tests.el | 32 - .../company-0.8.12/test/keywords-tests.elc | Bin 1815 -> 0 bytes .../company-0.8.12/test/template-tests.el | 91 - .../company-0.8.12/test/transformers-tests.el | 58 - .../company-20160211.520/company-abbrev.el | 50 - .../company-20160211.520/company-abbrev.elc | Bin 1312 -> 0 bytes .../company-20160211.520/company-autoloads.el | 287 - .../company-autoloads.el~ | 13 - .../elpa/company-20160211.520/company-bbdb.el | 61 - .../company-20160211.520/company-bbdb.elc | Bin 1858 -> 0 bytes .../elpa/company-20160211.520/company-capf.el | 167 - .../company-20160211.520/company-capf.elc | Bin 3615 -> 0 bytes .../company-20160211.520/company-clang.el | 331 - .../company-20160211.520/company-clang.elc | Bin 13448 -> 0 bytes .../company-20160211.520/company-cmake.el | 198 - .../company-20160211.520/company-cmake.elc | Bin 6001 -> 0 bytes .../elpa/company-20160211.520/company-css.el | 442 - .../elpa/company-20160211.520/company-css.elc | Bin 17174 -> 0 bytes .../company-dabbrev-code.el | 104 - .../company-dabbrev-code.elc | Bin 3786 -> 0 bytes .../company-20160211.520/company-dabbrev.el | 188 - .../company-20160211.520/company-dabbrev.elc | Bin 7316 -> 0 bytes .../company-20160211.520/company-eclim.el | 185 - .../company-20160211.520/company-eclim.elc | Bin 5669 -> 0 bytes .../company-20160211.520/company-elisp.el | 225 - .../company-20160211.520/company-elisp.elc | Bin 7809 -> 0 bytes .../company-20160211.520/company-etags.el | 107 - .../company-20160211.520/company-etags.elc | Bin 3248 -> 0 bytes .../company-20160211.520/company-files.el | 122 - .../company-20160211.520/company-files.elc | Bin 3681 -> 0 bytes .../company-20160211.520/company-gtags.el | 116 - .../company-20160211.520/company-gtags.elc | Bin 3821 -> 0 bytes .../company-20160211.520/company-ispell.el | 82 - .../company-20160211.520/company-ispell.elc | Bin 2203 -> 0 bytes .../company-20160211.520/company-keywords.el | 242 - .../company-20160211.520/company-keywords.elc | Bin 15180 -> 0 bytes .../elpa/company-20160211.520/company-nxml.el | 142 - .../company-20160211.520/company-nxml.elc | Bin 4362 -> 0 bytes .../company-20160211.520/company-oddmuse.el | 57 - .../company-20160211.520/company-oddmuse.elc | Bin 1566 -> 0 bytes .../elpa/company-20160211.520/company-pkg.el | 8 - .../company-20160211.520/company-semantic.el | 167 - .../company-20160211.520/company-semantic.elc | Bin 5444 -> 0 bytes .../company-20160211.520/company-template.el | 214 - .../company-20160211.520/company-template.elc | Bin 6566 -> 0 bytes .../company-20160211.520/company-tempo.el | 71 - .../company-20160211.520/company-tempo.elc | Bin 2375 -> 0 bytes .../company-20160211.520/company-xcode.el | 123 - .../company-20160211.520/company-xcode.elc | Bin 3897 -> 0 bytes .../company-20160211.520/company-yasnippet.el | 147 - .../company-yasnippet.elc | Bin 3445 -> 0 bytes .emacs.d/elpa/company-20160211.520/company.el | 3007 -- .../elpa/company-20160211.520/company.elc | Bin 100773 -> 0 bytes .../company-irony-autoloads.el | 33 - .../company-irony-autoloads.el~ | 11 - .../company-irony-pkg.el | 1 - .../company-irony-pkg.elc | Bin 646 -> 0 bytes .../company-irony.el | 140 - .../company-irony.elc | Bin 3689 -> 0 bytes .emacs.d/elpa/ess-20160208.453/.dir-locals.el | 7 - .emacs.d/elpa/ess-20160208.453/allnews.info | 1524 - .emacs.d/elpa/ess-20160208.453/announc.info | 1034 - .emacs.d/elpa/ess-20160208.453/authors.info | 18 - .emacs.d/elpa/ess-20160208.453/bugrept.info | 25 - .emacs.d/elpa/ess-20160208.453/bugs-ms.info | 52 - .emacs.d/elpa/ess-20160208.453/credits.info | 80 - .emacs.d/elpa/ess-20160208.453/currfeat.info | 42 - .emacs.d/elpa/ess-20160208.453/dir | 19 - .../elpa/ess-20160208.453/ess-autoloads.el | 80 - .../elpa/ess-20160208.453/ess-autoloads.elc | Bin 974 -> 0 bytes .../elpa/ess-20160208.453/ess-autoloads.el~ | 76 - .emacs.d/elpa/ess-20160208.453/ess-defs.info | 8 - .emacs.d/elpa/ess-20160208.453/ess-pkg.el | 6 - .emacs.d/elpa/ess-20160208.453/ess.info | 5689 --- .../elpa/ess-20160208.453/etc/BACKBUG5.BAT | 26 - .../elpa/ess-20160208.453/etc/BACKBUGS.BAT | 32 - .../elpa/ess-20160208.453/etc/C-cC-c-probl.R | 122 - .../elpa/ess-20160208.453/etc/ESSR/BUILDESSR | 18 - .../elpa/ess-20160208.453/etc/ESSR/LOADREMOTE | 23 - .../elpa/ess-20160208.453/etc/ESSR/R/.basic.R | 85 - .../elpa/ess-20160208.453/etc/ESSR/R/.load.R | 53 - .../ess-20160208.453/etc/ESSR/R/completion.R | 100 - .../elpa/ess-20160208.453/etc/ESSR/R/debug.R | 187 - .../ess-20160208.453/etc/ESSR/R/developer.R | 295 - .../elpa/ess-20160208.453/etc/ESSR/R/misc.R | 116 - .../elpa/ess-20160208.453/etc/ESSR/VERSION | 1 - .../ess-20160208.453/etc/Extract.factor.Rd | 56 - .emacs.d/elpa/ess-20160208.453/etc/Makefile | 69 - .../elpa/ess-20160208.453/etc/R-ESS-bugs.R | 868 - .../elpa/ess-20160208.453/etc/R-ESS-bugs.el | 91 - .../elpa/ess-20160208.453/etc/R-ESS-bugs.elc | Bin 3008 -> 0 bytes .../elpa/ess-20160208.453/etc/R-oxygen-ex.R | 24 - .emacs.d/elpa/ess-20160208.453/etc/R-pager.R | 18 - .../ess-20160208.453/etc/R_error_patterns.R | 60 - .../ess-20160208.453/etc/Rnw-ess-bugs.Rnw | 31 - .../elpa/ess-20160208.453/etc/SAS-bugs.sas | 31 - .emacs.d/elpa/ess-20160208.453/etc/TODO.org | 200 - .emacs.d/elpa/ess-20160208.453/etc/backbug5 | 27 - .../elpa/ess-20160208.453/etc/backbug5.sparc | 20 - .emacs.d/elpa/ess-20160208.453/etc/backbugs | 27 - .../elpa/ess-20160208.453/etc/backbugs.sparc | 20 - .../elpa/ess-20160208.453/etc/checkTriple.Rd | 67 - .../elpa/ess-20160208.453/etc/chol2inv-ex.Rd | 20 - .../ess-20160208.453/etc/completion_ideas.R | 30 - .../elpa/ess-20160208.453/etc/config.guess | 1560 - .../elpa/ess-20160208.453/etc/ess-julia.jl | 114 - .../ess-20160208.453/etc/ess-roxy-tests.R | 221 - .../etc/ess-rutils-help-start.R | 15 - .emacs.d/elpa/ess-20160208.453/etc/ess-s4.S | 56 - .../ess-20160208.453/etc/ess-sas-sh-command | 76 - .emacs.d/elpa/ess-20160208.453/etc/ess-sp3.S | 49 - .../ess-20160208.453/etc/function-outline.S | 8 - .emacs.d/elpa/ess-20160208.453/etc/gpl-check | 56 - .../elpa/ess-20160208.453/etc/icons/README | 31 - .../ess-20160208.453/etc/icons/rbuffer.xpm | 30 - .../ess-20160208.453/etc/icons/rfunction.xpm | 45 - .../elpa/ess-20160208.453/etc/icons/rline.xpm | 30 - .../ess-20160208.453/etc/icons/rregion.xpm | 30 - .../etc/icons/splus_letter_small.xpm | 173 - .../etc/icons/splus_letters_large.png | Bin 4269 -> 0 bytes .../etc/icons/splus_letters_large.xpm | 281 - .../ess-20160208.453/etc/icons/spluslogo.xpm | 37 - .../etc/icons/spluslogo.xpm.safe | 44 - .../ess-20160208.453/etc/icons/startr.xpm | 161 - .../ess-20160208.453/etc/icons/switch_ess.xpm | 40 - .../ess-20160208.453/etc/icons/switchr.xpm | 112 - .../ess-20160208.453/etc/icons/switchs.xpm | 32 - .../ess-20160208.453/etc/in-string-bug-ex.Rnw | 25 - .../etc/other/S-spread/README | 72 - .../etc/other/S-spread/S-spread.el | 337 - .../etc/other/S-spread/S-spread.elc | Bin 8577 -> 0 bytes .../etc/other/S-spread/asaprc.ps | 30845 ---------------- .../etc/other/S-spread/gradexmp.s | 18 - .../etc/other/S-spread/sprd-emc.s | 280 - .../etc/other/S-spread/sprd-grd.s | 49 - .../etc/other/S-spread/sprd-int.el | 336 - .../etc/other/S-spread/sprd-int.elc | Bin 8574 -> 0 bytes .../etc/other/S-spread/sprd-spr.s | 329 - .../etc/other/S-spread/sprd-txt.s | 114 - .../etc/other/S-spread/sprd3d.how | 197 - .emacs.d/elpa/ess-20160208.453/etc/other/test | 2 - .../elpa/ess-20160208.453/etc/pkg-Maintainers | 4 - .../ess-20160208.453/etc/pkg1/DESCRIPTION | 9 - .../elpa/ess-20160208.453/etc/pkg1/NAMESPACE | 1 - .../elpa/ess-20160208.453/etc/pkg1/R/D1tr.R | 20 - .../ess-20160208.453/etc/pkg1/man/D1tr.Rd | 36 - .../elpa/ess-20160208.453/etc/sas-keys.doc | Bin 16896 -> 0 bytes .../elpa/ess-20160208.453/etc/sas-keys.ps | 2569 -- .../elpa/ess-20160208.453/etc/sas-keys.rtf | 137 - .../ess-20160208.453/etc/sje-ess-notes.txt | 283 - .../ess-20160208.453/etc/slow-long-output.R | 55 - .emacs.d/elpa/ess-20160208.453/inst_svn.info | 38 - .../elpa/ess-20160208.453/installation.info | 57 - .emacs.d/elpa/ess-20160208.453/license.info | 17 - .../elpa/ess-20160208.453/lisp/ess-arc-d.el | 100 - .../elpa/ess-20160208.453/lisp/ess-arc-d.elc | Bin 1670 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-bugs-d.el | 265 - .../elpa/ess-20160208.453/lisp/ess-bugs-d.elc | Bin 6047 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-bugs-l.el | 277 - .../elpa/ess-20160208.453/lisp/ess-bugs-l.elc | Bin 7746 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-comp.el | 67 - .../elpa/ess-20160208.453/lisp/ess-comp.elc | Bin 1022 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-compat.el | 298 - .../elpa/ess-20160208.453/lisp/ess-compat.elc | Bin 6250 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-custom.el | 3131 -- .../elpa/ess-20160208.453/lisp/ess-custom.elc | Bin 91834 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-dde.el | 173 - .../elpa/ess-20160208.453/lisp/ess-dde.elc | Bin 4148 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-debug.el | 92 - .../elpa/ess-20160208.453/lisp/ess-debug.elc | Bin 1523 -> 0 bytes .../ess-20160208.453/lisp/ess-developer.el | 472 - .../ess-20160208.453/lisp/ess-developer.elc | Bin 14604 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-eldoc.el | 176 - .../elpa/ess-20160208.453/lisp/ess-eldoc.elc | Bin 551 -> 0 bytes .../ess-20160208.453/lisp/ess-font-lock.el | 167 - .../ess-20160208.453/lisp/ess-font-lock.elc | Bin 4218 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-gretl.el | 657 - .../elpa/ess-20160208.453/lisp/ess-gretl.elc | Bin 17120 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-help.el | 1090 - .../elpa/ess-20160208.453/lisp/ess-help.elc | Bin 33104 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-inf.el | 3465 -- .../elpa/ess-20160208.453/lisp/ess-inf.elc | Bin 95484 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-install.el | 236 - .../ess-20160208.453/lisp/ess-install.elc | Bin 3360 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-jags-d.el | 260 - .../elpa/ess-20160208.453/lisp/ess-jags-d.elc | Bin 6146 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-julia.el | 414 - .../elpa/ess-20160208.453/lisp/ess-julia.elc | Bin 14588 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-lsp-l.el | 82 - .../elpa/ess-20160208.453/lisp/ess-lsp-l.elc | Bin 1282 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-menu.el | 162 - .../elpa/ess-20160208.453/lisp/ess-menu.elc | Bin 486 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-mode.el | 1143 - .../elpa/ess-20160208.453/lisp/ess-mode.elc | Bin 28258 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-mouse.el | 257 - .../elpa/ess-20160208.453/lisp/ess-mouse.elc | Bin 6125 -> 0 bytes .../lisp/ess-noweb-font-lock-mode.el | 400 - .../lisp/ess-noweb-font-lock-mode.elc | Bin 7450 -> 0 bytes .../ess-20160208.453/lisp/ess-noweb-mode.el | 1941 - .../ess-20160208.453/lisp/ess-noweb-mode.elc | Bin 46929 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-noweb.el | 150 - .../elpa/ess-20160208.453/lisp/ess-noweb.elc | Bin 2436 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-omg-d.el | 126 - .../elpa/ess-20160208.453/lisp/ess-omg-d.elc | Bin 2531 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-omg-l.el | 345 - .../elpa/ess-20160208.453/lisp/ess-omg-l.elc | Bin 2923 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-r-a.el | 164 - .../elpa/ess-20160208.453/lisp/ess-r-a.elc | Bin 2772 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-r-args.el | 331 - .../elpa/ess-20160208.453/lisp/ess-r-args.elc | Bin 2964 -> 0 bytes .../ess-20160208.453/lisp/ess-r-completion.el | 485 - .../lisp/ess-r-completion.elc | Bin 14944 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-r-d.el | 1849 - .../elpa/ess-20160208.453/lisp/ess-r-d.elc | Bin 47231 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-r-gui.el | 193 - .../elpa/ess-20160208.453/lisp/ess-r-gui.elc | Bin 5566 -> 0 bytes .../ess-20160208.453/lisp/ess-r-syntax.el | 1008 - .../ess-20160208.453/lisp/ess-r-syntax.elc | Bin 24646 -> 0 bytes .emacs.d/elpa/ess-20160208.453/lisp/ess-rd.el | 542 - .../elpa/ess-20160208.453/lisp/ess-rd.elc | Bin 14053 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-rdired.el | 508 - .../elpa/ess-20160208.453/lisp/ess-rdired.elc | Bin 10255 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-roxy.el | 884 - .../elpa/ess-20160208.453/lisp/ess-roxy.elc | Bin 24419 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-rutils.el | 452 - .../elpa/ess-20160208.453/lisp/ess-rutils.elc | Bin 11719 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-s-l.el | 903 - .../elpa/ess-20160208.453/lisp/ess-s-l.elc | Bin 19103 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-s3-d.el | 99 - .../elpa/ess-20160208.453/lisp/ess-s3-d.elc | Bin 1782 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-s4-d.el | 297 - .../elpa/ess-20160208.453/lisp/ess-s4-d.elc | Bin 1911 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-sas-a.el | 1484 - .../elpa/ess-20160208.453/lisp/ess-sas-a.elc | Bin 39197 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-sas-d.el | 334 - .../elpa/ess-20160208.453/lisp/ess-sas-d.elc | Bin 6530 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-sas-l.el | 1915 - .../elpa/ess-20160208.453/lisp/ess-sas-l.elc | Bin 41343 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-send.el | 74 - .../elpa/ess-20160208.453/lisp/ess-send.elc | Bin 1121 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-send2.el | 54 - .../elpa/ess-20160208.453/lisp/ess-send2.elc | Bin 1283 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-site.el | 792 - .../elpa/ess-20160208.453/lisp/ess-site.elc | Bin 10123 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-sp3-d.el | 105 - .../elpa/ess-20160208.453/lisp/ess-sp3-d.elc | Bin 1998 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-sp4-d.el | 421 - .../elpa/ess-20160208.453/lisp/ess-sp4-d.elc | Bin 10622 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-sp5-d.el | 126 - .../elpa/ess-20160208.453/lisp/ess-sp5-d.elc | Bin 2021 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-sp6-d.el | 314 - .../elpa/ess-20160208.453/lisp/ess-sp6-d.elc | Bin 7573 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-sp6w-d.el | 602 - .../elpa/ess-20160208.453/lisp/ess-sp6w-d.elc | Bin 17404 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-sta-d.el | 176 - .../elpa/ess-20160208.453/lisp/ess-sta-d.elc | Bin 4358 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-sta-l.el | 1307 - .../elpa/ess-20160208.453/lisp/ess-sta-l.elc | Bin 22552 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-swv.el | 442 - .../elpa/ess-20160208.453/lisp/ess-swv.elc | Bin 10750 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-toolbar.el | 253 - .../ess-20160208.453/lisp/ess-toolbar.elc | Bin 6130 -> 0 bytes .../ess-20160208.453/lisp/ess-tracebug.el | 2785 -- .../ess-20160208.453/lisp/ess-tracebug.elc | Bin 85172 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-trns.el | 352 - .../elpa/ess-20160208.453/lisp/ess-trns.elc | Bin 8710 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-utils.el | 1157 - .../elpa/ess-20160208.453/lisp/ess-utils.elc | Bin 29056 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-vst-d.el | 98 - .../elpa/ess-20160208.453/lisp/ess-vst-d.elc | Bin 1612 -> 0 bytes .../elpa/ess-20160208.453/lisp/ess-xls-d.el | 116 - .../elpa/ess-20160208.453/lisp/ess-xls-d.elc | Bin 2173 -> 0 bytes .emacs.d/elpa/ess-20160208.453/lisp/ess.el | 573 - .emacs.d/elpa/ess-20160208.453/lisp/ess.elc | Bin 9757 -> 0 bytes .../elpa/ess-20160208.453/lisp/essd-els.el | 245 - .../elpa/ess-20160208.453/lisp/essd-els.elc | Bin 6400 -> 0 bytes .../elpa/ess-20160208.453/lisp/make-regexp.el | 238 - .../ess-20160208.453/lisp/make-regexp.elc | Bin 3253 -> 0 bytes .../elpa/ess-20160208.453/lisp/mouseme.el | 355 - .../elpa/ess-20160208.453/lisp/mouseme.elc | Bin 9283 -> 0 bytes .emacs.d/elpa/ess-20160208.453/lisp/msdos.el | 170 - .emacs.d/elpa/ess-20160208.453/lisp/msdos.elc | Bin 4210 -> 0 bytes .emacs.d/elpa/ess-20160208.453/mailing.info | 21 - .emacs.d/elpa/ess-20160208.453/news.info | 810 - .emacs.d/elpa/ess-20160208.453/onews.info | 720 - .emacs.d/elpa/ess-20160208.453/readme.info | 1114 - .emacs.d/elpa/ess-20160208.453/requires.info | 27 - .emacs.d/elpa/ess-20160208.453/stabilty.info | 15 - .../elpa/irony-20160203.1207/.dir-locals.el | 10 - .../irony-20160203.1207/irony-autoloads.el | 137 - .../irony-20160203.1207/irony-autoloads.el~ | 13 - .../irony-cdb-clang-complete.el | 66 - .../irony-cdb-clang-complete.elc | Bin 1684 -> 0 bytes .../irony-20160203.1207/irony-cdb-json.el | 266 - .../irony-20160203.1207/irony-cdb-json.elc | Bin 8170 -> 0 bytes .../irony-20160203.1207/irony-cdb-libclang.el | 70 - .../irony-cdb-libclang.elc | Bin 1863 -> 0 bytes .../elpa/irony-20160203.1207/irony-cdb.el | 211 - .../elpa/irony-20160203.1207/irony-cdb.elc | Bin 6162 -> 0 bytes .../irony-20160203.1207/irony-completion.el | 364 - .../irony-20160203.1207/irony-completion.elc | Bin 9245 -> 0 bytes .../irony-20160203.1207/irony-diagnostics.el | 108 - .../irony-20160203.1207/irony-diagnostics.elc | Bin 2743 -> 0 bytes .../elpa/irony-20160203.1207/irony-pkg.el | 8 - .../elpa/irony-20160203.1207/irony-snippet.el | 135 - .../irony-20160203.1207/irony-snippet.elc | Bin 3138 -> 0 bytes .emacs.d/elpa/irony-20160203.1207/irony.el | 822 - .emacs.d/elpa/irony-20160203.1207/irony.elc | Bin 21872 -> 0 bytes .../irony-20160203.1207/server/.clang-format | 8 - .../irony-20160203.1207/server/CMakeLists.txt | 69 - .../CheckLibClangBuiltinHeadersDir.cmake | 95 - .../cmake/LibClangDiagnosticsChecker.cpp | 47 - .../server/cmake/modules/FindLibClang.cmake | 92 - .../server/cmake/utils.cmake | 139 - .../server/docs/CMakeLists.txt | 15 - .../server/docs/irony-server.cfg.in | 291 - .../server/src/CMakeLists.txt | 70 - .../server/src/Command.cpp | 288 - .../irony-20160203.1207/server/src/Command.h | 70 - .../server/src/Commands.def | 28 - .../irony-20160203.1207/server/src/Irony.cpp | 436 - .../irony-20160203.1207/server/src/Irony.h | 126 - .../server/src/TUManager.cpp | 180 - .../server/src/TUManager.h | 109 - .../irony-20160203.1207/server/src/main.cpp | 235 - .../server/src/support/CIndex.h | 33 - .../server/src/support/CommandLineParser.cpp | 119 - .../server/src/support/CommandLineParser.h | 21 - .../server/src/support/NonCopyable.h | 34 - .../server/src/support/TemporaryFile.cpp | 74 - .../server/src/support/TemporaryFile.h | 36 - .../server/src/support/arraysize.h | 39 - .../server/src/support/iomanip_quoted.h | 52 - .../server/test/CMakeLists.txt | 3 - .../server/test/elisp/CMakeLists.txt | 43 - .../server/test/elisp/irony-cdb-json.el | 87 - .../server/test/elisp/irony.el | 117 - .../server/test/elisp/support/ert.el | 2544 -- .../server/test/elisp/support/ert.elc | Bin 174063 -> 0 bytes .../server/test/elisp/test-config.el | 18 - .../julia-mode-autoloads.el | 32 - .../julia-mode-autoloads.el~ | 11 - .../julia-mode-20150912.800/julia-mode-pkg.el | 1 - .../julia-mode-pkg.elc | Bin 564 -> 0 bytes .../julia-mode-20150912.800/julia-mode.el | 3254 -- .../julia-mode-20150912.800/julia-mode.elc | Bin 143503 -> 0 bytes .emacs.el | 33 +- script.sh | 6 +- 475 files changed, 335 insertions(+), 133298 deletions(-) mode change 100644 => 100755 .bashrc delete mode 100644 .emacs.d/auto-save-list/.saves-12370-pinkfloyd.laas.fr~ mode change 100755 => 120000 .emacs.d/clang-complete delete mode 100644 .emacs.d/elpa/ac-c-headers-20151021.134/ac-c-headers-autoloads.el~ delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/ac-clang-autoloads.el delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/ac-clang-autoloads.el~ delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/ac-clang-pkg.el delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/ac-clang.el delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/ac-clang.elc delete mode 100755 .emacs.d/elpa/ac-clang-20150906.1008/build/builder_sample.bat delete mode 100755 .emacs.d/elpa/ac-clang-20150906.1008/build/builder_sample.sh delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/.nosearch delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/CMakeLists.txt delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangServer.cpp delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangServer.hpp delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangSession.cpp delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangSession.hpp delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/CommandLine.hpp delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/Common.cpp delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/Common.hpp delete mode 100755 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/changes.org delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/BuildSystem.h delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXCompilationDatabase.h delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXErrorCode.h delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXString.h delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Documentation.h delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Index.h delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Makefile delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Platform.h delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/module.modulemap delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_32/debug/.gitkeep delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_32/release/.gitkeep delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_64/debug/.gitkeep delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_64/release/.gitkeep delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/main.cpp delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/patch/invalidate-mmap.patch delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/patch/libclang-x86_64.patch delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.ja.md delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.ja.org delete mode 100755 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.md delete mode 100755 .emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.org delete mode 100644 .emacs.d/elpa/ac-clang-20150906.1008/sample-pic-complete.png delete mode 100644 .emacs.d/elpa/auto-complete-clang-async-20130526.814/auto-complete-clang-async-autoloads.el delete mode 100644 .emacs.d/elpa/auto-complete-clang-async-20130526.814/auto-complete-clang-async-autoloads.el~ delete mode 100644 .emacs.d/elpa/auto-complete-clang-async-20130526.814/auto-complete-clang-async-pkg.el delete mode 100644 .emacs.d/elpa/auto-complete-clang-async-20130526.814/auto-complete-clang-async-pkg.elc delete mode 100644 .emacs.d/elpa/auto-complete-clang-async-20130526.814/auto-complete-clang-async.el delete mode 100644 .emacs.d/elpa/auto-complete-clang-async-20130526.814/auto-complete-clang-async.elc delete mode 100644 .emacs.d/elpa/autopair-20140825.427/autopair-autoloads.el delete mode 100644 .emacs.d/elpa/autopair-20140825.427/autopair-autoloads.el~ delete mode 100644 .emacs.d/elpa/autopair-20140825.427/autopair-pkg.el delete mode 100644 .emacs.d/elpa/autopair-20140825.427/autopair-pkg.elc delete mode 100644 .emacs.d/elpa/autopair-20140825.427/autopair.el delete mode 100644 .emacs.d/elpa/autopair-20140825.427/autopair.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/.dir-locals.el delete mode 100644 .emacs.d/elpa/company-0.8.12/.elpaignore delete mode 100644 .emacs.d/elpa/company-0.8.12/ChangeLog delete mode 100644 .emacs.d/elpa/company-0.8.12/NEWS.md delete mode 100644 .emacs.d/elpa/company-0.8.12/README.md delete mode 100644 .emacs.d/elpa/company-0.8.12/company-abbrev.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-abbrev.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-autoloads.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-autoloads.el~ delete mode 100644 .emacs.d/elpa/company-0.8.12/company-bbdb.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-bbdb.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-capf.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-capf.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-clang.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-clang.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-cmake.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-cmake.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-css.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-css.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-dabbrev-code.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-dabbrev-code.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-dabbrev.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-dabbrev.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-eclim.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-eclim.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-elisp.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-elisp.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-etags.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-etags.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-files.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-files.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-gtags.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-gtags.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-ispell.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-ispell.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-keywords.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-keywords.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-nxml.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-nxml.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-oddmuse.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-oddmuse.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-pkg.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-pkg.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-pysmell.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-pysmell.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-ropemacs.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-ropemacs.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-semantic.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-semantic.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-template.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-template.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-tempo.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-tempo.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-xcode.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-xcode.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company-yasnippet.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company-yasnippet.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/company.el delete mode 100644 .emacs.d/elpa/company-0.8.12/company.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/test/all.el delete mode 100644 .emacs.d/elpa/company-0.8.12/test/all.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/test/async-tests.el delete mode 100644 .emacs.d/elpa/company-0.8.12/test/clang-tests.el delete mode 100644 .emacs.d/elpa/company-0.8.12/test/core-tests.el delete mode 100644 .emacs.d/elpa/company-0.8.12/test/elisp-tests.el delete mode 100644 .emacs.d/elpa/company-0.8.12/test/frontends-tests.el delete mode 100644 .emacs.d/elpa/company-0.8.12/test/keywords-tests.el delete mode 100644 .emacs.d/elpa/company-0.8.12/test/keywords-tests.elc delete mode 100644 .emacs.d/elpa/company-0.8.12/test/template-tests.el delete mode 100644 .emacs.d/elpa/company-0.8.12/test/transformers-tests.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-abbrev.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-abbrev.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-autoloads.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-autoloads.el~ delete mode 100644 .emacs.d/elpa/company-20160211.520/company-bbdb.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-bbdb.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-capf.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-capf.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-clang.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-clang.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-cmake.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-cmake.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-css.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-css.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-dabbrev-code.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-dabbrev-code.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-dabbrev.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-dabbrev.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-eclim.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-eclim.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-elisp.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-elisp.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-etags.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-etags.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-files.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-files.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-gtags.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-gtags.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-ispell.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-ispell.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-keywords.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-keywords.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-nxml.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-nxml.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-oddmuse.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-oddmuse.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-pkg.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-semantic.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-semantic.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-template.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-template.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-tempo.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-tempo.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-xcode.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-xcode.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company-yasnippet.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company-yasnippet.elc delete mode 100644 .emacs.d/elpa/company-20160211.520/company.el delete mode 100644 .emacs.d/elpa/company-20160211.520/company.elc delete mode 100644 .emacs.d/elpa/company-irony-20150810.239/company-irony-autoloads.el delete mode 100644 .emacs.d/elpa/company-irony-20150810.239/company-irony-autoloads.el~ delete mode 100644 .emacs.d/elpa/company-irony-20150810.239/company-irony-pkg.el delete mode 100644 .emacs.d/elpa/company-irony-20150810.239/company-irony-pkg.elc delete mode 100644 .emacs.d/elpa/company-irony-20150810.239/company-irony.el delete mode 100644 .emacs.d/elpa/company-irony-20150810.239/company-irony.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/.dir-locals.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/allnews.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/announc.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/authors.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/bugrept.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/bugs-ms.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/credits.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/currfeat.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/dir delete mode 100644 .emacs.d/elpa/ess-20160208.453/ess-autoloads.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/ess-autoloads.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/ess-autoloads.el~ delete mode 100644 .emacs.d/elpa/ess-20160208.453/ess-defs.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/ess-pkg.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/ess.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/BACKBUG5.BAT delete mode 100755 .emacs.d/elpa/ess-20160208.453/etc/BACKBUGS.BAT delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/C-cC-c-probl.R delete mode 100755 .emacs.d/elpa/ess-20160208.453/etc/ESSR/BUILDESSR delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ESSR/LOADREMOTE delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ESSR/R/.basic.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ESSR/R/.load.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ESSR/R/completion.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ESSR/R/debug.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ESSR/R/developer.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ESSR/R/misc.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ESSR/VERSION delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/Extract.factor.Rd delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/Makefile delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/R-ESS-bugs.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/R-ESS-bugs.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/R-ESS-bugs.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/R-oxygen-ex.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/R-pager.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/R_error_patterns.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/Rnw-ess-bugs.Rnw delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/SAS-bugs.sas delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/TODO.org delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/backbug5 delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/backbug5.sparc delete mode 100755 .emacs.d/elpa/ess-20160208.453/etc/backbugs delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/backbugs.sparc delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/checkTriple.Rd delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/chol2inv-ex.Rd delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/completion_ideas.R delete mode 100755 .emacs.d/elpa/ess-20160208.453/etc/config.guess delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ess-julia.jl delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ess-roxy-tests.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ess-rutils-help-start.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ess-s4.S delete mode 100755 .emacs.d/elpa/ess-20160208.453/etc/ess-sas-sh-command delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/ess-sp3.S delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/function-outline.S delete mode 100755 .emacs.d/elpa/ess-20160208.453/etc/gpl-check delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/README delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/rbuffer.xpm delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/rfunction.xpm delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/rline.xpm delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/rregion.xpm delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/splus_letter_small.xpm delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/splus_letters_large.png delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/splus_letters_large.xpm delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/spluslogo.xpm delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/spluslogo.xpm.safe delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/startr.xpm delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/switch_ess.xpm delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/switchr.xpm delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/icons/switchs.xpm delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/in-string-bug-ex.Rnw delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/README delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/S-spread.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/S-spread.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/asaprc.ps delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/gradexmp.s delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/sprd-emc.s delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/sprd-grd.s delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/sprd-int.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/sprd-int.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/sprd-spr.s delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/sprd-txt.s delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/S-spread/sprd3d.how delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/other/test delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/pkg-Maintainers delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/pkg1/DESCRIPTION delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/pkg1/NAMESPACE delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/pkg1/R/D1tr.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/pkg1/man/D1tr.Rd delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/sas-keys.doc delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/sas-keys.ps delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/sas-keys.rtf delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/sje-ess-notes.txt delete mode 100644 .emacs.d/elpa/ess-20160208.453/etc/slow-long-output.R delete mode 100644 .emacs.d/elpa/ess-20160208.453/inst_svn.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/installation.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/license.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-arc-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-arc-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-bugs-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-bugs-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-bugs-l.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-bugs-l.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-comp.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-comp.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-compat.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-compat.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-custom.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-custom.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-dde.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-dde.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-debug.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-debug.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-developer.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-developer.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-eldoc.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-eldoc.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-font-lock.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-font-lock.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-gretl.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-gretl.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-help.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-help.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-inf.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-inf.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-install.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-install.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-jags-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-jags-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-julia.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-julia.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-lsp-l.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-lsp-l.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-menu.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-menu.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-mode.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-mode.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-mouse.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-mouse.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-noweb-font-lock-mode.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-noweb-font-lock-mode.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-noweb-mode.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-noweb-mode.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-noweb.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-noweb.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-omg-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-omg-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-omg-l.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-omg-l.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-a.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-a.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-args.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-args.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-completion.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-completion.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-gui.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-gui.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-syntax.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-r-syntax.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-rd.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-rd.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-rdired.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-rdired.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-roxy.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-roxy.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-rutils.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-rutils.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-s-l.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-s-l.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-s3-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-s3-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-s4-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-s4-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sas-a.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sas-a.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sas-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sas-d.elc delete mode 100755 .emacs.d/elpa/ess-20160208.453/lisp/ess-sas-l.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sas-l.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-send.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-send.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-send2.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-send2.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-site.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-site.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sp3-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sp3-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sp4-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sp4-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sp5-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sp5-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sp6-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sp6-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sp6w-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sp6w-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sta-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sta-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sta-l.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-sta-l.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-swv.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-swv.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-toolbar.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-toolbar.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-tracebug.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-tracebug.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-trns.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-trns.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-utils.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-utils.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-vst-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-vst-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-xls-d.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess-xls-d.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/ess.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/essd-els.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/essd-els.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/make-regexp.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/make-regexp.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/mouseme.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/mouseme.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/msdos.el delete mode 100644 .emacs.d/elpa/ess-20160208.453/lisp/msdos.elc delete mode 100644 .emacs.d/elpa/ess-20160208.453/mailing.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/news.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/onews.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/readme.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/requires.info delete mode 100644 .emacs.d/elpa/ess-20160208.453/stabilty.info delete mode 100644 .emacs.d/elpa/irony-20160203.1207/.dir-locals.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-autoloads.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-autoloads.el~ delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-cdb-clang-complete.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-cdb-clang-complete.elc delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-cdb-json.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-cdb-json.elc delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-cdb-libclang.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-cdb-libclang.elc delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-cdb.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-cdb.elc delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-completion.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-completion.elc delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-diagnostics.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-diagnostics.elc delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-pkg.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-snippet.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony-snippet.elc delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/irony.elc delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/.clang-format delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/CMakeLists.txt delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/cmake/CheckLibClangBuiltinHeadersDir.cmake delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/cmake/LibClangDiagnosticsChecker.cpp delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/cmake/modules/FindLibClang.cmake delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/cmake/utils.cmake delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/docs/CMakeLists.txt delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/docs/irony-server.cfg.in delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/CMakeLists.txt delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/Command.cpp delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/Command.h delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/Commands.def delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/Irony.cpp delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/Irony.h delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/TUManager.cpp delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/TUManager.h delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/main.cpp delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/support/CIndex.h delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/support/CommandLineParser.cpp delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/support/CommandLineParser.h delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/support/NonCopyable.h delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/support/TemporaryFile.cpp delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/support/TemporaryFile.h delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/support/arraysize.h delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/src/support/iomanip_quoted.h delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/test/CMakeLists.txt delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/test/elisp/CMakeLists.txt delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/test/elisp/irony-cdb-json.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/test/elisp/irony.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/test/elisp/support/ert.el delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/test/elisp/support/ert.elc delete mode 100644 .emacs.d/elpa/irony-20160203.1207/server/test/elisp/test-config.el delete mode 100644 .emacs.d/elpa/julia-mode-20150912.800/julia-mode-autoloads.el delete mode 100644 .emacs.d/elpa/julia-mode-20150912.800/julia-mode-autoloads.el~ delete mode 100644 .emacs.d/elpa/julia-mode-20150912.800/julia-mode-pkg.el delete mode 100644 .emacs.d/elpa/julia-mode-20150912.800/julia-mode-pkg.elc delete mode 100644 .emacs.d/elpa/julia-mode-20150912.800/julia-mode.el delete mode 100644 .emacs.d/elpa/julia-mode-20150912.800/julia-mode.elc mode change 100644 => 100755 script.sh diff --git a/.bashrc b/.bashrc old mode 100644 new mode 100755 diff --git a/.emacs.d/ac-comphist.dat b/.emacs.d/ac-comphist.dat index 9bf0a88..93c2d1f 100644 --- a/.emacs.d/ac-comphist.dat +++ b/.emacs.d/ac-comphist.dat @@ -1,254 +1,302 @@ -((("virtual" . - [0 0 1 0 0 0 0]) - ("slot" . - [0 0 1 0]) - ("hpp" . - [1 0 0]) - ("main" . - [1 0 0 0]) - ("oops" . - [1 0 0 0]) - ("struct" . - [0 0 0 1 1 0]) - ("sort" . - [2 0 1 0]) - ("yas-global-mode" . - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) - ("algorithm" . - [0 0 0 0 1 0 0 1 0]) - ("alignas" . - [0 0 1 0 0 0 0]) - ("clock" . - [1 0 0 0 0]) - ("t1" . - [1 0]) - ("seq" . - [1 0 0]) - ("matrix" . - [1 0 0 0 0 0]) - ("range" . - [1 0 0 0 0]) - ("1:72" . - [5 0 1 0]) - ("scatterplot3d" . - [0 0 0 0 0 0 0 0 0 0 0 0 1]) - ("attach" . - [1 0 0 0 0 0]) - ("plot" . - [1 0 0 0]) - ("ncol" . - [1 0 0 0]) - ("nrow" . - [2 0 0 0]) - ("rgl::persp3d" . - [0 0 0 0 0 0 0 0 0 1 0 0]) - ("wireframe" . - [0 0 0 0 1 0 0 0 0]) - ("data" . - [4 0 0 0]) - ("ggplot" . - [0 0 0 0 0 1]) - ("library" . - [7 0 0 0 0 0 0]) - ("b" . - [1]) - ("auto" . - [0 0 1 0]) - (":download_per_slot() const" . - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) - ("download_per_slot" . - [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) - ("olsg" . - [2 0 1 1]) - ("(basic_ostream<_CharT, _Traits> &__os)" . - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2]) - (":pdt() const" . - [0 0 0 0 0 0 0 0 0 0 0 11]) - ("pdt" . - [3 1 11]) - ("solve" . - [6 0 0 0 1]) - ("_instance" . - [0 0 0 0 1 0 0 0 1]) - (":stations() const" . - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5]) - ("stations" . - [12 0 3 2 4 2 0 7]) - ("py_solution" . - [2 0 1 0 1 0 0 0 0 0 0]) - ("(int gen, ogsn::type_t type, int satellite" . - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2]) - ("cnes" . - [1 0 0 1]) - ("(int gen, ogsn::type_t type, int satellite{#, int year{#, int month#}#})" . - [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) - ("make_instance" . - [3 0 0 0 0 0 0 0 0 1 0 0 1]) - ("instance" . - [11 0 1 1 0 0 0 1]) - (":" . - [3]) - ("ogsn" . - [9 0 3 2]) - ("include" . - [0 0 0 0 0 0 3]) - ("begin" . - [3 0 1 1 0]) - ("()" . - [0 9]) - ("size" . - [7 0 4 2]) - ("at" . - [0 1]) - ("endl" . - [8 0 1 6]) - ("end" . - [2 0 1]) - ("cout" . - [8 0 0 8]) - ("vector" . - [11 0 4 3 2 2]) - ("std" . - [66 0 7]) - ("sol" . - [2 0 1]) - ("solution" . - [7 0 0 5 2 2 2 6]) - ("make_solution" . - [2 0 0 0 0 0 1 1 1 0 0 0 0]) - ("ilp_windows" . - [1 0 0 0 0 1 1 2 0 0 0]) - ("(const std::vector &)" . - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2]) - ("size_t" . - [10 0 0 0 0 0]) - ("_constraints" . - [1 0 0 0 0 0 0 0 0 0 0 3]) - ("x" . - [1]) - ("i" . - [20]) - ("_stations" . - [3 0 0 0 0 1 0 0 0]) - (":solve()" . - [0 0 0 0 0 0 0 2]) - ("s" . - [4]) - ("percent_data_transfered" . - [1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) - (":percent_data_transfered() const" . - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) - ("shared_ptr" . - [5 0 0 0 0 1 1 0 0 0]) - ("st_ilp" . - [2 0 0 0 0 0]) - ("mh" . - [2 0]) - ("solution_t" . - [2 0 0 0 0 0 0 0 0 0]) - ("keep" . - [1 0 0 0]) - ("stdin" . - [0 0 0 1 0]) - ("stationOn" . - [2 0 0 0 0 0 0 0 0]) - ("stationOff" . - [2 0 0 0 0 0 0 0 0 0]) - ("false" . - [0 0 0 0 1]) - ("_compute_pdt" . - [0 0 0 0 0 1 0 0 2 0 0 0]) - ("(std::vector stations)" . - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3]) - ("offPDT" . - [3 0 0 0 0 0]) - ("lastPDT" . - [1 0 0 0 0 0 0]) - ("onPDT" . - [1 0 0 0 0]) - ("gap_on2off" . - [1 0 0 0 0 0 0 0 0 0]) - ("gap_off2on" . - [0 0 0 0 0 0 0 0 0 1]) - ("ilp_prioritize" . - [0 0 0 0 0 0 0 1 0 0 0 0 0 0]) - ("ilpp" . - [1 0 0 0]) - ("_STDIO_H" . - [0 0 0 0 0 0 0 1]) - ("d" . - [1]) - ("int" . - [0 0 1]) - ("type_t" . - [0 0 1 0 0 0]) - ("y" . +((("slot" . + [0 0 0 1]) + (".debug-output" . + [0 0 0 0 0 0 1 0 0 0 0 0 0]) + ("ilp" . + [4 0 0]) + ("n" . [2]) - ("m" . - [6]) - ("(const std::string &filename)" . - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) - ("type" . - [3 0 0 0]) - ("sat" . - [2 0 0]) - ("first_year" . - [7 0 0 0 0 0 0 0 0 0]) - ("last_year" . - [3 0 0 0 0 0 0 0 0]) - ("array" . - [9 0 0 0 1]) - ("n_solutions" . - [4 0 1 2 1 1 0 0 0 0 0]) - ("yb" . - [4 0]) - ("ym" . - [2 0]) - ("(std::shared_ptr instance)" . - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2]) - ("log" . + ("res" . [1 0 0]) - ("pdts" . - [3 0 0 0]) - ("mb" . - [1 0]) - ("j" . - [9]) - ("instances" . - [4 0 0 0 0 0 0 0 1]) - ("solutions" . - [4 0 0 0 0 0 0 0 0]) - ("k" . - [5]) - ("l" . - [3]) - ("flush" . - [0 0 0 0 1]) - ("v" . - [1]) - ("p" . - [1]) - ("cerr" . - [3 0 0 0]) - ("c++-mode-common-hook" . - [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) - ("defun" . - [1 0 0 0 0]) - ("auto-complete" . - [0 0 0 0 0 0 0 0 0 0 0 0 1]) - ("add-to-list" . - [0 0 0 0 0 0 1 0 0 0 0]) - ("ac-sources" . - [0 0 0 0 0 0 0 1 0 0]) - ("DATA_FOLDER" . - [1 0 0 0 0 0 0 0 0 0 0]) - ("environment" . - [0 0 0 0 0 0 0 0 0 0 1]) - ("usebox" . - [0 0 0 2 0 1]) - ("usepackage" . - [0 0 0 0 1 4 2 0 0 0]) + ("printf" . + [12 0 0 0 0 0]) + ("ac-source-c-headers" . + [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) + ("require" . + [2 0 0 0 0 0 0]) + ("key-c-mode-setup" . + [0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0]) + ("c++-mode-hook" . + [0 0 0 0 0 0 0 0 0 0 0 1 1]) + ("local-set-key" . + [1 0 0 0 0 0 0 0 0 0 0 0 0]) + ("local" . + [5 0 0 0 0]) + ("add-hook" . + [4 0 0 0 0 0 0 1]) + ("fd-switch-dictionary" . + [0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) + ("LaTeX-mode-hook" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) + ("LaTeX-mode" . + [0 0 0 0 0 0 0 0 0 1]) ("français" . [0 0 0 0 0 0 1 0]) - ("short" . - [0 0 0 0 1]))) + ("usepackage" . + [0 0 0 0 1 4 2 0 0 0]) + ("usebox" . + [0 0 0 2 0 1]) + ("environment" . + [0 0 0 0 0 0 0 0 0 0 1]) + ("DATA_FOLDER" . + [1 0 0 0 0 0 0 0 0 0 0]) + ("ac-sources" . + [0 0 0 0 0 0 0 1 0 0]) + ("add-to-list" . + [0 0 0 0 0 0 1 0 0 0 1]) + ("auto-complete" . + [2 0 0 0 0 0 0 0 0 0 0 0 1]) + ("defun" . + [3 0 0 0 0]) + ("c++-mode-common-hook" . + [0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0]) + ("cerr" . + [3 0 0 0]) + ("p" . + [1]) + ("v" . + [1]) + ("flush" . + [0 0 0 0 1]) + ("l" . + [3]) + ("k" . + [5]) + ("solutions" . + [4 0 0 0 0 0 0 0 0]) + ("instances" . + [4 0 0 0 0 0 0 0 0]) + ("j" . + [9]) + ("mb" . + [1 0]) + ("pdts" . + [3 0 0 0]) + ("log" . + [1 0 0]) + ("(std::shared_ptr instance)" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2]) + ("ym" . + [2 0]) + ("yb" . + [4 0]) + ("n_solutions" . + [4 0 1 2 1 1 0 0 0 0 0]) + ("array" . + [9 0 0 0 0]) + ("last_year" . + [3 0 0 0 0 0 0 0 0]) + ("first_year" . + [7 0 0 0 0 0 0 0 0 0]) + ("sat" . + [2 0 0]) + ("type" . + [3 0 0 0]) + ("(const std::string &filename)" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) + ("m" . + [6]) + ("y" . + [2]) + ("type_t" . + [0 0 1 0 0 0]) + ("int" . + [0 0 1]) + ("d" . + [1]) + ("_STDIO_H" . + [0 0 0 0 0 0 0 1]) + ("ilpp" . + [1 0 0 1]) + ("ilp_prioritize" . + [0 0 0 0 0 0 0 1 0 0 0 0 0 0]) + ("gap_off2on" . + [0 0 0 0 0 0 0 0 0 1]) + ("gap_on2off" . + [1 0 0 0 0 0 0 0 0 0]) + ("onPDT" . + [1 0 0 0 0]) + ("lastPDT" . + [1 0 0 0 0 0 0]) + ("offPDT" . + [3 0 0 0 0 0]) + ("(std::vector stations)" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3]) + ("_compute_pdt" . + [0 0 0 0 0 1 0 0 2 0 0 0]) + ("false" . + [0 0 0 0 1]) + ("stationOff" . + [2 0 0 0 0 0 0 0 0 0]) + ("stationOn" . + [2 0 0 0 0 0 0 0 0]) + ("stdin" . + [0 0 0 1 0]) + ("keep" . + [1 0 0 0]) + ("solution_t" . + [2 0 0 0 0 0 0 0 0 0]) + ("mh" . + [2 0]) + ("st_ilp" . + [2 0 0 0 0 0]) + ("shared_ptr" . + [8 0 0 0 0 0 1 0 0 2]) + (":percent_data_transfered() const" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) + ("percent_data_transfered" . + [1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) + ("s" . + [3]) + (":solve()" . + [0 0 0 0 0 0 0 2]) + ("_stations" . + [3 0 0 0 0 1 0 0 0]) + ("i" . + [20]) + ("x" . + [1]) + ("_constraints" . + [1 0 0 0 0 0 0 0 0 0 0 3]) + ("size_t" . + [10 0 0 0 0 0]) + ("(const std::vector &)" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2]) + ("ilp_windows" . + [1 0 0 0 0 1 1 2 0 0 0]) + ("make_solution" . + [2 0 0 0 0 0 1 1 2 0 0 0 0]) + ("solution" . + [7 0 0 5 2 2 2 12]) + ("sol" . + [16 0 1]) + ("std" . + [62 0 7]) + ("vector" . + [10 0 2 3 1 1]) + ("cout" . + [8 0 0 8]) + ("end" . + [2 0 1]) + ("endl" . + [8 0 1 6]) + ("at" . + [0 1]) + ("size" . + [7 0 4 2]) + ("()" . + [0 11]) + ("begin" . + [3 0 1 1 0]) + ("include" . + [0 0 0 0 0 0 4]) + ("ogsn" . + [15 0 2 3]) + (":" . + [3]) + ("instance" . + [8 0 1 2 1 0 0 4]) + ("make_instance" . + [3 0 0 0 1 0 0 0 0 0 0 0 1]) + ("(int gen, ogsn::type_t type, int satellite{#, int year{#, int month#}#})" . + [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) + ("cnes" . + [1 0 0 1]) + ("(int gen, ogsn::type_t type, int satellite" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4]) + ("py_solution" . + [2 0 2 0 3 0 0 0 0 0 0]) + ("stations" . + [12 0 3 2 4 2 0 8]) + (":stations() const" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5]) + ("_instance" . + [0 0 0 0 1 0 0 0 1]) + ("solve" . + [6 0 0 0 1]) + ("pdt" . + [3 1 14]) + (":pdt() const" . + [0 0 0 0 0 0 0 0 0 0 0 11]) + ("(basic_ostream<_CharT, _Traits> &__os)" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2]) + ("olsg" . + [2 0 1 1]) + ("download_per_slot" . + [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) + (":download_per_slot() const" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) + ("auto" . + [0 0 1 0]) + ("b" . + [1]) + ("library" . + [7 0 0 0 0 0 0]) + ("ggplot" . + [0 0 0 0 0 1]) + ("data" . + [4 0 0 0]) + ("wireframe" . + [0 0 0 0 1 0 0 0 0]) + ("rgl::persp3d" . + [0 0 0 0 0 0 0 0 0 1 0 0]) + ("nrow" . + [2 0 0 0]) + ("ncol" . + [1 0 0 0]) + ("plot" . + [1 0 0 0]) + ("attach" . + [1 0 0 0 0 0]) + ("scatterplot3d" . + [0 0 0 0 0 0 0 0 0 0 0 0 1]) + ("1:72" . + [5 0 1 0]) + ("range" . + [1 0 0 0 0]) + ("matrix" . + [1 0 0 0 0 0]) + ("seq" . + [1 0 0]) + ("t1" . + [1 0]) + ("clock" . + [1 0 0 0 0]) + ("alignas" . + [0 0 1 0 0 0 0]) + ("algorithm" . + [0 0 0 0 1 0 0 1 0]) + ("yas-global-mode" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) + ("sort" . + [2 0 1 0]) + ("struct" . + [0 0 0 1 1 0]) + ("oops" . + [1 0 0 0]) + ("package-install" . + [2 0 0 0 0 0 0 0 0 0 0 0 0 0 3]) + ("ac-math" . + [1 0 0 0 0 0 0]) + ("auto-complete-c-headers" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0]) + ("auto-complete-clang-async" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0]) + ("global-auto-complete-mode" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]) + ("c-mode-hook" . + [0 0 0 0 0 0 0 0 0 0 1]) + ("ac-cc-mode-setup" . + [0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0]) + ("c-mode-common-hook" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]) + ("ins" . + [6 0 0]) + ("make_instance_path" . + [0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0]) + ("slots" . + [0 0 1 1 2]) + ("visibility_windows" . + [0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) + ("static" . + [0 0 0 1 1 1]))) diff --git a/.emacs.d/auto-save-list/.saves-12370-pinkfloyd.laas.fr~ b/.emacs.d/auto-save-list/.saves-12370-pinkfloyd.laas.fr~ deleted file mode 100644 index f660bb6..0000000 --- a/.emacs.d/auto-save-list/.saves-12370-pinkfloyd.laas.fr~ +++ /dev/null @@ -1,6 +0,0 @@ -/home/mcapelle/.emacs.el -/home/mcapelle/#.emacs.el# -/home/mcapelle/.bashrc -/home/mcapelle/#.bashrc# -/home/mcapelle/.softwares/emacs-24.5/share/emacs/24.5/lisp/loaddefs.el -/home/mcapelle/.softwares/emacs-24.5/share/emacs/24.5/lisp/#loaddefs.el# diff --git a/.emacs.d/clang-complete b/.emacs.d/clang-complete deleted file mode 100755 index 56c344b171f4c5ca024923842afd45d0f7c46db1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58894 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 delta 12 TcmZ3+vW#Vd0i)4I!>^108nOf+ diff --git a/.emacs.d/elpa/ac-c-headers-20151021.134/ac-c-headers.elc b/.emacs.d/elpa/ac-c-headers-20151021.134/ac-c-headers.elc index c407179007123ffa95c761aca71cab608c652aba..699b5efc5f6ce52f606474bc16a519baf954c62f 100644 GIT binary patch delta 12 TcmbO!JyUvu0i)qY!wg;k8chST delta 12 TcmbO!JyUvu0i)4I!wg;k8d3wZ diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang-autoloads.el b/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang-autoloads.el deleted file mode 100644 index 8d3119e..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang-autoloads.el +++ /dev/null @@ -1,16 +0,0 @@ -;;; ac-clang-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;;;### (autoloads nil nil ("ac-clang-pkg.el" "ac-clang.el") (22209 -;;;;;; 51595 894686 65000)) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; ac-clang-autoloads.el ends here diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang-autoloads.el~ b/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang-autoloads.el~ deleted file mode 100644 index a031ac6..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang-autoloads.el~ +++ /dev/null @@ -1,11 +0,0 @@ -;;; ac-clang-autoloads.el --- automatically extracted autoloads -;; -;;; Code: -(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; End: -;;; ac-clang-autoloads.el ends here diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang-pkg.el b/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang-pkg.el deleted file mode 100644 index f5eef8f..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang-pkg.el +++ /dev/null @@ -1,11 +0,0 @@ -(define-package "ac-clang" "20150906.1008" "Auto Completion source by libclang for GNU Emacs" - '((emacs "24") - (cl-lib "0.5") - (auto-complete "1.4.0") - (pos-tip "0.4.6") - (yasnippet "0.8.0")) - :url "https://github.com/yaruopooner/ac-clang" :keywords - '("completion" "convenience" "intellisense")) -;; Local Variables: -;; no-byte-compile: t -;; End: diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang.el b/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang.el deleted file mode 100644 index 47a8bd6..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang.el +++ /dev/null @@ -1,1406 +0,0 @@ -;;; ac-clang.el --- Auto Completion source by libclang for GNU Emacs -*- lexical-binding: t; -*- - -;;; last updated : 2015/09/05.04:13:04 - -;; Copyright (C) 2010 Brian Jiang -;; Copyright (C) 2012 Taylan Ulrich Bayirli/Kammer -;; Copyright (C) 2013 Golevka -;; Copyright (C) 2013-2015 yaruopooner -;; -;; Original Authors: Brian Jiang -;; Golevka [https://github.com/Golevka] -;; Taylan Ulrich Bayirli/Kammer -;; Many others -;; Author: yaruopooner [https://github.com/yaruopooner] -;; URL: https://github.com/yaruopooner/ac-clang -;; Keywords: completion, convenience, intellisense -;; Version: 1.6.0 -;; Package-Requires: ((emacs "24") (cl-lib "0.5") (auto-complete "1.4.0") (pos-tip "0.4.6") (yasnippet "0.8.0")) - - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see . - - -;;; Commentary: -;; -;; * INTRODUCTION: -;; This program fork from auto-complete-clang-async.el -;; ac-clang provide code completion and arguments expand. -;; This program consists of the client(elisp) and server(binary). -;; The server is executable file, and a self-build is necessary. -;; The server achieve code completion using libclang of LLVM. -;; -;; * FEATURES: -;; - Basic(same auto-complete-clang-async) -;; Code Completion by libclang. -;; Auto Completion support. -;; Uses a "completion server" process to utilize libclang. -;; C/C++/Objective-C mode support. -;; Jump to definition or declaration. return from jumped location. -;; Jump is an on-the-fly that doesn't use the tag file. -;; Also provides flymake syntax checking. -;; A few bugfix and refactoring. -;; -;; - Extension -;; "completion server" process is 1 process per Emacs. (original version is per buffer) -;; Template Method Parameters expand support. -;; Manual Completion support. -;; libclang CXTranslationUnit Flags support. -;; libclang CXCodeComplete Flags support. -;; Multibyte support. -;; Debug Logger Buffer support. -;; Jump to inclusion-file. return from jumped location. -;; more a few modified. (client & server) -;; -;; - Optional -;; CMake support. -;; clang-server.exe and libclang.dll built with Microsoft Visual Studio 2015/2013. -;; x86_64 Machine Architecture + Windows Platform support. (Visual Studio Predefined Macros) -;; -;; * EASY INSTALLATION(Windows Only): -;; - Visual C++ Redistributable Packages for Visual Studio 2015/2013 -;; Must be installed if don't have a Visual Studio 2015/2013. -;; -;; - 2015 -;; [http://www.microsoft.com/download/details.aspx?id=48145] -;; - 2013 -;; [http://www.microsoft.com/download/details.aspx?id=40784] -;; -;; - Completion Server Program -;; Built with Microsoft Visual Studio 2015/2013. -;; [https://github.com/yaruopooner/ac-clang/releases] -;; 1. download clang-server.zip -;; 2. clang-server.exe and libclang.dll is expected to be available in the PATH or in Emacs' exec-path. -;; -;; * STANDARD INSTALLATION(Linux, Windows): -;; Generate a Unix Makefile or a Visual Studio Project by CMake. -;; -;; - Self-Build step -;; 1. LLVM -;; checkout, apply patch, generate project, build -;; It is recommended that you use this shell. -;; [https://github.com/yaruopooner/llvm-build-shells.git] -;; -;; 2. Clang Server -;; generate project, build -;; -;; see clang-server's reference manual. -;; ac-clang/clang-server/readme.org -;; -;; * NOTICE: -;; - LLVM libclang.[dll, so, ...] -;; This binary is not official binary. -;; Because offical libclang has mmap lock problem. -;; Applied a patch to LLVM's source code in order to solve this problem. -;; -;; see clang-server's reference manual. -;; ac-clang/clang-server/readme.org -;; - - -;; Usage: -;; * DETAILED MANUAL: -;; For more information and detailed usage, refer to the project page: -;; [https://github.com/yaruopooner/ac-clang] -;; -;; * SETUP: -;; (require 'ac-clang) -;; -;; (setq w32-pipe-read-delay 0) ;; <- Windows Only -;; -;; (when (ac-clang-initialize) -;; (add-hook 'c-mode-common-hook '(lambda () -;; (setq ac-clang-cflags CFLAGS) -;; (ac-clang-activate-after-modify)))) -;; -;; * DEFAULT KEYBIND -;; - start auto completion -;; code completion & arguments expand -;; `.` `->` `::` -;; - start manual completion -;; code completion & arguments expand -;; `` -;; - jump to inclusion-file, definition, declaration / return from it -;; this is nestable jump. -;; `M-.` / `M-,` -;; - -;;; Code: - - - -(require 'cl-lib) -(require 'auto-complete) -(require 'pos-tip) -(require 'yasnippet) -(require 'flymake) - - - - -(defconst ac-clang-version "1.6.0") -(defconst ac-clang-libclang-version nil) - - -;;; -;;; for Server vars -;;; - - -;; clang-server binary type -(defvar ac-clang-server-type 'release - "clang-server binary type -`release' : release build version -`debug' : debug build version (server develop only) -`x86_64' : (obsolete. It will be removed in the future.) 64bit release build version -`x86_64d' : (obsolete. It will be removed in the future.) 64bit debug build version (server develop only) -`x86_32' : (obsolete. It will be removed in the future.) 32bit release build version -`x86_32d' : (obsolete. It will be removed in the future.) 32bit debug build version (server develop only) -") - - -;; clang-server launch option values -(defvar ac-clang-server-stdin-buffer-size nil - "STDIN buffer size. value range is 1 - 5 MB. -If the value is nil, will be allocated 1MB. -The value is specified in MB.") - -(defvar ac-clang-server-stdout-buffer-size nil - "STDOUT buffer size. value range is 1 - 5 MB. -If the value is nil, will be allocated 1MB. -The value is specified in MB.") - -(defvar ac-clang-server-logfile nil - "IPC records output file.(for debug)") - - -;; server binaries property list -(defconst ac-clang--server-binaries '(release "clang-server" - debug "clang-server-debug")) - -(defconst ac-clang--server-obsolete-binaries '(x86_64 "clang-server-x86_64" - x86_64d "clang-server-x86_64d" - x86_32 "clang-server-x86_32" - x86_32d "clang-server-x86_32d")) - - -;; server process details -(defcustom ac-clang--server-executable nil - "Location of clang-server executable." - :group 'auto-complete - :type 'file) - - -(defconst ac-clang--process-name "Clang-Server") - -(defconst ac-clang--process-buffer-name "*Clang-Server*") -(defconst ac-clang--completion-buffer-name "*Clang-Completion*") -(defconst ac-clang--diagnostics-buffer-name "*Clang-Diagnostics*") - -(defvar ac-clang--server-process nil) -(defvar ac-clang--status 'idle - "clang-server status -`idle' : job is nothing -`receive' : receiving command sent result -`transaction' : transaction execute to received command result -`shutdown' : shutdown server - ") - - -(defvar ac-clang--activate-buffers nil) - - -;; server debug -(defconst ac-clang--debug-log-buffer-name "*Clang-Log*") -(defvar ac-clang-debug-log-buffer-p nil) -(defvar ac-clang-debug-log-buffer-size (* 1024 50)) - - -;; clang-server behaviors -(defvar ac-clang-clang-translation-unit-flags "CXTranslationUnit_DetailedPreprocessingRecord|CXTranslationUnit_PrecompiledPreamble|CXTranslationUnit_CacheCompletionResults" - "CXTranslationUnit Flags. -for Server behavior. -The value sets flag-name strings or flag-name combined strings. -Separator is `|'. -`CXTranslationUnit_DetailedPreprocessingRecord' : Required if you want jump to macro declaration, inclusion-file. -`CXTranslationUnit_Incomplete' : -`CXTranslationUnit_PrecompiledPreamble' : Increase completion performance. -`CXTranslationUnit_CacheCompletionResults' : Increase completion performance. -`CXTranslationUnit_ForSerialization' : -`CXTranslationUnit_CXXChainedPCH' : -`CXTranslationUnit_SkipFunctionBodies' : -`CXTranslationUnit_IncludeBriefCommentsInCodeCompletion' : Required if you want to brief-comment of completion. -") - -(defvar ac-clang-clang-complete-at-flags "CXCodeComplete_IncludeMacros" - "CXCodeComplete Flags. -for Server behavior. -The value sets flag-name strings or flag-name combined strings. -Separator is `|'. -`CXCodeComplete_IncludeMacros' -`CXCodeComplete_IncludeCodePatterns' -`CXCodeComplete_IncludeBriefComments' -") - -(defvar ac-clang-clang-complete-results-limit 0 - "acceptable number of result candidate. -for Server behavior. -ac-clang-clang-complete-results-limit == 0 : accept all candidates. -ac-clang-clang-complete-results-limit != 0 : if number of result candidates greater than ac-clang-clang-complete-results-limit, discard all candidates. -") - - -;; client behaviors -(defvar ac-clang-tmp-pch-automatic-cleanup-p (eq system-type 'windows-nt) - "automatically cleanup for generated temporary precompiled headers.") - - -(defvar ac-clang-server-automatic-recovery-p t - "automatically recover server when command queue reached limitation.") - - - -;;; -;;; for auto-complete vars -;;; - -;; clang-server response filter pattern for auto-complete candidates -(defconst ac-clang--completion-pattern "^COMPLETION: \\(%s[^\s\n:]*\\)\\(?: : \\)*\\(.*$\\)") - -;; auto-complete behaviors -(defvar ac-clang-async-autocompletion-automatically-p t - "If autocompletion is automatically triggered when you type `.', `->', `::'") - -(defvar ac-clang-async-autocompletion-manualtrigger-key "") - - - -;; auto-complete faces -(defface ac-clang-candidate-face - '((t (:background "lightgray" :foreground "navy"))) - "Face for clang candidate" - :group 'auto-complete) - -(defface ac-clang-selection-face - '((t (:background "navy" :foreground "white"))) - "Face for the clang selected candidate." - :group 'auto-complete) - - - -;;; -;;; for Session vars -;;; - -(defvar-local ac-clang--activate-p nil) - -(defvar-local ac-clang--session-name nil) - -;; for patch -(defvar-local ac-clang--suspend-p nil) - - -;; auto-complete ac-sources backup -(defvar-local ac-clang--ac-sources-backup nil) - - -;; auto-complete candidates and completion start-point -(defvar-local ac-clang--candidates nil) -(defvar-local ac-clang--start-point nil) -(defvar-local ac-clang--template-candidates nil) -(defvar-local ac-clang--template-start-point nil) - - -;; CFLAGS build behaviors -(defvar-local ac-clang-language-option-function nil - "Function to return the language type for option -x.") - -(defvar-local ac-clang-prefix-header nil - "The prefix header to pass to the Clang executable.") - - -;; clang-server session behavior -(defvar-local ac-clang-cflags nil - "Extra flags to pass to the Clang executable. -This variable will typically contain include paths, e.g., (\"-I~/MyProject\" \"-I.\").") - - -(defvar ac-clang--jump-stack nil - "The jump stack (keeps track of jumps via jump-inclusion, jump-definition, jump-declaration, jump-smart)") - - - - -;;; -;;; primitive functions -;;; - -;; server launch option builder -(defun ac-clang--build-server-launch-options () - (append - (when ac-clang-server-stdin-buffer-size - (list "--stdin-buffer-size" (format "%d" ac-clang-server-stdin-buffer-size))) - (when ac-clang-server-stdout-buffer-size - (list "--stdout-buffer-size" (format "%d" ac-clang-server-stdout-buffer-size))) - (when ac-clang-server-logfile - (list "--logfile" (format "%s" ac-clang-server-logfile))))) - - -;; CFLAGS builders -(defsubst ac-clang--language-option () - (or (and ac-clang-language-option-function - (funcall ac-clang-language-option-function)) - (cond ((eq major-mode 'c++-mode) - "c++") - ((eq major-mode 'c-mode) - "c") - ((eq major-mode 'objc-mode) - (cond ((string= "m" (file-name-extension (buffer-file-name))) - "objective-c") - (t - "objective-c++"))) - (t - "c++")))) - - -(defsubst ac-clang--build-complete-cflags () - (append '("-cc1" "-fsyntax-only") - (list "-x" (ac-clang--language-option)) - ac-clang-cflags - (when (stringp ac-clang-prefix-header) - (list "-include-pch" (expand-file-name ac-clang-prefix-header))))) - - - -(defsubst ac-clang--get-column-bytes () - (1+ (length (encode-coding-string (buffer-substring-no-properties (line-beginning-position) (point)) 'binary)))) - - -(defsubst ac-clang--get-buffer-bytes () - (1- (position-bytes (point-max)))) - - -(defsubst ac-clang--create-position-string (point) - (save-excursion - (goto-char point) - (format "line:%d\ncolumn:%d\n" (line-number-at-pos) (ac-clang--get-column-bytes)))) - - -(defmacro ac-clang--with-widening (&rest body) - (declare (indent 0) (debug t)) - `(save-restriction - (widen) - (progn ,@body))) - - -;; (defmacro ac-clang--with-running-server (&rest body) -;; (declare (indent 0) (debug t)) -;; (when (eq (process-status ac-clang--server-process) 'run) -;; `(progn ,@body))) - - - -;;; -;;; transaction command functions for IPC -;;; - -(defvar ac-clang--server-command-queue nil) -(defvar ac-clang--server-command-queue-limit 4) - - -(defsubst ac-clang--request-command (sender-function receive-buffer receiver-function args) - (if (< (length ac-clang--server-command-queue) ac-clang--server-command-queue-limit) - (progn - (when (and receive-buffer receiver-function) - (ac-clang--enqueue-command `(:buffer ,receive-buffer :receiver ,receiver-function :sender ,sender-function :args ,args))) - (funcall sender-function args)) - (message "ac-clang : The number of requests of the command queue reached the limit.") - ;; This is recovery logic. - (when ac-clang-server-automatic-recovery-p - (ac-clang--clear-command-queue) - ;; Send message - (ac-clang-get-server-specification) - ;; Process response wait(as with thread preemption point) - (sleep-for 0.1) - ;; When process response is not received, I suppose that server became to deadlock. - (if (= (length ac-clang--server-command-queue) 0) - (message "ac-clang : clear server command queue.") - (ac-clang-reboot-server))))) - - -(defsubst ac-clang--enqueue-command (command) - (if ac-clang--server-command-queue - (nconc ac-clang--server-command-queue (list command)) - (setq ac-clang--server-command-queue (list command)))) - - -(defsubst ac-clang--dequeue-command () - (let ((command ac-clang--server-command-queue)) - (setq ac-clang--server-command-queue (cdr command)) - (car command))) - - -(defsubst ac-clang--get-top-command () - (car ac-clang--server-command-queue)) - - -(defsubst ac-clang--clear-command-queue () - (setq ac-clang--server-command-queue nil)) - - - -;;; -;;; sender primitive functions for IPC -;;; - -(defsubst ac-clang--process-send-string (string) - (process-send-string ac-clang--server-process string) - - (when ac-clang-debug-log-buffer-p - (let ((log-buffer (get-buffer-create ac-clang--debug-log-buffer-name))) - (when log-buffer - (with-current-buffer log-buffer - (when (and ac-clang-debug-log-buffer-size (> (buffer-size) ac-clang-debug-log-buffer-size)) - (erase-buffer)) - - (goto-char (point-max)) - (pp (encode-coding-string string 'binary) log-buffer) - (insert "\n")))))) - - -(defsubst ac-clang--process-send-region (start end) - (process-send-region ac-clang--server-process start end)) - - -(defun ac-clang--send-set-clang-parameters () - (ac-clang--process-send-string (format "translation_unit_flags:%s\n" ac-clang-clang-translation-unit-flags)) - (ac-clang--process-send-string (format "complete_at_flags:%s\n" ac-clang-clang-complete-at-flags)) - (ac-clang--process-send-string (format "complete_results_limit:%d\n" ac-clang-clang-complete-results-limit))) - - -(defun ac-clang--send-cflags () - ;; send message head and num_cflags - (ac-clang--process-send-string (format "num_cflags:%d\n" (length (ac-clang--build-complete-cflags)))) - - (let (cflags) - ;; create CFLAGS strings - (mapc - (lambda (arg) - (setq cflags (concat cflags (format "%s\n" arg)))) - (ac-clang--build-complete-cflags)) - ;; send cflags - (ac-clang--process-send-string cflags))) - - -(defun ac-clang--send-source-code () - (ac-clang--with-widening - (let ((source-buffuer (current-buffer)) - (cs (coding-system-change-eol-conversion buffer-file-coding-system 'unix))) - (with-temp-buffer - (set-buffer-multibyte nil) - (let ((temp-buffer (current-buffer))) - (with-current-buffer source-buffuer - (decode-coding-region (point-min) (point-max) cs temp-buffer))) - - (ac-clang--process-send-string (format "source_length:%d\n" (ac-clang--get-buffer-bytes))) - ;; (ac-clang--process-send-region (point-min) (point-max)) - (ac-clang--process-send-string (buffer-substring-no-properties (point-min) (point-max))) - (ac-clang--process-send-string "\n\n"))))) - - -;; (defun ac-clang--send-source-code () -;; (ac-clang--with-widening -;; (ac-clang--process-send-string (format "source_length:%d\n" (ac-clang--get-buffer-bytes))) -;; (ac-clang--process-send-region (point-min) (point-max)) -;; (ac-clang--process-send-string "\n\n"))) - - -(defsubst ac-clang--send-command (command-type command-name &optional session-name) - (let ((command (format "command_type:%s\ncommand_name:%s\n" command-type command-name))) - (when session-name - (setq command (concat command (format "session_name:%s\n" session-name)))) - (ac-clang--process-send-string command))) - - - -;;; -;;; sender command request functions for IPC -;;; - -(defun ac-clang--send-server-specification-request (&optional _args) - (ac-clang--send-command "Server" "GET_SPECIFICATION")) - - -(defun ac-clang--send-clang-parameters-request (&optional _args) - (ac-clang--send-command "Server" "SET_CLANG_PARAMETERS") - (ac-clang--send-set-clang-parameters)) - - -(defun ac-clang--send-create-session-request (&optional _args) - (ac-clang--with-widening - (ac-clang--send-command "Server" "CREATE_SESSION" ac-clang--session-name) - (ac-clang--send-cflags) - (ac-clang--send-source-code))) - - -(defun ac-clang--send-delete-session-request (&optional _args) - (ac-clang--send-command "Server" "DELETE_SESSION" ac-clang--session-name)) - - -(defun ac-clang--send-reset-server-request (&optional _args) - (ac-clang--send-command "Server" "RESET")) - - -(defun ac-clang--send-shutdown-request (&optional _args) - (when (eq (process-status ac-clang--server-process) 'run) - (ac-clang--send-command "Server" "SHUTDOWN"))) - - -(defun ac-clang--send-suspend-request (&optional _args) - (ac-clang--send-command "Session" "SUSPEND" ac-clang--session-name)) - - -(defun ac-clang--send-resume-request (&optional _args) - (ac-clang--send-command "Session" "RESUME" ac-clang--session-name)) - - -(defun ac-clang--send-cflags-request (&optional _args) - (if (listp ac-clang-cflags) - (ac-clang--with-widening - (ac-clang--send-command "Session" "SET_CFLAGS" ac-clang--session-name) - (ac-clang--send-cflags) - (ac-clang--send-source-code)) - (message "`ac-clang-cflags' should be a list of strings"))) - - -(defun ac-clang--send-reparse-request (&optional _args) - (ac-clang--with-widening - (ac-clang--send-command "Session" "SET_SOURCECODE" ac-clang--session-name) - (ac-clang--send-source-code) - (ac-clang--send-command "Session" "REPARSE" ac-clang--session-name))) - - -(defun ac-clang--send-completion-request (&optional args) - (ac-clang--with-widening - (ac-clang--send-command "Session" "COMPLETION" ac-clang--session-name) - (ac-clang--process-send-string (ac-clang--create-position-string (plist-get args :start-point))) - (ac-clang--send-source-code))) - - -(defun ac-clang--send-diagnostics-request (&optional _args) - (ac-clang--with-widening - (ac-clang--send-command "Session" "SYNTAXCHECK" ac-clang--session-name) - (ac-clang--send-source-code))) - - -(defun ac-clang--send-inclusion-request (&optional _args) - (ac-clang--with-widening - (ac-clang--send-command "Session" "INCLUSION" ac-clang--session-name) - (ac-clang--process-send-string (ac-clang--create-position-string (point))) - (ac-clang--send-source-code))) - - -(defun ac-clang--send-definition-request (&optional _args) - (ac-clang--with-widening - (ac-clang--send-command "Session" "DEFINITION" ac-clang--session-name) - (ac-clang--process-send-string (ac-clang--create-position-string (point))) - (ac-clang--send-source-code))) - - -(defun ac-clang--send-declaration-request (&optional _args) - (ac-clang--with-widening - (ac-clang--send-command "Session" "DECLARATION" ac-clang--session-name) - (ac-clang--process-send-string (ac-clang--create-position-string (point))) - (ac-clang--send-source-code))) - - -(defun ac-clang--send-smart-jump-request (&optional _args) - (ac-clang--with-widening - (ac-clang--send-command "Session" "SMARTJUMP" ac-clang--session-name) - (ac-clang--process-send-string (ac-clang--create-position-string (point))) - (ac-clang--send-source-code))) - - - - -;;; -;;; Receive clang-server responses common filter (receive response by command) -;;; - -(defvar ac-clang--transaction-context nil) -(defvar ac-clang--transaction-context-buffer-name nil) -(defvar ac-clang--transaction-context-buffer nil) -(defvar ac-clang--transaction-context-buffer-marker nil) -(defvar ac-clang--transaction-context-receiver nil) -(defvar ac-clang--transaction-context-args nil) - - -(defun ac-clang--process-filter (process output) - ;; command parse for context - (unless ac-clang--transaction-context - (if (setq ac-clang--transaction-context (ac-clang--dequeue-command)) - ;; setup context - (progn - (setq ac-clang--transaction-context-buffer-name (plist-get ac-clang--transaction-context :buffer) - ac-clang--transaction-context-receiver (plist-get ac-clang--transaction-context :receiver) - ac-clang--transaction-context-args (plist-get ac-clang--transaction-context :args)) - (setq ac-clang--status 'receive) - (when ac-clang--transaction-context-buffer-name - (setq ac-clang--transaction-context-buffer (get-buffer-create ac-clang--transaction-context-buffer-name)) - (with-current-buffer ac-clang--transaction-context-buffer - (unless (local-variable-p 'ac-clang--transaction-context-buffer-marker) - ;; The buffer created just now. - (set (make-local-variable 'ac-clang--transaction-context-buffer-marker) (point-min-marker))) - (erase-buffer)))) - (progn - (setq ac-clang--transaction-context-buffer (process-buffer process)) - (setq ac-clang--transaction-context-buffer-marker (process-mark process))))) - - ;; Output of the server is appended to context buffer. - (when ac-clang--transaction-context-buffer - (ac-clang--append-to-transaction-context-buffer output)) - - ;; Check the server response termination. - (when (and ac-clang--transaction-context (string= (substring output -1 nil) "$")) - ;; execute context receiver. - (setq ac-clang--status 'transaction) - (unless (ignore-errors - (funcall ac-clang--transaction-context-receiver ac-clang--transaction-context-buffer output ac-clang--transaction-context-args) - t) - (message "ac-clang : receiver function error!")) - ;; clear current context. - (setq ac-clang--transaction-context nil - ac-clang--transaction-context-buffer-name nil - ac-clang--transaction-context-buffer nil - ac-clang--transaction-context-receiver nil - ac-clang--transaction-context-args nil) - (setq ac-clang--status 'idle))) - - -(defun ac-clang--append-to-transaction-context-buffer (output) - "Append output to the transaction context buffer." - (with-current-buffer ac-clang--transaction-context-buffer - (save-excursion - ;; Insert the text, advancing the process marker. - (goto-char ac-clang--transaction-context-buffer-marker) - (insert output) - (set-marker ac-clang--transaction-context-buffer-marker (point))) - (goto-char ac-clang--transaction-context-buffer-marker))) - - - - -;;; -;;; receive clang-server responses. -;;; build completion candidates and fire auto-complete. -;;; - -(defun ac-clang--build-completion-candidates (buffer start-word) - (with-current-buffer buffer - (goto-char (point-min)) - (let ((pattern (format ac-clang--completion-pattern (regexp-quote start-word))) - candidates - candidate - declaration - (prev-candidate "")) - (while (re-search-forward pattern nil t) - (setq candidate (match-string-no-properties 1)) - (unless (string= "Pattern" candidate) - (setq declaration (match-string-no-properties 2)) - - (if (string= candidate prev-candidate) - (progn - (when declaration - (setq candidate (propertize candidate 'ac-clang--detail (concat (get-text-property 0 'ac-clang--detail (car candidates)) "\n" declaration))) - (setf (car candidates) candidate))) - (setq prev-candidate candidate) - (when declaration - (setq candidate (propertize candidate 'ac-clang--detail declaration))) - (push candidate candidates)))) - candidates))) - - -(defun ac-clang--receive-completion (buffer _output args) - (setq ac-clang--candidates (ac-clang--build-completion-candidates buffer (plist-get args :start-word))) - (setq ac-clang--start-point (plist-get args :start-point)) - - ;; (setq ac-show-menu t) - ;; (ac-start :force-init t) - ;; (ac-update)) - (ac-complete-clang-async)) - - - -(defun ac-clang--get-autotrigger-start-point (&optional point) - (unless point - (setq point (point))) - (let ((c (char-before point))) - (when (or - ;; '.' - (eq ?. c) - ;; '->' - (and (eq ?> c) - (eq ?- (char-before (1- point)))) - ;; '::' - (and (eq ?: c) - (eq ?: (char-before (1- point))))) - point))) - - -(defun ac-clang--get-manualtrigger-start-point () - (let* ((symbol-point (ac-prefix-symbol)) - (point (or symbol-point (point))) - (c (char-before point))) - (when (or - (ac-clang--get-autotrigger-start-point point) - ;; ' ' for manual completion - (eq ?\s c)) - point))) - - -(defsubst ac-clang--async-completion (start-point) - (when start-point - (ac-clang--request-command - 'ac-clang--send-completion-request - ac-clang--completion-buffer-name - 'ac-clang--receive-completion - (list :start-word (buffer-substring-no-properties start-point (point)) :start-point start-point)))) - - -(defun ac-clang-async-autocomplete-autotrigger () - (interactive) - - (self-insert-command 1) - (when ac-clang-async-autocompletion-automatically-p - (ac-clang--async-completion (ac-clang--get-autotrigger-start-point)))) - - -(defun ac-clang-async-autocomplete-manualtrigger () - (interactive) - - (ac-clang--async-completion (ac-clang--get-manualtrigger-start-point))) - - - - -;;; -;;; auto-complete ac-source build functions -;;; - -(defsubst ac-clang--candidates () - ac-clang--candidates) - - -(defsubst ac-clang--prefix () - ac-clang--start-point) - - -(defsubst ac-clang--clean-document (s) - (when s - (setq s (replace-regexp-in-string "<#\\|#>\\|\\[#" "" s)) - (setq s (replace-regexp-in-string "#\\]" " " s))) - s) - - -(defsubst ac-clang--in-string/comment () - "Return non-nil if point is in a literal (a comment or string)." - (nth 8 (syntax-ppss))) - - -(defun ac-clang--action () - (interactive) - - ;; (ac-last-quick-help) - (let* ((func-name (regexp-quote (substring-no-properties (cdr ac-last-completion)))) - (c/c++-pattern (format "\\(?:^.*%s\\)\\([<(].*)\\)" func-name)) - (objc-pattern (format "\\(?:^.*%s\\)\\(:.*\\)" func-name)) - (detail (get-text-property 0 'ac-clang--detail (cdr ac-last-completion))) - (help (ac-clang--clean-document detail)) - (declarations (split-string detail "\n")) - args - (ret-t "") - ret-f - candidates) - - ;; parse function or method overload declarations - (cl-dolist (declaration declarations) - ;; function result type - (when (string-match "\\[#\\(.*\\)#\\]" declaration) - (setq ret-t (match-string 1 declaration))) - ;; remove result type - (setq declaration (replace-regexp-in-string "\\[#.*?#\\]" "" declaration)) - - ;; parse arguments - (cond (;; C/C++ standard argument - (string-match c/c++-pattern declaration) - (setq args (match-string 1 declaration)) - (push (propertize (ac-clang--clean-document args) 'ac-clang--detail ret-t 'ac-clang--args args) candidates) - ;; default argument - (when (string-match "\{#" args) - (setq args (replace-regexp-in-string "\{#.*#\}" "" args)) - (push (propertize (ac-clang--clean-document args) 'ac-clang--detail ret-t 'ac-clang--args args) candidates)) - ;; variadic argument - (when (string-match ", \\.\\.\\." args) - (setq args (replace-regexp-in-string ", \\.\\.\\." "" args)) - (push (propertize (ac-clang--clean-document args) 'ac-clang--detail ret-t 'ac-clang--args args) candidates))) - - (;; check whether it is a function ptr - (string-match "^\\([^(]*\\)(\\*)\\((.*)\\)" ret-t) - (setq ret-f (match-string 1 ret-t) - args (match-string 2 ret-t)) - (push (propertize args 'ac-clang--detail ret-f 'ac-clang--args "") candidates) - ;; variadic argument - (when (string-match ", \\.\\.\\." args) - (setq args (replace-regexp-in-string ", \\.\\.\\." "" args)) - (push (propertize args 'ac-clang--detail ret-f 'ac-clang--args "") candidates))) - - (;; Objective-C/C++ argument - (string-match objc-pattern declaration) - (setq args (match-string 1 declaration)) - (push (propertize (ac-clang--clean-document args) 'ac-clang--detail ret-t 'ac-clang--args args) candidates)))) - - (cond (candidates - (setq candidates (delete-dups candidates)) - (setq candidates (nreverse candidates)) - (setq ac-clang--template-candidates candidates) - (setq ac-clang--template-start-point (point)) - (ac-complete-clang-template) - - (unless (cdr candidates) ;; unless length > 1 - (message (replace-regexp-in-string "\n" " ; " help)))) - (t - (message (replace-regexp-in-string "\n" " ; " help)))))) - - -(defun ac-clang--document (item) - (if (stringp item) - (let (s) - (setq s (get-text-property 0 'ac-clang--detail item)) - (ac-clang--clean-document s))) - ;; (popup-item-property item 'ac-clang--detail) - ) - - - -(ac-define-source clang-async - '((candidates . ac-clang--candidates) - (candidate-face . ac-clang-candidate-face) - (selection-face . ac-clang-selection-face) - (prefix . ac-clang--prefix) - (requires . 0) - (action . ac-clang--action) - (document . ac-clang--document) - (cache) - (symbol . "c"))) - - - -(defun ac-clang--same-count-in-string (c1 c2 s) - (let ((count 0) - (cur 0) - (end (length s)) - c) - (while (< cur end) - (setq c (aref s cur)) - (cond ((eq c1 c) - (setq count (1+ count))) - ((eq c2 c) - (setq count (1- count)))) - (setq cur (1+ cur))) - (= count 0))) - - -(defun ac-clang--split-args (s) - (let ((sl (split-string s ", *"))) - (cond ((string-match "<\\|(" s) - (let (res - (pre "") - subs) - (while sl - (setq subs (pop sl)) - (unless (string= pre "") - (setq subs (concat pre ", " subs)) - (setq pre "")) - (cond ((and (ac-clang--same-count-in-string ?\< ?\> subs) - (ac-clang--same-count-in-string ?\( ?\) subs)) - ;; (cond ((ac-clang--same-count-in-string ?\< ?\> subs) - (push subs res)) - (t - (setq pre subs)))) - (nreverse res))) - (t - sl)))) - - -(defsubst ac-clang--template-candidates () - ac-clang--template-candidates) - - -(defsubst ac-clang--template-prefix () - ac-clang--template-start-point) - - -(defun ac-clang--template-action () - (interactive) - - (when ac-clang--template-start-point - (let ((point (point)) - sl - (snp "") - (s (get-text-property 0 'ac-clang--args (cdr ac-last-completion)))) - (cond (;; function ptr call - (string= s "") - (setq s (cdr ac-last-completion)) - (setq s (replace-regexp-in-string "^(\\|)$" "" s)) - (setq sl (ac-clang--split-args s)) - (cl-dolist (arg sl) - (setq snp (concat snp ", ${" arg "}"))) - (yas-expand-snippet (concat "(" (substring snp 2) ")") ac-clang--template-start-point point)) - (;; function args - t - (unless (string= s "()") - (setq s (replace-regexp-in-string "{#" "" s)) - (setq s (replace-regexp-in-string "#}" "" s)) - (setq s (replace-regexp-in-string "<#" "${" s)) - (setq s (replace-regexp-in-string "#>" "}" s)) - (setq s (replace-regexp-in-string ", \\.\\.\\." "}, ${..." s)) - (yas-expand-snippet s ac-clang--template-start-point point))))))) - - -;; This source shall only be used internally. -(ac-define-source clang-template - '((candidates . ac-clang--template-candidates) - (prefix . ac-clang--template-prefix) - (requires . 0) - (action . ac-clang--template-action) - (document . ac-clang--document) - (cache) - (symbol . "t"))) - - - - - -;;; -;;; receive clang-server responses. -;;; syntax checking with flymake -;;; - -(defun ac-clang--receive-diagnostics (buffer _output _args) - (let (result-texts) - (with-current-buffer buffer - (flymake-log 3 "received %d byte(s) of output from process %d" (ac-clang--get-buffer-bytes) (process-id ac-clang--server-process)) - (setq result-texts (buffer-substring-no-properties (point-min) (point-max)))) - (flymake-parse-output-and-residual result-texts)) - - (flymake-parse-residual) - (setq flymake-err-info flymake-new-err-info) - (setq flymake-new-err-info nil) - (setq flymake-err-info (flymake-fix-line-numbers flymake-err-info 1 (count-lines (point-min) (point-max)))) - (flymake-delete-own-overlays) - (flymake-highlight-err-lines flymake-err-info)) - - -(defun ac-clang-diagnostics () - (interactive) - - (if ac-clang--suspend-p - (ac-clang-resume) - (ac-clang-activate)) - - (ac-clang--request-command 'ac-clang--send-diagnostics-request ac-clang--diagnostics-buffer-name 'ac-clang--receive-diagnostics nil)) - - - - -;;; -;;; receive clang-server responses. -;;; jump declaration/definition/smart-jump -;;; - -(defun ac-clang--receive-jump (_buffer output _arg) - (unless (eq (aref output 0) ?$) - (let* ((parsed (split-string-and-unquote output)) - (filename (pop parsed)) - (line (string-to-number (pop parsed))) - (column (1- (string-to-number (pop parsed)))) - (new-loc (list filename line column)) - (current-loc (list (buffer-file-name) (line-number-at-pos) (current-column)))) - (when (not (equal current-loc new-loc)) - (push current-loc ac-clang--jump-stack) - (ac-clang--jump new-loc))))) - - -(defun ac-clang--jump (location) - (let* ((filename (pop location)) - (line (pop location)) - (column (pop location))) - (find-file filename) - (goto-char (point-min)) - (forward-line (1- line)) - (move-to-column column))) - - -(defun ac-clang-jump-back () - (interactive) - - (when ac-clang--jump-stack - (ac-clang--jump (pop ac-clang--jump-stack)))) - - -(defun ac-clang-jump-inclusion () - (interactive) - - (if ac-clang--suspend-p - (ac-clang-resume) - (ac-clang-activate)) - - (ac-clang--request-command 'ac-clang--send-inclusion-request ac-clang--process-buffer-name 'ac-clang--receive-jump nil)) - - -(defun ac-clang-jump-definition () - (interactive) - - (if ac-clang--suspend-p - (ac-clang-resume) - (ac-clang-activate)) - - (ac-clang--request-command 'ac-clang--send-definition-request ac-clang--process-buffer-name 'ac-clang--receive-jump nil)) - - -(defun ac-clang-jump-declaration () - (interactive) - - (if ac-clang--suspend-p - (ac-clang-resume) - (ac-clang-activate)) - - (ac-clang--request-command 'ac-clang--send-declaration-request ac-clang--process-buffer-name 'ac-clang--receive-jump nil)) - - -(defun ac-clang-jump-smart () - (interactive) - - (if ac-clang--suspend-p - (ac-clang-resume) - (ac-clang-activate)) - - (ac-clang--request-command 'ac-clang--send-smart-jump-request ac-clang--process-buffer-name 'ac-clang--receive-jump nil)) - - - - -;;; -;;; sender function for IPC -;;; - -(defun ac-clang-get-server-specification () - (interactive) - - (when ac-clang--server-process - (ac-clang--request-command 'ac-clang--send-server-specification-request ac-clang--process-buffer-name '(lambda (_buffer _output _args)) nil))) - - - -;;; -;;; The session control functions -;;; - -(defun ac-clang-activate () - (interactive) - - (remove-hook 'first-change-hook 'ac-clang-activate t) - - (unless ac-clang--activate-p - ;; (if ac-clang--activate-buffers - ;; (ac-clang-update-cflags) - ;; (ac-clang-initialize)) - - (setq ac-clang--activate-p t) - (setq ac-clang--session-name (buffer-file-name)) - (setq ac-clang--suspend-p nil) - (setq ac-clang--ac-sources-backup ac-sources) - (setq ac-sources '(ac-source-clang-async)) - (push (current-buffer) ac-clang--activate-buffers) - - (ac-clang--send-create-session-request) - - (local-set-key (kbd ".") 'ac-clang-async-autocomplete-autotrigger) - (local-set-key (kbd ">") 'ac-clang-async-autocomplete-autotrigger) - (local-set-key (kbd ":") 'ac-clang-async-autocomplete-autotrigger) - (local-set-key (kbd ac-clang-async-autocompletion-manualtrigger-key) 'ac-clang-async-autocomplete-manualtrigger) - - (add-hook 'before-save-hook 'ac-clang-suspend nil t) - ;; (add-hook 'after-save-hook 'ac-clang-deactivate nil t) - ;; (add-hook 'first-change-hook 'ac-clang-activate nil t) - ;; (add-hook 'before-save-hook 'ac-clang-reparse-buffer nil t) - ;; (add-hook 'after-save-hook 'ac-clang-reparse-buffer nil t) - (add-hook 'before-revert-hook 'ac-clang-deactivate nil t) - (add-hook 'kill-buffer-hook 'ac-clang-deactivate nil t))) - - -(defun ac-clang-deactivate () - (interactive) - - (when ac-clang--activate-p - (remove-hook 'before-save-hook 'ac-clang-suspend t) - (remove-hook 'first-change-hook 'ac-clang-resume t) - ;; (remove-hook 'before-save-hook 'ac-clang-reparse-buffer t) - ;; (remove-hook 'after-save-hook 'ac-clang-reparse-buffer t) - (remove-hook 'before-revert-hook 'ac-clang-deactivate t) - (remove-hook 'kill-buffer-hook 'ac-clang-deactivate t) - - (ac-clang--send-delete-session-request) - - (pop ac-clang--activate-buffers) - (setq ac-sources ac-clang--ac-sources-backup) - (setq ac-clang--ac-sources-backup nil) - (setq ac-clang--suspend-p nil) - (setq ac-clang--session-name nil) - (setq ac-clang--activate-p nil) - - ;; (unless ac-clang--activate-buffers - ;; (ac-clang-finalize)) - )) - - -(defun ac-clang-activate-after-modify () - (interactive) - - (if (buffer-modified-p) - (ac-clang-activate) - (add-hook 'first-change-hook 'ac-clang-activate nil t))) - - -(defun ac-clang-suspend () - (when (and ac-clang--activate-p (not ac-clang--suspend-p)) - (setq ac-clang--suspend-p t) - (ac-clang--send-suspend-request) - (add-hook 'first-change-hook 'ac-clang-resume nil t))) - - -(defun ac-clang-resume () - (when (and ac-clang--activate-p ac-clang--suspend-p) - (setq ac-clang--suspend-p nil) - (remove-hook 'first-change-hook 'ac-clang-resume t) - (ac-clang--send-resume-request))) - - -(defun ac-clang-reparse-buffer () - (when ac-clang--server-process - (ac-clang--send-reparse-request))) - - -(defun ac-clang-update-cflags () - (interactive) - - (when ac-clang--activate-p - ;; (message "ac-clang-update-cflags %s" ac-clang--session-name) - (ac-clang--send-cflags-request))) - - -(defun ac-clang-set-cflags () - "Set `ac-clang-cflags' interactively." - (interactive) - - (setq ac-clang-cflags (split-string (read-string "New cflags: "))) - (ac-clang-update-cflags)) - - -(defun ac-clang-set-cflags-from-shell-command () - "Set `ac-clang-cflags' to a shell command's output. - set new cflags for ac-clang from shell command output" - (interactive) - - (setq ac-clang-cflags - (split-string - (shell-command-to-string - (read-shell-command "Shell command: " nil nil - (and buffer-file-name - (file-relative-name buffer-file-name)))))) - (ac-clang-update-cflags)) - - -(defun ac-clang-set-prefix-header (prefix-header) - "Set `ac-clang-prefix-header' interactively." - (interactive - (let ((default (car (directory-files "." t "\\([^.]h\\|[^h]\\).pch\\'" t)))) - (list - (read-file-name (concat "Clang prefix header (currently " (or ac-clang-prefix-header "nil") "): ") - (when default (file-name-directory default)) - default nil (when default (file-name-nondirectory default)))))) - - (cond - ((string-match "^[\s\t]*$" prefix-header) - (setq ac-clang-prefix-header nil)) - (t - (setq ac-clang-prefix-header prefix-header)))) - - - - -;;; -;;; The server control functions -;;; - - -(defun ac-clang--clean-tmp-pch () - "Clean up temporary precompiled headers." - - (cl-dolist (pch-file (directory-files temporary-file-directory t "preamble-.*\\.pch$" t)) - (ignore-errors - (delete-file pch-file) - t))) - - - -(defun ac-clang-launch-server () - (interactive) - - (when (and ac-clang--server-executable (not ac-clang--server-process)) - (let ((process-connection-type nil) - (coding-system-for-write 'binary)) - (setq ac-clang--server-process - (apply 'start-process - ac-clang--process-name ac-clang--process-buffer-name - ac-clang--server-executable (ac-clang--build-server-launch-options)))) - - (if ac-clang--server-process - (progn - (setq ac-clang--status 'idle) - (ac-clang--clear-command-queue) - - (set-process-coding-system ac-clang--server-process - (coding-system-change-eol-conversion buffer-file-coding-system nil) - 'binary) - (set-process-filter ac-clang--server-process 'ac-clang--process-filter) - (set-process-query-on-exit-flag ac-clang--server-process nil) - - (ac-clang--send-clang-parameters-request) - t) - (display-warning 'ac-clang "clang-server launch failed.") - nil))) - - -(defun ac-clang-shutdown-server () - (interactive) - - (when ac-clang--server-process - (ac-clang--send-shutdown-request) - - (setq ac-clang--status 'shutdown) - - (setq ac-clang--server-process nil) - t)) - - -(defun ac-clang-update-clang-parameters () - (interactive) - - (when ac-clang--server-process - (ac-clang--send-clang-parameters-request) - t)) - - -(defun ac-clang-reset-server () - (interactive) - - (when ac-clang--server-process - (cl-dolist (buffer ac-clang--activate-buffers) - (with-current-buffer buffer - (ac-clang-deactivate))) - (ac-clang--send-reset-server-request))) - - -(cl-defun ac-clang-reboot-server () - (interactive) - - (let ((buffers ac-clang--activate-buffers)) - (ac-clang-reset-server) - - (unless (ac-clang-shutdown-server) - (message "ac-clang : reboot server failed.") - (cl-return-from ac-clang-reset-server nil)) - - (unless (ac-clang-launch-server) - (message "ac-clang : reboot server failed.") - (cl-return-from ac-clang-reset-server nil)) - - (cl-dolist (buffer buffers) - (with-current-buffer buffer - (ac-clang-activate)))) - - (message "ac-clang : reboot server success.") - t) - - - - -(defun ac-clang-initialize () - (interactive) - - ;; server binary decide - (unless ac-clang--server-executable - (setq ac-clang--server-executable (executable-find (or (plist-get ac-clang--server-binaries ac-clang-server-type) "")))) - - ;; check obsolete - (unless ac-clang--server-executable - (when (setq ac-clang--server-executable (executable-find (or (plist-get ac-clang--server-obsolete-binaries ac-clang-server-type) ""))) - (display-warning 'ac-clang "The clang-server which you are using is obsolete. please replace to the new binary."))) - - ;; (message "ac-clang-initialize") - (if ac-clang--server-executable - (when (ac-clang-launch-server) - ;; Optional keybindings - (define-key ac-mode-map (kbd "M-.") 'ac-clang-jump-smart) - (define-key ac-mode-map (kbd "M-,") 'ac-clang-jump-back) - ;; (define-key ac-mode-map (kbd "C-c `") 'ac-clang-diagnostics)) - - (add-hook 'kill-emacs-hook 'ac-clang-finalize) - - (when (and (eq system-type 'windows-nt) (boundp 'w32-pipe-read-delay) (> w32-pipe-read-delay 0)) - (display-warning 'ac-clang "Please set the appropriate value for `w32-pipe-read-delay'. Because a pipe delay value is large value. Ideal value is 0. see help of `w32-pipe-read-delay'.")) - - t) - (display-warning 'ac-clang "clang-server binary not found.") - nil)) - - -(defun ac-clang-finalize () - (interactive) - - ;; (message "ac-clang-finalize") - (when (ac-clang-shutdown-server) - (define-key ac-mode-map (kbd "M-.") nil) - (define-key ac-mode-map (kbd "M-,") nil) - - (setq ac-clang--server-executable nil) - - (when ac-clang-tmp-pch-automatic-cleanup-p - (ac-clang--clean-tmp-pch)) - - t)) - - - - - -(provide 'ac-clang) - -;; Local Variables: -;; coding: utf-8 -;; indent-tabs-mode: nil -;; End: - -;;; ac-clang.el ends here diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang.elc b/.emacs.d/elpa/ac-clang-20150906.1008/ac-clang.elc deleted file mode 100644 index a94e649f71b815caa099fcd5ae07070d3e0310a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51514 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] [--target ] [-- -i] -@rem cmake --build . --config Release --target ALL_BUILD -@rem cmake --build . --config Debug --target ALL_BUILD -cmake --build . --config Release --target INSTALL -@rem cmake --build . --config Debug --target INSTALL - -@pause diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/build/builder_sample.sh b/.emacs.d/elpa/ac-clang-20150906.1008/build/builder_sample.sh deleted file mode 100755 index f0d424c..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/build/builder_sample.sh +++ /dev/null @@ -1,28 +0,0 @@ -# -*- mode: shell-script ; coding: utf-8-unix -*- -#! /bin/sh -# export PATH="/cygdrive/c/cygwin-x86_64/tmp/cmake-3.1.0-win32-x86/bin/:$PATH" - -rm -rf CMakeCache.txt -rm -rf cmake_install.cmake -rm -rf CMakeFiles -rm -rf Makefile - -# switch compiler -# export CC=clang -# export CXX=clang++ - -# cmake --version -# cmake -G "Unix Makefiles" ../clang-server -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -# cmake -G "Unix Makefiles" ../clang-server -DLIBRARY_PATHS="c:/cygwin-x86_64/tmp/llvm-build-shells/sh/clang-361/build" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -cmake -G "Unix Makefiles" ../clang-server -DLIBRARY_PATHS="/home/yaruopooner/work/llvm-build-shells/sh/clang-361/build" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -# cmake -G "Unix Makefiles" ../clang-server -DLIBRARY_PATHS="/home/yaruopooner/work/llvm-build-shells/sh/clang-361/build" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=RELWITHDEBINFO -# cmake -G "Unix Makefiles" ../clang-server -DLIBRARY_PATHS="/home/yaruopooner/work/llvm-build-shells/sh/clang-361/build" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=DEBUG -# cmake -G "Unix Makefiles" ../clang-server -DLIBRARY_PATHS="/home/yaruopooner/work/llvm-build-shells/sh/clang-361/build" -DCMAKE_INSTALL_PREFIX="~/work/test" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON - -# echo "please press Enter key" -# read discard_tmp - -cmake --build . -# sudo make install - - diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/.nosearch b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/.nosearch deleted file mode 100644 index e69de29..0000000 diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/CMakeLists.txt b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/CMakeLists.txt deleted file mode 100644 index c4327a5..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/CMakeLists.txt +++ /dev/null @@ -1,383 +0,0 @@ -# -*- mode: cmake ; coding: utf-8-unix -*- - -cmake_minimum_required(VERSION 2.8) - -cmake_policy(SET CMP0015 NEW) -cmake_policy(SET CMP0022 NEW) - -include(CheckCXXCompilerFlag) - - -# ---------------------------------------- -# before common setting -# ---------------------------------------- - -set(project_name clang-server) -# set(platform_name x86_64) -# set(platform_name x86_32) -# set(project_elf_name ${project_name}-${platform_name}) -set(project_elf_name ${project_name}) - - -# CMAKE_INSTALL_PREFIX check designated value before function Project() -if(CMAKE_INSTALL_PREFIX) - # message("user_install_prefix TRUE") - set(user_install_prefix TRUE) -else() - # message("user_install_prefix FALSE") -endif() - - -# The set before project declaration. -set(CMAKE_CONFIGURATION_TYPES Release RelWithDebInfo Debug CACHE TYPE INTERNAL FORCE) -# setup library per configuration -string(TOUPPER "${CMAKE_CONFIGURATION_TYPES}" project_configurations) - - -Project(${project_name}) - - -# The set after project declaration. -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) -endif() - - - - -# CMAKE_INSTALL_PREFIX -# Windows (exe,dll) -# Default: C:/Program Files/clang-server/ -# prefix : -# -# Linux (elf) -# Default: /usr/local/bin/ -# prefix : -# Linux (so) -# Default: /usr/local/lib/clang-server/ -# prefix : - -set(CMAKE_SKIP_RPATH TRUE) -# set(CMAKE_SKIP_BUILD_RPATH FALSE) -# set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) -# set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -# set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) - - -set(project_sources main.cpp ClangServer.cpp ClangServer.hpp ClangSession.cpp ClangSession.hpp Common.cpp Common.hpp CommandLine.hpp) - - -add_library(libclang SHARED IMPORTED) - -set(dependency_libraries libclang) - - -list(APPEND CMAKE_FIND_LIBRARY_PREFIXES lib) -list(REMOVE_DUPLICATES CMAKE_FIND_LIBRARY_PREFIXES) - -# set(libclang_names clang-${platform_name} clang) -set(libclang_names clang) - - -function(display_vars vars prefix) - message("${prefix}") - foreach(IT ${vars}) - message("${prefix}${IT} = ${${IT}}") - endforeach() -endfunction() - - -set(echo_vars) -list(APPEND echo_vars CMAKE_CXX_COMPILER_ID CMAKE_CXX_STANDARD CYGWIN WIN32 UNIX MSVC MSVC_VERSION CMAKE_GNUtoMS CMAKE_SYSTEM_NAME CMAKE_COMPILER_IS_GNUC CMAKE_COMPILER_IS_GNUCXX CMAKE_COMPILER_IS_MINGW CMAKE_COMPILER_IS_CYGWIN) -display_vars("${echo_vars}" "env: ") - - -# ---------------------------------------- -# platform dependency setting -# ---------------------------------------- - -if(MSVC) - # ---------------------------------------- - # Microsoft Visual Studio - # ---------------------------------------- - message("environment: MSVC") - - set(echo_vars) - list(APPEND echo_vars CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE) - list(APPEND echo_vars CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS_DEBUG CMAKE_EXE_LINKER_FLAGS_RELEASE) - list(APPEND echo_vars IMPORTED_IMPLIB IMPORTED_IMPLIB_DEBUG IMPORTED_IMPLIB_RELEASE) - display_vars("${echo_vars}" "msvc: ") - - - # set_target_properties(TARGET) - - # setup compile & link flags - set(project_defs -D_CONSOLE -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS) - - set(CMAKE_CXX_FLAGS "/GR /EHsc /W3 /Zi") - set(CMAKE_CXX_FLAGS_DEBUG "/Gm /Od") - set(CMAKE_CXX_FLAGS_RELEASE "/GL /Gy /Oi") - set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG}") - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG /DEBUG /OPT:ICF /OPT:REF") - - set(dependency_libraries odbc32 odbccp32 ${dependency_libraries}) - - - # search & setup link library properties - list(INSERT CMAKE_FIND_LIBRARY_SUFFIXES 0 .imp) - list(REMOVE_DUPLICATES CMAKE_FIND_LIBRARY_SUFFIXES) - - - # search priority EXTERNAL > CURRENT - set(libclang_search_paths ${LIBRARY_PATHS} ${CMAKE_SOURCE_DIR}) - - foreach(IT_SEARCH_PATH ${libclang_search_paths}) - message("") - message("IT_SEARCH_PATH : ${IT_SEARCH_PATH}") - - # collect absolute file paths - file(GLOB_RECURSE collected_library_apath ${IT_SEARCH_PATH} ${IT_SEARCH_PATH}/*.imp ${IT_SEARCH_PATH}/*.lib ${IT_SEARCH_PATH}/*.dll) - - if(collected_library_apath) - # generate absolute directory paths - set(library_apaths ${IT_SEARCH_PATH}) - foreach(IT_PATH ${collected_library_apath}) - get_filename_component(library_dir_path ${IT_PATH} DIRECTORY) - list(APPEND library_apaths ${library_dir_path}) - endforeach() - list(REMOVE_DUPLICATES library_apaths) - - # message("collected_library_apath : ${collected_library_apath}") - message("library_apaths : ${library_apaths}") - - # find library > generate relative path > set property per configuration. - foreach(IT_CONFIG ${project_configurations}) - if(NOT matched_${IT_CONFIG}) - # collect a absolute path that includes the same configuration name. - # IT_SEARCH_PATH is always accept. - # set(filtered_library_apaths ${IT_SEARCH_PATH}) - # foreach(IT_PATH ${library_apaths}) - # string(TOUPPER ${IT_PATH} CHECK_PATH_STR) - # if(${CHECK_PATH_STR} MATCHES /${IT_CONFIG}) - # list(APPEND filtered_library_apaths ${IT_PATH}) - # endif() - # endforeach() - # set(filtered_library_apaths ${library_apaths}) - - set(CMAKE_FIND_LIBRARY_SUFFIXES .imp .lib) - find_library(libclang_${IT_CONFIG}_found_lib_apath NAMES ${libclang_names} PATHS ${library_apaths} NO_DEFAULT_PATH) - - set(CMAKE_FIND_LIBRARY_SUFFIXES .dll) - find_library(libclang_${IT_CONFIG}_found_dll_apath NAMES ${libclang_names} PATHS ${library_apaths} NO_DEFAULT_PATH) - - display_vars("library_apaths;libclang_${IT_CONFIG}_found_lib_apath;libclang_${IT_CONFIG}_found_dll_apath" "${IT_CONFIG}: ") - - if(libclang_${IT_CONFIG}_found_lib_apath AND libclang_${IT_CONFIG}_found_dll_apath) - file(RELATIVE_PATH libclang_${IT_CONFIG}_rpath ${IT_SEARCH_PATH} ${libclang_${IT_CONFIG}_found_lib_apath}) - - set_property(TARGET libclang PROPERTY IMPORTED_IMPLIB_${IT_CONFIG} ${libclang_${IT_CONFIG}_rpath}) - set_property(TARGET libclang PROPERTY INTERFACE_LINK_LIBRARIES_${IT_CONFIG} ${libclang_${IT_CONFIG}_rpath}) - set_property(TARGET libclang PROPERTY IMPORTED_LOCATION_${IT_CONFIG} ${libclang_${IT_CONFIG}_found_lib_apath}) - link_directories(${IT_SEARCH_PATH}) - - set(libclang_${IT_CONFIG}_found_apath ${libclang_${IT_CONFIG}_found_dll_apath}) - message("${IT_CONFIG}: found library at ${IT_SEARCH_PATH}") - set(matched_${IT_CONFIG} TRUE) - endif() - endif() - endforeach() - endif() - endforeach() - - - # install info - set(binary_destination_apath ${CMAKE_INSTALL_PREFIX}) - set(library_destination_apath ${CMAKE_INSTALL_PREFIX}) - - - if(NOT (matched_DEBUG OR matched_RELEASE OR matched_MINSIZEREL OR matched_RELWITHDEBINFO)) - message("not found library") - endif() - -elseif(UNIX) - # ---------------------------------------- - # UNIX, Linux - # ---------------------------------------- - message("environment: UNIX") - - # setup compile & link flags - check_cxx_compiler_flag(-std=c++11 COMPILER_SUPPORTS_CXX11) - check_cxx_compiler_flag(-std=c++0x COMPILER_SUPPORTS_CXX0X) - - # setup compile & link flags - if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") - else() - message(FATAL_ERROR "The compiler has no C++11 support.") - endif() - - # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wunused-result") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-result") - - - # search priority EXTERNAL > CURRENT - - if(CYGWIN) - message("CYGWIN") - # set(dependency_libraries clang.dll) - # set(dependency_libraries libclang.a) - - # find_library(CYG_LIBCLANG_PATH NAMES clang.dll PATHS ${library_apaths}) - # find_library(CYG_LIBCLANG_PATH NAMES libclang.dll clang.dll clang PATHS "/lib" "c:/cygwin-x86_64/lib" ) - # find_library(CYG_LIBCLANG_PATH NAMES libclang.dll PATHS "/lib" "c:/cygwin-x86_64/lib" ) - # find_library(CYG_LIBCLANG_PATH NAMES libclang libclang.dll PATHS "c:/cygwin-x86_64/lib" ) - message("CYG_LIBCLANG_PATH : ${CYG_LIBCLANG_PATH}") - - else() - message("non CYGWIN") - endif() - - - # search priority EXTERNAL > CURRENT - set(libclang_search_paths ${LIBRARY_PATHS} ${CMAKE_SOURCE_DIR}) - - foreach(IT_SEARCH_PATH ${libclang_search_paths}) - message("IT_SEARCH_PATH : ${IT_SEARCH_PATH}") - - # collect absolute file paths - file(GLOB_RECURSE collected_library_apath ${IT_SEARCH_PATH} ${IT_SEARCH_PATH}/*.so ${IT_SEARCH_PATH}/*.a) - - if(collected_library_apath) - # generate absolute directory paths - set(library_apaths ${IT_SEARCH_PATH}) - foreach(IT_PATH ${collected_library_apath}) - get_filename_component(library_dir_path ${IT_PATH} DIRECTORY) - list(APPEND library_apaths ${library_dir_path}) - endforeach() - list(REMOVE_DUPLICATES library_apaths) - - # message("collected_library_apath : ${collected_library_apath}") - message("library_apaths : ${library_apaths}") - - # find library > generate relative path > set property per configuration. - foreach(IT_CONFIG ${project_configurations}) - if(NOT matched_${IT_CONFIG}) - # find library > generate relative path - find_library(libclang_${IT_CONFIG}_found_apath NAMES ${libclang_names} PATHS ${library_apaths} NO_DEFAULT_PATH) - - display_vars("libclang_${IT_CONFIG}_found_apath" "${IT_CONFIG}: ") - - if(libclang_${IT_CONFIG}_found_apath) - # message("found library at ${libclang_${IT_CONFIG}_found_apath}") - get_filename_component(libclang_link_apath ${libclang_${IT_CONFIG}_found_apath} DIRECTORY) - link_directories(${libclang_link_apath}) - get_filename_component(libclang_found_name ${libclang_${IT_CONFIG}_found_apath} NAME_WE) - string(REGEX REPLACE "^lib" "" libclang_found_name ${libclang_found_name}) - - # message("libclang_found_name at ${libclang_found_name}") - set_property(TARGET libclang PROPERTY INTERFACE_LINK_LIBRARIES_${IT_CONFIG} ${libclang_found_name}) - set_property(TARGET libclang PROPERTY IMPORTED_LOCATION_${IT_CONFIG} ${libclang_${IT_CONFIG}_found_apath}) - message("${IT_CONFIG}: found library at ${libclang_link_apath}") - set(matched_${IT_CONFIG} TRUE) - endif() - endif() - endforeach() - endif() - endforeach() - - - # install info - if(user_install_prefix) - string(REGEX REPLACE "^~" "$ENV{HOME}" CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) - get_filename_component(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} ABSOLUTE) - set(binary_destination_apath ${CMAKE_INSTALL_PREFIX}) - set(library_destination_apath ${CMAKE_INSTALL_PREFIX}) - else() - set(binary_destination_apath ${CMAKE_INSTALL_PREFIX}/bin) - set(library_destination_apath ${CMAKE_INSTALL_PREFIX}/lib/${project_name}) - endif() - - - # The rpath is runtime library search path. The rpath specify path where you want to install a shared object. - set(CMAKE_EXE_LINKER_FLAGS "-Wl,-rpath,${library_destination_apath}") - - - if(NOT (matched_DEBUG OR matched_RELEASE OR matched_MINSIZEREL OR matched_RELWITHDEBINFO)) - message("not found library") - endif() - - -else() - - message("sorry, not support environment") - -endif() - - - -# ---------------------------------------- -# after common setting -# ---------------------------------------- - -add_executable(${project_name} ${project_sources}) - -# set_property(TARGET ${project_name} PROPERTY CXX_STANDARD 11) - -set_property(TARGET ${project_name} PROPERTY OUTPUT_NAME_DEBUG "${project_elf_name}-debug") -set_property(TARGET ${project_name} PROPERTY OUTPUT_NAME_RELEASE "${project_elf_name}") -# set_property(TARGET ${project_name} PROPERTY OUTPUT_NAME_MINSIZEREL "${project_elf_name}") -set_property(TARGET ${project_name} PROPERTY OUTPUT_NAME_RELWITHDEBINFO "${project_elf_name}-reldbg") - - -list(APPEND project_defs -DCMAKE_GENERATOR="${CMAKE_GENERATOR}" -DCMAKE_HOST_SYSTEM_PROCESSOR="${CMAKE_HOST_SYSTEM_PROCESSOR}") - -# list(APPEND project_defs CMAKE_GENERATOR="${CMAKE_GENERATOR}") -# set_property(TARGET ${project_name} PROPERTY COMPILE_DEFINITIONS ${project_defs}) -# set_property(TARGET ${project_name} PROPERTY COMPILE_DEFINITIONS_DEBUG ${project_defs}) -# set_property(TARGET ${project_name} PROPERTY COMPILE_DEFINITIONS_RELEASE ${project_defs}) -add_definitions(${project_defs}) - -include_directories(./) - - -target_link_libraries(${project_name} ${dependency_libraries}) - - -# ---------------------------------------- -# install setting -# ---------------------------------------- - -set(CMAKE_INSTALL_RPATH ${library_destination_apath}) -install(TARGETS ${project_name} RUNTIME DESTINATION ${binary_destination_apath}) -foreach(IT_CONFIG ${project_configurations}) - install(FILES ${libclang_${IT_CONFIG}_found_apath} DESTINATION ${library_destination_apath} CONFIGURATIONS ${IT_CONFIG}) -endforeach() - - - -# ---------------------------------------- -# debug display for variables -# ---------------------------------------- - - -# get_directory_property(DirDefs DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS) -# foreach(IT_DEF ${DirDefs}) -# message(STATUS "Found Define: " ${IT_DEF}) -# endforeach() -# message( "DirDefs: " ${DirDefs} ) - -set(echo_vars) -list(APPEND echo_vars CMAKE_CONFIGURATION_TYPES project_configurations CMAKE_GENERATOR CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_CURRENT_SOURCE_DIR collected_library_apath library_apaths) -list(APPEND echo_vars CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE project_defs) -list(APPEND echo_vars CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS_DEBUG CMAKE_EXE_LINKER_FLAGS_RELEASE) -list(APPEND echo_vars dependency_libraries binary_destination_apath library_destination_apath) -list(APPEND echo_vars CMAKE_FIND_LIBRARY_PREFIXES CMAKE_FIND_LIBRARY_SUFFIXES) -# list(APPEND echo_vars CMAKE_IMPORT_LIBRARY_SUFFIXES CMAKE_LINK_LIBRARY_SUFFIX CMAKE_SHARED_LIBRARY_SUFFIX CMAKE_SHARED_MODULE_SUFFIX CMAKE_STATIC_LIBRARY_SUFFIX) -# list(APPEND echo_vars PROJECT_SOURCE_DIR PROJECT_BINARY_DIR CMAKE_SOURCE_DIR CMAKE_BINARY_DIR CMAKE_RUNTIME_OUTPUT_DIRECTORY CMAKE_LIBRARY_OUTPUT_DIRECTORY CMAKE_INSTALL_NAME_DIR CMAKE_INCLUDE_CURRENT_DIR CMAKE_HOME_DIRECTORY CMAKE_CURRENT_LIST_DIR CMAKE_CURRENT_BINARY_DIR CMAKE_BINARY_DIR CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${project_name}_SOURCE_DIR ${project_name}_BINARY_DIR) -list(APPEND echo_vars CMAKE_INSTALL_PREFIX CMAKE_INSTALL_RPATH CMAKE_SKIP_BUILD_RPATH CMAKE_BUILD_WITH_INSTALL_RPATH CMAKE_SKIP_RPATH CMAKE_SKIP_INSTALL_RPATH) -# list(APPEND echo_vars CMAKE_PREFIX_PATH CMAKE_LIBRARY_PATH CMAKE_FRAMEWORK_PATH CMAKE_SYSTEM_PREFIX_PATH CMAKE_SYSTEM_LIBRARY_PATH CMAKE_SYSTEM_FRAMEWORK_PATH) -display_vars("${echo_vars}" "final: ") - - diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangServer.cpp b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangServer.cpp deleted file mode 100644 index 54b32c6..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangServer.cpp +++ /dev/null @@ -1,439 +0,0 @@ -/* -*- mode: c++ ; coding: utf-8-unix -*- */ -/* last updated : 2015/07/25.03:24:29 */ - -/* - * Copyright (c) 2013-2015 yaruopooner [https://github.com/yaruopooner] - * - * This file is part of ac-clang. - * - * 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 . - */ - - -/*================================================================================================*/ -/* Comment */ -/*================================================================================================*/ - - -/*================================================================================================*/ -/* Include Files */ -/*================================================================================================*/ - -#include "ClangServer.hpp" - - -using namespace std; - - - -/*================================================================================================*/ -/* Internal Function Definitions Section */ -/*================================================================================================*/ - -namespace -{ - -std::string GetClangVersion( void ) -{ - CXString version_text = clang_getClangVersion(); - const std::string clang_version = clang_getCString( version_text ); - - clang_disposeString( version_text ); - - return clang_version; -} - -} - - - -/*================================================================================================*/ -/* Global Class Method Definitions Section */ -/*================================================================================================*/ - - -/* - - ---- SERVER MESSAGE ---- - - - GET_SPECIFIC_PROPERTIES: return clang-server specific properties - Message format: - command_type:Server - command_name:GET_SPECIFIC_PROPERTIES - - - GET_CLANG_VERSION: return libclang version (libclang.lib/a) - Message format: - command_type:Server - command_name:GET_CLANG_VERSION - - - SET_CLANG_PARAMETERS: setup libclang behavior parameters - Message format: - command_type:Server - command_name:SET_CLANG_PARAMETERS - translation_unit_flags:[#flag_name0|flag_name1|...#] - complete_at_flags:[#flag_name0|flag_name1|...#] - - - CREATE_SESSION: create session. - Message format: - command_type:Server - command_name:CREATE_SESSION - session_name::[#session_name#] - - - DELETE_SESSION: delete session. - Message format: - command_type:Server - command_name:DELETE_SESSION - session_name::[#session_name#] - - - RESET: reset the clang server(all session delete. context reallocate) - Message format: - command_type:Server - command_name:RESET - - - SHUTDOWN: shutdown the clang server (this program) - Message format: - command_type:Server - command_name:SHUTDOWN - - - ---- SESSION MESSAGE ---- - - - SUSPEND: delete CXTranslationUnit - Message format: - command_type:Session - command_name:SUSPEND - session_name:[#session_name#] - - - RESUME: realloc CXTranslationUnit - Message format: - command_type:Session - command_name:RESUME - session_name:[#session_name#] - - - SET_CFLAGS: Specify CFLAGS argument passing to clang parser. - Message format: - command_type:Session - command_name:SET_CFLAGS - session_name:[#session_name#] - num_cflags:[#num_cflags#] - arg1 arg2 ...... (there should be num_cflags items here) - CFLAGS's white space must be accept. - a separator is '\n'. - source_length:[#source_length#] - <# SOURCE CODE #> - - - SET_SOURCECODE: Update the source code in the source buffer - Message format: - command_type:Session - command_name:SET_SOURCECODE - session_name:[#session_name#] - source_length:[#source_length#] - <# SOURCE CODE #> - - - REPARSE: Reparse the source code - command_type:Session - command_name:REPARSE - session_name:[#session_name#] - - - COMPLETION: Do code completion at a specified point. - Message format: - command_type:Session - command_name:COMPLETION - session_name:[#session_name#] - line:[#line#] - column:[#column#] - source_length:[#source_length#] - <# SOURCE CODE #> - - - SYNTAXCHECK: Retrieve diagnostic messages - Message format: - command_type:Session - command_name:SYNTAXCHECK - session_name:[#session_name#] - source_length:[#source_length#] - <# SOURCE CODE #> - - - INCLUSION: Get location of inclusion file at point - Message format: - command_type:Session - command_name:INCLUSION - session_name:[#session_name#] - line:[#line#] - column:[#column#] - source_length:[#source_length#] - <# SOURCE CODE #> - - - DEFINITION: Get location of definition at point - Message format: - command_type:Session - command_name:DEFINITION - session_name:[#session_name#] - line:[#line#] - column:[#column#] - source_length:[#source_length#] - <# SOURCE CODE #> - - - DECLARATION: Get location of declaration at point - Message format: - command_type:Session - command_name:DECLARATION - session_name:[#session_name#] - line:[#line#] - column:[#column#] - source_length:[#source_length#] - <# SOURCE CODE #> - - - SMARTJUMP: Get location of inclusion, definition, declaration at point. If that fails, it will search following. - inclusion -> finish, definition -> declaration -> finish. - Message format: - command_type:Session - command_name:SMARTJUMP - session_name:[#session_name#] - line:[#line#] - column:[#column#] - source_length:[#source_length#] - <# SOURCE CODE #> - - -*/ - - - - -ClangServer::ClangServer( const Specification& specification ) - : - m_Status( kStatus_Running ) - , m_Specification( specification ) -{ - // setup stream buffer size - m_Specification.m_StdinBufferSize = std::max( m_Specification.m_StdinBufferSize, static_cast< size_t >( Specification::kStreamBuffer_UnitSize ) ); - m_Specification.m_StdoutBufferSize = std::max( m_Specification.m_StdoutBufferSize, static_cast< size_t >( Specification::kStreamBuffer_UnitSize ) ); - - ::setvbuf( stdin, nullptr, _IOFBF, m_Specification.m_StdinBufferSize ); - ::setvbuf( stdout, nullptr, _IOFBF, m_Specification.m_StdoutBufferSize ); - - - // server command - m_ServerCommands.insert( ServerHandleMap::value_type( "GET_SPECIFICATION", std::mem_fn( &ClangServer::commandGetSpecification ) ) ); - m_ServerCommands.insert( ServerHandleMap::value_type( "GET_CLANG_VERSION", std::mem_fn( &ClangServer::commandGetClangVersion ) ) ); - m_ServerCommands.insert( ServerHandleMap::value_type( "SET_CLANG_PARAMETERS", std::mem_fn( &ClangServer::commandSetClangParameters ) ) ); - m_ServerCommands.insert( ServerHandleMap::value_type( "CREATE_SESSION", std::mem_fn( &ClangServer::commandCreateSession ) ) ); - m_ServerCommands.insert( ServerHandleMap::value_type( "DELETE_SESSION", std::mem_fn( &ClangServer::commandDeleteSession ) ) ); - m_ServerCommands.insert( ServerHandleMap::value_type( "RESET", std::mem_fn( &ClangServer::commandReset ) ) ); - m_ServerCommands.insert( ServerHandleMap::value_type( "SHUTDOWN", std::mem_fn( &ClangServer::commandShutdown ) ) ); - - // session command - m_SessionCommands.insert( SessionHandleMap::value_type( "SUSPEND", std::mem_fn( &ClangSession::commandSuspend ) ) ); - m_SessionCommands.insert( SessionHandleMap::value_type( "RESUME", std::mem_fn( &ClangSession::commandResume ) ) ); - m_SessionCommands.insert( SessionHandleMap::value_type( "SET_CFLAGS", std::mem_fn( &ClangSession::commandSetCFlags ) ) ); - m_SessionCommands.insert( SessionHandleMap::value_type( "SET_SOURCECODE", std::mem_fn( &ClangSession::commandSetSourceCode ) ) ); - m_SessionCommands.insert( SessionHandleMap::value_type( "REPARSE", std::mem_fn( &ClangSession::commandReparse ) ) ); - m_SessionCommands.insert( SessionHandleMap::value_type( "COMPLETION", std::mem_fn( &ClangSession::commandCompletion ) ) ); - m_SessionCommands.insert( SessionHandleMap::value_type( "SYNTAXCHECK", std::mem_fn( &ClangSession::commandDiagnostics ) ) ); - m_SessionCommands.insert( SessionHandleMap::value_type( "INCLUSION", std::mem_fn( &ClangSession::commandInclusion ) ) ); - m_SessionCommands.insert( SessionHandleMap::value_type( "DEFINITION", std::mem_fn( &ClangSession::commandDefinition ) ) ); - m_SessionCommands.insert( SessionHandleMap::value_type( "DECLARATION", std::mem_fn( &ClangSession::commandDeclaration ) ) ); - m_SessionCommands.insert( SessionHandleMap::value_type( "SMARTJUMP", std::mem_fn( &ClangSession::commandSmartJump ) ) ); - - // display initial specification - commandGetSpecification(); -} - -ClangServer::~ClangServer( void ) -{ - // m_Sessions must be destruction early than m_Context. - // Because m_Sessions depend to m_Context. - m_Sessions.clear(); -} - - -void ClangServer::commandGetSpecification( void ) -{ - const std::string server_version = CLANG_SERVER_VERSION; - const std::string clang_version = ::GetClangVersion(); - const std::string generate = CMAKE_GENERATOR "/" CMAKE_HOST_SYSTEM_PROCESSOR; - - m_Writer.Write( "-------- Clang-Server Specification --------\n" ); - m_Writer.Write( "Server Version : %s\n", server_version.c_str() ); - m_Writer.Write( "Clang Version : %s\n", clang_version.c_str() ); - m_Writer.Write( "Generate : %s\n", generate.c_str() ); - // m_Writer.Write( "Log File : %s\n", m_Specification.m_LogFile.c_str() ); - m_Writer.Write( "STDIN Buffer Size : %d bytes\n", m_Specification.m_StdinBufferSize ); - m_Writer.Write( "STDOUT Buffer Size : %d bytes\n", m_Specification.m_StdoutBufferSize ); - m_Writer.Flush(); -} - - -void ClangServer::commandGetClangVersion( void ) -{ - const std::string clang_version = ::GetClangVersion(); - - m_Writer.Write( "%s ", clang_version.c_str() ); - m_Writer.Flush(); -} - - -void ClangServer::commandSetClangParameters( void ) -{ - const string translation_unit_flags = m_Reader.ReadToken( "translation_unit_flags:%s" ); - const string complete_at_flags = m_Reader.ReadToken( "complete_at_flags:%s" ); - const uint32_t translation_unit_flags_value = ClangFlagConverters::GetCXTranslationUnitFlags().GetValue( translation_unit_flags ); - const uint32_t complete_at_flags_value = ClangFlagConverters::GetCXCodeCompleteFlags().GetValue( complete_at_flags ); - uint32_t complete_results_limit; - - m_Reader.ReadToken( "complete_results_limit:%d", complete_results_limit ); - - m_Context.SetTranslationUnitFlags( translation_unit_flags_value ); - m_Context.SetCompleteAtFlags( complete_at_flags_value ); - m_Context.SetCompleteResultsLimit( complete_results_limit ); -} - - -void ClangServer::commandCreateSession( void ) -{ - const string session_name = m_Reader.ReadToken( "session_name:%s" ); - - // search session - Dictionary::iterator session_it = m_Sessions.find( session_name ); - - if ( session_it == m_Sessions.end() ) - { - // not found session - // allocate & setup new session - std::shared_ptr< ClangSession > new_session( std::make_shared< ClangSession >( session_name, m_Context, m_Reader, m_Writer ) ); - std::pair< Dictionary::iterator, bool > result = m_Sessions.insert( Dictionary::value_type( session_name, new_session ) ); - - if ( result.second ) - { - // success - new_session->Allocate(); - } - } - else - { - // already exist - } -} - - -void ClangServer::commandDeleteSession( void ) -{ - const string session_name = m_Reader.ReadToken( "session_name:%s" ); - - // search session - Dictionary::iterator session_it = m_Sessions.find( session_name ); - - if ( session_it != m_Sessions.end() ) - { - // session_it->second->Deallocate(); - - m_Sessions.erase( session_it ); - } -} - - -void ClangServer::commandReset( void ) -{ - m_Sessions.clear(); - m_Context.Deallocate(); - m_Context.Allocate(); -} - - -void ClangServer::commandShutdown( void ) -{ - m_Status = kStatus_Exit; -} - - - - -void ClangServer::ParseServerCommand( void ) -{ - const string command_name = m_Reader.ReadToken( "command_name:%s" ); - - ServerHandleMap::iterator command_it = m_ServerCommands.find( command_name ); - - // execute command handler - if ( command_it != m_ServerCommands.end() ) - { - command_it->second( *this ); - } - else - { - // unknown command - } -} - -void ClangServer::ParseSessionCommand( void ) -{ - const string command_name = m_Reader.ReadToken( "command_name:%s" ); - const string session_name = m_Reader.ReadToken( "session_name:%s" ); - - if ( session_name.empty() ) - { - return; - } - - // search session - Dictionary::iterator session_it = m_Sessions.find( session_name ); - - // execute command handler - if ( session_it != m_Sessions.end() ) - { - SessionHandleMap::iterator command_it = m_SessionCommands.find( command_name ); - - if ( command_it != m_SessionCommands.end() ) - { - command_it->second( *session_it->second ); - } - else - { - // session not found - } - } - else - { - // unknown command - } -} - - -void ClangServer::ParseCommand( void ) -{ - do - { - const string command_type = m_Reader.ReadToken( "command_type:%s" ); - - if ( command_type == "Server" ) - { - ParseServerCommand(); - } - else if ( command_type == "Session" ) - { - ParseSessionCommand(); - } - else - { - // unknown command type - } - } while ( m_Status != kStatus_Exit ); -} - - - - -/*================================================================================================*/ -/* EOF */ -/*================================================================================================*/ diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangServer.hpp b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangServer.hpp deleted file mode 100644 index 3364bbb..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangServer.hpp +++ /dev/null @@ -1,132 +0,0 @@ -/* -*- mode: c++ ; coding: utf-8-unix -*- */ -/* last updated : 2015/09/05.04:13:59 */ - -/* - * Copyright (c) 2013-2015 yaruopooner [https://github.com/yaruopooner] - * - * This file is part of ac-clang. - * - * 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 . - */ - - -#pragma once - -#ifndef __CLANG_SERVER_HPP__ -#define __CLANG_SERVER_HPP__ - - - -#define CLANG_SERVER_VERSION "server version 1.4.0" - - -/*================================================================================================*/ -/* Comment */ -/*================================================================================================*/ - - -/*================================================================================================*/ -/* Include Files */ -/*================================================================================================*/ - -#include -#include -#include - -#include "ClangSession.hpp" - - -/*================================================================================================*/ -/* Class */ -/*================================================================================================*/ - - -class ClangServer -{ -public: - enum Status - { - kStatus_Running, - kStatus_Exit, - }; - - - struct Specification - { - enum - { - kStreamBuffer_UnitSize = 1 * 1024 * 1024, - }; - - Specification( size_t StdinBufferSize = kStreamBuffer_UnitSize, - size_t StdoutBufferSize = kStreamBuffer_UnitSize, - const std::string& LogFile = std::string() ) : - m_StdinBufferSize( StdinBufferSize ) - , m_StdoutBufferSize( StdoutBufferSize ) - , m_LogFile( LogFile ) - { - } - - size_t m_StdinBufferSize; - size_t m_StdoutBufferSize; - std::string m_LogFile; - }; - - - ClangServer( const Specification& specification = Specification() ); - ~ClangServer( void ); - - void ParseCommand( void ); - - // void SetLogFile( const std::string& LogFile ); - - -private: - void ParseServerCommand( void ); - void ParseSessionCommand( void ); - - - // commands - void commandGetSpecification( void ); - void commandGetClangVersion( void ); - void commandSetClangParameters( void ); - void commandCreateSession( void ); - void commandDeleteSession( void ); - void commandReset( void ); - void commandShutdown( void ); - - -private: - typedef std::unordered_map< std::string, std::function< void (ClangServer&) > > ServerHandleMap; - typedef std::unordered_map< std::string, std::function< void (ClangSession&) > > SessionHandleMap; - typedef std::unordered_map< std::string, std::shared_ptr< ClangSession > > Dictionary; - - - ClangContext m_Context; - ServerHandleMap m_ServerCommands; - SessionHandleMap m_SessionCommands; - Dictionary m_Sessions; - StreamReader m_Reader; - StreamWriter m_Writer; - uint32_t m_Status; - Specification m_Specification; -}; - - - - -#endif // __CLANG_SERVER_HPP__ -/*================================================================================================*/ -/* EOF */ -/*================================================================================================*/ diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangSession.cpp b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangSession.cpp deleted file mode 100644 index 6625a54..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangSession.cpp +++ /dev/null @@ -1,739 +0,0 @@ -/* -*- mode: c++ ; coding: utf-8-unix -*- */ -/* last updated : 2015/07/25.03:32:02 */ - -/* - * Copyright (c) 2013-2015 yaruopooner [https://github.com/yaruopooner] - * - * This file is part of ac-clang. - * - * 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 . - */ - - -/*================================================================================================*/ -/* Comment */ -/*================================================================================================*/ - - -/*================================================================================================*/ -/* Include Files */ -/*================================================================================================*/ - -#include - -#include "ClangSession.hpp" - - -using namespace std; - - - -/*================================================================================================*/ -/* Internal Printer Class Definitions Section */ -/*================================================================================================*/ - - -namespace -{ - -string GetNormalizePath( CXFile file ) -{ - CXString filename = clang_getFileName( file ); - const string path = clang_getCString( filename ); - const regex expression( "[\\\\]+" ); - const string replace( "/" ); - const string normalize_path = regex_replace( path, expression, replace ); - - clang_disposeString( filename ); - - return normalize_path; -} - -} - - - -class ClangSession::Completion -{ -public: - Completion( ClangSession& Session ) : - m_Session( Session ) - { - } - - void PrintCompleteCandidates( void ); - -private: - bool PrintCompletionHeadTerm( CXCompletionString CompletionString ); - void PrintAllCompletionTerms( CXCompletionString CompletionString ); - void PrintCompletionLine( CXCompletionString CompletionString ); - void PrintCompletionResults( CXCodeCompleteResults* CompleteResults ); - -private: - ClangSession& m_Session; -}; - - -class ClangSession::Diagnostics -{ -public: - Diagnostics( ClangSession& Session ) : - m_Session( Session ) - { - } - - void PrintDiagnosticsResult( void ); - -private: - ClangSession& m_Session; -}; - - -class ClangSession::Jump -{ -public: - Jump( ClangSession& Session ) : - m_Session( Session ) - { - } - - void PrintInclusionFileLocation( void ); - void PrintDefinitionLocation( void ); - void PrintDeclarationLocation( void ); - void PrintSmartJumpLocation( void ); - -private: - struct Location - { - Location( void ) : - m_Line( 0 ) - , m_Column( 0 ) - { - } - - string m_NormalizePath; - uint32_t m_Line; - uint32_t m_Column; - }; - - CXCursor GetCursor( const uint32_t Line, const uint32_t Column ) const; - void PrepareTransaction( uint32_t& Line, uint32_t& Column ); - bool EvaluateCursorLocation( const CXCursor& Cursor ); - - bool EvaluateInclusionFileLocation( void ); - bool EvaluateDefinitionLocation( void ); - bool EvaluateDeclarationLocation( void ); - bool EvaluateSmartJumpLocation( void ); - void PrintLocation( void ); - -private: - ClangSession& m_Session; - Location m_Location; -}; - - - - -bool ClangSession::Completion::PrintCompletionHeadTerm( CXCompletionString CompletionString ) -{ - // check accessibility of candidate. (access specifier of member : public/protected/private) - if ( clang_getCompletionAvailability( CompletionString ) == CXAvailability_NotAccessible ) - { - return ( false ); - } - - const uint32_t n_chunks = clang_getNumCompletionChunks( CompletionString ); - - // inspect all chunks only to find the TypedText chunk - for ( uint32_t i_chunk = 0; i_chunk < n_chunks; ++i_chunk ) - { - if ( clang_getCompletionChunkKind( CompletionString, i_chunk ) == CXCompletionChunk_TypedText ) - { - // We got it, just dump it to fp - CXString ac_string = clang_getCompletionChunkText( CompletionString, i_chunk ); - - m_Session.m_Writer.Write( "COMPLETION: %s", clang_getCString( ac_string ) ); - - clang_disposeString( ac_string ); - - // care package on the way - return ( true ); - } - } - - // We haven't found TypedText chunk in CompletionString - return ( false ); -} - -void ClangSession::Completion::PrintAllCompletionTerms( CXCompletionString CompletionString ) -{ - const uint32_t n_chunks = clang_getNumCompletionChunks( CompletionString ); - - for ( uint32_t i_chunk = 0; i_chunk < n_chunks; ++i_chunk ) - { - // get the type and completion text of this chunk - CXCompletionChunkKind chk_kind = clang_getCompletionChunkKind( CompletionString, i_chunk ); - CXString chk_text = clang_getCompletionChunkText( CompletionString, i_chunk ); - - // differenct kinds of chunks has various output formats - switch ( chk_kind ) - { - case CXCompletionChunk_Placeholder: - m_Session.m_Writer.Write( "<#%s#>", clang_getCString( chk_text ) ); - break; - - case CXCompletionChunk_ResultType: - m_Session.m_Writer.Write( "[#%s#]", clang_getCString( chk_text ) ); - break; - - case CXCompletionChunk_Optional: - // print optional term in a recursive way - m_Session.m_Writer.Write( "{#" ); - PrintAllCompletionTerms( clang_getCompletionChunkCompletionString( CompletionString, i_chunk ) ); - m_Session.m_Writer.Write( "#}" ); - break; - - default: - m_Session.m_Writer.Write( "%s", clang_getCString( chk_text ) ); - } - - clang_disposeString( chk_text ); - } -} - -void ClangSession::Completion::PrintCompletionLine( CXCompletionString CompletionString ) -{ - // print completion item head: COMPLETION: typed_string - if ( PrintCompletionHeadTerm( CompletionString ) ) - { - // If there's not only one TypedText chunk in this completion string, - // * we still have a lot of info to dump: - // * - // * COMPLETION: typed_text : ##infos## \n - m_Session.m_Writer.Write( " : " ); - - PrintAllCompletionTerms( CompletionString ); - - m_Session.m_Writer.Write( "\n" ); - } -} - -void ClangSession::Completion::PrintCompletionResults( CXCodeCompleteResults* CompleteResults ) -{ - const uint32_t results_limit = m_Session.m_Context.GetCompleteResultsLimit(); - const bool is_accept = results_limit ? ( CompleteResults->NumResults < results_limit ) : true; - - if ( !is_accept ) - { - m_Session.m_Writer.Write( "A number of completion results(%d) is threshold value(%d) over!!\n", CompleteResults->NumResults, results_limit ); - return; - } - - for ( uint32_t i = 0; i < CompleteResults->NumResults; ++i ) - { - PrintCompletionLine( CompleteResults->Results[ i ].CompletionString ); - } -} - -void ClangSession::Completion::PrintCompleteCandidates( void ) -{ - uint32_t line; - uint32_t column; - - m_Session.m_Reader.ReadToken( "line:%d", line ); - m_Session.m_Reader.ReadToken( "column:%d", column ); - - m_Session.ReadSourceCode(); - - CXUnsavedFile unsaved_file = m_Session.GetCXUnsavedFile(); - // necessary call? - // clang_reparseTranslationUnit( m_Session.m_CxTU, 1, &unsaved_file, m_Session.m_TranslationUnitFlags ); - CXCodeCompleteResults* results = clang_codeCompleteAt( m_Session.m_CxTU, m_Session.m_SessionName.c_str(), line, column, &unsaved_file, 1, m_Session.m_CompleteAtFlags ); - - if ( results ) - { - clang_sortCodeCompletionResults( results->Results, results->NumResults ); - - PrintCompletionResults( results ); - - clang_disposeCodeCompleteResults( results ); - } - - m_Session.m_Writer.Flush(); -} - - - -void ClangSession::Diagnostics::PrintDiagnosticsResult( void ) -{ - m_Session.ReadSourceCode(); - - CXUnsavedFile unsaved_file = m_Session.GetCXUnsavedFile(); - - clang_reparseTranslationUnit( m_Session.m_CxTU, 1, &unsaved_file, m_Session.m_TranslationUnitFlags ); - - const uint32_t n_diagnostics = clang_getNumDiagnostics( m_Session.m_CxTU ); - - for ( uint32_t i = 0; i < n_diagnostics; ++i ) - { - CXDiagnostic diagnostic = clang_getDiagnostic( m_Session.m_CxTU, i ); - CXString message = clang_formatDiagnostic( diagnostic, clang_defaultDiagnosticDisplayOptions() ); - - m_Session.m_Writer.Write( "%s\n", clang_getCString( message ) ); - - clang_disposeString( message ); - clang_disposeDiagnostic( diagnostic ); - } - - m_Session.m_Writer.Flush(); -} - - - -CXCursor ClangSession::Jump::GetCursor( const uint32_t Line, const uint32_t Column ) const -{ - const CXFile file = clang_getFile( m_Session.m_CxTU, m_Session.m_SessionName.c_str() ); - const CXSourceLocation location = clang_getLocation( m_Session.m_CxTU, file, Line, Column ); - const CXCursor cursor = clang_getCursor( m_Session.m_CxTU, location ); - - return cursor; -} - -void ClangSession::Jump::PrepareTransaction( uint32_t& Line, uint32_t& Column ) -{ - m_Session.m_Reader.ReadToken( "line:%d", Line ); - m_Session.m_Reader.ReadToken( "column:%d", Column ); - - m_Session.ReadSourceCode(); - - CXUnsavedFile unsaved_file = m_Session.GetCXUnsavedFile(); - - clang_reparseTranslationUnit( m_Session.m_CxTU, 1, &unsaved_file, m_Session.m_TranslationUnitFlags ); -} - - -bool ClangSession::Jump::EvaluateCursorLocation( const CXCursor& Cursor ) -{ - if ( clang_isInvalid( Cursor.kind ) ) - { - return ( false ); - } - - const CXSourceLocation dest_location = clang_getCursorLocation( Cursor ); - CXFile dest_file; - uint32_t dest_line; - uint32_t dest_column; - uint32_t dest_offset; - - clang_getExpansionLocation( dest_location, &dest_file, &dest_line, &dest_column, &dest_offset ); - - if ( !dest_file ) - { - return ( false ); - } - - const string normalize_path = ::GetNormalizePath( dest_file ); - - m_Location.m_NormalizePath = normalize_path; - m_Location.m_Line = dest_line; - m_Location.m_Column = dest_column; - - return ( true ); -} - - -bool ClangSession::Jump::EvaluateInclusionFileLocation( void ) -{ - uint32_t line; - uint32_t column; - - PrepareTransaction( line, column ); - - const CXCursor source_cursor = GetCursor( line, column ); - - if ( !clang_isInvalid( source_cursor.kind ) ) - { - if ( source_cursor.kind == CXCursor_InclusionDirective ) - { - const CXFile file = clang_getIncludedFile( source_cursor ); - - if ( file ) - { - const uint32_t file_line = 1; - const uint32_t file_column = 1; - const string normalize_path = ::GetNormalizePath( file ); - - m_Location.m_NormalizePath = normalize_path; - m_Location.m_Line = file_line; - m_Location.m_Column = file_column; - - return ( true ); - } - } - } - - return ( false ); -} - -bool ClangSession::Jump::EvaluateDefinitionLocation( void ) -{ - uint32_t line; - uint32_t column; - - PrepareTransaction( line, column ); - - const CXCursor source_cursor = GetCursor( line, column ); - - if ( !clang_isInvalid( source_cursor.kind ) ) - { - return EvaluateCursorLocation( clang_getCursorDefinition( source_cursor ) ); - } - - return ( false ); -} - -bool ClangSession::Jump::EvaluateDeclarationLocation( void ) -{ - uint32_t line; - uint32_t column; - - PrepareTransaction( line, column ); - - const CXCursor source_cursor = GetCursor( line, column ); - - if ( !clang_isInvalid( source_cursor.kind ) ) - { - return EvaluateCursorLocation( clang_getCursorReferenced( source_cursor ) ); - } - - return ( false ); -} - -bool ClangSession::Jump::EvaluateSmartJumpLocation( void ) -{ - uint32_t line; - uint32_t column; - - PrepareTransaction( line, column ); - - const CXCursor source_cursor = GetCursor( line, column ); - - if ( !clang_isInvalid( source_cursor.kind ) ) - { - if ( source_cursor.kind == CXCursor_InclusionDirective ) - { - const CXFile file = clang_getIncludedFile( source_cursor ); - - if ( file ) - { - const uint32_t file_line = 1; - const uint32_t file_column = 1; - const string normalize_path = ::GetNormalizePath( file ); - - m_Location.m_NormalizePath = normalize_path; - m_Location.m_Line = file_line; - m_Location.m_Column = file_column; - - return ( true ); - } - } - else - { - return ( EvaluateCursorLocation( clang_getCursorDefinition( source_cursor ) ) - || EvaluateCursorLocation( clang_getCursorReferenced( source_cursor ) ) ); - } - } - - return ( false ); -} - - -void ClangSession::Jump::PrintLocation( void ) -{ - m_Session.m_Writer.Write( "\"%s\" %d %d ", m_Location.m_NormalizePath.c_str(), m_Location.m_Line, m_Location.m_Column ); -} - - -void ClangSession::Jump::PrintInclusionFileLocation( void ) -{ - if ( EvaluateInclusionFileLocation() ) - { - PrintLocation(); - } - - m_Session.m_Writer.Flush(); -} - -void ClangSession::Jump::PrintDefinitionLocation( void ) -{ - if ( EvaluateDefinitionLocation() ) - { - PrintLocation(); - } - - m_Session.m_Writer.Flush(); -} - -void ClangSession::Jump::PrintDeclarationLocation( void ) -{ - if ( EvaluateDeclarationLocation() ) - { - PrintLocation(); - } - - m_Session.m_Writer.Flush(); -} - -void ClangSession::Jump::PrintSmartJumpLocation( void ) -{ - if ( EvaluateSmartJumpLocation() ) - { - PrintLocation(); - } - - m_Session.m_Writer.Flush(); -} - - - - -/*================================================================================================*/ -/* Global Class Method Definitions Section */ -/*================================================================================================*/ - - -ClangSession::ClangSession( const std::string& SessionName, const ClangContext& Context, StreamReader& Reader, StreamWriter& Writer ) - : - m_SessionName( SessionName ) - , m_Context( Context ) - , m_Reader( Reader ) - , m_Writer( Writer ) - , m_CxTU( nullptr ) - , m_TranslationUnitFlags( Context.GetTranslationUnitFlags() ) - , m_CompleteAtFlags( Context.GetCompleteAtFlags() ) -{ -} - - -ClangSession::~ClangSession( void ) -{ - Deallocate(); -} - - - -void ClangSession::ReadCFlags( void ) -{ - int32_t num_cflags; - - m_Reader.ReadToken( "num_cflags:%d", num_cflags ); - - vector< string > cflags; - - for ( int32_t i = 0; i < num_cflags; ++i ) - { - // CFLAGS's white space must be accept. - // a separator is '\n'. - cflags.push_back( m_Reader.ReadToken( "%[^\n]" ) ); - } - - m_CFlagsBuffer.Allocate( cflags ); -} - -void ClangSession::ReadSourceCode( void ) -{ - int32_t src_length; - - m_Reader.ReadToken( "source_length:%d", src_length ); - - m_CSourceCodeBuffer.Allocate( src_length ); - - m_Reader.Read( m_CSourceCodeBuffer.GetBuffer(), m_CSourceCodeBuffer.GetSize() ); -} - - - -void ClangSession::CreateTranslationUnit( void ) -{ - if ( m_CxTU ) - { - // clang parser already exist - return; - } - - CXUnsavedFile unsaved_file = GetCXUnsavedFile(); - - m_CxTU = clang_parseTranslationUnit( m_Context.GetCXIndex(), m_SessionName.c_str(), - static_cast< const char * const *>( m_CFlagsBuffer.GetCFlags() ), m_CFlagsBuffer.GetNumberOfCFlags(), - &unsaved_file, 1, m_TranslationUnitFlags ); - - clang_reparseTranslationUnit( m_CxTU, 1, &unsaved_file, m_TranslationUnitFlags ); -} - -void ClangSession::DeleteTranslationUnit( void ) -{ - if ( !m_CxTU ) - { - // clang parser not exist - return; - } - - clang_disposeTranslationUnit( m_CxTU ); - m_CxTU = nullptr; -} - - - -void ClangSession::Allocate( void ) -{ - ReadCFlags(); - ReadSourceCode(); - CreateTranslationUnit(); -} - -void ClangSession::Deallocate( void ) -{ - DeleteTranslationUnit(); -} - - -void ClangSession::commandSuspend( void ) -{ - DeleteTranslationUnit(); -} - -void ClangSession::commandResume( void ) -{ - CreateTranslationUnit(); -} - - -void ClangSession::commandSetCFlags( void ) -{ - DeleteTranslationUnit(); - ReadCFlags(); - ReadSourceCode(); - CreateTranslationUnit(); -} - - -void ClangSession::commandSetSourceCode( void ) -{ - ReadSourceCode(); -} - -void ClangSession::commandReparse( void ) -{ - if ( !m_CxTU ) - { - // clang parser not exist - return; - } - - CXUnsavedFile unsaved_file = GetCXUnsavedFile(); - - clang_reparseTranslationUnit( m_CxTU, 1, &unsaved_file, m_TranslationUnitFlags ); -} - - -void ClangSession::commandCompletion( void ) -{ - if ( !m_CxTU ) - { - // clang parser not exist - return; - } - - Completion printer( *this ); - - printer.PrintCompleteCandidates(); -} - - -void ClangSession::commandDiagnostics( void ) -{ - if ( !m_CxTU ) - { - // clang parser not exist - return; - } - - Diagnostics printer( *this ); - - printer.PrintDiagnosticsResult(); -} - - -void ClangSession::commandInclusion( void ) -{ - if ( !m_CxTU ) - { - // clang parser not exist - return; - } - - Jump printer( *this ); - - printer.PrintInclusionFileLocation(); -} - - -void ClangSession::commandDeclaration( void ) -{ - if ( !m_CxTU ) - { - // clang parser not exist - return; - } - - Jump printer( *this ); - - printer.PrintDeclarationLocation(); -} - - -void ClangSession::commandDefinition( void ) -{ - if ( !m_CxTU ) - { - // clang parser not exist - return; - } - - Jump printer( *this ); - - printer.PrintDefinitionLocation(); -} - - -void ClangSession::commandSmartJump( void ) -{ - if ( !m_CxTU ) - { - // clang parser not exist - return; - } - - Jump printer( *this ); - - printer.PrintSmartJumpLocation(); -} - - - - - -/*================================================================================================*/ -/* EOF */ -/*================================================================================================*/ diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangSession.hpp b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangSession.hpp deleted file mode 100644 index 4a3e889..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/ClangSession.hpp +++ /dev/null @@ -1,133 +0,0 @@ -/* -*- mode: c++ ; coding: utf-8-unix -*- */ -/* last updated : 2015/07/25.00:55:41 */ - -/* - * Copyright (c) 2013-2015 yaruopooner [https://github.com/yaruopooner] - * - * This file is part of ac-clang. - * - * 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 . - */ - - -#pragma once - -#ifndef __CLANG_SESSION_HPP__ -#define __CLANG_SESSION_HPP__ - - - - -/*================================================================================================*/ -/* Comment */ -/*================================================================================================*/ - - -/*================================================================================================*/ -/* Include Files */ -/*================================================================================================*/ - -#include "Common.hpp" - - -/*================================================================================================*/ -/* Global Class Method Definitions Section */ -/*================================================================================================*/ - - - -class ClangSession -{ -public: - ClangSession( const std::string& SessionName, const ClangContext& Context, StreamReader& Reader, StreamWriter& Writer ); - virtual ~ClangSession( void ); - - - void Allocate( void ); - void Deallocate( void ); - - - // const CFlagsBuffer& GetCFlagsBuffer( void ) const - // { - // return ( m_CFlagsBuffer ); - // } - // CFlagsBuffer& GetCFlagsBuffer( void ) - // { - // return ( m_CFlagsBuffer ); - // } - - - // commands - void commandSuspend( void ); - void commandResume( void ); - void commandSetCFlags( void ); - void commandSetSourceCode( void ); - void commandReparse( void ); - void commandCompletion( void ); - void commandDiagnostics( void ); - void commandInclusion( void ); - void commandDeclaration( void ); - void commandDefinition( void ); - void commandSmartJump( void ); - - -private: - CXUnsavedFile GetCXUnsavedFile( void ) const - { - CXUnsavedFile unsaved_file; - - unsaved_file.Filename = m_SessionName.c_str(); - unsaved_file.Contents = m_CSourceCodeBuffer.GetBuffer(); - unsaved_file.Length = m_CSourceCodeBuffer.GetSize(); - - return ( unsaved_file ); - } - - void ReadCFlags( void ); - void ReadSourceCode( void ); - - void CreateTranslationUnit( void ); - void DeleteTranslationUnit( void ); - - - // internal printer classes - class Completion; - class Diagnostics; - class Jump; - - -private: - const std::string m_SessionName; - const ClangContext& m_Context; - StreamReader& m_Reader; - StreamWriter& m_Writer; - - // clang parser object - CXTranslationUnit m_CxTU; - - // clang parser options - uint32_t m_TranslationUnitFlags; - uint32_t m_CompleteAtFlags; - - CFlagsBuffer m_CFlagsBuffer; - CSourceCodeBuffer m_CSourceCodeBuffer; -}; - - - - -#endif // __CLANG_SESSION_HPP__ -/*================================================================================================*/ -/* EOF */ -/*================================================================================================*/ diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/CommandLine.hpp b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/CommandLine.hpp deleted file mode 100644 index 15d1973..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/CommandLine.hpp +++ /dev/null @@ -1,607 +0,0 @@ -/* -*- mode: c++ ; coding: utf-8-unix -*- */ -/* last updated : 2015/05/23.23:17:32 */ - -/* - * Copyright (c) 2013-2015 yaruopooner [https://github.com/yaruopooner] - * - * This file is part of ac-clang. - * - * 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 . - */ - - -#pragma once - -#ifndef __COMMAND_LINE_HPP__ -#define __COMMAND_LINE_HPP__ - - -/*================================================================================================*/ -/* Include Files */ -/*================================================================================================*/ - -#include -#include -#include -#include -#include -#include - - -/*================================================================================================*/ -/* Class */ -/*================================================================================================*/ - - -namespace CommandLine -{ - - -template< typename Target, typename Source > -struct lexical_cast_imp -{ - static Target cast( const Source& value ) - { - Target result; - std::stringstream interpreter; - - if ( !( interpreter << value ) || !( interpreter >> result ) || !( interpreter >> std::ws ).eof() ) - { - throw std::invalid_argument( "value cast failure." ); - } - - return result; - } -}; - -template< typename Source > -struct lexical_cast_imp< Source, Source > -{ - static Source cast( const Source& value ) - { - return value; - } -}; - -template< typename Target, typename Source > -static Target lexical_cast( const Source& value ) -{ - return lexical_cast_imp< Target, Source >::cast( value ); -} - - -template< typename T > -struct DefaultReader -{ - virtual ~DefaultReader( void ) - { - } - virtual T operator ()( const std::string& argument ) const - { - return lexical_cast< T >( argument ); - } -}; - -template< typename T > -class RangeReader : public DefaultReader< T > -{ -public: - RangeReader( T min, T max ) : - m_Min( min ) - , m_Max( max ) - { - } - - virtual T operator ()( const std::string& argument ) const override - { - const T value = lexical_cast< T >( argument ); - - if ( ( value < m_Min ) || ( m_Max < value ) ) - { - throw std::domain_error( "value is out of range : " + argument ); - } - - return value; - } - - T m_Min; - T m_Max; -}; - - -class IOptionWithValue; -template< typename T, typename Reader > -class OptionWithValueWithReader; - - -class IOptionDetail -{ -protected: - virtual ~IOptionDetail() - { - } - -public: - enum Flag - { - kFlag_Once = 1 << 0, - kFlag_HasValue = 1 << 1, - kFlag_RequireValue = 1 << 2, - }; - - virtual int32_t GetId( void ) const = 0; - virtual const std::string& GetName( void ) const = 0; - virtual const std::string& GetShortName( void ) const = 0; - virtual const std::string& GetDescription( void ) const = 0; - virtual bool HasFlag( uint32_t flag ) const = 0; - virtual const std::string& GetValueDescription( void ) const = 0; - - virtual bool IsSameName( const std::string& name ) const = 0; - - virtual std::shared_ptr< IOptionWithValue > CreateEvaluator( const std::string& argument ) const = 0; -}; - - - -template< typename T, typename Reader = DefaultReader< T > > -class OptionDetail : public IOptionDetail -{ -public: - OptionDetail( int32_t id, const std::string& name, const std::string& shortName, const std::string& description, uint32_t flags = 0, const std::string& valueDescription = std::string(), const Reader& reader = Reader() ) : - m_Id( id ) - , m_Name( "--" + name ) - , m_ShortName( "-" + shortName ) - , m_Description( description ) - , m_Flags( flags ) - , m_ValueDescription( valueDescription ) - , m_Reader( reader ) - { - } - virtual ~OptionDetail() - { - } - - int32_t GetId( void ) const final - { - return m_Id; - } - const std::string& GetName( void ) const final - { - return m_Name; - } - const std::string& GetShortName( void ) const final - { - return m_ShortName; - } - const std::string& GetDescription( void ) const final - { - return m_Description; - } - bool HasFlag( uint32_t flag ) const final - { - return ( m_Flags & flag ) ? true : false; - } - const std::string& GetValueDescription( void ) const final - { - return m_ValueDescription; - } - - bool IsSameName( const std::string& name ) const final - { - return ( ( m_Name == name ) || ( m_ShortName == name ) ); - } - - std::shared_ptr< IOptionWithValue > CreateEvaluator( const std::string& argument ) const override - { - return std::make_shared< OptionWithValueWithReader< T, Reader > >( this, argument ); - } - - T GetValue( const std::string& argument ) const - { - return m_Reader( argument ); - } - - -protected: - const int32_t m_Id; - const std::string m_Name; - const std::string m_ShortName; - const std::string m_Description; - const uint32_t m_Flags; - const std::string m_ValueDescription; - const Reader m_Reader; -}; - - - -class IOptionWithValue -{ -protected: - virtual ~IOptionWithValue( void ) - { - } - -public: - virtual const IOptionDetail* GetDetail( void ) const = 0; - virtual uint32_t GetId( void ) const = 0; - virtual const std::string& GetOptionName( void ) const = 0; - virtual bool IsValid( void ) const = 0; - virtual bool Evaluate( std::string& message ) = 0; -}; - - -template< typename T > -class OptionWithValue : public IOptionWithValue -{ -protected: - OptionWithValue( const IOptionDetail* detail, const std::string& argument ) : - m_Detail( detail ) - , m_Argument( argument ) - , m_ValidValue( false ) - { - } - -public: - virtual ~OptionWithValue( void ) - { - } - - const IOptionDetail* GetDetail( void ) const final - { - return m_Detail; - } - - uint32_t GetId( void ) const final - { - return m_Detail->GetId(); - } - - const std::string& GetOptionName( void ) const final - { - return m_Detail->GetName(); - } - - bool IsValid( void ) const final - { - return m_ValidValue; - } - - virtual bool Evaluate( std::string& message ) override - { - return true; - } - - const T& GetValue( void ) const - { - return m_Value; - } - -protected: - const IOptionDetail* m_Detail; - const std::string m_Argument; - bool m_ValidValue; - T m_Value; -}; - - -template< typename T, typename Reader > -class OptionWithValueWithReader : public OptionWithValue< T > -{ -public: - OptionWithValueWithReader( const IOptionDetail* detail, const std::string& argument ) : - OptionWithValue< T >( detail, argument ) - { - } - virtual ~OptionWithValueWithReader( void ) - { - } - - bool Evaluate( std::string& message ) override - { - try - { - if ( !this->m_Argument.empty() ) - { - const auto* detail = dynamic_cast< const OptionDetail< T, Reader >* >( this->m_Detail ); - - this->m_Value = detail->GetValue( this->m_Argument ); - this->m_ValidValue = true; - } - - return true; - } - catch ( const std::exception& exception ) - { - std::stringstream ss; - - ss << this->m_Detail->GetName() << " : " << exception.what() << std::endl; - ss << this->m_Detail->GetDescription(); - message = ss.str(); - - return false; - } - } -}; - - - -typedef std::vector< std::shared_ptr< IOptionDetail > > OptionDetailArray; -typedef std::vector< std::shared_ptr< IOptionWithValue > > OptionWithValueArray; - -class Parser -{ -public: - - void AddOption( int32_t id, const std::string& name, const std::string& shortName, const std::string& description, uint32_t flags = 0, const std::string& valueDescription = std::string() ) - { - m_Details.push_back( std::make_shared< OptionDetail< std::string > >( id, name, shortName, description, flags, valueDescription ) ); - } - - template< typename T, typename Reader = DefaultReader< T > > - void AddOption( int32_t id, const std::string& name, const std::string& shortName, const std::string& description, uint32_t flags = 0, const std::string& valueDescription = std::string(), const Reader& reader = Reader() ) - { - m_Details.push_back( std::make_shared< OptionDetail< T, Reader > >( id, name, shortName, description, flags, valueDescription, reader ) ); - } - - size_t GetNumberOfOptionValues( void ) const - { - return m_OptionValues.size(); - } - - size_t GetNumberOfArguments( void ) const - { - return m_Arguments.size(); - } - - static const std::string& GetOptionName( const IOptionWithValue* value ) - { - return value->GetDetail()->GetName(); - } - - template< typename T > - static const T& GetValue( const std::shared_ptr< IOptionWithValue >& value ) - { - const auto* casted_value = dynamic_cast< const OptionWithValue< T >* >( value.get() ); - - return casted_value->GetValue(); - } - - const OptionDetailArray& GetOptionDetailArray( void ) const - { - return m_Details; - } - const OptionWithValueArray& GetOptionWithValueArray( void ) const - { - return m_OptionValues; - } - - bool Parse( int argc, char* argv[] ) - { - // clear & store - m_Arguments.clear(); - for ( int i = 1; i < argc; ++i ) - { - m_Arguments.push_back( argv[ i ] ); - } - - // parse - const size_t n_args = m_Arguments.size(); - - for ( size_t i = 0; i < n_args; ++i ) - { - const std::string& option_name = m_Arguments[ i ]; - - if ( !HasOptionPrefix( option_name ) ) - { - // error, argument is not option format - // ignore - m_Errors.push_back( "option syntax error : argument is not option format : " + option_name ); - continue; - } - - bool is_match = false; - bool is_valid_format = false; - std::string value; - - for ( const auto detail : m_Details ) - { - if ( !detail->IsSameName( option_name ) ) - { - continue; - } - - is_match = true; - - // found - if ( detail->HasFlag( IOptionDetail::kFlag_HasValue ) ) - { - const size_t next_i = i + 1; - - if ( detail->HasFlag( IOptionDetail::kFlag_RequireValue ) ) - { - if ( n_args <= next_i ) - { - // error, argument locator over - m_Errors.push_back( "option syntax error : not enough argument : " + option_name ); - break; - } - - const std::string& next_value = m_Arguments[ next_i ]; - - if ( HasOptionPrefix( next_value ) ) - { - // option have not value - m_Errors.push_back( "option syntax error : value not found : " + option_name ); - break; - } - - value = m_Arguments[ next_i ]; - i = next_i; - } - else - { - if ( next_i < n_args ) - { - const std::string& next_value = m_Arguments[ next_i ]; - - if ( !HasOptionPrefix( next_value ) ) - { - // option have not value - value = m_Arguments[ next_i ]; - i = next_i; - } - } - else - { - // not value, option only - } - } - } - - // store found detal & value - m_OptionValues.push_back( detail->CreateEvaluator( value ) ); - - is_valid_format = true; - break; - } - - if ( !is_match ) - { - // unknown option - m_Warnings.push_back( "unknown option : " + option_name ); - - // value check - const size_t next_i = i + 1; - - if ( next_i < n_args ) - { - const std::string& next_value = m_Arguments[ next_i ]; - - if ( !HasOptionPrefix( next_value ) ) - { - // discard unknown option value - i = next_i; - } - } - } - else if ( !is_valid_format ) - { - // illegal option format - m_Errors.push_back( "option syntax error : illegal option format : " + option_name ); - } - } - - std::set< const IOptionDetail* > used_options; - - for ( auto& option_value : m_OptionValues ) - { - const IOptionDetail* detal = option_value->GetDetail(); - const bool found = ( used_options.find( detal ) != used_options.end() ); - - if ( !found ) - { - // first use - used_options.insert( detal ); - } - - if ( found && detal->HasFlag( IOptionDetail::kFlag_Once ) ) - { - // duplicate use - m_Errors.push_back( "option syntax error : duplicate use : " + detal->GetName() ); - continue; - } - - std::string message; - - if ( !option_value->Evaluate( message ) ) - { - m_Errors.push_back( message ); - // bad value - } - } - - return ( m_Errors.size() == 0 ); - } - - void PrintUsage( const std::string& format ) const - { - std::cout << "Usage: " << format <GetName(); - if ( !detail->GetShortName().empty() ) - { - std::cout << ", " << detail->GetShortName(); - } - if ( !detail->GetValueDescription().empty() ) - { - std::cout << " <" << detail->GetValueDescription() << ">"; - } - std::cout << std::endl; - std::cout << " " << detail->GetDescription() << std::endl; - } - } - - void PrintErrors( void ) const - { - if ( !m_Errors.empty() ) - { - std::cout << "Error:" << std::endl; - for ( const auto& error : m_Errors ) - { - std::cout << error << std::endl; - } - } - } - - void PrintWarnings( void ) const - { - if ( !m_Warnings.empty() ) - { - std::cout << "Warning:" << std::endl; - for ( const auto& warning : m_Warnings ) - { - std::cout << warning << std::endl; - } - } - } - -private: - static bool HasOptionPrefix( const std::string& name ) - { - return ( ( name.compare( 0, 2, "--" ) == 0 ) || ( name.compare( 0, 1, "-" ) == 0 ) ); - } - - -private: - OptionDetailArray m_Details; - std::vector< std::string > m_Arguments; - std::vector< std::string > m_Errors; - std::vector< std::string > m_Warnings; - OptionWithValueArray m_OptionValues; -}; - - - - -}; - - - -#endif -/*================================================================================================*/ -/* EOF */ -/*================================================================================================*/ diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/Common.cpp b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/Common.cpp deleted file mode 100644 index d2bcc7f..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/Common.cpp +++ /dev/null @@ -1,284 +0,0 @@ -/* -*- mode: c++ ; coding: utf-8-unix -*- */ -/* last updated : 2015/03/25.01:38:16 */ - -/* - * Copyright (c) 2013-2015 yaruopooner [https://github.com/yaruopooner] - * - * This file is part of ac-clang. - * - * 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 . - */ - - -/*================================================================================================*/ -/* Comment */ -/*================================================================================================*/ - - -/*================================================================================================*/ -/* Include Files */ -/*================================================================================================*/ - -#include -#include - -#include "Common.hpp" - - -using namespace std; - - -FlagConverter ClangFlagConverters::sm_CXTranslationUnitFlags; -FlagConverter ClangFlagConverters::sm_CXCodeCompleteFlags; - - - -/*================================================================================================*/ -/* Global Class Method Definitions Section */ -/*================================================================================================*/ - - - -StreamReader::StreamReader( void ) - : - m_File( stdin ) -{ - ClearLine(); -} - -StreamReader::~StreamReader( void ) -{ -} - - -void StreamReader::ClearLine( void ) -{ - ::memset( m_Line, 0, kLineMax ); -} - - -void StreamReader::StepNextLine( void ) -{ - char crlf[ kLineMax ]; - ::fgets( crlf, kLineMax, m_File ); -} - -const char* StreamReader::ReadToken( const char* Format, bool bStepNextLine ) -{ - ClearLine(); - - const int32_t result = ::fscanf( m_File, Format, m_Line ); - (void) result; - - if ( bStepNextLine ) - { - StepNextLine(); - } - - return ( m_Line ); -} - -void StreamReader::Read( char* Buffer, size_t ReadSize ) -{ - const size_t stored_size = ::fread( Buffer, 1, ReadSize, m_File ); - - if ( (stored_size < ReadSize) || ::feof( m_File ) ) - { - // error - } -} - - -StreamWriter::StreamWriter( void ) - : - m_File( stdout ) -{ -} - -StreamWriter::~StreamWriter( void ) -{ -} - - -void StreamWriter::Write( const char* Format, ... ) -{ - va_list args; - va_start( args, Format ); - - ::vfprintf( m_File, Format, args ); - - va_end( args ); -} - -void StreamWriter::Flush( void ) -{ - ::fprintf( m_File, "$" ); - ::fflush( m_File ); -} - - - - -CFlagsBuffer::CFlagsBuffer( void ) - : - m_NumberOfCFlags( 0 ) - , m_CFlags( nullptr ) -{ -} - - -CFlagsBuffer::~CFlagsBuffer( void ) -{ - Deallocate(); -} - - -void CFlagsBuffer::Allocate( const std::vector< std::string >& Args ) -{ - Deallocate(); - - m_NumberOfCFlags = static_cast< int32_t >( Args.size() ); - m_CFlags = reinterpret_cast< char** >( ::calloc( sizeof( char* ), m_NumberOfCFlags ) ); - - for ( int32_t i = 0; i < m_NumberOfCFlags; ++i ) - { - m_CFlags[ i ] = reinterpret_cast< char* >( ::calloc( sizeof( char ), Args[ i ].length() + 1 ) ); - - ::strcpy( m_CFlags[ i ], Args[ i ].c_str() ); - } -} - -void CFlagsBuffer::Deallocate( void ) -{ - if ( !m_CFlags ) - { - return; - } - - for ( int32_t i = 0; i < m_NumberOfCFlags; ++i ) - { - ::free( m_CFlags[ i ] ); - } - ::free( m_CFlags ); - - m_CFlags = nullptr; - m_NumberOfCFlags = 0; -} - - -CSourceCodeBuffer::CSourceCodeBuffer( void ) - : - m_Size( 0 ) - , m_BufferCapacity( 0 ) - , m_Buffer( nullptr ) -{ -} - -CSourceCodeBuffer::~CSourceCodeBuffer( void ) -{ - Deallocate(); -} - - -void CSourceCodeBuffer::Allocate( int32_t Size ) -{ - m_Size = Size; - - if ( m_Size >= m_BufferCapacity ) - { - const int32_t extend_size = std::max( m_Size * 2, static_cast< int32_t >( kInitialSrcBufferSize ) ); - char* extend_buffer = reinterpret_cast< char* >( ::realloc( m_Buffer, extend_size ) ); - - if ( extend_buffer ) - { - m_BufferCapacity = extend_size; - m_Buffer = extend_buffer; - } - else - { - // error - } - } -} - -void CSourceCodeBuffer::Deallocate( void ) -{ - if ( m_Buffer ) - { - ::free( m_Buffer ); - m_Buffer = nullptr; - } - - m_Size = 0; -} - - - -ClangContext::ClangContext( bool excludeDeclarationsFromPCH ) - : - m_CxIndex( nullptr ) - , m_ExcludeDeclarationsFromPCH( excludeDeclarationsFromPCH ) - , m_TranslationUnitFlags( CXTranslationUnit_PrecompiledPreamble ) - , m_CompleteAtFlags( CXCodeComplete_IncludeMacros ) - , m_CompleteResultsLimit( 0 ) -{ - Allocate(); -} - -ClangContext::~ClangContext( void ) -{ - Deallocate(); -} - - -void ClangContext::Allocate( void ) -{ - m_CxIndex = clang_createIndex( m_ExcludeDeclarationsFromPCH, 0 ); -} - -void ClangContext::Deallocate( void ) -{ - if ( m_CxIndex ) - { - clang_disposeIndex( m_CxIndex ); - m_CxIndex = nullptr; - } -} - - - - -ClangFlagConverters::ClangFlagConverters( void ) -{ - sm_CXTranslationUnitFlags.Add( FLAG_DETAILS( CXTranslationUnit_DetailedPreprocessingRecord ) ); - sm_CXTranslationUnitFlags.Add( FLAG_DETAILS( CXTranslationUnit_Incomplete ) ); - sm_CXTranslationUnitFlags.Add( FLAG_DETAILS( CXTranslationUnit_PrecompiledPreamble ) ); - sm_CXTranslationUnitFlags.Add( FLAG_DETAILS( CXTranslationUnit_CacheCompletionResults ) ); - sm_CXTranslationUnitFlags.Add( FLAG_DETAILS( CXTranslationUnit_ForSerialization ) ); - sm_CXTranslationUnitFlags.Add( FLAG_DETAILS( CXTranslationUnit_CXXChainedPCH ) ); - sm_CXTranslationUnitFlags.Add( FLAG_DETAILS( CXTranslationUnit_SkipFunctionBodies ) ); - sm_CXTranslationUnitFlags.Add( FLAG_DETAILS( CXTranslationUnit_IncludeBriefCommentsInCodeCompletion ) ); - - sm_CXCodeCompleteFlags.Add( FLAG_DETAILS( CXCodeComplete_IncludeMacros ) ); - sm_CXCodeCompleteFlags.Add( FLAG_DETAILS( CXCodeComplete_IncludeCodePatterns ) ); - sm_CXCodeCompleteFlags.Add( FLAG_DETAILS( CXCodeComplete_IncludeBriefComments ) ); -} - - - - - -/*================================================================================================*/ -/* EOF */ -/*================================================================================================*/ diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/Common.hpp b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/Common.hpp deleted file mode 100644 index f212be0..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/Common.hpp +++ /dev/null @@ -1,371 +0,0 @@ -/* -*- mode: c++ ; coding: utf-8-unix -*- */ -/* last updated : 2015/03/25.01:38:00 */ - -/* - * Copyright (c) 2013-2015 yaruopooner [https://github.com/yaruopooner] - * - * This file is part of ac-clang. - * - * 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 . - */ - - -#pragma once - -#ifndef __COMMON_HPP__ -#define __COMMON_HPP__ - - - - -/*================================================================================================*/ -/* Comment */ -/*================================================================================================*/ - - -/*================================================================================================*/ -/* Include Files */ -/*================================================================================================*/ - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "clang-c/Index.h" - - - -/*================================================================================================*/ -/* Class */ -/*================================================================================================*/ - - - - -class StreamReader -{ -public: - StreamReader( void ); - virtual ~StreamReader( void ); - - template< typename T > - void ReadToken( const char* Format, T& Value, bool bStepNextLine = true ) - { - ClearLine(); - ::fscanf( m_File, Format, &Value ); - if ( bStepNextLine ) - { - StepNextLine(); - } - } - - const char* ReadToken( const char* Format, bool bStepNextLine = true ); - - void Read( char* Buffer, size_t ReadSize ); - -private: - void ClearLine( void ); - void StepNextLine( void ); - -private: - enum - { - kLineMax = 2048, - }; - - FILE* m_File; - char m_Line[ kLineMax ]; -}; - - -class StreamWriter -{ -public: - StreamWriter( void ); - virtual ~StreamWriter( void ); - - void Write( const char* Format, ... ); - void Flush( void ); - -private: - FILE* m_File; -}; - - - -class CFlagsBuffer -{ -public: - CFlagsBuffer( void ); - virtual ~CFlagsBuffer( void ); - - void Allocate( const std::vector< std::string >& CFlags ); - void Deallocate( void ); - - int32_t GetNumberOfCFlags( void ) const - { - return ( m_NumberOfCFlags ); - } - char** GetCFlags( void ) const - { - return ( m_CFlags ); - } - -private: - int32_t m_NumberOfCFlags; - char** m_CFlags; -}; - - -class CSourceCodeBuffer -{ -public: - CSourceCodeBuffer( void ); - virtual ~CSourceCodeBuffer( void ); - - void Allocate( int32_t Size ); - void Deallocate( void ); - - int32_t GetSize( void ) const - { - return ( m_Size ); - } - char* GetBuffer( void ) const - { - return ( m_Buffer ); - } - -private: - enum - { - kInitialSrcBufferSize = 4096, - }; - - int32_t m_Size; - int32_t m_BufferCapacity; - char* m_Buffer; -}; - - - -class ClangContext -{ -public: - ClangContext( bool excludeDeclarationsFromPCH = false ); - virtual ~ClangContext( void ); - - void Allocate( void ); - void Deallocate( void ); - - const CXIndex GetCXIndex( void ) const - { - return ( m_CxIndex ); - } - CXIndex GetCXIndex( void ) - { - return ( m_CxIndex ); - } - - void SetTranslationUnitFlags( uint32_t Flags ) - { - m_TranslationUnitFlags = Flags; - } - uint32_t GetTranslationUnitFlags( void ) const - { - return ( m_TranslationUnitFlags ); - } - - void SetCompleteAtFlags( uint32_t Flags ) - { - m_CompleteAtFlags = Flags; - } - uint32_t GetCompleteAtFlags( void ) const - { - return ( m_CompleteAtFlags ); - } - - void SetCompleteResultsLimit( uint32_t NumberOfLimit ) - { - m_CompleteResultsLimit = NumberOfLimit; - } - uint32_t GetCompleteResultsLimit( void ) const - { - return ( m_CompleteResultsLimit ); - } - - -private: - CXIndex m_CxIndex; - - bool m_ExcludeDeclarationsFromPCH; - uint32_t m_TranslationUnitFlags; - uint32_t m_CompleteAtFlags; - uint32_t m_CompleteResultsLimit; -}; - - - - -template< uint32_t Value > -struct BitField -{ - enum - { - kValue = Value, - kIndex = BitField< (Value >> 1) >::kIndex + 1, - }; -}; - -template<> -struct BitField< 0 > -{ - enum - { - kValue = 0, - kIndex = -1, - }; -}; - - - -class FlagConverter -{ -public: - typedef std::tuple< const char*, uint32_t > Details; - - - enum - { - kMaxValues = 32, - }; - - - FlagConverter( void ) : - m_MaxValue( 0 ) - { - } - virtual ~FlagConverter( void ) - { - } - - void Clear( void ) - { - m_MaxValue = 0; - } - - - void Add( const Details& Values ) - { - Add( std::get< 0 >( Values ), std::get< 1 >( Values ) ); - } - - void Add( const char* Name, uint32_t BitIndex ) - { - assert( Name ); - assert( BitIndex < kMaxValues ); - - m_FlagNames[ BitIndex ] = Name; - m_MaxValue = std::max( m_MaxValue, (BitIndex + 1) ); - } - - uint32_t GetValue( const std::string& Names ) const - { - return ( GetValue( Names.c_str() ) ); - } - - uint32_t GetValue( const char* Names ) const - { - if ( !Names ) - { - return ( 0 ); - } - - std::string names( Names ); - const char* delimit = "|"; - - if ( *(names.rbegin()) != *delimit ) - { - names += delimit; - } - - uint32_t value = 0; - size_t begin = 0; - size_t end = names.find_first_of( delimit ); - - while ( end != std::string::npos ) - { - const size_t length = end - begin; - const std::string name = names.substr( begin, length ); - - for ( size_t i = 0; i < m_MaxValue; ++i ) - { - if ( m_FlagNames[ i ] == name ) - { - value |= (1 << i); - break; - } - } - - begin = end + 1; - end = names.find_first_of( delimit, begin ); - } - - return ( value ); - } - -private: - std::string m_FlagNames[ kMaxValues ]; - uint32_t m_MaxValue; -}; - - -#define FLAG_DETAILS( _FLAG_NAME ) FlagConverter::Details( #_FLAG_NAME, BitField< _FLAG_NAME >::kIndex ) - - - - -class ClangFlagConverters -{ -public: - ClangFlagConverters( void ); - - - static const FlagConverter& GetCXTranslationUnitFlags( void ) - { - return ( sm_CXTranslationUnitFlags ); - } - static const FlagConverter& GetCXCodeCompleteFlags( void ) - { - return ( sm_CXCodeCompleteFlags ); - } - -private: - static FlagConverter sm_CXTranslationUnitFlags; - static FlagConverter sm_CXCodeCompleteFlags; -}; - - - - - -#endif // __COMMON_HPP__ -/*================================================================================================*/ -/* EOF */ -/*================================================================================================*/ diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/changes.org b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/changes.org deleted file mode 100755 index b144459..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/changes.org +++ /dev/null @@ -1,32 +0,0 @@ -# -*- mode: org ; coding: utf-8-unix -*- -# last updated : 2015/09/05.04:13:32 - - -#+TITLE: clang-server Changes Log -#+AUTHOR: yaruopooner -#+EMAIL: [https://github.com/yaruopooner] -#+OPTIONS: author:nil timestamp:t |:t \n:t ^:nil - - -* 1.4.0 - - Clang-3.7.0 support - -* 1.3.0 - - Added new feature. Jump to inclusion file. return from jumped location. - - Bugfix - -* 1.2.1 - - Fix compile error in clang. - -* 1.2.0 - - Access specifier of completion candidate support. - -* 1.1.1 - - Clang-3.6.1 support - - Bugfix - -* 1.1.0 - - Clang-3.6.0 support - -* 1.0.0 - - Clang-3.5.0 support diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/BuildSystem.h b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/BuildSystem.h deleted file mode 100644 index 8d323a4..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/BuildSystem.h +++ /dev/null @@ -1,156 +0,0 @@ -/*==-- clang-c/BuildSystem.h - Utilities for use by build systems -*- C -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This header provides various utilities for use by build systems. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_CLANG_C_BUILDSYSTEM_H -#define LLVM_CLANG_C_BUILDSYSTEM_H - -#include "clang-c/Platform.h" -#include "clang-c/CXErrorCode.h" -#include "clang-c/CXString.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup BUILD_SYSTEM Build system utilities - * @{ - */ - -/** - * \brief Return the timestamp for use with Clang's - * \c -fbuild-session-timestamp= option. - */ -CINDEX_LINKAGE unsigned long long clang_getBuildSessionTimestamp(void); - -/** - * \brief Object encapsulating information about overlaying virtual - * file/directories over the real file system. - */ -typedef struct CXVirtualFileOverlayImpl *CXVirtualFileOverlay; - -/** - * \brief Create a \c CXVirtualFileOverlay object. - * Must be disposed with \c clang_VirtualFileOverlay_dispose(). - * - * \param options is reserved, always pass 0. - */ -CINDEX_LINKAGE CXVirtualFileOverlay -clang_VirtualFileOverlay_create(unsigned options); - -/** - * \brief Map an absolute virtual file path to an absolute real one. - * The virtual path must be canonicalized (not contain "."/".."). - * \returns 0 for success, non-zero to indicate an error. - */ -CINDEX_LINKAGE enum CXErrorCode -clang_VirtualFileOverlay_addFileMapping(CXVirtualFileOverlay, - const char *virtualPath, - const char *realPath); - -/** - * \brief Set the case sensitivity for the \c CXVirtualFileOverlay object. - * The \c CXVirtualFileOverlay object is case-sensitive by default, this - * option can be used to override the default. - * \returns 0 for success, non-zero to indicate an error. - */ -CINDEX_LINKAGE enum CXErrorCode -clang_VirtualFileOverlay_setCaseSensitivity(CXVirtualFileOverlay, - int caseSensitive); - -/** - * \brief Write out the \c CXVirtualFileOverlay object to a char buffer. - * - * \param options is reserved, always pass 0. - * \param out_buffer_ptr pointer to receive the buffer pointer, which should be - * disposed using \c clang_free(). - * \param out_buffer_size pointer to receive the buffer size. - * \returns 0 for success, non-zero to indicate an error. - */ -CINDEX_LINKAGE enum CXErrorCode -clang_VirtualFileOverlay_writeToBuffer(CXVirtualFileOverlay, unsigned options, - char **out_buffer_ptr, - unsigned *out_buffer_size); - -/** - * \brief free memory allocated by libclang, such as the buffer returned by - * \c CXVirtualFileOverlay() or \c clang_ModuleMapDescriptor_writeToBuffer(). - * - * \param buffer memory pointer to free. - */ -CINDEX_LINKAGE void clang_free(void *buffer); - -/** - * \brief Dispose a \c CXVirtualFileOverlay object. - */ -CINDEX_LINKAGE void clang_VirtualFileOverlay_dispose(CXVirtualFileOverlay); - -/** - * \brief Object encapsulating information about a module.map file. - */ -typedef struct CXModuleMapDescriptorImpl *CXModuleMapDescriptor; - -/** - * \brief Create a \c CXModuleMapDescriptor object. - * Must be disposed with \c clang_ModuleMapDescriptor_dispose(). - * - * \param options is reserved, always pass 0. - */ -CINDEX_LINKAGE CXModuleMapDescriptor -clang_ModuleMapDescriptor_create(unsigned options); - -/** - * \brief Sets the framework module name that the module.map describes. - * \returns 0 for success, non-zero to indicate an error. - */ -CINDEX_LINKAGE enum CXErrorCode -clang_ModuleMapDescriptor_setFrameworkModuleName(CXModuleMapDescriptor, - const char *name); - -/** - * \brief Sets the umbrealla header name that the module.map describes. - * \returns 0 for success, non-zero to indicate an error. - */ -CINDEX_LINKAGE enum CXErrorCode -clang_ModuleMapDescriptor_setUmbrellaHeader(CXModuleMapDescriptor, - const char *name); - -/** - * \brief Write out the \c CXModuleMapDescriptor object to a char buffer. - * - * \param options is reserved, always pass 0. - * \param out_buffer_ptr pointer to receive the buffer pointer, which should be - * disposed using \c clang_free(). - * \param out_buffer_size pointer to receive the buffer size. - * \returns 0 for success, non-zero to indicate an error. - */ -CINDEX_LINKAGE enum CXErrorCode -clang_ModuleMapDescriptor_writeToBuffer(CXModuleMapDescriptor, unsigned options, - char **out_buffer_ptr, - unsigned *out_buffer_size); - -/** - * \brief Dispose a \c CXModuleMapDescriptor object. - */ -CINDEX_LINKAGE void clang_ModuleMapDescriptor_dispose(CXModuleMapDescriptor); - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif - -#endif /* CLANG_C_BUILD_SYSTEM_H */ - diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXCompilationDatabase.h b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXCompilationDatabase.h deleted file mode 100644 index 068a677..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXCompilationDatabase.h +++ /dev/null @@ -1,170 +0,0 @@ -/*===-- clang-c/CXCompilationDatabase.h - Compilation database ---*- C -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This header provides a public inferface to use CompilationDatabase without *| -|* the full Clang C++ API. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_CLANG_C_CXCOMPILATIONDATABASE_H -#define LLVM_CLANG_C_CXCOMPILATIONDATABASE_H - -#include "clang-c/Platform.h" -#include "clang-c/CXString.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** \defgroup COMPILATIONDB CompilationDatabase functions - * \ingroup CINDEX - * - * @{ - */ - -/** - * A compilation database holds all information used to compile files in a - * project. For each file in the database, it can be queried for the working - * directory or the command line used for the compiler invocation. - * - * Must be freed by \c clang_CompilationDatabase_dispose - */ -typedef void * CXCompilationDatabase; - -/** - * \brief Contains the results of a search in the compilation database - * - * When searching for the compile command for a file, the compilation db can - * return several commands, as the file may have been compiled with - * different options in different places of the project. This choice of compile - * commands is wrapped in this opaque data structure. It must be freed by - * \c clang_CompileCommands_dispose. - */ -typedef void * CXCompileCommands; - -/** - * \brief Represents the command line invocation to compile a specific file. - */ -typedef void * CXCompileCommand; - -/** - * \brief Error codes for Compilation Database - */ -typedef enum { - /* - * \brief No error occurred - */ - CXCompilationDatabase_NoError = 0, - - /* - * \brief Database can not be loaded - */ - CXCompilationDatabase_CanNotLoadDatabase = 1 - -} CXCompilationDatabase_Error; - -/** - * \brief Creates a compilation database from the database found in directory - * buildDir. For example, CMake can output a compile_commands.json which can - * be used to build the database. - * - * It must be freed by \c clang_CompilationDatabase_dispose. - */ -CINDEX_LINKAGE CXCompilationDatabase -clang_CompilationDatabase_fromDirectory(const char *BuildDir, - CXCompilationDatabase_Error *ErrorCode); - -/** - * \brief Free the given compilation database - */ -CINDEX_LINKAGE void -clang_CompilationDatabase_dispose(CXCompilationDatabase); - -/** - * \brief Find the compile commands used for a file. The compile commands - * must be freed by \c clang_CompileCommands_dispose. - */ -CINDEX_LINKAGE CXCompileCommands -clang_CompilationDatabase_getCompileCommands(CXCompilationDatabase, - const char *CompleteFileName); - -/** - * \brief Get all the compile commands in the given compilation database. - */ -CINDEX_LINKAGE CXCompileCommands -clang_CompilationDatabase_getAllCompileCommands(CXCompilationDatabase); - -/** - * \brief Free the given CompileCommands - */ -CINDEX_LINKAGE void clang_CompileCommands_dispose(CXCompileCommands); - -/** - * \brief Get the number of CompileCommand we have for a file - */ -CINDEX_LINKAGE unsigned -clang_CompileCommands_getSize(CXCompileCommands); - -/** - * \brief Get the I'th CompileCommand for a file - * - * Note : 0 <= i < clang_CompileCommands_getSize(CXCompileCommands) - */ -CINDEX_LINKAGE CXCompileCommand -clang_CompileCommands_getCommand(CXCompileCommands, unsigned I); - -/** - * \brief Get the working directory where the CompileCommand was executed from - */ -CINDEX_LINKAGE CXString -clang_CompileCommand_getDirectory(CXCompileCommand); - -/** - * \brief Get the number of arguments in the compiler invocation. - * - */ -CINDEX_LINKAGE unsigned -clang_CompileCommand_getNumArgs(CXCompileCommand); - -/** - * \brief Get the I'th argument value in the compiler invocations - * - * Invariant : - * - argument 0 is the compiler executable - */ -CINDEX_LINKAGE CXString -clang_CompileCommand_getArg(CXCompileCommand, unsigned I); - -/** - * \brief Get the number of source mappings for the compiler invocation. - */ -CINDEX_LINKAGE unsigned -clang_CompileCommand_getNumMappedSources(CXCompileCommand); - -/** - * \brief Get the I'th mapped source path for the compiler invocation. - */ -CINDEX_LINKAGE CXString -clang_CompileCommand_getMappedSourcePath(CXCompileCommand, unsigned I); - -/** - * \brief Get the I'th mapped source content for the compiler invocation. - */ -CINDEX_LINKAGE CXString -clang_CompileCommand_getMappedSourceContent(CXCompileCommand, unsigned I); - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXErrorCode.h b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXErrorCode.h deleted file mode 100644 index aff73b7..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXErrorCode.h +++ /dev/null @@ -1,64 +0,0 @@ -/*===-- clang-c/CXErrorCode.h - C Index Error Codes --------------*- C -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This header provides the CXErrorCode enumerators. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_CLANG_C_CXERRORCODE_H -#define LLVM_CLANG_C_CXERRORCODE_H - -#include "clang-c/Platform.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Error codes returned by libclang routines. - * - * Zero (\c CXError_Success) is the only error code indicating success. Other - * error codes, including not yet assigned non-zero values, indicate errors. - */ -enum CXErrorCode { - /** - * \brief No error. - */ - CXError_Success = 0, - - /** - * \brief A generic error code, no further details are available. - * - * Errors of this kind can get their own specific error codes in future - * libclang versions. - */ - CXError_Failure = 1, - - /** - * \brief libclang crashed while performing the requested operation. - */ - CXError_Crashed = 2, - - /** - * \brief The function detected that the arguments violate the function - * contract. - */ - CXError_InvalidArguments = 3, - - /** - * \brief An AST deserialization error has occurred. - */ - CXError_ASTReadError = 4 -}; - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXString.h b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXString.h deleted file mode 100644 index a649cdf..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/CXString.h +++ /dev/null @@ -1,61 +0,0 @@ -/*===-- clang-c/CXString.h - C Index strings --------------------*- C -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This header provides the interface to C Index strings. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_CLANG_C_CXSTRING_H -#define LLVM_CLANG_C_CXSTRING_H - -#include "clang-c/Platform.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup CINDEX_STRING String manipulation routines - * \ingroup CINDEX - * - * @{ - */ - -/** - * \brief A character string. - * - * The \c CXString type is used to return strings from the interface when - * the ownership of that string might differ from one call to the next. - * Use \c clang_getCString() to retrieve the string data and, once finished - * with the string data, call \c clang_disposeString() to free the string. - */ -typedef struct { - const void *data; - unsigned private_flags; -} CXString; - -/** - * \brief Retrieve the character data associated with the given string. - */ -CINDEX_LINKAGE const char *clang_getCString(CXString string); - -/** - * \brief Free the given string. - */ -CINDEX_LINKAGE void clang_disposeString(CXString string); - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Documentation.h b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Documentation.h deleted file mode 100644 index 89373b1..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Documentation.h +++ /dev/null @@ -1,554 +0,0 @@ -/*==-- clang-c/Documentation.h - Utilities for comment processing -*- C -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This header provides a supplementary interface for inspecting *| -|* documentation comments. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_CLANG_C_DOCUMENTATION_H -#define LLVM_CLANG_C_DOCUMENTATION_H - -#include "clang-c/Index.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \defgroup CINDEX_COMMENT Comment introspection - * - * The routines in this group provide access to information in documentation - * comments. These facilities are distinct from the core and may be subject to - * their own schedule of stability and deprecation. - * - * @{ - */ - -/** - * \brief A parsed comment. - */ -typedef struct { - const void *ASTNode; - CXTranslationUnit TranslationUnit; -} CXComment; - -/** - * \brief Given a cursor that represents a documentable entity (e.g., - * declaration), return the associated parsed comment as a - * \c CXComment_FullComment AST node. - */ -CINDEX_LINKAGE CXComment clang_Cursor_getParsedComment(CXCursor C); - -/** - * \brief Describes the type of the comment AST node (\c CXComment). A comment - * node can be considered block content (e. g., paragraph), inline content - * (plain text) or neither (the root AST node). - */ -enum CXCommentKind { - /** - * \brief Null comment. No AST node is constructed at the requested location - * because there is no text or a syntax error. - */ - CXComment_Null = 0, - - /** - * \brief Plain text. Inline content. - */ - CXComment_Text = 1, - - /** - * \brief A command with word-like arguments that is considered inline content. - * - * For example: \\c command. - */ - CXComment_InlineCommand = 2, - - /** - * \brief HTML start tag with attributes (name-value pairs). Considered - * inline content. - * - * For example: - * \verbatim - *

- * \endverbatim - */ - CXComment_HTMLStartTag = 3, - - /** - * \brief HTML end tag. Considered inline content. - * - * For example: - * \verbatim - * - * \endverbatim - */ - CXComment_HTMLEndTag = 4, - - /** - * \brief A paragraph, contains inline comment. The paragraph itself is - * block content. - */ - CXComment_Paragraph = 5, - - /** - * \brief A command that has zero or more word-like arguments (number of - * word-like arguments depends on command name) and a paragraph as an - * argument. Block command is block content. - * - * Paragraph argument is also a child of the block command. - * - * For example: \\brief has 0 word-like arguments and a paragraph argument. - * - * AST nodes of special kinds that parser knows about (e. g., \\param - * command) have their own node kinds. - */ - CXComment_BlockCommand = 6, - - /** - * \brief A \\param or \\arg command that describes the function parameter - * (name, passing direction, description). - * - * For example: \\param [in] ParamName description. - */ - CXComment_ParamCommand = 7, - - /** - * \brief A \\tparam command that describes a template parameter (name and - * description). - * - * For example: \\tparam T description. - */ - CXComment_TParamCommand = 8, - - /** - * \brief A verbatim block command (e. g., preformatted code). Verbatim - * block has an opening and a closing command and contains multiple lines of - * text (\c CXComment_VerbatimBlockLine child nodes). - * - * For example: - * \\verbatim - * aaa - * \\endverbatim - */ - CXComment_VerbatimBlockCommand = 9, - - /** - * \brief A line of text that is contained within a - * CXComment_VerbatimBlockCommand node. - */ - CXComment_VerbatimBlockLine = 10, - - /** - * \brief A verbatim line command. Verbatim line has an opening command, - * a single line of text (up to the newline after the opening command) and - * has no closing command. - */ - CXComment_VerbatimLine = 11, - - /** - * \brief A full comment attached to a declaration, contains block content. - */ - CXComment_FullComment = 12 -}; - -/** - * \brief The most appropriate rendering mode for an inline command, chosen on - * command semantics in Doxygen. - */ -enum CXCommentInlineCommandRenderKind { - /** - * \brief Command argument should be rendered in a normal font. - */ - CXCommentInlineCommandRenderKind_Normal, - - /** - * \brief Command argument should be rendered in a bold font. - */ - CXCommentInlineCommandRenderKind_Bold, - - /** - * \brief Command argument should be rendered in a monospaced font. - */ - CXCommentInlineCommandRenderKind_Monospaced, - - /** - * \brief Command argument should be rendered emphasized (typically italic - * font). - */ - CXCommentInlineCommandRenderKind_Emphasized -}; - -/** - * \brief Describes parameter passing direction for \\param or \\arg command. - */ -enum CXCommentParamPassDirection { - /** - * \brief The parameter is an input parameter. - */ - CXCommentParamPassDirection_In, - - /** - * \brief The parameter is an output parameter. - */ - CXCommentParamPassDirection_Out, - - /** - * \brief The parameter is an input and output parameter. - */ - CXCommentParamPassDirection_InOut -}; - -/** - * \param Comment AST node of any kind. - * - * \returns the type of the AST node. - */ -CINDEX_LINKAGE enum CXCommentKind clang_Comment_getKind(CXComment Comment); - -/** - * \param Comment AST node of any kind. - * - * \returns number of children of the AST node. - */ -CINDEX_LINKAGE unsigned clang_Comment_getNumChildren(CXComment Comment); - -/** - * \param Comment AST node of any kind. - * - * \param ChildIdx child index (zero-based). - * - * \returns the specified child of the AST node. - */ -CINDEX_LINKAGE -CXComment clang_Comment_getChild(CXComment Comment, unsigned ChildIdx); - -/** - * \brief A \c CXComment_Paragraph node is considered whitespace if it contains - * only \c CXComment_Text nodes that are empty or whitespace. - * - * Other AST nodes (except \c CXComment_Paragraph and \c CXComment_Text) are - * never considered whitespace. - * - * \returns non-zero if \c Comment is whitespace. - */ -CINDEX_LINKAGE unsigned clang_Comment_isWhitespace(CXComment Comment); - -/** - * \returns non-zero if \c Comment is inline content and has a newline - * immediately following it in the comment text. Newlines between paragraphs - * do not count. - */ -CINDEX_LINKAGE -unsigned clang_InlineContentComment_hasTrailingNewline(CXComment Comment); - -/** - * \param Comment a \c CXComment_Text AST node. - * - * \returns text contained in the AST node. - */ -CINDEX_LINKAGE CXString clang_TextComment_getText(CXComment Comment); - -/** - * \param Comment a \c CXComment_InlineCommand AST node. - * - * \returns name of the inline command. - */ -CINDEX_LINKAGE -CXString clang_InlineCommandComment_getCommandName(CXComment Comment); - -/** - * \param Comment a \c CXComment_InlineCommand AST node. - * - * \returns the most appropriate rendering mode, chosen on command - * semantics in Doxygen. - */ -CINDEX_LINKAGE enum CXCommentInlineCommandRenderKind -clang_InlineCommandComment_getRenderKind(CXComment Comment); - -/** - * \param Comment a \c CXComment_InlineCommand AST node. - * - * \returns number of command arguments. - */ -CINDEX_LINKAGE -unsigned clang_InlineCommandComment_getNumArgs(CXComment Comment); - -/** - * \param Comment a \c CXComment_InlineCommand AST node. - * - * \param ArgIdx argument index (zero-based). - * - * \returns text of the specified argument. - */ -CINDEX_LINKAGE -CXString clang_InlineCommandComment_getArgText(CXComment Comment, - unsigned ArgIdx); - -/** - * \param Comment a \c CXComment_HTMLStartTag or \c CXComment_HTMLEndTag AST - * node. - * - * \returns HTML tag name. - */ -CINDEX_LINKAGE CXString clang_HTMLTagComment_getTagName(CXComment Comment); - -/** - * \param Comment a \c CXComment_HTMLStartTag AST node. - * - * \returns non-zero if tag is self-closing (for example, <br />). - */ -CINDEX_LINKAGE -unsigned clang_HTMLStartTagComment_isSelfClosing(CXComment Comment); - -/** - * \param Comment a \c CXComment_HTMLStartTag AST node. - * - * \returns number of attributes (name-value pairs) attached to the start tag. - */ -CINDEX_LINKAGE unsigned clang_HTMLStartTag_getNumAttrs(CXComment Comment); - -/** - * \param Comment a \c CXComment_HTMLStartTag AST node. - * - * \param AttrIdx attribute index (zero-based). - * - * \returns name of the specified attribute. - */ -CINDEX_LINKAGE -CXString clang_HTMLStartTag_getAttrName(CXComment Comment, unsigned AttrIdx); - -/** - * \param Comment a \c CXComment_HTMLStartTag AST node. - * - * \param AttrIdx attribute index (zero-based). - * - * \returns value of the specified attribute. - */ -CINDEX_LINKAGE -CXString clang_HTMLStartTag_getAttrValue(CXComment Comment, unsigned AttrIdx); - -/** - * \param Comment a \c CXComment_BlockCommand AST node. - * - * \returns name of the block command. - */ -CINDEX_LINKAGE -CXString clang_BlockCommandComment_getCommandName(CXComment Comment); - -/** - * \param Comment a \c CXComment_BlockCommand AST node. - * - * \returns number of word-like arguments. - */ -CINDEX_LINKAGE -unsigned clang_BlockCommandComment_getNumArgs(CXComment Comment); - -/** - * \param Comment a \c CXComment_BlockCommand AST node. - * - * \param ArgIdx argument index (zero-based). - * - * \returns text of the specified word-like argument. - */ -CINDEX_LINKAGE -CXString clang_BlockCommandComment_getArgText(CXComment Comment, - unsigned ArgIdx); - -/** - * \param Comment a \c CXComment_BlockCommand or - * \c CXComment_VerbatimBlockCommand AST node. - * - * \returns paragraph argument of the block command. - */ -CINDEX_LINKAGE -CXComment clang_BlockCommandComment_getParagraph(CXComment Comment); - -/** - * \param Comment a \c CXComment_ParamCommand AST node. - * - * \returns parameter name. - */ -CINDEX_LINKAGE -CXString clang_ParamCommandComment_getParamName(CXComment Comment); - -/** - * \param Comment a \c CXComment_ParamCommand AST node. - * - * \returns non-zero if the parameter that this AST node represents was found - * in the function prototype and \c clang_ParamCommandComment_getParamIndex - * function will return a meaningful value. - */ -CINDEX_LINKAGE -unsigned clang_ParamCommandComment_isParamIndexValid(CXComment Comment); - -/** - * \param Comment a \c CXComment_ParamCommand AST node. - * - * \returns zero-based parameter index in function prototype. - */ -CINDEX_LINKAGE -unsigned clang_ParamCommandComment_getParamIndex(CXComment Comment); - -/** - * \param Comment a \c CXComment_ParamCommand AST node. - * - * \returns non-zero if parameter passing direction was specified explicitly in - * the comment. - */ -CINDEX_LINKAGE -unsigned clang_ParamCommandComment_isDirectionExplicit(CXComment Comment); - -/** - * \param Comment a \c CXComment_ParamCommand AST node. - * - * \returns parameter passing direction. - */ -CINDEX_LINKAGE -enum CXCommentParamPassDirection clang_ParamCommandComment_getDirection( - CXComment Comment); - -/** - * \param Comment a \c CXComment_TParamCommand AST node. - * - * \returns template parameter name. - */ -CINDEX_LINKAGE -CXString clang_TParamCommandComment_getParamName(CXComment Comment); - -/** - * \param Comment a \c CXComment_TParamCommand AST node. - * - * \returns non-zero if the parameter that this AST node represents was found - * in the template parameter list and - * \c clang_TParamCommandComment_getDepth and - * \c clang_TParamCommandComment_getIndex functions will return a meaningful - * value. - */ -CINDEX_LINKAGE -unsigned clang_TParamCommandComment_isParamPositionValid(CXComment Comment); - -/** - * \param Comment a \c CXComment_TParamCommand AST node. - * - * \returns zero-based nesting depth of this parameter in the template parameter list. - * - * For example, - * \verbatim - * template class TT> - * void test(TT aaa); - * \endverbatim - * for C and TT nesting depth is 0, - * for T nesting depth is 1. - */ -CINDEX_LINKAGE -unsigned clang_TParamCommandComment_getDepth(CXComment Comment); - -/** - * \param Comment a \c CXComment_TParamCommand AST node. - * - * \returns zero-based parameter index in the template parameter list at a - * given nesting depth. - * - * For example, - * \verbatim - * template class TT> - * void test(TT aaa); - * \endverbatim - * for C and TT nesting depth is 0, so we can ask for index at depth 0: - * at depth 0 C's index is 0, TT's index is 1. - * - * For T nesting depth is 1, so we can ask for index at depth 0 and 1: - * at depth 0 T's index is 1 (same as TT's), - * at depth 1 T's index is 0. - */ -CINDEX_LINKAGE -unsigned clang_TParamCommandComment_getIndex(CXComment Comment, unsigned Depth); - -/** - * \param Comment a \c CXComment_VerbatimBlockLine AST node. - * - * \returns text contained in the AST node. - */ -CINDEX_LINKAGE -CXString clang_VerbatimBlockLineComment_getText(CXComment Comment); - -/** - * \param Comment a \c CXComment_VerbatimLine AST node. - * - * \returns text contained in the AST node. - */ -CINDEX_LINKAGE CXString clang_VerbatimLineComment_getText(CXComment Comment); - -/** - * \brief Convert an HTML tag AST node to string. - * - * \param Comment a \c CXComment_HTMLStartTag or \c CXComment_HTMLEndTag AST - * node. - * - * \returns string containing an HTML tag. - */ -CINDEX_LINKAGE CXString clang_HTMLTagComment_getAsString(CXComment Comment); - -/** - * \brief Convert a given full parsed comment to an HTML fragment. - * - * Specific details of HTML layout are subject to change. Don't try to parse - * this HTML back into an AST, use other APIs instead. - * - * Currently the following CSS classes are used: - * \li "para-brief" for \\brief paragraph and equivalent commands; - * \li "para-returns" for \\returns paragraph and equivalent commands; - * \li "word-returns" for the "Returns" word in \\returns paragraph. - * - * Function argument documentation is rendered as a \ list with arguments - * sorted in function prototype order. CSS classes used: - * \li "param-name-index-NUMBER" for parameter name (\); - * \li "param-descr-index-NUMBER" for parameter description (\); - * \li "param-name-index-invalid" and "param-descr-index-invalid" are used if - * parameter index is invalid. - * - * Template parameter documentation is rendered as a \ list with - * parameters sorted in template parameter list order. CSS classes used: - * \li "tparam-name-index-NUMBER" for parameter name (\); - * \li "tparam-descr-index-NUMBER" for parameter description (\); - * \li "tparam-name-index-other" and "tparam-descr-index-other" are used for - * names inside template template parameters; - * \li "tparam-name-index-invalid" and "tparam-descr-index-invalid" are used if - * parameter position is invalid. - * - * \param Comment a \c CXComment_FullComment AST node. - * - * \returns string containing an HTML fragment. - */ -CINDEX_LINKAGE CXString clang_FullComment_getAsHTML(CXComment Comment); - -/** - * \brief Convert a given full parsed comment to an XML document. - * - * A Relax NG schema for the XML can be found in comment-xml-schema.rng file - * inside clang source tree. - * - * \param Comment a \c CXComment_FullComment AST node. - * - * \returns string containing an XML document. - */ -CINDEX_LINKAGE CXString clang_FullComment_getAsXML(CXComment Comment); - -/** - * @} - */ - - -#ifdef __cplusplus -} -#endif - -#endif /* CLANG_C_DOCUMENTATION_H */ - diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Index.h b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Index.h deleted file mode 100644 index fad9cfa..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Index.h +++ /dev/null @@ -1,5755 +0,0 @@ -/*===-- clang-c/Index.h - Indexing Public C Interface -------------*- C -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This header provides a public inferface to a Clang library for extracting *| -|* high-level symbol information from source files without exposing the full *| -|* Clang C++ API. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_CLANG_C_INDEX_H -#define LLVM_CLANG_C_INDEX_H - -#include - -#include "clang-c/Platform.h" -#include "clang-c/CXErrorCode.h" -#include "clang-c/CXString.h" -#include "clang-c/BuildSystem.h" - -/** - * \brief The version constants for the libclang API. - * CINDEX_VERSION_MINOR should increase when there are API additions. - * CINDEX_VERSION_MAJOR is intended for "major" source/ABI breaking changes. - * - * The policy about the libclang API was always to keep it source and ABI - * compatible, thus CINDEX_VERSION_MAJOR is expected to remain stable. - */ -#define CINDEX_VERSION_MAJOR 0 -#define CINDEX_VERSION_MINOR 30 - -#define CINDEX_VERSION_ENCODE(major, minor) ( \ - ((major) * 10000) \ - + ((minor) * 1)) - -#define CINDEX_VERSION CINDEX_VERSION_ENCODE( \ - CINDEX_VERSION_MAJOR, \ - CINDEX_VERSION_MINOR ) - -#define CINDEX_VERSION_STRINGIZE_(major, minor) \ - #major"."#minor -#define CINDEX_VERSION_STRINGIZE(major, minor) \ - CINDEX_VERSION_STRINGIZE_(major, minor) - -#define CINDEX_VERSION_STRING CINDEX_VERSION_STRINGIZE( \ - CINDEX_VERSION_MAJOR, \ - CINDEX_VERSION_MINOR) - -#ifdef __cplusplus -extern "C" { -#endif - -/** \defgroup CINDEX libclang: C Interface to Clang - * - * The C Interface to Clang provides a relatively small API that exposes - * facilities for parsing source code into an abstract syntax tree (AST), - * loading already-parsed ASTs, traversing the AST, associating - * physical source locations with elements within the AST, and other - * facilities that support Clang-based development tools. - * - * This C interface to Clang will never provide all of the information - * representation stored in Clang's C++ AST, nor should it: the intent is to - * maintain an API that is relatively stable from one release to the next, - * providing only the basic functionality needed to support development tools. - * - * To avoid namespace pollution, data types are prefixed with "CX" and - * functions are prefixed with "clang_". - * - * @{ - */ - -/** - * \brief An "index" that consists of a set of translation units that would - * typically be linked together into an executable or library. - */ -typedef void *CXIndex; - -/** - * \brief A single translation unit, which resides in an index. - */ -typedef struct CXTranslationUnitImpl *CXTranslationUnit; - -/** - * \brief Opaque pointer representing client data that will be passed through - * to various callbacks and visitors. - */ -typedef void *CXClientData; - -/** - * \brief Provides the contents of a file that has not yet been saved to disk. - * - * Each CXUnsavedFile instance provides the name of a file on the - * system along with the current contents of that file that have not - * yet been saved to disk. - */ -struct CXUnsavedFile { - /** - * \brief The file whose contents have not yet been saved. - * - * This file must already exist in the file system. - */ - const char *Filename; - - /** - * \brief A buffer containing the unsaved contents of this file. - */ - const char *Contents; - - /** - * \brief The length of the unsaved contents of this buffer. - */ - unsigned long Length; -}; - -/** - * \brief Describes the availability of a particular entity, which indicates - * whether the use of this entity will result in a warning or error due to - * it being deprecated or unavailable. - */ -enum CXAvailabilityKind { - /** - * \brief The entity is available. - */ - CXAvailability_Available, - /** - * \brief The entity is available, but has been deprecated (and its use is - * not recommended). - */ - CXAvailability_Deprecated, - /** - * \brief The entity is not available; any use of it will be an error. - */ - CXAvailability_NotAvailable, - /** - * \brief The entity is available, but not accessible; any use of it will be - * an error. - */ - CXAvailability_NotAccessible -}; - -/** - * \brief Describes a version number of the form major.minor.subminor. - */ -typedef struct CXVersion { - /** - * \brief The major version number, e.g., the '10' in '10.7.3'. A negative - * value indicates that there is no version number at all. - */ - int Major; - /** - * \brief The minor version number, e.g., the '7' in '10.7.3'. This value - * will be negative if no minor version number was provided, e.g., for - * version '10'. - */ - int Minor; - /** - * \brief The subminor version number, e.g., the '3' in '10.7.3'. This value - * will be negative if no minor or subminor version number was provided, - * e.g., in version '10' or '10.7'. - */ - int Subminor; -} CXVersion; - -/** - * \brief Provides a shared context for creating translation units. - * - * It provides two options: - * - * - excludeDeclarationsFromPCH: When non-zero, allows enumeration of "local" - * declarations (when loading any new translation units). A "local" declaration - * is one that belongs in the translation unit itself and not in a precompiled - * header that was used by the translation unit. If zero, all declarations - * will be enumerated. - * - * Here is an example: - * - * \code - * // excludeDeclsFromPCH = 1, displayDiagnostics=1 - * Idx = clang_createIndex(1, 1); - * - * // IndexTest.pch was produced with the following command: - * // "clang -x c IndexTest.h -emit-ast -o IndexTest.pch" - * TU = clang_createTranslationUnit(Idx, "IndexTest.pch"); - * - * // This will load all the symbols from 'IndexTest.pch' - * clang_visitChildren(clang_getTranslationUnitCursor(TU), - * TranslationUnitVisitor, 0); - * clang_disposeTranslationUnit(TU); - * - * // This will load all the symbols from 'IndexTest.c', excluding symbols - * // from 'IndexTest.pch'. - * char *args[] = { "-Xclang", "-include-pch=IndexTest.pch" }; - * TU = clang_createTranslationUnitFromSourceFile(Idx, "IndexTest.c", 2, args, - * 0, 0); - * clang_visitChildren(clang_getTranslationUnitCursor(TU), - * TranslationUnitVisitor, 0); - * clang_disposeTranslationUnit(TU); - * \endcode - * - * This process of creating the 'pch', loading it separately, and using it (via - * -include-pch) allows 'excludeDeclsFromPCH' to remove redundant callbacks - * (which gives the indexer the same performance benefit as the compiler). - */ -CINDEX_LINKAGE CXIndex clang_createIndex(int excludeDeclarationsFromPCH, - int displayDiagnostics); - -/** - * \brief Destroy the given index. - * - * The index must not be destroyed until all of the translation units created - * within that index have been destroyed. - */ -CINDEX_LINKAGE void clang_disposeIndex(CXIndex index); - -typedef enum { - /** - * \brief Used to indicate that no special CXIndex options are needed. - */ - CXGlobalOpt_None = 0x0, - - /** - * \brief Used to indicate that threads that libclang creates for indexing - * purposes should use background priority. - * - * Affects #clang_indexSourceFile, #clang_indexTranslationUnit, - * #clang_parseTranslationUnit, #clang_saveTranslationUnit. - */ - CXGlobalOpt_ThreadBackgroundPriorityForIndexing = 0x1, - - /** - * \brief Used to indicate that threads that libclang creates for editing - * purposes should use background priority. - * - * Affects #clang_reparseTranslationUnit, #clang_codeCompleteAt, - * #clang_annotateTokens - */ - CXGlobalOpt_ThreadBackgroundPriorityForEditing = 0x2, - - /** - * \brief Used to indicate that all threads that libclang creates should use - * background priority. - */ - CXGlobalOpt_ThreadBackgroundPriorityForAll = - CXGlobalOpt_ThreadBackgroundPriorityForIndexing | - CXGlobalOpt_ThreadBackgroundPriorityForEditing - -} CXGlobalOptFlags; - -/** - * \brief Sets general options associated with a CXIndex. - * - * For example: - * \code - * CXIndex idx = ...; - * clang_CXIndex_setGlobalOptions(idx, - * clang_CXIndex_getGlobalOptions(idx) | - * CXGlobalOpt_ThreadBackgroundPriorityForIndexing); - * \endcode - * - * \param options A bitmask of options, a bitwise OR of CXGlobalOpt_XXX flags. - */ -CINDEX_LINKAGE void clang_CXIndex_setGlobalOptions(CXIndex, unsigned options); - -/** - * \brief Gets the general options associated with a CXIndex. - * - * \returns A bitmask of options, a bitwise OR of CXGlobalOpt_XXX flags that - * are associated with the given CXIndex object. - */ -CINDEX_LINKAGE unsigned clang_CXIndex_getGlobalOptions(CXIndex); - -/** - * \defgroup CINDEX_FILES File manipulation routines - * - * @{ - */ - -/** - * \brief A particular source file that is part of a translation unit. - */ -typedef void *CXFile; - - -/** - * \brief Retrieve the complete file and path name of the given file. - */ -CINDEX_LINKAGE CXString clang_getFileName(CXFile SFile); - -/** - * \brief Retrieve the last modification time of the given file. - */ -CINDEX_LINKAGE time_t clang_getFileTime(CXFile SFile); - -/** - * \brief Uniquely identifies a CXFile, that refers to the same underlying file, - * across an indexing session. - */ -typedef struct { - unsigned long long data[3]; -} CXFileUniqueID; - -/** - * \brief Retrieve the unique ID for the given \c file. - * - * \param file the file to get the ID for. - * \param outID stores the returned CXFileUniqueID. - * \returns If there was a failure getting the unique ID, returns non-zero, - * otherwise returns 0. -*/ -CINDEX_LINKAGE int clang_getFileUniqueID(CXFile file, CXFileUniqueID *outID); - -/** - * \brief Determine whether the given header is guarded against - * multiple inclusions, either with the conventional - * \#ifndef/\#define/\#endif macro guards or with \#pragma once. - */ -CINDEX_LINKAGE unsigned -clang_isFileMultipleIncludeGuarded(CXTranslationUnit tu, CXFile file); - -/** - * \brief Retrieve a file handle within the given translation unit. - * - * \param tu the translation unit - * - * \param file_name the name of the file. - * - * \returns the file handle for the named file in the translation unit \p tu, - * or a NULL file handle if the file was not a part of this translation unit. - */ -CINDEX_LINKAGE CXFile clang_getFile(CXTranslationUnit tu, - const char *file_name); - -/** - * \brief Returns non-zero if the \c file1 and \c file2 point to the same file, - * or they are both NULL. - */ -CINDEX_LINKAGE int clang_File_isEqual(CXFile file1, CXFile file2); - -/** - * @} - */ - -/** - * \defgroup CINDEX_LOCATIONS Physical source locations - * - * Clang represents physical source locations in its abstract syntax tree in - * great detail, with file, line, and column information for the majority of - * the tokens parsed in the source code. These data types and functions are - * used to represent source location information, either for a particular - * point in the program or for a range of points in the program, and extract - * specific location information from those data types. - * - * @{ - */ - -/** - * \brief Identifies a specific source location within a translation - * unit. - * - * Use clang_getExpansionLocation() or clang_getSpellingLocation() - * to map a source location to a particular file, line, and column. - */ -typedef struct { - const void *ptr_data[2]; - unsigned int_data; -} CXSourceLocation; - -/** - * \brief Identifies a half-open character range in the source code. - * - * Use clang_getRangeStart() and clang_getRangeEnd() to retrieve the - * starting and end locations from a source range, respectively. - */ -typedef struct { - const void *ptr_data[2]; - unsigned begin_int_data; - unsigned end_int_data; -} CXSourceRange; - -/** - * \brief Retrieve a NULL (invalid) source location. - */ -CINDEX_LINKAGE CXSourceLocation clang_getNullLocation(void); - -/** - * \brief Determine whether two source locations, which must refer into - * the same translation unit, refer to exactly the same point in the source - * code. - * - * \returns non-zero if the source locations refer to the same location, zero - * if they refer to different locations. - */ -CINDEX_LINKAGE unsigned clang_equalLocations(CXSourceLocation loc1, - CXSourceLocation loc2); - -/** - * \brief Retrieves the source location associated with a given file/line/column - * in a particular translation unit. - */ -CINDEX_LINKAGE CXSourceLocation clang_getLocation(CXTranslationUnit tu, - CXFile file, - unsigned line, - unsigned column); -/** - * \brief Retrieves the source location associated with a given character offset - * in a particular translation unit. - */ -CINDEX_LINKAGE CXSourceLocation clang_getLocationForOffset(CXTranslationUnit tu, - CXFile file, - unsigned offset); - -/** - * \brief Returns non-zero if the given source location is in a system header. - */ -CINDEX_LINKAGE int clang_Location_isInSystemHeader(CXSourceLocation location); - -/** - * \brief Returns non-zero if the given source location is in the main file of - * the corresponding translation unit. - */ -CINDEX_LINKAGE int clang_Location_isFromMainFile(CXSourceLocation location); - -/** - * \brief Retrieve a NULL (invalid) source range. - */ -CINDEX_LINKAGE CXSourceRange clang_getNullRange(void); - -/** - * \brief Retrieve a source range given the beginning and ending source - * locations. - */ -CINDEX_LINKAGE CXSourceRange clang_getRange(CXSourceLocation begin, - CXSourceLocation end); - -/** - * \brief Determine whether two ranges are equivalent. - * - * \returns non-zero if the ranges are the same, zero if they differ. - */ -CINDEX_LINKAGE unsigned clang_equalRanges(CXSourceRange range1, - CXSourceRange range2); - -/** - * \brief Returns non-zero if \p range is null. - */ -CINDEX_LINKAGE int clang_Range_isNull(CXSourceRange range); - -/** - * \brief Retrieve the file, line, column, and offset represented by - * the given source location. - * - * If the location refers into a macro expansion, retrieves the - * location of the macro expansion. - * - * \param location the location within a source file that will be decomposed - * into its parts. - * - * \param file [out] if non-NULL, will be set to the file to which the given - * source location points. - * - * \param line [out] if non-NULL, will be set to the line to which the given - * source location points. - * - * \param column [out] if non-NULL, will be set to the column to which the given - * source location points. - * - * \param offset [out] if non-NULL, will be set to the offset into the - * buffer to which the given source location points. - */ -CINDEX_LINKAGE void clang_getExpansionLocation(CXSourceLocation location, - CXFile *file, - unsigned *line, - unsigned *column, - unsigned *offset); - -/** - * \brief Retrieve the file, line, column, and offset represented by - * the given source location, as specified in a # line directive. - * - * Example: given the following source code in a file somefile.c - * - * \code - * #123 "dummy.c" 1 - * - * static int func(void) - * { - * return 0; - * } - * \endcode - * - * the location information returned by this function would be - * - * File: dummy.c Line: 124 Column: 12 - * - * whereas clang_getExpansionLocation would have returned - * - * File: somefile.c Line: 3 Column: 12 - * - * \param location the location within a source file that will be decomposed - * into its parts. - * - * \param filename [out] if non-NULL, will be set to the filename of the - * source location. Note that filenames returned will be for "virtual" files, - * which don't necessarily exist on the machine running clang - e.g. when - * parsing preprocessed output obtained from a different environment. If - * a non-NULL value is passed in, remember to dispose of the returned value - * using \c clang_disposeString() once you've finished with it. For an invalid - * source location, an empty string is returned. - * - * \param line [out] if non-NULL, will be set to the line number of the - * source location. For an invalid source location, zero is returned. - * - * \param column [out] if non-NULL, will be set to the column number of the - * source location. For an invalid source location, zero is returned. - */ -CINDEX_LINKAGE void clang_getPresumedLocation(CXSourceLocation location, - CXString *filename, - unsigned *line, - unsigned *column); - -/** - * \brief Legacy API to retrieve the file, line, column, and offset represented - * by the given source location. - * - * This interface has been replaced by the newer interface - * #clang_getExpansionLocation(). See that interface's documentation for - * details. - */ -CINDEX_LINKAGE void clang_getInstantiationLocation(CXSourceLocation location, - CXFile *file, - unsigned *line, - unsigned *column, - unsigned *offset); - -/** - * \brief Retrieve the file, line, column, and offset represented by - * the given source location. - * - * If the location refers into a macro instantiation, return where the - * location was originally spelled in the source file. - * - * \param location the location within a source file that will be decomposed - * into its parts. - * - * \param file [out] if non-NULL, will be set to the file to which the given - * source location points. - * - * \param line [out] if non-NULL, will be set to the line to which the given - * source location points. - * - * \param column [out] if non-NULL, will be set to the column to which the given - * source location points. - * - * \param offset [out] if non-NULL, will be set to the offset into the - * buffer to which the given source location points. - */ -CINDEX_LINKAGE void clang_getSpellingLocation(CXSourceLocation location, - CXFile *file, - unsigned *line, - unsigned *column, - unsigned *offset); - -/** - * \brief Retrieve the file, line, column, and offset represented by - * the given source location. - * - * If the location refers into a macro expansion, return where the macro was - * expanded or where the macro argument was written, if the location points at - * a macro argument. - * - * \param location the location within a source file that will be decomposed - * into its parts. - * - * \param file [out] if non-NULL, will be set to the file to which the given - * source location points. - * - * \param line [out] if non-NULL, will be set to the line to which the given - * source location points. - * - * \param column [out] if non-NULL, will be set to the column to which the given - * source location points. - * - * \param offset [out] if non-NULL, will be set to the offset into the - * buffer to which the given source location points. - */ -CINDEX_LINKAGE void clang_getFileLocation(CXSourceLocation location, - CXFile *file, - unsigned *line, - unsigned *column, - unsigned *offset); - -/** - * \brief Retrieve a source location representing the first character within a - * source range. - */ -CINDEX_LINKAGE CXSourceLocation clang_getRangeStart(CXSourceRange range); - -/** - * \brief Retrieve a source location representing the last character within a - * source range. - */ -CINDEX_LINKAGE CXSourceLocation clang_getRangeEnd(CXSourceRange range); - -/** - * \brief Identifies an array of ranges. - */ -typedef struct { - /** \brief The number of ranges in the \c ranges array. */ - unsigned count; - /** - * \brief An array of \c CXSourceRanges. - */ - CXSourceRange *ranges; -} CXSourceRangeList; - -/** - * \brief Retrieve all ranges that were skipped by the preprocessor. - * - * The preprocessor will skip lines when they are surrounded by an - * if/ifdef/ifndef directive whose condition does not evaluate to true. - */ -CINDEX_LINKAGE CXSourceRangeList *clang_getSkippedRanges(CXTranslationUnit tu, - CXFile file); - -/** - * \brief Destroy the given \c CXSourceRangeList. - */ -CINDEX_LINKAGE void clang_disposeSourceRangeList(CXSourceRangeList *ranges); - -/** - * @} - */ - -/** - * \defgroup CINDEX_DIAG Diagnostic reporting - * - * @{ - */ - -/** - * \brief Describes the severity of a particular diagnostic. - */ -enum CXDiagnosticSeverity { - /** - * \brief A diagnostic that has been suppressed, e.g., by a command-line - * option. - */ - CXDiagnostic_Ignored = 0, - - /** - * \brief This diagnostic is a note that should be attached to the - * previous (non-note) diagnostic. - */ - CXDiagnostic_Note = 1, - - /** - * \brief This diagnostic indicates suspicious code that may not be - * wrong. - */ - CXDiagnostic_Warning = 2, - - /** - * \brief This diagnostic indicates that the code is ill-formed. - */ - CXDiagnostic_Error = 3, - - /** - * \brief This diagnostic indicates that the code is ill-formed such - * that future parser recovery is unlikely to produce useful - * results. - */ - CXDiagnostic_Fatal = 4 -}; - -/** - * \brief A single diagnostic, containing the diagnostic's severity, - * location, text, source ranges, and fix-it hints. - */ -typedef void *CXDiagnostic; - -/** - * \brief A group of CXDiagnostics. - */ -typedef void *CXDiagnosticSet; - -/** - * \brief Determine the number of diagnostics in a CXDiagnosticSet. - */ -CINDEX_LINKAGE unsigned clang_getNumDiagnosticsInSet(CXDiagnosticSet Diags); - -/** - * \brief Retrieve a diagnostic associated with the given CXDiagnosticSet. - * - * \param Diags the CXDiagnosticSet to query. - * \param Index the zero-based diagnostic number to retrieve. - * - * \returns the requested diagnostic. This diagnostic must be freed - * via a call to \c clang_disposeDiagnostic(). - */ -CINDEX_LINKAGE CXDiagnostic clang_getDiagnosticInSet(CXDiagnosticSet Diags, - unsigned Index); - - -/** - * \brief Describes the kind of error that occurred (if any) in a call to - * \c clang_loadDiagnostics. - */ -enum CXLoadDiag_Error { - /** - * \brief Indicates that no error occurred. - */ - CXLoadDiag_None = 0, - - /** - * \brief Indicates that an unknown error occurred while attempting to - * deserialize diagnostics. - */ - CXLoadDiag_Unknown = 1, - - /** - * \brief Indicates that the file containing the serialized diagnostics - * could not be opened. - */ - CXLoadDiag_CannotLoad = 2, - - /** - * \brief Indicates that the serialized diagnostics file is invalid or - * corrupt. - */ - CXLoadDiag_InvalidFile = 3 -}; - -/** - * \brief Deserialize a set of diagnostics from a Clang diagnostics bitcode - * file. - * - * \param file The name of the file to deserialize. - * \param error A pointer to a enum value recording if there was a problem - * deserializing the diagnostics. - * \param errorString A pointer to a CXString for recording the error string - * if the file was not successfully loaded. - * - * \returns A loaded CXDiagnosticSet if successful, and NULL otherwise. These - * diagnostics should be released using clang_disposeDiagnosticSet(). - */ -CINDEX_LINKAGE CXDiagnosticSet clang_loadDiagnostics(const char *file, - enum CXLoadDiag_Error *error, - CXString *errorString); - -/** - * \brief Release a CXDiagnosticSet and all of its contained diagnostics. - */ -CINDEX_LINKAGE void clang_disposeDiagnosticSet(CXDiagnosticSet Diags); - -/** - * \brief Retrieve the child diagnostics of a CXDiagnostic. - * - * This CXDiagnosticSet does not need to be released by - * clang_disposeDiagnosticSet. - */ -CINDEX_LINKAGE CXDiagnosticSet clang_getChildDiagnostics(CXDiagnostic D); - -/** - * \brief Determine the number of diagnostics produced for the given - * translation unit. - */ -CINDEX_LINKAGE unsigned clang_getNumDiagnostics(CXTranslationUnit Unit); - -/** - * \brief Retrieve a diagnostic associated with the given translation unit. - * - * \param Unit the translation unit to query. - * \param Index the zero-based diagnostic number to retrieve. - * - * \returns the requested diagnostic. This diagnostic must be freed - * via a call to \c clang_disposeDiagnostic(). - */ -CINDEX_LINKAGE CXDiagnostic clang_getDiagnostic(CXTranslationUnit Unit, - unsigned Index); - -/** - * \brief Retrieve the complete set of diagnostics associated with a - * translation unit. - * - * \param Unit the translation unit to query. - */ -CINDEX_LINKAGE CXDiagnosticSet - clang_getDiagnosticSetFromTU(CXTranslationUnit Unit); - -/** - * \brief Destroy a diagnostic. - */ -CINDEX_LINKAGE void clang_disposeDiagnostic(CXDiagnostic Diagnostic); - -/** - * \brief Options to control the display of diagnostics. - * - * The values in this enum are meant to be combined to customize the - * behavior of \c clang_formatDiagnostic(). - */ -enum CXDiagnosticDisplayOptions { - /** - * \brief Display the source-location information where the - * diagnostic was located. - * - * When set, diagnostics will be prefixed by the file, line, and - * (optionally) column to which the diagnostic refers. For example, - * - * \code - * test.c:28: warning: extra tokens at end of #endif directive - * \endcode - * - * This option corresponds to the clang flag \c -fshow-source-location. - */ - CXDiagnostic_DisplaySourceLocation = 0x01, - - /** - * \brief If displaying the source-location information of the - * diagnostic, also include the column number. - * - * This option corresponds to the clang flag \c -fshow-column. - */ - CXDiagnostic_DisplayColumn = 0x02, - - /** - * \brief If displaying the source-location information of the - * diagnostic, also include information about source ranges in a - * machine-parsable format. - * - * This option corresponds to the clang flag - * \c -fdiagnostics-print-source-range-info. - */ - CXDiagnostic_DisplaySourceRanges = 0x04, - - /** - * \brief Display the option name associated with this diagnostic, if any. - * - * The option name displayed (e.g., -Wconversion) will be placed in brackets - * after the diagnostic text. This option corresponds to the clang flag - * \c -fdiagnostics-show-option. - */ - CXDiagnostic_DisplayOption = 0x08, - - /** - * \brief Display the category number associated with this diagnostic, if any. - * - * The category number is displayed within brackets after the diagnostic text. - * This option corresponds to the clang flag - * \c -fdiagnostics-show-category=id. - */ - CXDiagnostic_DisplayCategoryId = 0x10, - - /** - * \brief Display the category name associated with this diagnostic, if any. - * - * The category name is displayed within brackets after the diagnostic text. - * This option corresponds to the clang flag - * \c -fdiagnostics-show-category=name. - */ - CXDiagnostic_DisplayCategoryName = 0x20 -}; - -/** - * \brief Format the given diagnostic in a manner that is suitable for display. - * - * This routine will format the given diagnostic to a string, rendering - * the diagnostic according to the various options given. The - * \c clang_defaultDiagnosticDisplayOptions() function returns the set of - * options that most closely mimics the behavior of the clang compiler. - * - * \param Diagnostic The diagnostic to print. - * - * \param Options A set of options that control the diagnostic display, - * created by combining \c CXDiagnosticDisplayOptions values. - * - * \returns A new string containing for formatted diagnostic. - */ -CINDEX_LINKAGE CXString clang_formatDiagnostic(CXDiagnostic Diagnostic, - unsigned Options); - -/** - * \brief Retrieve the set of display options most similar to the - * default behavior of the clang compiler. - * - * \returns A set of display options suitable for use with \c - * clang_formatDiagnostic(). - */ -CINDEX_LINKAGE unsigned clang_defaultDiagnosticDisplayOptions(void); - -/** - * \brief Determine the severity of the given diagnostic. - */ -CINDEX_LINKAGE enum CXDiagnosticSeverity -clang_getDiagnosticSeverity(CXDiagnostic); - -/** - * \brief Retrieve the source location of the given diagnostic. - * - * This location is where Clang would print the caret ('^') when - * displaying the diagnostic on the command line. - */ -CINDEX_LINKAGE CXSourceLocation clang_getDiagnosticLocation(CXDiagnostic); - -/** - * \brief Retrieve the text of the given diagnostic. - */ -CINDEX_LINKAGE CXString clang_getDiagnosticSpelling(CXDiagnostic); - -/** - * \brief Retrieve the name of the command-line option that enabled this - * diagnostic. - * - * \param Diag The diagnostic to be queried. - * - * \param Disable If non-NULL, will be set to the option that disables this - * diagnostic (if any). - * - * \returns A string that contains the command-line option used to enable this - * warning, such as "-Wconversion" or "-pedantic". - */ -CINDEX_LINKAGE CXString clang_getDiagnosticOption(CXDiagnostic Diag, - CXString *Disable); - -/** - * \brief Retrieve the category number for this diagnostic. - * - * Diagnostics can be categorized into groups along with other, related - * diagnostics (e.g., diagnostics under the same warning flag). This routine - * retrieves the category number for the given diagnostic. - * - * \returns The number of the category that contains this diagnostic, or zero - * if this diagnostic is uncategorized. - */ -CINDEX_LINKAGE unsigned clang_getDiagnosticCategory(CXDiagnostic); - -/** - * \brief Retrieve the name of a particular diagnostic category. This - * is now deprecated. Use clang_getDiagnosticCategoryText() - * instead. - * - * \param Category A diagnostic category number, as returned by - * \c clang_getDiagnosticCategory(). - * - * \returns The name of the given diagnostic category. - */ -CINDEX_DEPRECATED CINDEX_LINKAGE -CXString clang_getDiagnosticCategoryName(unsigned Category); - -/** - * \brief Retrieve the diagnostic category text for a given diagnostic. - * - * \returns The text of the given diagnostic category. - */ -CINDEX_LINKAGE CXString clang_getDiagnosticCategoryText(CXDiagnostic); - -/** - * \brief Determine the number of source ranges associated with the given - * diagnostic. - */ -CINDEX_LINKAGE unsigned clang_getDiagnosticNumRanges(CXDiagnostic); - -/** - * \brief Retrieve a source range associated with the diagnostic. - * - * A diagnostic's source ranges highlight important elements in the source - * code. On the command line, Clang displays source ranges by - * underlining them with '~' characters. - * - * \param Diagnostic the diagnostic whose range is being extracted. - * - * \param Range the zero-based index specifying which range to - * - * \returns the requested source range. - */ -CINDEX_LINKAGE CXSourceRange clang_getDiagnosticRange(CXDiagnostic Diagnostic, - unsigned Range); - -/** - * \brief Determine the number of fix-it hints associated with the - * given diagnostic. - */ -CINDEX_LINKAGE unsigned clang_getDiagnosticNumFixIts(CXDiagnostic Diagnostic); - -/** - * \brief Retrieve the replacement information for a given fix-it. - * - * Fix-its are described in terms of a source range whose contents - * should be replaced by a string. This approach generalizes over - * three kinds of operations: removal of source code (the range covers - * the code to be removed and the replacement string is empty), - * replacement of source code (the range covers the code to be - * replaced and the replacement string provides the new code), and - * insertion (both the start and end of the range point at the - * insertion location, and the replacement string provides the text to - * insert). - * - * \param Diagnostic The diagnostic whose fix-its are being queried. - * - * \param FixIt The zero-based index of the fix-it. - * - * \param ReplacementRange The source range whose contents will be - * replaced with the returned replacement string. Note that source - * ranges are half-open ranges [a, b), so the source code should be - * replaced from a and up to (but not including) b. - * - * \returns A string containing text that should be replace the source - * code indicated by the \c ReplacementRange. - */ -CINDEX_LINKAGE CXString clang_getDiagnosticFixIt(CXDiagnostic Diagnostic, - unsigned FixIt, - CXSourceRange *ReplacementRange); - -/** - * @} - */ - -/** - * \defgroup CINDEX_TRANSLATION_UNIT Translation unit manipulation - * - * The routines in this group provide the ability to create and destroy - * translation units from files, either by parsing the contents of the files or - * by reading in a serialized representation of a translation unit. - * - * @{ - */ - -/** - * \brief Get the original translation unit source file name. - */ -CINDEX_LINKAGE CXString -clang_getTranslationUnitSpelling(CXTranslationUnit CTUnit); - -/** - * \brief Return the CXTranslationUnit for a given source file and the provided - * command line arguments one would pass to the compiler. - * - * Note: The 'source_filename' argument is optional. If the caller provides a - * NULL pointer, the name of the source file is expected to reside in the - * specified command line arguments. - * - * Note: When encountered in 'clang_command_line_args', the following options - * are ignored: - * - * '-c' - * '-emit-ast' - * '-fsyntax-only' - * '-o \' (both '-o' and '\' are ignored) - * - * \param CIdx The index object with which the translation unit will be - * associated. - * - * \param source_filename The name of the source file to load, or NULL if the - * source file is included in \p clang_command_line_args. - * - * \param num_clang_command_line_args The number of command-line arguments in - * \p clang_command_line_args. - * - * \param clang_command_line_args The command-line arguments that would be - * passed to the \c clang executable if it were being invoked out-of-process. - * These command-line options will be parsed and will affect how the translation - * unit is parsed. Note that the following options are ignored: '-c', - * '-emit-ast', '-fsyntax-only' (which is the default), and '-o \'. - * - * \param num_unsaved_files the number of unsaved file entries in \p - * unsaved_files. - * - * \param unsaved_files the files that have not yet been saved to disk - * but may be required for code completion, including the contents of - * those files. The contents and name of these files (as specified by - * CXUnsavedFile) are copied when necessary, so the client only needs to - * guarantee their validity until the call to this function returns. - */ -CINDEX_LINKAGE CXTranslationUnit clang_createTranslationUnitFromSourceFile( - CXIndex CIdx, - const char *source_filename, - int num_clang_command_line_args, - const char * const *clang_command_line_args, - unsigned num_unsaved_files, - struct CXUnsavedFile *unsaved_files); - -/** - * \brief Same as \c clang_createTranslationUnit2, but returns - * the \c CXTranslationUnit instead of an error code. In case of an error this - * routine returns a \c NULL \c CXTranslationUnit, without further detailed - * error codes. - */ -CINDEX_LINKAGE CXTranslationUnit clang_createTranslationUnit( - CXIndex CIdx, - const char *ast_filename); - -/** - * \brief Create a translation unit from an AST file (\c -emit-ast). - * - * \param[out] out_TU A non-NULL pointer to store the created - * \c CXTranslationUnit. - * - * \returns Zero on success, otherwise returns an error code. - */ -CINDEX_LINKAGE enum CXErrorCode clang_createTranslationUnit2( - CXIndex CIdx, - const char *ast_filename, - CXTranslationUnit *out_TU); - -/** - * \brief Flags that control the creation of translation units. - * - * The enumerators in this enumeration type are meant to be bitwise - * ORed together to specify which options should be used when - * constructing the translation unit. - */ -enum CXTranslationUnit_Flags { - /** - * \brief Used to indicate that no special translation-unit options are - * needed. - */ - CXTranslationUnit_None = 0x0, - - /** - * \brief Used to indicate that the parser should construct a "detailed" - * preprocessing record, including all macro definitions and instantiations. - * - * Constructing a detailed preprocessing record requires more memory - * and time to parse, since the information contained in the record - * is usually not retained. However, it can be useful for - * applications that require more detailed information about the - * behavior of the preprocessor. - */ - CXTranslationUnit_DetailedPreprocessingRecord = 0x01, - - /** - * \brief Used to indicate that the translation unit is incomplete. - * - * When a translation unit is considered "incomplete", semantic - * analysis that is typically performed at the end of the - * translation unit will be suppressed. For example, this suppresses - * the completion of tentative declarations in C and of - * instantiation of implicitly-instantiation function templates in - * C++. This option is typically used when parsing a header with the - * intent of producing a precompiled header. - */ - CXTranslationUnit_Incomplete = 0x02, - - /** - * \brief Used to indicate that the translation unit should be built with an - * implicit precompiled header for the preamble. - * - * An implicit precompiled header is used as an optimization when a - * particular translation unit is likely to be reparsed many times - * when the sources aren't changing that often. In this case, an - * implicit precompiled header will be built containing all of the - * initial includes at the top of the main file (what we refer to as - * the "preamble" of the file). In subsequent parses, if the - * preamble or the files in it have not changed, \c - * clang_reparseTranslationUnit() will re-use the implicit - * precompiled header to improve parsing performance. - */ - CXTranslationUnit_PrecompiledPreamble = 0x04, - - /** - * \brief Used to indicate that the translation unit should cache some - * code-completion results with each reparse of the source file. - * - * Caching of code-completion results is a performance optimization that - * introduces some overhead to reparsing but improves the performance of - * code-completion operations. - */ - CXTranslationUnit_CacheCompletionResults = 0x08, - - /** - * \brief Used to indicate that the translation unit will be serialized with - * \c clang_saveTranslationUnit. - * - * This option is typically used when parsing a header with the intent of - * producing a precompiled header. - */ - CXTranslationUnit_ForSerialization = 0x10, - - /** - * \brief DEPRECATED: Enabled chained precompiled preambles in C++. - * - * Note: this is a *temporary* option that is available only while - * we are testing C++ precompiled preamble support. It is deprecated. - */ - CXTranslationUnit_CXXChainedPCH = 0x20, - - /** - * \brief Used to indicate that function/method bodies should be skipped while - * parsing. - * - * This option can be used to search for declarations/definitions while - * ignoring the usages. - */ - CXTranslationUnit_SkipFunctionBodies = 0x40, - - /** - * \brief Used to indicate that brief documentation comments should be - * included into the set of code completions returned from this translation - * unit. - */ - CXTranslationUnit_IncludeBriefCommentsInCodeCompletion = 0x80 -}; - -/** - * \brief Returns the set of flags that is suitable for parsing a translation - * unit that is being edited. - * - * The set of flags returned provide options for \c clang_parseTranslationUnit() - * to indicate that the translation unit is likely to be reparsed many times, - * either explicitly (via \c clang_reparseTranslationUnit()) or implicitly - * (e.g., by code completion (\c clang_codeCompletionAt())). The returned flag - * set contains an unspecified set of optimizations (e.g., the precompiled - * preamble) geared toward improving the performance of these routines. The - * set of optimizations enabled may change from one version to the next. - */ -CINDEX_LINKAGE unsigned clang_defaultEditingTranslationUnitOptions(void); - -/** - * \brief Same as \c clang_parseTranslationUnit2, but returns - * the \c CXTranslationUnit instead of an error code. In case of an error this - * routine returns a \c NULL \c CXTranslationUnit, without further detailed - * error codes. - */ -CINDEX_LINKAGE CXTranslationUnit -clang_parseTranslationUnit(CXIndex CIdx, - const char *source_filename, - const char *const *command_line_args, - int num_command_line_args, - struct CXUnsavedFile *unsaved_files, - unsigned num_unsaved_files, - unsigned options); - -/** - * \brief Parse the given source file and the translation unit corresponding - * to that file. - * - * This routine is the main entry point for the Clang C API, providing the - * ability to parse a source file into a translation unit that can then be - * queried by other functions in the API. This routine accepts a set of - * command-line arguments so that the compilation can be configured in the same - * way that the compiler is configured on the command line. - * - * \param CIdx The index object with which the translation unit will be - * associated. - * - * \param source_filename The name of the source file to load, or NULL if the - * source file is included in \c command_line_args. - * - * \param command_line_args The command-line arguments that would be - * passed to the \c clang executable if it were being invoked out-of-process. - * These command-line options will be parsed and will affect how the translation - * unit is parsed. Note that the following options are ignored: '-c', - * '-emit-ast', '-fsyntax-only' (which is the default), and '-o \'. - * - * \param num_command_line_args The number of command-line arguments in - * \c command_line_args. - * - * \param unsaved_files the files that have not yet been saved to disk - * but may be required for parsing, including the contents of - * those files. The contents and name of these files (as specified by - * CXUnsavedFile) are copied when necessary, so the client only needs to - * guarantee their validity until the call to this function returns. - * - * \param num_unsaved_files the number of unsaved file entries in \p - * unsaved_files. - * - * \param options A bitmask of options that affects how the translation unit - * is managed but not its compilation. This should be a bitwise OR of the - * CXTranslationUnit_XXX flags. - * - * \param[out] out_TU A non-NULL pointer to store the created - * \c CXTranslationUnit, describing the parsed code and containing any - * diagnostics produced by the compiler. - * - * \returns Zero on success, otherwise returns an error code. - */ -CINDEX_LINKAGE enum CXErrorCode -clang_parseTranslationUnit2(CXIndex CIdx, - const char *source_filename, - const char *const *command_line_args, - int num_command_line_args, - struct CXUnsavedFile *unsaved_files, - unsigned num_unsaved_files, - unsigned options, - CXTranslationUnit *out_TU); - -/** - * \brief Flags that control how translation units are saved. - * - * The enumerators in this enumeration type are meant to be bitwise - * ORed together to specify which options should be used when - * saving the translation unit. - */ -enum CXSaveTranslationUnit_Flags { - /** - * \brief Used to indicate that no special saving options are needed. - */ - CXSaveTranslationUnit_None = 0x0 -}; - -/** - * \brief Returns the set of flags that is suitable for saving a translation - * unit. - * - * The set of flags returned provide options for - * \c clang_saveTranslationUnit() by default. The returned flag - * set contains an unspecified set of options that save translation units with - * the most commonly-requested data. - */ -CINDEX_LINKAGE unsigned clang_defaultSaveOptions(CXTranslationUnit TU); - -/** - * \brief Describes the kind of error that occurred (if any) in a call to - * \c clang_saveTranslationUnit(). - */ -enum CXSaveError { - /** - * \brief Indicates that no error occurred while saving a translation unit. - */ - CXSaveError_None = 0, - - /** - * \brief Indicates that an unknown error occurred while attempting to save - * the file. - * - * This error typically indicates that file I/O failed when attempting to - * write the file. - */ - CXSaveError_Unknown = 1, - - /** - * \brief Indicates that errors during translation prevented this attempt - * to save the translation unit. - * - * Errors that prevent the translation unit from being saved can be - * extracted using \c clang_getNumDiagnostics() and \c clang_getDiagnostic(). - */ - CXSaveError_TranslationErrors = 2, - - /** - * \brief Indicates that the translation unit to be saved was somehow - * invalid (e.g., NULL). - */ - CXSaveError_InvalidTU = 3 -}; - -/** - * \brief Saves a translation unit into a serialized representation of - * that translation unit on disk. - * - * Any translation unit that was parsed without error can be saved - * into a file. The translation unit can then be deserialized into a - * new \c CXTranslationUnit with \c clang_createTranslationUnit() or, - * if it is an incomplete translation unit that corresponds to a - * header, used as a precompiled header when parsing other translation - * units. - * - * \param TU The translation unit to save. - * - * \param FileName The file to which the translation unit will be saved. - * - * \param options A bitmask of options that affects how the translation unit - * is saved. This should be a bitwise OR of the - * CXSaveTranslationUnit_XXX flags. - * - * \returns A value that will match one of the enumerators of the CXSaveError - * enumeration. Zero (CXSaveError_None) indicates that the translation unit was - * saved successfully, while a non-zero value indicates that a problem occurred. - */ -CINDEX_LINKAGE int clang_saveTranslationUnit(CXTranslationUnit TU, - const char *FileName, - unsigned options); - -/** - * \brief Destroy the specified CXTranslationUnit object. - */ -CINDEX_LINKAGE void clang_disposeTranslationUnit(CXTranslationUnit); - -/** - * \brief Flags that control the reparsing of translation units. - * - * The enumerators in this enumeration type are meant to be bitwise - * ORed together to specify which options should be used when - * reparsing the translation unit. - */ -enum CXReparse_Flags { - /** - * \brief Used to indicate that no special reparsing options are needed. - */ - CXReparse_None = 0x0 -}; - -/** - * \brief Returns the set of flags that is suitable for reparsing a translation - * unit. - * - * The set of flags returned provide options for - * \c clang_reparseTranslationUnit() by default. The returned flag - * set contains an unspecified set of optimizations geared toward common uses - * of reparsing. The set of optimizations enabled may change from one version - * to the next. - */ -CINDEX_LINKAGE unsigned clang_defaultReparseOptions(CXTranslationUnit TU); - -/** - * \brief Reparse the source files that produced this translation unit. - * - * This routine can be used to re-parse the source files that originally - * created the given translation unit, for example because those source files - * have changed (either on disk or as passed via \p unsaved_files). The - * source code will be reparsed with the same command-line options as it - * was originally parsed. - * - * Reparsing a translation unit invalidates all cursors and source locations - * that refer into that translation unit. This makes reparsing a translation - * unit semantically equivalent to destroying the translation unit and then - * creating a new translation unit with the same command-line arguments. - * However, it may be more efficient to reparse a translation - * unit using this routine. - * - * \param TU The translation unit whose contents will be re-parsed. The - * translation unit must originally have been built with - * \c clang_createTranslationUnitFromSourceFile(). - * - * \param num_unsaved_files The number of unsaved file entries in \p - * unsaved_files. - * - * \param unsaved_files The files that have not yet been saved to disk - * but may be required for parsing, including the contents of - * those files. The contents and name of these files (as specified by - * CXUnsavedFile) are copied when necessary, so the client only needs to - * guarantee their validity until the call to this function returns. - * - * \param options A bitset of options composed of the flags in CXReparse_Flags. - * The function \c clang_defaultReparseOptions() produces a default set of - * options recommended for most uses, based on the translation unit. - * - * \returns 0 if the sources could be reparsed. A non-zero error code will be - * returned if reparsing was impossible, such that the translation unit is - * invalid. In such cases, the only valid call for \c TU is - * \c clang_disposeTranslationUnit(TU). The error codes returned by this - * routine are described by the \c CXErrorCode enum. - */ -CINDEX_LINKAGE int clang_reparseTranslationUnit(CXTranslationUnit TU, - unsigned num_unsaved_files, - struct CXUnsavedFile *unsaved_files, - unsigned options); - -/** - * \brief Categorizes how memory is being used by a translation unit. - */ -enum CXTUResourceUsageKind { - CXTUResourceUsage_AST = 1, - CXTUResourceUsage_Identifiers = 2, - CXTUResourceUsage_Selectors = 3, - CXTUResourceUsage_GlobalCompletionResults = 4, - CXTUResourceUsage_SourceManagerContentCache = 5, - CXTUResourceUsage_AST_SideTables = 6, - CXTUResourceUsage_SourceManager_Membuffer_Malloc = 7, - CXTUResourceUsage_SourceManager_Membuffer_MMap = 8, - CXTUResourceUsage_ExternalASTSource_Membuffer_Malloc = 9, - CXTUResourceUsage_ExternalASTSource_Membuffer_MMap = 10, - CXTUResourceUsage_Preprocessor = 11, - CXTUResourceUsage_PreprocessingRecord = 12, - CXTUResourceUsage_SourceManager_DataStructures = 13, - CXTUResourceUsage_Preprocessor_HeaderSearch = 14, - CXTUResourceUsage_MEMORY_IN_BYTES_BEGIN = CXTUResourceUsage_AST, - CXTUResourceUsage_MEMORY_IN_BYTES_END = - CXTUResourceUsage_Preprocessor_HeaderSearch, - - CXTUResourceUsage_First = CXTUResourceUsage_AST, - CXTUResourceUsage_Last = CXTUResourceUsage_Preprocessor_HeaderSearch -}; - -/** - * \brief Returns the human-readable null-terminated C string that represents - * the name of the memory category. This string should never be freed. - */ -CINDEX_LINKAGE -const char *clang_getTUResourceUsageName(enum CXTUResourceUsageKind kind); - -typedef struct CXTUResourceUsageEntry { - /* \brief The memory usage category. */ - enum CXTUResourceUsageKind kind; - /* \brief Amount of resources used. - The units will depend on the resource kind. */ - unsigned long amount; -} CXTUResourceUsageEntry; - -/** - * \brief The memory usage of a CXTranslationUnit, broken into categories. - */ -typedef struct CXTUResourceUsage { - /* \brief Private data member, used for queries. */ - void *data; - - /* \brief The number of entries in the 'entries' array. */ - unsigned numEntries; - - /* \brief An array of key-value pairs, representing the breakdown of memory - usage. */ - CXTUResourceUsageEntry *entries; - -} CXTUResourceUsage; - -/** - * \brief Return the memory usage of a translation unit. This object - * should be released with clang_disposeCXTUResourceUsage(). - */ -CINDEX_LINKAGE CXTUResourceUsage clang_getCXTUResourceUsage(CXTranslationUnit TU); - -CINDEX_LINKAGE void clang_disposeCXTUResourceUsage(CXTUResourceUsage usage); - -/** - * @} - */ - -/** - * \brief Describes the kind of entity that a cursor refers to. - */ -enum CXCursorKind { - /* Declarations */ - /** - * \brief A declaration whose specific kind is not exposed via this - * interface. - * - * Unexposed declarations have the same operations as any other kind - * of declaration; one can extract their location information, - * spelling, find their definitions, etc. However, the specific kind - * of the declaration is not reported. - */ - CXCursor_UnexposedDecl = 1, - /** \brief A C or C++ struct. */ - CXCursor_StructDecl = 2, - /** \brief A C or C++ union. */ - CXCursor_UnionDecl = 3, - /** \brief A C++ class. */ - CXCursor_ClassDecl = 4, - /** \brief An enumeration. */ - CXCursor_EnumDecl = 5, - /** - * \brief A field (in C) or non-static data member (in C++) in a - * struct, union, or C++ class. - */ - CXCursor_FieldDecl = 6, - /** \brief An enumerator constant. */ - CXCursor_EnumConstantDecl = 7, - /** \brief A function. */ - CXCursor_FunctionDecl = 8, - /** \brief A variable. */ - CXCursor_VarDecl = 9, - /** \brief A function or method parameter. */ - CXCursor_ParmDecl = 10, - /** \brief An Objective-C \@interface. */ - CXCursor_ObjCInterfaceDecl = 11, - /** \brief An Objective-C \@interface for a category. */ - CXCursor_ObjCCategoryDecl = 12, - /** \brief An Objective-C \@protocol declaration. */ - CXCursor_ObjCProtocolDecl = 13, - /** \brief An Objective-C \@property declaration. */ - CXCursor_ObjCPropertyDecl = 14, - /** \brief An Objective-C instance variable. */ - CXCursor_ObjCIvarDecl = 15, - /** \brief An Objective-C instance method. */ - CXCursor_ObjCInstanceMethodDecl = 16, - /** \brief An Objective-C class method. */ - CXCursor_ObjCClassMethodDecl = 17, - /** \brief An Objective-C \@implementation. */ - CXCursor_ObjCImplementationDecl = 18, - /** \brief An Objective-C \@implementation for a category. */ - CXCursor_ObjCCategoryImplDecl = 19, - /** \brief A typedef */ - CXCursor_TypedefDecl = 20, - /** \brief A C++ class method. */ - CXCursor_CXXMethod = 21, - /** \brief A C++ namespace. */ - CXCursor_Namespace = 22, - /** \brief A linkage specification, e.g. 'extern "C"'. */ - CXCursor_LinkageSpec = 23, - /** \brief A C++ constructor. */ - CXCursor_Constructor = 24, - /** \brief A C++ destructor. */ - CXCursor_Destructor = 25, - /** \brief A C++ conversion function. */ - CXCursor_ConversionFunction = 26, - /** \brief A C++ template type parameter. */ - CXCursor_TemplateTypeParameter = 27, - /** \brief A C++ non-type template parameter. */ - CXCursor_NonTypeTemplateParameter = 28, - /** \brief A C++ template template parameter. */ - CXCursor_TemplateTemplateParameter = 29, - /** \brief A C++ function template. */ - CXCursor_FunctionTemplate = 30, - /** \brief A C++ class template. */ - CXCursor_ClassTemplate = 31, - /** \brief A C++ class template partial specialization. */ - CXCursor_ClassTemplatePartialSpecialization = 32, - /** \brief A C++ namespace alias declaration. */ - CXCursor_NamespaceAlias = 33, - /** \brief A C++ using directive. */ - CXCursor_UsingDirective = 34, - /** \brief A C++ using declaration. */ - CXCursor_UsingDeclaration = 35, - /** \brief A C++ alias declaration */ - CXCursor_TypeAliasDecl = 36, - /** \brief An Objective-C \@synthesize definition. */ - CXCursor_ObjCSynthesizeDecl = 37, - /** \brief An Objective-C \@dynamic definition. */ - CXCursor_ObjCDynamicDecl = 38, - /** \brief An access specifier. */ - CXCursor_CXXAccessSpecifier = 39, - - CXCursor_FirstDecl = CXCursor_UnexposedDecl, - CXCursor_LastDecl = CXCursor_CXXAccessSpecifier, - - /* References */ - CXCursor_FirstRef = 40, /* Decl references */ - CXCursor_ObjCSuperClassRef = 40, - CXCursor_ObjCProtocolRef = 41, - CXCursor_ObjCClassRef = 42, - /** - * \brief A reference to a type declaration. - * - * A type reference occurs anywhere where a type is named but not - * declared. For example, given: - * - * \code - * typedef unsigned size_type; - * size_type size; - * \endcode - * - * The typedef is a declaration of size_type (CXCursor_TypedefDecl), - * while the type of the variable "size" is referenced. The cursor - * referenced by the type of size is the typedef for size_type. - */ - CXCursor_TypeRef = 43, - CXCursor_CXXBaseSpecifier = 44, - /** - * \brief A reference to a class template, function template, template - * template parameter, or class template partial specialization. - */ - CXCursor_TemplateRef = 45, - /** - * \brief A reference to a namespace or namespace alias. - */ - CXCursor_NamespaceRef = 46, - /** - * \brief A reference to a member of a struct, union, or class that occurs in - * some non-expression context, e.g., a designated initializer. - */ - CXCursor_MemberRef = 47, - /** - * \brief A reference to a labeled statement. - * - * This cursor kind is used to describe the jump to "start_over" in the - * goto statement in the following example: - * - * \code - * start_over: - * ++counter; - * - * goto start_over; - * \endcode - * - * A label reference cursor refers to a label statement. - */ - CXCursor_LabelRef = 48, - - /** - * \brief A reference to a set of overloaded functions or function templates - * that has not yet been resolved to a specific function or function template. - * - * An overloaded declaration reference cursor occurs in C++ templates where - * a dependent name refers to a function. For example: - * - * \code - * template void swap(T&, T&); - * - * struct X { ... }; - * void swap(X&, X&); - * - * template - * void reverse(T* first, T* last) { - * while (first < last - 1) { - * swap(*first, *--last); - * ++first; - * } - * } - * - * struct Y { }; - * void swap(Y&, Y&); - * \endcode - * - * Here, the identifier "swap" is associated with an overloaded declaration - * reference. In the template definition, "swap" refers to either of the two - * "swap" functions declared above, so both results will be available. At - * instantiation time, "swap" may also refer to other functions found via - * argument-dependent lookup (e.g., the "swap" function at the end of the - * example). - * - * The functions \c clang_getNumOverloadedDecls() and - * \c clang_getOverloadedDecl() can be used to retrieve the definitions - * referenced by this cursor. - */ - CXCursor_OverloadedDeclRef = 49, - - /** - * \brief A reference to a variable that occurs in some non-expression - * context, e.g., a C++ lambda capture list. - */ - CXCursor_VariableRef = 50, - - CXCursor_LastRef = CXCursor_VariableRef, - - /* Error conditions */ - CXCursor_FirstInvalid = 70, - CXCursor_InvalidFile = 70, - CXCursor_NoDeclFound = 71, - CXCursor_NotImplemented = 72, - CXCursor_InvalidCode = 73, - CXCursor_LastInvalid = CXCursor_InvalidCode, - - /* Expressions */ - CXCursor_FirstExpr = 100, - - /** - * \brief An expression whose specific kind is not exposed via this - * interface. - * - * Unexposed expressions have the same operations as any other kind - * of expression; one can extract their location information, - * spelling, children, etc. However, the specific kind of the - * expression is not reported. - */ - CXCursor_UnexposedExpr = 100, - - /** - * \brief An expression that refers to some value declaration, such - * as a function, variable, or enumerator. - */ - CXCursor_DeclRefExpr = 101, - - /** - * \brief An expression that refers to a member of a struct, union, - * class, Objective-C class, etc. - */ - CXCursor_MemberRefExpr = 102, - - /** \brief An expression that calls a function. */ - CXCursor_CallExpr = 103, - - /** \brief An expression that sends a message to an Objective-C - object or class. */ - CXCursor_ObjCMessageExpr = 104, - - /** \brief An expression that represents a block literal. */ - CXCursor_BlockExpr = 105, - - /** \brief An integer literal. - */ - CXCursor_IntegerLiteral = 106, - - /** \brief A floating point number literal. - */ - CXCursor_FloatingLiteral = 107, - - /** \brief An imaginary number literal. - */ - CXCursor_ImaginaryLiteral = 108, - - /** \brief A string literal. - */ - CXCursor_StringLiteral = 109, - - /** \brief A character literal. - */ - CXCursor_CharacterLiteral = 110, - - /** \brief A parenthesized expression, e.g. "(1)". - * - * This AST node is only formed if full location information is requested. - */ - CXCursor_ParenExpr = 111, - - /** \brief This represents the unary-expression's (except sizeof and - * alignof). - */ - CXCursor_UnaryOperator = 112, - - /** \brief [C99 6.5.2.1] Array Subscripting. - */ - CXCursor_ArraySubscriptExpr = 113, - - /** \brief A builtin binary operation expression such as "x + y" or - * "x <= y". - */ - CXCursor_BinaryOperator = 114, - - /** \brief Compound assignment such as "+=". - */ - CXCursor_CompoundAssignOperator = 115, - - /** \brief The ?: ternary operator. - */ - CXCursor_ConditionalOperator = 116, - - /** \brief An explicit cast in C (C99 6.5.4) or a C-style cast in C++ - * (C++ [expr.cast]), which uses the syntax (Type)expr. - * - * For example: (int)f. - */ - CXCursor_CStyleCastExpr = 117, - - /** \brief [C99 6.5.2.5] - */ - CXCursor_CompoundLiteralExpr = 118, - - /** \brief Describes an C or C++ initializer list. - */ - CXCursor_InitListExpr = 119, - - /** \brief The GNU address of label extension, representing &&label. - */ - CXCursor_AddrLabelExpr = 120, - - /** \brief This is the GNU Statement Expression extension: ({int X=4; X;}) - */ - CXCursor_StmtExpr = 121, - - /** \brief Represents a C11 generic selection. - */ - CXCursor_GenericSelectionExpr = 122, - - /** \brief Implements the GNU __null extension, which is a name for a null - * pointer constant that has integral type (e.g., int or long) and is the same - * size and alignment as a pointer. - * - * The __null extension is typically only used by system headers, which define - * NULL as __null in C++ rather than using 0 (which is an integer that may not - * match the size of a pointer). - */ - CXCursor_GNUNullExpr = 123, - - /** \brief C++'s static_cast<> expression. - */ - CXCursor_CXXStaticCastExpr = 124, - - /** \brief C++'s dynamic_cast<> expression. - */ - CXCursor_CXXDynamicCastExpr = 125, - - /** \brief C++'s reinterpret_cast<> expression. - */ - CXCursor_CXXReinterpretCastExpr = 126, - - /** \brief C++'s const_cast<> expression. - */ - CXCursor_CXXConstCastExpr = 127, - - /** \brief Represents an explicit C++ type conversion that uses "functional" - * notion (C++ [expr.type.conv]). - * - * Example: - * \code - * x = int(0.5); - * \endcode - */ - CXCursor_CXXFunctionalCastExpr = 128, - - /** \brief A C++ typeid expression (C++ [expr.typeid]). - */ - CXCursor_CXXTypeidExpr = 129, - - /** \brief [C++ 2.13.5] C++ Boolean Literal. - */ - CXCursor_CXXBoolLiteralExpr = 130, - - /** \brief [C++0x 2.14.7] C++ Pointer Literal. - */ - CXCursor_CXXNullPtrLiteralExpr = 131, - - /** \brief Represents the "this" expression in C++ - */ - CXCursor_CXXThisExpr = 132, - - /** \brief [C++ 15] C++ Throw Expression. - * - * This handles 'throw' and 'throw' assignment-expression. When - * assignment-expression isn't present, Op will be null. - */ - CXCursor_CXXThrowExpr = 133, - - /** \brief A new expression for memory allocation and constructor calls, e.g: - * "new CXXNewExpr(foo)". - */ - CXCursor_CXXNewExpr = 134, - - /** \brief A delete expression for memory deallocation and destructor calls, - * e.g. "delete[] pArray". - */ - CXCursor_CXXDeleteExpr = 135, - - /** \brief A unary expression. - */ - CXCursor_UnaryExpr = 136, - - /** \brief An Objective-C string literal i.e. @"foo". - */ - CXCursor_ObjCStringLiteral = 137, - - /** \brief An Objective-C \@encode expression. - */ - CXCursor_ObjCEncodeExpr = 138, - - /** \brief An Objective-C \@selector expression. - */ - CXCursor_ObjCSelectorExpr = 139, - - /** \brief An Objective-C \@protocol expression. - */ - CXCursor_ObjCProtocolExpr = 140, - - /** \brief An Objective-C "bridged" cast expression, which casts between - * Objective-C pointers and C pointers, transferring ownership in the process. - * - * \code - * NSString *str = (__bridge_transfer NSString *)CFCreateString(); - * \endcode - */ - CXCursor_ObjCBridgedCastExpr = 141, - - /** \brief Represents a C++0x pack expansion that produces a sequence of - * expressions. - * - * A pack expansion expression contains a pattern (which itself is an - * expression) followed by an ellipsis. For example: - * - * \code - * template - * void forward(F f, Types &&...args) { - * f(static_cast(args)...); - * } - * \endcode - */ - CXCursor_PackExpansionExpr = 142, - - /** \brief Represents an expression that computes the length of a parameter - * pack. - * - * \code - * template - * struct count { - * static const unsigned value = sizeof...(Types); - * }; - * \endcode - */ - CXCursor_SizeOfPackExpr = 143, - - /* \brief Represents a C++ lambda expression that produces a local function - * object. - * - * \code - * void abssort(float *x, unsigned N) { - * std::sort(x, x + N, - * [](float a, float b) { - * return std::abs(a) < std::abs(b); - * }); - * } - * \endcode - */ - CXCursor_LambdaExpr = 144, - - /** \brief Objective-c Boolean Literal. - */ - CXCursor_ObjCBoolLiteralExpr = 145, - - /** \brief Represents the "self" expression in an Objective-C method. - */ - CXCursor_ObjCSelfExpr = 146, - - CXCursor_LastExpr = CXCursor_ObjCSelfExpr, - - /* Statements */ - CXCursor_FirstStmt = 200, - /** - * \brief A statement whose specific kind is not exposed via this - * interface. - * - * Unexposed statements have the same operations as any other kind of - * statement; one can extract their location information, spelling, - * children, etc. However, the specific kind of the statement is not - * reported. - */ - CXCursor_UnexposedStmt = 200, - - /** \brief A labelled statement in a function. - * - * This cursor kind is used to describe the "start_over:" label statement in - * the following example: - * - * \code - * start_over: - * ++counter; - * \endcode - * - */ - CXCursor_LabelStmt = 201, - - /** \brief A group of statements like { stmt stmt }. - * - * This cursor kind is used to describe compound statements, e.g. function - * bodies. - */ - CXCursor_CompoundStmt = 202, - - /** \brief A case statement. - */ - CXCursor_CaseStmt = 203, - - /** \brief A default statement. - */ - CXCursor_DefaultStmt = 204, - - /** \brief An if statement - */ - CXCursor_IfStmt = 205, - - /** \brief A switch statement. - */ - CXCursor_SwitchStmt = 206, - - /** \brief A while statement. - */ - CXCursor_WhileStmt = 207, - - /** \brief A do statement. - */ - CXCursor_DoStmt = 208, - - /** \brief A for statement. - */ - CXCursor_ForStmt = 209, - - /** \brief A goto statement. - */ - CXCursor_GotoStmt = 210, - - /** \brief An indirect goto statement. - */ - CXCursor_IndirectGotoStmt = 211, - - /** \brief A continue statement. - */ - CXCursor_ContinueStmt = 212, - - /** \brief A break statement. - */ - CXCursor_BreakStmt = 213, - - /** \brief A return statement. - */ - CXCursor_ReturnStmt = 214, - - /** \brief A GCC inline assembly statement extension. - */ - CXCursor_GCCAsmStmt = 215, - CXCursor_AsmStmt = CXCursor_GCCAsmStmt, - - /** \brief Objective-C's overall \@try-\@catch-\@finally statement. - */ - CXCursor_ObjCAtTryStmt = 216, - - /** \brief Objective-C's \@catch statement. - */ - CXCursor_ObjCAtCatchStmt = 217, - - /** \brief Objective-C's \@finally statement. - */ - CXCursor_ObjCAtFinallyStmt = 218, - - /** \brief Objective-C's \@throw statement. - */ - CXCursor_ObjCAtThrowStmt = 219, - - /** \brief Objective-C's \@synchronized statement. - */ - CXCursor_ObjCAtSynchronizedStmt = 220, - - /** \brief Objective-C's autorelease pool statement. - */ - CXCursor_ObjCAutoreleasePoolStmt = 221, - - /** \brief Objective-C's collection statement. - */ - CXCursor_ObjCForCollectionStmt = 222, - - /** \brief C++'s catch statement. - */ - CXCursor_CXXCatchStmt = 223, - - /** \brief C++'s try statement. - */ - CXCursor_CXXTryStmt = 224, - - /** \brief C++'s for (* : *) statement. - */ - CXCursor_CXXForRangeStmt = 225, - - /** \brief Windows Structured Exception Handling's try statement. - */ - CXCursor_SEHTryStmt = 226, - - /** \brief Windows Structured Exception Handling's except statement. - */ - CXCursor_SEHExceptStmt = 227, - - /** \brief Windows Structured Exception Handling's finally statement. - */ - CXCursor_SEHFinallyStmt = 228, - - /** \brief A MS inline assembly statement extension. - */ - CXCursor_MSAsmStmt = 229, - - /** \brief The null statement ";": C99 6.8.3p3. - * - * This cursor kind is used to describe the null statement. - */ - CXCursor_NullStmt = 230, - - /** \brief Adaptor class for mixing declarations with statements and - * expressions. - */ - CXCursor_DeclStmt = 231, - - /** \brief OpenMP parallel directive. - */ - CXCursor_OMPParallelDirective = 232, - - /** \brief OpenMP SIMD directive. - */ - CXCursor_OMPSimdDirective = 233, - - /** \brief OpenMP for directive. - */ - CXCursor_OMPForDirective = 234, - - /** \brief OpenMP sections directive. - */ - CXCursor_OMPSectionsDirective = 235, - - /** \brief OpenMP section directive. - */ - CXCursor_OMPSectionDirective = 236, - - /** \brief OpenMP single directive. - */ - CXCursor_OMPSingleDirective = 237, - - /** \brief OpenMP parallel for directive. - */ - CXCursor_OMPParallelForDirective = 238, - - /** \brief OpenMP parallel sections directive. - */ - CXCursor_OMPParallelSectionsDirective = 239, - - /** \brief OpenMP task directive. - */ - CXCursor_OMPTaskDirective = 240, - - /** \brief OpenMP master directive. - */ - CXCursor_OMPMasterDirective = 241, - - /** \brief OpenMP critical directive. - */ - CXCursor_OMPCriticalDirective = 242, - - /** \brief OpenMP taskyield directive. - */ - CXCursor_OMPTaskyieldDirective = 243, - - /** \brief OpenMP barrier directive. - */ - CXCursor_OMPBarrierDirective = 244, - - /** \brief OpenMP taskwait directive. - */ - CXCursor_OMPTaskwaitDirective = 245, - - /** \brief OpenMP flush directive. - */ - CXCursor_OMPFlushDirective = 246, - - /** \brief Windows Structured Exception Handling's leave statement. - */ - CXCursor_SEHLeaveStmt = 247, - - /** \brief OpenMP ordered directive. - */ - CXCursor_OMPOrderedDirective = 248, - - /** \brief OpenMP atomic directive. - */ - CXCursor_OMPAtomicDirective = 249, - - /** \brief OpenMP for SIMD directive. - */ - CXCursor_OMPForSimdDirective = 250, - - /** \brief OpenMP parallel for SIMD directive. - */ - CXCursor_OMPParallelForSimdDirective = 251, - - /** \brief OpenMP target directive. - */ - CXCursor_OMPTargetDirective = 252, - - /** \brief OpenMP teams directive. - */ - CXCursor_OMPTeamsDirective = 253, - - /** \brief OpenMP taskgroup directive. - */ - CXCursor_OMPTaskgroupDirective = 254, - - /** \brief OpenMP cancellation point directive. - */ - CXCursor_OMPCancellationPointDirective = 255, - - /** \brief OpenMP cancel directive. - */ - CXCursor_OMPCancelDirective = 256, - - CXCursor_LastStmt = CXCursor_OMPCancelDirective, - - /** - * \brief Cursor that represents the translation unit itself. - * - * The translation unit cursor exists primarily to act as the root - * cursor for traversing the contents of a translation unit. - */ - CXCursor_TranslationUnit = 300, - - /* Attributes */ - CXCursor_FirstAttr = 400, - /** - * \brief An attribute whose specific kind is not exposed via this - * interface. - */ - CXCursor_UnexposedAttr = 400, - - CXCursor_IBActionAttr = 401, - CXCursor_IBOutletAttr = 402, - CXCursor_IBOutletCollectionAttr = 403, - CXCursor_CXXFinalAttr = 404, - CXCursor_CXXOverrideAttr = 405, - CXCursor_AnnotateAttr = 406, - CXCursor_AsmLabelAttr = 407, - CXCursor_PackedAttr = 408, - CXCursor_PureAttr = 409, - CXCursor_ConstAttr = 410, - CXCursor_NoDuplicateAttr = 411, - CXCursor_CUDAConstantAttr = 412, - CXCursor_CUDADeviceAttr = 413, - CXCursor_CUDAGlobalAttr = 414, - CXCursor_CUDAHostAttr = 415, - CXCursor_CUDASharedAttr = 416, - CXCursor_LastAttr = CXCursor_CUDASharedAttr, - - /* Preprocessing */ - CXCursor_PreprocessingDirective = 500, - CXCursor_MacroDefinition = 501, - CXCursor_MacroExpansion = 502, - CXCursor_MacroInstantiation = CXCursor_MacroExpansion, - CXCursor_InclusionDirective = 503, - CXCursor_FirstPreprocessing = CXCursor_PreprocessingDirective, - CXCursor_LastPreprocessing = CXCursor_InclusionDirective, - - /* Extra Declarations */ - /** - * \brief A module import declaration. - */ - CXCursor_ModuleImportDecl = 600, - CXCursor_FirstExtraDecl = CXCursor_ModuleImportDecl, - CXCursor_LastExtraDecl = CXCursor_ModuleImportDecl, - - /** - * \brief A code completion overload candidate. - */ - CXCursor_OverloadCandidate = 700 -}; - -/** - * \brief A cursor representing some element in the abstract syntax tree for - * a translation unit. - * - * The cursor abstraction unifies the different kinds of entities in a - * program--declaration, statements, expressions, references to declarations, - * etc.--under a single "cursor" abstraction with a common set of operations. - * Common operation for a cursor include: getting the physical location in - * a source file where the cursor points, getting the name associated with a - * cursor, and retrieving cursors for any child nodes of a particular cursor. - * - * Cursors can be produced in two specific ways. - * clang_getTranslationUnitCursor() produces a cursor for a translation unit, - * from which one can use clang_visitChildren() to explore the rest of the - * translation unit. clang_getCursor() maps from a physical source location - * to the entity that resides at that location, allowing one to map from the - * source code into the AST. - */ -typedef struct { - enum CXCursorKind kind; - int xdata; - const void *data[3]; -} CXCursor; - -/** - * \defgroup CINDEX_CURSOR_MANIP Cursor manipulations - * - * @{ - */ - -/** - * \brief Retrieve the NULL cursor, which represents no entity. - */ -CINDEX_LINKAGE CXCursor clang_getNullCursor(void); - -/** - * \brief Retrieve the cursor that represents the given translation unit. - * - * The translation unit cursor can be used to start traversing the - * various declarations within the given translation unit. - */ -CINDEX_LINKAGE CXCursor clang_getTranslationUnitCursor(CXTranslationUnit); - -/** - * \brief Determine whether two cursors are equivalent. - */ -CINDEX_LINKAGE unsigned clang_equalCursors(CXCursor, CXCursor); - -/** - * \brief Returns non-zero if \p cursor is null. - */ -CINDEX_LINKAGE int clang_Cursor_isNull(CXCursor cursor); - -/** - * \brief Compute a hash value for the given cursor. - */ -CINDEX_LINKAGE unsigned clang_hashCursor(CXCursor); - -/** - * \brief Retrieve the kind of the given cursor. - */ -CINDEX_LINKAGE enum CXCursorKind clang_getCursorKind(CXCursor); - -/** - * \brief Determine whether the given cursor kind represents a declaration. - */ -CINDEX_LINKAGE unsigned clang_isDeclaration(enum CXCursorKind); - -/** - * \brief Determine whether the given cursor kind represents a simple - * reference. - * - * Note that other kinds of cursors (such as expressions) can also refer to - * other cursors. Use clang_getCursorReferenced() to determine whether a - * particular cursor refers to another entity. - */ -CINDEX_LINKAGE unsigned clang_isReference(enum CXCursorKind); - -/** - * \brief Determine whether the given cursor kind represents an expression. - */ -CINDEX_LINKAGE unsigned clang_isExpression(enum CXCursorKind); - -/** - * \brief Determine whether the given cursor kind represents a statement. - */ -CINDEX_LINKAGE unsigned clang_isStatement(enum CXCursorKind); - -/** - * \brief Determine whether the given cursor kind represents an attribute. - */ -CINDEX_LINKAGE unsigned clang_isAttribute(enum CXCursorKind); - -/** - * \brief Determine whether the given cursor kind represents an invalid - * cursor. - */ -CINDEX_LINKAGE unsigned clang_isInvalid(enum CXCursorKind); - -/** - * \brief Determine whether the given cursor kind represents a translation - * unit. - */ -CINDEX_LINKAGE unsigned clang_isTranslationUnit(enum CXCursorKind); - -/*** - * \brief Determine whether the given cursor represents a preprocessing - * element, such as a preprocessor directive or macro instantiation. - */ -CINDEX_LINKAGE unsigned clang_isPreprocessing(enum CXCursorKind); - -/*** - * \brief Determine whether the given cursor represents a currently - * unexposed piece of the AST (e.g., CXCursor_UnexposedStmt). - */ -CINDEX_LINKAGE unsigned clang_isUnexposed(enum CXCursorKind); - -/** - * \brief Describe the linkage of the entity referred to by a cursor. - */ -enum CXLinkageKind { - /** \brief This value indicates that no linkage information is available - * for a provided CXCursor. */ - CXLinkage_Invalid, - /** - * \brief This is the linkage for variables, parameters, and so on that - * have automatic storage. This covers normal (non-extern) local variables. - */ - CXLinkage_NoLinkage, - /** \brief This is the linkage for static variables and static functions. */ - CXLinkage_Internal, - /** \brief This is the linkage for entities with external linkage that live - * in C++ anonymous namespaces.*/ - CXLinkage_UniqueExternal, - /** \brief This is the linkage for entities with true, external linkage. */ - CXLinkage_External -}; - -/** - * \brief Determine the linkage of the entity referred to by a given cursor. - */ -CINDEX_LINKAGE enum CXLinkageKind clang_getCursorLinkage(CXCursor cursor); - -/** - * \brief Determine the availability of the entity that this cursor refers to, - * taking the current target platform into account. - * - * \param cursor The cursor to query. - * - * \returns The availability of the cursor. - */ -CINDEX_LINKAGE enum CXAvailabilityKind -clang_getCursorAvailability(CXCursor cursor); - -/** - * Describes the availability of a given entity on a particular platform, e.g., - * a particular class might only be available on Mac OS 10.7 or newer. - */ -typedef struct CXPlatformAvailability { - /** - * \brief A string that describes the platform for which this structure - * provides availability information. - * - * Possible values are "ios" or "macosx". - */ - CXString Platform; - /** - * \brief The version number in which this entity was introduced. - */ - CXVersion Introduced; - /** - * \brief The version number in which this entity was deprecated (but is - * still available). - */ - CXVersion Deprecated; - /** - * \brief The version number in which this entity was obsoleted, and therefore - * is no longer available. - */ - CXVersion Obsoleted; - /** - * \brief Whether the entity is unconditionally unavailable on this platform. - */ - int Unavailable; - /** - * \brief An optional message to provide to a user of this API, e.g., to - * suggest replacement APIs. - */ - CXString Message; -} CXPlatformAvailability; - -/** - * \brief Determine the availability of the entity that this cursor refers to - * on any platforms for which availability information is known. - * - * \param cursor The cursor to query. - * - * \param always_deprecated If non-NULL, will be set to indicate whether the - * entity is deprecated on all platforms. - * - * \param deprecated_message If non-NULL, will be set to the message text - * provided along with the unconditional deprecation of this entity. The client - * is responsible for deallocating this string. - * - * \param always_unavailable If non-NULL, will be set to indicate whether the - * entity is unavailable on all platforms. - * - * \param unavailable_message If non-NULL, will be set to the message text - * provided along with the unconditional unavailability of this entity. The - * client is responsible for deallocating this string. - * - * \param availability If non-NULL, an array of CXPlatformAvailability instances - * that will be populated with platform availability information, up to either - * the number of platforms for which availability information is available (as - * returned by this function) or \c availability_size, whichever is smaller. - * - * \param availability_size The number of elements available in the - * \c availability array. - * - * \returns The number of platforms (N) for which availability information is - * available (which is unrelated to \c availability_size). - * - * Note that the client is responsible for calling - * \c clang_disposeCXPlatformAvailability to free each of the - * platform-availability structures returned. There are - * \c min(N, availability_size) such structures. - */ -CINDEX_LINKAGE int -clang_getCursorPlatformAvailability(CXCursor cursor, - int *always_deprecated, - CXString *deprecated_message, - int *always_unavailable, - CXString *unavailable_message, - CXPlatformAvailability *availability, - int availability_size); - -/** - * \brief Free the memory associated with a \c CXPlatformAvailability structure. - */ -CINDEX_LINKAGE void -clang_disposeCXPlatformAvailability(CXPlatformAvailability *availability); - -/** - * \brief Describe the "language" of the entity referred to by a cursor. - */ -enum CXLanguageKind { - CXLanguage_Invalid = 0, - CXLanguage_C, - CXLanguage_ObjC, - CXLanguage_CPlusPlus -}; - -/** - * \brief Determine the "language" of the entity referred to by a given cursor. - */ -CINDEX_LINKAGE enum CXLanguageKind clang_getCursorLanguage(CXCursor cursor); - -/** - * \brief Returns the translation unit that a cursor originated from. - */ -CINDEX_LINKAGE CXTranslationUnit clang_Cursor_getTranslationUnit(CXCursor); - - -/** - * \brief A fast container representing a set of CXCursors. - */ -typedef struct CXCursorSetImpl *CXCursorSet; - -/** - * \brief Creates an empty CXCursorSet. - */ -CINDEX_LINKAGE CXCursorSet clang_createCXCursorSet(void); - -/** - * \brief Disposes a CXCursorSet and releases its associated memory. - */ -CINDEX_LINKAGE void clang_disposeCXCursorSet(CXCursorSet cset); - -/** - * \brief Queries a CXCursorSet to see if it contains a specific CXCursor. - * - * \returns non-zero if the set contains the specified cursor. -*/ -CINDEX_LINKAGE unsigned clang_CXCursorSet_contains(CXCursorSet cset, - CXCursor cursor); - -/** - * \brief Inserts a CXCursor into a CXCursorSet. - * - * \returns zero if the CXCursor was already in the set, and non-zero otherwise. -*/ -CINDEX_LINKAGE unsigned clang_CXCursorSet_insert(CXCursorSet cset, - CXCursor cursor); - -/** - * \brief Determine the semantic parent of the given cursor. - * - * The semantic parent of a cursor is the cursor that semantically contains - * the given \p cursor. For many declarations, the lexical and semantic parents - * are equivalent (the lexical parent is returned by - * \c clang_getCursorLexicalParent()). They diverge when declarations or - * definitions are provided out-of-line. For example: - * - * \code - * class C { - * void f(); - * }; - * - * void C::f() { } - * \endcode - * - * In the out-of-line definition of \c C::f, the semantic parent is - * the class \c C, of which this function is a member. The lexical parent is - * the place where the declaration actually occurs in the source code; in this - * case, the definition occurs in the translation unit. In general, the - * lexical parent for a given entity can change without affecting the semantics - * of the program, and the lexical parent of different declarations of the - * same entity may be different. Changing the semantic parent of a declaration, - * on the other hand, can have a major impact on semantics, and redeclarations - * of a particular entity should all have the same semantic context. - * - * In the example above, both declarations of \c C::f have \c C as their - * semantic context, while the lexical context of the first \c C::f is \c C - * and the lexical context of the second \c C::f is the translation unit. - * - * For global declarations, the semantic parent is the translation unit. - */ -CINDEX_LINKAGE CXCursor clang_getCursorSemanticParent(CXCursor cursor); - -/** - * \brief Determine the lexical parent of the given cursor. - * - * The lexical parent of a cursor is the cursor in which the given \p cursor - * was actually written. For many declarations, the lexical and semantic parents - * are equivalent (the semantic parent is returned by - * \c clang_getCursorSemanticParent()). They diverge when declarations or - * definitions are provided out-of-line. For example: - * - * \code - * class C { - * void f(); - * }; - * - * void C::f() { } - * \endcode - * - * In the out-of-line definition of \c C::f, the semantic parent is - * the class \c C, of which this function is a member. The lexical parent is - * the place where the declaration actually occurs in the source code; in this - * case, the definition occurs in the translation unit. In general, the - * lexical parent for a given entity can change without affecting the semantics - * of the program, and the lexical parent of different declarations of the - * same entity may be different. Changing the semantic parent of a declaration, - * on the other hand, can have a major impact on semantics, and redeclarations - * of a particular entity should all have the same semantic context. - * - * In the example above, both declarations of \c C::f have \c C as their - * semantic context, while the lexical context of the first \c C::f is \c C - * and the lexical context of the second \c C::f is the translation unit. - * - * For declarations written in the global scope, the lexical parent is - * the translation unit. - */ -CINDEX_LINKAGE CXCursor clang_getCursorLexicalParent(CXCursor cursor); - -/** - * \brief Determine the set of methods that are overridden by the given - * method. - * - * In both Objective-C and C++, a method (aka virtual member function, - * in C++) can override a virtual method in a base class. For - * Objective-C, a method is said to override any method in the class's - * base class, its protocols, or its categories' protocols, that has the same - * selector and is of the same kind (class or instance). - * If no such method exists, the search continues to the class's superclass, - * its protocols, and its categories, and so on. A method from an Objective-C - * implementation is considered to override the same methods as its - * corresponding method in the interface. - * - * For C++, a virtual member function overrides any virtual member - * function with the same signature that occurs in its base - * classes. With multiple inheritance, a virtual member function can - * override several virtual member functions coming from different - * base classes. - * - * In all cases, this function determines the immediate overridden - * method, rather than all of the overridden methods. For example, if - * a method is originally declared in a class A, then overridden in B - * (which in inherits from A) and also in C (which inherited from B), - * then the only overridden method returned from this function when - * invoked on C's method will be B's method. The client may then - * invoke this function again, given the previously-found overridden - * methods, to map out the complete method-override set. - * - * \param cursor A cursor representing an Objective-C or C++ - * method. This routine will compute the set of methods that this - * method overrides. - * - * \param overridden A pointer whose pointee will be replaced with a - * pointer to an array of cursors, representing the set of overridden - * methods. If there are no overridden methods, the pointee will be - * set to NULL. The pointee must be freed via a call to - * \c clang_disposeOverriddenCursors(). - * - * \param num_overridden A pointer to the number of overridden - * functions, will be set to the number of overridden functions in the - * array pointed to by \p overridden. - */ -CINDEX_LINKAGE void clang_getOverriddenCursors(CXCursor cursor, - CXCursor **overridden, - unsigned *num_overridden); - -/** - * \brief Free the set of overridden cursors returned by \c - * clang_getOverriddenCursors(). - */ -CINDEX_LINKAGE void clang_disposeOverriddenCursors(CXCursor *overridden); - -/** - * \brief Retrieve the file that is included by the given inclusion directive - * cursor. - */ -CINDEX_LINKAGE CXFile clang_getIncludedFile(CXCursor cursor); - -/** - * @} - */ - -/** - * \defgroup CINDEX_CURSOR_SOURCE Mapping between cursors and source code - * - * Cursors represent a location within the Abstract Syntax Tree (AST). These - * routines help map between cursors and the physical locations where the - * described entities occur in the source code. The mapping is provided in - * both directions, so one can map from source code to the AST and back. - * - * @{ - */ - -/** - * \brief Map a source location to the cursor that describes the entity at that - * location in the source code. - * - * clang_getCursor() maps an arbitrary source location within a translation - * unit down to the most specific cursor that describes the entity at that - * location. For example, given an expression \c x + y, invoking - * clang_getCursor() with a source location pointing to "x" will return the - * cursor for "x"; similarly for "y". If the cursor points anywhere between - * "x" or "y" (e.g., on the + or the whitespace around it), clang_getCursor() - * will return a cursor referring to the "+" expression. - * - * \returns a cursor representing the entity at the given source location, or - * a NULL cursor if no such entity can be found. - */ -CINDEX_LINKAGE CXCursor clang_getCursor(CXTranslationUnit, CXSourceLocation); - -/** - * \brief Retrieve the physical location of the source constructor referenced - * by the given cursor. - * - * The location of a declaration is typically the location of the name of that - * declaration, where the name of that declaration would occur if it is - * unnamed, or some keyword that introduces that particular declaration. - * The location of a reference is where that reference occurs within the - * source code. - */ -CINDEX_LINKAGE CXSourceLocation clang_getCursorLocation(CXCursor); - -/** - * \brief Retrieve the physical extent of the source construct referenced by - * the given cursor. - * - * The extent of a cursor starts with the file/line/column pointing at the - * first character within the source construct that the cursor refers to and - * ends with the last character within that source construct. For a - * declaration, the extent covers the declaration itself. For a reference, - * the extent covers the location of the reference (e.g., where the referenced - * entity was actually used). - */ -CINDEX_LINKAGE CXSourceRange clang_getCursorExtent(CXCursor); - -/** - * @} - */ - -/** - * \defgroup CINDEX_TYPES Type information for CXCursors - * - * @{ - */ - -/** - * \brief Describes the kind of type - */ -enum CXTypeKind { - /** - * \brief Represents an invalid type (e.g., where no type is available). - */ - CXType_Invalid = 0, - - /** - * \brief A type whose specific kind is not exposed via this - * interface. - */ - CXType_Unexposed = 1, - - /* Builtin types */ - CXType_Void = 2, - CXType_Bool = 3, - CXType_Char_U = 4, - CXType_UChar = 5, - CXType_Char16 = 6, - CXType_Char32 = 7, - CXType_UShort = 8, - CXType_UInt = 9, - CXType_ULong = 10, - CXType_ULongLong = 11, - CXType_UInt128 = 12, - CXType_Char_S = 13, - CXType_SChar = 14, - CXType_WChar = 15, - CXType_Short = 16, - CXType_Int = 17, - CXType_Long = 18, - CXType_LongLong = 19, - CXType_Int128 = 20, - CXType_Float = 21, - CXType_Double = 22, - CXType_LongDouble = 23, - CXType_NullPtr = 24, - CXType_Overload = 25, - CXType_Dependent = 26, - CXType_ObjCId = 27, - CXType_ObjCClass = 28, - CXType_ObjCSel = 29, - CXType_FirstBuiltin = CXType_Void, - CXType_LastBuiltin = CXType_ObjCSel, - - CXType_Complex = 100, - CXType_Pointer = 101, - CXType_BlockPointer = 102, - CXType_LValueReference = 103, - CXType_RValueReference = 104, - CXType_Record = 105, - CXType_Enum = 106, - CXType_Typedef = 107, - CXType_ObjCInterface = 108, - CXType_ObjCObjectPointer = 109, - CXType_FunctionNoProto = 110, - CXType_FunctionProto = 111, - CXType_ConstantArray = 112, - CXType_Vector = 113, - CXType_IncompleteArray = 114, - CXType_VariableArray = 115, - CXType_DependentSizedArray = 116, - CXType_MemberPointer = 117 -}; - -/** - * \brief Describes the calling convention of a function type - */ -enum CXCallingConv { - CXCallingConv_Default = 0, - CXCallingConv_C = 1, - CXCallingConv_X86StdCall = 2, - CXCallingConv_X86FastCall = 3, - CXCallingConv_X86ThisCall = 4, - CXCallingConv_X86Pascal = 5, - CXCallingConv_AAPCS = 6, - CXCallingConv_AAPCS_VFP = 7, - /* Value 8 was PnaclCall, but it was never used, so it could safely be re-used. */ - CXCallingConv_IntelOclBicc = 9, - CXCallingConv_X86_64Win64 = 10, - CXCallingConv_X86_64SysV = 11, - CXCallingConv_X86VectorCall = 12, - - CXCallingConv_Invalid = 100, - CXCallingConv_Unexposed = 200 -}; - - -/** - * \brief The type of an element in the abstract syntax tree. - * - */ -typedef struct { - enum CXTypeKind kind; - void *data[2]; -} CXType; - -/** - * \brief Retrieve the type of a CXCursor (if any). - */ -CINDEX_LINKAGE CXType clang_getCursorType(CXCursor C); - -/** - * \brief Pretty-print the underlying type using the rules of the - * language of the translation unit from which it came. - * - * If the type is invalid, an empty string is returned. - */ -CINDEX_LINKAGE CXString clang_getTypeSpelling(CXType CT); - -/** - * \brief Retrieve the underlying type of a typedef declaration. - * - * If the cursor does not reference a typedef declaration, an invalid type is - * returned. - */ -CINDEX_LINKAGE CXType clang_getTypedefDeclUnderlyingType(CXCursor C); - -/** - * \brief Retrieve the integer type of an enum declaration. - * - * If the cursor does not reference an enum declaration, an invalid type is - * returned. - */ -CINDEX_LINKAGE CXType clang_getEnumDeclIntegerType(CXCursor C); - -/** - * \brief Retrieve the integer value of an enum constant declaration as a signed - * long long. - * - * If the cursor does not reference an enum constant declaration, LLONG_MIN is returned. - * Since this is also potentially a valid constant value, the kind of the cursor - * must be verified before calling this function. - */ -CINDEX_LINKAGE long long clang_getEnumConstantDeclValue(CXCursor C); - -/** - * \brief Retrieve the integer value of an enum constant declaration as an unsigned - * long long. - * - * If the cursor does not reference an enum constant declaration, ULLONG_MAX is returned. - * Since this is also potentially a valid constant value, the kind of the cursor - * must be verified before calling this function. - */ -CINDEX_LINKAGE unsigned long long clang_getEnumConstantDeclUnsignedValue(CXCursor C); - -/** - * \brief Retrieve the bit width of a bit field declaration as an integer. - * - * If a cursor that is not a bit field declaration is passed in, -1 is returned. - */ -CINDEX_LINKAGE int clang_getFieldDeclBitWidth(CXCursor C); - -/** - * \brief Retrieve the number of non-variadic arguments associated with a given - * cursor. - * - * The number of arguments can be determined for calls as well as for - * declarations of functions or methods. For other cursors -1 is returned. - */ -CINDEX_LINKAGE int clang_Cursor_getNumArguments(CXCursor C); - -/** - * \brief Retrieve the argument cursor of a function or method. - * - * The argument cursor can be determined for calls as well as for declarations - * of functions or methods. For other cursors and for invalid indices, an - * invalid cursor is returned. - */ -CINDEX_LINKAGE CXCursor clang_Cursor_getArgument(CXCursor C, unsigned i); - -/** - * \brief Describes the kind of a template argument. - * - * See the definition of llvm::clang::TemplateArgument::ArgKind for full - * element descriptions. - */ -enum CXTemplateArgumentKind { - CXTemplateArgumentKind_Null, - CXTemplateArgumentKind_Type, - CXTemplateArgumentKind_Declaration, - CXTemplateArgumentKind_NullPtr, - CXTemplateArgumentKind_Integral, - CXTemplateArgumentKind_Template, - CXTemplateArgumentKind_TemplateExpansion, - CXTemplateArgumentKind_Expression, - CXTemplateArgumentKind_Pack, - /* Indicates an error case, preventing the kind from being deduced. */ - CXTemplateArgumentKind_Invalid -}; - -/** - *\brief Returns the number of template args of a function decl representing a - * template specialization. - * - * If the argument cursor cannot be converted into a template function - * declaration, -1 is returned. - * - * For example, for the following declaration and specialization: - * template - * void foo() { ... } - * - * template <> - * void foo(); - * - * The value 3 would be returned from this call. - */ -CINDEX_LINKAGE int clang_Cursor_getNumTemplateArguments(CXCursor C); - -/** - * \brief Retrieve the kind of the I'th template argument of the CXCursor C. - * - * If the argument CXCursor does not represent a FunctionDecl, an invalid - * template argument kind is returned. - * - * For example, for the following declaration and specialization: - * template - * void foo() { ... } - * - * template <> - * void foo(); - * - * For I = 0, 1, and 2, Type, Integral, and Integral will be returned, - * respectively. - */ -CINDEX_LINKAGE enum CXTemplateArgumentKind clang_Cursor_getTemplateArgumentKind( - CXCursor C, unsigned I); - -/** - * \brief Retrieve a CXType representing the type of a TemplateArgument of a - * function decl representing a template specialization. - * - * If the argument CXCursor does not represent a FunctionDecl whose I'th - * template argument has a kind of CXTemplateArgKind_Integral, an invalid type - * is returned. - * - * For example, for the following declaration and specialization: - * template - * void foo() { ... } - * - * template <> - * void foo(); - * - * If called with I = 0, "float", will be returned. - * Invalid types will be returned for I == 1 or 2. - */ -CINDEX_LINKAGE CXType clang_Cursor_getTemplateArgumentType(CXCursor C, - unsigned I); - -/** - * \brief Retrieve the value of an Integral TemplateArgument (of a function - * decl representing a template specialization) as a signed long long. - * - * It is undefined to call this function on a CXCursor that does not represent a - * FunctionDecl or whose I'th template argument is not an integral value. - * - * For example, for the following declaration and specialization: - * template - * void foo() { ... } - * - * template <> - * void foo(); - * - * If called with I = 1 or 2, -7 or true will be returned, respectively. - * For I == 0, this function's behavior is undefined. - */ -CINDEX_LINKAGE long long clang_Cursor_getTemplateArgumentValue(CXCursor C, - unsigned I); - -/** - * \brief Retrieve the value of an Integral TemplateArgument (of a function - * decl representing a template specialization) as an unsigned long long. - * - * It is undefined to call this function on a CXCursor that does not represent a - * FunctionDecl or whose I'th template argument is not an integral value. - * - * For example, for the following declaration and specialization: - * template - * void foo() { ... } - * - * template <> - * void foo(); - * - * If called with I = 1 or 2, 2147483649 or true will be returned, respectively. - * For I == 0, this function's behavior is undefined. - */ -CINDEX_LINKAGE unsigned long long clang_Cursor_getTemplateArgumentUnsignedValue( - CXCursor C, unsigned I); - -/** - * \brief Determine whether two CXTypes represent the same type. - * - * \returns non-zero if the CXTypes represent the same type and - * zero otherwise. - */ -CINDEX_LINKAGE unsigned clang_equalTypes(CXType A, CXType B); - -/** - * \brief Return the canonical type for a CXType. - * - * Clang's type system explicitly models typedefs and all the ways - * a specific type can be represented. The canonical type is the underlying - * type with all the "sugar" removed. For example, if 'T' is a typedef - * for 'int', the canonical type for 'T' would be 'int'. - */ -CINDEX_LINKAGE CXType clang_getCanonicalType(CXType T); - -/** - * \brief Determine whether a CXType has the "const" qualifier set, - * without looking through typedefs that may have added "const" at a - * different level. - */ -CINDEX_LINKAGE unsigned clang_isConstQualifiedType(CXType T); - -/** - * \brief Determine whether a CXType has the "volatile" qualifier set, - * without looking through typedefs that may have added "volatile" at - * a different level. - */ -CINDEX_LINKAGE unsigned clang_isVolatileQualifiedType(CXType T); - -/** - * \brief Determine whether a CXType has the "restrict" qualifier set, - * without looking through typedefs that may have added "restrict" at a - * different level. - */ -CINDEX_LINKAGE unsigned clang_isRestrictQualifiedType(CXType T); - -/** - * \brief For pointer types, returns the type of the pointee. - */ -CINDEX_LINKAGE CXType clang_getPointeeType(CXType T); - -/** - * \brief Return the cursor for the declaration of the given type. - */ -CINDEX_LINKAGE CXCursor clang_getTypeDeclaration(CXType T); - -/** - * Returns the Objective-C type encoding for the specified declaration. - */ -CINDEX_LINKAGE CXString clang_getDeclObjCTypeEncoding(CXCursor C); - -/** - * \brief Retrieve the spelling of a given CXTypeKind. - */ -CINDEX_LINKAGE CXString clang_getTypeKindSpelling(enum CXTypeKind K); - -/** - * \brief Retrieve the calling convention associated with a function type. - * - * If a non-function type is passed in, CXCallingConv_Invalid is returned. - */ -CINDEX_LINKAGE enum CXCallingConv clang_getFunctionTypeCallingConv(CXType T); - -/** - * \brief Retrieve the return type associated with a function type. - * - * If a non-function type is passed in, an invalid type is returned. - */ -CINDEX_LINKAGE CXType clang_getResultType(CXType T); - -/** - * \brief Retrieve the number of non-variadic parameters associated with a - * function type. - * - * If a non-function type is passed in, -1 is returned. - */ -CINDEX_LINKAGE int clang_getNumArgTypes(CXType T); - -/** - * \brief Retrieve the type of a parameter of a function type. - * - * If a non-function type is passed in or the function does not have enough - * parameters, an invalid type is returned. - */ -CINDEX_LINKAGE CXType clang_getArgType(CXType T, unsigned i); - -/** - * \brief Return 1 if the CXType is a variadic function type, and 0 otherwise. - */ -CINDEX_LINKAGE unsigned clang_isFunctionTypeVariadic(CXType T); - -/** - * \brief Retrieve the return type associated with a given cursor. - * - * This only returns a valid type if the cursor refers to a function or method. - */ -CINDEX_LINKAGE CXType clang_getCursorResultType(CXCursor C); - -/** - * \brief Return 1 if the CXType is a POD (plain old data) type, and 0 - * otherwise. - */ -CINDEX_LINKAGE unsigned clang_isPODType(CXType T); - -/** - * \brief Return the element type of an array, complex, or vector type. - * - * If a type is passed in that is not an array, complex, or vector type, - * an invalid type is returned. - */ -CINDEX_LINKAGE CXType clang_getElementType(CXType T); - -/** - * \brief Return the number of elements of an array or vector type. - * - * If a type is passed in that is not an array or vector type, - * -1 is returned. - */ -CINDEX_LINKAGE long long clang_getNumElements(CXType T); - -/** - * \brief Return the element type of an array type. - * - * If a non-array type is passed in, an invalid type is returned. - */ -CINDEX_LINKAGE CXType clang_getArrayElementType(CXType T); - -/** - * \brief Return the array size of a constant array. - * - * If a non-array type is passed in, -1 is returned. - */ -CINDEX_LINKAGE long long clang_getArraySize(CXType T); - -/** - * \brief List the possible error codes for \c clang_Type_getSizeOf, - * \c clang_Type_getAlignOf, \c clang_Type_getOffsetOf and - * \c clang_Cursor_getOffsetOf. - * - * A value of this enumeration type can be returned if the target type is not - * a valid argument to sizeof, alignof or offsetof. - */ -enum CXTypeLayoutError { - /** - * \brief Type is of kind CXType_Invalid. - */ - CXTypeLayoutError_Invalid = -1, - /** - * \brief The type is an incomplete Type. - */ - CXTypeLayoutError_Incomplete = -2, - /** - * \brief The type is a dependent Type. - */ - CXTypeLayoutError_Dependent = -3, - /** - * \brief The type is not a constant size type. - */ - CXTypeLayoutError_NotConstantSize = -4, - /** - * \brief The Field name is not valid for this record. - */ - CXTypeLayoutError_InvalidFieldName = -5 -}; - -/** - * \brief Return the alignment of a type in bytes as per C++[expr.alignof] - * standard. - * - * If the type declaration is invalid, CXTypeLayoutError_Invalid is returned. - * If the type declaration is an incomplete type, CXTypeLayoutError_Incomplete - * is returned. - * If the type declaration is a dependent type, CXTypeLayoutError_Dependent is - * returned. - * If the type declaration is not a constant size type, - * CXTypeLayoutError_NotConstantSize is returned. - */ -CINDEX_LINKAGE long long clang_Type_getAlignOf(CXType T); - -/** - * \brief Return the class type of an member pointer type. - * - * If a non-member-pointer type is passed in, an invalid type is returned. - */ -CINDEX_LINKAGE CXType clang_Type_getClassType(CXType T); - -/** - * \brief Return the size of a type in bytes as per C++[expr.sizeof] standard. - * - * If the type declaration is invalid, CXTypeLayoutError_Invalid is returned. - * If the type declaration is an incomplete type, CXTypeLayoutError_Incomplete - * is returned. - * If the type declaration is a dependent type, CXTypeLayoutError_Dependent is - * returned. - */ -CINDEX_LINKAGE long long clang_Type_getSizeOf(CXType T); - -/** - * \brief Return the offset of a field named S in a record of type T in bits - * as it would be returned by __offsetof__ as per C++11[18.2p4] - * - * If the cursor is not a record field declaration, CXTypeLayoutError_Invalid - * is returned. - * If the field's type declaration is an incomplete type, - * CXTypeLayoutError_Incomplete is returned. - * If the field's type declaration is a dependent type, - * CXTypeLayoutError_Dependent is returned. - * If the field's name S is not found, - * CXTypeLayoutError_InvalidFieldName is returned. - */ -CINDEX_LINKAGE long long clang_Type_getOffsetOf(CXType T, const char *S); - -/** - * \brief Return the offset of the field represented by the Cursor. - * - * If the cursor is not a field declaration, -1 is returned. - * If the cursor semantic parent is not a record field declaration, - * CXTypeLayoutError_Invalid is returned. - * If the field's type declaration is an incomplete type, - * CXTypeLayoutError_Incomplete is returned. - * If the field's type declaration is a dependent type, - * CXTypeLayoutError_Dependent is returned. - * If the field's name S is not found, - * CXTypeLayoutError_InvalidFieldName is returned. - */ -CINDEX_LINKAGE long long clang_Cursor_getOffsetOfField(CXCursor C); - -/** - * \brief Determine whether the given cursor represents an anonymous record - * declaration. - */ -CINDEX_LINKAGE unsigned clang_Cursor_isAnonymous(CXCursor C); - - -enum CXRefQualifierKind { - /** \brief No ref-qualifier was provided. */ - CXRefQualifier_None = 0, - /** \brief An lvalue ref-qualifier was provided (\c &). */ - CXRefQualifier_LValue, - /** \brief An rvalue ref-qualifier was provided (\c &&). */ - CXRefQualifier_RValue -}; - -/** - * \brief Returns the number of template arguments for given class template - * specialization, or -1 if type \c T is not a class template specialization. - * - * Variadic argument packs count as only one argument, and can not be inspected - * further. - */ -CINDEX_LINKAGE int clang_Type_getNumTemplateArguments(CXType T); - -/** - * \brief Returns the type template argument of a template class specialization - * at given index. - * - * This function only returns template type arguments and does not handle - * template template arguments or variadic packs. - */ -CINDEX_LINKAGE CXType clang_Type_getTemplateArgumentAsType(CXType T, unsigned i); - -/** - * \brief Retrieve the ref-qualifier kind of a function or method. - * - * The ref-qualifier is returned for C++ functions or methods. For other types - * or non-C++ declarations, CXRefQualifier_None is returned. - */ -CINDEX_LINKAGE enum CXRefQualifierKind clang_Type_getCXXRefQualifier(CXType T); - -/** - * \brief Returns non-zero if the cursor specifies a Record member that is a - * bitfield. - */ -CINDEX_LINKAGE unsigned clang_Cursor_isBitField(CXCursor C); - -/** - * \brief Returns 1 if the base class specified by the cursor with kind - * CX_CXXBaseSpecifier is virtual. - */ -CINDEX_LINKAGE unsigned clang_isVirtualBase(CXCursor); - -/** - * \brief Represents the C++ access control level to a base class for a - * cursor with kind CX_CXXBaseSpecifier. - */ -enum CX_CXXAccessSpecifier { - CX_CXXInvalidAccessSpecifier, - CX_CXXPublic, - CX_CXXProtected, - CX_CXXPrivate -}; - -/** - * \brief Returns the access control level for the referenced object. - * - * If the cursor refers to a C++ declaration, its access control level within its - * parent scope is returned. Otherwise, if the cursor refers to a base specifier or - * access specifier, the specifier itself is returned. - */ -CINDEX_LINKAGE enum CX_CXXAccessSpecifier clang_getCXXAccessSpecifier(CXCursor); - -/** - * \brief Represents the storage classes as declared in the source. CX_SC_Invalid - * was added for the case that the passed cursor in not a declaration. - */ -enum CX_StorageClass { - CX_SC_Invalid, - CX_SC_None, - CX_SC_Extern, - CX_SC_Static, - CX_SC_PrivateExtern, - CX_SC_OpenCLWorkGroupLocal, - CX_SC_Auto, - CX_SC_Register -}; - -/** - * \brief Returns the storage class for a function or variable declaration. - * - * If the passed in Cursor is not a function or variable declaration, - * CX_SC_Invalid is returned else the storage class. - */ -CINDEX_LINKAGE enum CX_StorageClass clang_Cursor_getStorageClass(CXCursor); - -/** - * \brief Determine the number of overloaded declarations referenced by a - * \c CXCursor_OverloadedDeclRef cursor. - * - * \param cursor The cursor whose overloaded declarations are being queried. - * - * \returns The number of overloaded declarations referenced by \c cursor. If it - * is not a \c CXCursor_OverloadedDeclRef cursor, returns 0. - */ -CINDEX_LINKAGE unsigned clang_getNumOverloadedDecls(CXCursor cursor); - -/** - * \brief Retrieve a cursor for one of the overloaded declarations referenced - * by a \c CXCursor_OverloadedDeclRef cursor. - * - * \param cursor The cursor whose overloaded declarations are being queried. - * - * \param index The zero-based index into the set of overloaded declarations in - * the cursor. - * - * \returns A cursor representing the declaration referenced by the given - * \c cursor at the specified \c index. If the cursor does not have an - * associated set of overloaded declarations, or if the index is out of bounds, - * returns \c clang_getNullCursor(); - */ -CINDEX_LINKAGE CXCursor clang_getOverloadedDecl(CXCursor cursor, - unsigned index); - -/** - * @} - */ - -/** - * \defgroup CINDEX_ATTRIBUTES Information for attributes - * - * @{ - */ - - -/** - * \brief For cursors representing an iboutletcollection attribute, - * this function returns the collection element type. - * - */ -CINDEX_LINKAGE CXType clang_getIBOutletCollectionType(CXCursor); - -/** - * @} - */ - -/** - * \defgroup CINDEX_CURSOR_TRAVERSAL Traversing the AST with cursors - * - * These routines provide the ability to traverse the abstract syntax tree - * using cursors. - * - * @{ - */ - -/** - * \brief Describes how the traversal of the children of a particular - * cursor should proceed after visiting a particular child cursor. - * - * A value of this enumeration type should be returned by each - * \c CXCursorVisitor to indicate how clang_visitChildren() proceed. - */ -enum CXChildVisitResult { - /** - * \brief Terminates the cursor traversal. - */ - CXChildVisit_Break, - /** - * \brief Continues the cursor traversal with the next sibling of - * the cursor just visited, without visiting its children. - */ - CXChildVisit_Continue, - /** - * \brief Recursively traverse the children of this cursor, using - * the same visitor and client data. - */ - CXChildVisit_Recurse -}; - -/** - * \brief Visitor invoked for each cursor found by a traversal. - * - * This visitor function will be invoked for each cursor found by - * clang_visitCursorChildren(). Its first argument is the cursor being - * visited, its second argument is the parent visitor for that cursor, - * and its third argument is the client data provided to - * clang_visitCursorChildren(). - * - * The visitor should return one of the \c CXChildVisitResult values - * to direct clang_visitCursorChildren(). - */ -typedef enum CXChildVisitResult (*CXCursorVisitor)(CXCursor cursor, - CXCursor parent, - CXClientData client_data); - -/** - * \brief Visit the children of a particular cursor. - * - * This function visits all the direct children of the given cursor, - * invoking the given \p visitor function with the cursors of each - * visited child. The traversal may be recursive, if the visitor returns - * \c CXChildVisit_Recurse. The traversal may also be ended prematurely, if - * the visitor returns \c CXChildVisit_Break. - * - * \param parent the cursor whose child may be visited. All kinds of - * cursors can be visited, including invalid cursors (which, by - * definition, have no children). - * - * \param visitor the visitor function that will be invoked for each - * child of \p parent. - * - * \param client_data pointer data supplied by the client, which will - * be passed to the visitor each time it is invoked. - * - * \returns a non-zero value if the traversal was terminated - * prematurely by the visitor returning \c CXChildVisit_Break. - */ -CINDEX_LINKAGE unsigned clang_visitChildren(CXCursor parent, - CXCursorVisitor visitor, - CXClientData client_data); -#ifdef __has_feature -# if __has_feature(blocks) -/** - * \brief Visitor invoked for each cursor found by a traversal. - * - * This visitor block will be invoked for each cursor found by - * clang_visitChildrenWithBlock(). Its first argument is the cursor being - * visited, its second argument is the parent visitor for that cursor. - * - * The visitor should return one of the \c CXChildVisitResult values - * to direct clang_visitChildrenWithBlock(). - */ -typedef enum CXChildVisitResult - (^CXCursorVisitorBlock)(CXCursor cursor, CXCursor parent); - -/** - * Visits the children of a cursor using the specified block. Behaves - * identically to clang_visitChildren() in all other respects. - */ -unsigned clang_visitChildrenWithBlock(CXCursor parent, - CXCursorVisitorBlock block); -# endif -#endif - -/** - * @} - */ - -/** - * \defgroup CINDEX_CURSOR_XREF Cross-referencing in the AST - * - * These routines provide the ability to determine references within and - * across translation units, by providing the names of the entities referenced - * by cursors, follow reference cursors to the declarations they reference, - * and associate declarations with their definitions. - * - * @{ - */ - -/** - * \brief Retrieve a Unified Symbol Resolution (USR) for the entity referenced - * by the given cursor. - * - * A Unified Symbol Resolution (USR) is a string that identifies a particular - * entity (function, class, variable, etc.) within a program. USRs can be - * compared across translation units to determine, e.g., when references in - * one translation refer to an entity defined in another translation unit. - */ -CINDEX_LINKAGE CXString clang_getCursorUSR(CXCursor); - -/** - * \brief Construct a USR for a specified Objective-C class. - */ -CINDEX_LINKAGE CXString clang_constructUSR_ObjCClass(const char *class_name); - -/** - * \brief Construct a USR for a specified Objective-C category. - */ -CINDEX_LINKAGE CXString - clang_constructUSR_ObjCCategory(const char *class_name, - const char *category_name); - -/** - * \brief Construct a USR for a specified Objective-C protocol. - */ -CINDEX_LINKAGE CXString - clang_constructUSR_ObjCProtocol(const char *protocol_name); - - -/** - * \brief Construct a USR for a specified Objective-C instance variable and - * the USR for its containing class. - */ -CINDEX_LINKAGE CXString clang_constructUSR_ObjCIvar(const char *name, - CXString classUSR); - -/** - * \brief Construct a USR for a specified Objective-C method and - * the USR for its containing class. - */ -CINDEX_LINKAGE CXString clang_constructUSR_ObjCMethod(const char *name, - unsigned isInstanceMethod, - CXString classUSR); - -/** - * \brief Construct a USR for a specified Objective-C property and the USR - * for its containing class. - */ -CINDEX_LINKAGE CXString clang_constructUSR_ObjCProperty(const char *property, - CXString classUSR); - -/** - * \brief Retrieve a name for the entity referenced by this cursor. - */ -CINDEX_LINKAGE CXString clang_getCursorSpelling(CXCursor); - -/** - * \brief Retrieve a range for a piece that forms the cursors spelling name. - * Most of the times there is only one range for the complete spelling but for - * Objective-C methods and Objective-C message expressions, there are multiple - * pieces for each selector identifier. - * - * \param pieceIndex the index of the spelling name piece. If this is greater - * than the actual number of pieces, it will return a NULL (invalid) range. - * - * \param options Reserved. - */ -CINDEX_LINKAGE CXSourceRange clang_Cursor_getSpellingNameRange(CXCursor, - unsigned pieceIndex, - unsigned options); - -/** - * \brief Retrieve the display name for the entity referenced by this cursor. - * - * The display name contains extra information that helps identify the cursor, - * such as the parameters of a function or template or the arguments of a - * class template specialization. - */ -CINDEX_LINKAGE CXString clang_getCursorDisplayName(CXCursor); - -/** \brief For a cursor that is a reference, retrieve a cursor representing the - * entity that it references. - * - * Reference cursors refer to other entities in the AST. For example, an - * Objective-C superclass reference cursor refers to an Objective-C class. - * This function produces the cursor for the Objective-C class from the - * cursor for the superclass reference. If the input cursor is a declaration or - * definition, it returns that declaration or definition unchanged. - * Otherwise, returns the NULL cursor. - */ -CINDEX_LINKAGE CXCursor clang_getCursorReferenced(CXCursor); - -/** - * \brief For a cursor that is either a reference to or a declaration - * of some entity, retrieve a cursor that describes the definition of - * that entity. - * - * Some entities can be declared multiple times within a translation - * unit, but only one of those declarations can also be a - * definition. For example, given: - * - * \code - * int f(int, int); - * int g(int x, int y) { return f(x, y); } - * int f(int a, int b) { return a + b; } - * int f(int, int); - * \endcode - * - * there are three declarations of the function "f", but only the - * second one is a definition. The clang_getCursorDefinition() - * function will take any cursor pointing to a declaration of "f" - * (the first or fourth lines of the example) or a cursor referenced - * that uses "f" (the call to "f' inside "g") and will return a - * declaration cursor pointing to the definition (the second "f" - * declaration). - * - * If given a cursor for which there is no corresponding definition, - * e.g., because there is no definition of that entity within this - * translation unit, returns a NULL cursor. - */ -CINDEX_LINKAGE CXCursor clang_getCursorDefinition(CXCursor); - -/** - * \brief Determine whether the declaration pointed to by this cursor - * is also a definition of that entity. - */ -CINDEX_LINKAGE unsigned clang_isCursorDefinition(CXCursor); - -/** - * \brief Retrieve the canonical cursor corresponding to the given cursor. - * - * In the C family of languages, many kinds of entities can be declared several - * times within a single translation unit. For example, a structure type can - * be forward-declared (possibly multiple times) and later defined: - * - * \code - * struct X; - * struct X; - * struct X { - * int member; - * }; - * \endcode - * - * The declarations and the definition of \c X are represented by three - * different cursors, all of which are declarations of the same underlying - * entity. One of these cursor is considered the "canonical" cursor, which - * is effectively the representative for the underlying entity. One can - * determine if two cursors are declarations of the same underlying entity by - * comparing their canonical cursors. - * - * \returns The canonical cursor for the entity referred to by the given cursor. - */ -CINDEX_LINKAGE CXCursor clang_getCanonicalCursor(CXCursor); - - -/** - * \brief If the cursor points to a selector identifier in an Objective-C - * method or message expression, this returns the selector index. - * - * After getting a cursor with #clang_getCursor, this can be called to - * determine if the location points to a selector identifier. - * - * \returns The selector index if the cursor is an Objective-C method or message - * expression and the cursor is pointing to a selector identifier, or -1 - * otherwise. - */ -CINDEX_LINKAGE int clang_Cursor_getObjCSelectorIndex(CXCursor); - -/** - * \brief Given a cursor pointing to a C++ method call or an Objective-C - * message, returns non-zero if the method/message is "dynamic", meaning: - * - * For a C++ method: the call is virtual. - * For an Objective-C message: the receiver is an object instance, not 'super' - * or a specific class. - * - * If the method/message is "static" or the cursor does not point to a - * method/message, it will return zero. - */ -CINDEX_LINKAGE int clang_Cursor_isDynamicCall(CXCursor C); - -/** - * \brief Given a cursor pointing to an Objective-C message, returns the CXType - * of the receiver. - */ -CINDEX_LINKAGE CXType clang_Cursor_getReceiverType(CXCursor C); - -/** - * \brief Property attributes for a \c CXCursor_ObjCPropertyDecl. - */ -typedef enum { - CXObjCPropertyAttr_noattr = 0x00, - CXObjCPropertyAttr_readonly = 0x01, - CXObjCPropertyAttr_getter = 0x02, - CXObjCPropertyAttr_assign = 0x04, - CXObjCPropertyAttr_readwrite = 0x08, - CXObjCPropertyAttr_retain = 0x10, - CXObjCPropertyAttr_copy = 0x20, - CXObjCPropertyAttr_nonatomic = 0x40, - CXObjCPropertyAttr_setter = 0x80, - CXObjCPropertyAttr_atomic = 0x100, - CXObjCPropertyAttr_weak = 0x200, - CXObjCPropertyAttr_strong = 0x400, - CXObjCPropertyAttr_unsafe_unretained = 0x800 -} CXObjCPropertyAttrKind; - -/** - * \brief Given a cursor that represents a property declaration, return the - * associated property attributes. The bits are formed from - * \c CXObjCPropertyAttrKind. - * - * \param reserved Reserved for future use, pass 0. - */ -CINDEX_LINKAGE unsigned clang_Cursor_getObjCPropertyAttributes(CXCursor C, - unsigned reserved); - -/** - * \brief 'Qualifiers' written next to the return and parameter types in - * Objective-C method declarations. - */ -typedef enum { - CXObjCDeclQualifier_None = 0x0, - CXObjCDeclQualifier_In = 0x1, - CXObjCDeclQualifier_Inout = 0x2, - CXObjCDeclQualifier_Out = 0x4, - CXObjCDeclQualifier_Bycopy = 0x8, - CXObjCDeclQualifier_Byref = 0x10, - CXObjCDeclQualifier_Oneway = 0x20 -} CXObjCDeclQualifierKind; - -/** - * \brief Given a cursor that represents an Objective-C method or parameter - * declaration, return the associated Objective-C qualifiers for the return - * type or the parameter respectively. The bits are formed from - * CXObjCDeclQualifierKind. - */ -CINDEX_LINKAGE unsigned clang_Cursor_getObjCDeclQualifiers(CXCursor C); - -/** - * \brief Given a cursor that represents an Objective-C method or property - * declaration, return non-zero if the declaration was affected by "@optional". - * Returns zero if the cursor is not such a declaration or it is "@required". - */ -CINDEX_LINKAGE unsigned clang_Cursor_isObjCOptional(CXCursor C); - -/** - * \brief Returns non-zero if the given cursor is a variadic function or method. - */ -CINDEX_LINKAGE unsigned clang_Cursor_isVariadic(CXCursor C); - -/** - * \brief Given a cursor that represents a declaration, return the associated - * comment's source range. The range may include multiple consecutive comments - * with whitespace in between. - */ -CINDEX_LINKAGE CXSourceRange clang_Cursor_getCommentRange(CXCursor C); - -/** - * \brief Given a cursor that represents a declaration, return the associated - * comment text, including comment markers. - */ -CINDEX_LINKAGE CXString clang_Cursor_getRawCommentText(CXCursor C); - -/** - * \brief Given a cursor that represents a documentable entity (e.g., - * declaration), return the associated \\brief paragraph; otherwise return the - * first paragraph. - */ -CINDEX_LINKAGE CXString clang_Cursor_getBriefCommentText(CXCursor C); - -/** - * @} - */ - -/** \defgroup CINDEX_MANGLE Name Mangling API Functions - * - * @{ - */ - -/** - * \brief Retrieve the CXString representing the mangled name of the cursor. - */ -CINDEX_LINKAGE CXString clang_Cursor_getMangling(CXCursor); - -/** - * @} - */ - -/** - * \defgroup CINDEX_MODULE Module introspection - * - * The functions in this group provide access to information about modules. - * - * @{ - */ - -typedef void *CXModule; - -/** - * \brief Given a CXCursor_ModuleImportDecl cursor, return the associated module. - */ -CINDEX_LINKAGE CXModule clang_Cursor_getModule(CXCursor C); - -/** - * \brief Given a CXFile header file, return the module that contains it, if one - * exists. - */ -CINDEX_LINKAGE CXModule clang_getModuleForFile(CXTranslationUnit, CXFile); - -/** - * \param Module a module object. - * - * \returns the module file where the provided module object came from. - */ -CINDEX_LINKAGE CXFile clang_Module_getASTFile(CXModule Module); - -/** - * \param Module a module object. - * - * \returns the parent of a sub-module or NULL if the given module is top-level, - * e.g. for 'std.vector' it will return the 'std' module. - */ -CINDEX_LINKAGE CXModule clang_Module_getParent(CXModule Module); - -/** - * \param Module a module object. - * - * \returns the name of the module, e.g. for the 'std.vector' sub-module it - * will return "vector". - */ -CINDEX_LINKAGE CXString clang_Module_getName(CXModule Module); - -/** - * \param Module a module object. - * - * \returns the full name of the module, e.g. "std.vector". - */ -CINDEX_LINKAGE CXString clang_Module_getFullName(CXModule Module); - -/** - * \param Module a module object. - * - * \returns non-zero if the module is a system one. - */ -CINDEX_LINKAGE int clang_Module_isSystem(CXModule Module); - -/** - * \param Module a module object. - * - * \returns the number of top level headers associated with this module. - */ -CINDEX_LINKAGE unsigned clang_Module_getNumTopLevelHeaders(CXTranslationUnit, - CXModule Module); - -/** - * \param Module a module object. - * - * \param Index top level header index (zero-based). - * - * \returns the specified top level header associated with the module. - */ -CINDEX_LINKAGE -CXFile clang_Module_getTopLevelHeader(CXTranslationUnit, - CXModule Module, unsigned Index); - -/** - * @} - */ - -/** - * \defgroup CINDEX_CPP C++ AST introspection - * - * The routines in this group provide access information in the ASTs specific - * to C++ language features. - * - * @{ - */ - -/** - * \brief Determine if a C++ member function or member function template is - * pure virtual. - */ -CINDEX_LINKAGE unsigned clang_CXXMethod_isPureVirtual(CXCursor C); - -/** - * \brief Determine if a C++ member function or member function template is - * declared 'static'. - */ -CINDEX_LINKAGE unsigned clang_CXXMethod_isStatic(CXCursor C); - -/** - * \brief Determine if a C++ member function or member function template is - * explicitly declared 'virtual' or if it overrides a virtual method from - * one of the base classes. - */ -CINDEX_LINKAGE unsigned clang_CXXMethod_isVirtual(CXCursor C); - -/** - * \brief Determine if a C++ member function or member function template is - * declared 'const'. - */ -CINDEX_LINKAGE unsigned clang_CXXMethod_isConst(CXCursor C); - -/** - * \brief Given a cursor that represents a template, determine - * the cursor kind of the specializations would be generated by instantiating - * the template. - * - * This routine can be used to determine what flavor of function template, - * class template, or class template partial specialization is stored in the - * cursor. For example, it can describe whether a class template cursor is - * declared with "struct", "class" or "union". - * - * \param C The cursor to query. This cursor should represent a template - * declaration. - * - * \returns The cursor kind of the specializations that would be generated - * by instantiating the template \p C. If \p C is not a template, returns - * \c CXCursor_NoDeclFound. - */ -CINDEX_LINKAGE enum CXCursorKind clang_getTemplateCursorKind(CXCursor C); - -/** - * \brief Given a cursor that may represent a specialization or instantiation - * of a template, retrieve the cursor that represents the template that it - * specializes or from which it was instantiated. - * - * This routine determines the template involved both for explicit - * specializations of templates and for implicit instantiations of the template, - * both of which are referred to as "specializations". For a class template - * specialization (e.g., \c std::vector), this routine will return - * either the primary template (\c std::vector) or, if the specialization was - * instantiated from a class template partial specialization, the class template - * partial specialization. For a class template partial specialization and a - * function template specialization (including instantiations), this - * this routine will return the specialized template. - * - * For members of a class template (e.g., member functions, member classes, or - * static data members), returns the specialized or instantiated member. - * Although not strictly "templates" in the C++ language, members of class - * templates have the same notions of specializations and instantiations that - * templates do, so this routine treats them similarly. - * - * \param C A cursor that may be a specialization of a template or a member - * of a template. - * - * \returns If the given cursor is a specialization or instantiation of a - * template or a member thereof, the template or member that it specializes or - * from which it was instantiated. Otherwise, returns a NULL cursor. - */ -CINDEX_LINKAGE CXCursor clang_getSpecializedCursorTemplate(CXCursor C); - -/** - * \brief Given a cursor that references something else, return the source range - * covering that reference. - * - * \param C A cursor pointing to a member reference, a declaration reference, or - * an operator call. - * \param NameFlags A bitset with three independent flags: - * CXNameRange_WantQualifier, CXNameRange_WantTemplateArgs, and - * CXNameRange_WantSinglePiece. - * \param PieceIndex For contiguous names or when passing the flag - * CXNameRange_WantSinglePiece, only one piece with index 0 is - * available. When the CXNameRange_WantSinglePiece flag is not passed for a - * non-contiguous names, this index can be used to retrieve the individual - * pieces of the name. See also CXNameRange_WantSinglePiece. - * - * \returns The piece of the name pointed to by the given cursor. If there is no - * name, or if the PieceIndex is out-of-range, a null-cursor will be returned. - */ -CINDEX_LINKAGE CXSourceRange clang_getCursorReferenceNameRange(CXCursor C, - unsigned NameFlags, - unsigned PieceIndex); - -enum CXNameRefFlags { - /** - * \brief Include the nested-name-specifier, e.g. Foo:: in x.Foo::y, in the - * range. - */ - CXNameRange_WantQualifier = 0x1, - - /** - * \brief Include the explicit template arguments, e.g. \ in x.f, - * in the range. - */ - CXNameRange_WantTemplateArgs = 0x2, - - /** - * \brief If the name is non-contiguous, return the full spanning range. - * - * Non-contiguous names occur in Objective-C when a selector with two or more - * parameters is used, or in C++ when using an operator: - * \code - * [object doSomething:here withValue:there]; // Objective-C - * return some_vector[1]; // C++ - * \endcode - */ - CXNameRange_WantSinglePiece = 0x4 -}; - -/** - * @} - */ - -/** - * \defgroup CINDEX_LEX Token extraction and manipulation - * - * The routines in this group provide access to the tokens within a - * translation unit, along with a semantic mapping of those tokens to - * their corresponding cursors. - * - * @{ - */ - -/** - * \brief Describes a kind of token. - */ -typedef enum CXTokenKind { - /** - * \brief A token that contains some kind of punctuation. - */ - CXToken_Punctuation, - - /** - * \brief A language keyword. - */ - CXToken_Keyword, - - /** - * \brief An identifier (that is not a keyword). - */ - CXToken_Identifier, - - /** - * \brief A numeric, string, or character literal. - */ - CXToken_Literal, - - /** - * \brief A comment. - */ - CXToken_Comment -} CXTokenKind; - -/** - * \brief Describes a single preprocessing token. - */ -typedef struct { - unsigned int_data[4]; - void *ptr_data; -} CXToken; - -/** - * \brief Determine the kind of the given token. - */ -CINDEX_LINKAGE CXTokenKind clang_getTokenKind(CXToken); - -/** - * \brief Determine the spelling of the given token. - * - * The spelling of a token is the textual representation of that token, e.g., - * the text of an identifier or keyword. - */ -CINDEX_LINKAGE CXString clang_getTokenSpelling(CXTranslationUnit, CXToken); - -/** - * \brief Retrieve the source location of the given token. - */ -CINDEX_LINKAGE CXSourceLocation clang_getTokenLocation(CXTranslationUnit, - CXToken); - -/** - * \brief Retrieve a source range that covers the given token. - */ -CINDEX_LINKAGE CXSourceRange clang_getTokenExtent(CXTranslationUnit, CXToken); - -/** - * \brief Tokenize the source code described by the given range into raw - * lexical tokens. - * - * \param TU the translation unit whose text is being tokenized. - * - * \param Range the source range in which text should be tokenized. All of the - * tokens produced by tokenization will fall within this source range, - * - * \param Tokens this pointer will be set to point to the array of tokens - * that occur within the given source range. The returned pointer must be - * freed with clang_disposeTokens() before the translation unit is destroyed. - * - * \param NumTokens will be set to the number of tokens in the \c *Tokens - * array. - * - */ -CINDEX_LINKAGE void clang_tokenize(CXTranslationUnit TU, CXSourceRange Range, - CXToken **Tokens, unsigned *NumTokens); - -/** - * \brief Annotate the given set of tokens by providing cursors for each token - * that can be mapped to a specific entity within the abstract syntax tree. - * - * This token-annotation routine is equivalent to invoking - * clang_getCursor() for the source locations of each of the - * tokens. The cursors provided are filtered, so that only those - * cursors that have a direct correspondence to the token are - * accepted. For example, given a function call \c f(x), - * clang_getCursor() would provide the following cursors: - * - * * when the cursor is over the 'f', a DeclRefExpr cursor referring to 'f'. - * * when the cursor is over the '(' or the ')', a CallExpr referring to 'f'. - * * when the cursor is over the 'x', a DeclRefExpr cursor referring to 'x'. - * - * Only the first and last of these cursors will occur within the - * annotate, since the tokens "f" and "x' directly refer to a function - * and a variable, respectively, but the parentheses are just a small - * part of the full syntax of the function call expression, which is - * not provided as an annotation. - * - * \param TU the translation unit that owns the given tokens. - * - * \param Tokens the set of tokens to annotate. - * - * \param NumTokens the number of tokens in \p Tokens. - * - * \param Cursors an array of \p NumTokens cursors, whose contents will be - * replaced with the cursors corresponding to each token. - */ -CINDEX_LINKAGE void clang_annotateTokens(CXTranslationUnit TU, - CXToken *Tokens, unsigned NumTokens, - CXCursor *Cursors); - -/** - * \brief Free the given set of tokens. - */ -CINDEX_LINKAGE void clang_disposeTokens(CXTranslationUnit TU, - CXToken *Tokens, unsigned NumTokens); - -/** - * @} - */ - -/** - * \defgroup CINDEX_DEBUG Debugging facilities - * - * These routines are used for testing and debugging, only, and should not - * be relied upon. - * - * @{ - */ - -/* for debug/testing */ -CINDEX_LINKAGE CXString clang_getCursorKindSpelling(enum CXCursorKind Kind); -CINDEX_LINKAGE void clang_getDefinitionSpellingAndExtent(CXCursor, - const char **startBuf, - const char **endBuf, - unsigned *startLine, - unsigned *startColumn, - unsigned *endLine, - unsigned *endColumn); -CINDEX_LINKAGE void clang_enableStackTraces(void); -CINDEX_LINKAGE void clang_executeOnThread(void (*fn)(void*), void *user_data, - unsigned stack_size); - -/** - * @} - */ - -/** - * \defgroup CINDEX_CODE_COMPLET Code completion - * - * Code completion involves taking an (incomplete) source file, along with - * knowledge of where the user is actively editing that file, and suggesting - * syntactically- and semantically-valid constructs that the user might want to - * use at that particular point in the source code. These data structures and - * routines provide support for code completion. - * - * @{ - */ - -/** - * \brief A semantic string that describes a code-completion result. - * - * A semantic string that describes the formatting of a code-completion - * result as a single "template" of text that should be inserted into the - * source buffer when a particular code-completion result is selected. - * Each semantic string is made up of some number of "chunks", each of which - * contains some text along with a description of what that text means, e.g., - * the name of the entity being referenced, whether the text chunk is part of - * the template, or whether it is a "placeholder" that the user should replace - * with actual code,of a specific kind. See \c CXCompletionChunkKind for a - * description of the different kinds of chunks. - */ -typedef void *CXCompletionString; - -/** - * \brief A single result of code completion. - */ -typedef struct { - /** - * \brief The kind of entity that this completion refers to. - * - * The cursor kind will be a macro, keyword, or a declaration (one of the - * *Decl cursor kinds), describing the entity that the completion is - * referring to. - * - * \todo In the future, we would like to provide a full cursor, to allow - * the client to extract additional information from declaration. - */ - enum CXCursorKind CursorKind; - - /** - * \brief The code-completion string that describes how to insert this - * code-completion result into the editing buffer. - */ - CXCompletionString CompletionString; -} CXCompletionResult; - -/** - * \brief Describes a single piece of text within a code-completion string. - * - * Each "chunk" within a code-completion string (\c CXCompletionString) is - * either a piece of text with a specific "kind" that describes how that text - * should be interpreted by the client or is another completion string. - */ -enum CXCompletionChunkKind { - /** - * \brief A code-completion string that describes "optional" text that - * could be a part of the template (but is not required). - * - * The Optional chunk is the only kind of chunk that has a code-completion - * string for its representation, which is accessible via - * \c clang_getCompletionChunkCompletionString(). The code-completion string - * describes an additional part of the template that is completely optional. - * For example, optional chunks can be used to describe the placeholders for - * arguments that match up with defaulted function parameters, e.g. given: - * - * \code - * void f(int x, float y = 3.14, double z = 2.71828); - * \endcode - * - * The code-completion string for this function would contain: - * - a TypedText chunk for "f". - * - a LeftParen chunk for "(". - * - a Placeholder chunk for "int x" - * - an Optional chunk containing the remaining defaulted arguments, e.g., - * - a Comma chunk for "," - * - a Placeholder chunk for "float y" - * - an Optional chunk containing the last defaulted argument: - * - a Comma chunk for "," - * - a Placeholder chunk for "double z" - * - a RightParen chunk for ")" - * - * There are many ways to handle Optional chunks. Two simple approaches are: - * - Completely ignore optional chunks, in which case the template for the - * function "f" would only include the first parameter ("int x"). - * - Fully expand all optional chunks, in which case the template for the - * function "f" would have all of the parameters. - */ - CXCompletionChunk_Optional, - /** - * \brief Text that a user would be expected to type to get this - * code-completion result. - * - * There will be exactly one "typed text" chunk in a semantic string, which - * will typically provide the spelling of a keyword or the name of a - * declaration that could be used at the current code point. Clients are - * expected to filter the code-completion results based on the text in this - * chunk. - */ - CXCompletionChunk_TypedText, - /** - * \brief Text that should be inserted as part of a code-completion result. - * - * A "text" chunk represents text that is part of the template to be - * inserted into user code should this particular code-completion result - * be selected. - */ - CXCompletionChunk_Text, - /** - * \brief Placeholder text that should be replaced by the user. - * - * A "placeholder" chunk marks a place where the user should insert text - * into the code-completion template. For example, placeholders might mark - * the function parameters for a function declaration, to indicate that the - * user should provide arguments for each of those parameters. The actual - * text in a placeholder is a suggestion for the text to display before - * the user replaces the placeholder with real code. - */ - CXCompletionChunk_Placeholder, - /** - * \brief Informative text that should be displayed but never inserted as - * part of the template. - * - * An "informative" chunk contains annotations that can be displayed to - * help the user decide whether a particular code-completion result is the - * right option, but which is not part of the actual template to be inserted - * by code completion. - */ - CXCompletionChunk_Informative, - /** - * \brief Text that describes the current parameter when code-completion is - * referring to function call, message send, or template specialization. - * - * A "current parameter" chunk occurs when code-completion is providing - * information about a parameter corresponding to the argument at the - * code-completion point. For example, given a function - * - * \code - * int add(int x, int y); - * \endcode - * - * and the source code \c add(, where the code-completion point is after the - * "(", the code-completion string will contain a "current parameter" chunk - * for "int x", indicating that the current argument will initialize that - * parameter. After typing further, to \c add(17, (where the code-completion - * point is after the ","), the code-completion string will contain a - * "current paremeter" chunk to "int y". - */ - CXCompletionChunk_CurrentParameter, - /** - * \brief A left parenthesis ('('), used to initiate a function call or - * signal the beginning of a function parameter list. - */ - CXCompletionChunk_LeftParen, - /** - * \brief A right parenthesis (')'), used to finish a function call or - * signal the end of a function parameter list. - */ - CXCompletionChunk_RightParen, - /** - * \brief A left bracket ('['). - */ - CXCompletionChunk_LeftBracket, - /** - * \brief A right bracket (']'). - */ - CXCompletionChunk_RightBracket, - /** - * \brief A left brace ('{'). - */ - CXCompletionChunk_LeftBrace, - /** - * \brief A right brace ('}'). - */ - CXCompletionChunk_RightBrace, - /** - * \brief A left angle bracket ('<'). - */ - CXCompletionChunk_LeftAngle, - /** - * \brief A right angle bracket ('>'). - */ - CXCompletionChunk_RightAngle, - /** - * \brief A comma separator (','). - */ - CXCompletionChunk_Comma, - /** - * \brief Text that specifies the result type of a given result. - * - * This special kind of informative chunk is not meant to be inserted into - * the text buffer. Rather, it is meant to illustrate the type that an - * expression using the given completion string would have. - */ - CXCompletionChunk_ResultType, - /** - * \brief A colon (':'). - */ - CXCompletionChunk_Colon, - /** - * \brief A semicolon (';'). - */ - CXCompletionChunk_SemiColon, - /** - * \brief An '=' sign. - */ - CXCompletionChunk_Equal, - /** - * Horizontal space (' '). - */ - CXCompletionChunk_HorizontalSpace, - /** - * Vertical space ('\n'), after which it is generally a good idea to - * perform indentation. - */ - CXCompletionChunk_VerticalSpace -}; - -/** - * \brief Determine the kind of a particular chunk within a completion string. - * - * \param completion_string the completion string to query. - * - * \param chunk_number the 0-based index of the chunk in the completion string. - * - * \returns the kind of the chunk at the index \c chunk_number. - */ -CINDEX_LINKAGE enum CXCompletionChunkKind -clang_getCompletionChunkKind(CXCompletionString completion_string, - unsigned chunk_number); - -/** - * \brief Retrieve the text associated with a particular chunk within a - * completion string. - * - * \param completion_string the completion string to query. - * - * \param chunk_number the 0-based index of the chunk in the completion string. - * - * \returns the text associated with the chunk at index \c chunk_number. - */ -CINDEX_LINKAGE CXString -clang_getCompletionChunkText(CXCompletionString completion_string, - unsigned chunk_number); - -/** - * \brief Retrieve the completion string associated with a particular chunk - * within a completion string. - * - * \param completion_string the completion string to query. - * - * \param chunk_number the 0-based index of the chunk in the completion string. - * - * \returns the completion string associated with the chunk at index - * \c chunk_number. - */ -CINDEX_LINKAGE CXCompletionString -clang_getCompletionChunkCompletionString(CXCompletionString completion_string, - unsigned chunk_number); - -/** - * \brief Retrieve the number of chunks in the given code-completion string. - */ -CINDEX_LINKAGE unsigned -clang_getNumCompletionChunks(CXCompletionString completion_string); - -/** - * \brief Determine the priority of this code completion. - * - * The priority of a code completion indicates how likely it is that this - * particular completion is the completion that the user will select. The - * priority is selected by various internal heuristics. - * - * \param completion_string The completion string to query. - * - * \returns The priority of this completion string. Smaller values indicate - * higher-priority (more likely) completions. - */ -CINDEX_LINKAGE unsigned -clang_getCompletionPriority(CXCompletionString completion_string); - -/** - * \brief Determine the availability of the entity that this code-completion - * string refers to. - * - * \param completion_string The completion string to query. - * - * \returns The availability of the completion string. - */ -CINDEX_LINKAGE enum CXAvailabilityKind -clang_getCompletionAvailability(CXCompletionString completion_string); - -/** - * \brief Retrieve the number of annotations associated with the given - * completion string. - * - * \param completion_string the completion string to query. - * - * \returns the number of annotations associated with the given completion - * string. - */ -CINDEX_LINKAGE unsigned -clang_getCompletionNumAnnotations(CXCompletionString completion_string); - -/** - * \brief Retrieve the annotation associated with the given completion string. - * - * \param completion_string the completion string to query. - * - * \param annotation_number the 0-based index of the annotation of the - * completion string. - * - * \returns annotation string associated with the completion at index - * \c annotation_number, or a NULL string if that annotation is not available. - */ -CINDEX_LINKAGE CXString -clang_getCompletionAnnotation(CXCompletionString completion_string, - unsigned annotation_number); - -/** - * \brief Retrieve the parent context of the given completion string. - * - * The parent context of a completion string is the semantic parent of - * the declaration (if any) that the code completion represents. For example, - * a code completion for an Objective-C method would have the method's class - * or protocol as its context. - * - * \param completion_string The code completion string whose parent is - * being queried. - * - * \param kind DEPRECATED: always set to CXCursor_NotImplemented if non-NULL. - * - * \returns The name of the completion parent, e.g., "NSObject" if - * the completion string represents a method in the NSObject class. - */ -CINDEX_LINKAGE CXString -clang_getCompletionParent(CXCompletionString completion_string, - enum CXCursorKind *kind); - -/** - * \brief Retrieve the brief documentation comment attached to the declaration - * that corresponds to the given completion string. - */ -CINDEX_LINKAGE CXString -clang_getCompletionBriefComment(CXCompletionString completion_string); - -/** - * \brief Retrieve a completion string for an arbitrary declaration or macro - * definition cursor. - * - * \param cursor The cursor to query. - * - * \returns A non-context-sensitive completion string for declaration and macro - * definition cursors, or NULL for other kinds of cursors. - */ -CINDEX_LINKAGE CXCompletionString -clang_getCursorCompletionString(CXCursor cursor); - -/** - * \brief Contains the results of code-completion. - * - * This data structure contains the results of code completion, as - * produced by \c clang_codeCompleteAt(). Its contents must be freed by - * \c clang_disposeCodeCompleteResults. - */ -typedef struct { - /** - * \brief The code-completion results. - */ - CXCompletionResult *Results; - - /** - * \brief The number of code-completion results stored in the - * \c Results array. - */ - unsigned NumResults; -} CXCodeCompleteResults; - -/** - * \brief Flags that can be passed to \c clang_codeCompleteAt() to - * modify its behavior. - * - * The enumerators in this enumeration can be bitwise-OR'd together to - * provide multiple options to \c clang_codeCompleteAt(). - */ -enum CXCodeComplete_Flags { - /** - * \brief Whether to include macros within the set of code - * completions returned. - */ - CXCodeComplete_IncludeMacros = 0x01, - - /** - * \brief Whether to include code patterns for language constructs - * within the set of code completions, e.g., for loops. - */ - CXCodeComplete_IncludeCodePatterns = 0x02, - - /** - * \brief Whether to include brief documentation within the set of code - * completions returned. - */ - CXCodeComplete_IncludeBriefComments = 0x04 -}; - -/** - * \brief Bits that represent the context under which completion is occurring. - * - * The enumerators in this enumeration may be bitwise-OR'd together if multiple - * contexts are occurring simultaneously. - */ -enum CXCompletionContext { - /** - * \brief The context for completions is unexposed, as only Clang results - * should be included. (This is equivalent to having no context bits set.) - */ - CXCompletionContext_Unexposed = 0, - - /** - * \brief Completions for any possible type should be included in the results. - */ - CXCompletionContext_AnyType = 1 << 0, - - /** - * \brief Completions for any possible value (variables, function calls, etc.) - * should be included in the results. - */ - CXCompletionContext_AnyValue = 1 << 1, - /** - * \brief Completions for values that resolve to an Objective-C object should - * be included in the results. - */ - CXCompletionContext_ObjCObjectValue = 1 << 2, - /** - * \brief Completions for values that resolve to an Objective-C selector - * should be included in the results. - */ - CXCompletionContext_ObjCSelectorValue = 1 << 3, - /** - * \brief Completions for values that resolve to a C++ class type should be - * included in the results. - */ - CXCompletionContext_CXXClassTypeValue = 1 << 4, - - /** - * \brief Completions for fields of the member being accessed using the dot - * operator should be included in the results. - */ - CXCompletionContext_DotMemberAccess = 1 << 5, - /** - * \brief Completions for fields of the member being accessed using the arrow - * operator should be included in the results. - */ - CXCompletionContext_ArrowMemberAccess = 1 << 6, - /** - * \brief Completions for properties of the Objective-C object being accessed - * using the dot operator should be included in the results. - */ - CXCompletionContext_ObjCPropertyAccess = 1 << 7, - - /** - * \brief Completions for enum tags should be included in the results. - */ - CXCompletionContext_EnumTag = 1 << 8, - /** - * \brief Completions for union tags should be included in the results. - */ - CXCompletionContext_UnionTag = 1 << 9, - /** - * \brief Completions for struct tags should be included in the results. - */ - CXCompletionContext_StructTag = 1 << 10, - - /** - * \brief Completions for C++ class names should be included in the results. - */ - CXCompletionContext_ClassTag = 1 << 11, - /** - * \brief Completions for C++ namespaces and namespace aliases should be - * included in the results. - */ - CXCompletionContext_Namespace = 1 << 12, - /** - * \brief Completions for C++ nested name specifiers should be included in - * the results. - */ - CXCompletionContext_NestedNameSpecifier = 1 << 13, - - /** - * \brief Completions for Objective-C interfaces (classes) should be included - * in the results. - */ - CXCompletionContext_ObjCInterface = 1 << 14, - /** - * \brief Completions for Objective-C protocols should be included in - * the results. - */ - CXCompletionContext_ObjCProtocol = 1 << 15, - /** - * \brief Completions for Objective-C categories should be included in - * the results. - */ - CXCompletionContext_ObjCCategory = 1 << 16, - /** - * \brief Completions for Objective-C instance messages should be included - * in the results. - */ - CXCompletionContext_ObjCInstanceMessage = 1 << 17, - /** - * \brief Completions for Objective-C class messages should be included in - * the results. - */ - CXCompletionContext_ObjCClassMessage = 1 << 18, - /** - * \brief Completions for Objective-C selector names should be included in - * the results. - */ - CXCompletionContext_ObjCSelectorName = 1 << 19, - - /** - * \brief Completions for preprocessor macro names should be included in - * the results. - */ - CXCompletionContext_MacroName = 1 << 20, - - /** - * \brief Natural language completions should be included in the results. - */ - CXCompletionContext_NaturalLanguage = 1 << 21, - - /** - * \brief The current context is unknown, so set all contexts. - */ - CXCompletionContext_Unknown = ((1 << 22) - 1) -}; - -/** - * \brief Returns a default set of code-completion options that can be - * passed to\c clang_codeCompleteAt(). - */ -CINDEX_LINKAGE unsigned clang_defaultCodeCompleteOptions(void); - -/** - * \brief Perform code completion at a given location in a translation unit. - * - * This function performs code completion at a particular file, line, and - * column within source code, providing results that suggest potential - * code snippets based on the context of the completion. The basic model - * for code completion is that Clang will parse a complete source file, - * performing syntax checking up to the location where code-completion has - * been requested. At that point, a special code-completion token is passed - * to the parser, which recognizes this token and determines, based on the - * current location in the C/Objective-C/C++ grammar and the state of - * semantic analysis, what completions to provide. These completions are - * returned via a new \c CXCodeCompleteResults structure. - * - * Code completion itself is meant to be triggered by the client when the - * user types punctuation characters or whitespace, at which point the - * code-completion location will coincide with the cursor. For example, if \c p - * is a pointer, code-completion might be triggered after the "-" and then - * after the ">" in \c p->. When the code-completion location is afer the ">", - * the completion results will provide, e.g., the members of the struct that - * "p" points to. The client is responsible for placing the cursor at the - * beginning of the token currently being typed, then filtering the results - * based on the contents of the token. For example, when code-completing for - * the expression \c p->get, the client should provide the location just after - * the ">" (e.g., pointing at the "g") to this code-completion hook. Then, the - * client can filter the results based on the current token text ("get"), only - * showing those results that start with "get". The intent of this interface - * is to separate the relatively high-latency acquisition of code-completion - * results from the filtering of results on a per-character basis, which must - * have a lower latency. - * - * \param TU The translation unit in which code-completion should - * occur. The source files for this translation unit need not be - * completely up-to-date (and the contents of those source files may - * be overridden via \p unsaved_files). Cursors referring into the - * translation unit may be invalidated by this invocation. - * - * \param complete_filename The name of the source file where code - * completion should be performed. This filename may be any file - * included in the translation unit. - * - * \param complete_line The line at which code-completion should occur. - * - * \param complete_column The column at which code-completion should occur. - * Note that the column should point just after the syntactic construct that - * initiated code completion, and not in the middle of a lexical token. - * - * \param unsaved_files the Tiles that have not yet been saved to disk - * but may be required for parsing or code completion, including the - * contents of those files. The contents and name of these files (as - * specified by CXUnsavedFile) are copied when necessary, so the - * client only needs to guarantee their validity until the call to - * this function returns. - * - * \param num_unsaved_files The number of unsaved file entries in \p - * unsaved_files. - * - * \param options Extra options that control the behavior of code - * completion, expressed as a bitwise OR of the enumerators of the - * CXCodeComplete_Flags enumeration. The - * \c clang_defaultCodeCompleteOptions() function returns a default set - * of code-completion options. - * - * \returns If successful, a new \c CXCodeCompleteResults structure - * containing code-completion results, which should eventually be - * freed with \c clang_disposeCodeCompleteResults(). If code - * completion fails, returns NULL. - */ -CINDEX_LINKAGE -CXCodeCompleteResults *clang_codeCompleteAt(CXTranslationUnit TU, - const char *complete_filename, - unsigned complete_line, - unsigned complete_column, - struct CXUnsavedFile *unsaved_files, - unsigned num_unsaved_files, - unsigned options); - -/** - * \brief Sort the code-completion results in case-insensitive alphabetical - * order. - * - * \param Results The set of results to sort. - * \param NumResults The number of results in \p Results. - */ -CINDEX_LINKAGE -void clang_sortCodeCompletionResults(CXCompletionResult *Results, - unsigned NumResults); - -/** - * \brief Free the given set of code-completion results. - */ -CINDEX_LINKAGE -void clang_disposeCodeCompleteResults(CXCodeCompleteResults *Results); - -/** - * \brief Determine the number of diagnostics produced prior to the - * location where code completion was performed. - */ -CINDEX_LINKAGE -unsigned clang_codeCompleteGetNumDiagnostics(CXCodeCompleteResults *Results); - -/** - * \brief Retrieve a diagnostic associated with the given code completion. - * - * \param Results the code completion results to query. - * \param Index the zero-based diagnostic number to retrieve. - * - * \returns the requested diagnostic. This diagnostic must be freed - * via a call to \c clang_disposeDiagnostic(). - */ -CINDEX_LINKAGE -CXDiagnostic clang_codeCompleteGetDiagnostic(CXCodeCompleteResults *Results, - unsigned Index); - -/** - * \brief Determines what completions are appropriate for the context - * the given code completion. - * - * \param Results the code completion results to query - * - * \returns the kinds of completions that are appropriate for use - * along with the given code completion results. - */ -CINDEX_LINKAGE -unsigned long long clang_codeCompleteGetContexts( - CXCodeCompleteResults *Results); - -/** - * \brief Returns the cursor kind for the container for the current code - * completion context. The container is only guaranteed to be set for - * contexts where a container exists (i.e. member accesses or Objective-C - * message sends); if there is not a container, this function will return - * CXCursor_InvalidCode. - * - * \param Results the code completion results to query - * - * \param IsIncomplete on return, this value will be false if Clang has complete - * information about the container. If Clang does not have complete - * information, this value will be true. - * - * \returns the container kind, or CXCursor_InvalidCode if there is not a - * container - */ -CINDEX_LINKAGE -enum CXCursorKind clang_codeCompleteGetContainerKind( - CXCodeCompleteResults *Results, - unsigned *IsIncomplete); - -/** - * \brief Returns the USR for the container for the current code completion - * context. If there is not a container for the current context, this - * function will return the empty string. - * - * \param Results the code completion results to query - * - * \returns the USR for the container - */ -CINDEX_LINKAGE -CXString clang_codeCompleteGetContainerUSR(CXCodeCompleteResults *Results); - - -/** - * \brief Returns the currently-entered selector for an Objective-C message - * send, formatted like "initWithFoo:bar:". Only guaranteed to return a - * non-empty string for CXCompletionContext_ObjCInstanceMessage and - * CXCompletionContext_ObjCClassMessage. - * - * \param Results the code completion results to query - * - * \returns the selector (or partial selector) that has been entered thus far - * for an Objective-C message send. - */ -CINDEX_LINKAGE -CXString clang_codeCompleteGetObjCSelector(CXCodeCompleteResults *Results); - -/** - * @} - */ - - -/** - * \defgroup CINDEX_MISC Miscellaneous utility functions - * - * @{ - */ - -/** - * \brief Return a version string, suitable for showing to a user, but not - * intended to be parsed (the format is not guaranteed to be stable). - */ -CINDEX_LINKAGE CXString clang_getClangVersion(void); - - -/** - * \brief Enable/disable crash recovery. - * - * \param isEnabled Flag to indicate if crash recovery is enabled. A non-zero - * value enables crash recovery, while 0 disables it. - */ -CINDEX_LINKAGE void clang_toggleCrashRecovery(unsigned isEnabled); - - /** - * \brief Visitor invoked for each file in a translation unit - * (used with clang_getInclusions()). - * - * This visitor function will be invoked by clang_getInclusions() for each - * file included (either at the top-level or by \#include directives) within - * a translation unit. The first argument is the file being included, and - * the second and third arguments provide the inclusion stack. The - * array is sorted in order of immediate inclusion. For example, - * the first element refers to the location that included 'included_file'. - */ -typedef void (*CXInclusionVisitor)(CXFile included_file, - CXSourceLocation* inclusion_stack, - unsigned include_len, - CXClientData client_data); - -/** - * \brief Visit the set of preprocessor inclusions in a translation unit. - * The visitor function is called with the provided data for every included - * file. This does not include headers included by the PCH file (unless one - * is inspecting the inclusions in the PCH file itself). - */ -CINDEX_LINKAGE void clang_getInclusions(CXTranslationUnit tu, - CXInclusionVisitor visitor, - CXClientData client_data); - -/** - * @} - */ - -/** \defgroup CINDEX_REMAPPING Remapping functions - * - * @{ - */ - -/** - * \brief A remapping of original source files and their translated files. - */ -typedef void *CXRemapping; - -/** - * \brief Retrieve a remapping. - * - * \param path the path that contains metadata about remappings. - * - * \returns the requested remapping. This remapping must be freed - * via a call to \c clang_remap_dispose(). Can return NULL if an error occurred. - */ -CINDEX_LINKAGE CXRemapping clang_getRemappings(const char *path); - -/** - * \brief Retrieve a remapping. - * - * \param filePaths pointer to an array of file paths containing remapping info. - * - * \param numFiles number of file paths. - * - * \returns the requested remapping. This remapping must be freed - * via a call to \c clang_remap_dispose(). Can return NULL if an error occurred. - */ -CINDEX_LINKAGE -CXRemapping clang_getRemappingsFromFileList(const char **filePaths, - unsigned numFiles); - -/** - * \brief Determine the number of remappings. - */ -CINDEX_LINKAGE unsigned clang_remap_getNumFiles(CXRemapping); - -/** - * \brief Get the original and the associated filename from the remapping. - * - * \param original If non-NULL, will be set to the original filename. - * - * \param transformed If non-NULL, will be set to the filename that the original - * is associated with. - */ -CINDEX_LINKAGE void clang_remap_getFilenames(CXRemapping, unsigned index, - CXString *original, CXString *transformed); - -/** - * \brief Dispose the remapping. - */ -CINDEX_LINKAGE void clang_remap_dispose(CXRemapping); - -/** - * @} - */ - -/** \defgroup CINDEX_HIGH Higher level API functions - * - * @{ - */ - -enum CXVisitorResult { - CXVisit_Break, - CXVisit_Continue -}; - -typedef struct { - void *context; - enum CXVisitorResult (*visit)(void *context, CXCursor, CXSourceRange); -} CXCursorAndRangeVisitor; - -typedef enum { - /** - * \brief Function returned successfully. - */ - CXResult_Success = 0, - /** - * \brief One of the parameters was invalid for the function. - */ - CXResult_Invalid = 1, - /** - * \brief The function was terminated by a callback (e.g. it returned - * CXVisit_Break) - */ - CXResult_VisitBreak = 2 - -} CXResult; - -/** - * \brief Find references of a declaration in a specific file. - * - * \param cursor pointing to a declaration or a reference of one. - * - * \param file to search for references. - * - * \param visitor callback that will receive pairs of CXCursor/CXSourceRange for - * each reference found. - * The CXSourceRange will point inside the file; if the reference is inside - * a macro (and not a macro argument) the CXSourceRange will be invalid. - * - * \returns one of the CXResult enumerators. - */ -CINDEX_LINKAGE CXResult clang_findReferencesInFile(CXCursor cursor, CXFile file, - CXCursorAndRangeVisitor visitor); - -/** - * \brief Find #import/#include directives in a specific file. - * - * \param TU translation unit containing the file to query. - * - * \param file to search for #import/#include directives. - * - * \param visitor callback that will receive pairs of CXCursor/CXSourceRange for - * each directive found. - * - * \returns one of the CXResult enumerators. - */ -CINDEX_LINKAGE CXResult clang_findIncludesInFile(CXTranslationUnit TU, - CXFile file, - CXCursorAndRangeVisitor visitor); - -#ifdef __has_feature -# if __has_feature(blocks) - -typedef enum CXVisitorResult - (^CXCursorAndRangeVisitorBlock)(CXCursor, CXSourceRange); - -CINDEX_LINKAGE -CXResult clang_findReferencesInFileWithBlock(CXCursor, CXFile, - CXCursorAndRangeVisitorBlock); - -CINDEX_LINKAGE -CXResult clang_findIncludesInFileWithBlock(CXTranslationUnit, CXFile, - CXCursorAndRangeVisitorBlock); - -# endif -#endif - -/** - * \brief The client's data object that is associated with a CXFile. - */ -typedef void *CXIdxClientFile; - -/** - * \brief The client's data object that is associated with a semantic entity. - */ -typedef void *CXIdxClientEntity; - -/** - * \brief The client's data object that is associated with a semantic container - * of entities. - */ -typedef void *CXIdxClientContainer; - -/** - * \brief The client's data object that is associated with an AST file (PCH - * or module). - */ -typedef void *CXIdxClientASTFile; - -/** - * \brief Source location passed to index callbacks. - */ -typedef struct { - void *ptr_data[2]; - unsigned int_data; -} CXIdxLoc; - -/** - * \brief Data for ppIncludedFile callback. - */ -typedef struct { - /** - * \brief Location of '#' in the \#include/\#import directive. - */ - CXIdxLoc hashLoc; - /** - * \brief Filename as written in the \#include/\#import directive. - */ - const char *filename; - /** - * \brief The actual file that the \#include/\#import directive resolved to. - */ - CXFile file; - int isImport; - int isAngled; - /** - * \brief Non-zero if the directive was automatically turned into a module - * import. - */ - int isModuleImport; -} CXIdxIncludedFileInfo; - -/** - * \brief Data for IndexerCallbacks#importedASTFile. - */ -typedef struct { - /** - * \brief Top level AST file containing the imported PCH, module or submodule. - */ - CXFile file; - /** - * \brief The imported module or NULL if the AST file is a PCH. - */ - CXModule module; - /** - * \brief Location where the file is imported. Applicable only for modules. - */ - CXIdxLoc loc; - /** - * \brief Non-zero if an inclusion directive was automatically turned into - * a module import. Applicable only for modules. - */ - int isImplicit; - -} CXIdxImportedASTFileInfo; - -typedef enum { - CXIdxEntity_Unexposed = 0, - CXIdxEntity_Typedef = 1, - CXIdxEntity_Function = 2, - CXIdxEntity_Variable = 3, - CXIdxEntity_Field = 4, - CXIdxEntity_EnumConstant = 5, - - CXIdxEntity_ObjCClass = 6, - CXIdxEntity_ObjCProtocol = 7, - CXIdxEntity_ObjCCategory = 8, - - CXIdxEntity_ObjCInstanceMethod = 9, - CXIdxEntity_ObjCClassMethod = 10, - CXIdxEntity_ObjCProperty = 11, - CXIdxEntity_ObjCIvar = 12, - - CXIdxEntity_Enum = 13, - CXIdxEntity_Struct = 14, - CXIdxEntity_Union = 15, - - CXIdxEntity_CXXClass = 16, - CXIdxEntity_CXXNamespace = 17, - CXIdxEntity_CXXNamespaceAlias = 18, - CXIdxEntity_CXXStaticVariable = 19, - CXIdxEntity_CXXStaticMethod = 20, - CXIdxEntity_CXXInstanceMethod = 21, - CXIdxEntity_CXXConstructor = 22, - CXIdxEntity_CXXDestructor = 23, - CXIdxEntity_CXXConversionFunction = 24, - CXIdxEntity_CXXTypeAlias = 25, - CXIdxEntity_CXXInterface = 26 - -} CXIdxEntityKind; - -typedef enum { - CXIdxEntityLang_None = 0, - CXIdxEntityLang_C = 1, - CXIdxEntityLang_ObjC = 2, - CXIdxEntityLang_CXX = 3 -} CXIdxEntityLanguage; - -/** - * \brief Extra C++ template information for an entity. This can apply to: - * CXIdxEntity_Function - * CXIdxEntity_CXXClass - * CXIdxEntity_CXXStaticMethod - * CXIdxEntity_CXXInstanceMethod - * CXIdxEntity_CXXConstructor - * CXIdxEntity_CXXConversionFunction - * CXIdxEntity_CXXTypeAlias - */ -typedef enum { - CXIdxEntity_NonTemplate = 0, - CXIdxEntity_Template = 1, - CXIdxEntity_TemplatePartialSpecialization = 2, - CXIdxEntity_TemplateSpecialization = 3 -} CXIdxEntityCXXTemplateKind; - -typedef enum { - CXIdxAttr_Unexposed = 0, - CXIdxAttr_IBAction = 1, - CXIdxAttr_IBOutlet = 2, - CXIdxAttr_IBOutletCollection = 3 -} CXIdxAttrKind; - -typedef struct { - CXIdxAttrKind kind; - CXCursor cursor; - CXIdxLoc loc; -} CXIdxAttrInfo; - -typedef struct { - CXIdxEntityKind kind; - CXIdxEntityCXXTemplateKind templateKind; - CXIdxEntityLanguage lang; - const char *name; - const char *USR; - CXCursor cursor; - const CXIdxAttrInfo *const *attributes; - unsigned numAttributes; -} CXIdxEntityInfo; - -typedef struct { - CXCursor cursor; -} CXIdxContainerInfo; - -typedef struct { - const CXIdxAttrInfo *attrInfo; - const CXIdxEntityInfo *objcClass; - CXCursor classCursor; - CXIdxLoc classLoc; -} CXIdxIBOutletCollectionAttrInfo; - -typedef enum { - CXIdxDeclFlag_Skipped = 0x1 -} CXIdxDeclInfoFlags; - -typedef struct { - const CXIdxEntityInfo *entityInfo; - CXCursor cursor; - CXIdxLoc loc; - const CXIdxContainerInfo *semanticContainer; - /** - * \brief Generally same as #semanticContainer but can be different in - * cases like out-of-line C++ member functions. - */ - const CXIdxContainerInfo *lexicalContainer; - int isRedeclaration; - int isDefinition; - int isContainer; - const CXIdxContainerInfo *declAsContainer; - /** - * \brief Whether the declaration exists in code or was created implicitly - * by the compiler, e.g. implicit Objective-C methods for properties. - */ - int isImplicit; - const CXIdxAttrInfo *const *attributes; - unsigned numAttributes; - - unsigned flags; - -} CXIdxDeclInfo; - -typedef enum { - CXIdxObjCContainer_ForwardRef = 0, - CXIdxObjCContainer_Interface = 1, - CXIdxObjCContainer_Implementation = 2 -} CXIdxObjCContainerKind; - -typedef struct { - const CXIdxDeclInfo *declInfo; - CXIdxObjCContainerKind kind; -} CXIdxObjCContainerDeclInfo; - -typedef struct { - const CXIdxEntityInfo *base; - CXCursor cursor; - CXIdxLoc loc; -} CXIdxBaseClassInfo; - -typedef struct { - const CXIdxEntityInfo *protocol; - CXCursor cursor; - CXIdxLoc loc; -} CXIdxObjCProtocolRefInfo; - -typedef struct { - const CXIdxObjCProtocolRefInfo *const *protocols; - unsigned numProtocols; -} CXIdxObjCProtocolRefListInfo; - -typedef struct { - const CXIdxObjCContainerDeclInfo *containerInfo; - const CXIdxBaseClassInfo *superInfo; - const CXIdxObjCProtocolRefListInfo *protocols; -} CXIdxObjCInterfaceDeclInfo; - -typedef struct { - const CXIdxObjCContainerDeclInfo *containerInfo; - const CXIdxEntityInfo *objcClass; - CXCursor classCursor; - CXIdxLoc classLoc; - const CXIdxObjCProtocolRefListInfo *protocols; -} CXIdxObjCCategoryDeclInfo; - -typedef struct { - const CXIdxDeclInfo *declInfo; - const CXIdxEntityInfo *getter; - const CXIdxEntityInfo *setter; -} CXIdxObjCPropertyDeclInfo; - -typedef struct { - const CXIdxDeclInfo *declInfo; - const CXIdxBaseClassInfo *const *bases; - unsigned numBases; -} CXIdxCXXClassDeclInfo; - -/** - * \brief Data for IndexerCallbacks#indexEntityReference. - */ -typedef enum { - /** - * \brief The entity is referenced directly in user's code. - */ - CXIdxEntityRef_Direct = 1, - /** - * \brief An implicit reference, e.g. a reference of an Objective-C method - * via the dot syntax. - */ - CXIdxEntityRef_Implicit = 2 -} CXIdxEntityRefKind; - -/** - * \brief Data for IndexerCallbacks#indexEntityReference. - */ -typedef struct { - CXIdxEntityRefKind kind; - /** - * \brief Reference cursor. - */ - CXCursor cursor; - CXIdxLoc loc; - /** - * \brief The entity that gets referenced. - */ - const CXIdxEntityInfo *referencedEntity; - /** - * \brief Immediate "parent" of the reference. For example: - * - * \code - * Foo *var; - * \endcode - * - * The parent of reference of type 'Foo' is the variable 'var'. - * For references inside statement bodies of functions/methods, - * the parentEntity will be the function/method. - */ - const CXIdxEntityInfo *parentEntity; - /** - * \brief Lexical container context of the reference. - */ - const CXIdxContainerInfo *container; -} CXIdxEntityRefInfo; - -/** - * \brief A group of callbacks used by #clang_indexSourceFile and - * #clang_indexTranslationUnit. - */ -typedef struct { - /** - * \brief Called periodically to check whether indexing should be aborted. - * Should return 0 to continue, and non-zero to abort. - */ - int (*abortQuery)(CXClientData client_data, void *reserved); - - /** - * \brief Called at the end of indexing; passes the complete diagnostic set. - */ - void (*diagnostic)(CXClientData client_data, - CXDiagnosticSet, void *reserved); - - CXIdxClientFile (*enteredMainFile)(CXClientData client_data, - CXFile mainFile, void *reserved); - - /** - * \brief Called when a file gets \#included/\#imported. - */ - CXIdxClientFile (*ppIncludedFile)(CXClientData client_data, - const CXIdxIncludedFileInfo *); - - /** - * \brief Called when a AST file (PCH or module) gets imported. - * - * AST files will not get indexed (there will not be callbacks to index all - * the entities in an AST file). The recommended action is that, if the AST - * file is not already indexed, to initiate a new indexing job specific to - * the AST file. - */ - CXIdxClientASTFile (*importedASTFile)(CXClientData client_data, - const CXIdxImportedASTFileInfo *); - - /** - * \brief Called at the beginning of indexing a translation unit. - */ - CXIdxClientContainer (*startedTranslationUnit)(CXClientData client_data, - void *reserved); - - void (*indexDeclaration)(CXClientData client_data, - const CXIdxDeclInfo *); - - /** - * \brief Called to index a reference of an entity. - */ - void (*indexEntityReference)(CXClientData client_data, - const CXIdxEntityRefInfo *); - -} IndexerCallbacks; - -CINDEX_LINKAGE int clang_index_isEntityObjCContainerKind(CXIdxEntityKind); -CINDEX_LINKAGE const CXIdxObjCContainerDeclInfo * -clang_index_getObjCContainerDeclInfo(const CXIdxDeclInfo *); - -CINDEX_LINKAGE const CXIdxObjCInterfaceDeclInfo * -clang_index_getObjCInterfaceDeclInfo(const CXIdxDeclInfo *); - -CINDEX_LINKAGE -const CXIdxObjCCategoryDeclInfo * -clang_index_getObjCCategoryDeclInfo(const CXIdxDeclInfo *); - -CINDEX_LINKAGE const CXIdxObjCProtocolRefListInfo * -clang_index_getObjCProtocolRefListInfo(const CXIdxDeclInfo *); - -CINDEX_LINKAGE const CXIdxObjCPropertyDeclInfo * -clang_index_getObjCPropertyDeclInfo(const CXIdxDeclInfo *); - -CINDEX_LINKAGE const CXIdxIBOutletCollectionAttrInfo * -clang_index_getIBOutletCollectionAttrInfo(const CXIdxAttrInfo *); - -CINDEX_LINKAGE const CXIdxCXXClassDeclInfo * -clang_index_getCXXClassDeclInfo(const CXIdxDeclInfo *); - -/** - * \brief For retrieving a custom CXIdxClientContainer attached to a - * container. - */ -CINDEX_LINKAGE CXIdxClientContainer -clang_index_getClientContainer(const CXIdxContainerInfo *); - -/** - * \brief For setting a custom CXIdxClientContainer attached to a - * container. - */ -CINDEX_LINKAGE void -clang_index_setClientContainer(const CXIdxContainerInfo *,CXIdxClientContainer); - -/** - * \brief For retrieving a custom CXIdxClientEntity attached to an entity. - */ -CINDEX_LINKAGE CXIdxClientEntity -clang_index_getClientEntity(const CXIdxEntityInfo *); - -/** - * \brief For setting a custom CXIdxClientEntity attached to an entity. - */ -CINDEX_LINKAGE void -clang_index_setClientEntity(const CXIdxEntityInfo *, CXIdxClientEntity); - -/** - * \brief An indexing action/session, to be applied to one or multiple - * translation units. - */ -typedef void *CXIndexAction; - -/** - * \brief An indexing action/session, to be applied to one or multiple - * translation units. - * - * \param CIdx The index object with which the index action will be associated. - */ -CINDEX_LINKAGE CXIndexAction clang_IndexAction_create(CXIndex CIdx); - -/** - * \brief Destroy the given index action. - * - * The index action must not be destroyed until all of the translation units - * created within that index action have been destroyed. - */ -CINDEX_LINKAGE void clang_IndexAction_dispose(CXIndexAction); - -typedef enum { - /** - * \brief Used to indicate that no special indexing options are needed. - */ - CXIndexOpt_None = 0x0, - - /** - * \brief Used to indicate that IndexerCallbacks#indexEntityReference should - * be invoked for only one reference of an entity per source file that does - * not also include a declaration/definition of the entity. - */ - CXIndexOpt_SuppressRedundantRefs = 0x1, - - /** - * \brief Function-local symbols should be indexed. If this is not set - * function-local symbols will be ignored. - */ - CXIndexOpt_IndexFunctionLocalSymbols = 0x2, - - /** - * \brief Implicit function/class template instantiations should be indexed. - * If this is not set, implicit instantiations will be ignored. - */ - CXIndexOpt_IndexImplicitTemplateInstantiations = 0x4, - - /** - * \brief Suppress all compiler warnings when parsing for indexing. - */ - CXIndexOpt_SuppressWarnings = 0x8, - - /** - * \brief Skip a function/method body that was already parsed during an - * indexing session associated with a \c CXIndexAction object. - * Bodies in system headers are always skipped. - */ - CXIndexOpt_SkipParsedBodiesInSession = 0x10 - -} CXIndexOptFlags; - -/** - * \brief Index the given source file and the translation unit corresponding - * to that file via callbacks implemented through #IndexerCallbacks. - * - * \param client_data pointer data supplied by the client, which will - * be passed to the invoked callbacks. - * - * \param index_callbacks Pointer to indexing callbacks that the client - * implements. - * - * \param index_callbacks_size Size of #IndexerCallbacks structure that gets - * passed in index_callbacks. - * - * \param index_options A bitmask of options that affects how indexing is - * performed. This should be a bitwise OR of the CXIndexOpt_XXX flags. - * - * \param[out] out_TU pointer to store a \c CXTranslationUnit that can be - * reused after indexing is finished. Set to \c NULL if you do not require it. - * - * \returns 0 on success or if there were errors from which the compiler could - * recover. If there is a failure from which there is no recovery, returns - * a non-zero \c CXErrorCode. - * - * The rest of the parameters are the same as #clang_parseTranslationUnit. - */ -CINDEX_LINKAGE int clang_indexSourceFile(CXIndexAction, - CXClientData client_data, - IndexerCallbacks *index_callbacks, - unsigned index_callbacks_size, - unsigned index_options, - const char *source_filename, - const char * const *command_line_args, - int num_command_line_args, - struct CXUnsavedFile *unsaved_files, - unsigned num_unsaved_files, - CXTranslationUnit *out_TU, - unsigned TU_options); - -/** - * \brief Index the given translation unit via callbacks implemented through - * #IndexerCallbacks. - * - * The order of callback invocations is not guaranteed to be the same as - * when indexing a source file. The high level order will be: - * - * -Preprocessor callbacks invocations - * -Declaration/reference callbacks invocations - * -Diagnostic callback invocations - * - * The parameters are the same as #clang_indexSourceFile. - * - * \returns If there is a failure from which there is no recovery, returns - * non-zero, otherwise returns 0. - */ -CINDEX_LINKAGE int clang_indexTranslationUnit(CXIndexAction, - CXClientData client_data, - IndexerCallbacks *index_callbacks, - unsigned index_callbacks_size, - unsigned index_options, - CXTranslationUnit); - -/** - * \brief Retrieve the CXIdxFile, file, line, column, and offset represented by - * the given CXIdxLoc. - * - * If the location refers into a macro expansion, retrieves the - * location of the macro expansion and if it refers into a macro argument - * retrieves the location of the argument. - */ -CINDEX_LINKAGE void clang_indexLoc_getFileLocation(CXIdxLoc loc, - CXIdxClientFile *indexFile, - CXFile *file, - unsigned *line, - unsigned *column, - unsigned *offset); - -/** - * \brief Retrieve the CXSourceLocation represented by the given CXIdxLoc. - */ -CINDEX_LINKAGE -CXSourceLocation clang_indexLoc_getCXSourceLocation(CXIdxLoc loc); - -/** - * \brief Visitor invoked for each field found by a traversal. - * - * This visitor function will be invoked for each field found by - * \c clang_Type_visitFields. Its first argument is the cursor being - * visited, its second argument is the client data provided to - * \c clang_Type_visitFields. - * - * The visitor should return one of the \c CXVisitorResult values - * to direct \c clang_Type_visitFields. - */ -typedef enum CXVisitorResult (*CXFieldVisitor)(CXCursor C, - CXClientData client_data); - -/** - * \brief Visit the fields of a particular type. - * - * This function visits all the direct fields of the given cursor, - * invoking the given \p visitor function with the cursors of each - * visited field. The traversal may be ended prematurely, if - * the visitor returns \c CXFieldVisit_Break. - * - * \param T the record type whose field may be visited. - * - * \param visitor the visitor function that will be invoked for each - * field of \p T. - * - * \param client_data pointer data supplied by the client, which will - * be passed to the visitor each time it is invoked. - * - * \returns a non-zero value if the traversal was terminated - * prematurely by the visitor returning \c CXFieldVisit_Break. - */ -CINDEX_LINKAGE unsigned clang_Type_visitFields(CXType T, - CXFieldVisitor visitor, - CXClientData client_data); - - -/** - * @} - */ - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Makefile b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Makefile deleted file mode 100644 index b29e29e..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -CLANG_LEVEL := ../.. -DIRS := - -include $(CLANG_LEVEL)/Makefile - -IntIncludeDir = $(DESTDIR)$(PROJ_internal_prefix)/include - -install-local:: - $(Echo) Installing Clang C API include files - $(Verb) $(MKDIR) $(IntIncludeDir) - $(Verb) if test -d "$(PROJ_SRC_DIR)" ; then \ - cd $(PROJ_SRC_DIR)/.. && \ - for hdr in `find clang-c -type f '!' '(' -name '*~' \ - -o -name '.#*' -o -name '*.in' -o -name '*.txt' \ - -o -name 'Makefile' -o -name '*.td' ')' -print \ - | grep -v CVS | grep -v .svn | grep -v .dir` ; do \ - instdir=`dirname "$(IntIncludeDir)/$$hdr"` ; \ - if test \! -d "$$instdir" ; then \ - $(EchoCmd) Making install directory $$instdir ; \ - $(MKDIR) $$instdir ;\ - fi ; \ - $(DataInstall) $$hdr $(IntIncludeDir)/$$hdr ; \ - done ; \ - fi -ifneq ($(PROJ_SRC_ROOT),$(PROJ_OBJ_ROOT)) - $(Verb) if test -d "$(PROJ_OBJ_ROOT)/tools/clang/include/clang-c" ; then \ - cd $(PROJ_OBJ_ROOT)/tools/clang/include && \ - for hdr in `find clang-c -type f '!' '(' -name 'Makefile' ')' -print \ - | grep -v CVS | grep -v .tmp | grep -v .dir` ; do \ - instdir=`dirname "$(IntIncludeDir)/$$hdr"` ; \ - if test \! -d "$$instdir" ; then \ - $(EchoCmd) Making install directory $$instdir ; \ - $(MKDIR) $$instdir ;\ - fi ; \ - $(DataInstall) $$hdr $(IntIncludeDir)/$$hdr ; \ - done ; \ - fi -endif diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Platform.h b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Platform.h deleted file mode 100644 index e2a4dcc..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/Platform.h +++ /dev/null @@ -1,45 +0,0 @@ -/*===-- clang-c/Platform.h - C Index platform decls -------------*- C -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This header provides platform specific macros (dllimport, deprecated, ...) *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_CLANG_C_PLATFORM_H -#define LLVM_CLANG_C_PLATFORM_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* MSVC DLL import/export. */ -#ifdef _MSC_VER - #ifdef _CINDEX_LIB_ - #define CINDEX_LINKAGE __declspec(dllexport) - #else - #define CINDEX_LINKAGE __declspec(dllimport) - #endif -#else - #define CINDEX_LINKAGE -#endif - -#ifdef __GNUC__ - #define CINDEX_DEPRECATED __attribute__((deprecated)) -#else - #ifdef _MSC_VER - #define CINDEX_DEPRECATED __declspec(deprecated) - #else - #define CINDEX_DEPRECATED - #endif -#endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/module.modulemap b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/module.modulemap deleted file mode 100644 index 95a59d6..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/clang-c/module.modulemap +++ /dev/null @@ -1,4 +0,0 @@ -module Clang_C { - umbrella "." - module * { export * } -} diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_32/debug/.gitkeep b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_32/debug/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_32/release/.gitkeep b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_32/release/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_64/debug/.gitkeep b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_64/debug/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_64/release/.gitkeep b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/library/x86_64/release/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/main.cpp b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/main.cpp deleted file mode 100644 index f3f7fcd..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/main.cpp +++ /dev/null @@ -1,176 +0,0 @@ -/* -*- mode: c++ ; coding: utf-8-unix -*- */ -/* last updated : 2015/05/25.01:59:31 */ - -/* - * Copyright (c) 2013-2015 yaruopooner [https://github.com/yaruopooner] - * - * This file is part of ac-clang. - * - * 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 . - */ - - - -/*================================================================================================*/ -/* Include Files */ -/*================================================================================================*/ - - -#include "CommandLine.hpp" -#include "ClangServer.hpp" - - - -/*================================================================================================*/ -/* Global Function Definitions Section */ -/*================================================================================================*/ - - -enum -{ - kStreamBuffer_UnitSize = 1 * 1024 * 1024, - kStreamBuffer_MinMB = 1, - kStreamBuffer_MaxMB = 5, -}; - -enum -{ - kOption_Help, - kOption_Version, - kOption_LogFile, - kOption_STDIN_BufferSize, - kOption_STDOUT_BufferSize, -}; - - -namespace -{ - -std::string GetClangVersion( void ) -{ - CXString version_text = clang_getClangVersion(); - const std::string clang_version = clang_getCString( version_text ); - - clang_disposeString( version_text ); - - return clang_version; -} - -} - - - -int main( int argc, char *argv[] ) -{ - std::ios_base::sync_with_stdio( false ); - - // parse options - const std::string server_version = CLANG_SERVER_VERSION; - const std::string clang_version = ::GetClangVersion(); - const std::string generate = CMAKE_GENERATOR "/" CMAKE_HOST_SYSTEM_PROCESSOR; - std::string logfile; - size_t stdin_buffer_size = kStreamBuffer_MinMB; - size_t stdout_buffer_size = kStreamBuffer_MinMB; - - { - CommandLine::Parser declare_options; - - declare_options.AddOption( kOption_Help, "help", "h", "Display available options.", - CommandLine::IOptionDetail::kFlag_Once ); - declare_options.AddOption( kOption_Version, "version", "v", "Display current version.", - CommandLine::IOptionDetail::kFlag_Once ); - // declare_options.AddOption< std::string >( kOption_LogFile, "logfile", "l", "Enable IPC records output.(for debug)", - // ( CommandLine::IOptionDetail::kFlag_Once | CommandLine::IOptionDetail::kFlag_HasValue ), "file path" ); - declare_options.AddOption< uint32_t >( kOption_STDIN_BufferSize, "stdin-buffer-size", "sibs", "STDIN buffer size. is 1 - 5 MB", - ( CommandLine::IOptionDetail::kFlag_Once | CommandLine::IOptionDetail::kFlag_HasValue ), "size", - CommandLine::RangeReader< uint32_t >( kStreamBuffer_MinMB, kStreamBuffer_MaxMB ) ); - declare_options.AddOption< uint32_t >( kOption_STDOUT_BufferSize, "stdout-buffer-size", "sobs", "STDOUT buffer size. is 1 - 5 MB", - ( CommandLine::IOptionDetail::kFlag_Once | CommandLine::IOptionDetail::kFlag_HasValue ), "size", - CommandLine::RangeReader< uint32_t >( kStreamBuffer_MinMB, kStreamBuffer_MaxMB ) ); - - if ( declare_options.Parse( argc, argv ) ) - { - for ( const auto& option_value : declare_options.GetOptionWithValueArray() ) - { - switch ( option_value->GetId() ) - { - case kOption_Help: - declare_options.PrintUsage( "clang-server [options] " ); - return 0; - case kOption_Version: - std::cout << server_version << " (" << generate << ")" << std::endl; - std::cout << clang_version << std::endl; - return 0; - case kOption_LogFile: - if ( option_value->IsValid() ) - { - const std::string result = declare_options.GetValue< std::string >( option_value ); - - logfile = result; - } - break; - case kOption_STDIN_BufferSize: - if ( option_value->IsValid() ) - { - const uint32_t result = declare_options.GetValue< uint32_t >( option_value ); - - stdin_buffer_size = result; - } - break; - case kOption_STDOUT_BufferSize: - if ( option_value->IsValid() ) - { - const uint32_t result = declare_options.GetValue< uint32_t >( option_value ); - - stdout_buffer_size = result; - } - break; - } - } - declare_options.PrintWarnings(); - } - else - { - declare_options.PrintErrors(); - return 1; - } - } - - - // stream buffer expand - // std::shared_ptr< char > stdin_buffer( new char[ kStreamBuffer_UnitSize ], std::default_delete< char[] >() ); - // std::shared_ptr< char > stdout_buffer( new char[ kStreamBuffer_UnitSize ], std::default_delete< char[] >() ); - - stdin_buffer_size *= kStreamBuffer_UnitSize; - stdout_buffer_size *= kStreamBuffer_UnitSize; - - - // server instance - ClangFlagConverters flag_converter; - ClangServer::Specification initial_spec( stdin_buffer_size, stdout_buffer_size, logfile ); - ClangServer server( initial_spec ); - - - server.ParseCommand(); - - - return 0; -} - - - - -/*================================================================================================*/ -/* EOF */ -/*================================================================================================*/ diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/patch/invalidate-mmap.patch b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/patch/invalidate-mmap.patch deleted file mode 100644 index d01b811..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/patch/invalidate-mmap.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: lib/Support/MemoryBuffer.cpp -=================================================================== ---- lib/Support/MemoryBuffer.cpp (revision 226551) -+++ lib/Support/MemoryBuffer.cpp (working copy) -@@ -267,6 +267,9 @@ - bool RequiresNullTerminator, - int PageSize, - bool IsVolatileSize) { -+#if 1 -+ return false; -+#else - // mmap may leave the buffer without null terminator if the file size changed - // by the time the last page is mapped in, so avoid it if the file size is - // likely to change. -@@ -306,6 +309,7 @@ - return false; - - return true; -+#endif - } - - static ErrorOr> diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/patch/libclang-x86_64.patch b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/patch/libclang-x86_64.patch deleted file mode 100644 index 12fa1c6..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/patch/libclang-x86_64.patch +++ /dev/null @@ -1,29 +0,0 @@ -Index: tools/libclang/CMakeLists.txt -=================================================================== ---- tools/libclang/CMakeLists.txt (revision 226551) -+++ tools/libclang/CMakeLists.txt (working copy) -@@ -72,9 +72,9 @@ - endif() - - if(WIN32) -- set(output_name "libclang") -+ set(output_name "libclang-x86_64") - else() -- set(output_name "clang") -+ set(output_name "clang-x86_64") - endif() - - add_clang_library(libclang ${ENABLE_SHARED} ${ENABLE_STATIC} -Index: tools/libclang/Makefile -=================================================================== ---- tools/libclang/Makefile (revision 226551) -+++ tools/libclang/Makefile (working copy) -@@ -8,7 +8,7 @@ - ##===----------------------------------------------------------------------===## - - CLANG_LEVEL := ../.. --LIBRARYNAME = clang -+LIBRARYNAME = clang-x86_64 - - EXPORTED_SYMBOL_FILE = $(PROJ_SRC_DIR)/libclang.exports - diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.ja.md b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.ja.md deleted file mode 100644 index d8abdf7..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.ja.md +++ /dev/null @@ -1,381 +0,0 @@ - - - -[English Manual](./readme.md) - -# このドキュメントについて - -clang-serverのセルフビルドについて説明します。 -※Windows環境で付属の実行ファイルを利用する場合は読まなくても問題ありません。 - -# セルフビルド手順 - -clang-serverのビルドにはLLVMのlibclangが必要になります。 -ですのでLLVM libclangをセルフビルドしてからclang-serverをセルフビルドします。 - -## LLVMセルフビルド - -以下の4つを行います。 -この作業を簡略化するスクリプトもあります。 -- LLVMのチェックアウト -- パッチの適用 -- CMake or configureによるプロジェクトファイル生成 -- ビルド - -## clang-serverセルフビルド - -LLVMセルフビルドで生成したパッチ適用済みのライブラリ libclang を使用します。 -- CMakeによるプロジェクトファイル生成 -- ビルド -- インストール - -# セルフビルドに必要なソフトウェア - -## Windows - -以下が必要になります。 - -### LLVM - -ビルド済みライブラリ -libclang.lib or libclang.imp -libclang.dll -が必要です。 - -### Visual Studio 2015/2013/2012/2010 - -どれでもOK - -### CMake - - - -Windows ZIPをダウンロードして何処かへ展開。 -Visual Studio ソリューション&プロジェクトファイル生成と、ビルド&インストールのmsbuild呼び出しで使用されます。 - -## Linux - -以下が必要になります。 - -### LLVM - -ビルド済みライブラリ -libclang.so -が必要です。 - -### CMake - - $ sudo apt-get install cmake - -最新版の場合は↓からダウンロード - - - -cmake-3.1.3.tar.gzをダウンロードし解凍、ビルド、インストールを行う。 - - $ tar -xf cmake-3.1.3.tar.gz . - $ cd cmake-3.1.3 - $ ./configure && make - $ make install - -# セルフビルド - -## Windows - -### LLVM - -LLVMのセルフビルドが必要になります。 -またセルフビルド時にパッチを適用する必要があります。 -セルフビルド後のパッケージはインストールする必要はありません。 -ビルド後に生成されたバイナリを指すパスを -CMakeによるプロジェクト生成時に設定すればビルド可能です。 -LLVMがインストール済みであればインストールされているディレクトリを指定します。 - -LLVMセルフビルドを行う場合は -自前でチェックアウトし、CMakeでLLVMソリューションファイルを生成するか、以下のshell scriptを使用してください。 - - -1. スクリプトでLLVMパッチを適用する方法 - - builderShell の引数に -tasks を指定し、-tasks パラメーターに PATCH を追加、 - パッチを適用するパスとパッチファイルを記述したテーブルを -patchInfos パラメーターとして与えます。 - 詳しくはllvm-build-shellsのsample.ps1を参考にしてください。 - -2. LLVMパッチの内容 - - mmapの使用が常時無効化されます。 - -### clang-server - -ac-clang/build/builder\_sample.bat -を使用します。 -必要に応じてbuilder\_sample.batを編集してください。 -コマンドラインかエクスプローラーから実行します。 - -- example - - cmake -G "Visual Studio 12 2013 Win64" ../clang-server -DLIBRARY_PATHS="c:/cygwin-x86_64/tmp/llvm-build-shells/ps1/clang-360/build/msvc-64/" -DCMAKE_INSTALL_PREFIX="c:/cygwin-x86_64/usr/local/bin/" - -- オプション解説 - - `-DLIBRARY_PATHS` - セルフビルドしたLLVMが配置されているディレクトリを指定します。 - LLVMのトップディレクトリである必要があります。 - 省略した場合は ac-clang/clang-server が使われます。 - - `-DCMAKE_INSTALL_PREFIX` - clang-serverのインストールパスを指定します。 - 省略した場合は - `C:/Program Files/clang-server` - になります。 - -## Linux - -### LLVM - -LLVMのセルフビルドが必要になります。 -またセルフビルド時にパッチを適用する必要があります。 -セルフビルド後のパッケージはインストールする必要はありません。 -ビルド後に生成されたバイナリを指すパスを -CMakeによるプロジェクト生成時に設定すればビルド可能です。 -LLVMがインストール済みであればインストールされているディレクトリを指定します。 - -LLVMセルフビルドを行う場合は -自前でチェックアウトし、CMakeでLLVMソリューションファイルを生成するか、以下のshell scriptを使用してください。 - - -1. スクリプトでLLVMパッチを適用する方法 - - executeBuilder の引数に -patch を追加し、 - パッチを適用するパスを-patchApplyLocation、 - パッチファイルを-patchPathに記述して引数として与えます。 - -patchApplyLocation,-patchPathはペアになっており、複数回指定可能です。 - 詳しくはllvm-build-shellsのsample.shを参考にしてください。 - -2. LLVMパッチの内容 - - mmapの使用が常時無効化されます。 - -### clang-server - -ac-clang/build/builder\_sample.sh -を使用します。 -必要に応じてbuilder\_sample.shを編集してください。 -builder\_sample.shを実行します。 - -- example - - cmake -G "Unix Makefiles" ../clang-server -DLIBRARY_PATHS="/home/yaruopooner/work/llvm-build-shells/sh/clang-350/build" -DCMAKE_INSTALL_PREFIX="~/work/clang-server" - -- オプション解説 - - `-DLIBRARY_PATHS` - セルフビルドしたLLVMが配置されているディレクトリを指定します。 - LLVMのトップディレクトリである必要があります。 - 省略した場合は ac-clang/clang-server が使われます。 - - `-DCMAKE_INSTALL_PREFIX` - clang-serverのインストールパスを指定します。 - 省略した場合は - `/usr/local/bin` - になります。 - -# パッチ適用済みバイナリ(Windows Only) - - - -上記に置いてあるclang-server-X.X.X.zipは -パッチ適用済みのバイナリとライブラリファイル -- clang-server.exe -- libclang.dll -- libclang.lib or libclang.imp - -の3ファイルが格納されています。 - -LLVMはセルフビルドせずにclang-serverのみをセルフビルドする場合は -clang-server-X.X.X.zipをac-clangに解凍します。 -すると以下のように配置されます。 -ac-clang/clang-server/binary/clang-server.exe -ac-clang/clang-server/library/x86\_64/release/libclang.dll -ac-clang/clang-server/library/x86\_64/release/libclang.lib - -# パッチを適用せずLLVMオフィシャルのlibclangを使用する場合の制限事項 - -## 特定ファイルがロックされセーブできなくなる - -編集したヘッダファイルをセーブしようとすると "basic-save-buffer-2: Opening output file: invalid argument \`HEADER-FILE-NAME\`" となりセーブできない。 -必ず発生するわけではなく特定の条件を満たしたファイルサイズが16kBを越えるヘッダファイルで発生する。 -16kB以下のヘッダファイルではまったく発生しない。 -libclang の TranslationUnit(以下TU) の問題。 -libclang の TU がinclude対象のファイルをロックしている。 -ac-clang側で暫定対処パッチを施してあるので多少は緩和されているが完全に回避はできない。 -発生した場合はマニュアル対処する以外ない。 - -### emacs側での対処方法 - -include対象なので大抵は foo.cpp/foo.hpp という構成だとおもわれます。 -foo.hpp(modified)がセーブできない場合、大抵foo.cppが(modified)になっているのでfoo.cppをセーブしましょう。 -これによりfoo.hppはセーブ可能になるはずです。 -これでもセーブできない場合は、foo.cpp以外のソースでfoo.hppをインクルードしており(modified)になっているバッファがあるはずなので -それもセーブしましょう。 -また、定義へのジャンプ機能で該当ソースがアクティブ化されている場合は、未編集バッファであってもアクティブ化されています。 -該当バッファを削除してみるか、そのバッファへスイッチして (ac-clang-deactivate) を実行してください。 -これ以外でも16kBを越えるヘッダを編集しようとした際に、そのファイルのcppはオープンしてもいないのにセーブできない場合、 -該当ヘッダファイルを何処か遠いモジュールでインクルードしている場合なども同様の症状になります。 -ライブラリモジュールやフレームワークなどを開発している場合は発生しやすいかもしれません。 -※ライブラリ・フレームワークはアプリ側からよくincludeされるため。 - -### 原因(実装上の問題説明、解決案求む) - -foo.cpp(modified)のとき foo.cppのセッションで -TUが foo.cpp パース後もincludeされているファイルのロックを保持しつづけている。 -この状態で foo.hpp を編集してセーブしようとするとロックでエラーになる。 -ロックを解除するには、 foo.cpp のTUをリリースする。 -なので foo.cpp セーブ時にセッションは保持した状態で TU だけをリリースして、 -foo.cpp が再び modified になったときに TU を生成するように修正。 -これにより foo.cpp セーブ後であればincludeロックでが全解除されるので foo.hpp がセーブ可能になる。 -当然 foo.cpp 以外に foo.hpp をinclude しているソースでかつ、編集中のバッファがある場合は、 -それら全てを保存しないとロックでは解除されない。 - -Windows環境において、 -このロックはI/Oのopen関数によるロックはではなくWindowsAPIのCreateFileMappingによるロックである。 -libclang FileManagerは16kB以上のファイルをメモリマップドファイルとしてアロケーションする。 -TUがリリースされるとUnmapViewOfFileによりメモリマップドファイルがリリースされるようになりファイルに対して書き込み可能になる。 - -Linux環境においても発現する不具合はWindows環境と若干異なるものの mmap/munmapによる問題は発生する。 -foo.cppのTUを保持している状態でfoo.hppにおいてclass fooのメソッドを追加・削除し保存する。 -foo.hpp更新後にfoo.cppにおいてclass fooのメソッドを補間しようとするとTUがクラッシュする。 -libclangがSTDOUTに "libclang: crash detected in code completion" を出力する。 -clang-serverのプロセスは生きており、セッションを破棄して再生成すれば補間続行は可能。 - -## その他 - -上記の問題はlibclangにパッチを適用して改善している。 - -パッチを適用したリリースバイナリのlibclang-x86\_XX.(dll or so)を使用している場合は発生しない。 -パッチを適用していないLLVMセルフビルドおよび、LLVMオフィシャルバイナリを使用する場合にのみ問題が発生します。 -clang側の仕様バグなので現在LLVM bugzilla に報告済み。対応待ち中。 - - -# パッチ解説 - -## パッチ - -ac-clang/clang-server/patch/invalidate-mmap.patch -を使用。 - - cd llvm/ - svn patch ac-clang/clang-server/patch/invalidate-mmap.patch - -## パッチ(invalidate-mmap.patch)で行っている事 - -mmapを使わないようにパッチを適用している -適用するのは以下のソース -clang-trunk/llvm/lib/Support/MemoryBuffer.cpp - - static error_code getOpenFileImpl(int FD, const char *Filename, - OwningPtr &result, - uint64_t FileSize, uint64_t MapSize, - int64_t Offset, bool RequiresNullTerminator) { - -↑の関数内で呼ばれる shouldUseMmap によりファイルに対するmmapの使用可否が判断される - - static bool shouldUseMmap(int FD, - size_t FileSize, - size_t MapSize, - off_t Offset, - bool RequiresNullTerminator, - int PageSize) { - -この関数のresultが常時falseであればmmapは恒久的に使用されない。 -よってこの関数の先頭で - - return false; - -とすればよい。 -以降のコードは#if 0 end するなりすればよい。 - -## LLVM3.5の追加仕様 - -shouldUseMmap,getOpenFileImplに引数IsVolatileSizeが追加された。 -これはshouldUseMmapまで加工なしでパスされ、 -shouldUseMmap先頭において、 - - if (IsVolatileSize) - return false; - -される。 -コメントがついていた - - // mmap may leave the buffer without null terminator if the file size changed - // by the time the last page is mapped in, so avoid it if the file size is - // likely to change. - -mmapはファイルサイズが最後のページがマップされたされた時点で変更された場合はnull終端せずにバッファを残すので、ファイルサイズが変更される可能性がある場合は、それを回避することができる。 - -とは言っているものの、想定されていない事態がいろいろあるようで仕様抜けの模様。 -またバッファ確保系関数の上流で IsVolatileSize が指定されていなかったりコンストラクタのデフォルト値のまま運用されている箇所が何箇所か見受けられた。 -そういった箇所を自前で修正してみたところ従来よりマシになったものの、他にも問題があるようで想定通りにmmapを制御は出来なかった。 -LLVMのファイルシステム・メモリ周りの仕様を完全に把握していないと、ここら辺の修正は厳しいのかもしれない。 -よって現時点においては上記パッチ適用が一番無難なやり方となる。 diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.ja.org b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.ja.org deleted file mode 100644 index 77a3ede..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.ja.org +++ /dev/null @@ -1,297 +0,0 @@ -# -*- mode: org ; coding: utf-8-unix -*- -# last updated : 2015/07/21.00:46:00 - - -#+TITLE: Clang Server Manual -#+AUTHOR: yaruopooner -#+EMAIL: [https://github.com/yaruopooner] -#+OPTIONS: author:nil timestamp:t |:t \n:t ^:nil - - -[[./readme.org][English Manual]] - -* このドキュメントについて - clang-serverのセルフビルドについて説明します。 - ※Windows環境で付属の実行ファイルを利用する場合は読まなくても問題ありません。 - -* セルフビルド手順 - clang-serverのビルドにはLLVMのlibclangが必要になります。 - ですのでLLVM libclangをセルフビルドしてからclang-serverをセルフビルドします。 - -** LLVMセルフビルド - 以下の4つを行います。 - この作業を簡略化するスクリプトもあります。 - - LLVMのチェックアウト - - パッチの適用 - - CMake or configureによるプロジェクトファイル生成 - - ビルド - -** clang-serverセルフビルド - LLVMセルフビルドで生成したパッチ適用済みのライブラリ libclang を使用します。 - - CMakeによるプロジェクトファイル生成 - - ビルド - - インストール - -* セルフビルドに必要なソフトウェア -** Windows - 以下が必要になります。 -*** LLVM - ビルド済みライブラリ - libclang.lib or libclang.imp - libclang.dll - が必要です。 - -*** Visual Studio 2015/2013/2012/2010 - どれでもOK - -*** CMake - http://www.cmake.org/ - - Windows ZIPをダウンロードして何処かへ展開。 - Visual Studio ソリューション&プロジェクトファイル生成と、ビルド&インストールのmsbuild呼び出しで使用されます。 - -** Linux - 以下が必要になります。 -*** LLVM - ビルド済みライブラリ - libclang.so - が必要です。 - -*** CMake - #+begin_src shell - $ sudo apt-get install cmake - #+end_src - - 最新版の場合は↓からダウンロード - - http://www.cmake.org/ - - cmake-3.1.3.tar.gzをダウンロードし解凍、ビルド、インストールを行う。 - #+begin_src shell - $ tar -xf cmake-3.1.3.tar.gz . - $ cd cmake-3.1.3 - $ ./configure && make - $ make install - #+end_src - -* セルフビルド -** Windows -*** LLVM - LLVMのセルフビルドが必要になります。 - またセルフビルド時にパッチを適用する必要があります。 - セルフビルド後のパッケージはインストールする必要はありません。 - ビルド後に生成されたバイナリを指すパスを - CMakeによるプロジェクト生成時に設定すればビルド可能です。 - LLVMがインストール済みであればインストールされているディレクトリを指定します。 - - LLVMセルフビルドを行う場合は - 自前でチェックアウトし、CMakeでLLVMソリューションファイルを生成するか、以下のshell scriptを使用してください。 - https://github.com/yaruopooner/llvm-build-shells - -**** スクリプトでLLVMパッチを適用する方法 - builderShell の引数に -tasks を指定し、-tasks パラメーターに PATCH を追加、 - パッチを適用するパスとパッチファイルを記述したテーブルを -patchInfos パラメーターとして与えます。 - 詳しくはllvm-build-shellsのsample.ps1を参考にしてください。 - -**** LLVMパッチの内容 - mmapの使用が常時無効化されます。 - -*** clang-server - ac-clang/build/builder_sample.bat - を使用します。 - 必要に応じてbuilder_sample.batを編集してください。 - コマンドラインかエクスプローラーから実行します。 - - - example - #+begin_src bat - cmake -G "Visual Studio 12 2013 Win64" ../clang-server -DLIBRARY_PATHS="c:/cygwin-x86_64/tmp/llvm-build-shells/ps1/clang-360/build/msvc-64/" -DCMAKE_INSTALL_PREFIX="c:/cygwin-x86_64/usr/local/bin/" - #+end_src - - - オプション解説 - - =-DLIBRARY_PATHS= - セルフビルドしたLLVMが配置されているディレクトリを指定します。 - LLVMのトップディレクトリである必要があります。 - 省略した場合は ac-clang/clang-server が使われます。 - - =-DCMAKE_INSTALL_PREFIX= - clang-serverのインストールパスを指定します。 - 省略した場合は - =C:/Program Files/clang-server= - になります。 - -** Linux -*** LLVM - LLVMのセルフビルドが必要になります。 - またセルフビルド時にパッチを適用する必要があります。 - セルフビルド後のパッケージはインストールする必要はありません。 - ビルド後に生成されたバイナリを指すパスを - CMakeによるプロジェクト生成時に設定すればビルド可能です。 - LLVMがインストール済みであればインストールされているディレクトリを指定します。 - - LLVMセルフビルドを行う場合は - 自前でチェックアウトし、CMakeでLLVMソリューションファイルを生成するか、以下のshell scriptを使用してください。 - https://github.com/yaruopooner/llvm-build-shells - -**** スクリプトでLLVMパッチを適用する方法 - executeBuilder の引数に -patch を追加し、 - パッチを適用するパスを-patchApplyLocation、 - パッチファイルを-patchPathに記述して引数として与えます。 - -patchApplyLocation,-patchPathはペアになっており、複数回指定可能です。 - 詳しくはllvm-build-shellsのsample.shを参考にしてください。 - -**** LLVMパッチの内容 - mmapの使用が常時無効化されます。 - -*** clang-server - ac-clang/build/builder_sample.sh - を使用します。 - 必要に応じてbuilder_sample.shを編集してください。 - builder_sample.shを実行します。 - - - example - #+begin_src shell-script - cmake -G "Unix Makefiles" ../clang-server -DLIBRARY_PATHS="/home/yaruopooner/work/llvm-build-shells/sh/clang-350/build" -DCMAKE_INSTALL_PREFIX="~/work/clang-server" - #+end_src - - - オプション解説 - - =-DLIBRARY_PATHS= - セルフビルドしたLLVMが配置されているディレクトリを指定します。 - LLVMのトップディレクトリである必要があります。 - 省略した場合は ac-clang/clang-server が使われます。 - - =-DCMAKE_INSTALL_PREFIX= - clang-serverのインストールパスを指定します。 - 省略した場合は - =/usr/local/bin= - になります。 - -* パッチ適用済みバイナリ(Windows Only) - https://github.com/yaruopooner/ac-clang/releases - - 上記に置いてあるclang-server-X.X.X.zipは - パッチ適用済みのバイナリとライブラリファイル - - clang-server.exe - - libclang.dll - - libclang.lib or libclang.imp - の3ファイルが格納されています。 - - LLVMはセルフビルドせずにclang-serverのみをセルフビルドする場合は - clang-server-X.X.X.zipをac-clangに解凍します。 - すると以下のように配置されます。 - ac-clang/clang-server/binary/clang-server.exe - ac-clang/clang-server/library/x86_64/release/libclang.dll - ac-clang/clang-server/library/x86_64/release/libclang.lib - -* パッチを適用せずLLVMオフィシャルのlibclangを使用する場合の制限事項 -** 特定ファイルがロックされセーブできなくなる - 編集したヘッダファイルをセーブしようとすると "basic-save-buffer-2: Opening output file: invalid argument `HEADER-FILE-NAME`" となりセーブできない。 - 必ず発生するわけではなく特定の条件を満たしたファイルサイズが16kBを越えるヘッダファイルで発生する。 - 16kB以下のヘッダファイルではまったく発生しない。 - libclang の TranslationUnit(以下TU) の問題。 - libclang の TU がinclude対象のファイルをロックしている。 - ac-clang側で暫定対処パッチを施してあるので多少は緩和されているが完全に回避はできない。 - 発生した場合はマニュアル対処する以外ない。 - -*** emacs側での対処方法 - include対象なので大抵は foo.cpp/foo.hpp という構成だとおもわれます。 - foo.hpp(modified)がセーブできない場合、大抵foo.cppが(modified)になっているのでfoo.cppをセーブしましょう。 - これによりfoo.hppはセーブ可能になるはずです。 - これでもセーブできない場合は、foo.cpp以外のソースでfoo.hppをインクルードしており(modified)になっているバッファがあるはずなので - それもセーブしましょう。 - また、定義へのジャンプ機能で該当ソースがアクティブ化されている場合は、未編集バッファであってもアクティブ化されています。 - 該当バッファを削除してみるか、そのバッファへスイッチして (ac-clang-deactivate) を実行してください。 - これ以外でも16kBを越えるヘッダを編集しようとした際に、そのファイルのcppはオープンしてもいないのにセーブできない場合、 - 該当ヘッダファイルを何処か遠いモジュールでインクルードしている場合なども同様の症状になります。 - ライブラリモジュールやフレームワークなどを開発している場合は発生しやすいかもしれません。 - ※ライブラリ・フレームワークはアプリ側からよくincludeされるため。 - -*** 原因(実装上の問題説明、解決案求む) - foo.cpp(modified)のとき foo.cppのセッションで - TUが foo.cpp パース後もincludeされているファイルのロックを保持しつづけている。 - この状態で foo.hpp を編集してセーブしようとするとロックでエラーになる。 - ロックを解除するには、 foo.cpp のTUをリリースする。 - なので foo.cpp セーブ時にセッションは保持した状態で TU だけをリリースして、 - foo.cpp が再び modified になったときに TU を生成するように修正。 - これにより foo.cpp セーブ後であればincludeロックでが全解除されるので foo.hpp がセーブ可能になる。 - 当然 foo.cpp 以外に foo.hpp をinclude しているソースでかつ、編集中のバッファがある場合は、 - それら全てを保存しないとロックでは解除されない。 - - Windows環境において、 - このロックはI/Oのopen関数によるロックはではなくWindowsAPIのCreateFileMappingによるロックである。 - libclang FileManagerは16kB以上のファイルをメモリマップドファイルとしてアロケーションする。 - TUがリリースされるとUnmapViewOfFileによりメモリマップドファイルがリリースされるようになりファイルに対して書き込み可能になる。 - - Linux環境においても発現する不具合はWindows環境と若干異なるものの mmap/munmapによる問題は発生する。 - foo.cppのTUを保持している状態でfoo.hppにおいてclass fooのメソッドを追加・削除し保存する。 - foo.hpp更新後にfoo.cppにおいてclass fooのメソッドを補間しようとするとTUがクラッシュする。 - libclangがSTDOUTに "libclang: crash detected in code completion" を出力する。 - clang-serverのプロセスは生きており、セッションを破棄して再生成すれば補間続行は可能。 - -** その他 - 上記の問題はlibclangにパッチを適用して改善している。 - - パッチを適用したリリースバイナリのlibclang-x86_XX.(dll or so)を使用している場合は発生しない。 - パッチを適用していないLLVMセルフビルドおよび、LLVMオフィシャルバイナリを使用する場合にのみ問題が発生します。 - clang側の仕様バグなので現在LLVM bugzilla に報告済み。対応待ち中。 - http://llvm.org/bugs/show_bug.cgi?id=20880 - -* パッチ解説 -** パッチ - ac-clang/clang-server/patch/invalidate-mmap.patch - を使用。 - #+begin_src shell-script - cd llvm/ - svn patch ac-clang/clang-server/patch/invalidate-mmap.patch - #+end_src - -** パッチ(invalidate-mmap.patch)で行っている事 - mmapを使わないようにパッチを適用している - 適用するのは以下のソース - clang-trunk/llvm/lib/Support/MemoryBuffer.cpp - -#+begin_src C++ - static error_code getOpenFileImpl(int FD, const char *Filename, - OwningPtr &result, - uint64_t FileSize, uint64_t MapSize, - int64_t Offset, bool RequiresNullTerminator) { -#+end_src - - ↑の関数内で呼ばれる shouldUseMmap によりファイルに対するmmapの使用可否が判断される -#+begin_src C++ - static bool shouldUseMmap(int FD, - size_t FileSize, - size_t MapSize, - off_t Offset, - bool RequiresNullTerminator, - int PageSize) { -#+end_src - この関数のresultが常時falseであればmmapは恒久的に使用されない。 - よってこの関数の先頭で -#+begin_src C++ - return false; -#+end_src - とすればよい。 - 以降のコードは#if 0 end するなりすればよい。 - -** LLVM3.5の追加仕様 - shouldUseMmap,getOpenFileImplに引数IsVolatileSizeが追加された。 - これはshouldUseMmapまで加工なしでパスされ、 - shouldUseMmap先頭において、 -#+begin_src C++ - if (IsVolatileSize) - return false; -#+end_src - される。 - コメントがついていた -#+begin_src C++ - // mmap may leave the buffer without null terminator if the file size changed - // by the time the last page is mapped in, so avoid it if the file size is - // likely to change. -#+end_src - - mmapはファイルサイズが最後のページがマップされたされた時点で変更された場合はnull終端せずにバッファを残すので、ファイルサイズが変更される可能性がある場合は、それを回避することができる。 - - とは言っているものの、想定されていない事態がいろいろあるようで仕様抜けの模様。 - またバッファ確保系関数の上流で IsVolatileSize が指定されていなかったりコンストラクタのデフォルト値のまま運用されている箇所が何箇所か見受けられた。 - そういった箇所を自前で修正してみたところ従来よりマシになったものの、他にも問題があるようで想定通りにmmapを制御は出来なかった。 - LLVMのファイルシステム・メモリ周りの仕様を完全に把握していないと、ここら辺の修正は厳しいのかもしれない。 - よって現時点においては上記パッチ適用が一番無難なやり方となる。 - diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.md b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.md deleted file mode 100755 index 9925e17..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.md +++ /dev/null @@ -1,392 +0,0 @@ - - - -[Japanese Manual](./readme.ja.md) - -# About this document - -This is explained about self-build of clang-server. -When you use clang-server binary for distribution on Windows environment, it is not necessary to read this document. - -# Step of self-build - -A build of clang-server requires libclang of LLVM. -Therefore, first self-build is LLVM libclang, next self-build is clang-server. - -## LLVM self-build - -You have to do four step of following. -There is also a script which simplify this work. -- Checkout LLVM -- Apply patch to LLVM for libclang -- Project file generation by CMAKE or configure -- Build - -## clang-server self-build - -Patch applied libclang library use by LLVM self-build -Use the patch applied libclang library -- Project file generation by CMAKE -- Build -- Installation - -# Software required for self-build - -## Windows - -The following is required. - -### LLVM - -The following built library is required. -libclang.lib or libclang.imp -libclang.dll - -### Visual Studio 2015/2013/2012/2010 - -any OK - -### CMake - - - -Download cmake archive, and decompress to any location. -CMake is used for Visual Studio Solution File generation and build and installation. - -## Linux - -The following is required. - -### LLVM - -The following built library is required. -libclang.so - -### CMake - - $ sudo apt-get install cmake - -If you want to use latest version, download from following - - - -e.g. -Download cmake-3.1.3.tar.gz, and decompress to work directory. -You perform a build and installation. - - $ tar -xf cmake-3.1.3.tar.gz . - $ cd cmake-3.1.3 - $ ./configure && make - $ make install - -# Self-Build - -## Windows - -### LLVM - -Required process for LLVM self-build. -And you must apply patch to LLVM before build. -It isn't necessary install a package after self-build. -You must designate generated binary PATH after LLVM self-build at CMake project generation argument. -Therefore clang-server is able to build. -When LLVM is already installed, you must designate installed directory of LLVM. - -When you want to self-build, -Checkout from SVN by yourself, and perform the LLVM Solution File generation and build by cmake. -Or, use following script. - - -1. How to designate the LLVM patch in the script - - You will designate -tasks to the argument of builderShell, - and designate PATCH to the parameter of -tasks, - It will gives a table that describes the path to apply the patch and patch file to parameter of -patchInfos. - Please refer to the sample.ps1 of llvm-build-shells for details. - -2. The contents of the LLVM patch - - Use of mmap always invalidation. - -### clang-server - -Use the ac-clang/build/builder\_sample.bat -Please edit the builder\_sample.bat as necessary. -It's necessary to execute in the command line or Windows Explorer. - -- example - - cmake -G "Visual Studio 12 2013 Win64" ../clang-server -DLIBRARY_PATHS="c:/cygwin-x86_64/tmp/llvm-build-shells/ps1/clang-360/build/msvc-64/" -DCMAKE_INSTALL_PREFIX="c:/cygwin-x86_64/usr/local/bin/" - -- Option commentary - - `-DLIBRARY_PATHS` - You have to designate location of LLVM self-build completed directory. - It is necessary to designate the directory that a binary was generated.(e.g. {LLVM output path}/Release/) - If you omit this option, value will be use `ac-clang/clang-server` . - - `-DCMAKE_INSTALL_PREFIX` - You have to designate installation location of clang-server. - If you omit this option, value will be use `C:/Program Files/clang-server` . - -## Linux - -### LLVM - -Required process for LLVM self-build. -And you must apply patch to LLVM before build. -It isn't necessary install a package after self-build. -You must designate generated binary PATH after LLVM self-build at CMake project generation argument. -Therefore clang-server is able to build. -When LLVM is already installed, you must designate installed directory of LLVM. - -When you want to self-build, -Checkout from SVN by yourself, and perform the LLVM Solution File generation and build by cmake. -Or, use following script. - - -1. How to designate the LLVM patch in the script - - You will designate -patch to the argument of executeBuilder. - Add to -patchApplyLocation the path where you want to apply the patch. - You write the patch file to -patchPath gives as an parameter. - -patchApplyLocation,-patchPath becomes the pair, it is possible to multiple times designate. - Please refer to the sample.sh of llvm-build-shells for details. - -2. The contents of the LLVM patch - - Use of mmap always invalidation. - -### clang-server - -Use the ac-clang/build/builder\_sample.sh -Please edit the builder\_sample.sh as necessary. -Execute the builder\_sample.sh - -- example - - cmake -G "Unix Makefiles" ../clang-server -DLIBRARY_PATHS="/home/yaruopooner/work/llvm-build-shells/sh/clang-350/build" -DCMAKE_INSTALL_PREFIX="~/work/clang-server" - -- Option commentary - - `-DLIBRARY_PATHS` - You have to designate location of LLVM self-build completed directory. - It is necessary to designate the directory that a binary was generated.(e.g. {LLVM output path}/Release/) - If you omit this option, value will be use `ac-clang/clang-server` . - - `-DCMAKE_INSTALL_PREFIX` - You have to designate installation location of clang-server. - If you omit this option, value will be use `/usr/local/bin` . - -# Patch was applied binary(Windows Only) - - - -clang-server-X.X.X.zip is you can download from the above -The archive is 3 files contain, these file applied patch. -- clang-server.exe -- libclang.dll -- libclang.lib or libclang.imp - -When you want to self-build only clang-server without LLVM, -clang-server-X.X.X.zip decompress to ac-clang directory. -Then, it will be placed in the following. -ac-clang/clang-server/binary/clang-server.exe -ac-clang/clang-server/library/x86\_64/release/libclang.dll -ac-clang/clang-server/library/x86\_64/release/libclang.lib - -# Restrictions when you use LLVM official libclang without applying a patch - -## A specific file is locked and cannot save it - -When you try to save the edited header file, -it will be "basic-save-buffer-2: Opening output file: invalid argument \`HEADER-FILE-NAME\`", -and you can't save. -This occur if it meets certain conditions. -This condition is met when the header file size is larger than 16kB. -It is not at all occur when header file size is smaller than 16kB. -This issue belong to TranslationUnit(TU) of libclang. -The inclusion target file is locked by TU of libclang. -By performing a provisional transaction in ac-clang side, the more or less is erased, but it can't be avoided perfectly. -When this issue is occurring, only manual handle can be avoided. - -### Solution in Emacs side - -I suppose that combination of source file is foo.cpp/foo.hpp. -When foo.hpp(modified) can't save, foo.cpp is (modified) often, so foo.cpp have to saved. -Therefore, foo.hpp should be possible to save. -When this can't save, -foo.hpp is included by source files besides foo.cpp, and it has (modified) status. -You have to save those. -And, when corresponding source is activated by definition jump feature, even if buffer don't modified that buffer is activated. -You try remove corresponding buffer, or (ac-clang-deactivate) must be execute in buffer. -In other cases, when you try save header file that file size larger than 16kB -When you save a header file of larger than 16kB, if it fails. -And that header file does not opened. -In this case, header file is included by a far module from current source file. -When you having developed a library module framework, it may be easy to occur. -because library and framework is included from application side. - -### Issue(Implementation issues explanation, it wanted suggested solutions) - -When session of "foo.cpp" is edited in the buffer, -TU continue locking to included header file after parsed "foo.cpp". - -When you edit and save to "foo.hpp" in this state, it occur error, because file is locked by mmap. - -Therefore I modified a server as follows. -So while maintaining the session when "foo.cpp" saving, -TU is generated when "foo.cpp" is edited after TU released. - -Therefore "foo.hpp" is possible to save that the included header file is unlocked after "foo.cpp" saved. - -When a "foo.hpp" is included buffer where exist in buffer editing group without buffer of "foo.cpp", -the lock is not released when you does not save all them. - -In the Windows environment, -This lock is not open function of I/O, is a lock by CreateFileMapping of WindowsAPI. -libclang FileManager does allocation to memory mapped file for the files larger than 16kB. -When TU is released, memory mapped file is released by UnmapViewOfFile, these becomes writable to file. - -In the Linux environment, -problems with mmap/munmap bug differ slightly from the Windows environment, but also occurred in Linux environment. -The method add to "class Foo" in "foo.hpp" in the state that holds TU of "foo.cpp", and save to file. -After "foo.hpp" update, when you try complete method of "class Foo" in the "foo.cpp", TU will crash. -in this case, libclang output to STDOUT that "libclang: crash detected in code completion" -libclang output "libclang: crash detected in code completion" to STDOUT. -The process of clang-server is living in this situation. -Completion is possible after deletion of session and creation of session. - -## Miscellaneous - -The above problems are solved by patching for libclang. - -When you use the patch applied release binary(libclang.dll or so) it is not occur. -When you use the patch does not applied to LLVM self-build and LLVM official binary, this problem is occur. -I think specification bug of clang side. This problem has been reported to LLVM bugzilla. in the corresponding waitting. - - -# Patch commentary - -## Patch - -Use the ac-clang/clang-server/patch/invalidate-mmap.patch - - cd llvm/ - svn patch ac-clang/clang-server/patch/invalidate-mmap.patch - -## The contents of the LLVM patch(invalidate-mmap.patch) - -Patch is applied so as not to use mmap. -Apply to the following source code to -`clang-trunk/llvm/lib/Support/MemoryBuffer.cpp` - - static error_code getOpenFileImpl(int FD, const char *Filename, - OwningPtr &result, - uint64_t FileSize, uint64_t MapSize, - int64_t Offset, bool RequiresNullTerminator) { - -It is determined availability of mmap for file by shouldUseMmap call from the above function. - - static bool shouldUseMmap(int FD, - size_t FileSize, - size_t MapSize, - off_t Offset, - bool RequiresNullTerminator, - int PageSize) { - -When the result of function is always false, mmap is not never used. -Therefore, the following modify has been applied to the top of this function. - - #if 1 - return false; - #else - /* original codes */ - #endif - -## TODO Additional Specification of LLVM3.5 - -IsVolatileSize has been added to arguments of shouldUseMmap and getOpenFileImpl. -This will be passed unchanged to shouldUseMmap. - -It is executed as follows in the shouldUseMmap top. - - if (IsVolatileSize) - return false; - -Following comments had been attached - - // mmap may leave the buffer without null terminator if the file size changed - // by the time the last page is mapped in, so avoid it if the file size is - // likely to change. - -Although that said, there is a situation which isn't assumed Variously, I'm supposing that mistake of specification. -Moreover, upstream function of buffer association function -I was found some place where is not designated value of IsVolatileSize and is used default value of constructor argument. -I tried modified it. -Result was become more better than conventional. -But it seem to have a problem, because I was not able to control mmap like a assumption. -I'm not enough understand the specification of around the file system and memory of LLVM. -For that reason that the rightly correction is difficult. -Therefore, the above patching becomes the most safe way at present. diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.org b/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.org deleted file mode 100755 index 8dd6b62..0000000 --- a/.emacs.d/elpa/ac-clang-20150906.1008/clang-server/readme.org +++ /dev/null @@ -1,314 +0,0 @@ -# -*- mode: org ; coding: utf-8-unix -*- -# last updated : 2015/07/21.00:46:31 - - -#+TITLE: Clang Server Manual -#+AUTHOR: yaruopooner -#+EMAIL: [https://github.com/yaruopooner] -#+OPTIONS: author:nil timestamp:t |:t \n:t ^:nil - - -[[./readme.ja.org][Japanese Manual]] - -* About this document - This is explained about self-build of clang-server. - When you use clang-server binary for distribution on Windows environment, it is not necessary to read this document. - -* Step of self-build - A build of clang-server requires libclang of LLVM. - Therefore, first self-build is LLVM libclang, next self-build is clang-server. - -** LLVM self-build - You have to do four step of following. - There is also a script which simplify this work. - - Checkout LLVM - - Apply patch to LLVM for libclang - - Project file generation by CMAKE or configure - - Build - -** clang-server self-build - Patch applied libclang library use by LLVM self-build - Use the patch applied libclang library - - Project file generation by CMAKE - - Build - - Installation - -* Software required for self-build -** Windows - The following is required. -*** LLVM - The following built library is required. - libclang.lib or libclang.imp - libclang.dll - -*** Visual Studio 2015/2013/2012/2010 - any OK - -*** CMake - http://www.cmake.org/ - - Download cmake archive, and decompress to any location. - CMake is used for Visual Studio Solution File generation and build and installation. - -** Linux - The following is required. -*** LLVM - The following built library is required. - libclang.so - -*** CMake - #+begin_src shell - $ sudo apt-get install cmake - #+end_src - - If you want to use latest version, download from following - - http://www.cmake.org/ - - e.g. - Download cmake-3.1.3.tar.gz, and decompress to work directory. - You perform a build and installation. - #+begin_src shell - $ tar -xf cmake-3.1.3.tar.gz . - $ cd cmake-3.1.3 - $ ./configure && make - $ make install - #+end_src - -* Self-Build -** Windows -*** LLVM - Required process for LLVM self-build. - And you must apply patch to LLVM before build. - It isn't necessary install a package after self-build. - You must designate generated binary PATH after LLVM self-build at CMake project generation argument. - Therefore clang-server is able to build. - When LLVM is already installed, you must designate installed directory of LLVM. - - When you want to self-build, - Checkout from SVN by yourself, and perform the LLVM Solution File generation and build by cmake. - Or, use following script. - https://github.com/yaruopooner/llvm-build-shells - -**** How to designate the LLVM patch in the script - You will designate -tasks to the argument of builderShell, - and designate PATCH to the parameter of -tasks, - It will gives a table that describes the path to apply the patch and patch file to parameter of -patchInfos. - Please refer to the sample.ps1 of llvm-build-shells for details. - -**** The contents of the LLVM patch - Use of mmap always invalidation. - -*** clang-server - Use the ac-clang/build/builder_sample.bat - Please edit the builder_sample.bat as necessary. - It's necessary to execute in the command line or Windows Explorer. - - - example - #+begin_src bat - cmake -G "Visual Studio 12 2013 Win64" ../clang-server -DLIBRARY_PATHS="c:/cygwin-x86_64/tmp/llvm-build-shells/ps1/clang-360/build/msvc-64/" -DCMAKE_INSTALL_PREFIX="c:/cygwin-x86_64/usr/local/bin/" - #+end_src - - - Option commentary - - =-DLIBRARY_PATHS= - You have to designate location of LLVM self-build completed directory. - It is necessary to designate the directory that a binary was generated.(e.g. {LLVM output path}/Release/) - If you omit this option, value will be use =ac-clang/clang-server= . - - =-DCMAKE_INSTALL_PREFIX= - You have to designate installation location of clang-server. - If you omit this option, value will be use =C:/Program Files/clang-server= . - -** Linux -*** LLVM - Required process for LLVM self-build. - And you must apply patch to LLVM before build. - It isn't necessary install a package after self-build. - You must designate generated binary PATH after LLVM self-build at CMake project generation argument. - Therefore clang-server is able to build. - When LLVM is already installed, you must designate installed directory of LLVM. - - When you want to self-build, - Checkout from SVN by yourself, and perform the LLVM Solution File generation and build by cmake. - Or, use following script. - https://github.com/yaruopooner/llvm-build-shells - -**** How to designate the LLVM patch in the script - You will designate -patch to the argument of executeBuilder. - Add to -patchApplyLocation the path where you want to apply the patch. - You write the patch file to -patchPath gives as an parameter. - -patchApplyLocation,-patchPath becomes the pair, it is possible to multiple times designate. - Please refer to the sample.sh of llvm-build-shells for details. - -**** The contents of the LLVM patch - Use of mmap always invalidation. - -*** clang-server - Use the ac-clang/build/builder_sample.sh - Please edit the builder_sample.sh as necessary. - Execute the builder_sample.sh - - - example - #+begin_src shell-script - cmake -G "Unix Makefiles" ../clang-server -DLIBRARY_PATHS="/home/yaruopooner/work/llvm-build-shells/sh/clang-350/build" -DCMAKE_INSTALL_PREFIX="~/work/clang-server" - #+end_src - - - Option commentary - - =-DLIBRARY_PATHS= - You have to designate location of LLVM self-build completed directory. - It is necessary to designate the directory that a binary was generated.(e.g. {LLVM output path}/Release/) - If you omit this option, value will be use =ac-clang/clang-server= . - - =-DCMAKE_INSTALL_PREFIX= - You have to designate installation location of clang-server. - If you omit this option, value will be use =/usr/local/bin= . - -* Patch was applied binary(Windows Only) - https://github.com/yaruopooner/ac-clang/releases - - clang-server-X.X.X.zip is you can download from the above - The archive is 3 files contain, these file applied patch. - - clang-server.exe - - libclang.dll - - libclang.lib or libclang.imp - - When you want to self-build only clang-server without LLVM, - clang-server-X.X.X.zip decompress to ac-clang directory. - Then, it will be placed in the following. - ac-clang/clang-server/binary/clang-server.exe - ac-clang/clang-server/library/x86_64/release/libclang.dll - ac-clang/clang-server/library/x86_64/release/libclang.lib - -* Restrictions when you use LLVM official libclang without applying a patch -** A specific file is locked and cannot save it - When you try to save the edited header file, - it will be "basic-save-buffer-2: Opening output file: invalid argument `HEADER-FILE-NAME`", - and you can't save. - This occur if it meets certain conditions. - This condition is met when the header file size is larger than 16kB. - It is not at all occur when header file size is smaller than 16kB. - This issue belong to TranslationUnit(TU) of libclang. - The inclusion target file is locked by TU of libclang. - By performing a provisional transaction in ac-clang side, the more or less is erased, but it can't be avoided perfectly. - When this issue is occurring, only manual handle can be avoided. - -*** Solution in Emacs side - I suppose that combination of source file is foo.cpp/foo.hpp. - When foo.hpp(modified) can't save, foo.cpp is (modified) often, so foo.cpp have to saved. - Therefore, foo.hpp should be possible to save. - When this can't save, - foo.hpp is included by source files besides foo.cpp, and it has (modified) status. - You have to save those. - And, when corresponding source is activated by definition jump feature, even if buffer don't modified that buffer is activated. - You try remove corresponding buffer, or (ac-clang-deactivate) must be execute in buffer. - In other cases, when you try save header file that file size larger than 16kB - When you save a header file of larger than 16kB, if it fails. - And that header file does not opened. - In this case, header file is included by a far module from current source file. - When you having developed a library module framework, it may be easy to occur. - because library and framework is included from application side. - -*** Issue(Implementation issues explanation, it wanted suggested solutions) - When session of "foo.cpp" is edited in the buffer, - TU continue locking to included header file after parsed "foo.cpp". - - When you edit and save to "foo.hpp" in this state, it occur error, because file is locked by mmap. - - Therefore I modified a server as follows. - So while maintaining the session when "foo.cpp" saving, - TU is generated when "foo.cpp" is edited after TU released. - - Therefore "foo.hpp" is possible to save that the included header file is unlocked after "foo.cpp" saved. - - When a "foo.hpp" is included buffer where exist in buffer editing group without buffer of "foo.cpp", - the lock is not released when you does not save all them. - - - In the Windows environment, - This lock is not open function of I/O, is a lock by CreateFileMapping of WindowsAPI. - libclang FileManager does allocation to memory mapped file for the files larger than 16kB. - When TU is released, memory mapped file is released by UnmapViewOfFile, these becomes writable to file. - - In the Linux environment, - problems with mmap/munmap bug differ slightly from the Windows environment, but also occurred in Linux environment. - The method add to "class Foo" in "foo.hpp" in the state that holds TU of "foo.cpp", and save to file. - After "foo.hpp" update, when you try complete method of "class Foo" in the "foo.cpp", TU will crash. - in this case, libclang output to STDOUT that "libclang: crash detected in code completion" - libclang output "libclang: crash detected in code completion" to STDOUT. - The process of clang-server is living in this situation. - Completion is possible after deletion of session and creation of session. - -** Miscellaneous - The above problems are solved by patching for libclang. - - When you use the patch applied release binary(libclang.dll or so) it is not occur. - When you use the patch does not applied to LLVM self-build and LLVM official binary, this problem is occur. - I think specification bug of clang side. This problem has been reported to LLVM bugzilla. in the corresponding waitting. - http://llvm.org/bugs/show_bug.cgi?id=20880 - -* Patch commentary -** Patch - Use the ac-clang/clang-server/patch/invalidate-mmap.patch - #+begin_src shell-script - cd llvm/ - svn patch ac-clang/clang-server/patch/invalidate-mmap.patch - #+end_src - -** The contents of the LLVM patch(invalidate-mmap.patch) - Patch is applied so as not to use mmap. - Apply to the following source code to - =clang-trunk/llvm/lib/Support/MemoryBuffer.cpp= - -#+begin_src C++ - static error_code getOpenFileImpl(int FD, const char *Filename, - OwningPtr &result, - uint64_t FileSize, uint64_t MapSize, - int64_t Offset, bool RequiresNullTerminator) { -#+end_src - - It is determined availability of mmap for file by shouldUseMmap call from the above function. - -#+begin_src C++ - static bool shouldUseMmap(int FD, - size_t FileSize, - size_t MapSize, - off_t Offset, - bool RequiresNullTerminator, - int PageSize) { -#+end_src - When the result of function is always false, mmap is not never used. - Therefore, the following modify has been applied to the top of this function. -#+begin_src C++ - #if 1 - return false; - #else - /* original codes */ - #endif -#+end_src - -** TODO Additional Specification of LLVM3.5 - IsVolatileSize has been added to arguments of shouldUseMmap and getOpenFileImpl. - This will be passed unchanged to shouldUseMmap. - - It is executed as follows in the shouldUseMmap top. -#+begin_src C++ - if (IsVolatileSize) - return false; -#+end_src - - Following comments had been attached -#+begin_src C++ - // mmap may leave the buffer without null terminator if the file size changed - // by the time the last page is mapped in, so avoid it if the file size is - // likely to change. -#+end_src - - Although that said, there is a situation which isn't assumed Variously, I'm supposing that mistake of specification. - Moreover, upstream function of buffer association function - I was found some place where is not designated value of IsVolatileSize and is used default value of constructor argument. - I tried modified it. - Result was become more better than conventional. - But it seem to have a problem, because I was not able to control mmap like a assumption. - I'm not enough understand the specification of around the file system and memory of LLVM. - For that reason that the rightly correction is difficult. - Therefore, the above patching becomes the most safe way at present. - - diff --git a/.emacs.d/elpa/ac-clang-20150906.1008/sample-pic-complete.png b/.emacs.d/elpa/ac-clang-20150906.1008/sample-pic-complete.png deleted file mode 100644 index 9077f03fede7b9f08e7b3ed943c9e8b22adacc5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60125 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 diff --git a/.emacs.d/elpa/archives/gnu/archive-contents b/.emacs.d/elpa/archives/gnu/archive-contents index a60ec47..d2be2bc 100644 --- a/.emacs.d/elpa/archives/gnu/archive-contents +++ b/.emacs.d/elpa/archives/gnu/archive-contents @@ -750,10 +750,12 @@ ((:keywords "convenience") (:url . "https://github.com/abo-abo/tiny"))]) (tramp-theme . - [(0 1) - nil "Custom theme for remote buffers" single + [(0 1 1) + ((emacs + (24 1))) + "Custom theme for remote buffers" single ((:url . "http://elpa.gnu.org/packages/tramp-theme.html") - (:keywords))]) + (:keywords "convenience" "faces"))]) (transcribe . [(1 0 2) nil "Package for audio transcriptions" single @@ -777,6 +779,15 @@ [(0 1) nil "Unicode confusables table" tar ((:url . "http://elpa.gnu.org/packages/uni-confusables.html"))]) + (url-http-ntlm . + [(2 0 1) + ((cl-lib + (0 5)) + (ntlm + (2 0 0))) + "NTLM authentication for the url library" tar + ((:keywords "comm" "data" "processes" "hypermedia") + (:url . "http://elpa.gnu.org/packages/url-http-ntlm.html"))]) (vlf . [(1 7) nil "View Large Files" tar diff --git a/.emacs.d/elpa/archives/gnu/archive-contents.signed b/.emacs.d/elpa/archives/gnu/archive-contents.signed index 0824603..c439c67 100644 --- a/.emacs.d/elpa/archives/gnu/archive-contents.signed +++ b/.emacs.d/elpa/archives/gnu/archive-contents.signed @@ -1 +1 @@ -Good signature from 474F05837FBDEF9B GNU ELPA Signing Agent (trust undefined) created at 2016-02-17T11:10:03+0100 using DSA \ No newline at end of file +Good signature from 474F05837FBDEF9B GNU ELPA Signing Agent (trust undefined) created at 2016-02-21T11:20:02+0100 using DSA \ No newline at end of file diff --git a/.emacs.d/elpa/archives/melpa/archive-contents b/.emacs.d/elpa/archives/melpa/archive-contents index 396545c..2124b75 100644 --- a/.emacs.d/elpa/archives/melpa/archive-contents +++ b/.emacs.d/elpa/archives/melpa/archive-contents @@ -1,2 +1,2 @@ -(1 (zzz-to-char . [(20160122 440) ((emacs (24 4)) (cl-lib (0 5)) (avy (0 3 0))) "Fancy version of `zap-to-char' command" single ((:url . "https://github.com/mrkkrp/zzz-to-char") (:keywords "convenience"))]) (zygospore . [(20140703 152) nil "reversible C-x 1 (delete-other-windows)" single ((:url . "https://github.com/louiskottmann/zygospore.el"))]) (ztree . [(20160127 1542) ((cl-lib (0))) "Text mode directory tree" tar ((:url . "https://github.com/fourier/ztree") (:keywords "files" "tools"))]) (zotxt . [(20151031 959) ((request-deferred (0 2 0))) "Tools to integrate emacs with Zotero via the zotxt plugin." tar nil]) (zotelo . [(20160118 2045) ((cl-lib (0 5))) "Manage Zotero collections from emacs" single ((:url . "https://github.com/vitoshka/zotelo") (:keywords "zotero" "emacs" "reftex" "bibtex" "mozrepl" "bibliography manager"))]) (zossima . [(20121123 1635) ((inf-ruby (2 2 3))) "Ruby from Emacs" tar ((:url . "https://github.com/technomancy/zossima") (:keywords "ruby" "convenience"))]) (zop-to-char . [(20160212 108) ((cl-lib (0 5))) "A replacement of zap-to-char." single ((:url . "https://github.com/thierryvolpiatto/zop-to-char"))]) (zoom-window . [(20151206 2105) nil "Zoom window like tmux" single ((:url . "https://github.com/syohex/emacs-zoom-window"))]) (zoom-frm . [(20151231 1625) ((frame-fns (0)) (frame-cmds (0))) "Commands to zoom frame font size." single ((:url . "http://www.emacswiki.org/zoom-frm.el") (:keywords "frames" "extensions" "convenience"))]) (zonokai-theme . [(20150408 2002) nil "No description available." tar nil]) (zones . [(20160209 920) nil "Zones of text - like multiple regions" single ((:url . "http://www.emacswiki.org/zones.el") (:keywords "narrow" "restriction" "widen" "region" "zone"))]) (zone-sl . [(20160201 410) ((emacs (24 3))) "Zone out with steam locomotives." single ((:url . "https://github.com/kawabata/zone-sl") (:keywords "games"))]) (zone-select . [(20160118 619) ((emacs (24 3)) (dash (2 8))) "Select zone programs." single ((:url . "https://github.com/kawabata/zone-select") (:keywords "games"))]) (zone-rainbow . [(20160120 534) ((emacs (24 3))) "Zone out with rainbow." single ((:url . "https://github.com/kawabata/zone-rainbow") (:keywords "games"))]) (zone-nyan . [(20160102 1456) ((esxml (0 3 1))) "Zone out with nyan cat" single ((:url . "https://github.com/wasamasa/zone-nyan") (:keywords "zone"))]) (zombie-trellys-mode . [(20150304 648) ((emacs (24)) (cl-lib (0 5)) (haskell-mode (1 5))) "A minor mode for interaction with Zombie Trellys" single ((:keywords "languages"))]) (zombie . [(20141222 816) nil "major mode for editing ZOMBIE programs" single ((:url . "http://hins11.yu-yake.com/"))]) (znc . [(20140722 1421) ((cl-lib (0 2)) (erc (5 3))) "ZNC + ERC" single ((:url . "https://github.com/sshirokov/ZNC.el"))]) (zlc . [(20151010 1857) nil "Provides zsh like completion system to Emacs" single ((:keywords "matching" "convenience"))]) (zerodark-theme . [(20160216 711) nil "A dark, medium contrast theme for Emacs" single ((:url . "https://github.com/NicolasPetton/zerodark-theme") (:keywords "themes"))]) (zencoding-mode . [(20140213 22) nil "Unfold CSS-selector-like expressions to markup" single ((:url . "https://github.com/rooney/zencoding") (:keywords "convenience"))]) (zenburn-theme . [(20160204 1216) nil "A low contrast color theme for Emacs." single ((:url . "http://github.com/bbatsov/zenburn-emacs"))]) (zen-and-art-theme . [(20120622 737) nil "zen and art color theme for GNU Emacs 24" single nil]) (zeitgeist . [(20131228 1009) nil "No description available." single nil]) (zeal-at-point . [(20151231 48) nil "Search the word at point with Zeal" single ((:url . "https://github.com/jinzhu/zeal-at-point"))]) (z3-mode . [(20151120 1455) ((flycheck (0 23)) (emacs (24))) "A z3/SMTLIBv2 interactive development environment" single ((:url . "https://github.com/zv/z3-mode") (:keywords "z3" "yices" "mathsat" "smt" "beaver"))]) (youdao-dictionary . [(20150913 2344) ((popup (0 5 0)) (chinese-word-at-point (0 2)) (names (0 5)) (emacs (24))) "Youdao Dictionary interface for Emacs" single ((:url . "https://github.com/xuchunyang/youdao-dictionary.el") (:keywords "convenience" "chinese" "dictionary"))]) (yesql-ghosts . [(20150220 437) ((s (1 9 0)) (dash (2 10 0)) (cider (0 8 0))) "Display ghostly yesql defqueries inline" single nil]) (ycmd . [(20160214 2344) ((emacs (24)) (f (0 17 1)) (dash (1 2 0)) (deferred (0 3 2)) (popup (0 5 0)) (cl-lib (0 5))) "emacs bindings to the ycmd completion server" tar ((:url . "https://github.com/abingham/emacs-ycmd"))]) (ycm . [(20150822 1136) nil "Emacs client for the YouCompleteMe auto-completion server." single ((:keywords "c" "abbrev"))]) (yaxception . [(20150105 652) nil "Provide framework about exception like Java for Elisp" single ((:url . "https://github.com/aki2o/yaxception") (:keywords "exception" "error" "signal"))]) (yatex . [(20160107 1519) nil "Yet Another tex-mode for emacs //野鳥//" tar nil]) (yatemplate . [(20151124 2307) ((yasnippet (0 8 1))) "File templates with yasnippet" single ((:url . "https://github.com/mineo/yatemplate") (:keywords "files" "convenience"))]) (yasnippet . [(20160131 948) nil "Yet another snippet extension for Emacs." tar ((:url . "http://github.com/capitaomorte/yasnippet") (:keywords "convenience" "emulation"))]) (yascroll . [(20150315 605) ((cl-lib (0 3))) "Yet Another Scroll Bar Mode" single ((:keywords "convenience"))]) (yari . [(20151127 2339) nil "Yet Another RI interface for Emacs" single ((:keywords "tools"))]) (yard-mode . [(20140816 1044) nil "Minor mode for Ruby YARD comments" single ((:url . "https://github.com/pd/yard-mode.el"))]) (yaoddmuse . [(20150712 421) nil "Major mode for EmacsWiki and other Oddmuse wikis" single ((:url . "http://www.emacswiki.org/emacs/download/yaoddmuse.el") (:keywords "yaoddmuse" "oddmuse"))]) (yandex-weather . [(20150821 414) nil "No description available." tar nil]) (yaml-tomato . [(20151122 2353) ((s (1 9))) "copy or show the yaml path currently under cursor." single ((:keywords "yaml"))]) (yaml-mode . [(20160217 653) ((emacs (24 1))) "Major mode for editing YAML files" single ((:keywords "data" "yaml"))]) (yalinum . [(20130217 243) nil "yet another display line numbers." single ((:keywords "convenience" "tools"))]) (yahoo-weather . [(20160111 439) ((emacs (24))) "Displays weather information in mode-line" single ((:url . "https://github.com/lujun9972/yahoo-weather-mode") (:keywords "weather" "mode-line"))]) (yagist . [(20150425 551) ((cl-lib (0 3))) "Yet Another Emacs integration for gist.github.com" single ((:url . "https://github.com/mhayashi1120/yagist.el") (:keywords "tools"))]) (yafolding . [(20141202 2056) nil "Yet another folding extension for Emacs" single ((:keywords "folding"))]) (yabin . [(20140205 1951) nil "Yet Another Bignum package (A thin wrapper of calc.el)." single ((:keywords "data"))]) (xtest . [(20141214 906) ((cl-lib (0 5))) "Simple Testing with Emacs & ERT" single ((:url . "https://github.com/promethial/xtest") (:keywords "testing" "ert"))]) (xterm-title . [(20091203 1023) nil "Update xterm titles" single nil]) (xterm-keybinder . [(20151210 2301) ((emacs (24 3)) (cl-lib (0 5)) (let-alist (1 0 1))) "Let you extra keybinds in xterm/urxvt" tar ((:keywords "convenient"))]) (xterm-frobs . [(20091211 1555) nil "manipulate xterm when running emacs in tty mode" single nil]) (xterm-color . [(20150823 646) nil "ANSI & XTERM 256 color support" single nil]) (xresources-theme . [(20141219 917) nil "Use your .Xresources as your emacs theme" single ((:keywords "xresources" "theme"))]) (xquery-tool . [(20160203 953) nil "A simple interface to saxonb's xquery." single ((:url . "https://github.com/paddymcall/xquery-tool.el") (:keywords "xml" "xquery" "emacs"))]) (xquery-mode . [(20140121 943) nil "A simple mode for editing xquery programs" tar nil]) (xmlunicode . [(20160130 909) nil "Unicode support for XML" tar ((:keywords "utf-8" "unicode" "xml" "characters"))]) (xmlgen . [(20130219 219) nil "A DSL for generating XML." single nil]) (xml-rpc . [(20150902 1827) nil "An elisp implementation of clientside XML-RPC" single ((:url . "http://github.com/hexmode/xml-rpc-el") (:keywords "xml" "rpc" "network"))]) (xml-quotes . [(20151230 1449) nil "read quotations from an XML document" tar ((:url . "https://github.com/ndw/xml-quotes") (:keywords "xml" "quotations"))]) (xml+ . [(20160210 1942) ((emacs (24 4)) (dash (2 12 0))) "Utilities for xml and html trees" single ((:url . "https://github.com/bddean/xml-plus") (:keywords "xml" "html"))]) (xkcd . [(20151016 2153) ((json (1 3))) "View xkcd from Emacs" single ((:url . "https://github.com/vibhavp/emacs-xkcd") (:keywords "xkcd" "webcomic"))]) (xcscope . [(20160201 1926) nil "cscope interface for (X)Emacs" single ((:url . "https://github.com/dkogan/xcscope.el") (:keywords "languages" "c"))]) (xbm-life . [(20160103 217) nil "A XBM version of Conway's Game of Life" single ((:url . "https://github.com/wasamasa/xbm-life") (:keywords "games"))]) (xahk-mode . [(20150504 1611) nil "Major mode for editing AutoHotkey scripts." single ((:url . "http://xahlee.info/mswin/emacs_autohotkey_mode.html") (:keywords "languages"))]) (xah-replace-pairs . [(20150522 333) nil "Multi-pair find/replace in strings and region." single ((:url . "http://ergoemacs.org/emacs/elisp_replace_string_region.html") (:keywords "lisp" "tools" "find replace"))]) (xah-math-input . [(20160127 1408) nil "a minor mode for inputting math and Unicode symbols." single ((:url . "http://ergoemacs.org/emacs/xmsi-math-symbols-input.html") (:keywords "abbrev" "convenience" "unicode" "math" "latex"))]) (xah-lookup . [(20150602 1146) nil "look up word on internet" single ((:url . "http://ergoemacs.org/emacs/emacs_lookup_ref.html") (:keywords "help" "docs" "convenience"))]) (xah-get-thing . [(20150712 1430) nil "get thing or selection at point." single ((:url . "http://ergoemacs.org/emacs/elisp_get-selection-or-unit.html") (:keywords "extensions" "lisp" "tools"))]) (xah-fly-keys . [(20160214 5) nil "A efficient modal keybinding set minor mode based on ergonomics." single ((:url . "http://ergoemacs.org/misc/ergoemacs_vi_mode.html") (:keywords "convenience" "emulations" "vim" "ergoemacs"))]) (xah-find . [(20160210 1902) nil "find replace in pure emacs lisp. Purpose similar to unix grep/sed." single ((:url . "http://ergoemacs.org/emacs/elisp-xah-find-text.html") (:keywords "convenience" "extensions" "files" "tools" "unix"))]) (xah-elisp-mode . [(20160211 1310) nil "Major mode for editing emacs lisp." single ((:url . "http://ergoemacs.org/emacs/xah-elisp-mode.html") (:keywords "lisp" "languages"))]) (x86-lookup . [(20160113 1403) ((emacs (24 3)) (cl-lib (0 3))) "jump to x86 instruction documentation" single ((:url . "https://github.com/skeeto/x86-lookup"))]) (x-dict . [(20091203 1023) nil "emacs interface for several online dictionaries" single nil]) (wwtime . [(20151122 810) nil "Insert a time of day with appropriate world-wide localization" single ((:keywords "time"))]) (wsd-mode . [(20160213 1217) nil "Emacs major-mode for www.websequencediagrams.com" tar ((:url . "https://github.com/josteink/wsd-mode") (:keywords "wsd" "diagrams" "design" "process" "modelling" "uml"))]) (ws-butler . [(20150126 759) nil "Unobtrusively remove trailing whitespace." single ((:url . "https://github.com/lewang/ws-butler"))]) (writeroom-mode . [(20151111 101) ((emacs (24 1)) (visual-fill-column (1 4))) "Minor mode for distraction-free writing" tar ((:keywords "text"))]) (writegood-mode . [(20150325 1115) nil "Polish up poor writing on the fly" single ((:url . "http://github.com/bnbeckwith/writegood-mode") (:keywords "writing" "weasel-words" "grammar"))]) (wrap-region . [(20140116 2320) ((dash (1 0 3))) "Wrap text with punctation or tag" single ((:url . "http://github.com/rejeep/wrap-region") (:keywords "speed" "convenience"))]) (world-time-mode . [(20140627 107) nil "show whole days of world-time diffs" single ((:keywords "tools" "calendar"))]) (workgroups2 . [(20141102 1122) ((cl-lib (0 4)) (dash (2 8 0)) (anaphora (1 0 0)) (f (0 17))) "New workspaces for Emacs" single ((:url . "https://github.com/pashinin/workgroups2") (:keywords "session" "management" "window-configuration" "persistence"))]) (workgroups . [(20110726 941) nil "workgroups for windows (for Emacs)" single ((:keywords "session" "management" "window-configuration" "persistence"))]) (worf . [(20160207 648) ((swiper (0 7 0)) (ace-link (0 1 0)) (hydra (0 13 0))) "A warrior does not press so many keys! (in org-mode)" single ((:url . "https://github.com/abo-abo/worf") (:keywords "lisp"))]) (wordsmith-mode . [(20151117 236) nil "Syntax analysis and NLP text-processing in Emacs (OSX-only)" single nil]) (wordnut . [(20151002 1457) ((emacs (24 4))) "Major mode interface to WordNet" tar nil]) (wonderland . [(20130912 1819) ((dash (2 0 0)) (dash-functional (1 0 0)) (multi (2 0 0)) (emacs (24))) "declarative configuration for Emacsen" single ((:url . "http://github.com/kurisuwhyte/emacs-wonderland") (:keywords "configuration" "profile" "wonderland"))]) (wolfram-mode . [(20140118 757) ((emacs (24 3))) "Mathematica editing and inferior mode." single ((:url . "https://github.com/kawabata/wolfram-mode/") (:keywords "languages" "processes" "tools"))]) (wn-mode . [(20151109 2152) ((emacs (24))) "numeric window switching shortcuts" single ((:url . "https://github.com/luismbo/wn-mode") (:keywords "buffers" "windows" "switching-windows"))]) (with-namespace . [(20130407 1122) ((dash (1 1 0)) (loop (1 1))) "interoperable elisp namespaces" single ((:keywords "namespaces"))]) (with-editor . [(20160128 1201) ((emacs (24 4)) (async (1 5)) (dash (2 12 1))) "Use the Emacsclient as $EDITOR" tar ((:url . "https://github.com/magit/with-editor") (:keywords "tools"))]) (wispjs-mode . [(20140103 1432) ((clojure-mode (0))) "Major mode for Wisp code." single ((:url . "https://github.com/krisajenkins/wispjs-mode"))]) (wisp-mode . [(20150623 1034) nil "Tools for wisp: the Whitespace-to-Lisp preprocessor" single ((:keywords "languages" "lisp"))]) (winpoint . [(20131023 1013) nil "Remember buffer positions per-window, not per buffer" single ((:url . "https://github.com/jorgenschaefer/winpoint") (:keywords "convenience"))]) (windsize . [(20151121 540) nil "Simple, intuitive window resizing" single ((:url . "http://github.com/grammati/windsize") (:keywords "window" "resizing" "convenience"))]) (window-purpose . [(20160217 932) ((emacs (24)) (cl-lib (0 5)) (let-alist (1 0 3)) (imenu-list (0 1))) "Purpose-based window management for Emacs" tar ((:url . "https://github.com/bmag/emacs-purpose") (:keywords "frames"))]) (window-numbering . [(20150228 1247) nil "Numbered window shortcuts" single ((:url . "http://nschum.de/src/emacs/window-numbering-mode/") (:keywords "faces" "matching"))]) (window-number . [(20140123 1902) nil "Select windows by numbers." single ((:url . "http://www.emacswiki.org/emacs/download/window-number.el"))]) (window-layout . [(20150716 2207) nil "window layout manager" single ((:keywords "window" "layout"))]) (window-jump . [(20150213 1236) nil "Move left/right/up/down through your windows." single ((:url . "https://github.com/chumpage/chumpy-windows") (:keywords "frames" "convenience"))]) (window-end-visible . [(20140508 1341) nil "Find the last visible point in a window" single ((:url . "http://github.com/rolandwalker/window-end-visible") (:keywords "extensions"))]) (window+ . [(20151231 1624) nil "Extensions to `window.el'." single ((:url . "http://www.emacswiki.org/window%2b.el") (:keywords "internal" "window"))]) (windata . [(20080412 755) nil "convert window configuration to list" single ((:keywords "convenience" "frames"))]) (win-switch . [(20150208 1911) nil "fast, dynamic bindings for window-switching/resizing" single ((:url . "http://www.stat.cmu.edu/~genovese/emacs/win-switch/") (:keywords "window" "switch" "key bindings" "ergonomic" "efficient"))]) (wimpy-del . [(20151231 1623) nil "Require confirmation for large region deletion." single ((:url . "http://www.emacswiki.org/wimpy-del.el") (:keywords "region" "cut" "kill" "copy"))]) (wilt . [(20151105 518) ((emacs (24 3)) (dash (2 12 0)) (s (1 10 0))) "An extensions for calculating WILT in a buffer." single ((:url . "https://github.com/sixty-north/emacs-wilt"))]) (wiki-summary . [(20150408 1422) ((emacs (24))) "View Wikipedia summaries in Emacs easily." single ((:url . "https://github.com/jozefg/wiki-summary.el") (:keywords "wikipedia" "utility"))]) (wiki-nav . [(20150223 554) ((button-lock (1 0 2)) (nav-flash (1 0 0))) "Simple file navigation using [[WikiStrings]]" single ((:url . "http://github.com/rolandwalker/button-lock") (:keywords "mouse" "button" "hypermedia" "navigation"))]) (widget-mvc . [(20150101 2006) nil "MVC framework for the emacs widgets" single ((:keywords "lisp" "widget"))]) (wide-column . [(20120814 112) nil "Calls functions dependant on column position." single ((:keywords "minor mode" "cursor colour" "column width"))]) (wid-edit+ . [(20151231 1622) nil "Extensions to standard library `wid-edit.el'." single ((:url . "http://www.emacswiki.org/wid-edit%2b.el") (:keywords "widget" "color"))]) (whole-line-or-region . [(20110901 130) nil "operate on current line if region undefined" single ((:keywords "kill" "yank" "cut" "copy" "paste" "whole" "lines"))]) (whitespace-cleanup-mode . [(20150603 447) nil "Intelligently call whitespace-cleanup on save" single ((:url . "https://github.com/purcell/whitespace-cleanup-mode") (:keywords "convenience"))]) (white-sand-theme . [(20151117 848) ((emacs (24))) "Emacs theme with a light background." single nil]) (whitaker . [(20150814 422) ((dash (2 10 0))) "Comint interface for Whitaker's Words" single ((:keywords "processes"))]) (which-key . [(20160213 654) ((emacs (24 3))) "Display available keybindings in popup" single ((:url . "https://github.com/justbur/emacs-which-key"))]) (what-the-commit . [(20150901 616) nil "Random commit message generator" single ((:url . "http://barbarito.me/") (:keywords "git" "commit" "message"))]) (wgrep-pt . [(20140510 1531) ((wgrep (2 1 5))) "Writable pt buffer and apply the changes to files" single ((:url . "http://github.com/mhayashi1120/Emacs-wgrep/raw/master/wgrep-pt.el") (:keywords "grep" "edit" "extensions"))]) (wgrep-helm . [(20140528 1427) ((wgrep (2 1 1))) "Writable helm-grep-mode buffer and apply the changes to files" single ((:url . "http://github.com/mhayashi1120/Emacs-wgrep/raw/master/wgrep-helm.el") (:keywords "grep" "edit" "extensions"))]) (wgrep-ag . [(20141012 311) ((wgrep (2 1 5))) "Writable ag buffer and apply the changes to files" single ((:url . "http://github.com/mhayashi1120/Emacs-wgrep/raw/master/wgrep-ag.el") (:keywords "grep" "edit" "extensions"))]) (wgrep-ack . [(20141012 311) ((wgrep (2 1 1))) "Writable ack-and-a-half buffer and apply the changes to files" single ((:url . "http://github.com/mhayashi1120/Emacs-wgrep/raw/master/wgrep-ack.el") (:keywords "grep" "edit" "extensions"))]) (wgrep . [(20141016 1656) nil "Writable grep buffer and apply the changes to files" single ((:url . "http://github.com/mhayashi1120/Emacs-wgrep/raw/master/wgrep.el") (:keywords "grep" "edit" "extensions"))]) (weibo . [(20150307 1442) ((cl-lib (0 5))) "Weibo client for Emacs" tar ((:url . "https://github.com/austin-----/weibo.emacs") (:keywords "weibo"))]) (weechat . [(20151206 447) ((s (1 3 1)) (cl-lib (0 2)) (emacs (24)) (tracking (1 2))) "Chat via WeeChat's relay protocol in Emacs" tar nil]) (wedge-ws . [(20140714 1449) nil "Wedge whitespace between columns in text" single ((:keywords "formatting" "indentation"))]) (websocket . [(20160124 2020) nil "Emacs WebSocket client and server" single ((:keywords "communication" "websocket" "server"))]) (weblogger . [(20110926 918) ((xml-rpc (1 6 8))) "Weblog maintenance via XML-RPC APIs" single ((:url . "http://launchpad.net/weblogger-el") (:keywords "weblog" "blogger" "cms" "movable" "type" "openweblog" "blog"))]) (web-server . [(20140905 1706) ((emacs (24 3))) "Emacs Web Server" tar ((:url . "https://github.com/eschulte/emacs-web-server") (:keywords "http" "server" "network"))]) (web-mode . [(20160212 538) nil "major mode for editing web templates" single ((:url . "http://web-mode.org") (:keywords "languages"))]) (web-completion-data . [(20150623 333) nil "Shared completion data for ac-html and company-web" tar ((:url . "https://github.com/osv/web-completion-data") (:keywords "html" "auto-complete" "company"))]) (web-beautify . [(20131118 226) nil "Format HTML, CSS and JavaScript/JSON by js-beautify" single ((:url . "https://github.com/yasuyk/web-beautify"))]) (web . [(20141231 1201) ((dash (2 9 0)) (s (1 5 0))) "useful HTTP client" single ((:url . "http://github.com/nicferrier/emacs-web") (:keywords "lisp" "http" "hypermedia"))]) (weather-metno . [(20150831 1807) ((emacs (24)) (cl-lib (0 3))) "Weather data from met.no in Emacs" tar nil]) (wcheck-mode . [(20160208 1136) nil "General interface for text checkers" tar nil]) (wc-mode . [(20150116 2102) nil "show wc-like information in status bar" single ((:url . "http://www.dr-qubit.org/emacs.php") (:keywords "length" "characters" "words" "lines" "mode line"))]) (wc-goal-mode . [(20140829 659) nil "Running word count with goals (minor mode)" single ((:url . "https://github.com/bnbeckwith/wc-goal-mode"))]) (wavefront-obj-mode . [(20150501 1116) nil "Major mode for Wavefront obj files" single ((:url . "http://github.com/abend/wavefront-obj-mode"))]) (watch-buffer . [(20120331 1344) nil "run a shell command when saving a buffer" single ((:url . "https://github.com/mjsteger/watch-buffer") (:keywords "automation" "convenience"))]) (warm-night-theme . [(20150607 741) ((emacs (24))) "Emacs 24 theme with a dark background." single nil]) (wanderlust . [(20160129 1536) ((semi (1 14 7))) "Yet Another Message Interface on Emacsen" tar nil]) (wandbox . [(20160124 840) ((emacs (24)) (json (1 3))) "Wandbox API Library for Emacs" single ((:url . "https://github.com/kosh04/emacs-wandbox") (:keywords "c" "programming" "tools"))]) (wand . [(20141104 1645) ((dash (2 5 0))) "Magic wand for Emacs - Selecting and executing" tar ((:url . "https://github.com/cmpitg/wand") (:keywords "extensions" "tools"))]) (wakatime-mode . [(20151117 1630) nil "Automatic time tracking extension for WakaTime" single ((:keywords "calendar" "comm"))]) (waher-theme . [(20141115 430) ((emacs (24 1))) "Emacs 24 theme based on waher for st2 by dduckster" single ((:url . "https://github.com/jasonm23/emacs-waher-theme"))]) (wacspace . [(20140826 2232) ((dash (1 2 0)) (cl-lib (0 2))) "The WACky WorkSPACE manager for emACS" tar nil]) (w3m . [(20121224 1747) nil "an Emacs interface to w3m" tar ((:keywords "w3m" "www" "hypermedia"))]) (w32browser-dlgopen . [(20151231 1621) nil "Use w32browser with standard Windows Open File box." single ((:url . "http://www.emacswiki.org/w32browser-dlgopen.el") (:keywords "files" "extensions" "convenience" "dialog"))]) (w32-browser . [(20151231 1620) nil "Run Windows application associated with a file." single ((:url . "http://www.emacswiki.org/w32-browser.el") (:keywords "mouse" "dired" "w32" "explorer"))]) (volume . [(20150718 1309) nil "tweak your sound card volume from Emacs" single ((:url . "http://www.brockman.se/software/volume-el/"))]) (volatile-highlights . [(20141004 2240) nil "Minor mode for visual feedback on some operations." single ((:url . "http://www.emacswiki.org/emacs/download/volatile-highlights.el") (:keywords "emulations" "convenience" "wp"))]) (voca-builder . [(20150625 1133) nil "No description available." single nil]) (vline . [(20120108 445) nil "show vertical line (column highlighting) mode." single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/vline.el") (:keywords "faces" "editing" "emulating"))]) (vlf . [(20150101 718) nil "View Large Files" tar ((:url . "https://github.com/m00natic/vlfi") (:keywords "large files" "utilities"))]) (vkill . [(20091203 1022) nil "view and kill Unix processes from within Emacs" single nil]) (visual-regexp-steroids . [(20150411 416) ((visual-regexp (0 8))) "Extends visual-regexp to support other regexp engines" tar ((:url . "https://github.com/benma/visual-regexp-steroids.el/") (:keywords "external" "foreign" "regexp" "replace" "python" "visual" "feedback"))]) (visual-regexp . [(20151206 519) ((cl-lib (0 2))) "A regexp/replace command for Emacs with interactive visual feedback" single ((:url . "https://github.com/benma/visual-regexp.el/") (:keywords "regexp" "replace" "visual" "feedback"))]) (visual-fill-column . [(20151121 1551) ((emacs (24 3))) "fill-column for visual-line-mode" single nil]) (visual-ascii-mode . [(20150129 246) nil "Visualize ascii code (small integer) on buffer." single ((:url . "https://github.com/Dewdrops/visual-ascii-mode") (:keywords "presentation"))]) (visible-mark . [(20150623 2150) nil "Make marks visible." single ((:url . "https://gitlab.com/iankelling/visible-mark") (:keywords "marking" "color" "faces"))]) (virtualenvwrapper . [(20151127 621) ((dash (1 5 0)) (s (1 6 1))) "a featureful virtualenv tool for Emacs" single ((:url . "http://github.com/porterjamesj/virtualenvwrapper.el") (:keywords "python" "virtualenv" "virtualenvwrapper"))]) (virtualenv . [(20140220 1501) nil "Virtualenv for Python" single ((:keywords "python" "virtualenv"))]) (vimrc-mode . [(20150607 913) nil "Major mode for vimrc files" single ((:url . "https://github.com/mcandre/vimrc-mode") (:keywords "languages" "vim"))]) (vimish-fold . [(20160111 102) ((emacs (24 4)) (cl-lib (0 5)) (f (0 18 0))) "Fold text like in Vim" single ((:url . "https://github.com/mrkkrp/vimish-fold") (:keywords "convenience"))]) (vimgolf . [(20140814 1448) nil "VimGolf interface for the One True Editor" single ((:keywords "games" "vimgolf" "vim"))]) (vim-region . [(20140329 924) ((expand-region (20140127))) "Select region as vim" single ((:url . "https://github.com/ongaeshi/emacs-vim-region"))]) (vim-empty-lines-mode . [(20150110 2026) ((emacs (23))) "Vim-like empty line indicator at end of files." single ((:url . "https://github.com/jmickelin/vim-empty-lines-mode") (:keywords "emulations"))]) (viewer . [(20141021 1138) nil "View-mode extension" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/viewer.el") (:keywords "view" "extensions"))]) (vi-tilde-fringe . [(20141027 1942) ((emacs (24))) "Displays tildes in the fringe on empty lines a la Vi." single ((:url . "https://github.com/syl20bnr/vi-tilde-fringe") (:keywords "emulation"))]) (vhdl-tools . [(20160114 249) ((ggtags (0 8 11)) (emacs (24 3)) (outshine (2 0))) "Utilities for navigating vhdl sources." single ((:url . "https://github.com/csantosb/vhdl-tools") (:keywords "vhdl"))]) (vertigo . [(20151110 2013) ((dash (2 11 0))) "Jump across lines using the home row." single ((:url . "https://github.com/noctuid/vertigo.el") (:keywords "vim" "vertigo"))]) (vertica . [(20131217 711) ((sql (3 0))) "Vertica SQL mode extension" single ((:keywords "sql" "vertica"))]) (verify-url . [(20160202 2359) ((cl-lib (0 5))) "find out invalid urls in the buffer or region" single ((:url . "https://github.com/lujun9972/verify-url") (:keywords "convenience" "usability" "url"))]) (vector-utils . [(20140508 1341) nil "Vector-manipulation utility functions" single ((:url . "http://github.com/rolandwalker/vector-utils") (:keywords "extensions"))]) (vdirel . [(20151215 2255) ((emacs (24 4)) (org-vcard (0 1 0)) (helm (1 7 0)) (seq (1 11))) "Manipulate vdir (i.e., vCard) repositories" single ((:keywords "vdirsyncer" "vdir" "vcard" "carddav" "contact" "addressbook" "helm"))]) (vcomp . [(20140906 1508) nil "compare version strings" single ((:url . "https://github.com/tarsius/vcomp") (:keywords "versions"))]) (vcl-mode . [(20151213 1123) nil "Syntax highlighting for Varnish Command Language" single nil]) (vc-osc . [(20120910 211) nil "non-resident support for osc version-control" single nil]) (vc-fossil . [(20141031 22) nil "VC backend for the fossil sofware configuraiton management system" tar nil]) (vc-darcs . [(20151225 1228) nil "a VC backend for darcs" single ((:keywords "vc"))]) (vc-check-status . [(20160108 216) nil "Warn you when quitting emacs and leaving repo dirty." tar ((:url . "https://github.com/thisirs/vc-check-status") (:keywords "vc" "convenience"))]) (vc-auto-commit . [(20160108 215) nil "Auto-committing feature for your repository" tar ((:url . "http://github.com/thisirs/vc-auto-commit.git") (:keywords "vc" "convenience"))]) (vbasense . [(20140221 1553) ((auto-complete (1 4 0)) (log4e (0 2 0)) (yaxception (0 1))) "provide a environment like Visual Basic Editor." tar ((:url . "https://github.com/aki2o/emacs-vbasense") (:keywords "vba" "completion"))]) (vala-snippets . [(20150428 2052) ((yasnippet (0 8 0))) "Yasnippets for Vala" tar ((:url . "https://github.com/gopar/vala-snippets"))]) (vala-mode . [(20150324 1525) nil "Vala mode derived mode" single ((:keywords "vala" "languages" "oop"))]) (vagrant-tramp . [(20160120 1632) ((dash (2 12 0))) "Vagrant method for TRAMP" tar ((:url . "https://github.com/dougm/vagrant-tramp") (:keywords "vagrant"))]) (vagrant . [(20141125 1959) nil "Manage a vagrant box from emacs" single ((:url . "https://github.com/ottbot/vagrant.el") (:keywords "vagrant" "chef"))]) (uzumaki . [(20150119 1706) ((cl-lib (0 5))) "A simple buffer cycler" single ((:url . "http://github.com/geyslan/uzumaki") (:keywords "buffer" "convenience"))]) (uuidgen . [(20140918 1601) nil "Provides various UUID generating functions" single ((:keywords "extensions" "lisp" "tools"))]) (uuid . [(20120910 151) nil "UUID's for EmacsLisp" single ((:keywords "lisp"))]) (utop . [(20151105 247) ((emacs (24))) "Universal toplevel for OCaml" single ((:url . "https://github.com/diml/utop") (:keywords "ocaml" "languages"))]) (use-package-chords . [(20160107 854) ((use-package (2 0)) (bind-key (1 0)) (bind-chord (0 1))) "key-chord keyword for use-package" single ((:url . "https://github.com/waymondo/use-package-chords") (:keywords "convenience" "tools" "extensions"))]) (use-package . [(20160209 1633) ((bind-key (1 0)) (diminish (0 44))) "A use-package declaration for simplifying your .emacs" single ((:url . "https://github.com/jwiegley/use-package") (:keywords "dotemacs" "startup" "speed" "config" "package"))]) (usage-memo . [(20110722 851) nil "integration of Emacs help system and memo" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/usage-memo.el") (:keywords "convenience" "languages" "lisp" "help" "tools" "docs"))]) (urlenc . [(20140116 656) nil "URL encoding/decoding utility for Emacs." single ((:url . "https://github.com/buzztaiki/urlenc-el") (:keywords "url"))]) (url-shortener . [(20150805 2313) nil "shorten long url and expand tinyurl" single ((:url . "https://github.com/yuyang0/url-shortener"))]) (unkillable-scratch . [(20150327 2318) nil "Disallow buffers from being killed by regexp -- default is *scratch* buffer" single ((:keywords "scratch"))]) (unison-mode . [(20150104 414) nil "Syntax highlighting for unison file synchronization program" single ((:url . "https://github.com/impaktor/unison-mode") (:keywords "symchronization" "unison"))]) (unipoint . [(20140113 1424) nil "a simple way to insert unicode characters by TeX name" single ((:url . "https://github.com/apgwoz/unipoint"))]) (unify-opening . [(20151116 1648) ((emacs (24 4))) "Make everything use the same mechanism to open files" single ((:url . "https://github.com/DamienCassou/unify-opening") (:keywords "dired" "org" "mu4e" "open" "runner" "extension" "file"))]) (unidecode . [(20140317 2118) ((cl-lib (0 4))) "Convert Unicode text into safe ASCII strings" tar nil]) (unicode-whitespace . [(20140508 1341) ((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 ((:url . "http://github.com/rolandwalker/unicode-whitespace") (:keywords "faces" "wp" "interface"))]) (unicode-troll-stopper . [(20151023 1831) nil "Minor mode for Highlighting Unicode homoglyphs" single ((:url . "https://github.com/camsaul/emacs-unicode-troll-stopper") (:keywords "unicode"))]) (unicode-progress-reporter . [(20140508 1341) ((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 ((:url . "http://github.com/rolandwalker/unicode-progress-reporter") (:keywords "interface"))]) (unicode-input . [(20141218 2320) nil "Support for unicode character input" single ((:keywords "unicode" "input"))]) (unicode-fonts . [(20150826 1532) ((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 ((:url . "http://github.com/rolandwalker/unicode-fonts") (:keywords "i18n" "faces" "frames" "wp" "interface"))]) (unicode-enbox . [(20140508 1341) ((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 ((:url . "http://github.com/rolandwalker/unicode-enbox") (:keywords "extensions" "interface"))]) (unicode-emoticons . [(20150204 308) nil "Shortcuts for common unicode emoticons" single ((:url . "https://github.com/hagleitn/unicode-emoticons") (:keywords "games" "entertainment" "comms"))]) (unfill . [(20131103 213) nil "The inverse of fill-paragraph and fill-region" single ((:keywords "utilities"))]) (undohist . [(20150315 542) ((cl-lib (1 0))) "Persistent undo history for GNU Emacs" single ((:keywords "convenience"))]) (undo-tree . [(20140509 522) nil "Treat undo history as a tree" single ((:url . "http://www.dr-qubit.org/emacs.php") (:keywords "convenience" "files" "undo" "redo" "history" "tree"))]) (underwater-theme . [(20131117 1602) nil "A gentle, deep blue color theme" single ((:keywords "faces"))]) (undercover . [(20150817 1010) ((emacs (24)) (dash (2 0 0)) (shut-up (0 3 2))) "Test coverage library for Emacs" single ((:url . "https://github.com/sviridov/undercover.el") (:keywords "lisp" "tests" "coverage" "tools"))]) (uncrustify-mode . [(20130707 659) nil "Minor mode to automatically uncrustify." single ((:keywords "uncrustify"))]) (unbound . [(20140307 128) nil "Find convenient unbound keystrokes" single ((:keywords "keyboard"))]) (ukrainian-holidays . [(20130720 649) nil "Ukrainian holidays for Emacs calendar." single ((:url . "https://github.com/abo-abo/ukrainian-holidays"))]) (ujelly-theme . [(20150807 2136) nil "Ujelly theme for GNU Emacs 24 (deftheme)" single ((:url . "http://github.com/marktran/color-theme-ujelly"))]) (uimage . [(20151012 604) nil "Url image minor mode." single ((:keywords "lisp" "url" "image"))]) (ucs-utils . [(20150826 714) ((persistent-soft (0 8 8)) (pcache (0 2 3)) (list-utils (0 4 2))) "Utilities for Unicode characters" tar ((:url . "http://github.com/rolandwalker/ucs-utils") (:keywords "i18n" "extensions"))]) (ucs-cmds . [(20151231 1616) nil "Macro to create commands that insert Unicode chars." single ((:url . "http://www.emacswiki.org/ucs-cmds.el") (:keywords "unicode" "characters" "encoding" "commands" "ucs-names"))]) (ubuntu-theme . [(20150805 806) nil "A theme inspired by the default terminal colors in Ubuntu" single ((:url . "http://github.com/rocher/ubuntu-theme"))]) (typo . [(20160121 330) nil "Minor mode for typographic editing" single ((:url . "https://github.com/jorgenschaefer/typoel") (:keywords "convenience" "wp"))]) (typing-game . [(20151111 740) nil "a simple typing game" single ((:keywords "lisp" "game"))]) (typing . [(20121026 1418) nil "The Typing Of Emacs" single ((:url . "http://www.emacswiki.org/emacs/TypingOfEmacs") (:keywords "games"))]) (typescript-mode . [(20160126 408) nil "Major mode for editing typescript" single ((:url . "http://github.com/ananthakumaran/typescript.el") (:keywords "typescript" "languages"))]) (typed-clojure-mode . [(20151003 1122) ((clojure-mode (2 1 1)) (cider (0 10 0 -3))) "Typed Clojure minor mode for Emacs" tar ((:url . "https://github.com/typedclojure/typed-clojure-mode"))]) (twittering-mode . [(20160207 156) nil "Major mode for Twitter" single ((:url . "http://twmode.sf.net/") (:keywords "twitter" "web"))]) (twilight-theme . [(20120412 603) nil "Twilight theme for GNU Emacs 24 (deftheme)" single nil]) (twilight-bright-theme . [(20130605 143) nil "A Emacs 24 faces port of the TextMate theme" single ((:url . "https://github.com/jimeh/twilight-bright-theme.el") (:keywords "themes"))]) (twilight-anti-bright-theme . [(20140810 34) nil "A soothing Emacs 24 light-on-dark theme" single ((:url . "https://github.com/jimeh/twilight-anti-bright-theme.el") (:keywords "themes"))]) (twig-mode . [(20130220 1050) nil "A major mode for twig" single nil]) (turnip . [(20150308 2329) ((dash (2 6 0)) (s (1 9 0))) "Interacting with tmux from Emacs" single ((:keywords "terminals" "tools"))]) (tup-mode . [(20140410 914) nil "Major mode for editing files for Tup" single ((:url . "https://github.com/ejmr/tup-mode"))]) (tumblesocks . [(20140215 1247) ((htmlize (1 39)) (oauth (1 0 3)) (markdown-mode (1 8 1))) "An Emacs tumblr client." tar nil]) (tumble . [(20160111 2329) ((http-post-simple (0)) (cl-lib (0 5))) "an Tumblr mode for Emacs" single ((:keywords "tumblr"))]) (tuareg . [(20160105 1024) ((caml (3 12 0 1))) "OCaml mode for Emacs." tar ((:url . "https://github.com/ocaml/tuareg") (:keywords "ocaml" "languages"))]) (ttrss . [(20130409 1049) ((emacs (23 1))) "Tiny Tiny RSS elisp bindings" single ((:url . "https://github.com/pedros/ttrss.el") (:keywords "news" "local"))]) (tt-mode . [(20130804 410) nil "Emacs major mode for editing Template Toolkit files." single nil]) (tss . [(20150913 708) ((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 ((:url . "https://github.com/aki2o/emacs-tss") (:keywords "typescript" "completion"))]) (try . [(20160204 1055) ((emacs (24))) "Try out Emacs packages." single ((:url . "http://github.com/larstvei/try") (:keywords "packages"))]) (truthy . [(20140508 1341) ((list-utils (0 4 2))) "Test the content of a value" single ((:url . "http://github.com/rolandwalker/truthy") (:keywords "extensions"))]) (tronesque-theme . [(20150125 241) nil "Color Theme based on Tron universe." single ((:url . "https://github.com/aurelienbottazini/tronesque"))]) (trident-mode . [(20130726 1207) ((emacs (24)) (slime (20130526)) (skewer-mode (1 5 0)) (dash (1 0 3))) "Live Parenscript interaction" single ((:url . "https://github.com/johnmastro/trident-mode.el") (:keywords "languages" "lisp" "processes" "tools"))]) (tree-mode . [(20151104 531) nil "A mode to manage tree widgets" single ((:keywords "help" "convenience" "widget"))]) (travis . [(20150825 438) ((s (1 9 0)) (dash (2 9 0)) (pkg-info (0 5 0)) (request (0 1 0))) "Emacs client for Travis" tar ((:url . "https://github.com/nlamirault/emacs-travis") (:keywords "travis"))]) (transpose-mark . [(20150405 16) nil "Transpose data using the Emacs mark" single ((:keywords "transpose" "convenience"))]) (transpose-frame . [(20151126 626) nil "Transpose windows arrangement in a frame" single ((:keywords "window"))]) (transmission . [(20160214 2049) ((emacs (24 4)) (let-alist (1 0 3))) "Interface to a Transmission session" single ((:keywords "comm" "tools"))]) (tramp-term . [(20141104 1345) nil "Automatic setup of directory tracking in ssh sessions." single ((:url . "https://github.com/randymorris/tramp-term.el") (:keywords "tramp" "ssh"))]) (tramp-hdfs . [(20151028 2036) nil "Tramp extension to access hadoop/hdfs file system in Emacs" single ((:keywords "tramp" "emacs" "hdfs" "hadoop" "webhdfs" "rest"))]) (tracwiki-mode . [(20150119 821) ((xml-rpc (1 6 8))) "Emacs Major mode for working with Trac" single ((:keywords "trac" "wiki" "tickets"))]) (tracking . [(20151129 319) nil "Buffer modification tracking" tar ((:url . "https://github.com/jorgenschaefer/circe/wiki/Tracking"))]) (traad . [(20151225 2334) ((deferred (0 3 2)) (popup (0 5 0)) (request (0 2 0)) (request-deferred (0 2 0)) (python-environment (0 0 2))) "emacs interface to the traad refactoring server." single ((:url . "https://github.com/abingham/traad"))]) (toxi-theme . [(20130418 1239) ((emacs (24))) "A dark color theme by toxi" single ((:url . "http://hg.postspectacular.com/toxi-theme/"))]) (tox . [(20141004 1403) nil "Launch current python test with tox" single ((:url . "https://github.com/chmouel/tox.el") (:keywords "convenience" "tox" "python" "tests"))]) (totd . [(20150519 740) ((s (1 9 0)) (cl-lib (0 5))) "Display a random daily emacs command." single ((:keywords "help"))]) (tornado-template-mode . [(20141128 208) nil "A major mode for editing tornado templates" single nil]) (top-mode . [(20130605 1039) nil "run \"top\" from emacs" single ((:keywords "extensions" "processes"))]) (tool-bar+ . [(20151231 1615) nil "Extensions to standard library tool-bar.el" single ((:url . "http://www.emacswiki.org/tool-bar%2b.el") (:keywords "tool-bar" "convenience" "mouse" "button" "frame"))]) (tommyh-theme . [(20131004 1630) nil "A bright, bold-colored theme for emacs" single nil]) (toml-mode . [(20150818 120) nil "Mojor mode for editing TOML files" single ((:url . "https://github.com/dryman/toml-mode.el") (:keywords "data" "toml"))]) (toml . [(20130903 555) nil "TOML (Tom's Obvious, Minimal Language) parser" single ((:url . "https://github.com/gongo/emacs-toml") (:keywords "toml" "parser"))]) (tomatinho . [(20140120 1540) nil "Tomatinho" tar ((:keywords "time" "productivity" "pomodoro technique"))]) (toggle-window . [(20141207 748) nil "toggle current window size between half and full" single ((:url . "https://github.com/deadghost/toggle-window") (:keywords "hide" "window"))]) (toggle-test . [(20140722 2237) nil "Toggle between source and test files in various programming languages" single ((:url . "https://github.com/rags/toggle-test") (:keywords "tdd" "test" "toggle" "productivity"))]) (toggle-quotes . [(20140710 226) nil "Toggle between single and double quoted string" single ((:url . "https://github.com/toctan/toggle-quotes.el") (:keywords "convenience" "quotes"))]) (toggle . [(20151210 1527) nil "quickly open corresponding file (eg test vs impl)." single ((:keywords "files" "extensions" "convenience"))]) (togetherly . [(20150820 138) ((cl-lib (0 3))) "allow multiple clients to edit a single buffer online" single ((:url . "http://hins11.yu-yake.com/"))]) (todotxt-mode . [(20150424 704) nil "Major mode for editing todo.txt files" single ((:keywords "wp" "files"))]) (todotxt . [(20150513 1929) nil "A major mode for editing todo.txt files" single ((:url . "https://github.com/rpdillon/todotxt.el") (:keywords "todo.txt" "todotxt" "todotxt.el"))]) (todochiku . [(20150112 1254) nil "A mode for interfacing with Growl, Snarl, and the like." single nil]) (toc-org . [(20150921 705) nil "add table of contents to org-mode files (formerly, org-toc)" single ((:url . "https://github.com/snosov1/toc-org") (:keywords "org-mode" "org-toc" "toc-org" "org" "toc" "table" "of" "contents"))]) (tmmofl . [(20121025 401) nil "Calls functions dependant on font lock highlighting at point" single ((:keywords "minor mode" "font lock" "toggling."))]) (tldr . [(20160214 152) ((emacs (24 3))) "tldr client for Emacs" single ((:url . "https://github.com/kuanyui/tldr.el") (:keywords "tools" "docs"))]) (tj-mode . [(20150826 851) ((emacs (24)) (tern (0 0 1)) (js2-mode (20150514))) "Highlight JavaScript with Tern" single ((:url . "https://github.com/katspaugh/tj-mode") (:keywords "languages" "javascript"))]) (tinysegmenter . [(20141124 213) ((cl-lib (0 5))) "Super compact Japanese tokenizer in Javascript ported to emacs lisp" single ((:url . "https://github.com/myuhe/tinysegmenter.el") (:keywords "convenience"))]) (tiny . [(20151208 205) nil "Quickly generate linear ranges in Emacs" single ((:url . "https://github.com/abo-abo/tiny") (:keywords "convenience"))]) (tinkerer . [(20150219 2249) ((s (1 2 0))) "Elisp wrapper for Tinkerer Blogging Engine." single ((:url . "https://github.com/yyr/tinkerer.el") (:keywords "tinkerer" "blog" "wrapper"))]) (timesheet . [(20151107 604) ((s (1)) (org (7)) (auctex (11))) "Timesheet management add-on for org-mode" tar ((:url . "https://github.com/tmarble/timesheet.el") (:keywords "org" "timesheet"))]) (timer-revert . [(20150122 1232) nil "minor mode to revert buffer for a given time interval." tar nil]) (time-ext . [(20130130 1351) nil "more function for time/date" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/time-ext.el") (:keywords "lisp"))]) (tidy . [(20111222 956) nil "Interface to the HTML Tidy program" single ((:url . "http://www.emacswiki.org/elisp/tidy.el") (:keywords "languages"))]) (tide . [(20160130 43) ((typescript-mode (0 1)) (emacs (24 1)) (flycheck (0 23)) (dash (2 10 0))) "Typescript Interactive Development Environment" tar nil]) (thumb-through . [(20120118 2134) nil "Plain text reader of HTML documents" single ((:keywords "html"))]) (thumb-frm . [(20151231 1612) ((frame-fns (0)) (frame-cmds (0))) "Commands for thumbnail frames." single ((:url . "http://www.emacswiki.org/thumb-frm.el") (:keywords "frame" "icon"))]) (thrift . [(20140312 1348) nil "Major mode for Apache Thrift files" single ((:keywords "files"))]) (thread-dump . [(20130323 1025) nil "Java thread dump viewer" single ((:url . "http://github.com/nd/thread-dump.el"))]) (thingopt . [(20150315 523) nil "Thing at Point optional utilities" single ((:keywords "convenience"))]) (thingatpt+ . [(20151231 1610) nil "Extensions to `thingatpt.el'." single ((:url . "http://www.emacswiki.org/thingatpt%2b.el") (:keywords "extensions" "matching" "mouse"))]) (thing-cmds . [(20151231 1609) ((hide-comnt (0))) "Commands that use things, as defined by `thingatpt.el'." single ((:url . "http://www.emacswiki.org/thing-cmds.el") (:keywords "thingatpt" "thing" "region" "selection"))]) (thesaurus . [(20121125 1137) nil "replace a word with a synonym looked up in a web service." single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/thesaurus.el") (:keywords "thesaurus" "synonym"))]) (therapy . [(20151113 1153) ((emacs (24))) "Hooks for managing multiple Python major versions" single ((:url . "https://github.com/abingham/therapy"))]) (theme-looper . [(20150723 1104) ((cl-lib (0 5))) "Loop thru the available color-themes" single ((:url . "http://ismail.teamfluxion.com") (:keywords "convenience" "color-themes"))]) (theme-changer . [(20130725 1919) nil "Sunrise/Sunset Theme Changer for Emacs" single ((:url . "https://github.com/hadronzoo/theme-changer") (:keywords "color-theme" "deftheme" "solar" "sunrise" "sunset"))]) (tfs . [(20120508 1120) nil "MS Team Foundation Server commands for Emacs." single ((:url . "http://cheeso.members.winisp.net/srcview.aspx?dir=emacs&file=tfs.el"))]) (textmate-to-yas . [(20150914 546) nil "Import Textmate macros into yasnippet syntax" tar ((:url . "https://github.com/mlf176f2/textmate-to-yas.el/") (:keywords "yasnippet" "textmate"))]) (textmate . [(20110816 1446) nil "TextMate minor mode for Emacs" single ((:keywords "textmate" "osx" "mac"))]) (textile-mode . [(20151203 53) nil "Textile markup editing major mode" single nil]) (tex-smart-umlauts . [(20151110 417) nil "Smart umlaut conversion for TeX." single ((:url . "http://hub.darcs.net/lyro/tex-smart-umlauts") (:keywords "tex" "wp"))]) (test-simple . [(20151110 1943) nil "Simple Unit Test Framework for Emacs Lisp" single ((:url . "http://github.com/rocky/emacs-test-simple") (:keywords "unit-test"))]) (test-kitchen . [(20151027 427) nil "Run test-kitchen inside of emacs" single ((:url . "http://github.com/jjasghar/test-kitchen-el") (:keywords "chef" "ruby" "test-kitchen"))]) (test-case-mode . [(20130525 734) ((fringe-helper (0 1 1))) "unit test front-end" single ((:url . "http://nschum.de/src/emacs/test-case-mode/") (:keywords "tools"))]) (terraform-mode . [(20151226 457) ((hcl-mode (0 1)) (cl-lib (0 5))) "Major mode for terraform configuration file" single ((:url . "https://github.com/syohex/emacs-terraform-mode"))]) (tern-django . [(20150121 1127) ((emacs (24)) (tern (0 0 1)) (f (0 17 1))) "Create tern projects for django applications." tar ((:url . "https://github.com/proofit404/tern-django"))]) (tern-auto-complete . [(20151123 653) ((tern (0 0 1)) (auto-complete (1 4)) (cl-lib (0 5)) (emacs (24))) "Tern Completion by auto-complete.el" single nil]) (tern . [(20151228 511) ((json (1 2)) (cl-lib (0 5)) (emacs (24))) "Tern-powered JavaScript integration" single ((:url . "http://ternjs.net/"))]) (termbright-theme . [(20151030 1935) ((emacs (24 1))) "a more usable theme for white-on-black terminals" single ((:url . "https://github.com/bmastenbrook/termbright-theme-el") (:keywords "themes"))]) (term-run . [(20151228 105) nil "Run arbitrary command in terminal buffer" single ((:url . "https://github.com/10sr/term-run-el") (:keywords "utility" "shell" "command" "term-mode"))]) (term-cmd . [(20141114 1314) nil "Send commands to Emacs from programs running under term.el" single ((:url . "https://github.com/CallumCameron/term-cmd") (:keywords "processes"))]) (term-alert . [(20141121 1205) ((term-cmd (1 0)) (alert (1 1))) "Get notifications when commands complete in the Emacs terminal emulator" single ((:url . "https://github.com/CallumCameron/term-alert") (:keywords "notifications" "processes"))]) (term+mux . [(20140210 2349) ((term+ (0 1)) (tab-group (0 1))) "term+ terminal multiplexer and session management" single ((:url . "http://github.com/tarao/term+-el") (:keywords "terminal" "emulation"))]) (term+key-intercept . [(20140210 2350) ((term+ (0 1)) (key-intercept (0 1))) "term+ intercept key mapping" single ((:url . "http://github.com/tarao/term+-el") (:keywords "terminal" "emulation"))]) (term+ . [(20130612 652) nil "term-mode enhancement" tar ((:url . "http://github.com/tarao/term+-el") (:keywords "terminal" "emulation"))]) (telephone-line . [(20151116 442) ((emacs (24 3)) (cl-lib (0 5)) (eieio (1 4)) (s (1 9 0)) (seq (1 8))) "Rewrite of Powerline" tar ((:url . "https://github.com/dbordak/telephone-line") (:keywords "mode-line"))]) (telepathy . [(20131209 458) nil "Access Telepathy from Emacs" single ((:keywords "telepathy" "tools"))]) (tea-time . [(20120331 120) nil "Simple timer package, useful to make perfect tea." single ((:keywords "timer" "tea-time"))]) (tdd-status-mode-line . [(20131123 916) nil "TDD status on the mode-line" single ((:url . "https://github.com/algernon/tdd-status-mode-line") (:keywords "faces" "tdd"))]) (tco . [(20140412 612) ((dash (1 2 0)) (emacs (24))) "tail-call optimisation for Emacs lisp" single nil]) (tc . [(20150113 1926) nil "a Japanese input method with T-Code on Emacs" tar nil]) (tbx2org . [(20140224 759) ((dash (2 5 0)) (s (1 8 0)) (cl-lib (0 4))) "Tinderbox to org-mode conversion" single ((:url . "https://github.com/istib/tbx2org") (:keywords "org-mode"))]) (tao-theme . [(20151217 840) nil "Tao, light & dark themes for Emacs with greyscale palettes generated from the golden mean." tar nil]) (tangotango-theme . [(20150702 104) nil "Tango Palette color theme for Emacs 24." single ((:url . "https://github.com/juba/color-theme-tangotango") (:keywords "tango" "palette" "color" "theme" "emacs"))]) (tango-plus-theme . [(20140425 1511) nil "A color theme based on the tango palette" single ((:url . "https://github.com/tmalsburg/tango-plus-theme"))]) (tango-2-theme . [(20120312 1325) nil "Tango 2 color theme for GNU Emacs 24" single nil]) (take-off . [(20140531 217) ((emacs (24 3)) (web-server (0 1 0))) "Emacs remote web access" tar ((:url . "https://github.com/tburette/take-off"))]) (tagedit . [(20150727 224) ((s (1 3 1)) (dash (1 0 3))) "Some paredit-like features for html-mode" single ((:keywords "convenience"))]) (tabula-rasa . [(20141215 2147) ((emacs (24 4))) "Distraction free writing mode" single ((:url . "https://github.com/idomagal/Tabula-Rasa/blob/master/tabula-rasa.el") (:keywords "distraction free" "writing"))]) (tablist . [(20150618 2218) ((emacs (24 3))) "Extended tabulated-list-mode" tar ((:keywords "extensions" "lisp"))]) (tabbar-ruler . [(20160216 1932) ((tabbar (2 0 1)) (powerline (2 3)) (mode-icons (0 1 0))) "Pretty tabbar, autohide, use both tabbar/ruler" tar ((:url . "http://github.com/mlf176f2/tabbar-ruler.el") (:keywords "tabbar" "ruler mode" "menu" "tool bar."))]) (tabbar . [(20141109 143) nil "Display a tab bar in the header line" tar ((:keywords "convenience"))]) (tab-jump-out . [(20151005 1830) ((dash (2 10)) (emacs (24 4))) "Use tab to jump out of delimiter pairs." single ((:keywords "tab" "editing"))]) (tab-group . [(20140306 650) nil "Grouped tabs and their tabbar" single ((:url . "http://github.com/tarao/tab-group-el") (:keywords "convenience" "tabs"))]) (ta . [(20150604 1024) ((emacs (24 3)) (cl-lib (0 5))) "A tool to deal with Chinese homophonic characters" single ((:url . "http://github.com/kuanyui/ta.el") (:keywords "tools"))]) (systemtap-mode . [(20151122 1140) nil "A mode for SystemTap" single ((:url . "https://github.com/ruediger/systemtap-mode") (:keywords "tools" "languages"))]) (systemd . [(20151231 2334) ((emacs (24 4))) "Major mode for editing systemd units" tar ((:keywords "tools" "unix"))]) (system-specific-settings . [(20140818 757) nil "Apply settings only on certain systems" single ((:url . "https://github.com/DarwinAwardWinner/emacs-system-specific-settings") (:keywords "configuration"))]) (syslog-mode . [(20140217 1618) ((hide-lines (20130623))) "Major-mode for viewing log files" single ((:url . "https://github.com/vapniks/syslog-mode") (:keywords "unix"))]) (syntax-subword . [(20160205 1354) nil "make operations on words more fine-grained" single nil]) (syntactic-sugar . [(20140508 1341) nil "Effect-free forms such as if/then/else" single ((:url . "http://github.com/rolandwalker/syntactic-sugar") (:keywords "extensions"))]) (synosaurus . [(20151119 1049) ((cl-lib (0 5))) "An extensible thesaurus supporting lookup and substitution." tar ((:url . "https://github.com/rootzlevel/synosaurus"))]) (synonyms . [(20151231 1608) nil "Look up synonyms for a word or phrase in a thesaurus." single ((:url . "http://www.emacswiki.org/synonyms.el") (:keywords "text" "dictionary" "thesaurus" "spelling" "apropos" "help"))]) (synonymous . [(20150909 834) ((emacs (24)) (cl-lib (0 5)) (request (0 2 0))) "A thesaurus at your fingertips" single ((:url . "http://github.com/toroidal-code/synonymous.el") (:keywords "utility"))]) (sync-recentf . [(20151005 326) nil "Synchronize the recent files list between Emacs instances" single ((:url . "https://github.com/ffevotte/sync-recentf") (:keywords "recentf"))]) (symon-lingr . [(20150719 642) ((symon (1 1 2)) (cl-lib (0 5))) "A notification-based Lingr client powered by symon.el" single ((:url . "http://hins11.yu-yake.com/"))]) (symon . [(20151118 100) nil "tiny graphical system monitor" single ((:url . "http://hins11.yu-yake.com/"))]) (sx . [(20160125 1601) ((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 ((:url . "https://github.com/vermiculus/sx.el/") (:keywords "help" "hypermedia" "tools"))]) (sws-mode . [(20150317 1245) nil "(S)ignificant (W)hite(S)pace mode" single ((:url . "https://github.com/brianc/jade-mode"))]) (swoop . [(20160120 915) ((ht (2 0)) (pcre2el (1 5)) (async (1 1)) (emacs (24))) "Peculiar buffer navigation for Emacs" tar ((:url . "https://github.com/ShingoFukuyama/emacs-swoop") (:keywords "swoop" "inner" "buffer" "search" "navigation"))]) (switch-window . [(20150114 215) nil "A *visual* way to choose a window to switch to" single ((:url . "http://tapoueh.org/emacs/switch-window.html") (:keywords "window" "navigation"))]) (swiper-helm . [(20151116 330) ((emacs (24 1)) (swiper (0 1 0)) (helm (1 5 3))) "Helm version of Swiper." single ((:url . "https://github.com/abo-abo/swiper-helm") (:keywords "matching"))]) (swiper . [(20160215 140) ((emacs (24 1))) "Isearch with an overview. Oh, man!" tar ((:url . "https://github.com/abo-abo/swiper") (:keywords "matching"))]) (swift-mode . [(20160124 236) ((emacs (24 4))) "Major-mode for Apple's Swift programming language." single ((:keywords "languages" "swift"))]) (sweetgreen . [(20151207 916) ((dash (2 12 1)) (helm (1 5 6)) (request (0 2 0)) (cl-lib (0 5))) "Order Salads from sweetgreen.com" single ((:url . "https://www.github.com/CestDiego/sweetgreen.el") (:keywords "salad" "food" "sweetgreen" "request"))]) (swbuff-x . [(20130607 314) ((swbuff (19991231 1800))) "Modifications to David Ponce's swbuff" single ((:url . "http://www.emacswiki.org/elisp/swbuff-x.el") (:keywords "files" "convenience"))]) (swbuff . [(20041012 718) nil "Quick switch between Emacs buffers." single ((:keywords "extensions" "convenience"))]) (swap-buffers . [(20150506 1439) nil "The quickest way to swap buffers between windows. Based on switch-window package." single ((:url . "https://github.com/ekazakov/swap-buffers") (:keywords "window" "swap" "buffer" "exchange"))]) (svg-mode-line-themes . [(20150425 1306) ((xmlgen (0 4))) "SVG-based themes for mode-line" tar ((:url . "https://github.com/sabof/svg-mode-line-themes"))]) (suscolors-theme . [(20160217 1034) nil "Colorful theme, inspired by Gruvbox." single ((:url . "https://github.com/TheSuspiciousWombat/SusColors-emacs"))]) (supergenpass . [(20130328 2248) nil "SuperGenPass for Emacs" single ((:keywords "supergenpass"))]) (super-save . [(20160211 256) ((emacs (24 4))) "Auto-save buffers, based on your activity." single ((:url . "https://github.com/bbatsov/super-save") (:keywords "convenience"))]) (suomalainen-kalenteri . [(20151129 304) nil "Finnish national and Christian holidays for calendar" tar nil]) (sunshine . [(20151013 614) ((cl-lib (0 5))) "Provide weather and forecast information." single ((:url . "https://github.com/aaronbieber/sunshine.el") (:keywords "tools" "weather"))]) (sunny-day-theme . [(20140413 1425) nil "Emacs24 theme with a light background." single ((:url . "http://github.com/mswift42/sunny-day-theme"))]) (summarye . [(20130328 327) nil "list up matched strings from a buffer, and display them in summary buffer" single nil]) (sudo-ext . [(20130130 1351) nil "sudo support" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/sudo-ext.el") (:keywords "unix"))]) (sudden-death . [(20140829 538) nil "Totsuzen-no-Shi" single ((:url . "https://github.com/yewton/sudden-death.el"))]) (subshell-proc . [(20130122 1322) nil "Functions for working with comints" single ((:url . "https://github.com/andrewmains12/subshell-proc"))]) (subr+ . [(20151231 1607) nil "Extensions to standard library `subr.el'." single ((:url . "http://www.emacswiki.org/simple%2b.el") (:keywords "strings" "text"))]) (sublimity . [(20151230 727) nil "smooth-scrolling, minimap and distraction-free mode" tar ((:url . "http://hins11.yu-yake.com/"))]) (sublime-themes . [(20160111 122) nil "A collection of themes based on Sublime Text" tar ((:keywords "faces"))]) (subemacs . [(20160105 359) nil "Evaluating expressions in a fresh Emacs subprocess" single ((:url . "https://github.com/kbauer/subemacs") (:keywords "extensions" "lisp" "multiprocessing"))]) (subatomic256-theme . [(20130620 1910) nil "Fork of subatomic-theme for terminals." single ((:url . "https://github.com/cryon/subatomic256"))]) (subatomic-theme . [(20160126 738) nil "Low contrast bluish color theme" single ((:url . "https://github.com/cryon/subatomic") (:keywords "color-theme" "blue" "low contrast"))]) (stylus-mode . [(20150313 812) ((sws-mode (0))) "Major mode for editing .jade files" single ((:url . "https://github.com/brianc/jade-mode"))]) (stupid-indent-mode . [(20130816 1354) nil "Plain stupid indentation minor mode" single nil]) (stumpwm-mode . [(20140130 1816) nil "special lisp mode for evaluating code into running stumpwm" single ((:keywords "comm" "lisp" "tools"))]) (stripe-buffer . [(20141208 708) ((cl-lib (1 0))) "Use a different background for even and odd lines" single ((:url . "https://github.com/sabof/stripe-buffer"))]) (strings . [(20151231 1607) nil "Miscellaneous string functions." single ((:url . "http://www.emacswiki.org/strings.el") (:keywords "internal" "strings" "text"))]) (string-utils . [(20140508 1341) ((list-utils (0 4 2))) "String-manipulation utilities" single ((:url . "http://github.com/rolandwalker/string-utils") (:keywords "extensions"))]) (string-inflection . [(20150805 256) nil "underscore -> UPCASE -> CamelCase -> lowerCamelCase conversion of names" single ((:keywords "elisp"))]) (string-edit . [(20151213 930) ((dash (1 2 0))) "Avoid escape nightmares by editing string in separate buffer" single nil]) (strie . [(20160211 1422) ((cl-lib (0 5))) "A simple trie data structure implementation" single nil]) (stock-ticker . [(20150204 252) ((s (1 9 0)) (request (0 2 0))) "Show stock prices in mode line" single ((:url . "https://github.com/hagleitn/stock-ticker") (:keywords "comms"))]) (stickyfunc-enhance . [(20150429 1114) ((emacs (24 3))) "An enhancement to stock `semantic-stickyfunc-mode'" single ((:url . "https://github.com/tuhdo/semantic-stickyfunc-enhance") (:keywords "c" "languages" "tools"))]) (sticky . [(20101129 1852) nil "Sticky key for capital letters" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/sticky.el") (:keywords "convenience"))]) (stgit . [(20140213 348) nil "major mode for StGit interaction" single ((:url . "http://www.procode.org/stgit"))]) (stem . [(20131102 409) nil "Routines for stemming" single ((:url . "https://github.com/yuutayamada/stem") (:keywords "stemming"))]) (stekene-theme . [(20141108 1211) ((emacs (24))) "Low-contrast (except for strings) theme, in light and dark versions." tar nil]) (status . [(20151230 608) nil "This package adds support for status icons to Emacs." tar nil]) (state . [(20160108 536) ((emacs (24))) "Quick navigation between workspaces" single ((:url . "https://github.com/thisirs/state.git") (:keywords "convenience" "workspaces"))]) (stash . [(20151117 627) nil "lightweight persistent caching" single ((:url . "https://www.github.com/vermiculus/stash.el/") (:keywords "extensions" "data" "internal" "lisp"))]) (start-menu . [(20160115 2139) ((cl-lib (0 5)) (config-parser (0 1))) "start-menu for executing external program like in windows" single ((:url . "https://github.com/lujun9972/el-start-menu") (:keywords "convenience" "menu"))]) (standoff-mode . [(20150628 1642) nil "Create stand-off markup, also called external markup." tar nil]) (stan-snippets . [(20160116 2247) ((stan-mode (9 0 5)) (yasnippet (0 8 0))) "Yasnippets for Stan" tar ((:url . "http://github.com/stan-dev/stan-mode") (:keywords "snippets"))]) (stan-mode . [(20160116 2247) nil "Major mode for editing Stan files" tar ((:url . "http://github.com/stan-dev/stan-mode") (:keywords "languanges"))]) (stack-mode . [(20150923 823) ((haskell-mode (13 14)) (cl-lib (0 5)) (flycheck (0 23))) "A minor mode enabling various features based on stack-ide." tar ((:url . "https://github.com/commercialhaskell/stack-ide") (:keywords "haskell" "stack"))]) (ssh-tunnels . [(20141219 318) ((cl-lib (0 5)) (emacs (24))) "Manage SSH tunnels" single ((:url . "http://github.com/death/ssh-tunnels") (:keywords "tools" "convenience"))]) (ssh-config-mode . [(20141219 846) nil "Mode for fontification of ~/.ssh/config" single ((:url . "http://www.mahalito.net/~harley/elisp/ssh-config-mode.el") (:keywords "ssh" "config" "emacs"))]) (ssh-agency . [(20160101 1435) ((emacs (24 4)) (dash (2 10 0))) "use ssh-agent on win32 from Emacs" single ((:url . "https://github.com/magit/ssh-agency"))]) (ssh . [(20120904 1342) nil "Support for remote logins using ssh." single ((:keywords "unix" "comm"))]) (srefactor . [(20151202 2004) ((emacs (24 4))) "A refactoring tool based on Semantic parser framework" tar ((:url . "https://github.com/tuhdo/semantic-refactor") (:keywords "c" "languages" "tools"))]) (sr-speedbar . [(20150804 951) nil "Same frame speedbar" single ((:url . "http://www.emacswiki.org/emacs/download/sr-speedbar.el") (:keywords "speedbar" "sr-speedbar.el"))]) (sqlup-mode . [(20151121 630) nil "Upcase SQL words for you" single ((:url . "https://github.com/trevoke/sqlup-mode.el") (:keywords "sql" "tools"))]) (sqlplus . [(20141009 739) nil "User friendly interface to SQL*Plus and support for PL/SQL compilation" single ((:keywords "sql" "sqlplus" "oracle" "plsql"))]) (sqlite . [(20150416 2215) nil "use sqlite via elisp" single nil]) (sql-indent . [(20150424 1716) nil "indentation of SQL statements" single ((:url . "https://github.com/bsvingen/sql-indent") (:keywords "languages"))]) (sproto-mode . [(20151115 1005) nil "Major mode for editing sproto." single ((:keywords "sproto"))]) (sprintly-mode . [(20121005 2234) ((furl (0 0 2))) "Major mode for dealing with sprint.ly" single ((:url . "https://github.com/sprintly/sprintly-mode"))]) (springboard . [(20150505 1011) ((helm (1 6 9))) "Temporarily change default-directory for one command" single ((:url . "https://github.com/jwiegley/springboard") (:keywords "helm"))]) (spray . [(20150625 2345) nil "a speed reading mode" single ((:url . "https://github.com/ian-kelling/spray") (:keywords "convenience"))]) (spotlight . [(20150929 55) ((emacs (24 1)) (swiper (0 6 0)) (counsel (0 6 0))) "search files with Mac OS X spotlight" single ((:url . "http://www.pragmaticemacs.com") (:keywords "search" "external"))]) (spotify . [(20160128 106) ((cl-lib (0 5))) "Control the spotify application from emacs" single ((:url . "https://github.com/remvee/spotify-el") (:keywords "convenience"))]) (splitter . [(20130705 50) nil "Manage window splits" single ((:url . "https://github.com/chumpage/chumpy-windows") (:keywords "frames" "convenience"))]) (splitjoin . [(20150505 732) ((cl-lib (0 5))) "Transition between multiline and single-line code" single ((:url . "https://github.com/syohex/emacs-splitjoin"))]) (sphinx-frontend . [(20151122 212) nil "Launch build process for rst documents via sphinx." single ((:url . "https://github.com/kostafey/sphinx-frontend") (:keywords "compile" "sphinx" "restructuredtext"))]) (sphinx-doc . [(20160116 317) ((s (1 9 0)) (cl-lib (0 5)) (dash (2 10 0))) "Sphinx friendly docstrings for Python functions" single ((:url . "https://github.com/naiquevin/sphinx-doc.el") (:keywords "sphinx" "python"))]) (speed-type . [(20150120 2034) ((cl-lib (0 3))) "Practice touch and speed typing" single ((:url . "https://github.com/hagleitn/speed-type") (:keywords "games"))]) (speechd-el . [(20141025 912) nil "Client to speech synthesizers and Braille displays." tar nil]) (speech-tagger . [(20160103 1512) ((cl-lib (0 5))) "tag parts of speech using coreNLP" tar ((:url . "https://github.com/cosmicexplorer/speech-tagger") (:keywords "speech" "tag" "nlp" "language" "corenlp" "parsing" "natural"))]) (speck . [(20140901 1135) nil "minor mode for spell checking" single ((:keywords "spell" "checking"))]) (sparql-mode . [(20151104 914) ((cl-lib (0 5))) "Edit and interactively evaluate SPARQL queries." tar ((:url . "https://github.com/ljos/sparql-mode"))]) (sparkline . [(20150101 519) ((cl-lib (0 3))) "Make sparkline images from a list of numbers" single ((:keywords "extensions"))]) (spaces . [(20130610 49) nil "Create and switch between named window configurations." single ((:url . "https://github.com/chumpage/chumpy-windows") (:keywords "frames" "convenience"))]) (spacemacs-theme . [(20160121 1243) nil "Color theme with a dark and light versions" tar ((:keywords "color" "theme") (:url . "https://github.com/nashamri/spacemacs-theme"))]) (spaceline . [(20160120 359) ((emacs (24 3)) (cl-lib (0 5)) (powerline (2 3)) (dash (2 11 0)) (s (1 10 0))) "Modeline configuration library for powerline" tar ((:url . "https://github.com/TheBB/spaceline") (:keywords "mode-line" "powerline" "spacemacs"))]) (spacegray-theme . [(20150719 1231) ((emacs (24 1))) "A Hyperminimal UI Theme" single ((:url . "http://github.com/bruce/emacs-spacegray-theme") (:keywords "themes"))]) (sourcetalk . [(20140823 739) ((request (0 2 0))) "SourceTalk (http://sourcetalk.net) plugin for Emacs" single ((:url . "https://github.com/malroc/sourcetalk_emacs") (:keywords "sourcetalk" "code" "discussion"))]) (sourcemap . [(20150418 700) ((cl-lib (0 5)) (emacs (24))) "Sourcemap parser" single ((:url . "https://github.com/syohex/emacs-sourcemap"))]) (sourcekit . [(20151209 514) ((emacs (24 3)) (dash (2 12 1)) (dash-functional (1 2 0))) "Library to interact with sourcekittendaemon" single ((:url . "https://github.com/nathankot/company-sourcekit") (:keywords "tools" "processes"))]) (sourcegraph . [(20150403 1927) ((emacs (24 3))) "Minor mode for srclib" single ((:url . "https://github.com/sourcegraph/emacs-sourcegraph-mode") (:keywords "sourcegraph"))]) (soundklaus . [(20160210 1317) ((dash (2 12 1)) (emacs (24)) (emms (4 0)) (s (1 10 0)) (pkg-info (0 4)) (cl-lib (0 5))) "Play SoundCloud music in Emacs via EMMS" tar ((:url . "https://github.com/r0man/soundklaus.el") (:keywords "soundcloud" "music" "emms"))]) (soundcloud . [(20150501 2026) ((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 ((:keywords "soundcloud" "music" "audio"))]) (sound-wav . [(20140303 457) ((deferred (0 3 1)) (cl-lib (0 5))) "Play wav file" single ((:url . "https://github.com/syohex/emacs-sound-wav"))]) (sotlisp . [(20151105 734) ((emacs (24 1))) "Write lisp at the speed of thought." single ((:url . "https://github.com/Malabarba/speed-of-thought-lisp") (:keywords "convenience" "lisp"))]) (sotclojure . [(20160121 1040) ((emacs (24 1)) (clojure-mode (4 0 0)) (cider (0 8)) (sotlisp (1 3))) "Write clojure at the speed of thought." single ((:url . "https://github.com/Malabarba/speed-of-thought-clojure") (:keywords "convenience" "clojure"))]) (sos . [(20141214 2003) ((org (7))) "StackOverflow Search" single ((:url . "https://github.com/omouse/emacs-sos") (:keywords "tools" "search" "questions"))]) (soothe-theme . [(20141027 741) ((emacs (24 1))) "a dark colorful theme for Emacs24." single ((:url . "https://github.com/jasonm23/emacs-soothe-theme"))]) (sonic-pi . [(20150919 330) ((cl-lib (0 5)) (osc (0 1)) (dash (2 2 0)) (emacs (24))) "A Emacs client for SonicPi" tar ((:url . "http://www.github.com/repl-electric/sonic-pi.el") (:keywords "sonicpi" "ruby"))]) (solidity-mode . [(20151124 911) nil "Major mode for ethereum's solidity language" single ((:keywords "languages"))]) (solarized-theme . [(20160106 15) ((cl-lib (0 5)) (dash (2 6 0))) "The Solarized color theme, ported to Emacs." tar nil]) (soft-stone-theme . [(20140614 135) ((emacs (24))) "Emacs 24 theme with a light background." single ((:url . "http://github.com/mswift42/soft-stone-theme"))]) (soft-morning-theme . [(20150918 1341) nil "Emacs24 theme with a light background." single ((:url . "http://github.com/mswift42/soft-morning-theme"))]) (soft-charcoal-theme . [(20140420 943) nil "Dark charcoal theme with soft colors" single ((:url . "http://github.com/mswift42/soft-charcoal-theme"))]) (snippet . [(20130210 1515) nil "Insert snippets of text into a buffer" single nil]) (snapshot-timemachine . [(20150501 1100) ((emacs (24 4)) (cl-lib (0 5))) "Step through (Btrfs, ZFS, ...) snapshots of files" single ((:url . "https://github.com/mrBliss/snapshot-timemachine"))]) (snakemake-mode . [(20160209 1827) ((emacs (24))) "Major mode for editing Snakemake files" tar ((:url . "https://github.com/kyleam/snakemake-mode") (:keywords "tools"))]) (smyx-theme . [(20141127 28) nil "smyx Color Theme" single ((:keywords "color" "theme" "smyx"))]) (smtpmail-multi . [(20130921 2042) nil "Use different smtp servers for sending mail" single ((:url . "https://github.com/vapniks/smtpmail-multi") (:keywords "comm"))]) (smotitah . [(20150218 230) nil "Modular emacs configuration framework" tar nil]) (smooth-scrolling . [(20131219 2039) nil "Make emacs scroll smoothly" single ((:url . "http://github.com/aspiers/smooth-scrolling/") (:keywords "convenience"))]) (smooth-scroll . [(20130321 2114) nil "Minor mode for smooth scrolling and in-place scrolling." single ((:url . "http://www.emacswiki.org/emacs/download/smooth-scroll.el") (:keywords "convenience" "emulations" "frames"))]) (sml-modeline . [(20120110 1240) nil "Show position in a scrollbar like way in mode-line" single ((:url . "http://bazaar.launchpad.net/~nxhtml/nxhtml/main/annotate/head%3A/util/sml-modeline.el"))]) (smex . [(20151212 1409) ((emacs (24))) "M-x interface with Ido-style fuzzy matching." single ((:url . "http://github.com/nonsequitur/smex/") (:keywords "convenience" "usability"))]) (smeargle . [(20151013 2242) ((cl-lib (0 5)) (emacs (24))) "Highlighting region by last updated time" single ((:url . "https://github.com/syohex/emacs-smeargle"))]) (smarty-mode . [(20100703 458) nil "major mode for editing smarty templates" single ((:url . "none yet") (:keywords "smarty" "php" "languages" "templates"))]) (smartwin . [(20151230 111) ((emacs (24 4))) "A minor mode shows shell like buffers." single ((:url . "https://github.com/jerryxgh/smartwin") (:keywords "convenience"))]) (smartscan . [(20131230 739) nil "Jumps between other symbols found at point" single ((:keywords "extensions"))]) (smartrep . [(20150508 1930) nil "Support sequential operation which omitted prefix keys." single ((:url . "https://github.com/myuhe/smartrep.el") (:keywords "convenience"))]) (smartparens . [(20160217 1102) ((cl-lib (0 3)) (dash (2 10 0))) "Automatic insertion, wrapping and paredit-like navigation with user defined pairs." tar nil]) (smart-window . [(20130214 1142) nil "vim-like window controlling plugin" single ((:url . "https://github.com/dryman/smart-window.el") (:keywords "window"))]) (smart-tabs-mode . [(20140331 1629) nil "Intelligently indent with tabs, align with spaces!" single ((:url . "http://www.emacswiki.org/emacs/SmartTabs") (:keywords "languages"))]) (smart-tab . [(20150703 917) nil "Intelligent tab completion and indentation." single ((:url . "http://github.com/genehack/smart-tab/tree/master") (:keywords "extensions"))]) (smart-shift . [(20150202 2325) nil "Smart shift text left/right." single ((:url . "https://github.com/hbin/smart-shift") (:keywords "convenience" "tools"))]) (smart-region . [(20150903 703) ((emacs (24 4)) (expand-region (0 10 0)) (multiple-cursors (1 3 0)) (cl-lib (0 5))) "Smartly select region, rectangle, multi cursors" single ((:url . "https://github.com/uk-ar/smart-region") (:keywords "marking" "region"))]) (smart-newline . [(20131207 1940) nil "Provide smart newline for one keybind." single nil]) (smart-mode-line-powerline-theme . [(20160111 932) ((emacs (24 3)) (powerline (2 2)) (smart-mode-line (2 5))) "smart-mode-line theme that mimics the powerline appearance." tar ((:url . "http://github.com/Bruce-Connor/smart-mode-line") (:keywords "mode-line" "faces" "themes"))]) (smart-mode-line . [(20160125 900) ((emacs (24 3)) (rich-minority (0 1 1))) "A color coded smart mode-line." tar ((:url . "http://github.com/Malabarba/smart-mode-line") (:keywords "mode-line" "faces" "themes"))]) (smart-mark . [(20150911 1910) nil "Restore point after C-g when mark" single ((:keywords "mark" "restore"))]) (smart-indent-rigidly . [(20141205 1615) nil "Smart rigid indenting" single ((:url . "https://github.com/re5et/smart-indent-rigidly") (:keywords "indenting" "coffee-mode" "haml-mode" "sass-mode"))]) (smart-forward . [(20140430 13) ((expand-region (0 8 0))) "Semantic navigation" single ((:keywords "navigation"))]) (smart-cursor-color . [(20141124 919) nil "Change cursor color dynamically" single ((:url . "https://github.com/7696122/smart-cursor-color/") (:keywords "cursor" "color" "face"))]) (smart-compile . [(20150519 947) nil "an interface to `compile'" single ((:keywords "tools" "unix"))]) (sly-repl-ansi-color . [(20160214 18) ((sly (0)) (cl-lib (0 5))) "Add ANSI colors support to the sly mrepl." single ((:url . "https://github.com/PuercoPop/sly-repl-ansi-color") (:keywords "sly"))]) (sly-named-readtables . [(20150817 816) ((sly (1 0 0 -2 2))) "Support named readtables in Common Lisp files" tar ((:url . "https://github.com/capitaomorte/sly-named-readtables") (:keywords "languages" "lisp" "sly"))]) (sly-macrostep . [(20160119 434) ((sly (1 0 0 -2 2)) (macrostep (0 9))) "fancy macro-expansion via macrostep.el" tar ((:url . "https://github.com/capitaomorte/sly-macrostep") (:keywords "languages" "lisp" "sly"))]) (sly-hello-world . [(20160119 636) ((sly (1 0 0 -2 2))) "A template SLY contrib" tar ((:url . "https://github.com/capitaomorte/sly-hello-world") (:keywords "languages" "lisp" "sly"))]) (sly-company . [(20151126 22) ((sly (1 0 0 -3)) (company (0 7)) (emacs (24 3))) "sly completion backend for company mode" single ((:keywords "convenience" "lisp" "abbrev"))]) (sly . [(20160122 224) ((emacs (24 3))) "Sylvester the Cat's Common Lisp IDE" tar ((:url . "https://github.com/capitaomorte/sly") (:keywords "languages" "lisp" "sly"))]) (slovak-holidays . [(20150418 155) nil "Adds a list of slovak holidays to Emacs calendar" single ((:keywords "calendar"))]) (slirm . [(20160201 625) ((emacs (24 4))) "Systematic Literature Review Mode for Emacs." single ((:url . "http://github.com/fbie/slirm"))]) (slime-volleyball . [(20140717 2141) nil "An SVG Slime Volleyball Game" tar ((:keywords "games"))]) (slime-theme . [(20141115 2302) ((emacs (24 0))) "an Emacs 24 theme based on Slime (tmTheme)" single ((:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) (slime-ritz . [(20130218 1537) nil "slime extensions for ritz" single ((:url . "https://github.com/pallet/ritz") (:keywords "languages" "lisp" "slime"))]) (slime-company . [(20151210 614) ((slime (2 13)) (company (0 9 0))) "slime completion backend for company mode" single ((:keywords "convenience" "lisp" "abbrev"))]) (slime-annot . [(20131230 1908) ((slime (0))) "cl-annot support for SLIME" single ((:url . "https://github.com/arielnetworks/cl-annot"))]) (slime . [(20160211 437) ((cl-lib (0 5)) (macrostep (0 9))) "Superior Lisp Interaction Mode for Emacs" tar ((:url . "https://github.com/slime/slime") (:keywords "languages" "lisp" "slime"))]) (slim-mode . [(20140611 950) nil "Major mode for editing Slim files" single ((:url . "http://github.com/slim-template/emacs-slim") (:keywords "markup" "language"))]) (slideview . [(20150324 1540) ((cl-lib (0 3))) "File slideshow" single ((:url . "https://github.com/mhayashi1120/Emacs-slideview") (:keywords "files"))]) (slamhound . [(20140506 1618) nil "Rip Clojure namespaces apart and rebuild them." single ((:url . "https://github.com/technomancy/slamhound") (:keywords "tools" "lisp"))]) (slack . [(20160201 1908) ((websocket (1 5)) (request (0 2 0)) (oauth2 (0 10)) (circe (2 2)) (alert (1 2)) (emojify (0 2))) "Slack client for Emacs" tar nil]) (skype . [(20131001 2118) nil "skype UI for emacs users.." tar ((:keywords "skype" "chat"))]) (skewer-reload-stylesheets . [(20150111 423) ((skewer-mode (1 5 3))) "live-edit CSS stylesheets." tar nil]) (skewer-mode . [(20150914 1304) ((simple-httpd (1 4 0)) (js2-mode (20090723)) (emacs (24))) "live browser JavaScript, CSS, and HTML interaction" tar nil]) (skewer-less . [(20131015 622) ((skewer-mode (1 5 3))) "Skewer support for live LESS stylesheet updates" single ((:keywords "languages" "tools"))]) (skeletor . [(20151220 2054) ((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 nil]) (sisyphus . [(20160126 1419) ((emacs (24 4)) (m-buffer (0 14)) (dash (2 12 0))) "Test support functions" tar nil]) (simplezen . [(20130421 300) ((s (1 4 0)) (dash (1 1 0))) "A simple subset of zencoding-mode for Emacs." single nil]) (simplenote2 . [(20150630 716) ((request-deferred (0 2 0))) "Interact with simple-note.appspot.com" single ((:keywords "simplenote"))]) (simplenote . [(20141118 640) nil "Interact with simple-note.appspot.com" single ((:keywords "simplenote"))]) (simpleclip . [(20150804 1010) nil "Simplified access to the system clipboard" single ((:url . "http://github.com/rolandwalker/simpleclip") (:keywords "convenience"))]) (simple-screen . [(20141023 758) nil "Simple screen configuration manager" single ((:url . "https://github.com/wachikun/simple-screen") (:keywords "tools"))]) (simple-rtm . [(20160118 1011) ((rtm (0 1))) "Interactive Emacs mode for Remember The Milk" tar ((:keywords "remember" "the" "milk" "productivity" "todo"))]) (simple-mpc . [(20151227 1034) nil "provides a simple interface to mpc" tar ((:keywords "multimedia" "mpd" "mpc"))]) (simple-httpd . [(20150430 1755) ((cl-lib (0 3))) "pure elisp HTTP server" single ((:url . "https://github.com/skeeto/emacs-http-server"))]) (simple-call-tree . [(20151203 1425) nil "analyze source code based on font-lock text-properties" single ((:url . "http://www.emacswiki.org/emacs/download/simple-call-tree.el") (:keywords "programming"))]) (simple+ . [(20151231 1600) ((strings (0))) "Extensions to standard library `simple.el'." single ((:url . "http://www.emacswiki.org/simple%2b.el") (:keywords "internal" "lisp" "extensions" "abbrev"))]) (simp . [(20150427 932) nil "Simple project definition, chiefly for file finding, and grepping" tar ((:url . "https://github.com/re5et/simp") (:keywords "project" "grep" "find"))]) (signature . [(20140730 1249) nil "Signature Survey" tar nil]) (sift . [(20160107 215) nil "Front-end for sift, a fast and powerful grep alternative" single ((:url . "https://github.com/nlamirault/sift.el") (:keywords "sift" "ack" "pt" "ag" "grep" "search"))]) (sicp . [(20151130 757) nil "Structure and Interpretation of Computer Programs in info format" tar ((:url . "https://mitpress.mit.edu/sicp"))]) (sibilant-mode . [(20151119 1345) nil "Support for the Sibilant programming language" single ((:url . "http://sibilantjs.info") (:keywords "languages"))]) (shut-up . [(20150423 522) ((cl-lib (0 3)) (emacs (24))) "Shut up would you!" single ((:url . "http://github.com/rejeep/shut-up.el"))]) (shrink-whitespace . [(20150916 1215) nil "Whitespace removal DWIM key" single ((:url . "https://github.com/jcpetkovich/shrink-whitespace.el") (:keywords "editing"))]) (shpec-mode . [(20150530 222) nil "Minor mode for shpec specification" single ((:url . "http://github.com/shpec/shpec-mode") (:keywords "languages" "tools"))]) (showtip . [(20080329 1959) nil "Show tip at cursor" single ((:keywords "help"))]) (showkey . [(20151231 1559) nil "Show keys as you use them." single ((:url . "http://www.emacswiki.org/showkey.el") (:keywords "help" "keys" "mouse"))]) (show-marks . [(20130805 749) ((fm (1 0))) "Navigate and visualize the mark-ring" single ((:url . "https://github.com/vapniks/mark") (:keywords "convenience"))]) (show-css . [(20160210 608) ((doom (1 3)) (s (1 10 0))) "Show the css of the html attribute the cursor is on" tar ((:url . "https://github.com/smmcg/showcss-mode") (:keywords "hypermedia"))]) (shoulda . [(20140616 1133) ((cl-lib (0 5))) "Shoulda test support for ruby" single ((:keywords "ruby" "tests" "shoulda"))]) (shm . [(20160211 1154) nil "Structured Haskell Mode" tar ((:keywords "development" "haskell" "structured"))]) (shimbun . [(20120718 2038) nil "interfacing with web newspapers" tar ((:keywords "news"))]) (shift-text . [(20130831 955) ((cl-lib (1 0)) (es-lib (0 3))) "Move the region in 4 directions, in a way similar to Eclipse's" single ((:url . "https://github.com/sabof/shift-text"))]) (shelltest-mode . [(20141227 248) nil "Major mode for shelltestrunner" single ((:url . "https://github.com/rtrn/shelltest-mode") (:keywords "languages"))]) (shelldoc . [(20151114 1925) ((cl-lib (0 3)) (s (1 9 0))) "shell command editing support with man page." single ((:url . "http://github.com/mhayashi1120/Emacs-shelldoc") (:keywords "applications"))]) (shell-toggle . [(20150226 611) nil "Toggle to and from the shell buffer" single ((:url . "https://github.com/knu/shell-toggle.el") (:keywords "processes"))]) (shell-switcher . [(20160111 2335) ((emacs (24))) "Provide fast switching between shell buffers." tar nil]) (shell-split-string . [(20151224 208) nil "Split strings using shell-like syntax" single ((:url . "https://github.com/10sr/shell-split-string-el") (:keywords "utility" "library" "shell" "string"))]) (shell-pop . [(20160208 148) ((emacs (24))) "helps you to use shell easily on Emacs. Only one key action to work." single ((:url . "http://github.com/kyagi/shell-pop-el") (:keywords "shell" "terminal" "tools"))]) (shell-history . [(20100504 150) nil "integration with shell history" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/shell-history.el") (:keywords "processes" "convenience"))]) (shell-here . [(20150728 1004) nil "Open a shell relative to the working directory" single ((:keywords "unix" "tools" "processes"))]) (shell-current-directory . [(20140101 1554) nil "create new shell based on buffer directory" single ((:keywords "shell" "comint"))]) (shell-command . [(20090621 632) nil "enables tab-completion for `shell-command'" single ((:keywords "shell"))]) (shampoo . [(20131230 219) nil "A remote Smalltalk development mode" tar nil]) (shakespeare-mode . [(20150708 712) nil "A major mode for editing Shakespearean templates." single ((:url . "http://github.com/CodyReichert/shakespeare-mode") (:keywords "shakespeare" "hamlet" "lucius" "julius" "mode"))]) (shader-mode . [(20151030 704) ((emacs (24))) "Major mode for shader" single ((:url . "https://github.com/midnightSuyama/shader-mode"))]) (shadchen . [(20141102 1039) nil "pattern matching for elisp" single nil]) (shackle . [(20160102 1501) ((cl-lib (0 5))) "Enforce rules for popups" single ((:url . "https://github.com/wasamasa/shackle") (:keywords "convenience"))]) (sexp-move . [(20150915 1030) nil "Improved S-Expression Movement" single ((:url . "https://gitlab.com/elzair/sexp-move") (:keywords "sexp"))]) (seti-theme . [(20150314 122) nil "A dark colored theme, inspired by Seti Atom Theme" single ((:url . "https://github.com/caisah/seti-theme") (:keywords "themes"))]) (session . [(20120510 1700) nil "use variables, registers and buffer places across sessions" single ((:url . "http://emacs-session.sourceforge.net/") (:keywords "session" "session management" "desktop" "data" "tools"))]) (serverspec . [(20150623 455) ((dash (2 6 0)) (s (1 9 0)) (f (0 16 2)) (helm (1 6 1))) "Serverspec minor mode" tar ((:url . "http://101000lab.org"))]) (servant . [(20140216 419) ((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 ((:url . "http://github.com/rejeep/servant.el") (:keywords "elpa" "server"))]) (sequential-command . [(20151207 1403) nil "Many commands into one command" tar ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/sequential-command.el") (:keywords "convenience" "lisp"))]) (sequences . [(20130908 1122) ((emacs (24))) "Ports of some Clojure sequence functions." single ((:keywords "convenience"))]) (seoul256-theme . [(20150714 1535) nil "No description available." single nil]) (sentence-navigation . [(20150914 2146) ((ample-regexps (0 1)) (emacs (24 4))) "Commands to navigate one-spaced sentences." single ((:url . "https://github.com/noctuid/emacs-sentence-navigation") (:keywords "sentence" "evil"))]) (sentence-highlight . [(20121026 750) nil "highlight the current sentence" single ((:keywords "plain text" "writing" "highlight" "editing" "focus"))]) (sensitive . [(20131015 635) ((emacs (24)) (sequences (0 1 0))) "A dead simple way to load sensitive information" single ((:keywords "convenience"))]) (semi . [(20160211 55) ((flim (1 14 9))) "A library to provide MIME features." tar nil]) (selectric-mode . [(20151201 718) nil "IBM Selectric mode for Emacs" tar ((:keywords "multimedia" "convenience" "typewriter" "selectric"))]) (sekka . [(20150708 459) ((cl-lib (0 3)) (concurrent (0 3 1)) (popup (0 5 2))) "A client for Sekka IME server" single ((:url . "https://github.com/kiyoka/sekka") (:keywords "ime" "skk" "japanese"))]) (seethru . [(20150218 1029) ((shadchen (1 4))) "Easily change Emacs' transparency" single ((:url . "http://github.com/benaiah/seethru") (:keywords "lisp" "tools" "alpha" "transparency"))]) (seeing-is-believing . [(20151010 1029) nil "minor mode for running the seeing-is-believing ruby gem" single nil]) (second-sel . [(20151231 1553) nil "Secondary selection commands" single ((:url . "http://www.emacswiki.org/second-sel.el") (:keywords "region" "selection" "yank" "paste" "edit"))]) (seclusion-mode . [(20121118 1553) nil "Edit in seclusion. A Dark Room mode." single ((:url . "http://github.com/dleslie/seclusion-mode"))]) (searchq . [(20150829 511) ((emacs (24 3))) "Framework of queued search tasks using GREP, ACK, AG and more." tar nil]) (search-web . [(20150312 403) nil "Post web search queries using `browse-url'." single nil]) (scss-mode . [(20150107 1400) nil "Major mode for editing SCSS files" single ((:url . "https://github.com/antonj/scss-mode") (:keywords "scss" "css" "mode"))]) (screenshot . [(20120509 405) nil "Take a screenshot in Emacs" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/screenshot.el") (:keywords "images" "hypermedia"))]) (scratches . [(20151005 2116) ((dash (2 11 0)) (f (0 17 0))) "Multiple scratches in any language" single ((:keywords "scratch"))]) (scratch-pop . [(20150820 139) ((popwin (0 7 0 -3))) "Generate, popup (& optionally backup) scratch buffer(s)." single ((:url . "http://hins11.yu-yake.com/"))]) (scratch-palette . [(20150225 42) ((popwin (0 7 0 -3))) "make scratch buffer for each files" single ((:url . "http://hins11.yu-yake.com/"))]) (scratch-log . [(20141114 2343) nil "Utility for *scratch* buffer." single nil]) (scratch-ext . [(20140103 2116) nil "Extensions for *scratch*" single ((:url . "https://github.com/kyanagi/scratch-ext-el"))]) (scratch . [(20120830 1028) nil "Mode-specific scratch buffers" tar ((:keywords "editing"))]) (scpaste . [(20151208 1735) ((htmlize (1 39))) "Paste to the web via scp." single ((:url . "https://github.com/technomancy/scpaste") (:keywords "convenience" "hypermedia"))]) (sclang-snippets . [(20130513 51) ((yasnippet (0 8 0))) "Snippets for the SuperCollider Emacs mode" tar ((:keywords "snippets"))]) (sclang-extensions . [(20131117 1439) ((auto-complete (1 4 0)) (s (1 3 1)) (dash (1 2 0)) (emacs (24 1))) "Extensions for the SuperCollider Emacs mode." tar ((:keywords "sclang" "supercollider" "languages" "tools"))]) (scion . [(20130315 555) nil "Haskell Minor Mode for Interacting with the Scion Library" single ((:url . "https://code.google.com/p/scion-lib/"))]) (scheme-here . [(20141028 18) nil "cmuscheme extension for multiple inferior processes" single ((:url . "https://github.com/kaihaosw/scheme-here") (:keywords "scheme"))]) (scheme-complete . [(20130220 403) nil "Smart tab completion for Scheme in Emacs" single nil]) (scf-mode . [(20151121 1848) nil "shorten file-names in compilation type buffers" single ((:url . "https://github.com/lewang/scf-mode") (:keywords "compilation"))]) (scala-outline-popup . [(20150702 937) ((dash (2 9 0)) (popup (0 5 3)) (scala-mode2 (0 22)) (flx-ido (0 5))) "scala file summary popup" single ((:url . "https://github.com/ancane/scala-outline-popup.el") (:keywords "scala" "structure" "summary"))]) (scala-mode2 . [(20151226 1048) nil "Major mode for editing Scala >= 2.9" tar nil]) (scala-mode . [(20141205 1251) nil "Major mode for editing Scala code." tar ((:keywords "scala" "languages" "oop"))]) (scad-preview . [(20160206 536) ((scad-mode (91 0))) "Preview SCAD models in real-time within Emacs" single ((:url . "http://hins11.yu-yake.com/"))]) (scad-mode . [(20160205 1043) nil "A major mode for editing OpenSCAD code" single ((:url . "https://raw.github.com/openscad/openscad/master/contrib/scad-mode.el") (:keywords "languages"))]) (sbt-mode . [(20160217 534) ((scala-mode2 (0 22))) "Major mode for sbt >= 0.12 with scala >= 2.9" tar nil]) (savekill . [(20140417 1934) nil "Save kill ring to disk" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/savekill.el") (:keywords "tools"))]) (save-visited-files . [(20151021 1043) nil "save opened files across sessions" single ((:url . "http://github.com/nflath/save-visited-files"))]) (save-load-path . [(20131228 1152) nil "save load-path and reuse it to test" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/save-load-path.el") (:keywords "lisp"))]) (sauron . [(20160101 224) nil "Track (erc/org/dbus/...) events and react to them." tar nil]) (sass-mode . [(20150508 2012) ((haml-mode (3 0 15)) (cl-lib (0 5))) "Major mode for editing Sass files" single ((:url . "http://github.com/nex3/haml/tree/master") (:keywords "markup" "language" "css"))]) (sane-term . [(20150917 1602) ((emacs (24 1))) "Multi Term is crazy. This is not." single ((:url . "http://github.com/adamrt/sane-term"))]) (salt-mode . [(20150904 1113) ((yaml-mode (0 0 12)) (mmm-mode (0 5 4)) (mmm-jinja2 (0 0 1))) "Major mode for Salt States" single ((:url . "https://github.com/beardedprojamz/salt-mode") (:keywords "languages"))]) (sage-shell-mode . [(20151024 113) ((cl-lib (0 5)) (deferred (0 3 1))) "A front-end for Sage Math" tar ((:url . "https://github.com/stakemori/sage-shell-mode") (:keywords "sage" "math"))]) (sackspace . [(20130719 256) nil "A better backspace" single ((:url . "http://github.com/cofi/sackspace.el") (:keywords "delete" "convenience"))]) (s-buffer . [(20130605 1424) ((s (1 6 0)) (noflet (0 0 3))) "s operations for buffers" single ((:url . "http://github.com/nicferrier/emacs-s-buffer") (:keywords "lisp"))]) (s . [(20160115 58) nil "The long lost Emacs string manipulation library." single ((:keywords "strings"))]) (rvm . [(20150402 742) nil "Emacs integration for rvm" single ((:url . "http://www.emacswiki.org/emacs/RvmEl") (:keywords "ruby" "rvm"))]) (rustfmt . [(20160217 542) ((emacs (24))) "Format rust code using rustfmt" single ((:url . "https://github.com/fbergroth/emacs-rustfmt") (:keywords "convenience"))]) (rust-mode . [(20160216 1734) nil "A major emacs mode for editing Rust source code" single ((:url . "https://github.com/rust-lang/rust-mode") (:keywords "languages"))]) (runtests . [(20150807 131) nil "Run unit tests from Emacs" single ((:url . "https://github.com/sunesimonsen/emacs-runtests") (:keywords "test"))]) (runner . [(20151118 216) nil "Improved \"open with\" suggestions for dired" single ((:url . "https://github.com/thamer/runner") (:keywords "shell command" "dired" "file extension" "open with"))]) (ruby-tools . [(20151209 815) nil "Collection of handy functions for ruby-mode." tar nil]) (ruby-test-mode . [(20151127 18) ((ruby-mode (1 0))) "Minor mode for Behaviour and Test Driven" single ((:keywords "ruby" "unit" "test" "rspec"))]) (ruby-refactor . [(20160214 850) ((ruby-mode (1 2))) "A minor mode which presents various Ruby refactoring helpers." single ((:url . "https://github.com/ajvargo/ruby-refactor") (:keywords "refactor" "ruby"))]) (ruby-interpolation . [(20131112 852) nil "Ruby string interpolation helpers" single ((:url . "http://github.com/leoc/ruby-interpolation.el"))]) (ruby-hash-syntax . [(20141010 839) nil "Toggle ruby hash syntax between classic and 1.9 styles" single ((:url . "https://github.com/purcell/ruby-hash-syntax") (:keywords "languages"))]) (ruby-guard . [(20160131 1752) nil "Launching guard directly inside emacs." single ((:url . "https://github.com/cheunghy/ruby-guard") (:keywords "ruby" "guard" "rails"))]) (ruby-factory . [(20160101 2321) ((inflections (1 1))) "Minor mode for Ruby test object generation libraries" tar ((:url . "http://github.com/sshaw/ruby-factory-mode") (:keywords "ruby" "rails" "convenience"))]) (ruby-end . [(20141215 423) nil "Automatic insertion of end blocks for Ruby" single ((:url . "http://github.com/rejeep/ruby-end") (:keywords "speed" "convenience" "ruby"))]) (ruby-electric . [(20150424 752) nil "Minor mode for electrically editing ruby code" single ((:url . "https://github.com/knu/ruby-electric.el") (:keywords "languages" "ruby"))]) (ruby-dev . [(20130811 151) nil "Interactive developement environment for Ruby." tar nil]) (ruby-compilation . [(20150708 2340) ((inf-ruby (2 2 1))) "run a ruby process in a compilation buffer" single ((:url . "https://github.com/eschulte/rinari") (:keywords "test" "convenience"))]) (ruby-block . [(20131210 1931) nil "highlight matching block" single ((:keywords "languages" "faces" "ruby"))]) (ruby-additional . [(20091002 345) ((emacs (24 3)) (ruby-mode (1 2))) "ruby-mode extensions yet to be merged into Emacs" tar ((:url . "http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/") (:keywords "ruby" "languages"))]) (rubocop . [(20151123 2137) ((dash (1 0 0)) (emacs (24))) "An Emacs interface for RuboCop" single ((:url . "https://github.com/bbatsov/rubocop-emacs") (:keywords "project" "convenience"))]) (rtm . [(20160116 927) ((cl-lib (1 0))) "An elisp implementation of the Remember The Milk API" single ((:url . "https://github.com/pmiddend/emacs-rtm") (:keywords "remember" "the" "milk" "productivity" "todo"))]) (rtags . [(20160213 546) nil "A front-end for rtags" tar ((:url . "http://rtags.net"))]) (rspec-mode . [(20160124 1407) ((ruby-mode (1 0)) (cl-lib (0 4))) "Enhance ruby-mode for RSpec" tar ((:url . "http://github.com/pezra/rspec-mode") (:keywords "rspec" "ruby"))]) (rsense . [(20100510 2105) nil "RSense client for Emacs" single ((:keywords "convenience"))]) (rpn-calc . [(20150302 534) ((popup (0 4))) "quick RPN calculator for hackers" single ((:url . "http://hins11.yu-yake.com/"))]) (rpm-spec-mode . [(20150411 855) nil "RPM spec file editing commands for Emacs/XEmacs" single ((:keywords "unix" "languages"))]) (roy-mode . [(20121208 358) nil "Roy major mode" single ((:url . "https://github.com/folone/roy-mode") (:keywords "extensions"))]) (rotate . [(20160214 2318) nil "Rotate the layout of emacs" single ((:url . "https://github.com/daic-h/emacs-rotate") (:keywords "window" "layout"))]) (rope-read-mode . [(20160208 1510) nil "Rearrange lines to read text smoothly" single ((:url . "https://github.com/marcowahl/rope-read-mode") (:keywords "reading" "convenience" "chill"))]) (roguel-ike . [(20160119 1902) ((popup (0 5 0))) "A coffee-break roguelike" tar nil]) (robe . [(20160121 1551) ((inf-ruby (2 3 0))) "Code navigation, documentation lookup and completion for Ruby" tar ((:url . "https://github.com/dgutov/robe") (:keywords "ruby" "convenience" "rails"))]) (rnc-mode . [(20121227 1502) nil "A major mode for editing RELAX NG Compact syntax." single nil]) (rings . [(20140102 1536) nil "Buffer rings. Like tabs, but better." single ((:url . "http://github.com/konr/rings") (:keywords "utilities" "productivity"))]) (rinari . [(20150708 2340) ((ruby-mode (1 0)) (inf-ruby (2 2 5)) (ruby-compilation (0 16)) (jump (2 0))) "Rinari Is Not A Rails IDE" single ((:url . "https://github.com/eschulte/rinari") (:keywords "ruby" "rails" "project" "convenience" "web"))]) (rigid-tabs . [(20150807 856) ((emacs (24 3))) "Rigidify and adjust the visual alignment of TABs" single ((:url . "https://github.com/wavexx/rigid-tabs.el") (:keywords "diff" "whitespace" "version control" "magit"))]) (rich-minority . [(20151201 400) ((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"))]) (rhtml-mode . [(20130422 611) nil "major mode for editing RHTML files" tar nil]) (rfringe . [(20110405 820) nil "display the relative location of the region, in the fringe." single ((:url . "http://www.emacswiki.org/emacs/rfringe.el") (:keywords "fringe" "bitmap"))]) (reykjavik-theme . [(20160109 0) ((emacs (24))) "Theme with a dark background." single nil]) (revive . [(20150417 1555) nil "Resume Emacs" single nil]) (review-mode . [(20150110 612) nil "major mode for ReVIEW" single ((:url . "https://github.com/kmuto/review-el"))]) (reverse-theme . [(20141204 1745) nil "Reverse theme for Emacs" single ((:url . "https://github.com/syohex/emacs-reverse-theme"))]) (reveal-next . [(20151231 1550) nil "Progressively reveal text after the cursor." single ((:url . "http://www.emacswiki.org/reveal-next.el") (:keywords "hide" "show" "invisible" "learning"))]) (reveal-in-osx-finder . [(20150802 957) nil "Reveal file associated with buffer in OS X Finder" single ((:url . "https://github.com/kaz-yos/reveal-in-osx-finder") (:keywords "os x" "finder"))]) (restclient . [(20151128 1512) nil "An interactive HTTP client for Emacs" single ((:keywords "http"))]) (restart-emacs . [(20151203 835) nil "Restart emacs from within emacs" single ((:url . "https://github.com/iqbalansari/restart-emacs") (:keywords "convenience"))]) (resize-window . [(20151126 2029) ((emacs (24))) "easily resize windows" single ((:url . "https://github.com/dpsutton/resize-mode") (:keywords "window" "resize"))]) (requirejs-mode . [(20130215 1304) nil "Improved AMD module management" single ((:keywords "javascript" "amd" "requirejs"))]) (requirejs . [(20151203 2319) ((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 ((:url . "https://github.com/joeheyming/requirejs-emacs") (:keywords "javascript" "requirejs"))]) (request-deferred . [(20130526 1015) ((deferred (0 3 1)) (request (0 2 0))) "Wrap request.el by deferred" single nil]) (request . [(20160108 33) ((cl-lib (0 5))) "Compatible layer for URL request in Emacs" single nil]) (req-package . [(20151220 54) ((use-package (1 0)) (dash (2 7 0)) (log4e (0 2 0)) (ht (0))) "A use-package wrapper for package runtime dependencies management" tar ((:url . "https://github.com/edvorg/req-package") (:keywords "dotemacs" "startup" "speed" "config" "package"))]) (repo . [(20160114 1114) ((emacs (24 3))) "Running repo from Emacs" single ((:url . "https://github.com/canatella/repo-el") (:keywords "convenience"))]) (replace-symbol . [(20151030 1657) nil "Rename symbols in expressions or buffers" single ((:url . "https://github.com/bmastenbrook/replace-symbol-el"))]) (replace-pairs . [(20160207 451) ((emacs (24 4))) "Query-replace pairs of things" single ((:url . "https://github.com/davidshepherd7/replace-pairs"))]) (replace-from-region . [(20150406 1730) nil "Replace commands whose query is from region" single ((:url . "http://www.emacswiki.org/emacs/download/replace-from-region.el") (:keywords "replace" "search" "region"))]) (replace+ . [(20151231 1549) nil "Extensions to `replace.el'." single ((:url . "http://www.emacswiki.org/replace%2b.el") (:keywords "matching" "help" "internal" "tools" "local"))]) (repl-toggle . [(20160119 421) ((fullframe (0 0 5))) "Switch to/from repl buffer for current major-mode" single ((:keywords "repl" "buffers" "toggle"))]) (repeatable-motion . [(20150629 1112) ((emacs (24))) "Make repeatable versions of motions" tar ((:url . "https://github.com/willghatch/emacs-repeatable-motion") (:keywords "motion" "repeatable"))]) (remark-mode . [(20151004 955) ((markdown-mode (2 0))) "Major mode for the remark slideshow tool" tar ((:keywords "remark" "slideshow" "markdown"))]) (relax . [(20131029 1434) ((json (1 2))) "For browsing and interacting with CouchDB" single ((:url . "http://github.com/technomancy/relax.el") (:keywords "database" "http"))]) (relative-line-numbers . [(20151006 1446) ((emacs (24))) "Display relative line numbers on the margin" single ((:url . "https://github.com/Fanael/relative-line-numbers"))]) (relative-buffers . [(20150115 1101) ((cl-lib (0 5)) (dash (2 6 0)) (s (1 9 0)) (f (0 16 2))) "Emacs buffers naming convention" single ((:url . "https://github.com/proofit404/relative-buffers"))]) (register-channel . [(20150513 2059) nil "Jump around fast using registers" single ((:keywords "convenience"))]) (region-state . [(20151128 238) nil "Show the number of chars/lines or rows/columns in the region" single ((:url . "https://github.com/xuchunyang/region-state.el") (:keywords "convenience"))]) (region-bindings-mode . [(20140407 1514) nil "Enable custom bindings when mark is active." single ((:url . "https://github.com/fgallina/region-bindings-mode") (:keywords "convenience"))]) (regex-tool . [(20131104 1434) nil "A regular expression evaluation tool for programmers" single ((:url . "http://www.newartisans.com/") (:keywords "regex" "languages" "programming" "development"))]) (regex-dsl . [(20100124 228) nil "lisp syntax for regexps" single nil]) (refheap . [(20140902 1402) ((json (1 2))) "A library for pasting to https://refheap.com" single ((:url . "https://github.com/Raynes/refheap.el"))]) (redshank . [(20120510 1230) nil "No description available." tar nil]) (redpen-paragraph . [(20151206 741) ((emacs (24)) (cl-lib (0 5))) "RedPen interface." single ((:url . "https://github.com/karronoli/redpen-paragraph.el") (:keywords "document" "proofreading" "help"))]) (redo+ . [(20131117 351) nil "Redo/undo system for Emacs" single ((:keywords "lisp" "extensions"))]) (redis . [(20150531 1248) ((emacs (24)) (cl-lib (0 5))) "Redis integration" single ((:url . "https://github.com/emacs-pe/redis.el") (:keywords "convenience"))]) (recursive-narrow . [(20140902 1027) nil "narrow-to-region that operates recursively" single ((:url . "http://github.com/nflath/recursive-narrow"))]) (rectangle-utils . [(20150528 1228) ((emacs (24)) (cl-lib (0 5))) "Some useful rectangle functions." single ((:url . "https://github.com/thierryvolpiatto/rectangle-utils"))]) (rect+ . [(20150620 1744) nil "Extensions to rect.el" single ((:url . "https://github.com/mhayashi1120/Emacs-rectplus") (:keywords "extensions" "data" "tools"))]) (recover-buffers . [(20150812 5) nil "revisit all buffers from an auto-save file" tar nil]) (recompile-on-save . [(20151126 646) ((dash (1 1 0)) (cl-lib (0 5))) "Trigger recompilation on file save." single ((:url . "https://github.com/maio/recompile-on-save.el") (:keywords "convenience" "files" "processes" "tools"))]) (recentf-ext . [(20130130 1350) nil "Recentf extensions" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/recentf-ext.el") (:keywords "convenience" "files"))]) (rebox2 . [(20121113 500) nil "Handling of comment boxes in various styles." single ((:url . "https://github.com/lewang/rebox2"))]) (realgud . [(20160214 1626) ((load-relative (1 0)) (list-utils (0 4 2)) (loc-changes (1 1)) (test-simple (1 0))) "A modular front-end for interacting with external debuggers" tar ((:url . "http://github.com/rocky/emacs-dbgr"))]) (real-auto-save . [(20150701 815) nil "Automatically save your all your buffers/files at regular intervals." single nil]) (readline-complete . [(20150708 737) nil "offers completions in shell mode" single nil]) (readability . [(20140715 1727) ((oauth (1 4)) (ov (1 0)) (emacs (24 3))) "Read articles from Readability in Emacs" single ((:url . "https://github.com/ShingoFukuyama/emacs-readability") (:keywords "readability" "oauth"))]) (react-snippets . [(20151104 1540) ((yasnippet (0 7 0))) "Yasnippets for React" tar nil]) (rdp . [(20120928 1854) nil "Recursive Descent Parser library" single ((:url . "https://github.com/skeeto/rdp"))]) (rdf-prefix . [(20151205 616) nil "Prefix lookup for RDF" single ((:keywords "convenience" "abbrev"))]) (rcirc-styles . [(20160206 1850) ((cl-lib (0 5))) "support mIRC-style color and attribute codes" single nil]) (rcirc-notify . [(20150219 1404) nil "libnotify popups" single ((:keywords "lisp" "rcirc" "irc" "notify" "growl"))]) (rcirc-groups . [(20160115 431) nil "an emacs buffer in rcirc-groups major mode" single ((:url . "http://tapoueh.org/emacs/rcirc-groups.html") (:keywords "comm" "convenience"))]) (rcirc-color . [(20151130 758) nil "color nicks" single ((:keywords "comm"))]) (rcirc-alertify . [(20140406 1819) ((alert (20140406 1353))) "Cross platform notifications for rcirc" single ((:keywords "comm" "convenience"))]) (rcirc-alert . [(20141127 247) nil "Configurable alert messages on top of RCIRC" tar ((:keywords "lisp" "rcirc" "irc" "alert" "awesome"))]) (rbt . [(20160129 1051) nil "No description available." single nil]) (rbenv . [(20141119 2349) nil "Emacs integration for rbenv" single ((:url . "https://github.com/senny/rbenv.el") (:keywords "ruby" "rbenv"))]) (rase . [(20120928 1345) nil "Run At Sun Event daemon" single ((:url . "https://github.com/m00natic/rase/") (:keywords "solar" "sunrise" "sunset" "midday" "midnight"))]) (ranger . [(20160203 501) ((emacs (24 4))) "Make dired more like ranger" single ((:url . "https://github.com/ralesi/ranger") (:keywords "files" "convenience"))]) (random-splash-image . [(20151002 1830) nil "Randomly sets splash image to *GNU Emacs* buffer on startup." single ((:url . "https://github.com/kakakaya/random-splash-image") (:keywords "games"))]) (rand-theme . [(20151219 1535) ((cl-lib (0 5))) "Random Emacs theme at start-up!" single ((:url . "https://github.com/gopar/rand-theme"))]) (rake . [(20150831 158) ((f (0 13 0)) (dash (1 5 0)) (cl-lib (0 5))) "Run rake commands" single ((:url . "https://github.com/asok/rake.el") (:keywords "rake" "ruby"))]) (rainbow-identifiers . [(20141102 726) ((emacs (24))) "Highlight identifiers according to their names" single ((:url . "https://github.com/Fanael/rainbow-identifiers"))]) (rainbow-delimiters . [(20150320 17) nil "Highlight brackets according to their depth" single ((:url . "https://github.com/Fanael/rainbow-delimiters") (:keywords "faces" "convenience" "lisp" "tools"))]) (rainbow-blocks . [(20140306 1033) nil "Block syntax highlighting for lisp code" single ((:url . "https://github.com/istib/rainbow-blocks"))]) (railscasts-theme . [(20150219 725) nil "Railscasts color theme for GNU Emacs." single ((:url . "https://github.com/mikenichols/railscasts-theme") (:keywords "railscasts" "color" "theme"))]) (rails-new . [(20141221 49) nil "Handy emacs command for generating rails application." single ((:url . "https://github.com/cheunghy/rails-new") (:keywords "rails" "ruby"))]) (rails-log-mode . [(20140407 2125) nil "Major mode for viewing Rails log files" single ((:keywords "rails" "log"))]) (railgun . [(20121016 2257) nil "No description available." single nil]) (racket-mode . [(20160213 904) ((emacs (24 3)) (faceup (0 0 2)) (s (1 9 0))) "Major mode for Racket language." tar ((:url . "https://github.com/greghendershott/racket-mode"))]) (racer . [(20160120 1229) ((emacs (24 3)) (rust-mode (0 2 0)) (dash (2 11 0)) (s (1 10 0))) "Rust completion and code navigation via racer" single ((:url . "https://github.com/racer-rust/emacs-racer") (:keywords "abbrev" "convenience" "matching" "rust" "tools"))]) (r-autoyas . [(20140101 710) ((ess (0)) (yasnippet (0 8 0))) "Provides automatically created yasnippets for R function argument lists." tar ((:url . "https://github.com/mlf176f2/r-autoyas.el") (:keywords "r" "yasnippet"))]) (quickrun . [(20160216 616) ((emacs (24)) (cl-lib (0 5))) "Run commands quickly" single ((:url . "https://github.com/syohex/emacs-quickrun"))]) (quickref . [(20130113 1500) ((dash (1 0 3)) (s (1 0 0))) "Display relevant notes-to-self in the echo area" single ((:url . "https://github.com/pd/quickref.el"))]) (quick-preview . [(20150828 2139) nil "quick preview using GNOME sushi, gloobus or quick look" single ((:url . "https://github.com/myuhe/quick-preview.el") (:keywords "files" "hypermedia"))]) (quick-buffer-switch . [(20151007 1508) nil "Quick switch to file or dir buffers." single ((:keywords "emacs" "configuration"))]) (quelpa-use-package . [(20150805 328) ((emacs (24 3)) (quelpa (0)) (use-package (2))) "quelpa handler for use-package" single ((:url . "https://github.com/quelpa/quelpa-use-package") (:keywords "package" "management" "elpa" "use-package"))]) (quelpa . [(20160208 28) ((package-build (0)) (emacs (24 3))) "Emacs Lisp packages built directly from source" tar ((:url . "https://github.com/quelpa/quelpa") (:keywords "package" "management" "build" "source" "elpa"))]) (quasi-monochrome-theme . [(20150801 1325) nil "High contrast quasi monochrome color theme" single ((:url . "https://github.com/lbolla/emacs-quasi-monochrome") (:keywords "color-theme" "monochrome" "high contrast"))]) (quack . [(20130126 1623) nil "No description available." single nil]) (qml-mode . [(20160108 704) nil "Major mode for editing QT Declarative (QML) code." single ((:url . "https://github.com/coldnew/qml-mode") (:keywords "qml" "qt" "qt declarative"))]) (qiita . [(20140118 44) ((helm (1 5 9)) (markdown-mode (2 0))) "Qiita API Library for emacs" single ((:url . "https://github.com/gongo/qiita-el") (:keywords "qiita"))]) (pyvenv . [(20160108 28) nil "Python virtual environment interface" single ((:url . "http://github.com/jorgenschaefer/pyvenv") (:keywords "python" "virtualenv" "tools"))]) (pythonic . [(20160213 1326) ((emacs (24)) (cl-lib (0 5)) (dash (2 11)) (s (1 9)) (f (0 17 2))) "Utility functions for writing pythonic emacs package." single ((:url . "https://github.com/proofit404/pythonic"))]) (python3-info . [(20151116 2231) nil "Python 3 info manual for Emacs" tar nil]) (python-x . [(20151229 948) ((python (0 24)) (folding (0)) (cl-lib (0 5))) "python.el extras for interactive evaluation" tar ((:keywords "python" "eval" "folding") (:url . "https://github.com/wavexx/python-x.el") (:author . "Yuri D'Elia "))]) (python-mode . [(20160217 508) nil "Python major mode" tar nil]) (python-info . [(20151228 1052) nil "Python info manual for Emacs" tar nil]) (python-environment . [(20150310 153) ((deferred (0 3 1))) "virtualenv API for Emacs Lisp" tar ((:keywords "applications" "tools"))]) (python-docstring . [(20160210 1559) nil "Smart Python docstring formatting" tar nil]) (python-django . [(20150821 2104) nil "A Jazzy package for managing Django projects" single ((:url . "https://github.com/fgallina/python-django.el") (:keywords "languages"))]) (python-cell . [(20131029 1616) nil "Support for MATLAB-like cells in python mode" single ((:keywords "python" "matlab" "cell"))]) (pytest . [(20151104 2125) ((s (1 9 0))) "Easy Python test running in Emacs" single ((:url . "https://github.com/ionrock/pytest-el") (:keywords "pytest" "python" "testing"))]) (pylint . [(20160114 141) nil "minor mode for running `pylint'" single ((:keywords "languages" "python"))]) (pyimpsort . [(20160129 2053) ((emacs (24 3))) "Sort python imports." tar ((:url . "https://github.com/emacs-pe/pyimpsort.el") (:keywords "convenience"))]) (pyfmt . [(20150521 1356) nil "Emacs interface to pyfmt" single ((:url . "https://github.com/aheaume/pyfmt.el") (:keywords "tools"))]) (pyenv-mode-auto . [(20160122 2341) ((pyenv-mode (0 1 0)) (s (1 11 0)) (f (0 17 0))) "Automatically activates pyenv version if .python-version file exists." single ((:url . "https://github.com/ssbb/pyenv-mode-auto") (:keywords "python" "pyenv"))]) (pyenv-mode . [(20151105 241) ((pythonic (0 1 0))) "Integrate pyenv with python-mode" single ((:url . "https://github.com/proofit404/pyenv-mode"))]) (pydoc-info . [(20110301 34) nil "Better Python support for info-lookup-symbol." tar nil]) (pydoc . [(20150525 1845) nil "functional, syntax highlighted pydoc navigation" single ((:url . "https://github.com/statmobile/pydoc") (:keywords "pydoc" "python"))]) (pycarddavel . [(20150831 516) ((helm (1 7 0)) (emacs (24 0))) "Integrate pycarddav" single ((:keywords "helm" "pyccarddav" "carddav" "message" "mu4e" "contacts"))]) (py-yapf . [(20160101 412) nil "Use yapf to beautify a Python buffer" single ((:url . "https://github.com/paetzke/py-yapf.el"))]) (py-test . [(20151116 2222) ((dash (2 9 0)) (f (0 17)) (emacs (24 4))) "A test runner for Python code." single ((:url . "https://github.com/Bogdanp/py-test.el") (:keywords "python" "testing" "py.test"))]) (py-smart-operator . [(20150824 1910) ((s (1 9 0))) "smart-operator for python-mode" single ((:keywords "python" "convenience" "smart-operator"))]) (py-isort . [(20150422 839) nil "Use isort to sort the imports in a Python buffer" single ((:url . "http://paetzke.me/project/py-isort.el"))]) (py-import-check . [(20130802 411) nil "Finds the unused python imports using importchecker" single ((:url . "https://github.com/psibi/emacs-py-import-check") (:keywords "python" "import" "check"))]) (py-gnitset . [(20140224 2010) nil "Run your Python tests any way you'd like" single ((:url . "https://www.github.com/quodlibetor/py-gnitset"))]) (py-autopep8 . [(20151231 614) nil "Use autopep8 to beautify a Python buffer" single ((:url . "http://paetzke.me/project/py-autopep8.el"))]) (px . [(20141006 548) nil "preview inline latex in any mode" single ((:url . "http://github.com/aaptel/preview-latex"))]) (pushbullet . [(20140809 532) ((grapnel (0 5 2)) (json (1 2))) "Emacs client for the PushBullet Android app" single ((:url . "http://www.github.com/theanalyst/revolver") (:keywords "convenience"))]) (purty-mode . [(20131004 1559) nil "Safely pretty-print greek letters, mathematical symbols, or anything else." single nil]) (purple-haze-theme . [(20141014 1929) ((emacs (24 0))) "an overtly purple color theme for Emacs24." single ((:url . "https://github.com/jasonm23/emacs-purple-haze-theme"))]) (purescript-mode . [(20150316 1828) nil "A PureScript editing mode" tar nil]) (puppet-mode . [(20150730 1208) ((emacs (24 1)) (pkg-info (0 4))) "Major mode for Puppet manifests" single ((:url . "https://github.com/lunaryorn/puppet-mode") (:keywords "languages"))]) (pungi . [(20150222 446) ((jedi (0 2 0 -3 2)) (pyvenv (1 5))) "Integrates jedi with virtualenv and buildout python environments" single ((:keywords "convenience"))]) (punctuality-logger . [(20141120 1231) nil "Punctuality logger for Emacs" single ((:url . "https://gitlab.com/elzair/punctuality-logger") (:keywords "reminder" "calendar"))]) (puml-mode . [(20151212 823) nil "Major mode for PlantUML" single ((:keywords "uml" "plantuml" "ascii"))]) (pt . [(20160119 817) nil "A front-end for pt, The Platinum Searcher." single ((:url . "https://github.com/bling/pt.el") (:keywords "pt" "ack" "ag" "grep" "search"))]) (psysh . [(20160123 758) nil "PsySH, PHP interactive shell (REPL)" single ((:keywords "process" "php"))]) (psvn . [(20151103 1042) nil "Subversion interface for emacs" single nil]) (psession . [(20151114 1106) ((emacs (24)) (cl-lib (0 5))) "Persistent save of elisp objects." single ((:url . "https://github.com/thierryvolpiatto/psession"))]) (psci . [(20150328 1201) ((purescript-mode (13 10)) (dash (2 9 0)) (s (1 9 0)) (f (0 17 1)) (deferred (0 3 2))) "Major mode for purescript repl psci" tar ((:url . "https://github.com/ardumont/emacs-psci") (:keywords "purescript" "psci" "repl" "major" "mode"))]) (psc-ide . [(20160203 1532) ((dash (2 11 0)) (company (0 8 7)) (cl-lib (0 5)) (s (1 10 0))) "Minor mode for PureScript's psc-ide tool." tar ((:url . "https://github.com/epost/psc-ide-emacs") (:keywords "languages"))]) (protobuf-mode . [(20150521 2011) nil "major mode for editing protocol buffers." single ((:keywords "google" "protobuf" "languages"))]) (prosjekt . [(20151127 616) ((dash (2 8 0))) "a software project tool for emacs" tar ((:url . "https://github.com/abingham/prosjekt"))]) (propfont-mixed . [(20150113 1411) ((emacs (24)) (cl-lib (0 5))) "Use proportional fonts with space-based indentation." single ((:url . "https://github.com/ikirill/propfont-mixed") (:keywords "faces"))]) (prop-menu . [(20150728 418) ((emacs (24 3)) (cl-lib (0 5))) "Create and display a context menu based on text and overlay properties" single ((:url . "https://github.com/david-christiansen/prop-menu-el") (:keywords "convenience"))]) (prompt-text . [(20160106 609) nil "Various information in minibuffer prompt" single ((:url . "https://github.com/10sr/prompt-text-el") (:keywords "utility" "minibuffer"))]) (projmake-mode . [(20150619 1420) ((dash (20150611 922)) (indicators (20130217 1405))) "Project oriented automatic builder and error highlighter, flymake for projects" tar nil]) (projekt . [(20150324 148) ((emacs (24))) "some kind of staging for CVS" single nil]) (projector . [(20151201 1241) ((alert (1 1)) (projectile (0 11 0)) (cl-lib (0 5))) "Lightweight library for managing project-aware shell and command buffers" single ((:url . "https://github.com/waymondo/projector"))]) (projectile-speedbar . [(20150629 1153) ((projectile (0 11 0))) "projectile integration for speedbar" single ((:url . "https://github.com/anshulverma/projectile-speedbar") (:keywords "project" "convenience" "speedbar" "projectile"))]) (projectile-sift . [(20160107 215) ((sift (0 2 0)) (projectile (0 13 0))) "Run a sift with Projectile" single ((:url . "https://github.com/nlamirault/sift.el") (:keywords "sift" "projectile"))]) (projectile-rails . [(20160211 1440) ((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 ((:url . "https://github.com/asok/projectile-rails") (:keywords "rails" "projectile"))]) (projectile-codesearch . [(20151228 20) ((codesearch (20141019 625)) (projectile (20150405 126))) "Integration of codesearch into projectile" single ((:url . "https://github.com/abingham/codesearch.el") (:keywords "tools" "development" "search"))]) (projectile . [(20160210 905) ((dash (2 11 0)) (pkg-info (0 4))) "Manage and navigate projects in Emacs easily" single ((:url . "https://github.com/bbatsov/projectile") (:keywords "project" "convenience"))]) (project-root . [(20110206 1230) nil "Define a project root and take actions based upon it." single nil]) (project-persist-drawer . [(20151108 422) ((project-persist (0 3))) "Use a project drawer with project-persist." tar nil]) (project-persist . [(20150519 1324) nil "A minor mode to allow loading and saving of project settings." tar nil]) (project-local-variables . [(20080502 952) nil "Set project-local variables from a file." single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/ProjectLocalVariables") (:keywords "project" "convenience"))]) (project-explorer . [(20150503 1714) ((cl-lib (0 3)) (es-lib (0 3)) (es-windows (0 1)) (emacs (24))) "A project explorer sidebar" single ((:url . "https://github.com/sabof/project-explorer"))]) (programmer-dvorak . [(20150426 1837) nil "Input method for Programmer Dvorak." single ((:url . "https://github.com/yangchenyun/programmer-dvorak") (:keywords "dvorak" "programmer-dvorak" "input-method"))]) (prognth . [(20130920 1059) nil "Extend prog1 to arbitrary index" single ((:keywords "lisp"))]) (professional-theme . [(20150315 400) nil "Emacs port of Vim's professional theme" single ((:url . "https://github.com/juanjux/emacs-professional-theme") (:keywords "theme" "light" "professional"))]) (prodigy . [(20141109 252) ((s (1 8 0)) (dash (2 4 0)) (f (0 14 0)) (emacs (24))) "Manage external services from within Emacs" single ((:url . "http://github.com/rejeep/prodigy.el"))]) (processing-snippets . [(20140426 728) ((yasnippet (0 8 0))) "Snippets for processing-mode" tar nil]) (processing-mode . [(20150217 432) nil "Major mode for Processing 2.0" single ((:url . "https://github.com/ptrv/processing2-emacs") (:keywords "languages" "snippets"))]) (proc-net . [(20130321 1712) nil "network process tools" single ((:url . "http://github.com/nicferrier/emacs-procnet") (:keywords "processes"))]) (private-diary . [(20151216 857) ((emacs (24 0))) "maintain a private diary in Emacs" single ((:url . "https://github.com/cacology/private-diary") (:keywords "diary" "encryption"))]) (private . [(20150121 1757) ((aes (0 6))) "take care of your private configuration files." single ((:url . "https://github.com/cheunghy/private") (:keywords "private" "configuration" "backup" "recover"))]) (pretty-symbols . [(20140814 259) nil "Draw tokens as Unicode glyphs." single ((:url . "http://github.com/drothlis/pretty-symbols") (:keywords "faces"))]) (pretty-sha-path . [(20141105 1026) nil "Prettify Guix/Nix store paths" single ((:url . "https://gitorious.org/alezost-emacs/pretty-sha-path") (:keywords "faces" "convenience"))]) (pretty-mode . [(20141207 1152) nil "Redisplay parts of the buffer as pretty symbols." single ((:url . "https://github.com/akatov/pretty-mode") (:keywords "pretty" "unicode" "symbols"))]) (pretty-lambdada . [(20151231 1548) nil "Show the word `lambda' as the Greek letter." single ((:url . "http://www.emacswiki.org/pretty-lambdada.el") (:keywords "convenience" "display"))]) (preseed-generic-mode . [(20150119 1241) nil "Debian preseed file major mode" single ((:url . "https://github.com/suntong001/preseed-generic-mode"))]) (preproc-font-lock . [(20151107 1218) nil "Highlight C-style preprocessor directives." single ((:url . "https://github.com/Lindydancer/preproc-font-lock") (:keywords "c" "languages" "faces"))]) (ppd-sr-speedbar . [(20151108 424) ((sr-speedbar (20140914 2339)) (project-persist-drawer (0 0 4))) "Sr Speedbar adaptor for project-persist-drawer." tar nil]) (pp-c-l . [(20151231 1547) nil "Display Control-l characters in a pretty way" single ((:url . "http://www.emacswiki.org/pp-c-l.el") (:keywords "display" "convenience" "faces"))]) (pp+ . [(20151231 1546) nil "Extensions to `pp.el'." single ((:url . "http://www.emacswiki.org/pp%2b.el") (:keywords "lisp"))]) (powershell . [(20160210 1858) ((emacs (24))) "Mode for editing Powershell scripts" single ((:url . "http://github.com/jschaf/powershell.el") (:keywords "powershell" "languages"))]) (powerline-evil . [(20151112 710) ((evil (1 0 8)) (powerline (2 3))) "Utilities for better Evil support for Powerline" tar ((:url . "http://github.com/raugturi/powerline-evil/") (:keywords "evil" "mode-line" "powerline"))]) (powerline . [(20151008 1449) ((cl-lib (0 2))) "Rewrite of Powerline" tar ((:url . "http://github.com/milkypostman/powerline/") (:keywords "mode-line"))]) (pow . [(20140420 106) ((emacs (24)) (cl-lib (0 5))) "pow (http://pow.cx/) manager for emacs" tar ((:url . "http://github.com/yukihr/emacs-pow") (:keywords "develop" "web" "pow"))]) (pov-mode . [(20120825 716) nil "Major mode for editing POV-Ray scene files." tar nil]) (pos-tip . [(20150318 813) nil "Show tooltip at point" single ((:keywords "tooltip"))]) (portage-navi . [(20141208 555) ((concurrent (0 3 1)) (ctable (0 1 2))) "portage viewer" single ((:url . "https://github.com/kiwanami/emacs-portage-navi") (:keywords "tools" "gentoo"))]) (popwin . [(20150315 600) nil "Popup Window Manager." single ((:keywords "convenience"))]) (popup-switcher . [(20160123 1400) ((cl-lib (0 3)) (popup (0 5 3))) "switch to other buffers and files via popup." single ((:url . "https://github.com/kostafey/popup-switcher") (:keywords "popup" "switch" "buffers" "functions"))]) (popup-kill-ring . [(20131020 1154) ((popup (0 4)) (pos-tip (0 4))) "interactively insert item from kill-ring" single ((:url . "https://github.com/waymondo/popup-kill-ring") (:keywords "popup" "kill-ring" "pos-tip"))]) (popup-imenu . [(20160214 904) ((dash (2 12 1)) (popup (0 5 3)) (flx-ido (0 6 1))) "imenu index popup" single ((:url . "https://github.com/ancane/popup-imenu") (:keywords "popup" "imenu"))]) (popup-complete . [(20141108 1908) ((popup (0 5 0))) "completion with popup" single ((:url . "https://github.com/syohex/emacs-popup-complete"))]) (popup . [(20151222 1339) ((cl-lib (0 5))) "Visual Popup User Interface" single ((:keywords "lisp"))]) (poporg . [(20150603 1847) nil "Pop a comment or string to an empty buffer for text editing" single ((:url . "https://github.com/QBobWatson/poporg") (:keywords "outlines" "tools"))]) (pophint . [(20150930 1034) ((popup (0 5 0)) (log4e (0 2 0)) (yaxception (0 1))) "Provide navigation using pop-up tips, like Firefox's Vimperator Hint Mode" tar ((:url . "https://github.com/aki2o/emacs-pophint") (:keywords "popup"))]) (ponylang-mode . [(20160123 1437) ((dash (2 10 0))) "Language mode for Pony" single ((:url . "https://github.com/seantallen/ponylang-mode") (:keywords "programming"))]) (pony-snippets . [(20160204 2011) ((yasnippet (0 8 0))) "Yasnippets for Pony" tar ((:url . "https://github.com/seantallen/pony-snippets") (:keywords "snippets" "pony"))]) (pony-mode . [(20151028 302) nil "Minor mode for working with Django Projects" tar nil]) (pomodoro . [(20150716 1046) nil "A timer for the Pomodoro Technique" single nil]) (polymode . [(20160217 1228) ((emacs (24))) "Versatile multiple modes with extensive literate programming support" tar ((:url . "https://github.com/vitoshka/polymode"))]) (pointback . [(20100210 752) nil "Restore window points when returning to buffers" single ((:keywords "convenience"))]) (point-undo . [(20100504 129) nil "undo/redo position" single nil]) (point-stack . [(20140102 1223) nil "A forward/back stack for point" single nil]) (pmdm . [(20151109 1036) nil "poor man's desktop-mode alternative." single ((:url . "https://bitbucket.com/inigoserna/pmdm.el"))]) (plsql . [(20121115 243) nil "Programming support for PL/SQL code" single ((:url . "http://www.emacswiki.org/elisp/plsql.el") (:keywords "languages"))]) (plsense-direx . [(20140520 1308) ((direx (0 1 -3)) (plsense (0 3 2)) (log4e (0 2 0)) (yaxception (0 3 2))) "Perl Package Explorer" single ((:url . "https://github.com/aki2o/plsense-direx") (:keywords "perl" "convenience"))]) (plsense . [(20151104 645) ((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 ((:url . "https://github.com/aki2o/emacs-plsense") (:keywords "perl" "completion"))]) (plim-mode . [(20140812 1713) nil "Major mode for editing Plim files" single ((:url . "http://github.com/dongweiming/plim-mode") (:keywords "markup" "language"))]) (plenv . [(20130706 2316) nil "A plenv wrapper for Emacs" single ((:keywords "emacs" "perl"))]) (platformio-mode . [(20160109 2035) ((projectile (0 13 0))) "PlatformIO integration" single ((:url . "https://github.com/zachmassia/platformio-mode"))]) (plantuml-mode . [(20131031 1632) ((auto-complete (1 4))) "Major mode for plantuml" single ((:url . "https://github.com/wildsoul/plantuml-mode") (:keywords "uml" "ascii"))]) (planet-theme . [(20150627 751) ((emacs (24))) "A dark theme inspired by Gmail's 'Planets' theme of yore" single ((:url . "https://github.com/cmack/emacs-planet-theme") (:keywords "themes"))]) (plan9-theme . [(20160111 1923) nil "A color theme for Emacs based on Plan9" single ((:url . "https://github.com/john2x/plan9-theme.el"))]) (pkgbuild-mode . [(20151010 736) nil "Interface to the ArchLinux package manager" single nil]) (pkg-info . [(20150517 443) ((epl (0 8))) "Information about packages" single ((:url . "https://github.com/lunaryorn/pkg-info.el") (:keywords "convenience"))]) (pixiv-novel-mode . [(20150109 2254) nil "Major mode for pixiv novel" single ((:keywords "novel" "pixiv"))]) (pixie-mode . [(20150121 2124) ((clojure-mode (3 0 1)) (inf-clojure (1 0 0))) "Major mode for Pixie-lang" single ((:url . "https://github.com/johnwalker/pixie-mode"))]) (pivotal-tracker . [(20151203 1150) nil "Interact with Pivotal Tracker through its API" single ((:url . "http://github.com/jxa/pivotal-tracker"))]) (pip-requirements . [(20160131 926) ((dash (2 8 0))) "A major mode for editing pip requirements files." single nil]) (pinyin-search . [(20150719 1755) nil "Search Chinese by Pinyin" single ((:url . "https://github.com/xuchunyang/pinyin-search.el") (:keywords "chinese" "search"))]) (pinot . [(20140211 1226) nil "Emacs interface to pinot-search" tar nil]) (pinboard-api . [(20140324 448) nil "Rudimentary http://pinboard.in integration" single ((:url . "https://github.com/danieroux/pinboard-api-el") (:keywords "pinboard" "www"))]) (pillar . [(20141112 1011) ((makey (0 3))) "Major mode for editing Pillar files" tar ((:url . "http://github.com/DamienCassou/pillar-mode") (:keywords "markup" "major-mode"))]) (pig-snippets . [(20130912 2324) ((yasnippet (0 8 0))) "Snippets for pig-mode" tar nil]) (pig-mode . [(20140617 1058) nil "Major mode for Pig files" single nil]) (picolisp-mode . [(20150516 155) nil "Major mode for PicoLisp programming." single ((:url . "https://github.com/flexibeast/picolisp-mode") (:keywords "picolisp" "lisp" "programming"))]) (pianobar . [(20120128 1301) nil "thin wrapper for Pianobar, a Pandora Radio client" single ((:url . "http://github.com/agrif/pianobar.el"))]) (phpunit . [(20151009 254) ((s (1 9 0)) (f (0 16 0)) (pkg-info (0 5))) "Launch PHP unit tests using phpunit" single ((:url . "https://github.com/nlamirault/phpunit.el") (:keywords "php" "tests" "phpunit"))]) (phpcbf . [(20150302 528) ((s (1 9 0))) "Format PHP code in Emacs using PHP_CodeSniffer's phpcbf" single ((:url . "https://github.com/nishimaki10/emacs-phpcbf") (:keywords "tools" "php"))]) (php-refactor-mode . [(20140920 1411) nil "Minor mode to quickly and safely perform common refactorings" single ((:url . "https://github.com/keelerm84/php-refactor-mode.el") (:keywords "php" "refactor"))]) (php-mode . [(20151002 2030) nil "Major mode for editing PHP code" tar ((:url . "https://github.com/ejmr/php-mode"))]) (php-eldoc . [(20140202 1141) nil "eldoc backend for php" tar ((:url . "https://github.com/sabof/php-eldoc"))]) (php-boris-minor-mode . [(20140209 1035) ((php-boris (0 0 1)) (highlight (0))) "a minor mode to evaluate PHP code in the Boris repl" single ((:url . "https://github.com/steckerhalter/php-boris-minor-mode") (:keywords "php" "repl" "eval"))]) (php-boris . [(20130527 121) nil "Run boris php REPL" single ((:keywords "php" "commint" "repl" "boris"))]) (php-auto-yasnippets . [(20141128 1411) ((php-mode (1 11)) (yasnippet (0 8 0))) "Creates snippets for PHP functions" tar ((:url . "https://github.com/ejmr/php-auto-yasnippets"))]) (php+-mode . [(20121129 1252) nil "A better PHP mode with Zend Framework 1 support." tar nil]) (phoenix-dark-pink-theme . [(20150406 2002) nil "Port of the Sublime Text 2 theme of the same name" single ((:url . "http://github.com/j0ni/phoenix-dark-pink"))]) (phoenix-dark-mono-theme . [(20130306 1215) nil "Monochromatic version of the Phoenix theme" single ((:url . "http://github.com/j0ni/phoenix-dark-mono"))]) (phi-search-migemo . [(20150116 506) ((phi-search (2 2 0)) (migemo (1 9 1))) "migemo extension for phi-search" single ((:url . "http://hins11.yu-yake.com/"))]) (phi-search-mc . [(20150217 2255) ((phi-search (2 0 0)) (multiple-cursors (1 2 1))) "multiple-cursors extension for phi-search" single ((:url . "https://github.com/knu/phi-search-mc.el") (:keywords "search" "cursors"))]) (phi-search-dired . [(20150405 14) ((phi-search (2 2 0))) "interactive filtering for dired powered by phi-search" single ((:url . "http://hins11.yu-yake.com/"))]) (phi-search . [(20150807 112) nil "another incremental search & replace, compatible with \"multiple-cursors\"" tar ((:url . "http://hins11.yu-yake.com/"))]) (phi-rectangle . [(20151207 2254) nil "another rectangle-mark command (rewrite of rect-mark)" single ((:url . "http://hins11.yu-yake.com/"))]) (phi-grep . [(20150212 724) ((cl-lib (0 1))) "Interactively-editable recursive grep implementation in elisp" single ((:url . "http://hins11.yu-yake.com/"))]) (phi-autopair . [(20150527 223) ((paredit (20))) "another simple-minded autopair implementation" single ((:url . "http://hins11.yu-yake.com/"))]) (phabricator . [(20151115 107) ((emacs (24 4)) (dash (1 0)) (projectile (0 13 0)) (s (1 10 0)) (f (0 17 2))) "Phabricator/Arcanist helpers for Emacs." single ((:url . "https://github.com/ajtulloch/phabricator.el") (:keywords "phabricator" "arcanist" "diffusion"))]) (ph . [(20130312 1137) ((emacs (24 3))) "A global minor mode for managing multiple projects." tar nil]) (pgdevenv . [(20150105 1436) nil "Manage your PostgreSQL development envs" tar ((:keywords "emacs" "postgresql" "development" "environment" "shell" "debug" "gdb"))]) (pg . [(20130731 1442) nil "Emacs Lisp interface to the PostgreSQL RDBMS" single ((:keywords "data" "comm" "database" "postgresql"))]) (perspective . [(20151211 1454) ((cl-lib (0 5))) "switch between named \"perspectives\" of the editor" single ((:url . "http://github.com/nex3/perspective-el") (:keywords "workspace" "convenience" "frames"))]) (persp-projectile . [(20151220 430) ((perspective (1 9)) (projectile (0 11 0)) (cl-lib (0 3))) "Perspective integration with Projectile" single ((:keywords "project" "convenience"))]) (persp-mode . [(20160216 325) nil "\"perspectives\" shared among frames + save/load - bugs." single ((:url . "https://github.com/Bad-ptr/persp-mode.el") (:keywords "perspectives" "session" "workspace" "persistence" "windows" "buffers" "convenience"))]) (persistent-soft . [(20150223 1053) ((pcache (0 3 1)) (list-utils (0 4 2))) "Persistent storage, returning nil on failure" single ((:url . "http://github.com/rolandwalker/persistent-soft") (:keywords "data" "extensions"))]) (persistent-scratch . [(20160112 139) ((emacs (24))) "Preserve the scratch buffer across Emacs sessions" single ((:url . "https://github.com/Fanael/persistent-scratch"))]) (perlbrew . [(20130127 324) nil "A perlbrew wrapper for Emacs" single ((:keywords "emacs" "perl"))]) (perl6-mode . [(20160117 1109) ((emacs (24 4)) (pkg-info (0 1))) "Major mode for editing Perl 6 code" tar ((:url . "https://github.com/hinrik/perl6-mode") (:keywords "languages"))]) (perl-completion . [(20090527 2336) nil "No description available." single nil]) (per-buffer-theme . [(20151013 1012) ((cl-lib (0 5))) "Change theme according to buffer name or major mode." single ((:url . "https://bitbucket.com/inigoserna/per-buffer-theme.el") (:keywords "themes"))]) (peg . [(20150707 2341) nil "Parsing Expression Grammars in Emacs Lisp" single nil]) (peep-dired . [(20150518 700) nil "Peep at files in another window from dired buffers" single ((:keywords "files" "convenience"))]) (peek-mode . [(20130620 1246) ((elnode (0 9 8 1))) "Serve buffers live over HTTP with elnode backend" tar ((:url . "https://github.com/erikriverson/peek-mode"))]) (peacock-theme . [(20141115 2302) ((emacs (24 0))) "an Emacs 24 theme based on Peacock (tmTheme)" single ((:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) (pdf-tools . [(20160203 1057) ((emacs (24 3)) (tablist (0 70)) (let-alist (1 0 4))) "Support library for PDF documents." tar ((:keywords "files" "multimedia"))]) (pdb-mode . [(20150128 951) nil "Major mode for editing Protein Data Bank files" single ((:url . "http://bondxray.org/software/pdb-mode/") (:keywords "data" "pdb"))]) (pcsv . [(20150220 331) nil "Parser of csv" single ((:url . "https://github.com/mhayashi1120/Emacs-pcsv/raw/master/pcsv.el") (:keywords "data"))]) (pcre2el . [(20151213 234) ((emacs (24)) (cl-lib (0 3))) "regexp syntax converter" single ((:url . "https://github.com/joddie/pcre2el"))]) (pcomplete-extension . [(20140604 947) ((emacs (24)) (cl-lib (0 5))) "additional completion for pcomplete" single ((:url . "https://github.com/thierryvolpiatto/pcomplete-extension"))]) (pcmpl-pip . [(20141024 148) nil "pcomplete for pip" single ((:keywords "pcomplete" "pip" "python" "tools"))]) (pcmpl-homebrew . [(20150506 1852) nil "pcomplete for homebrew" single ((:keywords "pcomplete" "homebrew" "tools"))]) (pcmpl-git . [(20160110 2255) nil "pcomplete for git" tar ((:keywords "tools"))]) (pcmpl-args . [(20120911 2224) nil "Enhanced shell command completion" single ((:url . "https://github.com/JonWaltman/pcmpl-args.el") (:keywords "abbrev" "completion" "convenience" "processes" "terminals" "unix"))]) (pcache . [(20151109 639) ((eieio (1 3))) "persistent caching for Emacs." single nil]) (pc-bufsw . [(20150923 13) nil "PC style quick buffer switcher" single ((:url . "https://github.com/ibukanov/pc-bufsw") (:keywords "buffer"))]) (pbcopy . [(20150224 2059) nil "Emacs Interface to pbcopy" single ((:url . "https://github.com/jkp/pbcopy.el") (:keywords "mac" "osx" "pbcopy"))]) (paxedit . [(20160102 1821) ((cl-lib (0 5)) (paredit (23))) "Structured, Context Driven LISP Editing and Refactoring" single ((:url . "https://github.com/promethial/paxedit") (:keywords "lisp" "refactoring" "context"))]) (path-headerline-mode . [(20140423 632) nil "Displaying file path on headerline." single ((:url . "https://github.com/7696122/path-headerline-mode") (:keywords "headerline"))]) (pastels-on-dark-theme . [(20120304 1022) nil "Pastels on Dark theme for Emacs 24" single ((:url . "http://gist.github.com/1906662") (:keywords "theme" "color"))]) (pastelmac-theme . [(20151030 1936) ((emacs (24 1))) "a soothing theme with a pastel color palette" single ((:url . "https://github.com/bmastenbrook/pastelmac-theme-el") (:keywords "themes"))]) (pastehub . [(20140614 2320) nil "A client for the PasteHub cloud service" single ((:url . "https://github.com/kiyoka/pastehub"))]) (pastebin . [(20101125 1155) nil "A simple interface to the www.pastebin.com webservice" single nil]) (password-vault . [(20160126 1020) ((cl-lib (0 2)) (emacs (24))) "A Password manager for Emacs." single ((:url . "http://github.com/PuercoPop/password-vault") (:keywords "password" "productivity"))]) (password-store . [(20151027 1449) ((f (0 11 0)) (s (1 9 0))) "Password store (pass) support" single ((:keywords "pass"))]) (password-generator . [(20150222 1240) nil "Password generator for humans. Good, Bad, Phonetic passwords included." single ((:url . "http://github.com/zargener/emacs-password-genarator"))]) (passthword . [(20141201 123) ((cl-lib (0 5))) "Simple password manager" single nil]) (pass . [(20160214 235) ((emacs (24)) (password-store (0 1)) (f (0 17))) "Major mode for password-store.el" single ((:keywords "password-store" "password" "keychain"))]) (parsebib . [(20151006 232) ((emacs (24 3))) "A library for parsing bib files" single ((:keywords "text" "bibtex"))]) (parse-csv . [(20140203 116) nil "Parse strings with CSV fields into s-expressions" single ((:url . "https://github.com/mrc/el-csv") (:keywords "csv"))]) (parent-mode . [(20150824 1600) nil "get major mode's parent modes" single ((:url . "https://github.com/Fanael/parent-mode"))]) (paren-face . [(20151105 1906) nil "a face for parentheses in lisp modes" single ((:url . "http://github.com/tarsius/paren-face"))]) (paren-completer . [(20150711 1523) ((emacs (24 3))) "Automatically, language agnostically, fill in delimiters." single ((:url . "https://github.com/MatthewBregg/paren-completer") (:keywords "convenience"))]) (paredit-menu . [(20160128 933) ((paredit (25))) "Adds a menu to paredit.el as memory aid" single ((:keywords "paredit"))]) (paredit-everywhere . [(20150821 2144) ((paredit (22))) "Enable some paredit features in non-lisp buffers" single ((:keywords "languages" "convenience"))]) (paredit . [(20150217 713) nil "minor mode for editing parentheses" single ((:keywords "lisp"))]) (paradox . [(20160119 1827) ((emacs (24 4)) (seq (1 7)) (let-alist (1 0 3)) (spinner (1 4)) (hydra (0 13 2))) "A modern Packages Menu. Colored, with package ratings, and customizable." tar ((:url . "https://github.com/Malabarba/paradox") (:keywords "package" "packages"))]) (paper-theme . [(20151231 932) ((emacs (24)) (hexrgb (0))) "A minimal Emacs colour theme." single ((:url . "http://gkayaalp.com/emacs.html#paper") (:keywords "theme" "paper"))]) (pangu-spacing . [(20150927 24) nil "Minor-mode to add space between Chinese and English characters." single ((:url . "http://github.com/coldnew/pangu-spacing"))]) (pandoc-mode . [(20160210 400) ((hydra (0 10 0)) (dash (2 10 0))) "Minor mode for interacting with Pandoc" tar ((:keywords "text" "pandoc"))]) (pallet . [(20150512 2) ((dash (2 10 0)) (s (1 9 0)) (f (0 17 1)) (cask (0 7))) "A package management tool for Emacs, using Cask." tar nil]) (palimpsest . [(20130731 821) nil "Various deletion strategies when editing" single nil]) (palette . [(20151231 1545) ((hexrgb (0))) "Color palette useful with RGB, HSV, and color names" single ((:url . "http://www.emacswiki.org/palette.el") (:keywords "color" "rgb" "hsv" "hexadecimal" "face" "frame"))]) (pager-default-keybindings . [(20130719 1357) ((pager (1 0))) "Add the default keybindings suggested for pager.el" single ((:url . "http://github.com/nflath/pager-default-keybindings"))]) (pager . [(20100330 1131) nil "windows-scroll commands" single nil]) (page-break-lines . [(20160109 1813) nil "Display ugly ^L page breaks as tidy horizontal lines" single ((:url . "https://github.com/purcell/page-break-lines") (:keywords "convenience" "faces"))]) (pacmacs . [(20160131 32) ((emacs (24 4)) (dash (2 11 0)) (dash-functional (1 2 0)) (cl-lib (0 5)) (f (0 18 0))) "Pacman for Emacs" tar ((:url . "http://github.com/codingteam/pacmacs.el"))]) (packed . [(20160209 905) ((emacs (24 3)) (dash (2 10 0))) "package manager agnostic Emacs Lisp package utilities" single ((:url . "https://github.com/tarsius/packed") (:keywords "compile" "convenience" "lisp" "package" "library"))]) (package-utils . [(20150126 406) ((epl (0 7 -3))) "Extensions for package.el" single ((:url . "https://github.com/Silex/package-utils") (:keywords "package" "convenience"))]) (package-safe-delete . [(20150116 807) ((emacs (24)) (epl (0 7 -3))) "Safely delete package.el packages" single ((:url . "https://github.com/Fanael/package-safe-delete"))]) (package-filter . [(20140105 1426) nil "special handling for package.el" single ((:url . "https://github.com/milkypostman/package-filter"))]) (package-build . [(20160129 1332) ((cl-lib (0 5))) "Tools for assembling a package archive" single ((:keywords "tools"))]) (package+ . [(20150319 1455) nil "Extensions for the package library." single ((:url . "TBA") (:keywords "extensions" "tools"))]) (pabbrev . [(20150806 445) nil "Predictive abbreviation expansion" single nil]) (p4 . [(20150721 1237) nil "Simple Perforce-Emacs Integration" single ((:url . "https://github.com/gareth-rees/p4.el"))]) (ox-twiki . [(20151206 240) ((org (8)) (cl-lib (0 5))) "org Twiki and Foswiki export" single ((:url . "https://github.com/dfeich/org8-wikiexporters") (:keywords "org"))]) (ox-twbs . [(20151223 1120) nil "Bootstrap compatible HTML Back-End for Org" single ((:url . "https://github.com/marsmining/ox-twbs") (:keywords "org" "html" "publish" "twitter" "bootstrap"))]) (ox-trac . [(20151102 955) ((org (8 0))) "Org Export Backend to Trac WikiFormat" single ((:url . "https://github.com/JalapenoGremlin/ox-trac") (:keywords "org-mode" "trac"))]) (ox-tiddly . [(20151206 240) ((org (8)) (cl-lib (0 5))) "org TiddlyWiki exporter" single ((:url . "https://github.com/dfeich/org8-wikiexporters") (:keywords "org"))]) (ox-textile . [(20151114 2025) ((org (8 1))) "Textile Back-End for Org Export Engine" single ((:url . "https://github.com/yashi/org-textile") (:keywords "org" "textile"))]) (ox-rst . [(20151114 2343) ((emacs (24 4)) (org (8 2 4))) "Export reStructuredText using org-mode." single ((:url . "https://github.com/masayuko/ox-rst") (:keywords "org" "rst" "rest" "restructuredtext"))]) (ox-reveal . [(20151022 2306) ((org (20150330))) "reveal.js Presentation Back-End for Org Export Engine" single ((:keywords "outlines" "hypermedia" "slideshow" "presentation"))]) (ox-pukiwiki . [(20150124 916) ((org (8 1))) "Pukiwiki Back-End for Org Export Engine" single ((:url . "https://github.com/yashi/org-pukiwiki") (:keywords "org" "pukiwiki"))]) (ox-pandoc . [(20151222 1553) ((org (8 2)) (emacs (24)) (dash (2 8)) (ht (2 0))) "org exporter for pandoc." single ((:url . "https://github.com/kawabata/ox-pandoc") (:keywords "tools"))]) (ox-nikola . [(20151114 316) ((emacs (24 4)) (org (8 2 4)) (ox-rst (0 2))) "Export Nikola articles using org-mode." single ((:url . "https://github.com/masayuko/ox-nikola") (:keywords "org" "nikola"))]) (ox-mediawiki . [(20150923 902) ((cl-lib (0 5)) (s (1 9 0))) "Mediawiki Back-End for Org Export Engine" single ((:url . "https://github.com/tomalexander/orgmode-mediawiki") (:keywords "org" "wp" "mediawiki"))]) (ox-ioslide . [(20160120 805) ((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 ((:url . "http://github.com/coldnew/org-ioslide") (:keywords "html" "presentation"))]) (ox-impress-js . [(20150412 1016) ((org (8))) "impress.js Back-End for Org Export Engine" tar ((:url . "https://github.com/kinjo/org-impress-js.el") (:keywords "outlines" "hypermedia" "calendar" "wp"))]) (ox-html5slide . [(20131227 2206) ((org (8 0))) "Export org-mode to HTML5 slide." single ((:url . "http://github.com/coldnew/org-html5slide") (:keywords "html" "presentation"))]) (ox-gfm . [(20150604 26) nil "Github Flavored Markdown Back-End for Org Export Engine" single ((:keywords "org" "wp" "markdown" "github"))]) (ox-asciidoc . [(20160120 523) ((org (8 1))) "AsciiDoc Back-End for Org Export Engine" single ((:url . "https://github.com/yashi/org-asciidoc") (:keywords "org" "asciidoc"))]) (owdriver . [(20141011 738) ((smartrep (0 0 3)) (log4e (0 2 0)) (yaxception (0 2 0))) "Quickly perform various actions on other windows" single ((:url . "https://github.com/aki2o/owdriver") (:keywords "convenience"))]) (overseer . [(20150801 1002) ((emacs (24)) (dash (2 10 0)) (pkg-info (0 4))) "Ert-runner Integration Into Emacs" single ((:url . "http://www.github.com/tonini/overseer.el"))]) (ov . [(20150311 2228) ((emacs (24 3))) "Overlay library for Emacs Lisp" single ((:url . "https://github.com/ShingoFukuyama/ov.el") (:keywords "overlay"))]) (outshine . [(20160204 1346) ((outorg (2 0)) (cl-lib (0 5))) "outline with outshine outshines outline" single ((:url . "https://github.com/tj64/outshine"))]) (outorg . [(20150910 1240) nil "Org-style comment editing" single ((:url . "https://github.com/tj64/outorg"))]) (outlined-elisp-mode . [(20131108 327) nil "outline-minor-mode settings for emacs lisp" single ((:url . "http://hins11.yu-yake.com/"))]) (outline-magic . [(20150209 1426) nil "outline mode extensions for Emacs" single ((:keywords "outlines"))]) (osx-trash . [(20150723 735) ((emacs (24 1))) "System trash for OS X" tar ((:url . "https://github.com/lunaryorn/osx-trash.el") (:keywords "files" "convenience" "tools" "unix"))]) (osx-pseudo-daemon . [(20131026 1730) nil "Daemon mode that plays nice with OSX." single ((:url . "https://github.com/DarwinAwardWinner/osx-pseudo-daemon") (:keywords "convenience" "osx"))]) (osx-plist . [(20101130 448) nil "Apple plist file parser" single ((:keywords "convenience"))]) (osx-org-clock-menubar . [(20150205 1311) nil "simple menubar integration for org-clock" tar ((:url . "https://github.com/jordonbiondo/osx-org-clock-menubar") (:keywords "org" "osx"))]) (osx-location . [(20150613 217) nil "Watch and respond to changes in geographical location on OS X" tar nil]) (osx-lib . [(20160125 2128) ((emacs (24 4))) "Basic function for Apple/OSX." single ((:keywords "apple" "applescript" "osx" "finder" "emacs" "elisp" "vpn" "speech"))]) (osx-dictionary . [(20160215 726) ((cl-lib (0 5))) "Interface for OSX Dictionary.app" tar ((:url . "https://github.com/xuchunyang/osx-dictionary.el") (:keywords "mac" "dictionary"))]) (osx-clipboard . [(20141012 17) nil "Use the OS X clipboard from terminal Emacs" single ((:url . "https://github.com/joddie/osx-clipboard-mode"))]) (osx-browse . [(20140508 1341) ((string-utils (0 3 2)) (browse-url-dwim (0 6 6))) "Web browsing helpers for OS X" single ((:url . "http://github.com/rolandwalker/osx-browse") (:keywords "hypermedia" "external"))]) (origami . [(20150822 450) ((s (1 9 0)) (dash (2 5 0)) (emacs (24))) "Flexible text folding" tar ((:url . "https://github.com/gregsexton/origami.el") (:keywords "folding"))]) (orgtbl-show-header . [(20141023 137) nil "Show the header of the current column in the minibuffer" single nil]) (orgtbl-join . [(20150121 1446) ((cl-lib (0 5))) "join columns from another table" tar ((:keywords "org" "table" "join" "filtering"))]) (orgtbl-ascii-plot . [(20151215 1351) nil "ascii-art bar plots in org-mode tables" single ((:keywords "org" "table" "ascii" "plot"))]) (orgtbl-aggregate . [(20150104 818) nil "Create an aggregated Org table from another one" tar ((:keywords "org" "table" "aggregation" "filtering"))]) (orglue . [(20150430 513) ((org (8 1)) (epic (0 2)) (org-mac-link (1 2))) "more functionality to org-mode." tar ((:keywords "org"))]) (orglink . [(20151106 1006) ((dash (1 3 2)) (org (8 0))) "use Org Mode links in other modes" single ((:url . "http://github.com/tarsius/orglink") (:keywords "hypertext"))]) (orgit . [(20160119 1424) ((emacs (24 4)) (dash (2 12 1)) (magit (2 4 1)) (org (8 3 3))) "support for Org links to Magit buffers" single ((:url . "https://github.com/magit/orgit"))]) (orgbox . [(20140528 1826) ((org (8 0)) (cl-lib (0 5))) "Mailbox-like task scheduling Org." single ((:url . "https://github.com/yasuhito/orgbox") (:keywords "org"))]) (organic-green-theme . [(20160202 620) nil "Low-contrast green color theme." single nil]) (org2jekyll . [(20150906 647) ((dash-functional (2 11 0)) (s (1 9 0)) (deferred (0 3 1))) "Minor mode to publish org-mode post to jekyll without specific yaml" tar ((:url . "https://github.com/ardumont/org2jekyll") (:keywords "org-mode" "jekyll" "blog" "publish"))]) (org2blog . [(20151208 828) ((org (8 1)) (xml-rpc (1 6 8)) (metaweblog (0 1))) "Blog from Org mode to wordpress" tar nil]) (org-wunderlist . [(20150817 1913) ((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 ((:url . "https://github.com/myuhe/org-wunderlist.el") (:keywords "convenience"))]) (org-webpage . [(20160108 126) ((cl-lib (1 0)) (ht (1 5)) (mustache (0 22)) (htmlize (1 47)) (org (8 0)) (dash (2 0 0)) (web-server (0 1))) "a static site generator based on org mode." tar nil]) (org-wc . [(20160204 1715) nil "Count words in org mode trees." single nil]) (org-vcard . [(20151213 2222) nil "org-mode support for vCard export and import." tar ((:url . "https://github.com/flexibeast/org-vcard") (:keywords "outlines" "org" "vcard"))]) (org-trello . [(20160213 1107) ((request-deferred (0 2 0)) (deferred (0 4 0)) (s (1 11 0)) (dash-functional (2 12 1)) (dash (2 12 1)) (emacs (24))) "Minor mode to synchronize org-mode buffer and trello board" tar nil]) (org-tree-slide . [(20151222 2347) nil "A presentation tool for org-mode" single ((:keywords "org-mode" "presentation" "narrowing"))]) (org-transform-tree-table . [(20150110 633) ((dash (2 10 0)) (s (1 3 0))) "Transform org-mode tree with properties to a table, and the other way around" single ((:url . "https://github.com/jplindstrom/emacs-org-transform-tree-table") (:keywords "org-mode" "table" "org-table" "tree" "csv" "convert"))]) (org-tracktable . [(20151129 1241) ((emacs (24)) (cl-lib (0 5))) "Track your writing progress in an org-table" single ((:url . "https://github.com/tty-tourist/org-tracktable") (:keywords "org" "writing"))]) (org-toodledo . [(20150301 313) ((request-deferred (0 2 0)) (emacs (24)) (cl-lib (0 5))) "Toodledo integration for Emacs Org mode" tar ((:keywords "outlines" "data"))]) (org-time-budgets . [(20151111 1) ((alert (0 5 10)) (cl-lib (0 5))) "Define time budgets and display clocked time." single nil]) (org-themis . [(20160121 2004) ((cl-lib (0 4))) "Experimental project management mode for org-mode" single ((:url . "http://github.com/zellio/org-themis") (:keywords "org-mode" "elisp" "project"))]) (org-tfl . [(20160131 1244) ((org (0 16 2)) (cl-lib (0 5)) (emacs (24 1))) "Transport for London meets Orgmode" tar ((:url . "https://github.com/storax/org-tfl") (:keywords "org" "tfl"))]) (org-table-comment . [(20120209 1051) nil "Org table comment modes." single ((:url . "http://github.com/mlf176f2/org-table-comment.el") (:keywords "org-mode" "orgtbl"))]) (org-sync . [(20150817 754) ((cl-lib (0 5)) (org (8 2)) (emacs (24))) "Synchronize Org documents with External Issue Trackers" tar ((:url . "https://github.com/arbox/org-sync") (:keywords "org" "synchronization" "issue tracking" "github" "redmine"))]) (org-rtm . [(20160214 436) ((rtm (0 1))) "Simple import/export from rememberthemilk to org-mode" single ((:url . "https://github.com/pmiddend/org-rtm") (:keywords "outlines" "data"))]) (org-repo-todo . [(20141204 1341) nil "Simple repository todo management with org-mode" single ((:url . "https://github.com/waymondo/org-repo-todo") (:keywords "convenience"))]) (org-ref . [(20160217 1826) ((dash (2 11 0)) (helm (1 5 5)) (helm-bibtex (1 0 0)) (hydra (0 13 2)) (key-chord (0)) (s (1 10 0)) (f (0 18 0)) (emacs (24 4))) "citations, cross-references and bibliographies in org-mode" tar ((:url . "https://github.com/jkitchin/org-ref") (:keywords "org-mode" "cite" "ref" "label"))]) (org-redmine . [(20160205 344) nil "Redmine tools using Emacs OrgMode" single ((:url . "https://github.com/gongo/org-redmine") (:keywords "redmine" "org"))]) (org-readme . [(20151204 417) ((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 ((:url . "https://github.com/mlf176f2/org-readme") (:keywords "header2" "readme.org" "emacswiki" "git"))]) (org-random-todo . [(20160208 426) ((emacs (24 3)) (alert (1 2))) "notify of random TODO's" single ((:keywords "org" "todo" "notification"))]) (org-protocol-jekyll . [(20151119 838) ((cl-lib (0 5))) "Jekyll's handler for org-protocol" single nil]) (org-projectile . [(20160101 1550) ((projectile (0 11 0)) (dash (2 10 0))) "Repository todo management for org-mode" single ((:url . "https://github.com/IvanMalison/org-projectile") (:keywords "org" "projectile" "todo"))]) (org-present . [(20141109 1756) ((org (7))) "Minimalist presentation minor-mode for Emacs org-mode." single ((:url . "https://github.com/rlister/org-present"))]) (org-pomodoro . [(20151217 553) ((alert (0 5 10)) (cl-lib (0 5))) "Pomodoro implementation for org-mode." tar ((:url . "https://github.com/lolownia/org-pomodoro"))]) (org-pdfview . [(20160125 1254) ((org (6 1)) (pdf-tools (0 40))) "Support for links to documents in pdfview mode" single ((:keywords "org" "pdf-view" "pdf-tools"))]) (org-password-manager . [(20150729 1515) ((org (8 2 10)) (s (1 9 0))) "Minimal password manager for Emacs Org Mode." single ((:url . "https://github.com/leafac/org-password-manager") (:keywords "password"))]) (org-pandoc . [(20130729 1850) nil "Export from Org using Pandoc" tar nil]) (org-page . [(20160216 447) ((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))) "a static site generator based on org mode" tar nil]) (org-outlook . [(20150914 547) nil "Outlook org" tar ((:url . "https://github.com/mlf176f2/org-outlook.el") (:keywords "org-outlook"))]) (org-octopress . [(20150826 416) ((org (8 0)) (orglue (0 1)) (ctable (0 1 1))) "Compose octopress articles using org-mode." tar ((:keywords "org" "jekyll" "octopress" "blog"))]) (org-multiple-keymap . [(20150328 1806) ((org (8 2 4)) (emacs (24)) (cl-lib (0 5))) "Set keymap to elements, such as timestamp and priority." single ((:url . "https://github.com/myuhe/org-multiple-keymap.el") (:keywords "convenience" "org-mode"))]) (org-mobile-sync . [(20131118 1116) ((emacs (24 3 50)) (org (8 0))) "automatically sync org-mobile on changes" single ((:url . "https://github.com/steckerhalter/org-mobile-sync") (:keywords "org-mode" "org" "mobile" "sync" "todo"))]) (org-mac-link . [(20160109 1443) nil "Insert org-mode links to items selected in various Mac apps" single ((:keywords "org" "mac" "hyperlink"))]) (org-mac-iCal . [(20140107 519) nil "Imports events from iCal.app to the Emacs diary" single ((:keywords "outlines" "calendar"))]) (org-linkany . [(20160206 2011) ((log4e (0 2 0)) (yaxception (0 1))) "Insert link using anything.el/helm.el on org-mode" single ((:url . "https://github.com/aki2o/org-linkany") (:keywords "org" "completion"))]) (org-link-travis . [(20140405 1627) ((org (7))) "Insert/Export the link of Travis CI on org-mode" single ((:url . "https://github.com/aki2o/org-link-travis") (:keywords "org"))]) (org-journal . [(20151228 603) nil "a simple org-mode based journaling mode" single ((:url . "http://github.com/bastibe/org-journal"))]) (org-jira . [(20150911 558) nil "Syncing between Jira and Org-mode." tar ((:url . "https://github.com/baohaojun/org-jira"))]) (org-jekyll . [(20130508 239) ((org (8 0))) "Export jekyll-ready posts form org-mode entries" single ((:url . "http://juanreyero.com/open/org-jekyll/") (:keywords "hypermedia"))]) (org-iv . [(20151213 714) ((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 nil]) (org-if . [(20150920 813) nil "Interactive Fiction Authoring System for Org-Mode." tar nil]) (org-grep . [(20151202 429) ((cl-lib (0 5))) "Kind of M-x rgrep adapted for Org mode." single ((:url . "https://github.com/pinard/org-grep"))]) (org-gnome . [(20150614 757) ((alert (1 2)) (telepathy (0 1)) (gnome-calendar (0 1))) "Orgmode integration with the GNOME desktop" single ((:keywords "org" "gnome"))]) (org-gcal . [(20151230 124) ((request-deferred (0 2 0)) (alert (1 1)) (emacs (24)) (cl-lib (0 5)) (org (8 2 4))) "Org sync with Google Calendar" single ((:url . "https://github.com/myuhe/org-gcal.el") (:keywords "convenience"))]) (org-fstree . [(20090723 819) nil "include a filesystem subtree into an org file" single ((:url . "http://www.burtzlaff.de/org-fstree/org-fstree.el") (:keywords "org-mode" "filesystem" "tree"))]) (org-eww . [(20160104 636) ((org (8 0)) (emacs (24 4))) "automatically use eww to preview current org-file when save" single ((:url . "https://github.com/lujun9972/org-eww") (:keywords "convenience" "eww" "org"))]) (org-elisp-help . [(20130423 1545) ((cl-lib (0 2)) (org (8 0))) "org links to emacs-lisp documentation" single ((:url . "https://github.com/tarsius/org-elisp-help") (:keywords "org" "remember" "lisp"))]) (org-ehtml . [(20150506 1658) ((web-server (20140109 2200)) (emacs (24 3))) "Export Org-mode files as editable web pages" tar nil]) (org-dropbox . [(20150113 2109) ((dash (2 2)) (names (20150000)) (emacs (24))) "move Dropbox notes from phone into org-mode datetree" single ((:url . "https://github.com/heikkil/org-dropbox") (:keywords "dropbox" "android" "notes" "org-mode"))]) (org-drill-table . [(20140117 137) ((s (1 7 0)) (dash (2 2 0)) (cl-lib (0 3)) (org-plus-contrib (8 2)) (emacs (24 1))) "Generate drill cards from org tables" single nil]) (org-dp . [(20160206 202) ((cl-lib (0 5))) "Declarative Local Programming with Org Elements" tar ((:url . "https://github.com/tj64/org-dp"))]) (org-download . [(20151030 716) ((async (1 2))) "Image drag-and-drop for Emacs org-mode" single ((:url . "https://github.com/abo-abo/org-download") (:keywords "images" "screenshots" "download"))]) (org-dotemacs . [(20151119 1022) ((org (7 9 3)) (cl-lib (1 0))) "Store your emacs config as an org file, and choose which bits to load." single ((:url . "https://github.com/vapniks/org-dotemacs") (:keywords "local"))]) (org-doing . [(20150824 701) nil "Keep track of what you're doing" tar ((:url . "https://github.com/omouse/org-doing") (:keywords "tools" "org"))]) (org-dashboard . [(20150812 302) ((cl-lib (0 5))) "Visually summarize progress in org files" single ((:url . "http://github.com/bard/org-dashboard") (:keywords "outlines" "calendar"))]) (org-cua-dwim . [(20120202 2134) nil "Org-mode and Cua mode compatibility layer" single ((:keywords "org-mode" "cua-mode"))]) (org-context . [(20160108 214) nil "Contextual capture and agenda commands for Org-mode" single ((:url . "https://github.com/thisirs/org-context") (:keywords "org" "capture" "agenda" "convenience"))]) (org-clock-convenience . [(20160217 106) ((cl-lib (0 5)) (org (8)) (emacs (24 3))) "convenience functions for org time tracking" single ((:url . "https://github.com/dfeich/org-clock-convenience") (:keywords "org"))]) (org-cliplink . [(20151229 1100) nil "insert org-mode links from the clipboard" tar ((:url . "http://github.com/rexim/org-cliplink"))]) (org-caldav . [(20150131 152) ((org (7))) "Sync org files with external calendar through CalDAV" single ((:keywords "calendar" "caldav"))]) (org-bullets . [(20140918 1137) nil "Show bullets in org-mode as UTF-8 characters" single ((:url . "https://github.com/sabof/org-bullets"))]) (org-beautify-theme . [(20150106 956) nil "A sub-theme to make org-mode more beautiful." single ((:keywords "org" "theme"))]) (org-autolist . [(20150922 705) nil "Improved list management in org-mode" single ((:url . "https://github.com/calvinwyoung/org-autolist") (:keywords "lists" "checklists" "org-mode"))]) (org-attach-screenshot . [(20160125 1332) nil "screenshots integrated with org attachment dirs" single ((:url . "https://github.com/dfeich/org-screenshot") (:keywords "org"))]) (org-alert . [(20151007 337) ((s (1 10 0)) (dash (2 12 0)) (alert (1 2))) "Notify org deadlines via notify-send" single ((:url . "https://github.com/groksteve/org-alert") (:keywords "org" "org-mode" "notify" "notifications"))]) (org-agenda-property . [(20140626 1416) ((emacs (24 2))) "Display org properties in the agenda buffer." single ((:url . "http://github.com/Bruce-Connor/org-agenda-property") (:keywords "calendar"))]) (org-ac . [(20140302 413) ((auto-complete-pcmp (0 0 1)) (log4e (0 2 0)) (yaxception (0 1))) "Some auto-complete sources for org-mode" single ((:url . "https://github.com/aki2o/org-ac") (:keywords "org" "completion"))]) (operate-on-number . [(20150706 2323) nil "Operate on number at point with arithmetic functions" single ((:url . "https://github.com/knu/operate-on-number.el") (:keywords "editing"))]) (openwith . [(20120531 1436) nil "Open files with external programs" single ((:url . "https://bitbucket.org/jpkotta/openwith") (:keywords "files" "processes"))]) (openstack-cgit-browse-file . [(20130819 227) nil "Browse the current file in OpenStack cgit" single ((:url . "https://github.com/chmouel/openstack-cgit-browse-file") (:keywords "convenience" "vc" "git" "cgit" "gerrit" "openstack"))]) (open-junk-file . [(20130130 2320) nil "Open a junk (memo) file to try-and-error" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/open-junk-file.el") (:keywords "convenience" "tools"))]) (opam . [(20150719 520) ((emacs (24 1))) "OPAM tools" single ((:url . "https://github.com/lunaryorn/opam.el") (:keywords "convenience"))]) (oneonone . [(20151231 1541) ((hexrgb (0))) "Frame configuration that uses one frame per window." single ((:url . "http://www.emacswiki.org/oneonone.el") (:keywords "local" "frames"))]) (on-screen . [(20151108 2108) ((cl-lib (0))) "guide your eyes while scrolling" single ((:url . "https://github.com/michael-heerdegen/on-screen.el") (:keywords "convenience"))]) (on-parens . [(20150702 1506) ((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 ((:keywords "evil" "smartparens"))]) (omtose-phellack-theme . [(20160212 347) ((emacs (24))) "A dark, soothing theme with a cold bluish touch." tar ((:url . "http:/github.com/franksn/omtose-phellack-theme/"))]) (omnisharp . [(20151210 1114) ((json (1 2)) (flycheck (0 25 1)) (dash (20141201 2206)) (auto-complete (1 4)) (popup (0 5 1)) (csharp-mode (0 8 7)) (cl-lib (0 5)) (s (1 9 0))) "Omnicompletion (intellisense) and more for C#" tar ((:url . "https://github.com/sp3ctum/omnisharp-emacs") (:keywords "csharp" "c#" "ide" "auto-complete" "intellisense"))]) (omniref . [(20151118 21) nil "Omniref Ruby documentation search engine interface" single ((:url . "http://github.org/dotemacs/omniref.el") (:keywords "docs" "help" "tools"))]) (omni-tags . [(20150513 1053) ((pcre2el (1 7)) (cl-lib (0 5))) "Highlight and Actions for 'Tags'" tar ((:url . "http://github.com/AdrieanKhisbe/omni-tags.el") (:keywords "convenience"))]) (omni-scratch . [(20151211 859) nil "Easy and mode-specific draft buffers" single ((:url . "https://github.com/AdrieanKhisbe/omni-scratch.el") (:keywords "convenience" "languages" "tools"))]) (omni-quotes . [(20150604 1057) ((dash (2 8)) (omni-log (0 1 2))) "Random quotes displayer" tar ((:url . "https://github.com/AdrieanKhisbe/omni-quotes.el") (:keywords "convenience"))]) (omni-log . [(20150604 1038) ((emacs (24)) (ht (2 0)) (s (1 6 1)) (dash (1 8 0))) "Logging utilities" tar ((:url . "https://github.com/AdrieanKhisbe/omni-log.el") (:keywords "convenience" "languages" "tools"))]) (omni-kill . [(20150526 2349) nil "Kill all the things" single ((:keywords "convenience" "editing" "tools"))]) (om-mode . [(20140915 1410) nil "Insert Om component template with life cycle." single ((:keywords "clojurescript"))]) (olivetti . [(20160105 355) nil "Minor mode for a nice writing environment" single ((:keywords "wp"))]) (oldlace-theme . [(20150705 600) ((emacs (24))) "Emacs 24 theme with an 'oldlace' background." single nil]) (offlineimap . [(20150916 458) nil "Run OfflineIMAP from Emacs" single ((:url . "http://julien.danjou.info/offlineimap-el.html"))]) (octopress . [(20160123 1406) nil "A lightweight wrapper for Jekyll and Octopress." tar ((:url . "https://github.com/aaronbieber/octopress.el") (:keywords "octopress" "blog"))]) (octicons . [(20151031 2040) ((cl-lib (0 5))) "octicons utility" tar ((:url . "https://github.com/syohex/emacs-octicons"))]) (ocp-indent . [(20150914 132) nil "automatic indentation with ocp-indent" single ((:url . "http://www.typerex.org/ocp-indent.html") (:keywords "ocaml" "languages"))]) (ocodo-svg-modelines . [(20150516 719) ((svg-mode-line-themes (0))) "A collection of beautiful SVG modelines" tar nil]) (occur-x . [(20130610 643) nil "Extra functionality for occur" single ((:keywords "occur" "search" "convenience"))]) (occur-context-resize . [(20151227 2002) nil "dynamically resize context around matches in occur-mode" single ((:url . "https://github.com/dgtized/occur-context-resize.el") (:keywords "matching"))]) (occidental-theme . [(20130312 1258) nil "Custom theme for faces based on Adwaita" single ((:url . "http://github.com/olcai/occidental-theme"))]) (obsidian-theme . [(20140420 943) nil "port of the eclipse obsidian theme" single ((:url . "http://github.com/mswift42/obsidian-theme"))]) (objc-font-lock . [(20141021 1122) nil "Highlight Objective-C method calls." single ((:url . "https://github.com/Lindydancer/objc-font-lock") (:keywords "languages" "faces"))]) (oberon . [(20120715 209) nil "Major mode for editing Oberon/Oberon-2 program texts" single ((:keywords "oberon" "oberon-2" "languages" "oop"))]) (ob-typescript . [(20150804 530) ((emacs (24)) (org (8 0))) "org-babel functions for typescript evaluation" single ((:url . "https://github.com/lurdan/ob-typescript") (:keywords "literate programming" "reproducible research" "typescript"))]) (ob-translate . [(20130718 729) ((google-translate (0 4)) (org (8))) "Translation of text blocks in org-mode." single ((:url . "https://github.com/krisajenkins/ob-translate") (:keywords "org" "babel" "translate" "translation"))]) (ob-sml . [(20130829 1143) ((sml-mode (6 4))) "org-babel functions for template evaluation" single ((:url . "http://orgmode.org") (:keywords "literate programming" "reproducible research"))]) (ob-scala . [(20160209 635) ((ensime (0 9 10))) "org-babel functions for scala evaluation" single ((:url . "github.com/reactormonk/ob-scala") (:keywords "scala"))]) (ob-restclient . [(20160201 456) ((restclient (0))) "org-babel functions for restclient-mode" single ((:url . "http://orgmode.org") (:keywords "literate programming" "reproducible research"))]) (ob-prolog . [(20150530 937) nil "org-babel functions for prolog evaluation." single ((:url . "https://github.com/ljos/ob-prolog") (:keywords "literate programming" "reproducible research"))]) (ob-mongo . [(20130718 732) ((org (8))) "Execute mongodb queries within org-mode blocks." single ((:url . "https://github.com/krisajenkins/ob-mongo") (:keywords "org" "babel" "mongo" "mongodb"))]) (ob-lfe . [(20150701 655) ((org (8))) "org-babel functions for lfe evaluation" single ((:url . "http://github.com/zweifisch/ob-lfe") (:keywords "org" "babel" "lfe" "lisp" "erlang"))]) (ob-kotlin . [(20150312 614) ((org (8))) "org-babel functions for kotlin evaluation" single ((:url . "http://github.com/zweifisch/ob-kotlin") (:keywords "org" "babel" "kotlin"))]) (ob-ipython . [(20151010 307) ((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 ((:url . "http://www.gregsexton.org") (:keywords "literate programming" "reproducible research"))]) (ob-http . [(20160210 258) ((s (1 9 0)) (cl-lib (0 5))) "http request in org-mode babel" tar ((:url . "http://github.com/zweifisch/ob-http"))]) (ob-go . [(20151211 1601) ((go-mode (1 0 0))) "org-babel functions for go evaluation" single ((:url . "http://orgmode.org") (:keywords "golang" "go" "literate programming" "reproducible research"))]) (ob-elixir . [(20151021 447) ((org (8))) "org-babel functions for elixir evaluation" single ((:url . "http://github.com/zweifisch/ob-elixir") (:keywords "org" "babel" "elixir"))]) (ob-cypher . [(20150224 1837) ((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 ((:url . "http://github.com/zweifisch/ob-cypher") (:keywords "org" "babel" "cypher" "neo4j"))]) (ob-browser . [(20150101 710) ((org (8))) "Render HTML in org-mode blocks." tar ((:url . "https://github.com/krisajenkins/ob-browser") (:keywords "org" "babel" "browser" "phantomjs"))]) (ob-axiom . [(20150804 1500) ((emacs (24 2)) (axiom-environment (20150801))) "org-babel for the axiom-environment system" single ((:keywords "axiom" "openaxiom" "fricas"))]) (oauth . [(20130127 1751) nil "Oauth library." tar ((:keywords "comm"))]) (o-blog . [(20151202 1539) nil "Standalone orgmode blog exporter" tar ((:keywords "emacs"))]) (nyan-prompt . [(20140809 2208) nil "Nyan Cat on the eshell prompt." tar ((:url . "http://github.com/PuercoPop/nyan-prompt") (:keywords "nyan" "cat" "lulz" "eshell" "rainbow dependencies ((rx 0))"))]) (nyan-mode . [(20151017 2235) nil "Nyan Cat shows position in current buffer in mode-line." tar ((:url . "https://github.com/TeMPOraL/nyan-mode/") (:keywords "nyan" "cat" "lulz" "pop tart cat" "build something amazing"))]) (nvm . [(20151113 55) ((s (1 8 0)) (dash (2 4 0)) (f (0 14 0)) (dash-functional (2 4 0))) "Manage Node versions within Emacs" single ((:url . "http://github.com/rejeep/nvm.el") (:keywords "node" "nvm"))]) (nummm-mode . [(20131117 214) nil "Display the number of minor modes instead of their names" single ((:url . "http://github.com/agpchil/nummm-mode"))]) (number . [(20141127 1004) nil "Working with numbers at point." single nil]) (nu-mode . [(20150413 1315) ((undo-tree (0 6 5)) (helm (20140902 1005))) "Modern Emacs Prompts Based Keybinding." tar nil]) (nsis-mode . [(20150914 546) nil "NSIS-mode" tar ((:url . "http://github.com/mlf176f2/nsis-mode") (:keywords "nsis"))]) (nrepl-sync . [(20140807 854) ((cider (0 6))) "connect to nrepl port and eval .sync.clj." single ((:url . "https://github.com/phillord/lein-sync"))]) (nrepl-eval-sexp-fu . [(20140311 341) ((highlight (0 0 0)) (smartparens (0 0 0)) (thingatpt (0 0 0))) "Tiny functionality enhancements for evaluating sexps." single ((:keywords "lisp" "highlight" "convenience"))]) (noxml-fold . [(20151216 821) nil "Fold away XML things." single ((:url . "https://github.com/paddymcall/noxml-fold") (:keywords "xml" "folding"))]) (novice+ . [(20151231 1540) nil "Extensions to `novice.el'." single ((:url . "http://www.emacswiki.org/novice+.el") (:keywords "internal" "help"))]) (notmuch-labeler . [(20131230 919) ((notmuch (0))) "Improve notmuch way of displaying labels" tar ((:url . "https://github.com/DamienCassou/notmuch-labeler") (:keywords "emacs" "package" "elisp" "notmuch" "emails"))]) (notmuch . [(20160213 840) nil "No description available." tar nil]) (nose . [(20140520 948) nil "Easy Python test running in Emacs" single ((:keywords "nose" "python" "testing"))]) (noflet . [(20141102 654) nil "locally override functions" single ((:url . "https://github.com/nicferrier/emacs-noflet") (:keywords "lisp"))]) (nodejs-repl . [(20151229 603) nil "Run Node.js REPL" single nil]) (node-resolver . [(20140930 1023) ((cl-lib (0 5))) "hook to install node modules in background" single ((:url . "https://github.com/meandavejustice/node-resolver.el") (:keywords "convenience" "nodejs" "javascript" "npm"))]) (noctilux-theme . [(20150723 747) nil "Dark theme inspired by LightTable" tar nil]) (noccur . [(20150514 1420) nil "Run multi-occur on project/dired files" single ((:keywords "convenience"))]) (nnir-est . [(20140301 602) nil "Gnus nnir interface for HyperEstraier" single ((:url . "https://github.com/kawabata/nnir-est") (:keywords "mail"))]) (nm . [(20151110 1110) ((notmuch (0 21)) (peg (0 6)) (company (0)) (emacs (24 3))) "NEVERMORE: an email interface for Notmuch" tar ((:url . "https://github.com/tjim/nevermore"))]) (nixos-options . [(20160209 1041) ((emacs (24))) "Interface for browsing and completing NixOS options." single ((:url . "http://www.github.com/travisbhartwell/nix-emacs/") (:keywords "unix"))]) (nix-sandbox . [(20160214 218) ((dash (2 12 1)) (s (1 10 0))) "Utility functions to work with nix-shell sandboxes" single ((:url . "https://github.com/travisbhartwell/nix-emacs"))]) (nix-mode . [(20151026 315) nil "Major mode for editing Nix expressions" single ((:url . "https://github.com/NixOS/nix/tree/master/misc/emacs"))]) (ninja-mode . [(20141203 2159) ((emacs (24))) "Major mode for editing .ninja files" single nil]) (nim-mode . [(20160216 108) ((emacs (24 4)) (epc (0 1 1)) (let-alist (1 0 1)) (commenter (0 5 1))) "A major mode for the Nim programming language" tar ((:keywords "nim" "languages"))]) (niflheim-theme . [(20150630 821) nil "A port of the Nifleim theme to Emacs" single ((:url . "https://github.com/niflheim-theme/emacs") (:keywords "themes"))]) (nginx-mode . [(20150824 1411) nil "major mode for editing nginx config files" single ((:keywords "nginx"))]) (nexus . [(20140114 505) nil "REST Client for Nexus Maven Repository servers" tar ((:keywords "comm"))]) (newlisp-mode . [(20150120 1040) nil "newLISP editing mode for Emacs" single ((:url . "https://github.com/kosh04/newlisp-mode") (:keywords "language" "lisp" "newlisp"))]) (never-comment . [(20140104 1407) nil "Never blocks are comment" single ((:url . "http://stackoverflow.com/a/4554658/89376"))]) (netherlands-holidays . [(20150202 817) nil "Netherlands holidays for Emacs calendar." single ((:url . "https://github.com/abo-abo/netherlands-holidays") (:keywords "calendar"))]) (neotree . [(20160214 532) nil "A tree plugin like NerdTree for Vim" tar ((:url . "https://github.com/jaypei/emacs-neotree"))]) (nemerle . [(20130328 746) nil "major mode for editing nemerle programs" single ((:keywords "nemerle" "mode" "languages"))]) (nclip . [(20130617 1315) nil "Network (HTTP) Clipboard" tar ((:url . "http://www.github.com/maio/nclip.el") (:keywords "nclip" "clipboard" "network"))]) (ncl-mode . [(20150525 929) ((emacs (24))) "Major Mode for editing NCL scripts and other goodies" tar nil]) (navorski . [(20141203 1024) ((s (1 9 0)) (dash (1 5 0)) (multi-term (0 8 14))) "Helping you live in the terminal, like Viktor did." single ((:keywords "terminal"))]) (navi2ch . [(20150329 1916) nil "Navigator for 2ch for Emacsen" tar ((:keywords "network" "2ch"))]) (navi-mode . [(20151203 757) ((outshine (2 0)) (outorg (2 0))) "major-mode for easy buffer-navigation" single ((:url . "https://github.com/tj64/navi"))]) (nav-flash . [(20140508 1341) nil "Briefly highlight the current line" single ((:url . "http://github.com/rolandwalker/nav-flash") (:keywords "extensions" "navigation" "interface"))]) (nav . [(20120507 7) nil "Emacs mode for filesystem navigation" tar nil]) (nasm-mode . [(20151109 1658) ((emacs (24 3))) "NASM x86 assembly major mode" single ((:url . "https://github.com/skeeto/nasm-mode"))]) (narrowed-page-navigation . [(20150108 2119) ((emacs (24)) (cl-lib (0 5))) "A minor mode for showing one page at a time" single ((:keywords "outlines"))]) (narrow-reindent . [(20150722 1206) ((emacs (24 4))) "Defines a minor mode to left-align narrowed regions." single ((:url . "https://github.com/emallson/narrow-reindent.el"))]) (narrow-indirect . [(20151231 1539) nil "Narrow using an indirect buffer that is a clone" single ((:url . "http://www.emacswiki.org/narrow-indirect.el") (:keywords "narrow" "indirect" "buffer" "clone" "view" "multiple-modes"))]) (naquadah-theme . [(20150923 141) nil "A theme based on Tango color set" single nil]) (nanowrimo . [(20151104 1828) nil "Track progress for nanowrimo" single ((:url . "https://bitbucket.org/gvol/nanowrimo-mode"))]) (nand2tetris-assembler . [(20151027 1436) ((names (0 3 0)) (nand2tetris (0 0 1))) "Assembler For the Nand2tetris Course" single ((:url . "http://www.github.com/CestDiego/nand2tetris-assembler.el/") (:keywords "nand2tetris-assembler" "hdl"))]) (nand2tetris . [(20151027 1451) ((names (0 3 0))) "Major mode for HDL files in the nand2tetris course" tar ((:url . "http://www.github.com/CestDiego/nand2tetris.el/") (:keywords "nand2tetris" "hdl"))]) (namespaces . [(20130326 1550) nil "An implementation of namespaces for Elisp, with an emphasis on immutabilty." single ((:url . "https://github.com/chrisbarrett/elisp-namespaces"))]) (names . [(20151201 404) ((emacs (24 1)) (cl-lib (0 5))) "Namespaces for emacs-lisp. Avoid name clobbering without hiding symbols." tar ((:url . "https://github.com/Malabarba/names") (:keywords "extensions" "lisp"))]) (nameless . [(20151014 439) ((emacs (24 4))) "Hide package namespace in your emacs-lisp code" single ((:url . "https://github.com/Malabarba/nameless") (:keywords "convenience" "lisp"))]) (nameframe-projectile . [(20151018 207) ((nameframe (0 4 0 -2)) (projectile (0 13 0))) "Nameframe integration with Projectile" single ((:url . "https://github.com/john2x/nameframe"))]) (nameframe-perspective . [(20151018 207) ((nameframe (0 4 0 -2)) (perspective (1 12))) "Nameframe integration with perspective.el" single ((:url . "https://github.com/john2x/nameframe"))]) (nameframe . [(20151017 2119) nil "Manage frames by name." single ((:url . "https://github.com/john2x/nameframe"))]) (name-this-color . [(20151014 1330) ((emacs (24)) (cl-lib (0 5)) (dash (2 11 0))) "Match RGB codes to names easily and precisely" single ((:url . "https://github.com/knl/name-this-color.el") (:keywords "lisp" "color" "hex" "rgb" "shade" "name"))]) (naked . [(20151231 1527) nil "Provide for naked key descriptions: no angle brackets." single ((:url . "http://www.emacswiki.org/naked.el") (:keywords "lisp" "key" "print" "format" "help"))]) (n4js . [(20150713 1931) ((emacs (24)) (cypher-mode (0))) "Neo4j Shell" single ((:url . "https://github.com/tmtxt/n4js.el") (:keywords "neo4j" "shell" "comint"))]) (n3-mode . [(20141027 1057) nil "mode for Notation 3" single nil]) (myterminal-controls . [(20160119 2030) ((emacs (24)) (cl-lib (0 5))) "Quick toggle controls at a key-stroke" single ((:url . "http://ismail.teamfluxion.com") (:keywords "convenience" "shortcuts"))]) (mysql2sqlite . [(20151123 1339) nil "Convert mysql databases into sqlite databases." single nil]) (mynt-mode . [(20150512 1349) ((virtualenvwrapper (20131514))) "Minor mode to work with the mynt static site generator" single ((:url . "https://github.com/crshd/mynt-mode") (:keywords "convenience"))]) (mykie . [(20150808 1505) ((emacs (24 3)) (cl-lib (0 5))) "Command multiplexer: Register multiple functions to a keybind" tar ((:url . "https://github.com/yuutayamada/mykie-el") (:keywords "emacs" "configuration" "keybind"))]) (myanmar-input-methods . [(20160106 737) nil "Emacs Input Method for Myanmar" single ((:url . "http://github.com/yelinkyaw/emacs-myanmar-input-methods") (:keywords "myanmar" "unicode" "keyboard"))]) (mwim . [(20150822 1236) nil "Move to the beginning/end of line or code" single ((:url . "https://github.com/alezost/mwim.el") (:keywords "convenience"))]) (mwe-log-commands . [(20100703 541) nil "log keyboard commands to buffer" single ((:keywords "help"))]) (mvn . [(20160211 743) nil "helpers for compiling with maven" single ((:url . "https://github.com/apgwoz/mvn-el") (:keywords "compilation" "maven" "java"))]) (muttrc-mode . [(20090804 1552) nil "Major mode to edit muttrc under Emacs" single nil]) (mutant . [(20160124 553) ((emacs (24 4)) (dash (2 1 0))) "An interface for the Mutant testing tool" single ((:url . "http://github.com/p-lambert/mutant.el") (:keywords "mutant" "testing"))]) (mustard-theme . [(20141115 2302) ((emacs (24 0))) "an Emacs 24 theme based on Mustard (tmTheme)" single ((:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) (mustang-theme . [(20141017 1623) nil "port of vim's mustang theme" single ((:url . "http://github.com/mswift42/mustang-theme"))]) (mustache-mode . [(20141024 732) nil "A major mode for editing Mustache files." single nil]) (mustache . [(20131117 1407) ((ht (0 9)) (s (1 3 0)) (dash (1 2 0))) "a mustache templating library in emacs lisp" tar nil]) (multiple-cursors . [(20160213 817) nil "Multiple cursors for Emacs." tar nil]) (multifiles . [(20130615 1433) nil "View and edit parts of multiple files in one buffer" single ((:keywords "multiple" "files"))]) (multicolumn . [(20150202 1451) nil "Creating and managing multiple side-by-side windows." single ((:url . "https://github.com/Lindydancer/multicolumn"))]) (multi-web-mode . [(20130823 2054) nil "multiple major mode support for web editing" tar ((:url . "https://github.com/fgallina/multi-web-mode") (:keywords "convenience" "languages" "wp"))]) (multi-term . [(20150220 520) nil "Managing multiple terminal buffers in Emacs." single ((:url . "http://www.emacswiki.org/emacs/download/multi-term.el") (:keywords "term" "terminal" "multiple buffer"))]) (multi-project . [(20150314 744) nil "Easily work with multiple projects." single ((:url . "https://bitbucket.org/ellisvelo/multi-project/overview") (:keywords "project" "management"))]) (multi-line . [(20151206 1613) ((emacs (24))) "multi-line statements" tar ((:url . "https://github.com/IvanMalison/multi-line") (:keywords "multi" "line" "length" "whitespace" "programming"))]) (multi-eshell . [(20120608 1135) nil "Create and manage multiple shells within Emacs" single ((:url . "http://cims.nyu.edu/~stucchio"))]) (multi-compile . [(20160215 1219) ((emacs (24))) "Multi target interface to compile." single ((:url . "https://github.com/ReanGD/emacs-multi-compile") (:keywords "tools" "compile" "build"))]) (multi . [(20131013 844) ((emacs (24))) "Clojure-style multi-methods for emacs lisp" single ((:url . "http://github.com/kurisuwhyte/emacs-multi") (:keywords "multimethod" "generic" "predicate" "dispatch"))]) (mu4e-maildirs-extension . [(20160126 39) ((dash (0 0 0))) "Show mu4e maildirs summary in mu4e-main-view" single ((:url . "http://github.com/agpchil/mu4e-maildirs-extension"))]) (mu4e-alert . [(20160215 209) ((alert (1 2)) (s (1 10 0)) (ht (2 0)) (emacs (24 1))) "Desktop notification for mu4e" single ((:url . "https://github.com/iqbalansari/mu4e-alert") (:keywords "mail" "convenience"))]) (mu-cite . [(20160130 300) ((flim (1 14 9))) "A library to provide MIME features." tar nil]) (msvc . [(20150530 151) ((emacs (24)) (cl-lib (0 5)) (cedet (1 0)) (ac-clang (1 2 0))) "Microsoft Visual C/C++ mode" tar ((:url . "https://github.com/yaruopooner/msvc") (:keywords "languages" "completion" "syntax check" "mode" "intellisense"))]) (mpv . [(20150218 118) ((cl-lib (0 5)) (emacs (24)) (json (1 3)) (names (0 5 4)) (org (8 0))) "control mpv for easy note-taking" single ((:url . "https://github.com/kljohann/mpv.el") (:keywords "tools" "multimedia"))]) (mpg123 . [(20151214 1150) nil "A front-end program to mpg123/ogg123" single nil]) (mpages . [(20150710 704) nil "An Emacs buffer for quickly writing your Morning Pages" single ((:url . "https://github.com/slevin/mpages"))]) (mozc-popup . [(20150223 1634) ((popup (0 5 2)) (mozc (0))) "Mozc with popup" single ((:keywords "i18n" "extentions"))]) (mozc-im . [(20150419 449) ((mozc (0))) "Mozc with input-method-function interface." single ((:keywords "i18n" "extentions"))]) (mozc . [(20160102 1506) nil "minor mode to input Japanese with Mozc" single ((:keywords "mule" "multilingual" "input method"))]) (moz-controller . [(20151208 1806) ((moz (0))) "Control Firefox from Emacs" single ((:url . "https://github.com/RenWenshan/emacs-moz-controller"))]) (moz . [(20150805 1006) nil "Lets current buffer interact with inferior mozilla." single ((:url . "http://github.com/bard/mozrepl/raw/master/chrome/content/moz.el"))]) (mowedline . [(20150601 1009) nil "elisp utilities for using mowedline" single nil]) (move-text . [(20160211 1847) nil "Move current line or region with M-up or M-down." single ((:keywords "edit"))]) (move-dup . [(20140925 808) nil "Eclipse-like moving and duplicating lines or rectangles." single ((:keywords "convenience" "wp"))]) (mouse3 . [(20151231 1526) nil "Customizable behavior for `mouse-3'." single ((:url . "http://www.emacswiki.org/mouse3.el") (:keywords "mouse" "menu" "keymap" "kill" "rectangle" "region"))]) (mouse-slider-mode . [(20150910 1400) ((emacs (24 3)) (cl-lib (0 3))) "scale numbers dragged under the mouse" single ((:url . "https://github.com/skeeto/mouse-slider-mode"))]) (mouse+ . [(20151231 1525) nil "Extensions to `mouse.el'." single ((:url . "http://www.emacswiki.org/mouse+.el") (:keywords "mouse"))]) (motion-mode . [(20140919 1856) ((flymake-easy (0 7)) (flymake-cursor (1 0 2))) "major mode for RubyMotion enviroment" tar ((:url . "https://github.com/ainame/motion-mode"))]) (mote-mode . [(20160122 1629) ((ruby-mode (1 1))) "Mote minor mode" single ((:url . "http://inkel.github.com/mote-mode/"))]) (morlock . [(20150815 834) nil "more font-lock keywords for elisp" single ((:url . "http://github.com/tarsius/morlock") (:keywords "convenience"))]) (monroe . [(20141111 107) nil "Yet another client for nREPL" single ((:url . "http://www.github.com/sanel/monroe") (:keywords "languages" "clojure" "nrepl" "lisp"))]) (monokai-theme . [(20160104 1312) nil "A fruity color theme for Emacs." single ((:url . "http://github.com/oneKelvinSmith/monokai-emacs"))]) (monochrome-theme . [(20140326 350) nil "A dark Emacs 24 theme for your focused hacking sessions" tar nil]) (monky . [(20150404 18) nil "Control Hg from Emacs." tar nil]) (mongo . [(20150315 519) nil "MongoDB driver for Emacs Lisp" tar ((:keywords "convenience"))]) (molokai-theme . [(20151016 845) nil "molokai theme with Emacs theme engine" single ((:url . "https://github.com/alloy-d/color-theme-molokai"))]) (moe-theme . [(20160216 1821) nil "A colorful eye-candy theme. Moe, moe, kyun!" tar ((:url . "https://github.com/kuanyui/moe-theme.el"))]) (modtime-skip-mode . [(20140128 1401) nil "Minor mode for disabling modtime and supersession checks on files." single ((:url . "http://www.github.com/jordonbiondo/modtime-skip-mode"))]) (modeline-posn . [(20160112 649) nil "Set up `mode-line-position'." single ((:url . "http://www.emacswiki.org/modeline-posn.el") (:keywords "mode-line" "region" "column"))]) (modeline-char . [(20151231 1519) nil "In the mode-line, show the value of the character after point." single ((:url . "http://www.emacswiki.org/modeline-char.el") (:keywords "mode-line" "character"))]) (mode-line-debug . [(20150307 512) nil "show status of `debug-on-error' in the mode-line" single ((:url . "https://github.com/tarsius/mode-line-debug") (:keywords "convenience" "lisp"))]) (mode-icons . [(20160212 748) ((emacs (24)) (cl-lib (0 5))) "Show icons for modes" tar ((:url . "http://ryuslash.org/projects/mode-icons.html") (:keywords "multimedia"))]) (modalka . [(20160122 433) ((emacs (24 4))) "Easily introduce native modal editing of your own design" single ((:url . "https://github.com/mrkkrp/modalka") (:keywords "modal" "editing"))]) (mocker . [(20150916 1854) ((eieio (1 3)) (el-x (0 2 4))) "mocking framework for emacs" single ((:keywords "lisp" "testing"))]) (mocha-snippets . [(20160211 832) ((yasnippet (0 8 0))) "Yasnippets for the Mocha JS Testing Framework" tar ((:keywords "test" "javascript"))]) (mocha . [(20160203 1608) ((js2-mode (20150909))) "Run Mocha or Jasmine tests" single ((:url . "http://github.com/scottaj/mocha.el") (:keywords "javascript" "mocha" "jasmine"))]) (mobdebug-mode . [(20140109 1946) ((lua-mode (20130419)) (emacs (24))) "Major mode for MobDebug" single ((:url . "https://github.com/deftsp/mobdebug-mode"))]) (mo-vi-ment-mode . [(20131028 2333) nil "Provide vi-like cursor movement that's easy on the fingers" single ((:keywords "convenience"))]) (mo-git-blame . [(20160129 959) nil "An interactive, iterative 'git blame' mode for Emacs" single ((:keywords "tools"))]) (mmt . [(20150906 959) ((emacs (24 1)) (cl-lib (0 3))) "Missing macro tools for Emacs Lisp" single ((:url . "https://github.com/mrkkrp/mmt") (:keywords "macro" "emacs-lisp"))]) (mmm-mode . [(20150828 1716) nil "Allow Multiple Major Modes in a buffer" tar ((:url . "https://github.com/purcell/mmm-mode") (:keywords "convenience" "faces" "languages" "tools"))]) (mmm-mako . [(20121019 2351) ((mmm-mode (0 4 8))) "MMM submode class for Mako Templates" single ((:url . "https://bitbucket.org/pjenvey/mmm-mako"))]) (mmm-jinja2 . [(20150904 1134) ((mmm-mode (0 5 4))) "MMM submode class for Jinja2 Templates" single ((:url . "https://github.com/beardedprojamz/mmm-jinja2"))]) (mkdown . [(20140517 718) ((markdown-mode (2 0))) "Pretty Markdown previews based on mkdown.com" tar ((:url . "https://github.com/ajtulloch/mkdown.el") (:keywords "markdown"))]) (misc-fns . [(20151231 1508) nil "Miscellaneous non-interactive functions." single ((:url . "http://www.emacswiki.org/misc-fns.el") (:keywords "internal" "unix" "lisp" "extensions" "local"))]) (misc-cmds . [(20151231 1423) nil "Miscellaneous commands (interactive functions)." single ((:url . "http://www.emacswiki.org/misc-cmds.el") (:keywords "internal" "unix" "extensions" "maint" "local"))]) (mip-mode . [(20151126 2217) nil "virtual projects for emacs." single ((:keywords "workspaces" "workspace" "project" "projects" "mip-mode"))]) (minor-mode-hack . [(20141226 1220) nil "Change priority of minor-mode keymaps" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/minor-mode-hack.el") (:keywords "lisp"))]) (minizinc-mode . [(20151214 558) ((emacs (24 1))) "Major mode for MiniZinc code" single ((:url . "http://github.com/m00nlight/minizinc-mode") (:keywords "languages" "minizinc"))]) (minitest . [(20160111 1149) ((dash (1 0 0))) "An Emacs mode for ruby minitest files" tar ((:url . "https://github.com/arthurnn/minitest-emacs"))]) (minimal-theme . [(20140409 1601) nil "A light/dark minimalistic Emacs 24 theme." tar ((:url . "http://github.com/ikame/minimal-theme") (:keywords "color" "theme" "minimal"))]) (minimal-session-saver . [(20140508 1341) nil "Very lean session saver" single ((:url . "http://github.com/rolandwalker/minimal-session-saver") (:keywords "tools" "frames" "project"))]) (miniedit . [(20100419 1045) nil "Enhanced editing for minibuffer fields." single nil]) (minibuffer-cua . [(20130906 434) nil "Make CUA mode's S-up/S-down work in minibuffer" single ((:url . "https://github.com/knu/minibuffer-cua.el") (:keywords "completion" "editing"))]) (minibuffer-complete-cycle . [(20130813 945) nil "Cycle through the *Completions* buffer" single ((:url . "https://github.com/knu/minibuffer-complete-cycle") (:keywords "completion"))]) (minibuf-isearch . [(20151226 1143) nil "incremental search on minibuffer history" single ((:keywords "minibuffer" "history" "incremental search"))]) (mingus . [(20160206 110) ((libmpdee (2 1))) "MPD Interface" tar ((:url . "https://github.com/pft/mingus") (:keywords "multimedia" "elisp" "music" "mpd"))]) (minesweeper . [(20150413 2222) nil "play minesweeper in Emacs" single ((:url . "https://bitbucket.org/zck/minesweeper.el") (:keywords "game" "fun" "minesweeper" "inane" "diversion"))]) (milkode . [(20140926 2229) nil "Command line search and direct jump with Milkode" single ((:keywords "milkode" "search" "grep" "jump" "keyword"))]) (migemo . [(20150412 741) ((cl-lib (0 5))) "Japanese incremental search through dynamic pattern expansion" single ((:url . "https://github.com/emacs-jp/migemo"))]) (midje-mode . [(20150921 1750) ((cider (0 1 4)) (clojure-mode (1 0))) "Minor mode for running Midje tests in emacs" tar nil]) (mic-paren . [(20140714 19) nil "advanced highlighting of matching parentheses" single ((:keywords "languages" "faces" "parenthesis" "matching"))]) (mhc . [(20160210 2037) ((calfw (20150703))) "Message Harmonized Calendaring system." tar ((:url . "http://www.quickhack.net/mhc") (:keywords "calendar"))]) (mexican-holidays . [(20160109 1342) nil "Mexico holidays for Emacs calendar." single ((:url . "https://github.com/shopClerk/mexican-holidays") (:keywords "calendar"))]) (mew . [(20150813 2354) nil "Messaging in the Emacs World" tar nil]) (metaweblog . [(20141130 605) ((xml-rpc (1 6 8))) "An emacs library to access metaweblog based weblogs" tar nil]) (metascript-mode . [(20150708 1757) ((emacs (24 3))) "Major mode for the Metascript programming language" single ((:url . "http://github.com/metascript/metascript-mode") (:keywords "languages" "metascript" "mjs"))]) (metafmt . [(20160127 159) nil "Emacs interface for metafmt" single ((:url . "https://github.com/lvillani/metafmt") (:keywords "languages" "tools"))]) (meta-presenter . [(20150501 410) nil "A simple multi-file presentation tool for Emacs" single ((:url . "http://ismail.teamfluxion.com") (:keywords "productivity" "presentation"))]) (message-x . [(20151029 718) nil "customizable completion in message headers" single ((:keywords "news" "mail" "compose" "completion"))]) (merlin . [(20151228 734) nil "Mode for Merlin, an assistant for OCaml." tar ((:url . "http://github.com/the-lambda-church/merlin") (:keywords "ocaml" "languages"))]) (menu-bar+ . [(20151231 1422) nil "Extensions to `menu-bar.el'." single ((:url . "http://www.emacswiki.org/menu-bar+.el") (:keywords "internal" "local" "convenience"))]) (mentor . [(20140904 1710) ((xml-rpc (1 6 9))) "Frontend for the rTorrent bittorrent client" tar ((:keywords "bittorrent" "rtorrent"))]) (memolist . [(20150804 1021) ((markdown-mode (22 0)) (ag (0 45))) "memolist.el is Emacs port of memolist.vim." single ((:url . "http://github.com/mikanfactory/emacs-memolist") (:keywords "markdown" "memo"))]) (memoize . [(20130421 1234) nil "Memoization functions" single ((:url . "https://github.com/skeeto/emacs-memoize"))]) (memento . [(20150823 339) nil "maintaining daily journals when the day ends." single ((:keywords "journal" "log" "diary"))]) (melpa-upstream-visit . [(20130720 333) ((s (1 6 0))) "A set of kludges to visit a melpa-hosted package's homepage" single ((:keywords "convenience"))]) (mellow-theme . [(20141115 2302) ((emacs (24 0))) "an Emacs 24 theme based on Mellow (tmTheme)" single ((:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) (mediawiki . [(20160123 1837) nil "mediawiki frontend" single ((:url . "http://github.com/hexmode/mediawiki-el") (:keywords "mediawiki" "wikipedia" "network" "wiki"))]) (meacupla-theme . [(20151027 1517) nil "meacupla theme for emacs" single ((:url . "https://gitlab.com/jtecca/meacupla-theme") (:keywords "color" "theme" "meacupla" "faces"))]) (md-readme . [(20150505 2359) nil "Markdown-formatted READMEs for your ELisp" tar ((:url . "http://github.com/thomas11/md-readme/tree/master") (:keywords "lisp" "help" "readme" "markdown" "header" "documentation" "github"))]) (mc-extras . [(20150218 234) ((multiple-cursors (1 2 1))) "Extra functions for multiple-cursors mode." tar ((:url . "https://github.com/knu/mc-extras.el") (:keywords "editing" "cursors"))]) (mbo70s-theme . [(20141122 642) ((emacs (24 0))) "70s style palette, with similarities to mbo theme" single ((:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) (mbe . [(20151126 334) ((emacs (24)) (cl-lib (0 5))) "Macros by Example" single ((:url . "https://github.com/ijp/mbe.el") (:keywords "tools" "macros"))]) (mb-url . [(20151210 1016) ((cl-lib (0))) "Multiple Backends for Emacs URL package." tar ((:url . "https://github.com/dochang/mb-url") (:keywords "url"))]) (mb-depth+ . [(20151231 1421) nil "Indicate minibuffer-depth in prompt" single ((:url . "http://www.emacswiki.org/mb-depth+.el") (:keywords "convenience"))]) (maxframe . [(20140916 754) nil "maximize the emacs frame based on display size" single ((:keywords "display" "frame" "window" "maximize"))]) (maven-test-mode . [(20141219 2157) ((s (1 9)) (emacs (24))) "Utilities for navigating test files and running maven test tasks." single ((:url . "http://github.com/rranelli/maven-test-mode") (:keywords "java" "maven" "test"))]) (maude-mode . [(20140212 302) nil "Emacs mode for the programming language Maude" single ((:keywords "maude"))]) (matrix-client . [(20160205 1600) ((json (1 4)) (request (0 2 0))) "A minimal chat client for the Matrix.org RPC" tar ((:url . "http://doc.rix.si/matrix.html") (:keywords "web"))]) (matlab-mode . [(20160210 227) nil "No description available." tar nil]) (math-symbols . [(20151121 1642) ((helm (1 0))) "Math Symbol Input methods and conversion tools" tar ((:url . "https://github.com/kawabata/math-symbols") (:keywords "math symbols" "tex" "latex"))]) (math-symbol-lists . [(20151215 1043) nil "Lists of Unicode math symbols and latex commands" single ((:url . "https://github.com/vspinu/math-symbol-lists") (:keywords "unicode" "symbols" "mathematics"))]) (material-theme . [(20160211 2354) ((emacs (24 1))) "A Theme based on the colors of the Google Material Design" tar ((:url . "http://github.com/cpaulik/emacs-material-theme") (:keywords "themes"))]) (marshal . [(20150916 1857) ((eieio (1 4)) (json (1 3))) "eieio extension for automatic (un)marshalling" single ((:url . "https://github.com/sigma/marshal.el") (:keywords "eieio"))]) (marmalade-client . [(20141231 1207) ((web (0 5 2)) (kv (0 0 19)) (gh (0 8 0))) "client for marmalade API from emacs" tar ((:url . "https://github.com/nicferrier/emacs-marmalade-upload") (:keywords "lisp"))]) (marmalade . [(20110602 1622) ((furl (0 0 2))) "Elisp interface for the Emacs Lisp package server." single ((:url . "http://code.google.com/p/marmalade"))]) (markup-faces . [(20141110 17) nil "collection of faces for markup language modes" single ((:url . "https://github.com/sensorflo/markup-faces") (:keywords "wp" "faces"))]) (markup . [(20130207 1309) nil "Simple markup generation helpers." single ((:url . "http://github.com/leoc/markup.el") (:keywords "convenience" "markup" "html"))]) (markdown-toc . [(20160207 858) ((s (1 9 0)) (dash (2 11 0)) (markdown-mode (2 0))) "A simple TOC generator for markdown file" tar nil]) (markdown-preview-mode . [(20160215 849) ((websocket (1 5)) (markdown-mode (2 1)) (cl-lib (0 5))) "markdown realtime preview minor mode." tar ((:url . "https://github.com/ancane/markdown-preview-mode") (:keywords "markdown" "preview"))]) (markdown-preview-eww . [(20160111 702) ((emacs (24 4))) "Realtime preview by eww" single ((:url . "https://github.com/niku/markdown-preview-eww"))]) (markdown-mode . [(20160216 501) ((cl-lib (0 5))) "Emacs Major mode for Markdown-formatted text files" single ((:url . "http://jblevins.org/projects/markdown-mode/") (:keywords "markdown" "github flavored markdown" "itex"))]) (markdown-mode+ . [(20120829 510) ((markdown-mode (20111229))) "extra functions for markdown-mode" tar ((:url . "http://github.com/milkypostman/markdown-mode+.el") (:keywords "markdown" "latex" "osx" "rtf"))]) (mark-tools . [(20130614 325) nil "Some simple tools to access the mark-ring in Emacs" single ((:url . "https://github.com/stsquad/emacs-mark-tools"))]) (mark-multiple . [(20121118 754) nil "Sorta lets you mark several regions at once." tar nil]) (marcopolo . [(20150326 918) ((s (1 9 0)) (dash (2 9 0)) (pkg-info (0 5 0)) (request (0 1 0))) "Emacs client for Docker API" tar ((:url . "https://github.com/nlamirault/marcopolo") (:keywords "docker"))]) (map-regexp . [(20130522 1403) ((cl-lib (0 2))) "map over matches of a regular expression" single ((:url . "https://github.com/tarsius/map-regexp") (:keywords "convenience"))]) (map-progress . [(20140310 1432) nil "mapping macros that report progress" single ((:url . "https://github.com/tarsius/map-progress/") (:keywords "convenience"))]) (mandoku . [(20160126 2026) ((org (8 0)) (magit (20151028)) (github-clone (20150705)) (git (20140128))) "A tool to access repositories of premodern Chinese texts" tar nil]) (manage-minor-mode . [(20140310 900) ((emacs (24 3))) "Manage your minor-modes easily" single ((:url . "https://github.com/ShingoFukuyama/manage-minor-mode") (:keywords "minor-mode" "manage" "emacs"))]) (man-commands . [(20151221 1421) ((cl-lib (0 5))) "Add interactive commands for every manpages installed in your computer." single ((:url . "http://github.com/nflath/man-commands"))]) (mallard-snippets . [(20131023 1151) ((yasnippet (0 8 0)) (mallard-mode (0 1 1))) "Yasnippets for Mallard" tar ((:url . "https://github.com/jhradilek/emacs-mallard-snippets") (:keywords "snippets" "mallard"))]) (mallard-mode . [(20131203 2025) nil "Major mode for editing Mallard files" tar ((:url . "https://github.com/jhradilek/emacs-mallard-mode") (:keywords "xml" "mallard"))]) (malinka . [(20151107 16) ((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 ((:url . "https://github.com/LefterisJP/malinka") (:keywords "c" "c++" "project-management"))]) (malabar-mode . [(20150720 1055) ((fringe-helper (1 0 1)) (groovy-mode (0))) "JVM Integration mode for EMACS" tar ((:url . "http://www.github.com/m0smith/malabar-mode") (:keywords "java" "maven" "groovy" "language" "malabar"))]) (makey . [(20131231 630) ((cl-lib (0 2))) "interactive commandline mode" single nil]) (maker-mode . [(20150116 354) ((s (1 3 0)) (dash (2 8 0))) "Emacs mode for maker (scala build tool)" single ((:url . "https://github.com/fommil/maker-mode") (:keywords "processes" "tools"))]) (make-it-so . [(20150319 1207) ((helm (1 5 3)) (emacs (24))) "Transform files with Makefile recipes." tar ((:url . "https://github.com/abo-abo/make-it-so") (:keywords "make" "dired"))]) (make-color . [(20140625 450) nil "Alternative to picking color - update fg/bg color by pressing r/g/b/... keys" single ((:url . "https://github.com/alezost/make-color.el") (:keywords "color"))]) (majapahit-theme . [(20160203 629) nil "Color theme with a dark and light versions" tar ((:keywords "color" "theme") (:url . "https://gitlab.com/franksn/majapahit-theme"))]) (main-line . [(20151120 1806) ((cl-lib (0 5))) "modeline replacement forked from an early version of powerline.el" single ((:url . "https://github.com/jasonm23/emacs-mainline") (:keywords "statusline" "/" "modeline"))]) (magnatune . [(20151030 1235) ((dash (2 9 0)) (s (1 9 0))) "browse magnatune's music catalog" tar nil]) (magma-mode . [(20150923 140) ((cl-lib (0 3)) (dash (2 6 0)) (f (0 17 1))) "Magma mode for Emacs" tar ((:url . "https://github.com/ThibautVerron/magma-mode"))]) (magit-topgit . [(20160215 839) ((emacs (24 4)) (magit (2 1 0))) "TopGit extension for Magit" single ((:keywords "vc" "tools"))]) (magit-svn . [(20151219 547) ((emacs (24 4)) (magit (2 1 0))) "Git-Svn extension for Magit" single ((:keywords "vc" "tools"))]) (magit-stgit . [(20160217 747) ((emacs (24 4)) (magit (2 1 0))) "StGit extension for Magit" single ((:keywords "vc" "tools"))]) (magit-rockstar . [(20160117 1658) ((dash (2 12 1)) (magit (2 4 0))) "commit like a rockstar" single ((:url . "http://github.com/tarsius/magit-rockstar") (:keywords "convenience"))]) (magit-popup . [(20160130 649) ((emacs (24 4)) (async (20150909 2257)) (dash (20151021 113))) "Define prefix-infix-suffix command combos" tar ((:url . "https://github.com/magit/magit") (:keywords "bindings"))]) (magit-gitflow . [(20160208 1304) ((magit (2 1 0)) (magit-popup (2 2 0))) "gitflow extension for magit" single ((:url . "https://github.com/jtatarik/magit-gitflow") (:keywords "vc" "tools"))]) (magit-gh-pulls . [(20160215 232) ((emacs (24)) (gh (0 9 1)) (magit (2 1 0)) (pcache (0 2 3)) (s (1 6 1))) "GitHub pull requests extension for Magit" single ((:url . "https://github.com/sigma/magit-gh-pulls") (:keywords "git" "tools"))]) (magit-gerrit . [(20160128 1926) ((magit (2 3 1))) "Magit plugin for Gerrit Code Review" single ((:url . "https://github.com/terranpro/magit-gerrit"))]) (magit-find-file . [(20150702 130) ((magit (2 1 0)) (dash (2 8 0))) "completing-read over all files in Git" single ((:url . "https://github.com/bradleywright/magit-find-file.el") (:keywords "git"))]) (magit-filenotify . [(20151116 1540) ((magit (1 3 0)) (emacs (24 4))) "Refresh status buffer when git tree changes" single ((:keywords "tools"))]) (magit-annex . [(20160204 1935) ((cl-lib (0 3)) (magit (2 3 0))) "Control git-annex from Magit" single ((:url . "https://github.com/kyleam/magit-annex") (:keywords "vc" "tools"))]) (magit . [(20160214 1130) ((emacs (24 4)) (async (20150909 2257)) (dash (20151021 113)) (with-editor (20160128 1201)) (git-commit (20160119 1409)) (magit-popup (20160119 1409))) "A Git porcelain inside Emacs" tar ((:url . "https://github.com/magit/magit") (:keywords "git" "tools" "vc"))]) (magic-latex-buffer . [(20160212 603) ((cl-lib (0 5)) (emacs (24 3))) "Magically enhance LaTeX-mode font-locking for semi-WYSIWYG editing" single ((:url . "http://hins11.yu-yake.com/"))]) (magic-filetype . [(20160120 504) ((emacs (24)) (s (1 9 0))) "Enhance filetype major mode" single ((:keywords "vim" "ft" "file" "magic-mode"))]) (mag-menu . [(20150505 1150) ((splitter (0 1 0))) "Intuitive keyboard-centric menu system" single ((:url . "https://github.com/chumpage/mag-menu") (:keywords "convenience"))]) (macrostep . [(20151213 145) ((cl-lib (0 5))) "interactive macro expander" tar ((:url . "https://github.com/joddie/macrostep") (:keywords "lisp" "languages" "macro" "debugging"))]) (macros+ . [(20151231 1419) nil "Extensions to `macros.el'." single ((:url . "http://www.emacswiki.org/macros+.el") (:keywords "abbrev" "local"))]) (macro-math . [(20130328 904) nil "in-buffer mathematical operations" single ((:url . "http://nschum.de/src/emacs/macro-math/") (:keywords "convenience"))]) (m-buffer . [(20160125 1303) ((dash (2 8 0)) (emacs (24 3))) "List-Oriented, Functional Buffer Manipulation" tar nil]) (lxc . [(20140410 1322) nil "lxc integration with Emacs" single ((:url . "https://github.com/nicferrier/emacs-lxc") (:keywords "processes"))]) (lusty-explorer . [(20150508 1557) nil "Dynamic filesystem explorer and buffer switcher" single ((:keywords "convenience" "files" "matching"))]) (lush-theme . [(20141107 806) ((emacs (24))) "A dark theme with strong colors" single ((:url . "https://github.com/andre-richter/emacs-lush-theme") (:keywords "theme" "dark" "strong colors"))]) (lua-mode . [(20151025 530) nil "a major-mode for editing Lua scripts" tar ((:url . "http://immerrr.github.com/lua-mode") (:keywords "languages" "processes" "tools"))]) (love-minor-mode . [(20130429 1459) ((lua-mode (20130419))) "Minor mode for working on LÖVE projects" single ((:url . "https://github.com/ejmr/love-minor-mode"))]) (lorem-ipsum . [(20140911 1408) nil "Insert dummy pseudo Latin text." single ((:keywords "tools" "language" "convenience"))]) (loop . [(20151228 321) nil "friendly imperative loop structures" single ((:keywords "loop" "while" "for each" "break" "continue"))]) (look-mode . [(20151211 1026) nil "quick file viewer for image and text file browsing" single nil]) (look-dired . [(20151115 1756) ((look-mode (1 0))) "Extensions to look-mode for dired buffers" single ((:url . "https://github.com/vapniks/look-dired") (:keywords "convenience"))]) (lolcode-mode . [(20111002 147) nil "Major mode for editing LOLCODE" single ((:url . "http://github.com/bodil/lolcode-mode") (:keywords "lolcode" "major" "mode"))]) (logview . [(20151030 1449) ((emacs (24 1))) "Major mode for viewing log files" single ((:url . "https://github.com/doublep/logview") (:keywords "files" "tools"))]) (logstash-conf . [(20150308 518) nil "basic mode for editing logstash configuration" single nil]) (logito . [(20120225 1255) ((eieio (1 3))) "logging library for Emacs" single ((:keywords "lisp" "tool"))]) (logalimacs . [(20131021 1129) ((popwin (0 6 2)) (popup (0 5 0)) (stem (20130120))) "Front-end to logaling-command for Ruby gems" single ((:url . "https://github.com/logaling/logalimacs") (:keywords "translation" "logaling-command"))]) (log4j-mode . [(20160108 1118) nil "major mode for viewing log files" single ((:url . "http://log4j-mode.sourceforge.net") (:keywords "tools"))]) (log4e . [(20150105 505) nil "provide logging framework for elisp" single ((:url . "https://github.com/aki2o/log4e") (:keywords "log"))]) (lodgeit . [(20150312 649) nil "Paste to a lodgeit powered pastebin" single ((:url . "https://github.com/ionrock/lodgeit-el") (:keywords "pastebin" "lodgeit"))]) (loccur . [(20160129 1222) ((cl-lib (0))) "Perform an occur-like folding in current buffer" single ((:url . "https://github.com/fourier/loccur") (:keywords "matching"))]) (loc-changes . [(20150302 848) nil "keep track of positions even after buffer changes" single ((:url . "http://github.com/rocky/emacs-loc-changes"))]) (load-theme-buffer-local . [(20120702 1336) nil "Install emacs24 color themes by buffer." single ((:url . "http://github.com/vic/color-theme-buffer-local") (:keywords "faces"))]) (llvm-mode . [(20150910 644) nil "Major mode for the LLVM assembler language." tar nil]) (livid-mode . [(20131116 544) ((skewer-mode (1 5 3)) (s (1 8 0))) "Live browser eval of JavaScript every time a buffer changes" single ((:url . "https://github.com/pandeiro/livid-mode"))]) (livescript-mode . [(20140612 2121) nil "Major mode for editing LiveScript files" single ((:url . "https://github.com/yhisamatsu/livescript-mode") (:keywords "languages" "livescript"))]) (lively . [(20120728 713) nil "Interactively updating text" single nil]) (live-py-mode . [(20160204 1714) ((emacs (24 1))) "Live Coding in Python" tar ((:url . "http://donkirkby.github.io/live-py-plugin/") (:keywords "live" "coding"))]) (live-code-talks . [(20150115 1423) ((emacs (24)) (cl-lib (0 5)) (narrowed-page-navigation (0 1))) "Support for slides with live code in them" single ((:keywords "docs" "multimedia"))]) (literate-starter-kit . [(20150730 1154) ((emacs (24 3))) "A literate starter kit to configure Emacs using Org-mode files." tar nil]) (literate-coffee-mode . [(20160114 434) ((coffee-mode (0 5 0))) "major-mode for Literate CoffeeScript" single ((:url . "https://github.com/syohex/emacs-literate-coffee-mode"))]) (litecoin-ticker . [(20160130 1907) nil "No description available." single nil]) (litable . [(20150908 709) ((dash (2 6 0))) "dynamic evaluation replacement with emacs" single ((:keywords "lisp"))]) (lit-mode . [(20141123 936) nil "Major mode for lit" single ((:keywords "languages" "tools"))]) (list-utils . [(20140508 1341) nil "List-manipulation utility functions" single ((:url . "http://github.com/rolandwalker/list-utils") (:keywords "extensions"))]) (list-unicode-display . [(20150219 101) ((cl-lib (0 5))) "Search for and list unicode characters by name" single ((:keywords "convenience"))]) (list-register . [(20130824 500) nil "List register" single nil]) (list-processes+ . [(20131117 1135) nil "Add process management to `list-processes'" single ((:url . "not distributed yet"))]) (list-packages-ext . [(20151115 916) ((s (1 6 0)) (ht (1 5 0)) (persistent-soft (0 8 6))) "Extras for list-packages" single ((:keywords "convenience" "tools"))]) (list-environment . [(20151226 1856) nil "A tabulated process environment editor" single ((:keywords "processes" "unix"))]) (lispyscript-mode . [(20130828 719) nil "Major mode for LispyScript code." single ((:url . "https://github.com/krisajenkins/lispyscript-mode") (:keywords "lisp" "languages"))]) (lispy . [(20160213 654) ((emacs (24 1)) (ace-window (0 9 0)) (iedit (0 97)) (swiper (0 4 0)) (hydra (0 13 4))) "vi-like Paredit" tar nil]) (lispxmp . [(20130824 507) nil "Automagic emacs lisp code annotation" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/download/lispxmp.el") (:keywords "lisp" "convenience"))]) (lisp-extra-font-lock . [(20150129 1316) nil "Highlight bound variables and quoted exprs." single ((:url . "https://github.com/Lindydancer/lisp-extra-font-lock") (:keywords "languages" "faces"))]) (linum-relative . [(20160117 2200) nil "display relative line number in emacs." single ((:url . "http://github.com/coldnew/linum-relative") (:keywords "converience"))]) (linum-off . [(20160217 1337) nil "Provides an interface for turning line-numbering off" single ((:url . "http://www.emacswiki.org/emacs/auto-indent-mode.el ") (:keywords "line" "numbering"))]) (linphone . [(20130524 409) nil "Emacs interface to Linphone" tar ((:url . "https://github.com/zabbal/emacs-linphone") (:keywords "comm"))]) (link-hint . [(20160128 1254) ((avy (0 3 0)) (emacs (24 1))) "Use avy to open or copy visible urls." single ((:url . "https://github.com/noctuid/link-hint.el") (:keywords "url"))]) (link . [(20140717 2029) nil "Hypertext links in text buffers" single ((:keywords "interface" "hypermedia"))]) (lingr . [(20100807 1031) nil "Lingr Client for GNU Emacs" single ((:url . "http://github.com/lugecy/lingr-el") (:keywords "chat" "client" "internet"))]) (light-soap-theme . [(20150607 745) ((emacs (24))) "Emacs 24 theme with a light background." single nil]) (lice . [(20151225 1022) nil "License And Header Template" tar ((:url . "https://github.com/buzztaiki/lice-el") (:keywords "template" "license" "tools"))]) (libmpdee . [(20160117 1501) nil "Client end library for mpd, a music playing daemon" single ((:keywords "music" "mpd"))]) (lib-requires . [(20151231 1410) nil "Commands to list Emacs Lisp library dependencies." single ((:url . "http://www.emacswiki.org/lib-requires.el") (:keywords "libraries" "files"))]) (lfe-mode . [(20151227 1831) nil "Lisp Flavoured Erlang mode" tar nil]) (lexbind-mode . [(20141027 729) nil "Puts the value of lexical-binding in the mode line" single ((:url . "https://github.com/spacebat/lexbind-mode") (:keywords "convenience" "lisp"))]) (levenshtein . [(20051013 1056) nil "Edit distance between two strings." single ((:keywords "lisp"))]) (leuven-theme . [(20160207 1043) nil "Awesome Emacs color theme on white background" single ((:url . "https://github.com/fniessen/emacs-leuven-theme") (:keywords "color" "theme"))]) (letcheck . [(20160202 1148) nil "Check the erroneous assignments in let forms" single ((:url . "https://github.com/Fuco1/letcheck") (:keywords "convenience"))]) (less-css-mode . [(20150511 319) nil "Major mode for editing LESS CSS files (lesscss.org)" single ((:url . "https://github.com/purcell/less-css-mode") (:keywords "less" "css" "mode"))]) (lentic-server . [(20150320 626) ((lentic (0 8)) (web-server (0 1 1))) "Web Server for Emacs Literate Source" single nil]) (lentic . [(20160110 905) ((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 nil]) (lenlen-theme . [(20150307 11) ((color-theme-solarized (20150110))) "a solarized-based kawaii light theme" single ((:url . "http://hins11.yu-yake.com/"))]) (lemon-mode . [(20130216 504) nil "A major mode for editing lemon grammar files" single ((:keywords "lemon"))]) (legalese . [(20100119 1348) nil "Add legalese to your program files" single ((:keywords "convenience"))]) (leerzeichen . [(20151105 2228) nil "Minor mode to display whitespace characters." single ((:url . "http://github.com/fgeller/leerzeichen.el") (:keywords "whitespace" "characters"))]) (ledger-mode . [(20160111 1834) nil "Helper code for use with the \"ledger\" command-line tool" tar nil]) (ldap-mode . [(20091203 1015) nil "major modes for editing LDAP schema and LDIF files" single ((:url . "http://www.loveshack.ukfsn.org/emacs") (:keywords "data"))]) (lavender-theme . [(20141115 2302) ((emacs (24 0))) "an Emacs 24 theme based on Lavender (tmTheme)" single ((:url . "https://github.com/emacsfodder/tmtheme-to-deftheme"))]) (launchctl . [(20150518 609) ((emacs (24 1))) "Interface to launchctl on Mac OS X." single ((:url . "http://github.com/pekingduck/launchctl-el") (:keywords "tools" "convenience"))]) (launch . [(20130619 1504) nil "launch files with OS-standard associated applications." single ((:url . "https://github.com/sfllaw/emacs-launch") (:keywords "convenience" "processes"))]) (latex-unicode-math-mode . [(20160209 917) nil "Input method for Unicode math symbols" tar ((:url . "https://github.com/Christoph-D/latex-unicode-math-mode"))]) (latex-preview-pane . [(20151023 1303) nil "Makes LaTeX editing less painful by providing a updatable preview pane" tar nil]) (latex-pretty-symbols . [(20151112 244) nil "Display many latex symbols as their unicode counterparts" single ((:url . "https://bitbucket.org/mortiferus/latex-pretty-symbols.el") (:keywords "convenience" "display"))]) (latex-math-preview . [(20160104 1658) nil "preview LaTeX mathematical expressions." single ((:url . "https://gitlab.com/latex-math-preview/latex-math-preview") (:keywords "latex" "tex"))]) (latex-extra . [(20160209 745) ((auctex (11 86 1)) (cl-lib (0 5))) "Adds several useful functionalities to LaTeX-mode." single ((:url . "http://github.com/Malabarba/latex-extra") (:keywords "tex"))]) (latest-clojure-libraries . [(20140314 617) nil "Clojure dependency resolver" single ((:url . "http://github.com/AdamClements/latest-clojure-libraries/"))]) (langtool . [(20160116 1654) ((cl-lib (0 3))) "Grammar check utility using LanguageTool" single ((:url . "https://github.com/mhayashi1120/Emacs-langtool") (:keywords "docs"))]) (langdoc . [(20150217 2245) ((cl-lib (0 2))) "Help to define help document mode for various languages" single ((:url . "https://github.com/tom-tan/langdoc/") (:keywords "convenience" "eldoc"))]) (lang-refactor-perl . [(20131122 1327) nil "Simple refactorings, primarily for Perl" single ((:url . "https://github.com/jplindstrom/emacs-lang-refactor-perl") (:keywords "languages" "refactoring" "perl"))]) (lacarte . [(20151231 1409) nil "Execute menu items as commands, with completion." single ((:url . "http://www.emacswiki.org/lacarte.el") (:keywords "menu-bar" "menu" "command" "help" "abbrev" "minibuffer" "keys" "completion" "matching" "local" "internal" "extensions"))]) (kwin . [(20150308 1112) nil "communicatewith the KWin window manager" single ((:url . "http://github.com/reactormonk/kwin-minor-mode"))]) (kv . [(20140108 734) nil "key/value data structure functions" single ((:keywords "lisp"))]) (kurecolor . [(20150423 2122) ((emacs (24 1)) (s (1 0))) "color editing goodies for Emacs" single nil]) (kroman . [(20150827 1640) nil "Korean hangul romanization" single ((:keywords "korean" "roman"))]) (kpm-list . [(20130131 148) nil "An emacs buffer list that tries to intelligently group together buffers." single ((:url . "https://github.com/KMahoney/kpm-list/"))]) (kooten-theme . [(20160214 451) ((emacs (24 1))) "Dark color theme" single ((:url . "http://github.com/kootenpv/emacs-kooten-theme") (:keywords "themes"))]) (kolon-mode . [(20140122 334) nil "Syntax highlighting for Text::Xslate's Kolon syntax" single ((:url . "https://github.com/samvtran/kolon-mode") (:keywords "xslate" "perl"))]) (know-your-http-well . [(20160208 1504) nil "Look up the meaning of HTTP headers, methods, relations, status codes" tar nil]) (kixtart-mode . [(20150611 904) ((emacs (24))) "major mode for Kixtart scripting files" single ((:url . "https://github.com/ryrun/kixtart-mode") (:keywords "languages"))]) (kivy-mode . [(20140524 557) nil "Emacs major mode for editing Kivy files" single nil]) (kite-mini . [(20150811 1129) ((dash (2 11 0)) (websocket (1 5))) "Remotely evaluate JavaScript in the WebKit debugger" single ((:url . "https://github.com/tungd/kite-mini.el") (:keywords "webkit"))]) (kite . [(20130201 1138) ((json (1 2)) (websocket (0 93 1))) "WebKit inspector front-end" tar ((:keywords "tools"))]) (killer . [(20120808 422) nil "kill and delete text" single ((:url . "http://github.com/tarsius/killer") (:keywords "convenience"))]) (kill-ring-search . [(20140422 855) nil "incremental search for the kill ring" single ((:url . "http://nschum.de/src/emacs/kill-ring-search/") (:keywords "convenience" "matching"))]) (kill-or-bury-alive . [(20160128 109) ((emacs (24 4)) (cl-lib (0 5))) "Precise control over buffer killing in Emacs" single ((:url . "https://github.com/mrkkrp/kill-or-bury-alive") (:keywords "buffer" "killing" "convenience"))]) (kibit-helper . [(20150508 833) ((s (0 8)) (emacs (24))) "Conveniently use the Kibit Leiningen plugin from Emacs" single ((:url . "http://www.github.com/brunchboy/kibit-helper") (:keywords "languages" "clojure" "kibit"))]) (kfg . [(20140908 2238) ((f (0 17 1))) "an emacs configuration system" single ((:url . "https://github.com/abingham/kfg"))]) (keyword-search . [(20150911 232) nil "browser keyword search from Emacs" single ((:url . "https://github.com/juhp/keyword-search") (:keywords "web" "search" "keyword"))]) (keyset . [(20150219 2130) ((dash (2 8 0)) (cl-lib (0 5))) "A small library for structuring key bindings." single ((:url . "https://github.com/HKey/keyset"))]) (keymap-utils . [(20151128 644) ((cl-lib (0 3))) "keymap utilities" single ((:url . "https://github.com/tarsius/keymap-utils") (:keywords "convenience" "extensions"))]) (keyfreq . [(20150924 2005) nil "track command frequencies" single nil]) (keydef . [(20090428 1231) nil "a simpler way to define keys, with kbd syntax" single ((:keywords "convenience" "lisp" "customization" "keyboard" "keys"))]) (keychain-environment . [(20150416 1258) nil "load keychain environment variables" single ((:url . "https://github.com/tarsius/keychain-environment") (:keywords "gnupg" "pgp" "ssh"))]) (key-seq . [(20150907 56) ((key-chord (0 6))) "map pairs of sequentially pressed keys to commands" single ((:url . "http://github.com/vlevit/key-seq.el") (:keywords "convenience" "keyboard" "keybindings"))]) (key-leap . [(20160109 1237) ((emacs (24 3))) "Leap between lines by typing keywords" single ((:url . "https://github.com/MartinRykfors/key-leap") (:keywords "point" "convenience"))]) (key-intercept . [(20140210 2349) nil "Intercept prefix keys" single ((:url . "http://github.com/tarao/key-intercept-el") (:keywords "keyboard"))]) (key-combo . [(20150324 739) nil "map key sequence to commands" single ((:url . "https://github.com/uk-ar/key-combo") (:keywords "keyboard" "input"))]) (key-chord . [(20151209 104) nil "map pairs of simultaneously pressed keys to commands" single ((:keywords "keyboard" "chord" "input"))]) (kerl . [(20150424 1305) nil "Emacs integration for kerl" single ((:url . "http://github.com/correl/kerl.el/") (:keywords "tools"))]) (karma . [(20150120 2158) ((pkg-info (0 4)) (emacs (24))) "Karma Test Runner Emacs Integration" single ((:url . "http://github.com/tonini/karma.el") (:keywords "language" "javascript" "js" "karma" "testing"))]) (kaomoji . [(20160119 743) ((emacs (24 3)) (helm-core (1 9 1))) "Input kaomoji superb easily" tar ((:url . "https://github.com/kuanyui/kaomoji.el") (:keywords "tools" "fun"))]) (kanji-mode . [(20150202 25) nil "View stroke order for kanji characters at cursor" tar ((:url . "http://github.com/wsgac/kanji-mode "))]) (kanban . [(20150930 917) nil "Parse org-todo headlines to use org-tables as Kanban tables" single ((:keywords "outlines" "convenience"))]) (kakapo-mode . [(20150906 2152) ((cl-lib (0 5))) "TABS (hard or soft) for indentation (leading whitespace), and SPACES for alignment." single ((:url . "https://github.com/listx/kakapo-mode") (:keywords "indentation"))]) (kaesar-mode . [(20160128 208) ((kaesar (0 1 4)) (cl-lib (0 3))) "Encrypt/Decrypt buffer by AES with password." single ((:url . "https://github.com/mhayashi1120/Emacs-kaesar") (:keywords "data" "convenience"))]) (kaesar-file . [(20160128 208) ((kaesar (0 1 1))) "Encrypt/Decrypt file by AES with password." single ((:url . "https://github.com/mhayashi1120/Emacs-kaesar") (:keywords "data" "files"))]) (kaesar . [(20160128 208) ((cl-lib (0 3))) "Another AES algorithm encrypt/decrypt string with password." single ((:url . "https://github.com/mhayashi1120/Emacs-kaesar") (:keywords "data"))]) (jvm-mode . [(20150422 8) ((dash (2 6 0)) (emacs (24))) "Monitor and manage your JVMs" single ((:url . "https://github.com/martintrojer/jvm-mode.el") (:keywords "convenience"))]) (jumplist . [(20151119 1945) ((cl-lib (0 5))) "Jump like vim jumplist or ex jumplist" single ((:url . "https://github.com/ganmacs/jumplist") (:keywords "jumplist" "vim"))]) (jump-to-line . [(20130122 853) nil "Jump to line number at point." single ((:keywords "jump" "line" "back" "file" "ruby" "csharp" "python" "perl"))]) (jump-char . [(20150108 1235) nil "navigation by char" single ((:url . "https://github.com/lewang/jump-char"))]) (jump . [(20151009 129) ((findr (0 7)) (inflections (1 1))) "build functions which contextually jump between files" single ((:url . "http://github.com/eschulte/jump.el/tree/master") (:keywords "project" "convenience" "navigation"))]) (jumblr . [(20140908 1352) ((s (1 8 0)) (dash (2 2 0))) "an anagram game for emacs" tar ((:url . "https://github.com/mkmcc/jumblr") (:keywords "anagram" "word game" "games"))]) (julia-shell . [(20151104 1052) ((julia-mode (0 3))) "Major mode for an inferior Julia shell" tar nil]) (julia-mode . [(20150912 800) nil "Major mode for editing Julia source code" single ((:url . "https://github.com/JuliaLang/julia") (:keywords "languages"))]) (jtags . [(20160211 1229) nil "enhanced tags functionality for Java development" tar ((:url . "http://jtags.sourceforge.net") (:keywords "languages" "tools"))]) (jsx-mode . [(20130908 1024) nil "major mode for JSX" single ((:url . "https://github.com/jsx/jsx-mode.el"))]) (jst . [(20150604 438) ((s (1 9)) (f (0 17)) (dash (2 10)) (pcache (0 3)) (emacs (24 4))) "JS test mode" single ((:url . "https://github.com/cheunghy/jst-mode") (:keywords "js" "javascript" "jasmine" "coffee" "coffeescript"))]) (jss . [(20130508 723) ((emacs (24 1)) (websocket (0)) (js2-mode (0))) "An emacs interface to webkit and mozilla debuggers" tar ((:keywords "languages"))]) (json-snatcher . [(20150511 2047) ((emacs (24))) "Grabs the path to JSON values in a JSON file" single ((:url . "http://github.com/sterlingg/json-snatcher"))]) (json-rpc . [(20150830 1401) ((emacs (24 1)) (cl-lib (0 5))) "JSON-RPC library" single ((:url . "https://github.com/skeeto/elisp-json-rpc"))]) (json-reformat . [(20160212 53) nil "Reformatting tool for JSON" single ((:url . "https://github.com/gongo/json-reformat") (:keywords "json"))]) (json-mode . [(20151116 2000) ((json-reformat (0 0 5)) (json-snatcher (1 0 0))) "Major mode for editing JSON files" single ((:url . "https://github.com/joshwnj/json-mode"))]) (jsfmt . [(20150727 1525) nil "Interface to jsfmt command for javascript files" single ((:url . "https://github.com/brettlangdon/jsfmt.el"))]) (jscs . [(20151015 1049) ((emacs (24 1)) (cl-lib (0 5))) "Consistent JavaScript editing using JSCS" single ((:url . "https://github.com/papaeye/emacs-jscs") (:keywords "languages" "convenience"))]) (js3-mode . [(20150902 949) nil "An improved JavaScript editing mode" tar ((:keywords "javascript" "languages"))]) (js2-refactor . [(20151029 507) ((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 nil]) (js2-mode . [(20160124 1132) ((emacs (24 1)) (cl-lib (0 5))) "Improved JavaScript editing mode" tar ((:url . "https://github.com/mooz/js2-mode/") (:keywords "languages" "javascript"))]) (js2-highlight-vars . [(20150914 108) ((js2-mode (20150908))) "highlight occurrences of the variable under cursor" single ((:url . "http://mihai.bazon.net/projects/editing-javascript-with-emacs-js2-mode/js2-highlight-vars-mode"))]) (js2-closure . [(20141027 1550) ((js2-mode (20140114))) "Google Closure dependency manager" single ((:url . "http://github.com/jart/js2-closure"))]) (js-doc . [(20160208 1707) nil "Insert JsDoc style comment easily" single ((:url . "https://github.com/mooz/js-doc") (:keywords "document" "comment"))]) (js-comint . [(20151126 1838) ((nvm (0 2 0))) "Run a JavaScript interpreter in an inferior process window." single ((:url . "https://github.com/redguardtoo/js-comint") (:keywords "javascript" "node" "inferior-mode" "convenience"))]) (jquery-doc . [(20150812 58) nil "jQuery api documentation interface for emacs" tar ((:keywords "docs" "jquery"))]) (jq-mode . [(20160217 1631) ((emacs (24 3))) "Edit jq scripts." tar ((:url . "https://github.com/ljos/jq-mode"))]) (jonprl-mode . [(20151203 142) ((emacs (24 3)) (cl-lib (0 5)) (yasnippet (0 8 0))) "A major mode for editing JonPRL files" tar ((:keywords "languages"))]) (jknav . [(20121006 1325) nil "Automatically enable j/k keys for line-based navigation" single ((:keywords "keyboard" "navigation"))]) (jist . [(20151228 1550) ((emacs (24 4)) (pkg-info (0 4)) (dash (2 12 0)) (let-alist (1 0 4)) (magit (2 1 0)) (request (0 2 0))) "Gist integration" single ((:url . "https://github.com/emacs-pe/jist.el") (:keywords "convenience"))]) (jira-markup-mode . [(20150601 1409) nil "Emacs Major mode for JIRA-markup-formatted text files" single ((:url . "https://github.com/mnuessler/jira-markup-mode") (:keywords "jira" "markup"))]) (jira . [(20131210 1022) nil "Connect to JIRA issue tracking software" single nil]) (jinja2-mode . [(20141128 207) nil "A major mode for jinja2" single nil]) (jg-quicknav . [(20160216 2035) ((s (1 9 0)) (cl-lib (0 5))) "Quickly navigate the file system to find a file." single ((:url . "https://github.com/jeffgran/jg-quicknav") (:keywords "navigation"))]) (jenkins-watch . [(20121004 1626) nil "Watch continuous integration build status" single ((:url . "https://github.com/ataylor284/jenkins-watch"))]) (jenkins . [(20151114 1908) ((dash (2 12)) (emacs (24 3)) (json (1 4))) "Minimalistic Jenkins client for Emacs" single ((:keywords "jenkins" "convenience"))]) (jekyll-modes . [(20141117 514) ((polymode (0 2))) "Major modes (markdown and HTML) for authoring Jekyll content" single ((:url . "https://github.com/fred-o/jekyll-modes") (:keywords "docs"))]) (jedi-direx . [(20140310 236) ((jedi (0 1 2)) (direx (0 1 -3))) "Tree style source code viewer for Python buffer" single nil]) (jedi-core . [(20151214 705) ((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 nil]) (jedi . [(20151214 705) ((emacs (24)) (jedi-core (0 2 2)) (auto-complete (1 4))) "a Python auto-completion for Emacs" single nil]) (jdee . [(20160207 28) ((emacs (24 3))) "Java Development Environment for Emacs" tar ((:url . "http://github.com/jdee-emacs/jdee") (:keywords "java" "tools"))]) (jbeans-theme . [(20151217 754) ((emacs (24))) "Jbeans theme for GNU Emacs 24 (deftheme)" single ((:url . "https://github.com/synic/jbeans-emacs"))]) (jazz-theme . [(20150910 844) nil "A warm color theme for Emacs 24." single ((:url . "https://github.com/donderom/jazz-theme"))]) (jaword . [(20150325 718) ((tinysegmenter (0 1))) "Minor-mode for handling Japanese words better" single ((:url . "http://hins11.yu-yake.com/"))]) (javap-mode . [(20120223 1408) nil "Javap major mode" single ((:url . "http://github.com/hiredman/javap-mode"))]) (javadoc-lookup . [(20160213 1631) ((cl-lib (0 3))) "Javadoc Emacs integration with Maven" tar ((:url . "https://github.com/skeeto/javadoc-lookup"))]) (java-snippets . [(20140727 2236) ((yasnippet (0 8 0))) "Yasnippets for Java" tar ((:url . "https://github.com/nekop/yasnippet-java-mode"))]) (java-imports . [(20160127 729) ((emacs (24 4)) (s (1 10 0)) (pcache (0 3 2))) "Code for dealing with Java imports" single ((:url . "http://www.github.com/dakrone/emacs-java-imports") (:keywords "java"))]) (jaunte . [(20130413 219) nil "Emacs Hit a Hint" single nil]) (jasminejs-mode . [(20150526 1705) nil "A minor mode for manipulating jasmine test files" tar ((:url . "https://github.com/stoltene2/jasminejs-mode") (:keywords "javascript" "jasmine"))]) (jar-manifest-mode . [(20150329 1533) nil "Major mode to edit JAR manifest files" single ((:url . "http://github.com/omajid/jar-manifest-mode") (:keywords "convenience" "languages"))]) (jape-mode . [(20140903 806) nil "An Emacs editing mode mode for GATE's JAPE files" single ((:url . "http://github.com/tanzoniteblack/jape-mode") (:keywords "languages" "jape" "gate"))]) (japanlaw . [(20160129 20) ((cl-lib (0 5))) "Japan law from law.e-gov.go.jp" single ((:keywords "docs" "help"))]) (japanese-holidays . [(20150208 1737) ((cl-lib (0 3))) "calendar functions for the Japanese calendar" single ((:url . "https://github.com/emacs-jp/japanese-holidays") (:keywords "calendar"))]) (jammer . [(20151213 614) nil "Punish yourself for using Emacs inefficiently" single ((:url . "https://github.com/wasamasa/jammer") (:keywords "games"))]) (jade-mode . [(20150801 944) nil "Major mode for editing .jade files" single ((:url . "https://github.com/brianc/jade-mode"))]) (jack-connect . [(20141207 407) nil "Manage jack connections within Emacs" single nil]) (jabber-otr . [(20150918 444) ((emacs (24)) (jabber (0 8 92))) "Off-The-Record messaging for jabber.el" tar ((:url . "https://github.com/legoscia/emacs-jabber-otr/") (:keywords "comm"))]) (jabber . [(20160124 552) ((fsm (0 2))) "A Jabber client for Emacs." tar nil]) (j-mode . [(20140702 809) nil "Major mode for editing J programs" tar ((:url . "http://github.com/zellio/j-mode") (:keywords "j" "langauges"))]) (iy-go-to-char . [(20141029 849) nil "Go to next CHAR which is similar to \"f\" and \"t\" in vim" single ((:url . "https://github.com/doitian/iy-go-to-char") (:keywords "navigation" "search"))]) (ix . [(20131027 929) ((grapnel (0 5 3))) "Emacs client for http://ix.io pastebin" single ((:url . "http://www.github.com/theanalyst/ix.el"))]) (ivs-edit . [(20140720 346) ((emacs (24 3)) (dash (2 6 0)) (cl-lib (1 0))) "IVS (Ideographic Variation Sequence) editing tool" tar ((:url . "http://github.com/kawabata/ivs-edit") (:keywords "text"))]) (ivariants . [(20140720 2127) ((emacs (24 3)) (ivs-edit (1 0))) "Ideographic variants editor and browser" tar ((:url . "http://github.com/kawabata/ivariants") (:keywords "i18n" "languages"))]) (iterator . [(20150321 2125) ((emacs (24)) (cl-lib (0 5))) "A library to create and use elisp iterators objects." single ((:url . "https://github.com/thierryvolpiatto/iterator"))]) (itail . [(20151113 835) nil "An interactive tail mode" single ((:url . "https://github.com/re5et/itail") (:keywords "tail"))]) (iss-mode . [(20141001 1213) nil "Mode for InnoSetup install scripts" single nil]) (isgd . [(20150414 236) nil "Shorten URLs using the isgd.com shortener service" single ((:url . "https://github.com/chmouel/isgd.el"))]) (isend-mode . [(20130419 258) nil "Interactively send parts of an Emacs buffer to an interpreter" single ((:url . "https://github.com/ffevotte/isend-mode.el"))]) (isearch-symbol-at-point . [(20130728 1521) nil "Use isearch to search for the symbol at point" single ((:url . "https://github.com/re5et/isearch-symbol-at-point") (:keywords "isearch"))]) (isearch-prop . [(20151231 1407) nil "Search text-property or overlay-property contexts." single ((:url . "http://www.emacswiki.org/isearch-prop.el") (:keywords "search" "matching" "invisible" "thing" "help"))]) (isearch-dabbrev . [(20141223 2222) ((cl-lib (0 5))) "Use dabbrev in isearch" single ((:url . "https://github.com/Dewdrops/isearch-dabbrev") (:keywords "dabbrev" "isearch"))]) (isearch+ . [(20160212 1323) nil "Extensions to `isearch.el' (incremental search)." single ((:url . "http://www.emacswiki.org/isearch+.el") (:keywords "help" "matching" "internal" "local"))]) (irony-eldoc . [(20141226 2219) ((emacs (24)) (cl-lib (0 5)) (irony (0 1))) "irony-mode support for eldoc-mode" single ((:url . "https://github.com/ikirill/irony-eldoc") (:keywords "c" "c++" "objc" "convenience" "tools"))]) (irony . [(20160203 1207) ((cl-lib (0 5)) (json (1 2))) "C/C++ minor mode powered by libclang" tar ((:url . "https://github.com/Sarcasm/irony-mode") (:keywords "c" "convenience" "tools"))]) (irfc . [(20130824 507) nil "Interface for IETF RFC document." single ((:url . "http://www.emacswiki.org/emacs/download/irfc.el") (:keywords "rfc" "ietf"))]) (iregister . [(20150515 1407) nil "Interactive register commands for Emacs." tar ((:url . "https://github.com/atykhonov/iregister.el") (:keywords "convenience"))]) (ir-black-theme . [(20130302 2355) nil "Port of ir-black theme" single ((:keywords "faces"))]) (ipretty . [(20140406 2220) nil "Interactive Emacs Lisp pretty-printing" single ((:url . "https://github.com/steckerhalter/ipretty") (:keywords "pretty-print" "elisp" "buffer"))]) (iplayer . [(20150101 255) nil "Browse and download BBC TV/radio shows" single ((:url . "https://github.com/csrhodes/iplayer-el") (:keywords "multimedia" "bbc"))]) (iodine-theme . [(20151031 939) ((emacs (24))) "A light emacs color theme" single ((:url . "https://github.com/srdja/iodine-theme") (:keywords "themes"))]) (ioccur . [(20130821 2248) nil "Incremental occur" single ((:url . "https://github.com/thierryvolpiatto/ioccur"))]) (io-mode-inf . [(20140128 1134) nil "Interaction with an Io interpreter." single ((:url . "https://github.com/slackorama/io-emacs") (:keywords "io" "languages"))]) (io-mode . [(20140814 321) nil "Major mode to edit Io language files in Emacs" single ((:url . "https://github.com/superbobry/io-mode") (:keywords "languages" "io"))]) (interval-tree . [(20130325 707) ((dash (1 1 0))) "Interval tree data structure for 1D range queries" single ((:url . "https://github.com/Fuco1/interval-tree") (:keywords "extensions" "data structure"))]) (interval-list . [(20150327 1018) ((dash (2 4 0)) (cl-lib (0 5)) (emacs (24 4))) "Interval list data structure for 1D selections" single ((:url . "https://github.com/Fuco1/interval-list") (:keywords "extensions" "data structure"))]) (interleave . [(20160208 237) nil "Interleaving text books since 2015" single ((:url . "https://github.com/rudolfochrist/interleave"))]) (interaction-log . [(20150603 1010) ((cl-lib (0))) "exhaustive log of interactions with Emacs" single ((:url . "https://github.com/michael-heerdegen/interaction-log.el") (:keywords "convenience"))]) (instapaper . [(20130104 621) nil "add URLs to instapaper from emacs" single ((:url . "htts://bitbucket.org/jfm/emacs-instapaper"))]) (insfactor . [(20141116 1602) nil "Client for a Clojure project with insfactor in it" single ((:url . "http://github.com/duelinmarkers/insfactor.el") (:keywords "clojure"))]) (insert-shebang . [(20141119 427) nil "Insert shebang line automatically." single ((:url . "http://github.com/psachin/insert-shebang") (:keywords "shebang" "tool" "convenience"))]) (inlineR . [(20120520 732) nil "insert Tag for inline image of R graphics" single ((:url . "https://github.com/myuhe/inlineR.el") (:keywords "convenience" "iimage.el" "cacoo.el"))]) (inline-crypt . [(20130409 507) nil "Simple inline encryption via openssl" tar nil]) (inkpot-theme . [(20120505 708) nil "port of vim's inkpot theme" single ((:url . "http://github.com/siovan/emacs24-inkpot.git"))]) (initsplit . [(20160113 653) nil "code to split customizations into different files" single ((:url . "http://www.gci-net.com/users/j/johnw/emacs.html") (:keywords "lisp"))]) (init-open-recentf . [(20151106 2023) ((emacs (24 4))) "Open recentf immediately after Emacs is started" single ((:keywords "file" "recentf" "after-init-hook"))]) (init-loader . [(20141030 2333) nil "Loader for configuration files" single ((:url . "https://github.com/emacs-jp/init-loader/"))]) (inform7-mode . [(20131009 2354) ((sws-mode (0 1))) "Major mode for editing Inform 7 source files" single ((:keywords "inform" "inform7" "interactive fiction"))]) (info+ . [(20151231 1403) nil "Extensions to `info.el'." single ((:url . "http://www.emacswiki.org/info+.el") (:keywords "help" "docs" "internal"))]) (inflections . [(20121016 157) nil "convert english words between singular and plural" single ((:url . "https://github.com/eschulte/jump.el") (:keywords "ruby" "rails" "languages" "oop"))]) (inf-ruby . [(20151104 1237) nil "Run a Ruby process in a buffer" single ((:url . "http://github.com/nonsequitur/inf-ruby") (:keywords "languages" "ruby"))]) (inf-php . [(20130414 21) ((php-mode (1 5 0))) "Run a php interactive shell in a buffer" single ((:url . "https://github.com/taksatou/inf-php") (:keywords "languages" "php"))]) (inf-mongo . [(20131216 228) nil "Run a MongoDB shell process in a buffer" single ((:url . "http://github.com/tobiassvn/inf-mongo") (:keywords "databases" "mongodb"))]) (inf-clojure . [(20160206 819) ((emacs (24 1)) (clojure-mode (5 1))) "Run an external Clojure process in an Emacs buffer" single ((:url . "http://github.com/clojure-emacs/inf-clojure") (:keywords "processes" "clojure"))]) (indy . [(20150610 1006) nil "A minor mode and EDSL to manage your mode's indentation rules." single ((:keywords "convenience" "matching" "tools"))]) (indicators . [(20130217 1405) nil "Display the buffer relative location of line in the fringe." single ((:url . "https://github.com/Fuco1/indicators.el") (:keywords "fringe" "frames"))]) (indent-guide . [(20151119 717) nil "show vertical lines to guide indentation" single ((:url . "http://hins11.yu-yake.com/"))]) (import-popwin . [(20150716 233) ((popwin (0 6)) (cl-lib (0 5))) "popwin buffer near by import statements with popwin" single ((:url . "https://github.com/syohex/emacs-import-popwin"))]) (import-js . [(20160103 1431) ((emacs (24))) "Import Javascript dependencies" single ((:url . "http://github.com/trotzig/import-js/") (:keywords "javascript"))]) (impatient-mode . [(20150501 247) ((cl-lib (0 3)) (simple-httpd (1 4 0)) (htmlize (1 40))) "Serve buffers live over HTTP" tar ((:url . "https://github.com/netguy204/imp.el"))]) (immutant-server . [(20140311 1508) nil "Run your Immutant server in Emacs" single ((:url . "http://www.github.com/leathekd/immutant-server.el"))]) (imgur . [(20120307 225) ((anything (1 287))) "imgur client for Emacs" single ((:keywords "multimedia" "convenience"))]) (imgix . [(20141226 1332) ((json (1 2)) (ht (2 0)) (s (1 9 0)) (dash (2 9 0)) (cl-lib (0 5))) "Major mode for editing images in emacs via imgix" tar ((:keywords "images" "image processing" "image editing" "sepia" "blur"))]) (imenus . [(20150107 939) ((cl-lib (0 5))) "Imenu for multiple buffers" single ((:url . "https://gitorious.org/alezost-emacs/imenus") (:keywords "tools" "convenience"))]) (imenu-list . [(20160211 341) ((cl-lib (0 5))) "Show imenu entries in a seperate buffer" single ((:url . "https://github.com/bmag/imenu-list"))]) (imenu-anywhere . [(20160213 532) ((cl-lib (0 5))) "ido/helm imenu tag selection across all buffers with the same mode" single ((:url . "https://github.com/vitoshka/imenu-anywhere") (:keywords "ido" "imenu" "tags"))]) (imenu+ . [(20151231 1401) nil "Extensions to `imenu.el'." single ((:url . "http://www.emacswiki.org/imenu+.el") (:keywords "tools" "menus"))]) (imakado . [(20141024 223) nil "imakado's usefull macros and functions" single ((:url . "https://github.com/imakado/emacs-imakado") (:keywords "convenience"))]) (image-dired+ . [(20150429 2244) ((cl-lib (0 3))) "Image-dired extensions" single ((:url . "https://github.com/mhayashi1120/Emacs-image-diredx") (:keywords "extensions" "multimedia"))]) (image-archive . [(20150620 1832) ((emacs (24)) (cl-lib (0 5))) "Image thumbnails in archive file with non-blocking" single ((:url . "https://github.com/mhayashi1120/Emacs-image-archive") (:keywords "multimedia"))]) (image+ . [(20150707 916) ((cl-lib (0 3))) "Image manipulate extensions for Emacs" single ((:url . "https://github.com/mhayashi1120/Emacs-imagex") (:keywords "multimedia" "extensions"))]) (igv . [(20141210 427) nil "Control Integrative Genomic Viewer within Emacs" single nil]) (igrep . [(20130824 507) nil "An improved interface to `grep` and `find`" single ((:keywords "tools" "processes" "search"))]) (ignoramus . [(20150216 1342) nil "Ignore backups, build files, et al." single ((:url . "http://github.com/rolandwalker/ignoramus") (:keywords "convenience" "tools"))]) (iflipb . [(20141123 1316) nil "interactively flip between recently visited buffers" single ((:url . "http://git.rosdahl.net/?p=joel/iflipb.git"))]) (ietf-docs . [(20150928 257) nil "Fetch, Cache and Load IETF documents" single ((:url . "https://github.com/choppsv1/ietf-docs") (:keywords "ietf" "rfc"))]) (iedit . [(20150915 2022) nil "Edit multiple regions in the same way simultaneously." tar ((:url . "http://www.emacswiki.org/emacs/Iedit") (:keywords "occurrence" "region" "simultaneous" "refactoring"))]) (ids-edit . [(20151128 435) ((emacs (24 3))) "IDS (Ideographic Description Sequence) editing tool" tar ((:url . "http://github.com/kawabata/ids-edit") (:keywords "text"))]) (idris-mode . [(20151030 407) ((emacs (24)) (prop-menu (0 1)) (cl-lib (0 5))) "Major mode for editing Idris code" tar ((:url . "https://github.com/idris-hackers/idris-mode") (:keywords "languages"))]) (idomenu . [(20141123 1320) nil "imenu tag selection a la ido" single nil]) (ido-yes-or-no . [(20160217 1617) ((ido-completing-read+ (0))) "Use Ido to answer yes-or-no questions" single ((:url . "https://github.com/DarwinAwardWinner/ido-yes-or-no"))]) (ido-vertical-mode . [(20151003 1833) nil "Makes ido-mode display vertically." single ((:url . "https://github.com/creichert/ido-vertical-mode.el") (:keywords "convenience"))]) (ido-ubiquitous . [(20160217 1053) ((emacs (24 1)) (ido-completing-read+ (3 11)) (cl-lib (0 5))) "Use ido (nearly) everywhere." single ((:url . "https://github.com/DarwinAwardWinner/ido-ubiquitous") (:keywords "convenience" "completion" "ido"))]) (ido-springboard . [(20150505 1011) nil "Temporarily change default-directory for one command" single ((:url . "https://github.com/jwiegley/springboard") (:keywords "ido"))]) (ido-sort-mtime . [(20131117 530) nil "Sort Ido's file list by modification time" single ((:keywords "convenience" "files"))]) (ido-skk . [(20151111 150) ((emacs (24 4)) (ddskk (20150912 1820))) "ido interface for skk henkan" single ((:url . "https://github.com/tsukimizake/ido-skk") (:keywords "languages"))]) (ido-select-window . [(20131220 1247) ((emacs (24 1))) "Select a window using ido and buffer names" single ((:url . "https://github.com/pjones/ido-select-window"))]) (ido-occur . [(20160114 1113) ((dash (2 11 0))) "Yet another `occur' with `ido'." single ((:url . "https://github.com/danil/ido-occur") (:keywords "inner" "buffer" "search"))]) (ido-occasional . [(20150214 448) ((emacs (24 1))) "Use ido where you choose." single ((:url . "https://github.com/abo-abo/ido-occasional") (:keywords "completion"))]) (ido-migemo . [(20150921 1544) ((migemo (1 9 1))) "Migemo plug-in for Ido" single ((:url . "https://github.com/myuhe/ido-migemo.el") (:keywords "files"))]) (ido-load-library . [(20140611 900) ((persistent-soft (0 8 8)) (pcache (0 2 3))) "Load-library alternative using ido-completing-read" single ((:url . "http://github.com/rolandwalker/ido-load-library") (:keywords "maint" "completion"))]) (ido-hacks . [(20150331 1209) nil "Put more IDO in your IDO" single ((:keywords "convenience"))]) (ido-grid-mode . [(20160122 339) ((emacs (24 4))) "Display ido-prospects in the minibuffer in a grid." single ((:url . "https://github.com/larkery/ido-grid-mode.el") (:keywords "convenience"))]) (ido-gnus . [(20140216 846) ((gnus (5 13))) "Access gnus groups or servers using ido" single ((:url . "https://github.com/vapniks/ido-gnus") (:keywords "comm"))]) (ido-exit-target . [(20150904 737) ((emacs (24 4))) "Commands and keys for selecting other window and frame targets within ido" single ((:url . "https://github.com/waymondo/ido-exit-target") (:keywords "convenience" "tools" "extensions"))]) (ido-describe-bindings . [(20160105 53) ((dash (2 11 0))) "Yet another `describe-bindings' with `ido'." single ((:url . "https://github.com/danil/ido-describe-bindings") (:keywords "help"))]) (ido-completing-read+ . [(20160217 1053) ((emacs (24 1)) (cl-lib (0 5))) "A completing-read-function using ido" single ((:url . "https://github.com/DarwinAwardWinner/ido-ubiquitous") (:keywords "ido" "completion" "convenience"))]) (ido-complete-space-or-hyphen . [(20130228 208) nil "Complete SPACE or HYPHEN when type SPACE in ido" single ((:url . "https://github.com/doitian/ido-complete-space-or-hyphen") (:keywords "ido" "completion"))]) (ido-clever-match . [(20151011 1026) ((emacs (24 4)) (cl-lib (0 5))) "Alternative matcher for ido." single ((:url . "https://github.com/Bogdanp/ido-clever-match") (:keywords "ido" "flex"))]) (ido-at-point . [(20151021 57) ((emacs (24))) "ido-style completion-at-point" single ((:url . "https://github.com/katspaugh/ido-at-point") (:keywords "convenience" "abbrev"))]) (idle-require . [(20090715 1503) nil "load elisp libraries while Emacs is idle" single ((:url . "http://nschum.de/src/emacs/idle-require/") (:keywords "internal"))]) (idle-highlight-mode . [(20120920 948) nil "highlight the word the point is on" single ((:url . "http://www.emacswiki.org/cgi-bin/wiki/IdleHighlight") (:keywords "convenience"))]) (identica-mode . [(20130204 1453) nil "Major mode API client for status.net open microblogging" tar ((:url . "http://blog.gabrielsaldana.org/identica-mode-for-emacs/") (:keywords "identica" "web"))]) (idea-darkula-theme . [(20160208 2311) ((emacs (24 1))) "Color theme based on IntelliJ IDEA Darkula color theme" single ((:url . "http://github.com/fourier/idea-darkula-theme") (:keywords "themes"))]) (id-manager . [(20150605 2039) nil "id-password management" single ((:keywords "password" "convenience"))]) (icomplete+ . [(20151231 1400) nil "Extensions to `icomplete.el'." single ((:url . "http://www.emacswiki.org/icomplete+.el") (:keywords "help" "abbrev" "internal" "extensions" "local" "completion" "matching"))]) (icicles . [(20160131 1003) nil "Minibuffer input completion and cycling." tar ((:url . "http://www.emacswiki.org/icicles.el") (:keywords "extensions" "help" "abbrev" "local" "minibuffer" "projects" "keys" "apropos" "completion" "matching" "regexp" "command"))]) (ibuffer-vc . [(20150714 1320) ((cl-lib (0 2))) "Group ibuffer's list by VC project, or show VC status" single ((:url . "http://github.com/purcell/ibuffer-vc") (:keywords "themes"))]) (ibuffer-tramp . [(20151118 939) nil "Group ibuffer's list by TRAMP connection" single ((:url . "http://github.com/svend/ibuffer-tramp") (:keywords "convenience"))]) (ibuffer-rcirc . [(20150215 1318) ((cl-lib (0 2))) "Ibuffer integration for rcirc" single ((:url . "https://github.com/fgallina/ibuffer-rcirc") (:keywords "buffer" "convenience" "comm"))]) (ibuffer-projectile . [(20150121 837) ((projectile (0 11 0))) "Group ibuffer's list by projectile root" single ((:url . "http://github.com/purcell/ibuffer-projectile") (:keywords "themes"))]) (ibuffer-git . [(20110508 31) nil "show git status in ibuffer column" single ((:keywords "convenience"))]) (iasm-mode . [(20131004 1644) nil "interactive assembly major mode." single ((:url . "https://github.com/RAttab/iasm-mode") (:keywords ":" "tools"))]) (i2b2-mode . [(20140709 1804) nil "Highlights corresponding PHI data in the text portion of an i2b2 XML Document." single ((:keywords "xml" "phi" "i2b2" "deidi2b2"))]) (hydra . [(20160126 57) ((cl-lib (0 5))) "Make bindings that stick around." tar ((:url . "https://github.com/abo-abo/hydra") (:keywords "bindings"))]) (hyde . [(20150615 1025) nil "Major mode to help create and manage Jekyll blogs" tar nil]) (hydandata-light-theme . [(20160122 1753) nil "A light color theme that is easy on your eyes" single ((:keywords "color-theme" "theme"))]) (hyai . [(20160216 625) ((cl-lib (0 5)) (emacs (24))) "Haskell Yet Another Indentation" single ((:url . "https://github.com/iquiw/hyai"))]) (hy-mode . [(20151025 543) nil "Major mode for Hy code" single ((:url . "http://github.com/hylang/hy-mode") (:keywords "languages" "lisp"))]) (hungry-delete . [(20151203 1314) nil "hungry delete minor mode" single ((:url . "http://github.com/nflath/hungry-delete"))]) (httprepl . [(20141101 1034) ((s (1 9 0)) (dash (2 5 0)) (emacs (24))) "An HTTP REPL" single ((:url . "https://github.com/gregsexton/httprepl.el") (:keywords "http" "repl"))]) (httpcode . [(20121001 2045) nil "explains the meaning of an HTTP status code" single ((:url . "http://github.com/rspivak/httpcode.el"))]) (http-twiddle . [(20151121 544) nil "send & twiddle & resend HTTP requests" single ((:url . "https://github.com/hassy/http-twiddle/blob/master/http-twiddle.el") (:keywords "http" "rest" "soap"))]) (http-post-simple . [(20131010 2058) nil "HTTP POST requests using the url library" single ((:keywords "comm" "data" "processes" "hypermedia"))]) (http . [(20160126 2025) ((emacs (24 4)) (request (0 2 0))) "Yet another HTTP client" single ((:url . "https://github.com/emacs-pe/http.el") (:keywords "convenience"))]) (htmlize . [(20130207 1202) nil "Convert buffer text and decorations to HTML." single ((:keywords "hypermedia" "extensions"))]) (html-to-markdown . [(20151105 40) ((cl-lib (0 5))) "HTML to Markdown converter written in Emacs-lisp." single ((:url . "http://github.com/Bruce-Connor/html-to-markdown") (:keywords "tools" "wp" "languages"))]) (html-script-src . [(20120403 1115) nil "Insert