initial
This commit is contained in:
90
ac-comphist.dat
Normal file
90
ac-comphist.dat
Normal file
@@ -0,0 +1,90 @@
|
||||
((("this" .
|
||||
[1 0 0 0])
|
||||
("Error" .
|
||||
[1 0 0 0 0])
|
||||
("new" .
|
||||
[1 0 0])
|
||||
("throw" .
|
||||
[1 0 0 0 0])
|
||||
("startStep" .
|
||||
[3 0 0 0 0 0 0 0 0])
|
||||
("_startStepDefinition" .
|
||||
[0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])
|
||||
("stepDefinition" .
|
||||
[1 0 0 0 0 1 0 0 0 0 0 0 0 2])
|
||||
("let" .
|
||||
[1 0 0])
|
||||
("id" .
|
||||
[4 0])
|
||||
("for" .
|
||||
[1 0 0])
|
||||
("null" .
|
||||
[3 0 0 0])
|
||||
("step" .
|
||||
[2 0 0 0])
|
||||
("if" .
|
||||
[5 0])
|
||||
("isStart" .
|
||||
[1 0 2 2 0 0 0])
|
||||
("type" .
|
||||
[2 0 0 0])
|
||||
("return" .
|
||||
[7 0 0 0 0 0])
|
||||
("exports" .
|
||||
[1 0 0 0 0 0 0])
|
||||
("require" .
|
||||
[2 0 0 0 0 0 0])
|
||||
("StepDefinitionTypes" .
|
||||
[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])
|
||||
("END" .
|
||||
[4 0 0])
|
||||
("S" .
|
||||
[1])
|
||||
("START" .
|
||||
[4 0 0 0 0])
|
||||
("const" .
|
||||
[7 0 0 0 0])
|
||||
("describe" .
|
||||
[0 0 0 0 0 0 0 1])
|
||||
("Array" .
|
||||
[1 0 0 0 0])
|
||||
("an" .
|
||||
[2 0])
|
||||
("destinations" .
|
||||
[1 0 0 0 0 0 0 0 0 0 0 0])
|
||||
("destination" .
|
||||
[0 0 0 0 0 0 1 0 0 0 1])
|
||||
("bStepDefinition" .
|
||||
[0 0 1 0 0 0 0 0 0 0 0 0 0 0 0])
|
||||
("addDestination" .
|
||||
[0 0 0 0 0 1 0 0 0 0 0 0 0 0])
|
||||
("StepDefinition" .
|
||||
[0 0 0 1 4 0 0 0 0 0 0 0 0 0])
|
||||
("instanceof" .
|
||||
[0 0 0 1 0 0 0 0 0 0])
|
||||
("Object" .
|
||||
[0 1 0 0 0 1])
|
||||
("a" .
|
||||
[1])
|
||||
("be" .
|
||||
[4 0])
|
||||
("to" .
|
||||
[3 0])
|
||||
("aStepDefinition" .
|
||||
[3 0 0 0 0 0 0 0 0 0 0 0 0 0 2])
|
||||
("expect" .
|
||||
[2 0 0 1 0 1])
|
||||
("addProcessStep" .
|
||||
[0 0 0 0 0 0 0 0 1 0 0 0 0 0])
|
||||
("currentProcessStep" .
|
||||
[0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0])
|
||||
("value" .
|
||||
[1 0 0 0 0])
|
||||
("processStep" .
|
||||
[2 0 0 0 0 0 0 0 2 0 0])
|
||||
("util" .
|
||||
[2 0 0 0])
|
||||
("wprocess" .
|
||||
[1 0 0 0 1 0 0 0])
|
||||
("false" .
|
||||
[1 0 0 0 0])))
|
||||
18
elpa/0blayout-readme.txt
Normal file
18
elpa/0blayout-readme.txt
Normal file
@@ -0,0 +1,18 @@
|
||||
This global minor mode provides a simple way to switch between layouts and
|
||||
the buffers you left open before you switched (unless you closed it).
|
||||
|
||||
It doesn't require any setup at all more than:
|
||||
(0blayout-mode)
|
||||
|
||||
When you start Emacs with 0blayout loaded, you will have a default layout
|
||||
named "default", and then you can create new layouts (<prefix> C-c), switch
|
||||
layouts (<prefix> C-b), and kill the current layout (<prefix> C-k).
|
||||
The default <prefix> is (C-c C-l), but you can change it using:
|
||||
(0blayout-add-keybindings-with-prefix "<your prefix>")
|
||||
|
||||
You can also customize-variable to change the name of the default session.
|
||||
|
||||
The project is hosted at https://github.com/etu/0blayout
|
||||
There you can leave bug-reports and suggestions.
|
||||
|
||||
Another comparable mode is eyebrowse which have been developed for longer.
|
||||
62
elpa/ac-js2-20190101.933/ac-js2-autoloads.el
Normal file
62
elpa/ac-js2-20190101.933/ac-js2-autoloads.el
Normal file
@@ -0,0 +1,62 @@
|
||||
;;; ac-js2-autoloads.el --- automatically extracted autoloads
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(add-to-list 'load-path (directory-file-name
|
||||
(or (file-name-directory #$) (car load-path))))
|
||||
|
||||
|
||||
;;;### (autoloads nil "ac-js2" "ac-js2.el" (0 0 0 0))
|
||||
;;; Generated autoloads from ac-js2.el
|
||||
|
||||
(autoload 'ac-js2-expand-function "ac-js2" "\
|
||||
Expand the function definition left of point.
|
||||
Expansion will only occur for candidates whose documentation
|
||||
string contain a function prototype.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'ac-js2-completion-function "ac-js2" "\
|
||||
Function for `completions-at-point'.
|
||||
|
||||
\(fn)" nil nil)
|
||||
|
||||
(autoload 'ac-js2-company "ac-js2" "\
|
||||
|
||||
|
||||
\(fn COMMAND &optional ARG &rest IGNORED)" t nil)
|
||||
|
||||
(autoload 'ac-js2-jump-to-definition "ac-js2" "\
|
||||
Jump to the definition of an object's property, variable or function.
|
||||
Navigation to a property definend in an Object literal isn't
|
||||
implemented.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'ac-js2-mode "ac-js2" "\
|
||||
A minor mode that provides auto-completion and navigation for Js2-mode.
|
||||
|
||||
\(fn &optional ARG)" t nil)
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ac-js2" '("ac-js2-")))
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil "ac-js2-tests" "ac-js2-tests.el" (0 0 0 0))
|
||||
;;; Generated autoloads from ac-js2-tests.el
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ac-js2-tests" '("completion-frontend-test")))
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil nil ("ac-js2-pkg.el") (0 0 0 0))
|
||||
|
||||
;;;***
|
||||
|
||||
;; Local Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; no-update-autoloads: t
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
;;; ac-js2-autoloads.el ends here
|
||||
11
elpa/ac-js2-20190101.933/ac-js2-pkg.el
Normal file
11
elpa/ac-js2-20190101.933/ac-js2-pkg.el
Normal file
@@ -0,0 +1,11 @@
|
||||
(define-package "ac-js2" "20190101.933" "Auto-complete source for Js2-mode, with navigation"
|
||||
'((js2-mode "20090723")
|
||||
(skewer-mode "1.4"))
|
||||
:authors
|
||||
'(("Scott Barnett" . "scott.n.barnett@gmail.com"))
|
||||
:maintainer
|
||||
'("Scott Barnett" . "scott.n.barnett@gmail.com")
|
||||
:url "https://github.com/ScottyB/ac-js2")
|
||||
;; Local Variables:
|
||||
;; no-byte-compile: t
|
||||
;; End:
|
||||
76
elpa/ac-js2-20190101.933/ac-js2-tests.el
Normal file
76
elpa/ac-js2-20190101.933/ac-js2-tests.el
Normal file
@@ -0,0 +1,76 @@
|
||||
;;; Tests for ac-js2
|
||||
|
||||
(require 'ert)
|
||||
(require 'skewer-mode)
|
||||
(require 'js2-mode)
|
||||
(require 'ac-js2)
|
||||
|
||||
;;; Must have a skewer client connected before running the tests
|
||||
;; Need to call httpd-stop from main Emacs if running tests in batch mode
|
||||
(unless skewer-clients
|
||||
(run-skewer))
|
||||
|
||||
(ert-deftest ac-js2-candidates-test ()
|
||||
"Test the major function that returns candidates for all frontends."
|
||||
(let (property
|
||||
property-dot
|
||||
func-call
|
||||
var)
|
||||
(with-temp-buffer
|
||||
(insert "
|
||||
var temp = function(param1, param2) {
|
||||
var localParam = 15;
|
||||
return param1 + param2;
|
||||
};
|
||||
|
||||
var look;
|
||||
|
||||
temp.aFun = function(lolParam) {};
|
||||
temp.anotherFunction = function() { return {about: 3};}")
|
||||
(setq ac-js2-evaluate-calls t)
|
||||
(setq ac-js2-external-libraries nil)
|
||||
|
||||
(js2-mode)
|
||||
(ac-js2-mode t)
|
||||
(js2-parse)
|
||||
|
||||
(insert "tem")
|
||||
(ac-js2-candidates)
|
||||
(setq var ac-js2-skewer-candidates)
|
||||
(delete-char -3)
|
||||
|
||||
(insert "temp.")
|
||||
(js2-parse)
|
||||
(ac-js2-candidates)
|
||||
(setq property-dot ac-js2-skewer-candidates)
|
||||
(delete-char -5)
|
||||
|
||||
(insert "temp.aF")
|
||||
(js2-parse)
|
||||
(ac-js2-candidates)
|
||||
(setq property ac-js2-skewer-candidates))
|
||||
|
||||
(should (assoc 'anotherFunction property-dot))
|
||||
(print property)
|
||||
(should (assoc 'aFun property))
|
||||
(should (assoc 'temp var))))
|
||||
|
||||
(defmacro completion-frontend-test (test-name completion-function)
|
||||
"Utility for testing completion front ends.
|
||||
TODO: cover more cases"
|
||||
`(ert-deftest ,test-name ()
|
||||
(let (var)
|
||||
(with-temp-buffer
|
||||
(insert "var testComplete = function(param1, param2) {};")
|
||||
|
||||
(js2-mode)
|
||||
(ac-js2-mode t)
|
||||
(js2-parse)
|
||||
|
||||
(insert "testComplet")
|
||||
(funcall ',completion-function)
|
||||
(setq var (thing-at-point 'word)))
|
||||
(should (string= var "testComplete")))))
|
||||
|
||||
(completion-frontend-test auto-complete-test auto-complete)
|
||||
(completion-frontend-test completion-at-point-test completion-at-point)
|
||||
BIN
elpa/ac-js2-20190101.933/ac-js2-tests.elc
Normal file
BIN
elpa/ac-js2-20190101.933/ac-js2-tests.elc
Normal file
Binary file not shown.
608
elpa/ac-js2-20190101.933/ac-js2.el
Normal file
608
elpa/ac-js2-20190101.933/ac-js2.el
Normal file
@@ -0,0 +1,608 @@
|
||||
;;; ac-js2.el --- Auto-complete source for Js2-mode, with navigation
|
||||
|
||||
;; Copyright (C) 2013 Scott Barnett
|
||||
|
||||
;; Author: Scott Barnett <scott.n.barnett@gmail.com>
|
||||
;; URL: https://github.com/ScottyB/ac-js2
|
||||
;; Version: 1.0
|
||||
;; Package-Requires: ((js2-mode "20090723")(skewer-mode "1.4"))
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; An attempt to get context sensitive Javascript completion in Emacs.
|
||||
;; Basic completions are obtained by parsing Javascript code with
|
||||
;; Js2-mode's parser.
|
||||
;;
|
||||
;; Installation
|
||||
;;
|
||||
;; Easiest way to get ac-js2 is to install it from MELPA. You may need
|
||||
;; this snippet
|
||||
;;
|
||||
;; `(add-to-list 'package-archives
|
||||
;; '("melpa" . "http://melpa.milkbox.net/packages/") t)'
|
||||
;;
|
||||
;; if you don't have it already to fetch packages from MELPA.
|
||||
;;
|
||||
;; Enable ac-js2 in js2-mode as follows:
|
||||
;;
|
||||
;; (add-hook 'js2-mode-hook 'ac-js2-mode)
|
||||
;;
|
||||
;; Ac-js2 does not require auto-complete mode but I suggest you grab
|
||||
;; it anyway as ac-js2 is designed to work with a completion frontend.
|
||||
;; Support for Company mode is on its way.
|
||||
;;
|
||||
;; For more comprehensive completions you can opt to evaluate the code
|
||||
;; for candidates. A browser needs to be connected to Emacs for the
|
||||
;; evaluation completions to work. Put this in your init.el file.
|
||||
;;
|
||||
;; `(setq ac-js2-evaluate-calls t)'
|
||||
;;
|
||||
;; To add completions for external libraries add something like this:
|
||||
;;
|
||||
;; (add-to-list 'ac-js2-external-libraries "path/to/lib/library.js")
|
||||
;;
|
||||
;; Then connect a browser to Emacs by calling `(run-skewer)'. You may
|
||||
;; need to save the buffer for completions to start.
|
||||
;;
|
||||
;; If auto-complete mode is installed on your system then completions
|
||||
;; should start showing up otherwise use `completion-at-point'.
|
||||
;;
|
||||
;; Note: library completions will only work if `ac-js2-evaluate-calls'
|
||||
;; is set and a browser is connected to Emacs.
|
||||
;;
|
||||
;; Bonus: M-. is bound to `ac-js2-jump-to-definition' which will jump
|
||||
;; to Javascript definitions found in the same buffer. Given the
|
||||
;; following proprety reference:
|
||||
;;
|
||||
;; foo.bar.baz();
|
||||
;;
|
||||
;; placing the cursor on `foo', `bar' or `baz' and executing M-. will
|
||||
;; take you straight to their respective definitions. Use M-, to jump
|
||||
;; back to where you were. Also works for object literals.
|
||||
;;
|
||||
;; Recently added `ac-js2-expand-function' that will expand a function's
|
||||
;; parameters bound to `C-c C-c`. Expansion will only work if the cursor
|
||||
;; is after the function.
|
||||
;;
|
||||
;; If you have any issues or suggestions please create an issue on Github:
|
||||
;; https://github.com/ScottyB/ac-js2
|
||||
|
||||
;;; History:
|
||||
|
||||
;; Version 1.0
|
||||
;; * Navigation within current buffer
|
||||
;; * Completion and docstring for objects via Skewer
|
||||
;; * External library support
|
||||
;; * Basic completions of objects in current buffer
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'js2-mode)
|
||||
(require 'skewer-mode)
|
||||
(require 'cl-lib)
|
||||
(require 'etags)
|
||||
|
||||
(defgroup ac-js2 nil
|
||||
"Auto-completion for js2-mode."
|
||||
:group 'completion
|
||||
:prefix "ac-js2-")
|
||||
|
||||
;;; Configuration variables
|
||||
|
||||
(defcustom ac-js2-add-ecma-262-externs t
|
||||
"If non-nil add `js2-ecma-262-externs' to completion candidates.")
|
||||
|
||||
(defcustom ac-js2-add-browser-externs t
|
||||
"If non-nil add `js2-browser-externs' to completion candidates.")
|
||||
|
||||
(defcustom ac-js2-add-keywords t
|
||||
"If non-nil add `js2-keywords' to completion candidates.")
|
||||
|
||||
(defcustom ac-js2-add-prototype-completions t
|
||||
"When non-nil traverse the prototype chain adding to completion candidates.")
|
||||
|
||||
(defcustom ac-js2-external-libraries '()
|
||||
"List of absolute paths to external Javascript libraries.")
|
||||
|
||||
(defcustom ac-js2-evaluate-calls nil
|
||||
"Warning. When true function calls will be evaluated in the browser.
|
||||
This may cause undesired side effects however it will
|
||||
provide better completions. Use at your own risk.")
|
||||
|
||||
(defcustom ac-js2-force-reparse t
|
||||
"Force Js2-mode to reparse buffer before fetching completion candidates.")
|
||||
|
||||
;;; Internal variables
|
||||
|
||||
(defvar ac-js2-keywords '()
|
||||
"Cached string version of `js2-keywords'.")
|
||||
|
||||
(defvar ac-js2-candidates '())
|
||||
|
||||
;; Types of skewer completion methods available
|
||||
(defconst ac-js2-method-eval 0)
|
||||
(defconst ac-js2-method-global 1
|
||||
"Return candidates for the global object.
|
||||
Only keys of the object are returned as the other properties come
|
||||
from js2-mode's externs.")
|
||||
|
||||
(defvar ac-js2-data-root (file-name-directory load-file-name)
|
||||
"Location of data files needed for `ac-js2-on-skewer-load'.")
|
||||
|
||||
;;; Skewer integration
|
||||
|
||||
(defvar ac-js2-skewer-candidates '()
|
||||
"Cadidates obtained from skewering.")
|
||||
|
||||
(defun ac-js2-on-skewer-load ()
|
||||
"Inject skewer addon and evaluate external libraries in browser."
|
||||
(insert-file-contents (expand-file-name "skewer-addon.js" ac-js2-data-root))
|
||||
(and ac-js2-evaluate-calls
|
||||
(mapcar (lambda (library)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents (expand-file-name library))
|
||||
(skewer-eval (buffer-string)
|
||||
nil
|
||||
:type "complete"))) ac-js2-external-libraries)))
|
||||
|
||||
(defun ac-js2-skewer-completion-candidates ()
|
||||
"Get completions returned from skewer."
|
||||
(mapcar (lambda (candidate) (symbol-name (car candidate))) ac-js2-skewer-candidates))
|
||||
|
||||
(defun ac-js2-skewer-document-candidates (name)
|
||||
"Return document string for NAME from skewer."
|
||||
(let ((doc (cdr (assoc-string name ac-js2-skewer-candidates))))
|
||||
(or (ac-js2-format-function doc) doc)))
|
||||
|
||||
(defun ac-js2-get-object-properties (name)
|
||||
"Find properties of NAME for completion."
|
||||
(ac-js2-skewer-eval-wrapper name `((prototypes . ,ac-js2-add-prototype-completions))))
|
||||
|
||||
(defun ac-js2-skewer-result-callback (result)
|
||||
"Process the RESULT passed from the browser."
|
||||
(let ((value (cdr (assoc 'value result))))
|
||||
(if (and (skewer-success-p result) value)
|
||||
(setq ac-js2-skewer-candidates (append value nil)))))
|
||||
|
||||
(defun ac-js2-skewer-eval-wrapper (str &optional extras)
|
||||
"Wrap `skewer-eval-synchronously' to check if a skewer-client is avilable.
|
||||
STR is the text to send to the browser for evaluation. Extra
|
||||
parameters can be passed to the browser using EXTRAS. EXTRAS must
|
||||
be of the form (param-string . value) where param-string is the
|
||||
reference and value is the value that can be retrieved from the
|
||||
request object in Javacript."
|
||||
(setq ac-js2-skewer-candidates nil)
|
||||
(if skewer-clients
|
||||
(if (or ac-js2-evaluate-calls
|
||||
(not (ac-js2-has-function-calls str)))
|
||||
(ac-js2-skewer-result-callback
|
||||
(skewer-eval-synchronously str
|
||||
:type "complete"
|
||||
:extra extras)))
|
||||
(setq skewer-queue nil)))
|
||||
|
||||
;; Generate candidates
|
||||
(defun ac-js2-candidates ()
|
||||
"Main function called to gather candidates for auto-completion."
|
||||
(if ac-js2-force-reparse (js2-reparse))
|
||||
(let ((node (js2-node-parent (js2-node-at-point (1- (point)))))
|
||||
beg
|
||||
(prop-get-regex "[a-zA-Z)]\\.")
|
||||
name)
|
||||
(setq ac-js2-candidates nil)
|
||||
(cond
|
||||
((looking-back "\\.")
|
||||
;; TODO: Need to come up with a better way to extract object than this regex!!
|
||||
(save-excursion
|
||||
(setq beg (and (skip-chars-backward "[a-zA-Z_$][0-9a-zA-Z_$#\"())]+\\.") (point))))
|
||||
(setq name (buffer-substring-no-properties beg (1- (point))))
|
||||
(ac-js2-get-object-properties name)
|
||||
(setq node (ac-js2-initialized-node (if (string-match prop-get-regex name)
|
||||
(reverse (split-string name prop-get-regex)) name)))
|
||||
(if (js2-object-node-p node)
|
||||
(setq ac-js2-candidates
|
||||
(mapcar (lambda (elem)
|
||||
(ac-js2-format-node (js2-node-string (js2-object-prop-node-left elem))
|
||||
elem))
|
||||
(js2-object-node-elems node))))
|
||||
(append (mapcar 'cl-first ac-js2-candidates)
|
||||
(ac-js2-skewer-completion-candidates)))
|
||||
((js2-prop-get-node-p node)
|
||||
(setq node (js2-prop-get-node-left node))
|
||||
(setq name (js2-node-string node))
|
||||
(ac-js2-get-object-properties name)
|
||||
(ac-js2-skewer-completion-candidates))
|
||||
(t
|
||||
(ac-js2-skewer-eval-wrapper "" `((method . ,ac-js2-method-global)))
|
||||
(append (ac-js2-skewer-completion-candidates)
|
||||
(ac-js2-add-extra-completions
|
||||
(mapcar 'cl-first (ac-js2-get-names-in-scope))))))))
|
||||
|
||||
(defun ac-js2-document (name)
|
||||
"Show documentation for NAME from local buffer if present
|
||||
otherwise use documentation obtained from skewer."
|
||||
(let* ((docs (cdr (assoc name ac-js2-candidates)))
|
||||
(doc (if (listp docs) (cl-first docs) docs)))
|
||||
(if doc doc (ac-js2-skewer-document-candidates name))))
|
||||
|
||||
;; Auto-complete settings
|
||||
|
||||
(defun ac-js2-ac-candidates ()
|
||||
"Completion candidates for auto-complete mode."
|
||||
(ac-js2-candidates))
|
||||
|
||||
(defun ac-js2-ac-document (name)
|
||||
"Documentation to be shown for auto-complete mode."
|
||||
(ac-js2-document name))
|
||||
|
||||
(defun ac-js2-ac-prefix()
|
||||
(or (ac-prefix-default) (ac-prefix-c-dot)))
|
||||
|
||||
(defun ac-js2-save ()
|
||||
"Called on `before-save-hook' to evaluate buffer."
|
||||
(interactive)
|
||||
(when (string= major-mode "js2-mode")
|
||||
(ac-js2-skewer-eval-wrapper (buffer-string)))
|
||||
t)
|
||||
|
||||
;;;###autoload
|
||||
(defun ac-js2-expand-function()
|
||||
"Expand the function definition left of point.
|
||||
Expansion will only occur for candidates whose documentation
|
||||
string contain a function prototype."
|
||||
(interactive)
|
||||
(let* ((word (progn
|
||||
(if (featurep 'auto-complete) (ac-complete))
|
||||
(substring-no-properties (or (thing-at-point 'word) ""))))
|
||||
(candidate (ac-js2-ac-document word)))
|
||||
(if (and (looking-back word) (stringp candidate))
|
||||
(when (string-match "^function" candidate)
|
||||
(cond ((featurep 'yasnippet)
|
||||
(yas-expand-snippet
|
||||
(concat "("
|
||||
(replace-regexp-in-string "\\([a-zA-Z0-9]+\\)"
|
||||
(lambda (txt) (concat "${" txt "}"))
|
||||
(cl-second (split-string candidate "[()]")))
|
||||
")$0"))))))))
|
||||
|
||||
(defun ac-js2-setup-auto-complete-mode ()
|
||||
"Setup ac-js2 to be used with auto-complete-mode."
|
||||
(add-to-list 'ac-sources 'ac-source-js2)
|
||||
(auto-complete-mode)
|
||||
(ac-define-source "js2"
|
||||
'((candidates . ac-js2-ac-candidates)
|
||||
(document . ac-js2-ac-document)
|
||||
(prefix . ac-js2-ac-prefix)
|
||||
(requires . -1))))
|
||||
|
||||
;;; Completion at point function
|
||||
|
||||
;;;###autoload
|
||||
(defun ac-js2-completion-function ()
|
||||
"Function for `completions-at-point'."
|
||||
(save-excursion
|
||||
(let ((bounds (if (looking-back "\\.")
|
||||
(cons (point) (point))
|
||||
(bounds-of-thing-at-point 'word))))
|
||||
(list (car bounds) (cdr bounds) (ac-js2-candidates)))))
|
||||
|
||||
;;; Company
|
||||
|
||||
;;;###autoload
|
||||
(defun ac-js2-company (command &optional arg &rest ignored)
|
||||
(interactive (list 'interactive))
|
||||
(if (not (featurep 'company))
|
||||
(message "Company is not installed")
|
||||
(cl-case command
|
||||
(interactive (company-begin-backend 'ac-js2-company))
|
||||
(prefix (when ac-js2-mode
|
||||
(or (company-grab-symbol)
|
||||
'stop)))
|
||||
(candidates (all-completions arg (ac-js2-candidates)))
|
||||
(duplicates t)
|
||||
(meta (let ((doc (ac-js2-document arg)))
|
||||
(when doc
|
||||
(with-temp-buffer
|
||||
(insert doc)
|
||||
(js-mode)
|
||||
(if (fboundp 'font-lock-ensure)
|
||||
(font-lock-ensure)
|
||||
(with-no-warnings
|
||||
(font-lock-fontify-buffer)))
|
||||
(buffer-string))))))))
|
||||
|
||||
;;; Helper functions
|
||||
|
||||
(defun ac-js2-build-prop-name-list (prop-node)
|
||||
"Build a list of names from a PROP-NODE."
|
||||
(let* (names
|
||||
left
|
||||
left-node)
|
||||
(unless (js2-prop-get-node-p prop-node)
|
||||
(error "Node is not a property prop-node"))
|
||||
(while (js2-prop-get-node-p prop-node)
|
||||
(push (js2-name-node-name (js2-prop-get-node-right prop-node)) names)
|
||||
(setq left-node (js2-prop-get-node-left prop-node))
|
||||
(when (js2-name-node-p left-node)
|
||||
(setq left (js2-name-node-name left-node)))
|
||||
(setq prop-node (js2-node-parent prop-node)))
|
||||
(append names `(,left))))
|
||||
|
||||
(defun ac-js2-prop-names-left (name-node)
|
||||
"Create a list of all of the names in the property NAME-NODE.
|
||||
NAME-NODE must have a js2-prop-get-node as parent. Only adds
|
||||
properties to the left of point. This is so individual jump
|
||||
points can be found for each property in the chain."
|
||||
(let* (name
|
||||
(parent (js2-node-parent name-node))
|
||||
left
|
||||
names)
|
||||
(unless (or (js2-prop-get-node-p parent) (js2-name-node-p name-node))
|
||||
(error "Not a name node or doesn't have a prop-get-node as parent"))
|
||||
(setq name (js2-name-node-name name-node)
|
||||
left (js2-prop-get-node-left parent))
|
||||
(if (and (js2-name-node-p left)
|
||||
(string= name (js2-name-node-name left)))
|
||||
(setq names name)
|
||||
(js2-visit-ast
|
||||
parent
|
||||
(lambda (node endp)
|
||||
(unless endp
|
||||
(if (js2-name-node-p node)
|
||||
(push (js2-name-node-name node) names)
|
||||
t))))
|
||||
names)))
|
||||
|
||||
(defun ac-js2-has-function-calls (string)
|
||||
"Check if the Javascript code in STRING has a Js2-call-node."
|
||||
(with-temp-buffer
|
||||
(insert string)
|
||||
(let* ((ast (js2-parse)))
|
||||
(catch 'call-node
|
||||
(js2-visit-ast-root
|
||||
ast
|
||||
(lambda (node end-p)
|
||||
(unless end-p
|
||||
(if (js2-call-node-p node)
|
||||
(throw 'call-node t)
|
||||
t))))))))
|
||||
|
||||
(defun ac-js2-add-extra-completions (completions)
|
||||
"Add extra candidates to COMPLETIONS."
|
||||
(append completions
|
||||
(if ac-js2-add-keywords (or ac-js2-keywords (setq ac-js2-keywords (mapcar 'symbol-name js2-keywords))))
|
||||
(if ac-js2-add-ecma-262-externs js2-ecma-262-externs)
|
||||
(if ac-js2-add-browser-externs js2-browser-externs)))
|
||||
|
||||
(defun ac-js2-root-or-node ()
|
||||
"Return the current node or js2-ast-root node."
|
||||
(let ((node (js2-node-at-point)))
|
||||
(if (js2-ast-root-p node)
|
||||
node
|
||||
(js2-node-get-enclosing-scope node))))
|
||||
|
||||
(defun ac-js2-get-names-in-scope ()
|
||||
"Fetches all symbols in scope and formats them for completion."
|
||||
(let* ((scope (ac-js2-root-or-node))
|
||||
result)
|
||||
(while scope
|
||||
(setq result (append result
|
||||
(cl-loop for item in (js2-scope-symbol-table scope)
|
||||
if (not (assoc (car item) result))
|
||||
collect item)))
|
||||
(setq scope (js2-scope-parent-scope scope)))
|
||||
(setq ac-js2-candidates
|
||||
(mapcar #'(lambda (x)
|
||||
(let* ((name (symbol-name (car x)))
|
||||
(init (ac-js2-initialized-node name)))
|
||||
(ac-js2-format-node name init)))
|
||||
result))))
|
||||
|
||||
(defun ac-js2-initialized-node (name)
|
||||
"Return initial value assigned to NAME.
|
||||
NAME may be either a variable, a function or a variable that
|
||||
holds a function. NAME may also be a list of names that make up a
|
||||
object property. Returns nil if no initial value can be found."
|
||||
(let* ((node (if (listp name) (ac-js2-find-property name)
|
||||
(ac-js2-name-declaration name)))
|
||||
(parent (if node (js2-node-parent node)))
|
||||
(init (cond
|
||||
((js2-function-node-p parent)
|
||||
parent)
|
||||
((js2-function-node-p node)
|
||||
node)
|
||||
((js2-var-init-node-p parent)
|
||||
(js2-var-init-node-initializer parent))
|
||||
((js2-assign-node-p parent)
|
||||
(js2-assign-node-right parent))
|
||||
(t
|
||||
nil))))
|
||||
init))
|
||||
|
||||
(defun ac-js2-name-declaration (name)
|
||||
"Return the declaration node for node named NAME."
|
||||
(let* ((node (ac-js2-root-or-node))
|
||||
(scope-def (js2-get-defining-scope node name))
|
||||
(scope (if scope-def (js2-scope-get-symbol scope-def name) nil))
|
||||
(symbol (if scope (js2-symbol-ast-node scope) nil)))
|
||||
(if (not symbol)
|
||||
(ac-js2-get-function-node name scope-def)
|
||||
symbol)))
|
||||
|
||||
;;; Completion candidate formatting
|
||||
|
||||
(defun ac-js2-format-node (name node)
|
||||
"Format NAME and NODE for completion.
|
||||
Returned format is a list where the first element is the NAME of
|
||||
the node (shown in completion candidate list) and the last
|
||||
element is the text to show as documentation."
|
||||
(let ((node (if (js2-object-prop-node-p node) (js2-object-prop-node-right node) node))
|
||||
(name-format (replace-regexp-in-string "\"" "" name))
|
||||
(doc (if (and (js2-function-node-p node)
|
||||
(cl-find name (js2-function-node-params node)
|
||||
:test '(lambda (name param) (string= name (js2-name-node-name param)))))
|
||||
"Function parameter"
|
||||
(ac-js2-format-node-doc node))))
|
||||
`(,name-format . ,doc)))
|
||||
|
||||
(defun ac-js2-format-object-node-doc (obj-node)
|
||||
"Format OBJ-NODE to display as documentation."
|
||||
(let (elems)
|
||||
(unless (js2-object-node-p obj-node)
|
||||
(error "Node is not an object node"))
|
||||
(setq elems (js2-object-node-elems obj-node))
|
||||
(if (not elems)
|
||||
"{}"
|
||||
(mapconcat #'(lambda (x) (ac-js2-format-js2-object-prop-doc x)) elems "\n"))))
|
||||
|
||||
(defun ac-js2-format-node-doc (node)
|
||||
"Format NODE for displaying in a document string."
|
||||
(let* ((node-above (and node (js2-node-at-point
|
||||
(save-excursion
|
||||
(goto-char (js2-node-abs-pos node))
|
||||
(forward-line -1)
|
||||
(point)))))
|
||||
(comment (if (js2-comment-node-p node-above)
|
||||
(ac-js2-format-comment (js2-node-string node-above))))
|
||||
(doc (cond
|
||||
((js2-function-node-p node)
|
||||
(ac-js2-format-function node))
|
||||
((js2-object-node-p node)
|
||||
(ac-js2-format-object-node-doc node))
|
||||
((js2-object-prop-node-p node)
|
||||
(ac-js2-format-node-doc (js2-object-prop-node-right node)))
|
||||
(t
|
||||
(if (js2-node-p node) (js2-node-string node) "")))))
|
||||
(if comment (concat comment "\n" doc) doc)))
|
||||
|
||||
(defun ac-js2-format-js2-object-prop-doc (obj-prop)
|
||||
"Format an OBJ-PROP for displaying as a document string."
|
||||
(unless (js2-object-prop-node-p obj-prop)
|
||||
(error "Node is not an object property node"))
|
||||
(let* ((left (js2-object-prop-node-left obj-prop))
|
||||
(right (js2-object-prop-node-right obj-prop)))
|
||||
(concat (js2-node-string left) " : "
|
||||
(ac-js2-format-node-doc right))))
|
||||
|
||||
(defun ac-js2-format-function (func)
|
||||
"Formats a function for a document string.
|
||||
FUNC can be either a function node or a string starting with
|
||||
'function'. Returns nil if neither."
|
||||
(let ((str (or (and (js2-function-node-p func) (js2-node-string func))
|
||||
(and (stringp func) (eq 0 (string-match "function" func)) func))))
|
||||
(if str (substring str 0 (1+ (string-match ")" str))))))
|
||||
|
||||
(defun ac-js2-format-comment (comment)
|
||||
"Prepare a COMMENT node for displaying in a popup."
|
||||
(let* ((node-string (if (js2-comment-node-p comment)
|
||||
(js2-node-string comment)
|
||||
comment))
|
||||
(string (replace-regexp-in-string "[ \t]$" ""
|
||||
(replace-regexp-in-string "^[ \t\n*/*]+" "" node-string))))
|
||||
string))
|
||||
|
||||
;;; Navigation commands for js2-mode
|
||||
|
||||
(defun ac-js2-find-property (list-names)
|
||||
"Find the property definition that consists of LIST-NAMES.
|
||||
Supports navigation to 'foo.bar = 3' and 'foo = {bar: 3}'."
|
||||
(catch 'prop-found
|
||||
(js2-visit-ast-root
|
||||
js2-mode-ast
|
||||
(lambda (node endp)
|
||||
(let ((parent (js2-node-parent node)))
|
||||
(unless endp
|
||||
(if (or (and (js2-prop-get-node-p node)
|
||||
(not (or (js2-elem-get-node-p parent) (js2-call-node-p parent)))
|
||||
(equal list-names (ac-js2-build-prop-name-list node)))
|
||||
(and (js2-name-node-p node)
|
||||
(js2-object-prop-node-p parent)
|
||||
(string= (js2-name-node-name node)
|
||||
(cl-first list-names))))
|
||||
(throw 'prop-found node))
|
||||
t))))))
|
||||
|
||||
(defun ac-js2-get-function-node (name scope)
|
||||
"Return node of function named NAME in SCOPE."
|
||||
(catch 'function-found
|
||||
(js2-visit-ast
|
||||
scope
|
||||
(lambda (node end-p)
|
||||
(when (and (not end-p)
|
||||
(string= name (ac-js2-get-function-name node)))
|
||||
(throw 'function-found node))
|
||||
t))
|
||||
nil))
|
||||
|
||||
;;;###autoload
|
||||
(defun ac-js2-jump-to-definition ()
|
||||
"Jump to the definition of an object's property, variable or function.
|
||||
Navigation to a property definend in an Object literal isn't
|
||||
implemented."
|
||||
(interactive)
|
||||
(ring-insert find-tag-marker-ring (point-marker))
|
||||
(let* ((node (js2-node-at-point))
|
||||
(parent (js2-node-parent node))
|
||||
(prop-names (if (js2-prop-get-node-p parent)
|
||||
(ac-js2-prop-names-left node)))
|
||||
(name (if (and (js2-name-node-p node)
|
||||
(not (js2-object-prop-node-p parent)))
|
||||
(js2-name-node-name node)
|
||||
(error "Node is not a supported jump node")))
|
||||
(node-init (if (and prop-names (listp prop-names))
|
||||
(ac-js2-find-property prop-names)
|
||||
(ac-js2-name-declaration name))))
|
||||
(unless node-init
|
||||
(pop-tag-mark)
|
||||
(error "No jump location found"))
|
||||
(goto-char (js2-node-abs-pos node-init))))
|
||||
|
||||
(defun ac-js2-get-function-name (fn-node)
|
||||
"Return the name of the function FN-NODE.
|
||||
Value may be either function name or the variable name that holds
|
||||
the function."
|
||||
(let ((parent (js2-node-parent fn-node)))
|
||||
(if (js2-function-node-p fn-node)
|
||||
(or (js2-function-name fn-node)
|
||||
(if (js2-var-init-node-p parent)
|
||||
(js2-name-node-name (js2-var-init-node-target parent)))))))
|
||||
|
||||
(defvar ac-js2-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map (kbd "M-.") 'ac-js2-jump-to-definition)
|
||||
(define-key map (kbd "M-,") 'pop-tag-mark)
|
||||
(define-key map (kbd "C-c C-c") 'ac-js2-expand-function)
|
||||
map)
|
||||
"Keymap for `ac-js2-mode'.")
|
||||
|
||||
;;; Minor mode
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode ac-js2-mode
|
||||
"A minor mode that provides auto-completion and navigation for Js2-mode."
|
||||
:keymap ac-js2-mode-map
|
||||
(if (featurep 'auto-complete)
|
||||
(ac-js2-setup-auto-complete-mode))
|
||||
(set (make-local-variable 'completion-at-point-functions)
|
||||
(cons 'ac-js2-completion-function completion-at-point-functions))
|
||||
(ac-js2-skewer-eval-wrapper (buffer-string))
|
||||
(add-hook 'before-save-hook 'ac-js2-save nil t)
|
||||
(add-hook 'skewer-js-hook 'ac-js2-on-skewer-load))
|
||||
|
||||
|
||||
(provide 'ac-js2)
|
||||
|
||||
;;; ac-js2.el ends here
|
||||
BIN
elpa/ac-js2-20190101.933/ac-js2.elc
Normal file
BIN
elpa/ac-js2-20190101.933/ac-js2.elc
Normal file
Binary file not shown.
116
elpa/ac-js2-20190101.933/skewer-addon.js
Normal file
116
elpa/ac-js2-20190101.933/skewer-addon.js
Normal file
@@ -0,0 +1,116 @@
|
||||
/**
|
||||
* @fileOverview Completion request handler for skewer.js
|
||||
* @requires skewer
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Handles a completion request from Emacs.
|
||||
* @param request The request object sent by Emacs
|
||||
* @returns The completions and init values to be returned to Emacs
|
||||
*/
|
||||
skewer.fn.complete = function(request) {
|
||||
var result = {
|
||||
type : request.type,
|
||||
id : request.id,
|
||||
strict : request.strict,
|
||||
status : "success"
|
||||
},
|
||||
|
||||
/**
|
||||
* Methods for generating candidates
|
||||
*/
|
||||
METHOD = {
|
||||
EVAL : 0,
|
||||
GLOBAL : 1
|
||||
},
|
||||
|
||||
/**
|
||||
* Add the properties from object to extendObject. Properties
|
||||
* may be from the prototype but we still want to add them.
|
||||
*/
|
||||
extend = function(extendObject, object) {
|
||||
for(var key in object) {
|
||||
extendObject[key] = object[key];
|
||||
}
|
||||
},
|
||||
|
||||
globalCompletion = function() {
|
||||
var global = Function('return this')(),
|
||||
keys = Object.keys(global);
|
||||
candidates = buildCandidates(global, keys);
|
||||
},
|
||||
|
||||
evalCompletion = function(evalObject) {
|
||||
var obj = (eval, eval)(evalObject);
|
||||
if (typeof obj === "object") {
|
||||
candidates = buildCandidates(obj) || {};
|
||||
while (request.prototypes && (obj = Object.getPrototypeOf(obj)) !== null) {
|
||||
extend(candidates, buildCandidates(obj));
|
||||
}
|
||||
} else if (typeof obj === "function"){
|
||||
candidates = buildCandidates(obj) || {};
|
||||
extend(candidates, buildCandidates(Object.getPrototypeOf(obj)));
|
||||
if (request.prototypes) {
|
||||
var protoObject = Object.getPrototypeOf(obj.prototype);
|
||||
if (protoObject !== null) {
|
||||
extend(candidates, buildCandidates(protoObject));
|
||||
} else {
|
||||
extend(candidates, buildCandidates(obj.prototype));
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Completion candidates sent back to Emacs. Keys are
|
||||
* completion candidates the values are the inital items or
|
||||
* function interfaces.
|
||||
*/
|
||||
candidates = {},
|
||||
|
||||
/**
|
||||
* Build the candiates to return to Emacs.
|
||||
* @param obj The object to get candidates from
|
||||
* @param items The selected keys from obj to create candidates for
|
||||
* @return object containing completion candidates and documentation strings
|
||||
*/
|
||||
buildCandidates = function(obj, items) {
|
||||
var keys = items || Object.getOwnPropertyNames(obj), values = {};
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
var key = keys[i];
|
||||
if (key === "callee" || key === "caller" || key === "arguments") continue;
|
||||
if (Object.prototype.toString.call(obj[key]) === "[object Function]") {
|
||||
values[key] = obj[key].toString();
|
||||
} else if (typeof obj[key] === "object"){
|
||||
values[key] = "[object Object]";
|
||||
} else if (typeof obj[key] === "number") {
|
||||
if (!(obj instanceof Array)) {
|
||||
values[key] = obj[key].toString();
|
||||
}
|
||||
} else if (typeof obj[key] === "string") {
|
||||
values[key] = obj[key].toString();
|
||||
} else if(obj[key] === true) {
|
||||
values[key] = "true";
|
||||
} else if (obj[key] === false) {
|
||||
values[key] = "false";
|
||||
} else {
|
||||
values[key] = "";
|
||||
}
|
||||
}
|
||||
return values;
|
||||
};
|
||||
try {
|
||||
switch (request.method) {
|
||||
case METHOD.GLOBAL:
|
||||
globalCompletion();
|
||||
break;
|
||||
default:
|
||||
evalCompletion(request.eval);
|
||||
}
|
||||
result.value = candidates;
|
||||
} catch (error){
|
||||
skewer.errorResult(error, result, request);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
35
elpa/ac-php-core-readme.txt
Normal file
35
elpa/ac-php-core-readme.txt
Normal file
@@ -0,0 +1,35 @@
|
||||
The core library of the `ac-php' package. Acts like a backend for the
|
||||
following components:
|
||||
|
||||
- `ac-php'
|
||||
- `company-php'
|
||||
- `helm-ac-php-apropros'
|
||||
|
||||
Can be used as an API to build your own components. This engine currently
|
||||
provides:
|
||||
|
||||
- Support of PHP code completion
|
||||
- Support of jumping to definition/declaration/inclusion-file
|
||||
|
||||
When creating this package, the ideas of the following packages were used:
|
||||
|
||||
- auto-java-complete
|
||||
|
||||
- `ac-php-remove-unnecessary-items-4-complete-method'
|
||||
- `ac-php-split-string-with-separator'
|
||||
|
||||
- auto-complete-clang
|
||||
|
||||
- rtags
|
||||
|
||||
- `ac-php-location-stack-index'
|
||||
|
||||
Many options available under Help:Customize
|
||||
Options specific to ac-php-core are in
|
||||
Convenience/Completion/Auto Complete
|
||||
|
||||
Known to work with Linux and macOS. Windows support is in beta stage.
|
||||
For more info and examples see URL `https://github.com/xcwen/ac-php' .
|
||||
|
||||
Bugs: Bug tracking is currently handled using the GitHub issue tracker
|
||||
(see URL `https://github.com/xcwen/ac-php/issues')
|
||||
4385
elpa/archives/melpa/archive-contents
Normal file
4385
elpa/archives/melpa/archive-contents
Normal file
File diff suppressed because it is too large
Load Diff
174
elpa/async-20190503.656/async-autoloads.el
Normal file
174
elpa/async-20190503.656/async-autoloads.el
Normal file
@@ -0,0 +1,174 @@
|
||||
;;; async-autoloads.el --- automatically extracted autoloads
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(add-to-list 'load-path (directory-file-name
|
||||
(or (file-name-directory #$) (car load-path))))
|
||||
|
||||
|
||||
;;;### (autoloads nil "async" "async.el" (0 0 0 0))
|
||||
;;; Generated autoloads from async.el
|
||||
|
||||
(autoload 'async-start-process "async" "\
|
||||
Start the executable PROGRAM asynchronously. See `async-start'.
|
||||
PROGRAM is passed PROGRAM-ARGS, calling FINISH-FUNC with the
|
||||
process object when done. If FINISH-FUNC is nil, the future
|
||||
object will return the process object when the program is
|
||||
finished. Set DEFAULT-DIRECTORY to change PROGRAM's current
|
||||
working directory.
|
||||
|
||||
\(fn NAME PROGRAM FINISH-FUNC &rest PROGRAM-ARGS)" nil nil)
|
||||
|
||||
(autoload 'async-start "async" "\
|
||||
Execute START-FUNC (often a lambda) in a subordinate Emacs process.
|
||||
When done, the return value is passed to FINISH-FUNC. Example:
|
||||
|
||||
(async-start
|
||||
;; What to do in the child process
|
||||
(lambda ()
|
||||
(message \"This is a test\")
|
||||
(sleep-for 3)
|
||||
222)
|
||||
|
||||
;; What to do when it finishes
|
||||
(lambda (result)
|
||||
(message \"Async process done, result should be 222: %s\"
|
||||
result)))
|
||||
|
||||
If FINISH-FUNC is nil or missing, a future is returned that can
|
||||
be inspected using `async-get', blocking until the value is
|
||||
ready. Example:
|
||||
|
||||
(let ((proc (async-start
|
||||
;; What to do in the child process
|
||||
(lambda ()
|
||||
(message \"This is a test\")
|
||||
(sleep-for 3)
|
||||
222))))
|
||||
|
||||
(message \"I'm going to do some work here\") ;; ....
|
||||
|
||||
(message \"Waiting on async process, result should be 222: %s\"
|
||||
(async-get proc)))
|
||||
|
||||
If you don't want to use a callback, and you don't care about any
|
||||
return value from the child process, pass the `ignore' symbol as
|
||||
the second argument (if you don't, and never call `async-get', it
|
||||
will leave *emacs* process buffers hanging around):
|
||||
|
||||
(async-start
|
||||
(lambda ()
|
||||
(delete-file \"a remote file on a slow link\" nil))
|
||||
'ignore)
|
||||
|
||||
Note: Even when FINISH-FUNC is present, a future is still
|
||||
returned except that it yields no value (since the value is
|
||||
passed to FINISH-FUNC). Call `async-get' on such a future always
|
||||
returns nil. It can still be useful, however, as an argument to
|
||||
`async-ready' or `async-wait'.
|
||||
|
||||
\(fn START-FUNC &optional FINISH-FUNC)" nil nil)
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "async" '("async-")))
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil "async-bytecomp" "async-bytecomp.el" (0 0 0
|
||||
;;;;;; 0))
|
||||
;;; Generated autoloads from async-bytecomp.el
|
||||
|
||||
(autoload 'async-byte-recompile-directory "async-bytecomp" "\
|
||||
Compile all *.el files in DIRECTORY asynchronously.
|
||||
All *.elc files are systematically deleted before proceeding.
|
||||
|
||||
\(fn DIRECTORY &optional QUIET)" nil nil)
|
||||
|
||||
(defvar async-bytecomp-package-mode nil "\
|
||||
Non-nil if Async-Bytecomp-Package mode is enabled.
|
||||
See the `async-bytecomp-package-mode' command
|
||||
for a description of this minor mode.
|
||||
Setting this variable directly does not take effect;
|
||||
either customize it (see the info node `Easy Customization')
|
||||
or call the function `async-bytecomp-package-mode'.")
|
||||
|
||||
(custom-autoload 'async-bytecomp-package-mode "async-bytecomp" nil)
|
||||
|
||||
(autoload 'async-bytecomp-package-mode "async-bytecomp" "\
|
||||
Byte compile asynchronously packages installed with package.el.
|
||||
Async compilation of packages can be controlled by
|
||||
`async-bytecomp-allowed-packages'.
|
||||
|
||||
\(fn &optional ARG)" t nil)
|
||||
|
||||
(autoload 'async-byte-compile-file "async-bytecomp" "\
|
||||
Byte compile Lisp code FILE asynchronously.
|
||||
|
||||
Same as `byte-compile-file' but asynchronous.
|
||||
|
||||
\(fn FILE)" t nil)
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "async-bytecomp" '("async-byte")))
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil "dired-async" "dired-async.el" (0 0 0 0))
|
||||
;;; Generated autoloads from dired-async.el
|
||||
|
||||
(defvar dired-async-mode nil "\
|
||||
Non-nil if Dired-Async mode is enabled.
|
||||
See the `dired-async-mode' command
|
||||
for a description of this minor mode.
|
||||
Setting this variable directly does not take effect;
|
||||
either customize it (see the info node `Easy Customization')
|
||||
or call the function `dired-async-mode'.")
|
||||
|
||||
(custom-autoload 'dired-async-mode "dired-async" nil)
|
||||
|
||||
(autoload 'dired-async-mode "dired-async" "\
|
||||
Do dired actions asynchronously.
|
||||
|
||||
\(fn &optional ARG)" t nil)
|
||||
|
||||
(autoload 'dired-async-do-copy "dired-async" "\
|
||||
Run ‘dired-do-copy’ asynchronously.
|
||||
|
||||
\(fn &optional ARG)" t nil)
|
||||
|
||||
(autoload 'dired-async-do-symlink "dired-async" "\
|
||||
Run ‘dired-do-symlink’ asynchronously.
|
||||
|
||||
\(fn &optional ARG)" t nil)
|
||||
|
||||
(autoload 'dired-async-do-hardlink "dired-async" "\
|
||||
Run ‘dired-do-hardlink’ asynchronously.
|
||||
|
||||
\(fn &optional ARG)" t nil)
|
||||
|
||||
(autoload 'dired-async-do-rename "dired-async" "\
|
||||
Run ‘dired-do-rename’ asynchronously.
|
||||
|
||||
\(fn &optional ARG)" t nil)
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "dired-async" '("dired-async-")))
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil "smtpmail-async" "smtpmail-async.el" (0 0 0
|
||||
;;;;;; 0))
|
||||
;;; Generated autoloads from smtpmail-async.el
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "smtpmail-async" '("async-smtpmail-")))
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil nil ("async-pkg.el") (0 0 0 0))
|
||||
|
||||
;;;***
|
||||
|
||||
;; Local Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; no-update-autoloads: t
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
;;; async-autoloads.el ends here
|
||||
219
elpa/async-20190503.656/async-bytecomp.el
Normal file
219
elpa/async-20190503.656/async-bytecomp.el
Normal file
@@ -0,0 +1,219 @@
|
||||
;;; async-bytecomp.el --- Compile elisp files asynchronously -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
|
||||
|
||||
;; Authors: John Wiegley <jwiegley@gmail.com>
|
||||
;; Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; Keywords: dired async byte-compile
|
||||
;; X-URL: https://github.com/jwiegley/dired-async
|
||||
|
||||
;; This program is free software; you can redistribute it and/or
|
||||
;; modify it under the terms of the GNU General Public License as
|
||||
;; published by the Free Software Foundation; either version 2, 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 GNU Emacs; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; This package provide the `async-byte-recompile-directory' function
|
||||
;; which allows, as the name says to recompile a directory outside of
|
||||
;; your running emacs.
|
||||
;; The benefit is your files will be compiled in a clean environment without
|
||||
;; the old *.el files loaded.
|
||||
;; Among other things, this fix a bug in package.el which recompile
|
||||
;; the new files in the current environment with the old files loaded, creating
|
||||
;; errors in most packages after upgrades.
|
||||
;;
|
||||
;; NB: This package is advicing the function `package--compile'.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'cl-lib)
|
||||
(require 'async)
|
||||
|
||||
(defcustom async-bytecomp-allowed-packages
|
||||
'(async helm helm-core helm-ls-git helm-ls-hg magit)
|
||||
"Packages in this list will be compiled asynchronously by `package--compile'.
|
||||
All the dependencies of these packages will be compiled async too,
|
||||
so no need to add dependencies to this list.
|
||||
The value of this variable can also be a list with a single element,
|
||||
the symbol `all', in this case packages are always compiled asynchronously."
|
||||
:group 'async
|
||||
:type '(repeat (choice symbol)))
|
||||
|
||||
(defvar async-byte-compile-log-file
|
||||
(concat user-emacs-directory "async-bytecomp.log"))
|
||||
|
||||
;;;###autoload
|
||||
(defun async-byte-recompile-directory (directory &optional quiet)
|
||||
"Compile all *.el files in DIRECTORY asynchronously.
|
||||
All *.elc files are systematically deleted before proceeding."
|
||||
(cl-loop with dir = (directory-files directory t "\\.elc\\'")
|
||||
unless dir return nil
|
||||
for f in dir
|
||||
when (file-exists-p f) do (delete-file f))
|
||||
;; Ensure async is reloaded when async.elc is deleted.
|
||||
;; This happen when recompiling its own directory.
|
||||
(load "async")
|
||||
(let ((call-back
|
||||
(lambda (&optional _ignore)
|
||||
(if (file-exists-p async-byte-compile-log-file)
|
||||
(let ((buf (get-buffer-create byte-compile-log-buffer))
|
||||
(n 0))
|
||||
(with-current-buffer buf
|
||||
(goto-char (point-max))
|
||||
(let ((inhibit-read-only t))
|
||||
(insert-file-contents async-byte-compile-log-file)
|
||||
(compilation-mode))
|
||||
(display-buffer buf)
|
||||
(delete-file async-byte-compile-log-file)
|
||||
(unless quiet
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward "^.*:Error:" nil t)
|
||||
(cl-incf n)))
|
||||
(if (> n 0)
|
||||
(message "Failed to compile %d files in directory `%s'" n directory)
|
||||
(message "Directory `%s' compiled asynchronously with warnings" directory)))))
|
||||
(unless quiet
|
||||
(message "Directory `%s' compiled asynchronously with success" directory))))))
|
||||
(async-start
|
||||
`(lambda ()
|
||||
(require 'bytecomp)
|
||||
,(async-inject-variables "\\`\\(load-path\\)\\|byte\\'")
|
||||
(let ((default-directory (file-name-as-directory ,directory))
|
||||
error-data)
|
||||
(add-to-list 'load-path default-directory)
|
||||
(byte-recompile-directory ,directory 0 t)
|
||||
(when (get-buffer byte-compile-log-buffer)
|
||||
(setq error-data (with-current-buffer byte-compile-log-buffer
|
||||
(buffer-substring-no-properties (point-min) (point-max))))
|
||||
(unless (string= error-data "")
|
||||
(with-temp-file ,async-byte-compile-log-file
|
||||
(erase-buffer)
|
||||
(insert error-data))))))
|
||||
call-back)
|
||||
(unless quiet (message "Started compiling asynchronously directory %s" directory))))
|
||||
|
||||
(defvar package-archive-contents)
|
||||
(defvar package-alist)
|
||||
(declare-function package-desc-reqs "package.el" (cl-x))
|
||||
|
||||
(defun async-bytecomp--get-package-deps (pkg &optional only)
|
||||
;; Same as `package--get-deps' but parse instead `package-archive-contents'
|
||||
;; because PKG is not already installed and not present in `package-alist'.
|
||||
;; However fallback to `package-alist' in case PKG no more present
|
||||
;; in `package-archive-contents' due to modification to `package-archives'.
|
||||
;; See issue #58.
|
||||
(let* ((pkg-desc (cadr (or (assq pkg package-archive-contents)
|
||||
(assq pkg package-alist))))
|
||||
(direct-deps (cl-loop for p in (package-desc-reqs pkg-desc)
|
||||
for name = (car p)
|
||||
when (or (assq name package-archive-contents)
|
||||
(assq name package-alist))
|
||||
collect name))
|
||||
(indirect-deps (unless (eq only 'direct)
|
||||
(delete-dups
|
||||
(cl-loop for p in direct-deps append
|
||||
(async-bytecomp--get-package-deps p))))))
|
||||
(cl-case only
|
||||
(direct direct-deps)
|
||||
(separate (list direct-deps indirect-deps))
|
||||
(indirect indirect-deps)
|
||||
(t (delete-dups (append direct-deps indirect-deps))))))
|
||||
|
||||
(defun async-bytecomp-get-allowed-pkgs ()
|
||||
(when (and async-bytecomp-allowed-packages
|
||||
(listp async-bytecomp-allowed-packages))
|
||||
(if package-archive-contents
|
||||
(cl-loop for p in async-bytecomp-allowed-packages
|
||||
when (assq p package-archive-contents)
|
||||
append (async-bytecomp--get-package-deps p) into reqs
|
||||
finally return
|
||||
(delete-dups
|
||||
(append async-bytecomp-allowed-packages reqs)))
|
||||
async-bytecomp-allowed-packages)))
|
||||
|
||||
(defadvice package--compile (around byte-compile-async)
|
||||
(let ((cur-package (package-desc-name pkg-desc))
|
||||
(pkg-dir (package-desc-dir pkg-desc)))
|
||||
(if (or (equal async-bytecomp-allowed-packages '(all))
|
||||
(memq cur-package (async-bytecomp-get-allowed-pkgs)))
|
||||
(progn
|
||||
(when (eq cur-package 'async)
|
||||
(fmakunbound 'async-byte-recompile-directory))
|
||||
;; Add to `load-path' the latest version of async and
|
||||
;; reload it when reinstalling async.
|
||||
(when (string= cur-package "async")
|
||||
(cl-pushnew pkg-dir load-path)
|
||||
(load "async-bytecomp"))
|
||||
;; `async-byte-recompile-directory' will add directory
|
||||
;; as needed to `load-path'.
|
||||
(async-byte-recompile-directory (package-desc-dir pkg-desc) t))
|
||||
ad-do-it)))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode async-bytecomp-package-mode
|
||||
"Byte compile asynchronously packages installed with package.el.
|
||||
Async compilation of packages can be controlled by
|
||||
`async-bytecomp-allowed-packages'."
|
||||
:group 'async
|
||||
:global t
|
||||
(if async-bytecomp-package-mode
|
||||
(ad-activate 'package--compile)
|
||||
(ad-deactivate 'package--compile)))
|
||||
|
||||
;;;###autoload
|
||||
(defun async-byte-compile-file (file)
|
||||
"Byte compile Lisp code FILE asynchronously.
|
||||
|
||||
Same as `byte-compile-file' but asynchronous."
|
||||
(interactive "fFile: ")
|
||||
(let ((call-back
|
||||
(lambda (&optional _ignore)
|
||||
(let ((bn (file-name-nondirectory file)))
|
||||
(if (file-exists-p async-byte-compile-log-file)
|
||||
(let ((buf (get-buffer-create byte-compile-log-buffer))
|
||||
start)
|
||||
(with-current-buffer buf
|
||||
(goto-char (setq start (point-max)))
|
||||
(let ((inhibit-read-only t))
|
||||
(insert-file-contents async-byte-compile-log-file)
|
||||
(compilation-mode))
|
||||
(display-buffer buf)
|
||||
(delete-file async-byte-compile-log-file)
|
||||
(save-excursion
|
||||
(goto-char start)
|
||||
(if (re-search-forward "^.*:Error:" nil t)
|
||||
(message "Failed to compile `%s'" bn)
|
||||
(message "`%s' compiled asynchronously with warnings" bn)))))
|
||||
(message "`%s' compiled asynchronously with success" bn))))))
|
||||
(async-start
|
||||
`(lambda ()
|
||||
(require 'bytecomp)
|
||||
,(async-inject-variables "\\`load-path\\'")
|
||||
(let ((default-directory ,(file-name-directory file)))
|
||||
(add-to-list 'load-path default-directory)
|
||||
(byte-compile-file ,file)
|
||||
(when (get-buffer byte-compile-log-buffer)
|
||||
(setq error-data (with-current-buffer byte-compile-log-buffer
|
||||
(buffer-substring-no-properties (point-min) (point-max))))
|
||||
(unless (string= error-data "")
|
||||
(with-temp-file ,async-byte-compile-log-file
|
||||
(erase-buffer)
|
||||
(insert error-data))))))
|
||||
call-back)))
|
||||
|
||||
(provide 'async-bytecomp)
|
||||
|
||||
;;; async-bytecomp.el ends here
|
||||
BIN
elpa/async-20190503.656/async-bytecomp.elc
Normal file
BIN
elpa/async-20190503.656/async-bytecomp.elc
Normal file
Binary file not shown.
6
elpa/async-20190503.656/async-pkg.el
Normal file
6
elpa/async-20190503.656/async-pkg.el
Normal file
@@ -0,0 +1,6 @@
|
||||
(define-package "async" "20190503.656" "Asynchronous processing in Emacs" 'nil :keywords
|
||||
'("async")
|
||||
:url "https://github.com/jwiegley/emacs-async")
|
||||
;; Local Variables:
|
||||
;; no-byte-compile: t
|
||||
;; End:
|
||||
408
elpa/async-20190503.656/async.el
Normal file
408
elpa/async-20190503.656/async.el
Normal file
@@ -0,0 +1,408 @@
|
||||
;;; async.el --- Asynchronous processing in Emacs -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: John Wiegley <jwiegley@gmail.com>
|
||||
;; Created: 18 Jun 2012
|
||||
;; Version: 1.9.3
|
||||
|
||||
;; Keywords: async
|
||||
;; X-URL: https://github.com/jwiegley/emacs-async
|
||||
|
||||
;; This program is free software; you can redistribute it and/or
|
||||
;; modify it under the terms of the GNU General Public License as
|
||||
;; published by the Free Software Foundation; either version 2, 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 GNU Emacs; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Adds the ability to call asynchronous functions and process with ease. See
|
||||
;; the documentation for `async-start' and `async-start-process'.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(eval-when-compile (require 'cl-lib))
|
||||
|
||||
(defgroup async nil
|
||||
"Simple asynchronous processing in Emacs"
|
||||
:group 'emacs)
|
||||
|
||||
(defcustom async-variables-noprops-function #'async--purecopy
|
||||
"Default function to remove text properties in variables."
|
||||
:group 'async
|
||||
:type 'function)
|
||||
|
||||
(defvar async-debug nil)
|
||||
(defvar async-send-over-pipe t)
|
||||
(defvar async-in-child-emacs nil)
|
||||
(defvar async-callback nil)
|
||||
(defvar async-callback-for-process nil)
|
||||
(defvar async-callback-value nil)
|
||||
(defvar async-callback-value-set nil)
|
||||
(defvar async-current-process nil)
|
||||
(defvar async--procvar nil)
|
||||
|
||||
(defun async--purecopy (object)
|
||||
"Remove text properties in OBJECT.
|
||||
|
||||
Argument OBJECT may be a list or a string, if anything else it
|
||||
is returned unmodified."
|
||||
(cond ((stringp object)
|
||||
(substring-no-properties object))
|
||||
((consp object)
|
||||
(cl-loop for elm in object
|
||||
;; A string.
|
||||
if (stringp elm)
|
||||
collect (substring-no-properties elm)
|
||||
else
|
||||
;; Proper lists.
|
||||
if (and (consp elm) (null (cdr (last elm))))
|
||||
collect (async--purecopy elm)
|
||||
else
|
||||
;; Dotted lists.
|
||||
;; We handle here only dotted list where car and cdr
|
||||
;; are atoms i.e. (x . y) and not (x . (x . y)) or
|
||||
;; (x . (x y)) which should fit most cases.
|
||||
if (and (consp elm) (cdr (last elm)))
|
||||
collect (let ((key (car elm))
|
||||
(val (cdr elm)))
|
||||
(cons (if (stringp key)
|
||||
(substring-no-properties key)
|
||||
key)
|
||||
(if (stringp val)
|
||||
(substring-no-properties val)
|
||||
val)))
|
||||
else
|
||||
collect elm))
|
||||
(t object)))
|
||||
|
||||
(defun async-inject-variables
|
||||
(include-regexp &optional predicate exclude-regexp noprops)
|
||||
"Return a `setq' form that replicates part of the calling environment.
|
||||
|
||||
It sets the value for every variable matching INCLUDE-REGEXP and
|
||||
also PREDICATE. It will not perform injection for any variable
|
||||
matching EXCLUDE-REGEXP (if present) or representing a syntax-table
|
||||
i.e. ending by \"-syntax-table\".
|
||||
When NOPROPS is non nil it tries to strip out text properties of each
|
||||
variable's value with `async-variables-noprops-function'.
|
||||
|
||||
It is intended to be used as follows:
|
||||
|
||||
(async-start
|
||||
`(lambda ()
|
||||
(require 'smtpmail)
|
||||
(with-temp-buffer
|
||||
(insert ,(buffer-substring-no-properties (point-min) (point-max)))
|
||||
;; Pass in the variable environment for smtpmail
|
||||
,(async-inject-variables \"\\`\\(smtpmail\\|\\(user-\\)?mail\\)-\")
|
||||
(smtpmail-send-it)))
|
||||
'ignore)"
|
||||
`(setq
|
||||
,@(let (bindings)
|
||||
(mapatoms
|
||||
(lambda (sym)
|
||||
(let* ((sname (and (boundp sym) (symbol-name sym)))
|
||||
(value (and sname (symbol-value sym))))
|
||||
(when (and sname
|
||||
(or (null include-regexp)
|
||||
(string-match include-regexp sname))
|
||||
(or (null exclude-regexp)
|
||||
(not (string-match exclude-regexp sname)))
|
||||
(not (string-match "-syntax-table\\'" sname)))
|
||||
(unless (or (stringp value)
|
||||
(memq value '(nil t))
|
||||
(numberp value)
|
||||
(vectorp value))
|
||||
(setq value `(quote ,value)))
|
||||
(when noprops
|
||||
(setq value (funcall async-variables-noprops-function
|
||||
value)))
|
||||
(when (or (null predicate)
|
||||
(funcall predicate sym))
|
||||
(setq bindings (cons value bindings)
|
||||
bindings (cons sym bindings)))))))
|
||||
bindings)))
|
||||
|
||||
(defalias 'async-inject-environment 'async-inject-variables)
|
||||
|
||||
(defun async-handle-result (func result buf)
|
||||
(if (null func)
|
||||
(progn
|
||||
(set (make-local-variable 'async-callback-value) result)
|
||||
(set (make-local-variable 'async-callback-value-set) t))
|
||||
(unwind-protect
|
||||
(if (and (listp result)
|
||||
(eq 'async-signal (nth 0 result)))
|
||||
(signal (car (nth 1 result))
|
||||
(cdr (nth 1 result)))
|
||||
(funcall func result))
|
||||
(unless async-debug
|
||||
(kill-buffer buf)))))
|
||||
|
||||
(defun async-when-done (proc &optional _change)
|
||||
"Process sentinel used to retrieve the value from the child process."
|
||||
(when (eq 'exit (process-status proc))
|
||||
(with-current-buffer (process-buffer proc)
|
||||
(let ((async-current-process proc))
|
||||
(if (= 0 (process-exit-status proc))
|
||||
(if async-callback-for-process
|
||||
(if async-callback
|
||||
(prog1
|
||||
(funcall async-callback proc)
|
||||
(unless async-debug
|
||||
(kill-buffer (current-buffer))))
|
||||
(set (make-local-variable 'async-callback-value) proc)
|
||||
(set (make-local-variable 'async-callback-value-set) t))
|
||||
(goto-char (point-max))
|
||||
(backward-sexp)
|
||||
(async-handle-result async-callback (read (current-buffer))
|
||||
(current-buffer)))
|
||||
(set (make-local-variable 'async-callback-value)
|
||||
(list 'error
|
||||
(format "Async process '%s' failed with exit code %d"
|
||||
(process-name proc) (process-exit-status proc))))
|
||||
(set (make-local-variable 'async-callback-value-set) t))))))
|
||||
|
||||
(defun async--receive-sexp (&optional stream)
|
||||
(let ((sexp (decode-coding-string (base64-decode-string
|
||||
(read stream)) 'utf-8-auto))
|
||||
;; Parent expects UTF-8 encoded text.
|
||||
(coding-system-for-write 'utf-8-auto))
|
||||
(if async-debug
|
||||
(message "Received sexp {{{%s}}}" (pp-to-string sexp)))
|
||||
(setq sexp (read sexp))
|
||||
(if async-debug
|
||||
(message "Read sexp {{{%s}}}" (pp-to-string sexp)))
|
||||
(eval sexp)))
|
||||
|
||||
(defun async--insert-sexp (sexp)
|
||||
(let (print-level
|
||||
print-length
|
||||
(print-escape-nonascii t)
|
||||
(print-circle t))
|
||||
(prin1 sexp (current-buffer))
|
||||
;; Just in case the string we're sending might contain EOF
|
||||
(encode-coding-region (point-min) (point-max) 'utf-8-auto)
|
||||
(base64-encode-region (point-min) (point-max) t)
|
||||
(goto-char (point-min)) (insert ?\")
|
||||
(goto-char (point-max)) (insert ?\" ?\n)))
|
||||
|
||||
(defun async--transmit-sexp (process sexp)
|
||||
(with-temp-buffer
|
||||
(if async-debug
|
||||
(message "Transmitting sexp {{{%s}}}" (pp-to-string sexp)))
|
||||
(async--insert-sexp sexp)
|
||||
(process-send-region process (point-min) (point-max))))
|
||||
|
||||
(defun async-batch-invoke ()
|
||||
"Called from the child Emacs process' command-line."
|
||||
;; Make sure 'message' and 'prin1' encode stuff in UTF-8, as parent
|
||||
;; process expects.
|
||||
(let ((coding-system-for-write 'utf-8-auto))
|
||||
(setq async-in-child-emacs t
|
||||
debug-on-error async-debug)
|
||||
(if debug-on-error
|
||||
(prin1 (funcall
|
||||
(async--receive-sexp (unless async-send-over-pipe
|
||||
command-line-args-left))))
|
||||
(condition-case err
|
||||
(prin1 (funcall
|
||||
(async--receive-sexp (unless async-send-over-pipe
|
||||
command-line-args-left))))
|
||||
(error
|
||||
(prin1 (list 'async-signal err)))))))
|
||||
|
||||
(defun async-ready (future)
|
||||
"Query a FUTURE to see if it is ready.
|
||||
|
||||
I.e., if no blocking
|
||||
would result from a call to `async-get' on that FUTURE."
|
||||
(and (memq (process-status future) '(exit signal))
|
||||
(let ((buf (process-buffer future)))
|
||||
(if (buffer-live-p buf)
|
||||
(with-current-buffer buf
|
||||
async-callback-value-set)
|
||||
t))))
|
||||
|
||||
(defun async-wait (future)
|
||||
"Wait for FUTURE to become ready."
|
||||
(while (not (async-ready future))
|
||||
(sleep-for 0.05)))
|
||||
|
||||
(defun async-get (future)
|
||||
"Get the value from process FUTURE when it is ready.
|
||||
FUTURE is returned by `async-start' or `async-start-process' when
|
||||
its FINISH-FUNC is nil."
|
||||
(and future (async-wait future))
|
||||
(let ((buf (process-buffer future)))
|
||||
(when (buffer-live-p buf)
|
||||
(with-current-buffer buf
|
||||
(async-handle-result
|
||||
#'identity async-callback-value (current-buffer))))))
|
||||
|
||||
(defun async-message-p (value)
|
||||
"Return true of VALUE is an async.el message packet."
|
||||
(and (listp value)
|
||||
(plist-get value :async-message)))
|
||||
|
||||
(defun async-send (&rest args)
|
||||
"Send the given messages to the asychronous Emacs PROCESS."
|
||||
(let ((args (append args '(:async-message t))))
|
||||
(if async-in-child-emacs
|
||||
(if async-callback
|
||||
(funcall async-callback args))
|
||||
(async--transmit-sexp (car args) (list 'quote (cdr args))))))
|
||||
|
||||
(defun async-receive ()
|
||||
"Send the given messages to the asychronous Emacs PROCESS."
|
||||
(async--receive-sexp))
|
||||
|
||||
;;;###autoload
|
||||
(defun async-start-process (name program finish-func &rest program-args)
|
||||
"Start the executable PROGRAM asynchronously. See `async-start'.
|
||||
PROGRAM is passed PROGRAM-ARGS, calling FINISH-FUNC with the
|
||||
process object when done. If FINISH-FUNC is nil, the future
|
||||
object will return the process object when the program is
|
||||
finished. Set DEFAULT-DIRECTORY to change PROGRAM's current
|
||||
working directory."
|
||||
(let* ((buf (generate-new-buffer (concat "*" name "*")))
|
||||
(proc (let ((process-connection-type nil))
|
||||
(apply #'start-process name buf program program-args))))
|
||||
(with-current-buffer buf
|
||||
(set (make-local-variable 'async-callback) finish-func)
|
||||
(set-process-sentinel proc #'async-when-done)
|
||||
(unless (string= name "emacs")
|
||||
(set (make-local-variable 'async-callback-for-process) t))
|
||||
proc)))
|
||||
|
||||
(defvar async-quiet-switch "-Q"
|
||||
"The Emacs parameter to use to call emacs without config.
|
||||
Can be one of \"-Q\" or \"-q\".
|
||||
Default is \"-Q\" but it is sometimes useful to use \"-q\" to have a
|
||||
enhanced config or some more variables loaded.")
|
||||
|
||||
;;;###autoload
|
||||
(defun async-start (start-func &optional finish-func)
|
||||
"Execute START-FUNC (often a lambda) in a subordinate Emacs process.
|
||||
When done, the return value is passed to FINISH-FUNC. Example:
|
||||
|
||||
(async-start
|
||||
;; What to do in the child process
|
||||
(lambda ()
|
||||
(message \"This is a test\")
|
||||
(sleep-for 3)
|
||||
222)
|
||||
|
||||
;; What to do when it finishes
|
||||
(lambda (result)
|
||||
(message \"Async process done, result should be 222: %s\"
|
||||
result)))
|
||||
|
||||
If FINISH-FUNC is nil or missing, a future is returned that can
|
||||
be inspected using `async-get', blocking until the value is
|
||||
ready. Example:
|
||||
|
||||
(let ((proc (async-start
|
||||
;; What to do in the child process
|
||||
(lambda ()
|
||||
(message \"This is a test\")
|
||||
(sleep-for 3)
|
||||
222))))
|
||||
|
||||
(message \"I'm going to do some work here\") ;; ....
|
||||
|
||||
(message \"Waiting on async process, result should be 222: %s\"
|
||||
(async-get proc)))
|
||||
|
||||
If you don't want to use a callback, and you don't care about any
|
||||
return value from the child process, pass the `ignore' symbol as
|
||||
the second argument (if you don't, and never call `async-get', it
|
||||
will leave *emacs* process buffers hanging around):
|
||||
|
||||
(async-start
|
||||
(lambda ()
|
||||
(delete-file \"a remote file on a slow link\" nil))
|
||||
'ignore)
|
||||
|
||||
Note: Even when FINISH-FUNC is present, a future is still
|
||||
returned except that it yields no value (since the value is
|
||||
passed to FINISH-FUNC). Call `async-get' on such a future always
|
||||
returns nil. It can still be useful, however, as an argument to
|
||||
`async-ready' or `async-wait'."
|
||||
(let ((sexp start-func)
|
||||
;; Subordinate Emacs will send text encoded in UTF-8.
|
||||
(coding-system-for-read 'utf-8-auto))
|
||||
(setq async--procvar
|
||||
(async-start-process
|
||||
"emacs" (file-truename
|
||||
(expand-file-name invocation-name
|
||||
invocation-directory))
|
||||
finish-func
|
||||
async-quiet-switch "-l"
|
||||
;; Using `locate-library' ensure we use the right file
|
||||
;; when the .elc have been deleted.
|
||||
(locate-library "async")
|
||||
"-batch" "-f" "async-batch-invoke"
|
||||
(if async-send-over-pipe
|
||||
"<none>"
|
||||
(with-temp-buffer
|
||||
(async--insert-sexp (list 'quote sexp))
|
||||
(buffer-string)))))
|
||||
(if async-send-over-pipe
|
||||
(async--transmit-sexp async--procvar (list 'quote sexp)))
|
||||
async--procvar))
|
||||
|
||||
(defmacro async-sandbox(func)
|
||||
"Evaluate FUNC in a separate Emacs process, synchronously."
|
||||
`(async-get (async-start ,func)))
|
||||
|
||||
(defun async--fold-left (fn forms bindings)
|
||||
(let ((res forms))
|
||||
(dolist (binding bindings)
|
||||
(setq res (funcall fn res
|
||||
(if (listp binding)
|
||||
binding
|
||||
(list binding)))))
|
||||
res))
|
||||
|
||||
(defmacro async-let (bindings &rest forms)
|
||||
"Implements `let', but each binding is established asynchronously.
|
||||
For example:
|
||||
|
||||
(async-let ((x (foo))
|
||||
(y (bar)))
|
||||
(message \"%s %s\" x y))
|
||||
|
||||
expands to ==>
|
||||
|
||||
(async-start (foo)
|
||||
(lambda (x)
|
||||
(async-start (bar)
|
||||
(lambda (y)
|
||||
(message \"%s %s\" x y)))))"
|
||||
(declare (indent 1))
|
||||
(async--fold-left
|
||||
(lambda (acc binding)
|
||||
(let ((fun (pcase (cadr binding)
|
||||
((and (pred functionp) f) f)
|
||||
(f `(lambda () ,f)))))
|
||||
`(async-start ,fun
|
||||
(lambda (,(car binding))
|
||||
,acc))))
|
||||
`(progn ,@forms)
|
||||
(reverse bindings)))
|
||||
|
||||
(provide 'async)
|
||||
|
||||
;;; async.el ends here
|
||||
BIN
elpa/async-20190503.656/async.elc
Normal file
BIN
elpa/async-20190503.656/async.elc
Normal file
Binary file not shown.
408
elpa/async-20190503.656/dired-async.el
Normal file
408
elpa/async-20190503.656/dired-async.el
Normal file
@@ -0,0 +1,408 @@
|
||||
;;; dired-async.el --- Asynchronous dired actions -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
|
||||
|
||||
;; Authors: John Wiegley <jwiegley@gmail.com>
|
||||
;; Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; Keywords: dired async network
|
||||
;; X-URL: https://github.com/jwiegley/dired-async
|
||||
|
||||
;; This program is free software; you can redistribute it and/or
|
||||
;; modify it under the terms of the GNU General Public License as
|
||||
;; published by the Free Software Foundation; either version 2, 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 GNU Emacs; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This file provide a redefinition of `dired-create-file' function,
|
||||
;; performs copies, moves and all what is handled by `dired-create-file'
|
||||
;; in the background using a slave Emacs process,
|
||||
;; by means of the async.el module.
|
||||
;; To use it, put this in your .emacs:
|
||||
|
||||
;; (dired-async-mode 1)
|
||||
|
||||
;; This will enable async copy/rename etc...
|
||||
;; in dired and helm.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'cl-lib)
|
||||
(require 'dired-aux)
|
||||
(require 'async)
|
||||
|
||||
(eval-when-compile
|
||||
(defvar async-callback))
|
||||
|
||||
(defgroup dired-async nil
|
||||
"Copy rename files asynchronously from dired."
|
||||
:group 'dired)
|
||||
|
||||
(defcustom dired-async-env-variables-regexp
|
||||
"\\`\\(tramp-\\(default\\|connection\\|remote\\)\\|ange-ftp\\)-.*"
|
||||
"Variables matching this regexp will be loaded on Child Emacs."
|
||||
:type 'regexp
|
||||
:group 'dired-async)
|
||||
|
||||
(defcustom dired-async-message-function 'dired-async-mode-line-message
|
||||
"Function to use to notify result when operation finish.
|
||||
Should take same args as `message'."
|
||||
:group 'dired-async
|
||||
:type 'function)
|
||||
|
||||
(defcustom dired-async-log-file "/tmp/dired-async.log"
|
||||
"File use to communicate errors from Child Emacs to host Emacs."
|
||||
:group 'dired-async
|
||||
:type 'string)
|
||||
|
||||
(defcustom dired-async-mode-lighter '(:eval
|
||||
(when (eq major-mode 'dired-mode)
|
||||
" Async"))
|
||||
"Mode line lighter used for `dired-async-mode'."
|
||||
:group 'dired-async
|
||||
:risky t
|
||||
:type 'sexp)
|
||||
|
||||
(defface dired-async-message
|
||||
'((t (:foreground "yellow")))
|
||||
"Face used for mode-line message."
|
||||
:group 'dired-async)
|
||||
|
||||
(defface dired-async-failures
|
||||
'((t (:foreground "red")))
|
||||
"Face used for mode-line message."
|
||||
:group 'dired-async)
|
||||
|
||||
(defface dired-async-mode-message
|
||||
'((t (:foreground "Gold")))
|
||||
"Face used for `dired-async--modeline-mode' lighter."
|
||||
:group 'dired-async)
|
||||
|
||||
(define-minor-mode dired-async--modeline-mode
|
||||
"Notify mode-line that an async process run."
|
||||
:group 'dired-async
|
||||
:global t
|
||||
:lighter (:eval (propertize (format " [%s Async job(s) running]"
|
||||
(length (dired-async-processes)))
|
||||
'face 'dired-async-mode-message))
|
||||
(unless dired-async--modeline-mode
|
||||
(let ((visible-bell t)) (ding))))
|
||||
|
||||
(defun dired-async-mode-line-message (text face &rest args)
|
||||
"Notify end of operation in `mode-line'."
|
||||
(message nil)
|
||||
(let ((mode-line-format (concat
|
||||
" " (propertize
|
||||
(if args
|
||||
(apply #'format text args)
|
||||
text)
|
||||
'face face))))
|
||||
(force-mode-line-update)
|
||||
(sit-for 3)
|
||||
(force-mode-line-update)))
|
||||
|
||||
(defun dired-async-processes ()
|
||||
(cl-loop for p in (process-list)
|
||||
when (cl-loop for c in (process-command p) thereis
|
||||
(string= "async-batch-invoke" c))
|
||||
collect p))
|
||||
|
||||
(defun dired-async-kill-process ()
|
||||
(interactive)
|
||||
(let* ((processes (dired-async-processes))
|
||||
(proc (car (last processes))))
|
||||
(and proc (delete-process proc))
|
||||
(unless (> (length processes) 1)
|
||||
(dired-async--modeline-mode -1))))
|
||||
|
||||
(defun dired-async-after-file-create (total operation failures skipped)
|
||||
"Callback function used for operation handled by `dired-create-file'."
|
||||
(unless (dired-async-processes)
|
||||
;; Turn off mode-line notification
|
||||
;; only when last process end.
|
||||
(dired-async--modeline-mode -1))
|
||||
(when operation
|
||||
(if (file-exists-p dired-async-log-file)
|
||||
(progn
|
||||
(pop-to-buffer (get-buffer-create dired-log-buffer))
|
||||
(goto-char (point-max))
|
||||
(setq inhibit-read-only t)
|
||||
(insert "Error: ")
|
||||
(insert-file-contents dired-async-log-file)
|
||||
(special-mode)
|
||||
(shrink-window-if-larger-than-buffer)
|
||||
(delete-file dired-async-log-file))
|
||||
(run-with-timer
|
||||
0.1 nil
|
||||
(lambda ()
|
||||
;; First send error messages.
|
||||
(cond (failures
|
||||
(funcall dired-async-message-function
|
||||
"%s failed for %d of %d file%s -- See *Dired log* buffer"
|
||||
'dired-async-failures
|
||||
(car operation) (length failures)
|
||||
total (dired-plural-s total)))
|
||||
(skipped
|
||||
(funcall dired-async-message-function
|
||||
"%s: %d of %d file%s skipped -- See *Dired log* buffer"
|
||||
'dired-async-failures
|
||||
(car operation) (length skipped) total
|
||||
(dired-plural-s total))))
|
||||
(when dired-buffers
|
||||
(cl-loop for (_f . b) in dired-buffers
|
||||
when (buffer-live-p b)
|
||||
do (with-current-buffer b
|
||||
(when (and (not (file-remote-p default-directory nil t))
|
||||
(file-exists-p default-directory))
|
||||
(revert-buffer nil t)))))
|
||||
;; Finally send the success message.
|
||||
(funcall dired-async-message-function
|
||||
"Asynchronous %s of %s on %s file%s done"
|
||||
'dired-async-message
|
||||
(car operation) (cadr operation)
|
||||
total (dired-plural-s total)))))))
|
||||
|
||||
(defun dired-async-maybe-kill-ftp ()
|
||||
"Return a form to kill ftp process in child emacs."
|
||||
(quote
|
||||
(progn
|
||||
(require 'cl-lib)
|
||||
(let ((buf (cl-loop for b in (buffer-list)
|
||||
thereis (and (string-match
|
||||
"\\`\\*ftp.*"
|
||||
(buffer-name b)) b))))
|
||||
(when buf (kill-buffer buf))))))
|
||||
|
||||
(defvar overwrite-query)
|
||||
(defun dired-async-create-files (file-creator operation fn-list name-constructor
|
||||
&optional _marker-char)
|
||||
"Same as `dired-create-files' but asynchronous.
|
||||
|
||||
See `dired-create-files' for the behavior of arguments."
|
||||
(setq overwrite-query nil)
|
||||
(let ((total (length fn-list))
|
||||
failures async-fn-list skipped callback
|
||||
async-quiet-switch)
|
||||
(let (to)
|
||||
(dolist (from fn-list)
|
||||
(setq to (funcall name-constructor from))
|
||||
(if (and (equal to from)
|
||||
(null (eq file-creator 'backup-file)))
|
||||
(progn
|
||||
(setq to nil)
|
||||
(dired-log "Cannot %s to same file: %s\n"
|
||||
(downcase operation) from)))
|
||||
(if (not to)
|
||||
(setq skipped (cons (dired-make-relative from) skipped))
|
||||
(let* ((overwrite (and (null (eq file-creator 'backup-file))
|
||||
(file-exists-p to)))
|
||||
(dired-overwrite-confirmed ; for dired-handle-overwrite
|
||||
(and overwrite
|
||||
(let ((help-form `(format "\
|
||||
Type SPC or `y' to overwrite file `%s',
|
||||
DEL or `n' to skip to next,
|
||||
ESC or `q' to not overwrite any of the remaining files,
|
||||
`!' to overwrite all remaining files with no more questions." ,to)))
|
||||
(dired-query 'overwrite-query "Overwrite `%s'?" to)))))
|
||||
;; Handle the `dired-copy-file' file-creator specially
|
||||
;; When copying a directory to another directory or
|
||||
;; possibly to itself or one of its subdirectories.
|
||||
;; e.g "~/foo/" => "~/test/"
|
||||
;; or "~/foo/" =>"~/foo/"
|
||||
;; or "~/foo/ => ~/foo/bar/")
|
||||
;; In this case the 'name-constructor' have set the destination
|
||||
;; TO to "~/test/foo" because the old emacs23 behavior
|
||||
;; of `copy-directory' was to not create the subdirectory
|
||||
;; and instead copy the contents.
|
||||
;; With the new behavior of `copy-directory'
|
||||
;; (similar to the `cp' shell command) we don't
|
||||
;; need such a construction of the target directory,
|
||||
;; so modify the destination TO to "~/test/" instead of "~/test/foo/".
|
||||
(let ((destname (file-name-directory to)))
|
||||
(when (and (file-directory-p from)
|
||||
(file-directory-p to)
|
||||
(eq file-creator 'dired-copy-file))
|
||||
(setq to destname))
|
||||
;; If DESTNAME is a subdirectory of FROM, not a symlink,
|
||||
;; and the method in use is copying, signal an error.
|
||||
(and (eq t (car (file-attributes destname)))
|
||||
(eq file-creator 'dired-copy-file)
|
||||
(file-in-directory-p destname from)
|
||||
(error "Cannot copy `%s' into its subdirectory `%s'"
|
||||
from to)))
|
||||
(if overwrite
|
||||
(or (and dired-overwrite-confirmed
|
||||
(push (cons from to) async-fn-list))
|
||||
(progn
|
||||
(push (dired-make-relative from) failures)
|
||||
(dired-log "%s `%s' to `%s' failed\n"
|
||||
operation from to)))
|
||||
(push (cons from to) async-fn-list)))))
|
||||
;; Fix tramp issue #80 with emacs-26, use "-q" only when needed.
|
||||
(setq async-quiet-switch
|
||||
(if (and (boundp 'tramp-cache-read-persistent-data)
|
||||
async-fn-list
|
||||
(cl-loop for (_from . to) in async-fn-list
|
||||
thereis (file-remote-p to)))
|
||||
"-q" "-Q"))
|
||||
;; When failures have been printed to dired log add the date at bob.
|
||||
(when (or failures skipped) (dired-log t))
|
||||
;; When async-fn-list is empty that's mean only one file
|
||||
;; had to be copied and user finally answer NO.
|
||||
;; In this case async process will never start and callback
|
||||
;; will have no chance to run, so notify failures here.
|
||||
(unless async-fn-list
|
||||
(cond (failures
|
||||
(funcall dired-async-message-function
|
||||
"%s failed for %d of %d file%s -- See *Dired log* buffer"
|
||||
'dired-async-failures
|
||||
operation (length failures)
|
||||
total (dired-plural-s total)))
|
||||
(skipped
|
||||
(funcall dired-async-message-function
|
||||
"%s: %d of %d file%s skipped -- See *Dired log* buffer"
|
||||
'dired-async-failures
|
||||
operation (length skipped) total
|
||||
(dired-plural-s total)))))
|
||||
;; Setup callback.
|
||||
(setq callback
|
||||
(lambda (&optional _ignore)
|
||||
(dired-async-after-file-create
|
||||
total (list operation (length async-fn-list)) failures skipped)
|
||||
(when (string= (downcase operation) "rename")
|
||||
(cl-loop for (file . to) in async-fn-list
|
||||
for bf = (get-file-buffer file)
|
||||
for destp = (file-exists-p to)
|
||||
do (and bf destp
|
||||
(with-current-buffer bf
|
||||
(set-visited-file-name to t t))))))))
|
||||
;; Start async process.
|
||||
(when async-fn-list
|
||||
(async-start `(lambda ()
|
||||
(require 'cl-lib) (require 'dired-aux) (require 'dired-x)
|
||||
,(async-inject-variables dired-async-env-variables-regexp)
|
||||
(let ((dired-recursive-copies (quote always))
|
||||
(dired-copy-preserve-time
|
||||
,dired-copy-preserve-time))
|
||||
(setq overwrite-backup-query nil)
|
||||
;; Inline `backup-file' as long as it is not
|
||||
;; available in emacs.
|
||||
(defalias 'backup-file
|
||||
;; Same feature as "cp -f --backup=numbered from to"
|
||||
;; Symlinks are copied as file from source unlike
|
||||
;; `dired-copy-file' which is same as cp -d.
|
||||
;; Directories are omitted.
|
||||
(lambda (from to ok)
|
||||
(cond ((file-directory-p from) (ignore))
|
||||
(t (let ((count 0))
|
||||
(while (let ((attrs (file-attributes to)))
|
||||
(and attrs (null (nth 0 attrs))))
|
||||
(cl-incf count)
|
||||
(setq to (concat (file-name-sans-versions to)
|
||||
(format ".~%s~" count)))))
|
||||
(condition-case err
|
||||
(copy-file from to ok dired-copy-preserve-time)
|
||||
(file-date-error
|
||||
(dired-log "Can't set date on %s:\n%s\n" from err)))))))
|
||||
;; Now run the FILE-CREATOR function on files.
|
||||
(cl-loop with fn = (quote ,file-creator)
|
||||
for (from . dest) in (quote ,async-fn-list)
|
||||
do (condition-case err
|
||||
(funcall fn from dest t)
|
||||
(file-error
|
||||
(dired-log "%s: %s\n" (car err) (cdr err)))
|
||||
nil))
|
||||
(when (get-buffer dired-log-buffer)
|
||||
(dired-log t)
|
||||
(with-current-buffer dired-log-buffer
|
||||
(write-region (point-min) (point-max)
|
||||
,dired-async-log-file))))
|
||||
,(dired-async-maybe-kill-ftp))
|
||||
callback)
|
||||
;; Run mode-line notifications while process running.
|
||||
(dired-async--modeline-mode 1)
|
||||
(message "%s proceeding asynchronously..." operation))))
|
||||
|
||||
(defvar wdired-use-interactive-rename)
|
||||
(defun dired-async-wdired-do-renames (old-fn &rest args)
|
||||
;; Perhaps a better fix would be to ask for renaming BEFORE starting
|
||||
;; OLD-FN when `wdired-use-interactive-rename' is non-nil. For now
|
||||
;; just bind it to nil to ensure no questions will be asked between
|
||||
;; each rename.
|
||||
(let (wdired-use-interactive-rename)
|
||||
(apply old-fn args)))
|
||||
|
||||
(defadvice wdired-do-renames (around wdired-async)
|
||||
(let (wdired-use-interactive-rename)
|
||||
ad-do-it))
|
||||
|
||||
(defadvice dired-create-files (around dired-async)
|
||||
(dired-async-create-files file-creator operation fn-list
|
||||
name-constructor marker-char))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode dired-async-mode
|
||||
"Do dired actions asynchronously."
|
||||
:group 'dired-async
|
||||
:lighter dired-async-mode-lighter
|
||||
:global t
|
||||
(if dired-async-mode
|
||||
(if (fboundp 'advice-add)
|
||||
(progn (advice-add 'dired-create-files :override #'dired-async-create-files)
|
||||
(advice-add 'wdired-do-renames :around #'dired-async-wdired-do-renames))
|
||||
(ad-activate 'dired-create-files)
|
||||
(ad-activate 'wdired-do-renames))
|
||||
(if (fboundp 'advice-remove)
|
||||
(progn (advice-remove 'dired-create-files #'dired-async-create-files)
|
||||
(advice-remove 'wdired-do-renames #'dired-async-wdired-do-renames))
|
||||
(ad-deactivate 'dired-create-files)
|
||||
(ad-deactivate 'wdired-do-renames))))
|
||||
|
||||
(defmacro dired-async--with-async-create-files (&rest body)
|
||||
"Evaluate BODY with ‘dired-create-files’ set to ‘dired-async-create-files’."
|
||||
(declare (indent 0))
|
||||
`(cl-letf (((symbol-function 'dired-create-files) #'dired-async-create-files))
|
||||
,@body))
|
||||
|
||||
;;;###autoload
|
||||
(defun dired-async-do-copy (&optional arg)
|
||||
"Run ‘dired-do-copy’ asynchronously."
|
||||
(interactive "P")
|
||||
(dired-async--with-async-create-files
|
||||
(dired-do-copy arg)))
|
||||
|
||||
;;;###autoload
|
||||
(defun dired-async-do-symlink (&optional arg)
|
||||
"Run ‘dired-do-symlink’ asynchronously."
|
||||
(interactive "P")
|
||||
(dired-async--with-async-create-files
|
||||
(dired-do-symlink arg)))
|
||||
|
||||
;;;###autoload
|
||||
(defun dired-async-do-hardlink (&optional arg)
|
||||
"Run ‘dired-do-hardlink’ asynchronously."
|
||||
(interactive "P")
|
||||
(dired-async--with-async-create-files
|
||||
(dired-do-hardlink arg)))
|
||||
|
||||
;;;###autoload
|
||||
(defun dired-async-do-rename (&optional arg)
|
||||
"Run ‘dired-do-rename’ asynchronously."
|
||||
(interactive "P")
|
||||
(dired-async--with-async-create-files
|
||||
(dired-do-rename arg)))
|
||||
|
||||
(provide 'dired-async)
|
||||
|
||||
;;; dired-async.el ends here
|
||||
BIN
elpa/async-20190503.656/dired-async.elc
Normal file
BIN
elpa/async-20190503.656/dired-async.elc
Normal file
Binary file not shown.
73
elpa/async-20190503.656/smtpmail-async.el
Normal file
73
elpa/async-20190503.656/smtpmail-async.el
Normal file
@@ -0,0 +1,73 @@
|
||||
;;; smtpmail-async.el --- Send e-mail with smtpmail.el asynchronously -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: John Wiegley <jwiegley@gmail.com>
|
||||
;; Created: 18 Jun 2012
|
||||
|
||||
;; Keywords: email async
|
||||
;; X-URL: https://github.com/jwiegley/emacs-async
|
||||
|
||||
;; This program is free software; you can redistribute it and/or
|
||||
;; modify it under the terms of the GNU General Public License as
|
||||
;; published by the Free Software Foundation; either version 2, 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 GNU Emacs; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Send e-mail with smtpmail.el asynchronously. To use:
|
||||
;;
|
||||
;; (require 'smtpmail-async)
|
||||
;;
|
||||
;; (setq send-mail-function 'async-smtpmail-send-it
|
||||
;; message-send-mail-function 'async-smtpmail-send-it)
|
||||
;;
|
||||
;; This assumes you already have smtpmail.el working.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defgroup smtpmail-async nil
|
||||
"Send e-mail with smtpmail.el asynchronously"
|
||||
:group 'smptmail)
|
||||
|
||||
(require 'async)
|
||||
(require 'smtpmail)
|
||||
(require 'message)
|
||||
|
||||
(defvar async-smtpmail-before-send-hook nil
|
||||
"Hook running in the child emacs in `async-smtpmail-send-it'.
|
||||
It is called just before calling `smtpmail-send-it'.")
|
||||
|
||||
(defun async-smtpmail-send-it ()
|
||||
(let ((to (message-field-value "To"))
|
||||
(buf-content (buffer-substring-no-properties
|
||||
(point-min) (point-max))))
|
||||
(message "Delivering message to %s..." to)
|
||||
(async-start
|
||||
`(lambda ()
|
||||
(require 'smtpmail)
|
||||
(with-temp-buffer
|
||||
(insert ,buf-content)
|
||||
(set-buffer-multibyte nil)
|
||||
;; Pass in the variable environment for smtpmail
|
||||
,(async-inject-variables
|
||||
"\\`\\(smtpmail\\|async-smtpmail\\|\\(user-\\)?mail\\)-\\|auth-sources\\|epg\\|nsm"
|
||||
nil "\\`\\(mail-header-format-function\\|smtpmail-address-buffer\\|mail-mode-abbrev-table\\)")
|
||||
(run-hooks 'async-smtpmail-before-send-hook)
|
||||
(smtpmail-send-it)))
|
||||
(lambda (&optional _ignore)
|
||||
(message "Delivering message to %s...done" to)))))
|
||||
|
||||
(provide 'smtpmail-async)
|
||||
|
||||
;;; smtpmail-async.el ends here
|
||||
BIN
elpa/async-20190503.656/smtpmail-async.elc
Normal file
BIN
elpa/async-20190503.656/smtpmail-async.elc
Normal file
Binary file not shown.
71
elpa/auto-complete-20170125.245/auto-complete-autoloads.el
Normal file
71
elpa/auto-complete-20170125.245/auto-complete-autoloads.el
Normal file
@@ -0,0 +1,71 @@
|
||||
;;; auto-complete-autoloads.el --- automatically extracted autoloads
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(add-to-list 'load-path (directory-file-name
|
||||
(or (file-name-directory #$) (car load-path))))
|
||||
|
||||
|
||||
;;;### (autoloads nil "auto-complete" "auto-complete.el" (0 0 0 0))
|
||||
;;; Generated autoloads from auto-complete.el
|
||||
|
||||
(autoload 'auto-complete "auto-complete" "\
|
||||
Start auto-completion at current point.
|
||||
|
||||
\(fn &optional SOURCES)" t nil)
|
||||
|
||||
(autoload 'auto-complete-mode "auto-complete" "\
|
||||
AutoComplete mode
|
||||
|
||||
\(fn &optional ARG)" t nil)
|
||||
|
||||
(defvar global-auto-complete-mode nil "\
|
||||
Non-nil if Global Auto-Complete mode is enabled.
|
||||
See the `global-auto-complete-mode' command
|
||||
for a description of this minor mode.
|
||||
Setting this variable directly does not take effect;
|
||||
either customize it (see the info node `Easy Customization')
|
||||
or call the function `global-auto-complete-mode'.")
|
||||
|
||||
(custom-autoload 'global-auto-complete-mode "auto-complete" nil)
|
||||
|
||||
(autoload 'global-auto-complete-mode "auto-complete" "\
|
||||
Toggle Auto-Complete mode in all buffers.
|
||||
With prefix ARG, enable Global Auto-Complete mode if ARG is positive;
|
||||
otherwise, disable it. If called from Lisp, enable the mode if
|
||||
ARG is omitted or nil.
|
||||
|
||||
Auto-Complete mode is enabled in all buffers where
|
||||
`auto-complete-mode-maybe' would do it.
|
||||
See `auto-complete-mode' for more information on Auto-Complete mode.
|
||||
|
||||
\(fn &optional ARG)" t nil)
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "auto-complete" '("auto-complete-mode" "ac-")))
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil "auto-complete-config" "auto-complete-config.el"
|
||||
;;;;;; (0 0 0 0))
|
||||
;;; Generated autoloads from auto-complete-config.el
|
||||
|
||||
(autoload 'ac-config-default "auto-complete-config" "\
|
||||
|
||||
|
||||
\(fn)" nil nil)
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "auto-complete-config" '("ac-")))
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil nil ("auto-complete-pkg.el") (0 0 0 0))
|
||||
|
||||
;;;***
|
||||
|
||||
;; Local Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; no-update-autoloads: t
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
;;; auto-complete-autoloads.el ends here
|
||||
551
elpa/auto-complete-20170125.245/auto-complete-config.el
Normal file
551
elpa/auto-complete-20170125.245/auto-complete-config.el
Normal file
@@ -0,0 +1,551 @@
|
||||
;;; auto-complete-config.el --- auto-complete additional configuations
|
||||
|
||||
;; Copyright (C) 2009, 2010 Tomohiro Matsuyama
|
||||
|
||||
;; Author: Tomohiro Matsuyama <m2ym.pub@gmail.com>
|
||||
;; Keywords: convenience
|
||||
;; Version: 1.5.0
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'cl-lib)
|
||||
(require 'auto-complete)
|
||||
|
||||
(declare-function semantic-analyze-current-context "semantic/analyze")
|
||||
(declare-function semantic-tag-class "semantic/tag")
|
||||
(declare-function semantic-tag-function-arguments "semantic/tag")
|
||||
(declare-function semantic-format-tag-type "semantic/format")
|
||||
(declare-function semantic-format-tag-name "semantic/format")
|
||||
(declare-function yas-expand-snippet "yasnippet")
|
||||
(declare-function oref "eieio" (obj slot))
|
||||
|
||||
|
||||
|
||||
;;;; Additional sources
|
||||
|
||||
;; imenu
|
||||
|
||||
(defvar ac-imenu-index nil)
|
||||
|
||||
(ac-clear-variable-every-10-minutes 'ac-imenu-index)
|
||||
|
||||
(defun ac-imenu-candidates ()
|
||||
(cl-loop with i = 0
|
||||
with stack = (progn
|
||||
(unless (local-variable-p 'ac-imenu-index)
|
||||
(make-local-variable 'ac-imenu-index))
|
||||
(or ac-imenu-index
|
||||
(setq ac-imenu-index
|
||||
(ignore-errors
|
||||
(with-no-warnings
|
||||
(imenu--make-index-alist))))))
|
||||
with result
|
||||
while (and stack (or (not (integerp ac-limit))
|
||||
(< i ac-limit)))
|
||||
for node = (pop stack)
|
||||
if (consp node)
|
||||
do
|
||||
(let ((car (car node))
|
||||
(cdr (cdr node)))
|
||||
(if (consp cdr)
|
||||
(mapc (lambda (child)
|
||||
(push child stack))
|
||||
cdr)
|
||||
(when (and (stringp car)
|
||||
(string-match (concat "^" (regexp-quote ac-prefix)) car))
|
||||
;; Remove extra characters
|
||||
(if (string-match "^.*\\(()\\|=\\|<>\\)$" car)
|
||||
(setq car (substring car 0 (match-beginning 1))))
|
||||
(push car result)
|
||||
(cl-incf i))))
|
||||
finally return (nreverse result)))
|
||||
|
||||
(ac-define-source imenu
|
||||
'((depends imenu)
|
||||
(candidates . ac-imenu-candidates)
|
||||
(symbol . "s")))
|
||||
|
||||
;; gtags
|
||||
|
||||
(defface ac-gtags-candidate-face
|
||||
'((t (:inherit ac-candidate-face :foreground "navy")))
|
||||
"Face for gtags candidate"
|
||||
:group 'auto-complete)
|
||||
|
||||
(defface ac-gtags-selection-face
|
||||
'((t (:inherit ac-selection-face :background "navy")))
|
||||
"Face for the gtags selected candidate."
|
||||
:group 'auto-complete)
|
||||
|
||||
(defun ac-gtags-candidate ()
|
||||
(ignore-errors
|
||||
(split-string (shell-command-to-string (format "global -ciq %s" ac-prefix)) "\n")))
|
||||
|
||||
(ac-define-source gtags
|
||||
'((candidates . ac-gtags-candidate)
|
||||
(candidate-face . ac-gtags-candidate-face)
|
||||
(selection-face . ac-gtags-selection-face)
|
||||
(requires . 3)
|
||||
(symbol . "s")))
|
||||
|
||||
;; yasnippet
|
||||
|
||||
(defface ac-yasnippet-candidate-face
|
||||
'((t (:inherit ac-candidate-face
|
||||
:background "sandybrown" :foreground "black")))
|
||||
"Face for yasnippet candidate."
|
||||
:group 'auto-complete)
|
||||
|
||||
(defface ac-yasnippet-selection-face
|
||||
'((t (:inherit ac-selection-face :background "coral3")))
|
||||
"Face for the yasnippet selected candidate."
|
||||
:group 'auto-complete)
|
||||
|
||||
(defun ac-yasnippet-table-hash (table)
|
||||
(cond
|
||||
((fboundp 'yas/snippet-table-hash)
|
||||
(yas/snippet-table-hash table))
|
||||
((fboundp 'yas/table-hash)
|
||||
(yas/table-hash table))))
|
||||
|
||||
(defun ac-yasnippet-table-parent (table)
|
||||
(cond
|
||||
((fboundp 'yas/snippet-table-parent)
|
||||
(yas/snippet-table-parent table))
|
||||
((fboundp 'yas/table-parent)
|
||||
(yas/table-parent table))))
|
||||
|
||||
(defun ac-yasnippet-candidate-1 (table)
|
||||
(with-no-warnings
|
||||
(let ((hashtab (ac-yasnippet-table-hash table))
|
||||
(parent (ac-yasnippet-table-parent table))
|
||||
candidates)
|
||||
(maphash (lambda (key value)
|
||||
(push key candidates))
|
||||
hashtab)
|
||||
(setq candidates (all-completions ac-prefix (nreverse candidates)))
|
||||
(if parent
|
||||
(setq candidates
|
||||
(append candidates (ac-yasnippet-candidate-1 parent))))
|
||||
candidates)))
|
||||
|
||||
(defun ac-yasnippet-candidates ()
|
||||
(with-no-warnings
|
||||
(cond (;; 0.8 onwards
|
||||
(fboundp 'yas-active-keys)
|
||||
(all-completions ac-prefix (yas-active-keys)))
|
||||
(;; >0.6.0
|
||||
(fboundp 'yas/get-snippet-tables)
|
||||
(apply 'append (mapcar 'ac-yasnippet-candidate-1
|
||||
(condition-case nil
|
||||
(yas/get-snippet-tables major-mode)
|
||||
(wrong-number-of-arguments
|
||||
(yas/get-snippet-tables)))))
|
||||
)
|
||||
(t
|
||||
(let ((table
|
||||
(if (fboundp 'yas/snippet-table)
|
||||
;; <0.6.0
|
||||
(yas/snippet-table major-mode)
|
||||
;; 0.6.0
|
||||
(yas/current-snippet-table))))
|
||||
(if table
|
||||
(ac-yasnippet-candidate-1 table)))))))
|
||||
|
||||
(ac-define-source yasnippet
|
||||
'((depends yasnippet)
|
||||
(candidates . ac-yasnippet-candidates)
|
||||
(action . yas/expand)
|
||||
(candidate-face . ac-yasnippet-candidate-face)
|
||||
(selection-face . ac-yasnippet-selection-face)
|
||||
(symbol . "a")))
|
||||
|
||||
;; semantic
|
||||
|
||||
(defun ac-semantic-candidates (prefix)
|
||||
(with-no-warnings
|
||||
(delete "" ; semantic sometimes returns an empty string
|
||||
(mapcar (lambda (elem)
|
||||
(cons (semantic-tag-name elem)
|
||||
(semantic-tag-clone elem)))
|
||||
(ignore-errors
|
||||
(or (semantic-analyze-possible-completions
|
||||
(semantic-analyze-current-context))
|
||||
(senator-find-tag-for-completion prefix)))))))
|
||||
|
||||
(defun ac-semantic-doc (symbol)
|
||||
(with-no-warnings
|
||||
(let* ((proto (semantic-format-tag-summarize-with-file symbol nil t))
|
||||
(doc (semantic-documentation-for-tag symbol))
|
||||
(res proto))
|
||||
(when doc
|
||||
(setq res (concat res "\n\n" doc)))
|
||||
res)))
|
||||
|
||||
(defun ac-semantic-action ()
|
||||
(when (and (boundp 'yas-minor-mode) yas-minor-mode)
|
||||
(let* ((tag (car (last (oref (semantic-analyze-current-context) prefix))))
|
||||
(class (semantic-tag-class tag))
|
||||
(args))
|
||||
(when (eq class 'function)
|
||||
(setq args (semantic-tag-function-arguments tag))
|
||||
(yas-expand-snippet
|
||||
(concat "("
|
||||
(mapconcat
|
||||
(lambda (arg)
|
||||
(let ((arg-type (semantic-format-tag-type arg nil))
|
||||
(arg-name (semantic-format-tag-name arg nil)))
|
||||
(concat "${"
|
||||
(if (string= arg-name "")
|
||||
arg-type
|
||||
(concat arg-type " " arg-name))
|
||||
"}")))
|
||||
args
|
||||
", ")
|
||||
")$0"))))))
|
||||
|
||||
(ac-define-source semantic
|
||||
'((available . (or (require 'semantic-ia nil t)
|
||||
(require 'semantic/ia nil t)))
|
||||
(candidates . (ac-semantic-candidates ac-prefix))
|
||||
(document . ac-semantic-doc)
|
||||
(action . ac-semantic-action)
|
||||
(prefix . cc-member)
|
||||
(requires . 0)
|
||||
(symbol . "m")))
|
||||
|
||||
(ac-define-source semantic-raw
|
||||
'((available . (or (require 'semantic-ia nil t)
|
||||
(require 'semantic/ia nil t)))
|
||||
(candidates . (ac-semantic-candidates ac-prefix))
|
||||
(document . ac-semantic-doc)
|
||||
(action . ac-semantic-action)
|
||||
(symbol . "s")))
|
||||
|
||||
;; eclim
|
||||
|
||||
(defun ac-eclim-candidates ()
|
||||
(with-no-warnings
|
||||
(cl-loop for c in (eclim/java-complete)
|
||||
collect (nth 1 c))))
|
||||
|
||||
(ac-define-source eclim
|
||||
'((candidates . ac-eclim-candidates)
|
||||
(prefix . c-dot)
|
||||
(requires . 0)
|
||||
(symbol . "f")))
|
||||
|
||||
;; css
|
||||
|
||||
;; Copied from company-css.el
|
||||
(defconst ac-css-property-alist
|
||||
;; see http://www.w3.org/TR/CSS21/propidx.html
|
||||
'(("azimuth" angle "left-side" "far-left" "left" "center-left" "center"
|
||||
"center-right" "right" "far-right" "right-side" "behind" "leftwards"
|
||||
"rightwards")
|
||||
("background" background-color background-image background-repeat
|
||||
background-attachment background-position)
|
||||
("background-attachment" "scroll" "fixed")
|
||||
("background-color" color "transparent")
|
||||
("background-image" uri "none")
|
||||
("background-position" percentage length "left" "center" "right" percentage
|
||||
length "top" "center" "bottom" "left" "center" "right" "top" "center"
|
||||
"bottom")
|
||||
("background-repeat" "repeat" "repeat-x" "repeat-y" "no-repeat")
|
||||
("border" border-width border-style border-color)
|
||||
("border-bottom" border)
|
||||
("border-bottom-color" border-color)
|
||||
("border-bottom-style" border-style)
|
||||
("border-bottom-width" border-width)
|
||||
("border-collapse" "collapse" "separate")
|
||||
("border-color" color "transparent")
|
||||
("border-left" border)
|
||||
("border-left-color" border-color)
|
||||
("border-left-style" border-style)
|
||||
("border-left-width" border-width)
|
||||
("border-right" border)
|
||||
("border-right-color" border-color)
|
||||
("border-right-style" border-style)
|
||||
("border-right-width" border-width)
|
||||
("border-spacing" length length)
|
||||
("border-style" border-style)
|
||||
("border-top" border)
|
||||
("border-top-color" border-color)
|
||||
("border-top-style" border-style)
|
||||
("border-top-width" border-width)
|
||||
("border-width" border-width)
|
||||
("bottom" length percentage "auto")
|
||||
("caption-side" "top" "bottom")
|
||||
("clear" "none" "left" "right" "both")
|
||||
("clip" shape "auto")
|
||||
("color" color)
|
||||
("content" "normal" "none" string uri counter "attr()" "open-quote"
|
||||
"close-quote" "no-open-quote" "no-close-quote")
|
||||
("counter-increment" identifier integer "none")
|
||||
("counter-reset" identifier integer "none")
|
||||
("cue" cue-before cue-after)
|
||||
("cue-after" uri "none")
|
||||
("cue-before" uri "none")
|
||||
("cursor" uri "*" "auto" "crosshair" "default" "pointer" "move" "e-resize"
|
||||
"ne-resize" "nw-resize" "n-resize" "se-resize" "sw-resize" "s-resize"
|
||||
"w-resize" "text" "wait" "help" "progress")
|
||||
("direction" "ltr" "rtl")
|
||||
("display" "inline" "block" "list-item" "run-in" "inline-block" "table"
|
||||
"inline-table" "table-row-group" "table-header-group" "table-footer-group"
|
||||
"table-row" "table-column-group" "table-column" "table-cell"
|
||||
"table-caption" "none")
|
||||
("elevation" angle "below" "level" "above" "higher" "lower")
|
||||
("empty-cells" "show" "hide")
|
||||
("float" "left" "right" "none")
|
||||
("font" font-style font-variant font-weight font-size "/" line-height
|
||||
font-family "caption" "icon" "menu" "message-box" "small-caption"
|
||||
"status-bar")
|
||||
("font-family" family-name generic-family)
|
||||
("font-size" absolute-size relative-size length percentage)
|
||||
("font-style" "normal" "italic" "oblique")
|
||||
("font-variant" "normal" "small-caps")
|
||||
("font-weight" "normal" "bold" "bolder" "lighter" "100" "200" "300" "400"
|
||||
"500" "600" "700" "800" "900")
|
||||
("height" length percentage "auto")
|
||||
("left" length percentage "auto")
|
||||
("letter-spacing" "normal" length)
|
||||
("line-height" "normal" number length percentage)
|
||||
("list-style" list-style-type list-style-position list-style-image)
|
||||
("list-style-image" uri "none")
|
||||
("list-style-position" "inside" "outside")
|
||||
("list-style-type" "disc" "circle" "square" "decimal" "decimal-leading-zero"
|
||||
"lower-roman" "upper-roman" "lower-greek" "lower-latin" "upper-latin"
|
||||
"armenian" "georgian" "lower-alpha" "upper-alpha" "none")
|
||||
("margin" margin-width)
|
||||
("margin-bottom" margin-width)
|
||||
("margin-left" margin-width)
|
||||
("margin-right" margin-width)
|
||||
("margin-top" margin-width)
|
||||
("max-height" length percentage "none")
|
||||
("max-width" length percentage "none")
|
||||
("min-height" length percentage)
|
||||
("min-width" length percentage)
|
||||
("orphans" integer)
|
||||
("outline" outline-color outline-style outline-width)
|
||||
("outline-color" color "invert")
|
||||
("outline-style" border-style)
|
||||
("outline-width" border-width)
|
||||
("overflow" "visible" "hidden" "scroll" "auto")
|
||||
("padding" padding-width)
|
||||
("padding-bottom" padding-width)
|
||||
("padding-left" padding-width)
|
||||
("padding-right" padding-width)
|
||||
("padding-top" padding-width)
|
||||
("page-break-after" "auto" "always" "avoid" "left" "right")
|
||||
("page-break-before" "auto" "always" "avoid" "left" "right")
|
||||
("page-break-inside" "avoid" "auto")
|
||||
("pause" time percentage)
|
||||
("pause-after" time percentage)
|
||||
("pause-before" time percentage)
|
||||
("pitch" frequency "x-low" "low" "medium" "high" "x-high")
|
||||
("pitch-range" number)
|
||||
("play-during" uri "mix" "repeat" "auto" "none")
|
||||
("position" "static" "relative" "absolute" "fixed")
|
||||
("quotes" string string "none")
|
||||
("richness" number)
|
||||
("right" length percentage "auto")
|
||||
("speak" "normal" "none" "spell-out")
|
||||
("speak-header" "once" "always")
|
||||
("speak-numeral" "digits" "continuous")
|
||||
("speak-punctuation" "code" "none")
|
||||
("speech-rate" number "x-slow" "slow" "medium" "fast" "x-fast" "faster"
|
||||
"slower")
|
||||
("stress" number)
|
||||
("table-layout" "auto" "fixed")
|
||||
("text-align" "left" "right" "center" "justify")
|
||||
("text-decoration" "none" "underline" "overline" "line-through" "blink")
|
||||
("text-indent" length percentage)
|
||||
("text-transform" "capitalize" "uppercase" "lowercase" "none")
|
||||
("top" length percentage "auto")
|
||||
("unicode-bidi" "normal" "embed" "bidi-override")
|
||||
("vertical-align" "baseline" "sub" "super" "top" "text-top" "middle"
|
||||
"bottom" "text-bottom" percentage length)
|
||||
("visibility" "visible" "hidden" "collapse")
|
||||
("voice-family" specific-voice generic-voice "*" specific-voice
|
||||
generic-voice)
|
||||
("volume" number percentage "silent" "x-soft" "soft" "medium" "loud"
|
||||
"x-loud")
|
||||
("white-space" "normal" "pre" "nowrap" "pre-wrap" "pre-line")
|
||||
("widows" integer)
|
||||
("width" length percentage "auto")
|
||||
("word-spacing" "normal" length)
|
||||
("z-index" "auto" integer))
|
||||
"A list of CSS properties and their possible values.")
|
||||
|
||||
(defconst ac-css-value-classes
|
||||
'((absolute-size "xx-small" "x-small" "small" "medium" "large" "x-large"
|
||||
"xx-large")
|
||||
(border-style "none" "hidden" "dotted" "dashed" "solid" "double" "groove"
|
||||
"ridge" "inset" "outset")
|
||||
(color "aqua" "black" "blue" "fuchsia" "gray" "green" "lime" "maroon" "navy"
|
||||
"olive" "orange" "purple" "red" "silver" "teal" "white" "yellow"
|
||||
"rgb")
|
||||
(counter "counter")
|
||||
(family-name "Courier" "Helvetica" "Times")
|
||||
(generic-family "serif" "sans-serif" "cursive" "fantasy" "monospace")
|
||||
(generic-voice "male" "female" "child")
|
||||
(margin-width "auto") ;; length percentage
|
||||
(relative-size "larger" "smaller")
|
||||
(shape "rect")
|
||||
(uri "url"))
|
||||
"A list of CSS property value classes and their contents.")
|
||||
|
||||
(defconst ac-css-pseudo-classes
|
||||
'("active" "after" "before" "first" "first-child" "first-letter" "first-line"
|
||||
"focus" "hover" "lang" "left" "link" "right" "visited")
|
||||
"Identifiers for CSS pseudo-elements and pseudo-classes.")
|
||||
|
||||
(defvar ac-css-property nil
|
||||
"Current editing property.")
|
||||
|
||||
(defun ac-css-prefix ()
|
||||
(when (save-excursion (re-search-backward "\\_<\\(.+?\\)\\_>\\s *:[^;]*\\=" nil t))
|
||||
(setq ac-css-property (match-string 1))
|
||||
(or (ac-prefix-symbol) (point))))
|
||||
|
||||
(defun ac-css-property-candidates ()
|
||||
(let ((list (assoc-default ac-css-property ac-css-property-alist)))
|
||||
(if list
|
||||
(cl-loop with seen
|
||||
with value
|
||||
while (setq value (pop list))
|
||||
if (symbolp value)
|
||||
do (unless (memq value seen)
|
||||
(push value seen)
|
||||
(setq list
|
||||
(append list
|
||||
(or (assoc-default value ac-css-value-classes)
|
||||
(assoc-default (symbol-name value) ac-css-property-alist)))))
|
||||
else collect value)
|
||||
ac-css-pseudo-classes)))
|
||||
|
||||
(ac-define-source css-property
|
||||
'((candidates . ac-css-property-candidates)
|
||||
(prefix . ac-css-prefix)
|
||||
(requires . 0)))
|
||||
|
||||
;; slime
|
||||
(ac-define-source slime
|
||||
'((depends slime)
|
||||
(candidates . (car (slime-simple-completions ac-prefix)))
|
||||
(symbol . "s")
|
||||
(cache)))
|
||||
|
||||
;; ghc-mod
|
||||
(ac-define-source ghc-mod
|
||||
'((depends ghc)
|
||||
(candidates . (ghc-select-completion-symbol))
|
||||
(symbol . "s")
|
||||
(cache)))
|
||||
|
||||
|
||||
|
||||
;;;; Not maintained sources
|
||||
|
||||
;; ropemacs
|
||||
|
||||
(defvar ac-ropemacs-loaded nil)
|
||||
(defun ac-ropemacs-require ()
|
||||
(with-no-warnings
|
||||
(unless ac-ropemacs-loaded
|
||||
(pymacs-load "ropemacs" "rope-")
|
||||
(if (boundp 'ropemacs-enable-autoimport)
|
||||
(setq ropemacs-enable-autoimport t))
|
||||
(setq ac-ropemacs-loaded t))))
|
||||
|
||||
(defun ac-ropemacs-setup ()
|
||||
(ac-ropemacs-require)
|
||||
;(setq ac-sources (append (list 'ac-source-ropemacs) ac-sources))
|
||||
(setq ac-omni-completion-sources '(("\\." ac-source-ropemacs))))
|
||||
|
||||
(defun ac-ropemacs-initialize ()
|
||||
(autoload 'pymacs-apply "pymacs")
|
||||
(autoload 'pymacs-call "pymacs")
|
||||
(autoload 'pymacs-eval "pymacs" nil t)
|
||||
(autoload 'pymacs-exec "pymacs" nil t)
|
||||
(autoload 'pymacs-load "pymacs" nil t)
|
||||
(add-hook 'python-mode-hook 'ac-ropemacs-setup)
|
||||
t)
|
||||
|
||||
(defvar ac-ropemacs-completions-cache nil)
|
||||
(defvar ac-source-ropemacs
|
||||
'((init
|
||||
. (lambda ()
|
||||
(setq ac-ropemacs-completions-cache
|
||||
(mapcar
|
||||
(lambda (completion)
|
||||
(concat ac-prefix completion))
|
||||
(ignore-errors
|
||||
(rope-completions))))))
|
||||
(candidates . ac-ropemacs-completions-cache)))
|
||||
|
||||
;; rcodetools
|
||||
|
||||
(defvar ac-source-rcodetools
|
||||
'((init . (lambda ()
|
||||
(require 'rcodetools)
|
||||
(condition-case x
|
||||
(save-excursion
|
||||
(rct-exec-and-eval rct-complete-command-name "--completion-emacs-icicles"))
|
||||
(error) (setq rct-method-completion-table nil))))
|
||||
(candidates . (lambda ()
|
||||
(all-completions
|
||||
ac-prefix
|
||||
(mapcar
|
||||
(lambda (completion)
|
||||
(replace-regexp-in-string "\t.*$" "" (car completion)))
|
||||
rct-method-completion-table))))))
|
||||
|
||||
|
||||
|
||||
;;;; Default settings
|
||||
|
||||
(defun ac-common-setup ()
|
||||
;(add-to-list 'ac-sources 'ac-source-filename)
|
||||
)
|
||||
|
||||
(defun ac-emacs-lisp-mode-setup ()
|
||||
(setq ac-sources (append '(ac-source-features ac-source-functions ac-source-yasnippet ac-source-variables ac-source-symbols) ac-sources)))
|
||||
|
||||
(defun ac-cc-mode-setup ()
|
||||
(setq ac-sources (append '(ac-source-yasnippet ac-source-gtags) ac-sources)))
|
||||
|
||||
(defun ac-ruby-mode-setup ())
|
||||
|
||||
(defun ac-css-mode-setup ()
|
||||
(setq ac-sources (append '(ac-source-css-property) ac-sources)))
|
||||
|
||||
;;;###autoload
|
||||
(defun ac-config-default ()
|
||||
(setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers))
|
||||
(add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup)
|
||||
(add-hook 'c-mode-common-hook 'ac-cc-mode-setup)
|
||||
(add-hook 'ruby-mode-hook 'ac-ruby-mode-setup)
|
||||
(add-hook 'css-mode-hook 'ac-css-mode-setup)
|
||||
(add-hook 'auto-complete-mode-hook 'ac-common-setup)
|
||||
(global-auto-complete-mode t))
|
||||
|
||||
(provide 'auto-complete-config)
|
||||
;;; auto-complete-config.el ends here
|
||||
BIN
elpa/auto-complete-20170125.245/auto-complete-config.elc
Normal file
BIN
elpa/auto-complete-20170125.245/auto-complete-config.elc
Normal file
Binary file not shown.
6
elpa/auto-complete-20170125.245/auto-complete-pkg.el
Normal file
6
elpa/auto-complete-20170125.245/auto-complete-pkg.el
Normal file
@@ -0,0 +1,6 @@
|
||||
(define-package "auto-complete" "20170125.245" "Auto Completion for GNU Emacs"
|
||||
'((popup "0.5.0")
|
||||
(cl-lib "0.5")))
|
||||
;; Local Variables:
|
||||
;; no-byte-compile: t
|
||||
;; End:
|
||||
2164
elpa/auto-complete-20170125.245/auto-complete.el
Normal file
2164
elpa/auto-complete-20170125.245/auto-complete.el
Normal file
File diff suppressed because it is too large
Load Diff
BIN
elpa/auto-complete-20170125.245/auto-complete.elc
Normal file
BIN
elpa/auto-complete-20170125.245/auto-complete.elc
Normal file
Binary file not shown.
72
elpa/auto-complete-20170125.245/dict/ada-mode
Normal file
72
elpa/auto-complete-20170125.245/dict/ada-mode
Normal file
@@ -0,0 +1,72 @@
|
||||
abort
|
||||
abs
|
||||
abstract
|
||||
accept
|
||||
access
|
||||
aliased
|
||||
all
|
||||
and
|
||||
array
|
||||
at
|
||||
begin
|
||||
body
|
||||
case
|
||||
constant
|
||||
declare
|
||||
delay
|
||||
delta
|
||||
digits
|
||||
do
|
||||
else
|
||||
elsif
|
||||
end
|
||||
entry
|
||||
exception
|
||||
exit
|
||||
for
|
||||
function
|
||||
generic
|
||||
goto
|
||||
if
|
||||
in
|
||||
interface
|
||||
is
|
||||
limited
|
||||
loop
|
||||
mod
|
||||
new
|
||||
not
|
||||
null
|
||||
of
|
||||
or
|
||||
others
|
||||
out
|
||||
overriding
|
||||
package
|
||||
pragma
|
||||
private
|
||||
procedure
|
||||
protected
|
||||
raise
|
||||
range
|
||||
record
|
||||
rem
|
||||
renames
|
||||
requeue
|
||||
return
|
||||
reverse
|
||||
select
|
||||
separate
|
||||
subtype
|
||||
synchronized
|
||||
tagged
|
||||
task
|
||||
terminate
|
||||
then
|
||||
type
|
||||
until
|
||||
use
|
||||
when
|
||||
while
|
||||
with
|
||||
xor
|
||||
99
elpa/auto-complete-20170125.245/dict/c++-mode
Normal file
99
elpa/auto-complete-20170125.245/dict/c++-mode
Normal file
@@ -0,0 +1,99 @@
|
||||
alignas
|
||||
alignof
|
||||
and
|
||||
and_eq
|
||||
asm
|
||||
auto
|
||||
bitand
|
||||
bitor
|
||||
bool
|
||||
break
|
||||
case
|
||||
catch
|
||||
char
|
||||
char16_t
|
||||
char32_t
|
||||
class
|
||||
compl
|
||||
concept
|
||||
const
|
||||
const_cast
|
||||
constexpr
|
||||
continue
|
||||
decltype
|
||||
default
|
||||
define
|
||||
defined
|
||||
delete
|
||||
do
|
||||
double
|
||||
dynamic_cast
|
||||
elif
|
||||
else
|
||||
endif
|
||||
enum
|
||||
error
|
||||
explicit
|
||||
export
|
||||
extern
|
||||
false
|
||||
final
|
||||
float
|
||||
for
|
||||
friend
|
||||
goto
|
||||
if
|
||||
ifdef
|
||||
ifndef
|
||||
include
|
||||
inline
|
||||
int
|
||||
line
|
||||
long
|
||||
mutable
|
||||
namespace
|
||||
new
|
||||
noexcept
|
||||
not
|
||||
not_eq
|
||||
nullptr
|
||||
operator
|
||||
or
|
||||
or_eq
|
||||
override
|
||||
pragma
|
||||
_Pragma
|
||||
private
|
||||
protected
|
||||
public
|
||||
register
|
||||
reinterpret_cast
|
||||
requires
|
||||
return
|
||||
short
|
||||
signed
|
||||
sizeof
|
||||
static
|
||||
static_assert
|
||||
static_cast
|
||||
struct
|
||||
switch
|
||||
template
|
||||
this
|
||||
thread_local
|
||||
throw
|
||||
true
|
||||
try
|
||||
typedef
|
||||
typeid
|
||||
typename
|
||||
union
|
||||
unsigned
|
||||
using
|
||||
virtual
|
||||
void
|
||||
volatile
|
||||
wchar_t
|
||||
while
|
||||
xor
|
||||
xor_eq
|
||||
55
elpa/auto-complete-20170125.245/dict/c-mode
Normal file
55
elpa/auto-complete-20170125.245/dict/c-mode
Normal file
@@ -0,0 +1,55 @@
|
||||
auto
|
||||
_Alignas
|
||||
_Alignof
|
||||
_Atomic
|
||||
_Bool
|
||||
break
|
||||
case
|
||||
char
|
||||
_Complex
|
||||
const
|
||||
continue
|
||||
default
|
||||
define
|
||||
defined
|
||||
do
|
||||
double
|
||||
elif
|
||||
else
|
||||
endif
|
||||
enum
|
||||
error
|
||||
extern
|
||||
float
|
||||
for
|
||||
goto
|
||||
_Generic
|
||||
if
|
||||
ifdef
|
||||
ifndef
|
||||
_Imaginary
|
||||
include
|
||||
inline
|
||||
int
|
||||
line
|
||||
long
|
||||
_Noreturn
|
||||
pragma
|
||||
register
|
||||
restrict
|
||||
return
|
||||
short
|
||||
signed
|
||||
sizeof
|
||||
static
|
||||
struct
|
||||
switch
|
||||
_Static_assert
|
||||
typedef
|
||||
_Thread_local
|
||||
undef
|
||||
union
|
||||
unsigned
|
||||
void
|
||||
volatile
|
||||
while
|
||||
231
elpa/auto-complete-20170125.245/dict/caml-mode
Normal file
231
elpa/auto-complete-20170125.245/dict/caml-mode
Normal file
@@ -0,0 +1,231 @@
|
||||
# OCaml 3.12.1
|
||||
|
||||
# Keywords
|
||||
and
|
||||
as
|
||||
assert
|
||||
begin
|
||||
class
|
||||
constraint
|
||||
do
|
||||
done
|
||||
downto
|
||||
else
|
||||
end
|
||||
exception
|
||||
external
|
||||
false
|
||||
for
|
||||
fun
|
||||
function
|
||||
functor
|
||||
if
|
||||
in
|
||||
include
|
||||
inherit
|
||||
initializer
|
||||
lazy
|
||||
let
|
||||
match
|
||||
method
|
||||
module
|
||||
mutable
|
||||
new
|
||||
object
|
||||
of
|
||||
open
|
||||
or
|
||||
private
|
||||
rec
|
||||
sig
|
||||
struct
|
||||
then
|
||||
to
|
||||
true
|
||||
try
|
||||
type
|
||||
val
|
||||
virtual
|
||||
when
|
||||
while
|
||||
with
|
||||
|
||||
# Pervasives
|
||||
!
|
||||
!=
|
||||
&
|
||||
&&
|
||||
*
|
||||
**
|
||||
*.
|
||||
+
|
||||
+.
|
||||
-
|
||||
-.
|
||||
/
|
||||
/.
|
||||
:=
|
||||
<
|
||||
<=
|
||||
<>
|
||||
=
|
||||
==
|
||||
>
|
||||
>=
|
||||
@
|
||||
FP_infinite
|
||||
FP_nan
|
||||
FP_normal
|
||||
FP_subnormal
|
||||
FP_zero
|
||||
LargeFile
|
||||
Open_append
|
||||
Open_binary
|
||||
Open_creat
|
||||
Open_nonblock
|
||||
Open_rdonly
|
||||
Open_text
|
||||
Open_trunc
|
||||
Open_wronly
|
||||
Oupen_excl
|
||||
^
|
||||
^^
|
||||
abs
|
||||
abs_float
|
||||
acos
|
||||
asin
|
||||
asr
|
||||
at_exit
|
||||
atan
|
||||
atan2
|
||||
bool_of_string
|
||||
ceil
|
||||
char_of_int
|
||||
classify_float
|
||||
close_in
|
||||
close_in_noerr
|
||||
close_out
|
||||
close_out_noerr
|
||||
compare
|
||||
cos
|
||||
cosh
|
||||
decr
|
||||
do_at_exit
|
||||
epsilon_float
|
||||
exit
|
||||
exp
|
||||
expm1
|
||||
failwith
|
||||
float
|
||||
float_of_int
|
||||
float_of_string
|
||||
floor
|
||||
flush
|
||||
flush_all
|
||||
format
|
||||
format4
|
||||
format_of_string
|
||||
fpclass
|
||||
frexp
|
||||
fst
|
||||
ignore
|
||||
in_channel
|
||||
in_channel_length
|
||||
incr
|
||||
infinity
|
||||
input
|
||||
input_binary_int
|
||||
input_byte
|
||||
input_char
|
||||
input_line
|
||||
input_value
|
||||
int_of_char
|
||||
int_of_float
|
||||
int_of_string
|
||||
invalid_arg
|
||||
land
|
||||
ldexp
|
||||
lnot
|
||||
log
|
||||
log10
|
||||
log1p
|
||||
lor
|
||||
lsl
|
||||
lsr
|
||||
lxor
|
||||
max
|
||||
max_float
|
||||
max_int
|
||||
min
|
||||
min_float
|
||||
min_int
|
||||
mod
|
||||
mod_float
|
||||
modf
|
||||
nan
|
||||
neg_infinity
|
||||
not
|
||||
open_flag
|
||||
open_in
|
||||
open_in_bin
|
||||
open_in_gen
|
||||
open_out
|
||||
open_out_bin
|
||||
open_out_gen
|
||||
or
|
||||
out_channel
|
||||
out_channel_length
|
||||
output
|
||||
output_binary_int
|
||||
output_byte
|
||||
output_char
|
||||
output_string
|
||||
output_value
|
||||
pos_in
|
||||
pos_out
|
||||
pred
|
||||
prerr_char
|
||||
prerr_endline
|
||||
prerr_float
|
||||
prerr_int
|
||||
prerr_newline
|
||||
prerr_string
|
||||
print_char
|
||||
print_endline
|
||||
print_float
|
||||
print_int
|
||||
print_newline
|
||||
print_string
|
||||
raise
|
||||
read_float
|
||||
read_int
|
||||
read_line
|
||||
really_input
|
||||
ref
|
||||
seek_in
|
||||
seek_out
|
||||
set_binary_mode_in
|
||||
set_binary_mode_out
|
||||
sin
|
||||
sinh
|
||||
snd
|
||||
sqrt
|
||||
stderr
|
||||
stdin
|
||||
stdout
|
||||
string_of_bool
|
||||
string_of_float
|
||||
string_of_format
|
||||
string_of_int
|
||||
succ
|
||||
tan
|
||||
tanh
|
||||
truncate
|
||||
unsafe_really_input
|
||||
valid_float_lexem
|
||||
||
|
||||
~
|
||||
~+
|
||||
~+.
|
||||
~-
|
||||
~-.
|
||||
580
elpa/auto-complete-20170125.245/dict/clojure-mode
Normal file
580
elpa/auto-complete-20170125.245/dict/clojure-mode
Normal file
@@ -0,0 +1,580 @@
|
||||
*agent*
|
||||
*allow-unresolved-vars*
|
||||
*assert*
|
||||
*clojure-version*
|
||||
*command-line-args*
|
||||
*compile-files*
|
||||
*compile-path*
|
||||
*compiler-options*
|
||||
*data-readers*
|
||||
*default-data-reader-fn*
|
||||
*err*
|
||||
*file*
|
||||
*flush-on-newline*
|
||||
*fn-loader*
|
||||
*in*
|
||||
*math-context*
|
||||
*ns*
|
||||
*out*
|
||||
*print-dup*
|
||||
*print-length*
|
||||
*print-level*
|
||||
*print-meta*
|
||||
*print-readably*
|
||||
*read-eval*
|
||||
*source-path*
|
||||
*unchecked-math*
|
||||
*use-context-classloader*
|
||||
*verbose-defrecords*
|
||||
*warn-on-reflection*
|
||||
->ArrayChunk
|
||||
->Vec
|
||||
->VecNode
|
||||
->VecSeq
|
||||
-cache-protocol-fn
|
||||
-reset-methods
|
||||
accessor
|
||||
aclone
|
||||
add-classpath
|
||||
add-watch
|
||||
agent
|
||||
agent-error
|
||||
agent-errors
|
||||
aget
|
||||
alength
|
||||
alias
|
||||
all-ns
|
||||
alter
|
||||
alter-meta!
|
||||
alter-var-root
|
||||
amap
|
||||
ancestors
|
||||
and
|
||||
apply
|
||||
areduce
|
||||
array-map
|
||||
as->
|
||||
aset
|
||||
aset-boolean
|
||||
aset-byte
|
||||
aset-char
|
||||
aset-double
|
||||
aset-float
|
||||
aset-int
|
||||
aset-long
|
||||
aset-short
|
||||
assert
|
||||
assoc
|
||||
assoc!
|
||||
assoc-in
|
||||
associative?
|
||||
atom
|
||||
await
|
||||
await-for
|
||||
await1
|
||||
bases
|
||||
bean
|
||||
bigdec
|
||||
bigint
|
||||
biginteger
|
||||
binding
|
||||
bit-and
|
||||
bit-and-not
|
||||
bit-clear
|
||||
bit-flip
|
||||
bit-not
|
||||
bit-or
|
||||
bit-set
|
||||
bit-shift-left
|
||||
bit-shift-right
|
||||
bit-test
|
||||
bit-xor
|
||||
boolean
|
||||
boolean-array
|
||||
booleans
|
||||
bound-fn
|
||||
bound-fn*
|
||||
bound?
|
||||
butlast
|
||||
byte
|
||||
byte-array
|
||||
bytes
|
||||
case
|
||||
cast
|
||||
char
|
||||
char-array
|
||||
char-escape-string
|
||||
char-name-string
|
||||
char?
|
||||
chars
|
||||
chunk
|
||||
chunk-append
|
||||
chunk-buffer
|
||||
chunk-cons
|
||||
chunk-first
|
||||
chunk-next
|
||||
chunk-rest
|
||||
chunked-seq?
|
||||
class
|
||||
class?
|
||||
clear-agent-errors
|
||||
clojure-version
|
||||
coll?
|
||||
comment
|
||||
commute
|
||||
comp
|
||||
comparator
|
||||
compare
|
||||
compare-and-set!
|
||||
compile
|
||||
complement
|
||||
concat
|
||||
cond
|
||||
cond->
|
||||
cond->>
|
||||
condp
|
||||
conj
|
||||
conj!
|
||||
cons
|
||||
constantly
|
||||
construct-proxy
|
||||
contains?
|
||||
count
|
||||
counted?
|
||||
create-ns
|
||||
create-struct
|
||||
cycle
|
||||
dec
|
||||
dec'
|
||||
decimal?
|
||||
declare
|
||||
default-data-readers
|
||||
definline
|
||||
definterface
|
||||
defmacro
|
||||
defmethod
|
||||
defmulti
|
||||
defn
|
||||
defn-
|
||||
defonce
|
||||
defprotocol
|
||||
defrecord
|
||||
defstruct
|
||||
deftype
|
||||
delay
|
||||
delay?
|
||||
deliver
|
||||
denominator
|
||||
deref
|
||||
derive
|
||||
descendants
|
||||
destructure
|
||||
disj
|
||||
disj!
|
||||
dissoc
|
||||
dissoc!
|
||||
distinct
|
||||
distinct?
|
||||
doall
|
||||
doc
|
||||
dorun
|
||||
doseq
|
||||
dosync
|
||||
dotimes
|
||||
doto
|
||||
double
|
||||
double-array
|
||||
doubles
|
||||
drop
|
||||
drop-last
|
||||
drop-while
|
||||
dtype
|
||||
empty
|
||||
empty?
|
||||
ensure
|
||||
enumeration-seq
|
||||
error-handler
|
||||
error-mode
|
||||
eval
|
||||
even?
|
||||
every-pred
|
||||
every?
|
||||
ex-data
|
||||
ex-info
|
||||
extend
|
||||
extend-class
|
||||
extend-protocol
|
||||
extend-type
|
||||
extenders
|
||||
extends?
|
||||
false?
|
||||
ffirst
|
||||
file-seq
|
||||
filter
|
||||
filterv
|
||||
find
|
||||
find-doc
|
||||
find-keyword
|
||||
find-ns
|
||||
find-protocol-impl
|
||||
find-protocol-method
|
||||
find-var
|
||||
first
|
||||
flatten
|
||||
float
|
||||
float-array
|
||||
float?
|
||||
floats
|
||||
flush
|
||||
fn
|
||||
fn?
|
||||
fnext
|
||||
fnil
|
||||
for
|
||||
force
|
||||
format
|
||||
frequencies
|
||||
future
|
||||
future-call
|
||||
future-cancel
|
||||
future-cancelled?
|
||||
future-done?
|
||||
future?
|
||||
gen-class
|
||||
gen-interface
|
||||
gensym
|
||||
get
|
||||
get-in
|
||||
get-method
|
||||
get-proxy-class
|
||||
get-thread-bindings
|
||||
get-validator
|
||||
group-by
|
||||
hash
|
||||
hash-combine
|
||||
hash-map
|
||||
hash-set
|
||||
identical?
|
||||
identity
|
||||
if-let
|
||||
if-not
|
||||
ifn?
|
||||
import
|
||||
in-ns
|
||||
inc
|
||||
inc'
|
||||
init-proxy
|
||||
instance?
|
||||
int
|
||||
int-array
|
||||
integer?
|
||||
interleave
|
||||
intern
|
||||
interpose
|
||||
into
|
||||
into-array
|
||||
ints
|
||||
io!
|
||||
isa?
|
||||
iterate
|
||||
iterator-seq
|
||||
juxt
|
||||
keep
|
||||
keep-indexed
|
||||
key
|
||||
keys
|
||||
keyword
|
||||
keyword?
|
||||
last
|
||||
lazy-cat
|
||||
lazy-seq
|
||||
let
|
||||
letfn
|
||||
line-seq
|
||||
list
|
||||
list*
|
||||
list?
|
||||
load
|
||||
load-file
|
||||
load-reader
|
||||
load-string
|
||||
loaded-libs
|
||||
locking
|
||||
long
|
||||
long-array
|
||||
longs
|
||||
loop
|
||||
macroexpand
|
||||
macroexpand-1
|
||||
make-array
|
||||
make-hierarchy
|
||||
map
|
||||
map-indexed
|
||||
map?
|
||||
mapcat
|
||||
mapv
|
||||
max
|
||||
max-key
|
||||
memfn
|
||||
memoize
|
||||
merge
|
||||
merge-with
|
||||
meta
|
||||
method-sig
|
||||
methods
|
||||
min
|
||||
min-key
|
||||
mod
|
||||
munge
|
||||
name
|
||||
namespace
|
||||
namespace-munge
|
||||
neg?
|
||||
newline
|
||||
next
|
||||
nfirst
|
||||
nil?
|
||||
nnext
|
||||
not
|
||||
not-any?
|
||||
not-empty
|
||||
not-every?
|
||||
not=
|
||||
ns
|
||||
ns-aliases
|
||||
ns-imports
|
||||
ns-interns
|
||||
ns-map
|
||||
ns-name
|
||||
ns-publics
|
||||
ns-refers
|
||||
ns-resolve
|
||||
ns-unalias
|
||||
ns-unmap
|
||||
nth
|
||||
nthnext
|
||||
nthrest
|
||||
num
|
||||
number?
|
||||
numerator
|
||||
object-array
|
||||
odd?
|
||||
or
|
||||
parents
|
||||
partial
|
||||
partition
|
||||
partition-all
|
||||
partition-by
|
||||
pcalls
|
||||
peek
|
||||
persistent!
|
||||
pmap
|
||||
pop
|
||||
pop!
|
||||
pop-thread-bindings
|
||||
pos?
|
||||
pr
|
||||
pr-str
|
||||
prefer-method
|
||||
prefers
|
||||
primitives-classnames
|
||||
print
|
||||
print-ctor
|
||||
print-dup
|
||||
print-method
|
||||
print-namespace-doc
|
||||
print-simple
|
||||
print-str
|
||||
printf
|
||||
println
|
||||
println-str
|
||||
prn
|
||||
prn-str
|
||||
promise
|
||||
proxy
|
||||
proxy-call-with-super
|
||||
proxy-mappings
|
||||
proxy-name
|
||||
proxy-super
|
||||
push-thread-bindings
|
||||
pvalues
|
||||
quot
|
||||
rand
|
||||
rand-int
|
||||
rand-nth
|
||||
range
|
||||
ratio?
|
||||
rational?
|
||||
rationalize
|
||||
re-find
|
||||
re-groups
|
||||
re-matcher
|
||||
re-matches
|
||||
re-pattern
|
||||
re-seq
|
||||
read
|
||||
read-line
|
||||
read-string
|
||||
realized?
|
||||
reduce
|
||||
reduce-kv
|
||||
reduced
|
||||
reduced?
|
||||
reductions
|
||||
ref
|
||||
ref-history-count
|
||||
ref-max-history
|
||||
ref-min-history
|
||||
ref-set
|
||||
refer
|
||||
refer-clojure
|
||||
reify
|
||||
release-pending-sends
|
||||
rem
|
||||
remove
|
||||
remove-all-methods
|
||||
remove-method
|
||||
remove-ns
|
||||
remove-watch
|
||||
repeat
|
||||
repeatedly
|
||||
replace
|
||||
replicate
|
||||
require
|
||||
reset!
|
||||
reset-meta!
|
||||
resolve
|
||||
rest
|
||||
restart-agent
|
||||
resultset-seq
|
||||
reverse
|
||||
reversible?
|
||||
rseq
|
||||
rsubseq
|
||||
satisfies?
|
||||
second
|
||||
select-keys
|
||||
send
|
||||
send-off
|
||||
send-via
|
||||
seq
|
||||
seq?
|
||||
seque
|
||||
sequence
|
||||
sequential?
|
||||
set
|
||||
set-agent-send-executor!
|
||||
set-agent-send-off-executor!
|
||||
set-error-handler!
|
||||
set-error-mode!
|
||||
set-validator!
|
||||
set?
|
||||
short
|
||||
short-array
|
||||
shorts
|
||||
shuffle
|
||||
shutdown-agents
|
||||
slurp
|
||||
some
|
||||
some->
|
||||
some->>
|
||||
some-fn
|
||||
sort
|
||||
sort-by
|
||||
sorted-map
|
||||
sorted-map-by
|
||||
sorted-set
|
||||
sorted-set-by
|
||||
sorted?
|
||||
special-form-anchor
|
||||
special-symbol?
|
||||
spit
|
||||
split-at
|
||||
split-with
|
||||
str
|
||||
stream?
|
||||
string?
|
||||
struct
|
||||
struct-map
|
||||
subs
|
||||
subseq
|
||||
subvec
|
||||
supers
|
||||
swap!
|
||||
symbol
|
||||
symbol?
|
||||
sync
|
||||
syntax-symbol-anchor
|
||||
take
|
||||
take-last
|
||||
take-nth
|
||||
take-while
|
||||
test
|
||||
the-ns
|
||||
thread-bound?
|
||||
time
|
||||
to-array
|
||||
to-array-2d
|
||||
trampoline
|
||||
transient
|
||||
tree-seq
|
||||
true?
|
||||
type
|
||||
unchecked-add
|
||||
unchecked-add-int
|
||||
unchecked-byte
|
||||
unchecked-char
|
||||
unchecked-dec
|
||||
unchecked-dec-int
|
||||
unchecked-divide
|
||||
unchecked-divide-int
|
||||
unchecked-double
|
||||
unchecked-float
|
||||
unchecked-inc
|
||||
unchecked-inc-int
|
||||
unchecked-int
|
||||
unchecked-long
|
||||
unchecked-multiply
|
||||
unchecked-multiply-int
|
||||
unchecked-negate
|
||||
unchecked-negate-int
|
||||
unchecked-remainder
|
||||
unchecked-remainder-int
|
||||
unchecked-short
|
||||
unchecked-subtract
|
||||
unchecked-subtract-int
|
||||
underive
|
||||
unquote
|
||||
unquote-splicing
|
||||
update-in
|
||||
update-proxy
|
||||
use
|
||||
val
|
||||
vals
|
||||
var-get
|
||||
var-set
|
||||
var?
|
||||
vary-meta
|
||||
vec
|
||||
vector
|
||||
vector-of
|
||||
vector?
|
||||
when
|
||||
when-first
|
||||
when-let
|
||||
when-not
|
||||
while
|
||||
with-bindings
|
||||
with-bindings*
|
||||
with-in-str
|
||||
with-loading-context
|
||||
with-local-vars
|
||||
with-meta
|
||||
with-open
|
||||
with-out-str
|
||||
with-precision
|
||||
with-redefs
|
||||
with-redefs-fn
|
||||
xml-seq
|
||||
zero?
|
||||
zipmap
|
||||
475
elpa/auto-complete-20170125.245/dict/clojurescript-mode
Normal file
475
elpa/auto-complete-20170125.245/dict/clojurescript-mode
Normal file
@@ -0,0 +1,475 @@
|
||||
*agent*
|
||||
*clojure-version*
|
||||
*command-line-args*
|
||||
*compile-files*
|
||||
*compile-path*
|
||||
*err*
|
||||
*file*
|
||||
*flush-on-newline*
|
||||
*in*
|
||||
*ns*
|
||||
*out*
|
||||
*print-dup*
|
||||
*print-length*
|
||||
*print-level*
|
||||
*print-meta*
|
||||
*print-readably*
|
||||
*read-eval*
|
||||
*warn-on-reflection*
|
||||
accessor
|
||||
aclone
|
||||
add-classpath
|
||||
add-watch
|
||||
agent
|
||||
agent-error
|
||||
agent-errors
|
||||
aget
|
||||
alength
|
||||
alias
|
||||
all-ns
|
||||
alter
|
||||
alter-meta!
|
||||
alter-var-root
|
||||
amap
|
||||
ancestors
|
||||
and
|
||||
apply
|
||||
areduce
|
||||
array-map
|
||||
aset
|
||||
aset-boolean
|
||||
aset-byte
|
||||
aset-char
|
||||
aset-double
|
||||
aset-float
|
||||
aset-int
|
||||
aset-long
|
||||
aset-short
|
||||
assert
|
||||
assoc
|
||||
assoc!
|
||||
assoc-in
|
||||
associative?
|
||||
atom
|
||||
await
|
||||
await-for
|
||||
bases
|
||||
bean
|
||||
bigdec
|
||||
bigint
|
||||
binding
|
||||
bit-and
|
||||
bit-and-not
|
||||
bit-clear
|
||||
bit-flip
|
||||
bit-not
|
||||
bit-or
|
||||
bit-set
|
||||
bit-shift-left
|
||||
bit-shift-right
|
||||
bit-test
|
||||
bit-xor
|
||||
boolean
|
||||
boolean-array
|
||||
booleans
|
||||
bound-fn
|
||||
bound-fn*
|
||||
butlast
|
||||
byte
|
||||
byte-array
|
||||
bytes
|
||||
case
|
||||
cast
|
||||
char
|
||||
char-array
|
||||
char-escape-string
|
||||
char-name-string
|
||||
char?
|
||||
chars
|
||||
class
|
||||
class?
|
||||
clear-agent-errors
|
||||
clojure-version
|
||||
coll?
|
||||
comment
|
||||
commute
|
||||
comp
|
||||
comparator
|
||||
compare
|
||||
compare-and-set!
|
||||
compile
|
||||
complement
|
||||
concat
|
||||
cond
|
||||
condp
|
||||
conj
|
||||
conj!
|
||||
cons
|
||||
constantly
|
||||
construct-proxy
|
||||
contains?
|
||||
count
|
||||
counted?
|
||||
create-ns
|
||||
create-struct
|
||||
cycle
|
||||
dec
|
||||
decimal?
|
||||
declare
|
||||
definline
|
||||
defmacro
|
||||
defmethod
|
||||
defmulti
|
||||
defn
|
||||
defn-
|
||||
defonce
|
||||
defprotocol
|
||||
defstruct
|
||||
deftype
|
||||
delay
|
||||
delay?
|
||||
deliver
|
||||
deref
|
||||
derive
|
||||
descendants
|
||||
disj
|
||||
disj!
|
||||
dissoc
|
||||
dissoc!
|
||||
distinct
|
||||
distinct?
|
||||
doall
|
||||
doc
|
||||
dorun
|
||||
doseq
|
||||
dosync
|
||||
dotimes
|
||||
doto
|
||||
double
|
||||
double-array
|
||||
doubles
|
||||
drop
|
||||
drop-last
|
||||
drop-while
|
||||
dtype
|
||||
empty
|
||||
empty?
|
||||
ensure
|
||||
enumeration-seq
|
||||
error-handler
|
||||
error-mode
|
||||
eval
|
||||
even?
|
||||
every?
|
||||
extend
|
||||
extend-class
|
||||
extend-protocol
|
||||
extend-type
|
||||
extenders
|
||||
extends?
|
||||
false?
|
||||
ffirst
|
||||
file-seq
|
||||
filter
|
||||
find
|
||||
find-doc
|
||||
find-ns
|
||||
find-var
|
||||
first
|
||||
float
|
||||
float-array
|
||||
float?
|
||||
floats
|
||||
flush
|
||||
fn
|
||||
fn?
|
||||
fnext
|
||||
for
|
||||
force
|
||||
format
|
||||
future
|
||||
future-call
|
||||
future-cancel
|
||||
future-cancelled?
|
||||
future-done?
|
||||
future?
|
||||
gen-class
|
||||
gen-interface
|
||||
gensym
|
||||
get
|
||||
get-in
|
||||
get-method
|
||||
get-proxy-class
|
||||
get-thread-bindings
|
||||
get-validator
|
||||
hash
|
||||
hash-map
|
||||
hash-set
|
||||
identical?
|
||||
identity
|
||||
if-let
|
||||
if-not
|
||||
ifn?
|
||||
import
|
||||
in-ns
|
||||
inc
|
||||
init-proxy
|
||||
instance?
|
||||
int
|
||||
int-array
|
||||
integer?
|
||||
interleave
|
||||
intern
|
||||
interpose
|
||||
into
|
||||
into-array
|
||||
ints
|
||||
io!
|
||||
isa?
|
||||
iterate
|
||||
iterator-seq
|
||||
juxt
|
||||
key
|
||||
keys
|
||||
keyword
|
||||
keyword?
|
||||
last
|
||||
lazy-cat
|
||||
lazy-seq
|
||||
let
|
||||
letfn
|
||||
line-seq
|
||||
list
|
||||
list*
|
||||
list?
|
||||
load
|
||||
load-file
|
||||
load-reader
|
||||
load-string
|
||||
loaded-libs
|
||||
locking
|
||||
long
|
||||
long-array
|
||||
longs
|
||||
loop
|
||||
macroexpand
|
||||
macroexpand-1
|
||||
make-array
|
||||
make-hierarchy
|
||||
map
|
||||
map?
|
||||
mapcat
|
||||
max
|
||||
max-key
|
||||
memfn
|
||||
memoize
|
||||
merge
|
||||
merge-with
|
||||
meta
|
||||
methods
|
||||
min
|
||||
min-key
|
||||
mod
|
||||
name
|
||||
namespace
|
||||
neg?
|
||||
newline
|
||||
next
|
||||
nfirst
|
||||
nil?
|
||||
nnext
|
||||
not
|
||||
not-any?
|
||||
not-empty
|
||||
not-every?
|
||||
not=
|
||||
ns
|
||||
ns-aliases
|
||||
ns-imports
|
||||
ns-interns
|
||||
ns-map
|
||||
ns-name
|
||||
ns-publics
|
||||
ns-refers
|
||||
ns-resolve
|
||||
ns-unalias
|
||||
ns-unmap
|
||||
nth
|
||||
nthnext
|
||||
num
|
||||
number?
|
||||
object-array
|
||||
odd?
|
||||
or
|
||||
parents
|
||||
partial
|
||||
partition
|
||||
pcalls
|
||||
peek
|
||||
persistent!
|
||||
pmap
|
||||
pop
|
||||
pop!
|
||||
pop-thread-bindings
|
||||
pos?
|
||||
pr
|
||||
pr-str
|
||||
prefer-method
|
||||
prefers
|
||||
print
|
||||
print-namespace-doc
|
||||
print-str
|
||||
printf
|
||||
println
|
||||
println-str
|
||||
prn
|
||||
prn-str
|
||||
promise
|
||||
proxy
|
||||
proxy-mappings
|
||||
proxy-super
|
||||
push-thread-bindings
|
||||
pvalues
|
||||
quot
|
||||
rand
|
||||
rand-int
|
||||
range
|
||||
ratio?
|
||||
rationalize
|
||||
re-find
|
||||
re-groups
|
||||
re-matcher
|
||||
re-matches
|
||||
re-pattern
|
||||
re-seq
|
||||
read
|
||||
read-line
|
||||
read-string
|
||||
reduce
|
||||
ref
|
||||
ref-history-count
|
||||
ref-max-history
|
||||
ref-min-history
|
||||
ref-set
|
||||
refer
|
||||
refer-clojure
|
||||
reify
|
||||
release-pending-sends
|
||||
rem
|
||||
remove
|
||||
remove-method
|
||||
remove-ns
|
||||
remove-watch
|
||||
repeat
|
||||
repeatedly
|
||||
replace
|
||||
replicate
|
||||
require
|
||||
reset!
|
||||
reset-meta!
|
||||
resolve
|
||||
rest
|
||||
restart-agent
|
||||
resultset-seq
|
||||
reverse
|
||||
reversible?
|
||||
rseq
|
||||
rsubseq
|
||||
satisfies?
|
||||
second
|
||||
select-keys
|
||||
send
|
||||
send-off
|
||||
seq
|
||||
seq?
|
||||
seque
|
||||
sequence
|
||||
sequential?
|
||||
set
|
||||
set-error-handler!
|
||||
set-error-mode!
|
||||
set-validator!
|
||||
set?
|
||||
short
|
||||
short-array
|
||||
shorts
|
||||
shutdown-agents
|
||||
slurp
|
||||
some
|
||||
sort
|
||||
sort-by
|
||||
sorted-map
|
||||
sorted-map-by
|
||||
sorted-set
|
||||
sorted-set-by
|
||||
sorted?
|
||||
special-form-anchor
|
||||
special-symbol?
|
||||
split-at
|
||||
split-with
|
||||
str
|
||||
stream?
|
||||
string?
|
||||
struct
|
||||
struct-map
|
||||
subs
|
||||
subseq
|
||||
subvec
|
||||
supers
|
||||
swap!
|
||||
symbol
|
||||
symbol?
|
||||
sync
|
||||
syntax-symbol-anchor
|
||||
take
|
||||
take-last
|
||||
take-nth
|
||||
take-while
|
||||
test
|
||||
the-ns
|
||||
time
|
||||
to-array
|
||||
to-array-2d
|
||||
trampoline
|
||||
transient
|
||||
tree-seq
|
||||
true?
|
||||
type
|
||||
unchecked-add
|
||||
unchecked-dec
|
||||
unchecked-divide
|
||||
unchecked-inc
|
||||
unchecked-multiply
|
||||
unchecked-negate
|
||||
unchecked-remainder
|
||||
unchecked-subtract
|
||||
underive
|
||||
update-in
|
||||
update-proxy
|
||||
use
|
||||
val
|
||||
vals
|
||||
var-get
|
||||
var-set
|
||||
var?
|
||||
vary-meta
|
||||
vec
|
||||
vector
|
||||
vector-of
|
||||
vector?
|
||||
when
|
||||
when-first
|
||||
when-let
|
||||
when-not
|
||||
while
|
||||
with-bindings
|
||||
with-bindings*
|
||||
with-in-str
|
||||
with-local-vars
|
||||
with-meta
|
||||
with-open
|
||||
with-out-str
|
||||
with-precision
|
||||
xml-seq
|
||||
zero?
|
||||
zipmap
|
||||
278
elpa/auto-complete-20170125.245/dict/coq-mode
Normal file
278
elpa/auto-complete-20170125.245/dict/coq-mode
Normal file
@@ -0,0 +1,278 @@
|
||||
# Generated by the following form.
|
||||
# (loop for regexp in (append
|
||||
# coq-solve-tactics
|
||||
# coq-keywords
|
||||
# coq-reserved
|
||||
# coq-tactics
|
||||
# coq-tacticals
|
||||
# (list "Set" "Type" "Prop"))
|
||||
# append (split-string regexp (regexp-quote "\\s-+")) into words
|
||||
# finally (loop initially (goto-char (point-max))
|
||||
# for word in (delete-dups (sort words 'string<))
|
||||
# do (insert word) (newline)))
|
||||
|
||||
Abort
|
||||
About
|
||||
Abstract
|
||||
Add
|
||||
Admit
|
||||
Admitted
|
||||
All
|
||||
Arguments
|
||||
AutoInline
|
||||
Axiom
|
||||
Bind
|
||||
Canonical
|
||||
Cd
|
||||
Chapter
|
||||
Check
|
||||
Close
|
||||
CoFixpoint
|
||||
CoInductive
|
||||
Coercion
|
||||
Coercions
|
||||
Comments
|
||||
Conjecture
|
||||
Constant
|
||||
Constructors
|
||||
Corollary
|
||||
Declare
|
||||
Defined
|
||||
Definition
|
||||
Delimit
|
||||
Dependent
|
||||
Depth
|
||||
Derive
|
||||
End
|
||||
Eval
|
||||
Export
|
||||
Extern
|
||||
Extract
|
||||
Extraction
|
||||
Fact
|
||||
False
|
||||
Field
|
||||
File
|
||||
Fixpoint
|
||||
Focus
|
||||
Function
|
||||
Functional
|
||||
Goal
|
||||
Hint
|
||||
Hypotheses
|
||||
Hypothesis
|
||||
Hyps
|
||||
Identity
|
||||
If
|
||||
Immediate
|
||||
Implicit
|
||||
Import
|
||||
Inductive
|
||||
Infix
|
||||
Inline
|
||||
Inlined
|
||||
Inspect
|
||||
Inversion
|
||||
Language
|
||||
Lemma
|
||||
Let
|
||||
Library
|
||||
Limit
|
||||
LoadPath
|
||||
Local
|
||||
Locate
|
||||
Ltac
|
||||
ML
|
||||
Module
|
||||
Morphism
|
||||
Next Obligation
|
||||
NoInline
|
||||
Notation
|
||||
Notations
|
||||
Obligation
|
||||
Obligations
|
||||
Off
|
||||
On
|
||||
Opaque
|
||||
Open
|
||||
Optimize
|
||||
Parameter
|
||||
Parameters
|
||||
Path
|
||||
Print
|
||||
Printing
|
||||
Program
|
||||
Proof
|
||||
Prop
|
||||
Pwd
|
||||
Qed
|
||||
Rec
|
||||
Record
|
||||
Recursive
|
||||
Remark
|
||||
Remove
|
||||
Require
|
||||
Reserved
|
||||
Reset
|
||||
Resolve
|
||||
Rewrite
|
||||
Ring
|
||||
Save
|
||||
Scheme
|
||||
Scope
|
||||
Search
|
||||
SearchAbout
|
||||
SearchPattern
|
||||
SearchRewrite
|
||||
Section
|
||||
Semi
|
||||
Set
|
||||
Setoid
|
||||
Show
|
||||
Solve
|
||||
Sort
|
||||
Strict
|
||||
Structure
|
||||
Synth
|
||||
Tactic
|
||||
Test
|
||||
Theorem
|
||||
Time
|
||||
Transparent
|
||||
True
|
||||
Type
|
||||
Undo
|
||||
Unfocus
|
||||
Unfold
|
||||
Unset
|
||||
Variable
|
||||
Variables
|
||||
Width
|
||||
Wildcard
|
||||
abstract
|
||||
absurd
|
||||
after
|
||||
apply
|
||||
as
|
||||
assert
|
||||
assumption
|
||||
at
|
||||
auto
|
||||
autorewrite
|
||||
beta
|
||||
by
|
||||
case
|
||||
cbv
|
||||
change
|
||||
clear
|
||||
clearbody
|
||||
cofix
|
||||
coinduction
|
||||
compare
|
||||
compute
|
||||
congruence
|
||||
constructor
|
||||
contradiction
|
||||
cut
|
||||
cutrewrite
|
||||
decide
|
||||
decompose
|
||||
delta
|
||||
dependent
|
||||
dest
|
||||
destruct
|
||||
discrR
|
||||
discriminate
|
||||
do
|
||||
double
|
||||
eapply
|
||||
eauto
|
||||
econstructor
|
||||
eexists
|
||||
eleft
|
||||
elim
|
||||
else
|
||||
end
|
||||
equality
|
||||
esplit
|
||||
exact
|
||||
exists
|
||||
fail
|
||||
field
|
||||
first
|
||||
firstorder
|
||||
fix
|
||||
fold
|
||||
forall
|
||||
fourier
|
||||
fun
|
||||
functional
|
||||
generalize
|
||||
hnf
|
||||
idtac
|
||||
if
|
||||
in
|
||||
induction
|
||||
info
|
||||
injection
|
||||
instantiate
|
||||
into
|
||||
intro
|
||||
intros
|
||||
intuition
|
||||
inversion
|
||||
inversion_clear
|
||||
iota
|
||||
lapply
|
||||
lazy
|
||||
left
|
||||
let
|
||||
linear
|
||||
load
|
||||
match
|
||||
move
|
||||
omega
|
||||
pattern
|
||||
pose
|
||||
progress
|
||||
prolog
|
||||
quote
|
||||
record
|
||||
red
|
||||
refine
|
||||
reflexivity
|
||||
rename
|
||||
repeat
|
||||
replace
|
||||
return
|
||||
rewrite
|
||||
right
|
||||
ring
|
||||
set
|
||||
setoid
|
||||
setoid_replace
|
||||
setoid_rewrite
|
||||
simpl
|
||||
simple
|
||||
simplify_eq
|
||||
solve
|
||||
specialize
|
||||
split
|
||||
split_Rabs
|
||||
split_Rmult
|
||||
stepl
|
||||
stepr
|
||||
struct
|
||||
subst
|
||||
sum
|
||||
symmetry
|
||||
tauto
|
||||
then
|
||||
transitivity
|
||||
trivial
|
||||
try
|
||||
unfold
|
||||
until
|
||||
using
|
||||
with
|
||||
zeta
|
||||
874
elpa/auto-complete-20170125.245/dict/css-mode
Normal file
874
elpa/auto-complete-20170125.245/dict/css-mode
Normal file
@@ -0,0 +1,874 @@
|
||||
!important
|
||||
@font-face
|
||||
@font-feature-values
|
||||
@keyframes
|
||||
ActiveBorder
|
||||
ActiveCaption
|
||||
Alpha
|
||||
AppWorkspace
|
||||
Background
|
||||
Barn
|
||||
BasicImage
|
||||
Blinds
|
||||
Blur
|
||||
ButtonFace
|
||||
ButtonHighlight
|
||||
ButtonShadow
|
||||
ButtonText
|
||||
CaptionText
|
||||
CheckerBoard
|
||||
Chroma
|
||||
Compositor
|
||||
CradientWipe
|
||||
DXImageTransform
|
||||
DropShadow
|
||||
Emboss
|
||||
Engrave
|
||||
Fade
|
||||
FlipH
|
||||
FlipV
|
||||
Glow
|
||||
Gray
|
||||
GrayText
|
||||
Highlight
|
||||
HighlightText
|
||||
Hz
|
||||
ICMFilter
|
||||
InactiveBorder
|
||||
InactiveCaption
|
||||
InactiveCaptionText
|
||||
InfoBackground
|
||||
InfoText
|
||||
Inset
|
||||
Invert
|
||||
Iris
|
||||
Light
|
||||
MaskFilter
|
||||
Matrix
|
||||
Menu
|
||||
MenuText
|
||||
Microsoft
|
||||
MotionBlur
|
||||
Pixelate
|
||||
RadialWipe
|
||||
RandomBars
|
||||
RandomDissolve
|
||||
RevealTrans
|
||||
Scrollbar
|
||||
Shadow
|
||||
Slide
|
||||
Spiral
|
||||
Stretch
|
||||
Strips
|
||||
ThreeDDarkShadow
|
||||
ThreeDFace
|
||||
ThreeDHighlight
|
||||
ThreeDLightShadow
|
||||
ThreeDShadow
|
||||
Wave
|
||||
Wheel
|
||||
Window
|
||||
WindowFrame
|
||||
WindowText
|
||||
Xray
|
||||
Zigzag
|
||||
_azimuth
|
||||
_background
|
||||
_background-position-x
|
||||
_background-position-y
|
||||
_border
|
||||
_bottom
|
||||
_caption
|
||||
_clear
|
||||
_clip
|
||||
_color
|
||||
_content
|
||||
_counter
|
||||
_cue
|
||||
_cursor
|
||||
_direction
|
||||
_display
|
||||
_elevation
|
||||
_empty
|
||||
_filter
|
||||
_filter:progid:DXImageTransform.Microsoft
|
||||
_float
|
||||
_font
|
||||
_height
|
||||
_ime
|
||||
_ime-mode
|
||||
_layout
|
||||
_layout-flow
|
||||
_layout-grid
|
||||
_layout-grid-char
|
||||
_layout-grid-line
|
||||
_layout-grid-mode
|
||||
_layout-grid-type
|
||||
_left
|
||||
_letter
|
||||
_line
|
||||
_line-break
|
||||
_list
|
||||
_margin
|
||||
_orphans
|
||||
_outline
|
||||
_overflow
|
||||
_overflow-x
|
||||
_overflow-y
|
||||
_padding
|
||||
_page
|
||||
_pause
|
||||
_pitch
|
||||
_play
|
||||
_position
|
||||
_quotes
|
||||
_richness
|
||||
_right
|
||||
_ruby
|
||||
_ruby-align
|
||||
_ruby-overhang
|
||||
_ruby-position
|
||||
_scrollbar
|
||||
_scrollbar-3dlight-color
|
||||
_scrollbar-arrow-color
|
||||
_scrollbar-base-color
|
||||
_scrollbar-darkshadow-color
|
||||
_scrollbar-face-color
|
||||
_scrollbar-highlight-color
|
||||
_scrollbar-track-color
|
||||
_speak
|
||||
_speech
|
||||
_stress
|
||||
_table
|
||||
_text
|
||||
_text-align-last
|
||||
_text-autospace
|
||||
_text-justify
|
||||
_text-kashida-space
|
||||
_text-overflow
|
||||
_text-underline-position
|
||||
_top
|
||||
_unicode
|
||||
_vertical
|
||||
_visibility
|
||||
_voice
|
||||
_volume
|
||||
_white
|
||||
_widows
|
||||
_width
|
||||
_word
|
||||
_word-break
|
||||
_word-wrap
|
||||
_writing
|
||||
_writing-mode
|
||||
_z
|
||||
_zoom
|
||||
above
|
||||
active
|
||||
adjust
|
||||
after
|
||||
aliceblue
|
||||
align
|
||||
align-content
|
||||
align-items
|
||||
align-self
|
||||
always
|
||||
animation
|
||||
animation-delay
|
||||
animation-direction
|
||||
animation-duration
|
||||
animation-fill-mode
|
||||
animation-iteration-count
|
||||
animation-name
|
||||
animation-play-state
|
||||
animation-timing-function
|
||||
antiquewhite
|
||||
aqua
|
||||
aquamarine
|
||||
armenian
|
||||
arrow
|
||||
attachment
|
||||
auto
|
||||
autospace
|
||||
avoid
|
||||
azimuth
|
||||
azure
|
||||
backface-visibility
|
||||
background
|
||||
background-attachment
|
||||
background-clip
|
||||
background-color
|
||||
background-image
|
||||
background-origin
|
||||
background-position
|
||||
background-repeat
|
||||
background-size
|
||||
bar
|
||||
base
|
||||
baseline
|
||||
before
|
||||
behind
|
||||
beige
|
||||
below
|
||||
bidi
|
||||
bidi-override
|
||||
bisque
|
||||
black
|
||||
blanchedalmond
|
||||
blink
|
||||
block
|
||||
blue
|
||||
blueviolet
|
||||
bold
|
||||
bolder
|
||||
border
|
||||
border-bottom
|
||||
border-bottom-color
|
||||
border-bottom-left-radius
|
||||
border-bottom-right-radius
|
||||
border-bottom-style
|
||||
border-bottom-width
|
||||
border-collapse
|
||||
border-color
|
||||
border-image
|
||||
border-image-outset
|
||||
border-image-repeat
|
||||
border-image-slice
|
||||
border-image-source
|
||||
border-image-width
|
||||
border-left
|
||||
border-left-color
|
||||
border-left-style
|
||||
border-left-width
|
||||
border-radius
|
||||
border-right
|
||||
border-right-color
|
||||
border-right-style
|
||||
border-right-width
|
||||
border-spacing
|
||||
border-style
|
||||
border-top
|
||||
border-top-color
|
||||
border-top-left-radius
|
||||
border-top-right-radius
|
||||
border-top-style
|
||||
border-top-width
|
||||
border-width
|
||||
both
|
||||
bottom
|
||||
box
|
||||
box-decoration-break
|
||||
box-shadow
|
||||
box-sizing
|
||||
break
|
||||
break-after
|
||||
break-before
|
||||
break-inside
|
||||
brown
|
||||
burlwood
|
||||
cadetblue
|
||||
capitalize
|
||||
caps
|
||||
caption
|
||||
caption-side
|
||||
cell
|
||||
cells
|
||||
center
|
||||
center-left
|
||||
center-right
|
||||
char
|
||||
chartreuse
|
||||
chocolate
|
||||
circle
|
||||
cjk
|
||||
cjk-ideographic
|
||||
clear
|
||||
clip
|
||||
close
|
||||
close-quote
|
||||
cm
|
||||
code
|
||||
collapse
|
||||
color
|
||||
column
|
||||
column-count
|
||||
column-fill
|
||||
column-gap
|
||||
column-rule
|
||||
column-rule-color
|
||||
column-rule-style
|
||||
column-rule-width
|
||||
column-span
|
||||
column-width
|
||||
columns
|
||||
compact
|
||||
condensed
|
||||
content
|
||||
continuous
|
||||
coral
|
||||
cornflowerblue
|
||||
cornsilk
|
||||
counter
|
||||
counter-increment
|
||||
counter-reset
|
||||
crimson
|
||||
crop
|
||||
cross
|
||||
crosshair
|
||||
cue
|
||||
cue-after
|
||||
cue-before
|
||||
cursive
|
||||
cursor
|
||||
cyan
|
||||
darkblue
|
||||
darkcyan
|
||||
darkgoldenrod
|
||||
darkgray
|
||||
darkgreen
|
||||
darkkhaki
|
||||
darkmagenta
|
||||
darkolivegreen
|
||||
darkorange
|
||||
darkorchid
|
||||
darkred
|
||||
darksalmon
|
||||
darkseagreen
|
||||
darkshadow
|
||||
darkslateblue
|
||||
darkslategray
|
||||
darkturquoise
|
||||
darkviolet
|
||||
dashed
|
||||
decimal
|
||||
decimal-leading-zero
|
||||
decoration
|
||||
deeppink
|
||||
deepskyblue
|
||||
default
|
||||
deg
|
||||
digits
|
||||
dimgray
|
||||
direction
|
||||
disc
|
||||
display
|
||||
dodgerblue
|
||||
dotted
|
||||
double
|
||||
during
|
||||
e
|
||||
e-resize
|
||||
elevation
|
||||
em
|
||||
embed
|
||||
empty
|
||||
empty-cells
|
||||
ex
|
||||
expanded
|
||||
extra
|
||||
extra-condensed
|
||||
extra-expanded
|
||||
face
|
||||
family
|
||||
fantasy
|
||||
far
|
||||
far-left
|
||||
far-right
|
||||
fast
|
||||
faster
|
||||
filter
|
||||
firebrick
|
||||
first
|
||||
first-child
|
||||
first-letter
|
||||
first-line
|
||||
fixed
|
||||
flex
|
||||
flex-basis
|
||||
flex-direction
|
||||
flex-flow
|
||||
flex-grow
|
||||
flex-shrink
|
||||
flex-wrap
|
||||
float
|
||||
floralwhite
|
||||
flow
|
||||
focus
|
||||
font
|
||||
font-family
|
||||
font-feature-setting
|
||||
font-kerning
|
||||
font-language-override
|
||||
font-size
|
||||
font-size-adjust
|
||||
font-stretch
|
||||
font-style
|
||||
font-synthesis
|
||||
font-variant
|
||||
font-variant-alternates
|
||||
font-variant-caps
|
||||
font-variant-east-asian
|
||||
font-variant-ligatures
|
||||
font-variant-numeric
|
||||
font-variant-position
|
||||
font-weight
|
||||
footer
|
||||
forestgreen
|
||||
fuchsia
|
||||
gainsboro
|
||||
georgian
|
||||
ghostwhite
|
||||
gold
|
||||
goldenrod
|
||||
gray
|
||||
greek
|
||||
green
|
||||
greenyellow
|
||||
grid
|
||||
groove
|
||||
group
|
||||
hanging-punctuation
|
||||
header
|
||||
hebrew
|
||||
height
|
||||
help
|
||||
hidden
|
||||
hide
|
||||
high
|
||||
higher
|
||||
hiragana
|
||||
hiragana-iroha
|
||||
honeydew
|
||||
hotpink
|
||||
hover
|
||||
hyphens
|
||||
icon
|
||||
ideographic
|
||||
image
|
||||
image-orientation
|
||||
image-rendering
|
||||
image-resolution
|
||||
ime-mode
|
||||
in
|
||||
increment
|
||||
indent
|
||||
index
|
||||
indianred
|
||||
indigo
|
||||
inherit
|
||||
inline
|
||||
inline-block
|
||||
inline-table
|
||||
inset
|
||||
inside
|
||||
iroha
|
||||
italic
|
||||
item
|
||||
ivory
|
||||
justify
|
||||
justify-content
|
||||
kHz
|
||||
kashida
|
||||
katakana
|
||||
katakana-iroha
|
||||
khaki
|
||||
landscape
|
||||
lang()
|
||||
large
|
||||
larger
|
||||
last
|
||||
latin
|
||||
lavender
|
||||
lavenderblush
|
||||
lawngreen
|
||||
layout
|
||||
leading
|
||||
left
|
||||
left-side
|
||||
leftwards
|
||||
lenonchiffon
|
||||
letter
|
||||
letter-spacing
|
||||
level
|
||||
lightblue
|
||||
lightcoral
|
||||
lightcyan
|
||||
lighter
|
||||
lightgoldenrodyellow
|
||||
lightgray
|
||||
lightgreen
|
||||
lightgrey
|
||||
lightpink
|
||||
lightsalmon
|
||||
lightseagreen
|
||||
lightskyblue
|
||||
lightslategray
|
||||
lightsteelblue
|
||||
lightyellow
|
||||
lime
|
||||
limegreen
|
||||
line
|
||||
line-break
|
||||
line-height
|
||||
line-through
|
||||
linen
|
||||
link
|
||||
list
|
||||
list-item
|
||||
list-style
|
||||
list-style-image
|
||||
list-style-position
|
||||
list-style-type
|
||||
loud
|
||||
low
|
||||
lower
|
||||
lower-alpha
|
||||
lower-greek
|
||||
lower-latin
|
||||
lower-roman
|
||||
lowercase
|
||||
ltr
|
||||
magenta
|
||||
margin
|
||||
margin-bottom
|
||||
margin-left
|
||||
margin-right
|
||||
margin-top
|
||||
mark
|
||||
mark-after
|
||||
mark-before
|
||||
marker
|
||||
marker-offset
|
||||
marks
|
||||
maroon
|
||||
marquee-direction
|
||||
marquee-play-count
|
||||
marquee-speed
|
||||
marquee-style
|
||||
mask
|
||||
mask-type
|
||||
max
|
||||
max-height
|
||||
max-width
|
||||
medium
|
||||
mediumaquamarine
|
||||
mediumblue
|
||||
mediumorchid
|
||||
mediumpurple
|
||||
mediumseagreen
|
||||
mediumslateblue
|
||||
mediumspringgreen
|
||||
mediumturquoise
|
||||
mediumvioletred
|
||||
menu
|
||||
message
|
||||
message-box
|
||||
middle
|
||||
midnightblue
|
||||
min
|
||||
min-height
|
||||
min-width
|
||||
mintcream
|
||||
mistyrose
|
||||
mix
|
||||
mm
|
||||
moccasin
|
||||
mode
|
||||
monospace
|
||||
move
|
||||
ms
|
||||
n
|
||||
n-resize
|
||||
naby
|
||||
narrower
|
||||
nav-down
|
||||
nav-index
|
||||
nav-left
|
||||
nav-right
|
||||
nav-up
|
||||
navajowhite
|
||||
ne
|
||||
ne-resize
|
||||
no
|
||||
no-close-quote
|
||||
no-open-quote
|
||||
no-repeat
|
||||
none
|
||||
normal
|
||||
nowrap
|
||||
number
|
||||
numeral
|
||||
nw
|
||||
nw-resize
|
||||
object-fit
|
||||
object-position
|
||||
oblique
|
||||
offset
|
||||
oldlace
|
||||
olive
|
||||
olivedrab
|
||||
once
|
||||
opacity
|
||||
open
|
||||
open-quote
|
||||
orange
|
||||
orangered
|
||||
orchid
|
||||
order
|
||||
orphans
|
||||
out
|
||||
outline
|
||||
outline-color
|
||||
outline-offset
|
||||
outline-style
|
||||
outline-width
|
||||
outset
|
||||
outside
|
||||
overflow
|
||||
overflow-wrap
|
||||
overflow-x
|
||||
overflow-y
|
||||
overhang
|
||||
overline
|
||||
override
|
||||
padding
|
||||
padding-bottom
|
||||
padding-left
|
||||
padding-right
|
||||
padding-top
|
||||
page
|
||||
page-break-after
|
||||
page-break-before
|
||||
page-break-inside
|
||||
palegoldenrod
|
||||
palegreen
|
||||
paleturquoise
|
||||
palevioletred
|
||||
papayawhip
|
||||
pause
|
||||
pause-after
|
||||
pause-before
|
||||
pc
|
||||
peachpuff
|
||||
perspective
|
||||
perspective-origin
|
||||
peru
|
||||
phonemes
|
||||
pink
|
||||
pitch
|
||||
pitch-range
|
||||
play
|
||||
play-during
|
||||
plum
|
||||
pointer
|
||||
portrait
|
||||
position
|
||||
powderblue
|
||||
pre
|
||||
pre-line
|
||||
pre-wrap
|
||||
progid
|
||||
progress
|
||||
pt
|
||||
punctuation
|
||||
purple
|
||||
px
|
||||
quote
|
||||
quotes
|
||||
rad
|
||||
range
|
||||
rate
|
||||
red
|
||||
relative
|
||||
repeat
|
||||
repeat-x
|
||||
repeat-y
|
||||
reset
|
||||
resize
|
||||
rest
|
||||
rest-after
|
||||
rest-before
|
||||
richness
|
||||
ridge
|
||||
right
|
||||
right-side
|
||||
rightwards
|
||||
roman
|
||||
rosybrown
|
||||
row
|
||||
royalblue
|
||||
rtl
|
||||
run
|
||||
run-in
|
||||
s
|
||||
s-resize
|
||||
saddlebrown
|
||||
salmon
|
||||
sandybrown
|
||||
sans-serif
|
||||
scroll
|
||||
se
|
||||
se-resize
|
||||
seagreen
|
||||
seashell
|
||||
semi
|
||||
semi-condensed
|
||||
semi-expanded
|
||||
separate
|
||||
serif
|
||||
shadow
|
||||
show
|
||||
side
|
||||
sienna
|
||||
silent
|
||||
silever
|
||||
silver
|
||||
size
|
||||
skyblue
|
||||
slateblue
|
||||
slategray
|
||||
slow
|
||||
slower
|
||||
small
|
||||
small-caps
|
||||
small-caption
|
||||
smaller
|
||||
snow
|
||||
soft
|
||||
solid
|
||||
space
|
||||
spacing
|
||||
speak
|
||||
speak-header
|
||||
speak-numeral
|
||||
speak-punctuation
|
||||
specific
|
||||
specific-voice
|
||||
speech
|
||||
speech-rate
|
||||
spell
|
||||
spell-out
|
||||
springgreen
|
||||
square
|
||||
static
|
||||
status
|
||||
status-bar
|
||||
steelblue
|
||||
stress
|
||||
stretch
|
||||
style
|
||||
sub
|
||||
super
|
||||
sw
|
||||
sw-resize
|
||||
tab-size
|
||||
table
|
||||
table-caption
|
||||
table-cell
|
||||
table-column
|
||||
table-column-group
|
||||
table-footer-group
|
||||
table-header-group
|
||||
table-layout
|
||||
table-row
|
||||
table-row-group
|
||||
tan
|
||||
teal
|
||||
text
|
||||
text-align
|
||||
text-align-last
|
||||
text-bottom
|
||||
text-combine-horizontal
|
||||
text-decoration
|
||||
text-decoration-color
|
||||
text-decoration-line
|
||||
text-decoration-style
|
||||
text-indent
|
||||
text-justify
|
||||
text-orientation
|
||||
text-overflow
|
||||
text-shadow
|
||||
text-top
|
||||
text-transform
|
||||
text-underline-position
|
||||
thick
|
||||
thin
|
||||
thistle
|
||||
through
|
||||
tomato
|
||||
top
|
||||
track
|
||||
transform
|
||||
transform-origin
|
||||
transform-style
|
||||
transition
|
||||
transition-delay
|
||||
transition-duration
|
||||
transition-property
|
||||
transition-timing-function
|
||||
transparent
|
||||
turquoise
|
||||
type
|
||||
ultra
|
||||
ultra-condensed
|
||||
ultra-expanded
|
||||
underline
|
||||
unicode
|
||||
unicode-bidi
|
||||
upper
|
||||
upper-alpha
|
||||
upper-latin
|
||||
upper-roman
|
||||
uppercase
|
||||
variant
|
||||
vertical
|
||||
vertical-align
|
||||
violet
|
||||
visibility
|
||||
visible
|
||||
visited
|
||||
voice
|
||||
voice-balance
|
||||
voice-duration
|
||||
voice-family
|
||||
voice-pitch
|
||||
voice-pitch-range
|
||||
voice-rate
|
||||
voice-stress
|
||||
voice-volume
|
||||
volume
|
||||
w
|
||||
w-resize
|
||||
wait
|
||||
weight
|
||||
wheat
|
||||
white
|
||||
white-space
|
||||
whitesmoke
|
||||
wider
|
||||
widows
|
||||
width
|
||||
word
|
||||
word-break
|
||||
word-spacing
|
||||
word-wrap
|
||||
wrap
|
||||
writing-mode
|
||||
x
|
||||
x-fast
|
||||
x-high
|
||||
x-large
|
||||
x-loud
|
||||
x-low
|
||||
x-slow
|
||||
x-small
|
||||
x-soft
|
||||
xx
|
||||
xx-large
|
||||
xx-small
|
||||
y
|
||||
yellow
|
||||
yellowgreen
|
||||
z
|
||||
z-index
|
||||
zero
|
||||
216
elpa/auto-complete-20170125.245/dict/erlang-mode
Normal file
216
elpa/auto-complete-20170125.245/dict/erlang-mode
Normal file
@@ -0,0 +1,216 @@
|
||||
after
|
||||
begin
|
||||
catch
|
||||
case
|
||||
cond
|
||||
end
|
||||
fun
|
||||
if
|
||||
let
|
||||
of
|
||||
query
|
||||
receive
|
||||
try
|
||||
when
|
||||
and
|
||||
andalso
|
||||
band
|
||||
bnot
|
||||
bor
|
||||
bsl
|
||||
bsr
|
||||
bxor
|
||||
div
|
||||
not
|
||||
or
|
||||
orelse
|
||||
rem
|
||||
xor
|
||||
is_atom
|
||||
is_binary
|
||||
is_bitstring
|
||||
is_boolean
|
||||
is_float
|
||||
is_function
|
||||
is_integer
|
||||
is_list
|
||||
is_number
|
||||
is_pid
|
||||
is_port
|
||||
is_record
|
||||
is_reference
|
||||
is_tuple
|
||||
atom
|
||||
binary
|
||||
bitstring
|
||||
boolean
|
||||
function
|
||||
integer
|
||||
list
|
||||
number
|
||||
pid
|
||||
port
|
||||
record
|
||||
reference
|
||||
tuple
|
||||
abs
|
||||
adler32
|
||||
adler32_combine
|
||||
alive
|
||||
apply
|
||||
atom_to_binary
|
||||
atom_to_list
|
||||
binary_to_atom
|
||||
binary_to_existing_atom
|
||||
binary_to_list
|
||||
binary_to_term
|
||||
bit_size
|
||||
bitstring_to_list
|
||||
byte_size
|
||||
check_process_code
|
||||
contact_binary
|
||||
crc32
|
||||
crc32_combine
|
||||
date
|
||||
decode_packet
|
||||
delete_module
|
||||
disconnect_node
|
||||
element
|
||||
erase
|
||||
exit
|
||||
float
|
||||
float_to_list
|
||||
garbage_collect
|
||||
get
|
||||
get_keys
|
||||
group_leader
|
||||
halt
|
||||
hd
|
||||
integer_to_list
|
||||
internal_bif
|
||||
iolist_size
|
||||
iolist_to_binary
|
||||
is_alive
|
||||
is_atom
|
||||
is_binary
|
||||
is_bitstring
|
||||
is_boolean
|
||||
is_float
|
||||
is_function
|
||||
is_integer
|
||||
is_list
|
||||
is_number
|
||||
is_pid
|
||||
is_port
|
||||
is_process_alive
|
||||
is_record
|
||||
is_reference
|
||||
is_tuple
|
||||
length
|
||||
link
|
||||
list_to_atom
|
||||
list_to_binary
|
||||
list_to_bitstring
|
||||
list_to_existing_atom
|
||||
list_to_float
|
||||
list_to_integer
|
||||
list_to_pid
|
||||
list_to_tuple
|
||||
load_module
|
||||
make_ref
|
||||
module_loaded
|
||||
monitor_node
|
||||
node
|
||||
node_link
|
||||
node_unlink
|
||||
nodes
|
||||
notalive
|
||||
now
|
||||
open_port
|
||||
pid_to_list
|
||||
port_close
|
||||
port_command
|
||||
port_connect
|
||||
port_control
|
||||
pre_loaded
|
||||
process_flag
|
||||
process_info
|
||||
processes
|
||||
purge_module
|
||||
put
|
||||
register
|
||||
registered
|
||||
round
|
||||
self
|
||||
setelement
|
||||
size
|
||||
spawn
|
||||
spawn_link
|
||||
spawn_monitor
|
||||
spawn_opt
|
||||
split_binary
|
||||
statistics
|
||||
term_to_binary
|
||||
time
|
||||
throw
|
||||
tl
|
||||
trunc
|
||||
tuple_size
|
||||
tuple_to_list
|
||||
unlink
|
||||
unregister
|
||||
whereis
|
||||
append_element
|
||||
bump_reductions
|
||||
cancel_timer
|
||||
demonitor
|
||||
display
|
||||
fun_info
|
||||
fun_to_list
|
||||
function_exported
|
||||
get_cookie
|
||||
get_stacktrace
|
||||
hash
|
||||
integer_to_list
|
||||
is_builtin
|
||||
list_to_integer
|
||||
loaded
|
||||
localtime
|
||||
localtime_to_universaltime
|
||||
make_tuple
|
||||
max
|
||||
md5
|
||||
md5_final
|
||||
md5_init
|
||||
md5_update
|
||||
memory
|
||||
min
|
||||
monitor
|
||||
monitor_node
|
||||
phash
|
||||
phash2
|
||||
port_call
|
||||
port_info
|
||||
port_to_list
|
||||
ports
|
||||
process_display
|
||||
read_timer
|
||||
ref_to_list
|
||||
resume_process
|
||||
send
|
||||
send_after
|
||||
send_nosuspend
|
||||
set_cookie
|
||||
start_timer
|
||||
suspend_process
|
||||
system_flag
|
||||
system_info
|
||||
system_monitor
|
||||
system_profile
|
||||
trace
|
||||
trace_delivered
|
||||
trace_info
|
||||
trace_pattern
|
||||
universaltime
|
||||
universaltime_to_localtime
|
||||
yield
|
||||
37
elpa/auto-complete-20170125.245/dict/ess-julia-mode
Normal file
37
elpa/auto-complete-20170125.245/dict/ess-julia-mode
Normal file
@@ -0,0 +1,37 @@
|
||||
abstract
|
||||
break
|
||||
case
|
||||
catch
|
||||
const
|
||||
continue
|
||||
do
|
||||
else
|
||||
elseif
|
||||
end
|
||||
eval
|
||||
export
|
||||
false
|
||||
finally
|
||||
for
|
||||
function
|
||||
global
|
||||
if
|
||||
ifelse
|
||||
immutable
|
||||
import
|
||||
importall
|
||||
in
|
||||
let
|
||||
macro
|
||||
module
|
||||
otherwise
|
||||
quote
|
||||
return
|
||||
switch
|
||||
throw
|
||||
true
|
||||
try
|
||||
type
|
||||
typealias
|
||||
using
|
||||
while
|
||||
25
elpa/auto-complete-20170125.245/dict/go-mode
Normal file
25
elpa/auto-complete-20170125.245/dict/go-mode
Normal file
@@ -0,0 +1,25 @@
|
||||
break
|
||||
case
|
||||
chan
|
||||
const
|
||||
continue
|
||||
default
|
||||
defer
|
||||
else
|
||||
fallthrough
|
||||
for
|
||||
func
|
||||
go
|
||||
goto
|
||||
if
|
||||
import
|
||||
interface
|
||||
map
|
||||
package
|
||||
range
|
||||
return
|
||||
select
|
||||
struct
|
||||
switch
|
||||
type
|
||||
var
|
||||
679
elpa/auto-complete-20170125.245/dict/haskell-mode
Normal file
679
elpa/auto-complete-20170125.245/dict/haskell-mode
Normal file
@@ -0,0 +1,679 @@
|
||||
Arrows
|
||||
BangPatterns
|
||||
Bool
|
||||
Bounded
|
||||
CPP
|
||||
Char
|
||||
Complex
|
||||
ConstrainedClassMethods
|
||||
Control.Applicative
|
||||
Control.Arrow
|
||||
Control.Category
|
||||
Control.Concurrent
|
||||
Control.Concurrent.MVar
|
||||
Control.Concurrent.QSem
|
||||
Control.Concurrent.QSemN
|
||||
Control.Concurrent.STM
|
||||
Control.Concurrent.STM.TArray
|
||||
Control.Concurrent.STM.TChan
|
||||
Control.Concurrent.STM.TMVar
|
||||
Control.Concurrent.STM.TVar
|
||||
Control.Concurrent.SampleVar
|
||||
Control.Exception
|
||||
Control.Exception.Base
|
||||
Control.Monad
|
||||
Control.Monad.Cont
|
||||
Control.Monad.Cont.Class
|
||||
Control.Monad.Error
|
||||
Control.Monad.Error.Class
|
||||
Control.Monad.Fix
|
||||
Control.Monad.Identity
|
||||
Control.Monad.Instances
|
||||
Control.Monad.List
|
||||
Control.Monad.RWS
|
||||
Control.Monad.RWS.Class
|
||||
Control.Monad.RWS.Lazy
|
||||
Control.Monad.RWS.Strict
|
||||
Control.Monad.Reader
|
||||
Control.Monad.Reader.Class
|
||||
Control.Monad.ST
|
||||
Control.Monad.ST.Lazy
|
||||
Control.Monad.ST.Strict
|
||||
Control.Monad.STM
|
||||
Control.Monad.State
|
||||
Control.Monad.State.Class
|
||||
Control.Monad.State.Lazy
|
||||
Control.Monad.State.Strict
|
||||
Control.Monad.Trans
|
||||
Control.Monad.Writer
|
||||
Control.Monad.Writer.Class
|
||||
Control.Monad.Writer.Lazy
|
||||
Control.Monad.Writer.Strict
|
||||
Control.OldException
|
||||
Control.Parallel
|
||||
Control.Parallel.Strategies
|
||||
DEPRECATED
|
||||
Data.Array
|
||||
Data.Array.Diff
|
||||
Data.Array.IArray
|
||||
Data.Array.IO
|
||||
Data.Array.IO.Internals
|
||||
Data.Array.MArray
|
||||
Data.Array.Paralell
|
||||
Data.Array.Paralell.Arr
|
||||
Data.Array.Paralell.Base
|
||||
Data.Array.Paralell.Int
|
||||
Data.Array.Paralell.Lifted
|
||||
Data.Array.Paralell.PArray
|
||||
Data.Array.Paralell.Prelude
|
||||
Data.Array.Paralell.Prelude.Double
|
||||
Data.Array.Paralell.Stream
|
||||
Data.Array.Paralell.Unlifted
|
||||
Data.Array.Paralell.Unlifted.Distributed
|
||||
Data.Array.Paralell.Unlifted.Paralell
|
||||
Data.Array.Paralell.Unlifted.Sqeuential
|
||||
Data.Array.Paralell.Word8
|
||||
Data.Array.ST
|
||||
Data.Array.Storable
|
||||
Data.Array.Unboxed
|
||||
Data.Bits
|
||||
Data.Bool
|
||||
Data.ByteString
|
||||
Data.ByteString.Char8
|
||||
Data.ByteString.Fusion
|
||||
Data.ByteString.Internal
|
||||
Data.ByteString.Lazy
|
||||
Data.ByteString.Lazy.Char8
|
||||
Data.ByteString.Lazy.Fusion
|
||||
Data.ByteString.Lazy.Internal
|
||||
Data.ByteString.Unsafe
|
||||
Data.Char
|
||||
Data.Complex
|
||||
Data.Data
|
||||
Data.Dynamic
|
||||
Data.Either
|
||||
Data.Eq
|
||||
Data.Fixed
|
||||
Data.Foldable
|
||||
Data.Function
|
||||
Data.Generics
|
||||
Data.Generics.Aliases
|
||||
Data.Generics.Basics
|
||||
Data.Generics.Instances
|
||||
Data.Generics.Schemes
|
||||
Data.Generics.Text
|
||||
Data.Generics.Twins
|
||||
Data.Graph
|
||||
Data.HashTable
|
||||
Data.IORef
|
||||
Data.Int
|
||||
Data.IntMap
|
||||
Data.IntSet
|
||||
Data.Ix
|
||||
Data.List
|
||||
Data.Map
|
||||
Data.Maybe
|
||||
Data.Monoid
|
||||
Data.Ord
|
||||
Data.Ratio
|
||||
Data.STRef
|
||||
Data.STRef.Lazy
|
||||
Data.STRef.Strict
|
||||
Data.Sequence
|
||||
Data.Set
|
||||
Data.String
|
||||
Data.Time
|
||||
Data.Time.Calendar
|
||||
Data.Time.Calendar.Easter
|
||||
Data.Time.Calendar.Julian
|
||||
Data.Time.Calendar.MonthDay
|
||||
Data.Time.Calendar.OrdinalDate
|
||||
Data.Time.Calendar.WeekDate
|
||||
Data.Time.Clock
|
||||
Data.Time.Clock.POSIX
|
||||
Data.Time.Clock.TAI
|
||||
Data.Time.Format
|
||||
Data.Time.LocalTime
|
||||
Data.Traversable
|
||||
Data.Tree
|
||||
Data.Tuple
|
||||
Data.Typeable
|
||||
Data.Unique
|
||||
Data.Version
|
||||
Data.Word
|
||||
Debug.Trace
|
||||
DeriveDataTypeable
|
||||
DisambiguateRecordFields
|
||||
Distribution.Compat.ReadP
|
||||
Distribution.Compiler
|
||||
Distribution.InstalledPackageInfo
|
||||
Distribution.License
|
||||
Distribution.Make
|
||||
Distribution.ModuleName
|
||||
Distribution.Package
|
||||
Distribution.PackageDescription
|
||||
Distribution.PackageDescription.Check
|
||||
Distribution.PackageDescription.Configuration
|
||||
Distribution.PackageDescription.Parse
|
||||
Distribution.ParseUtils
|
||||
Distribution.ReadE
|
||||
Distribution.Simple
|
||||
Distribution.Simple.Build
|
||||
Distribution.Simple.Build.Macros
|
||||
Distribution.Simple.Build.PathsModule
|
||||
Distribution.Simple.BuildPaths
|
||||
Distribution.Simple.Command
|
||||
Distribution.Simple.Compiler
|
||||
Distribution.Simple.Configure
|
||||
Distribution.Simple.GHC
|
||||
Distribution.Simple.Haddock
|
||||
Distribution.Simple.Hugs
|
||||
Distribution.Simple.Install
|
||||
Distribution.Simple.InstallDirs
|
||||
Distribution.Simple.JHC
|
||||
Distribution.Simple.LocalBuildInfo
|
||||
Distribution.Simple.NHC
|
||||
Distribution.Simple.PackageIndex
|
||||
Distribution.Simple.PreProcess
|
||||
Distribution.Simple.PreProcess.Unlit
|
||||
Distribution.Simple.Program
|
||||
Distribution.Simple.Register
|
||||
Distribution.Simple.Setup
|
||||
Distribution.Simple.SrcDist
|
||||
Distribution.Simple.UserHooks
|
||||
Distribution.Simple.Utils
|
||||
Distribution.System
|
||||
Distribution.Text
|
||||
Distribution.Verbosity
|
||||
Distribution.Version
|
||||
Double
|
||||
EQ
|
||||
Either
|
||||
EmptyDataDecls
|
||||
Enum
|
||||
Eq
|
||||
ExistentialQuantification
|
||||
ExtendedDefaultRules
|
||||
False
|
||||
FilePath
|
||||
FlexibleContexts
|
||||
FlexibleInstances
|
||||
Float
|
||||
Floating
|
||||
Foreign
|
||||
Foreign.C
|
||||
Foreign.C.Error
|
||||
Foreign.C.String
|
||||
Foreign.C.Types
|
||||
Foreign.Concurrent
|
||||
Foreign.ForeignPtr
|
||||
Foreign.Marshal
|
||||
Foreign.Marshal.Alloc
|
||||
Foreign.Marshal.Array
|
||||
Foreign.Marshal.Error
|
||||
Foreign.Marshal.Pool
|
||||
Foreign.Marshal.Utils
|
||||
Foreign.Ptr
|
||||
Foreign.StablePtr
|
||||
Foreign.Storable
|
||||
ForeignFunctionInterface
|
||||
Fractional
|
||||
FunctionnalDependencies
|
||||
Functor
|
||||
GADTs
|
||||
GHC.Arr
|
||||
GHC.Bool
|
||||
GHC.Conc
|
||||
GHC.ConsoleHandler
|
||||
GHC.Desugar
|
||||
GHC.Environment
|
||||
GHC.Err
|
||||
GHC.Exts
|
||||
GHC.Generics
|
||||
GHC.Handle
|
||||
GHC.Ordering
|
||||
GHC.PArr
|
||||
GHC.Prim
|
||||
GHC.PrimopWrappers
|
||||
GHC.Tuple
|
||||
GHC.Types
|
||||
GHC.Unicode
|
||||
GHC.Unit
|
||||
GT
|
||||
GeneralizedNewtypeDeriving
|
||||
Generics
|
||||
INCLUDE
|
||||
INLINE
|
||||
IO
|
||||
IOError
|
||||
IOException
|
||||
ImplicitParams
|
||||
ImplicitPrelude
|
||||
ImpredicativeTypes
|
||||
IncoherentInstances
|
||||
Int
|
||||
Integer
|
||||
Integral
|
||||
Just
|
||||
KindSignatures
|
||||
LANGUAGE
|
||||
LINE
|
||||
LT
|
||||
Language.Haskell.Extension
|
||||
Language.Haskell.Lexer
|
||||
Language.Haskell.ParseMonad
|
||||
Language.Haskell.ParseUtils
|
||||
Language.Haskell.Parser
|
||||
Language.Haskell.Pretty
|
||||
Language.Haskell.Syntax
|
||||
Language.Haskell.TH
|
||||
Language.Haskell.TH.Lib
|
||||
Language.Haskell.TH.Ppr
|
||||
Language.Haskell.TH.PprLib
|
||||
Language.Haskell.TH.Quote
|
||||
Language.Haskell.TH.Syntax
|
||||
Left
|
||||
LiberalTypeSynonyms
|
||||
MagicHash
|
||||
Maybe
|
||||
Monad
|
||||
MonoPatBinds
|
||||
MonomorphismRestriction
|
||||
MultiParamTypeClasses
|
||||
NOINLINE
|
||||
NamedFieldPuns
|
||||
Network
|
||||
Network.BSD
|
||||
Network.Socket
|
||||
Network.URI
|
||||
NewQualifiedOperators
|
||||
NoArrows
|
||||
NoBangPatterns
|
||||
NoCPP
|
||||
NoConstrainedClassMethods
|
||||
NoDeriveDataTypeable
|
||||
NoDisambiguateRecordFields
|
||||
NoEmptyDataDecls
|
||||
NoExistentialQuantification
|
||||
NoExtendedDefaultRules
|
||||
NoFlexibleContexts
|
||||
NoFlexibleInstances
|
||||
NoForeignFunctionInterface
|
||||
NoFunctionnalDependencies
|
||||
NoGADTs
|
||||
NoGeneralizedNewtypeDeriving
|
||||
NoGenerics
|
||||
NoImplicitParams
|
||||
NoImplicitPrelude
|
||||
NoImpredicativeTypes
|
||||
NoIncoherentInstances
|
||||
NoKindSignatures
|
||||
NoLiberalTypeSynonyms
|
||||
NoMagicHash
|
||||
NoMonoPatBinds
|
||||
NoMonomorphismRestriction
|
||||
NoMultiParamTypeClasses
|
||||
NoNamedFieldPuns
|
||||
NoNewQualifiedOperators
|
||||
NoOverlappingInstances
|
||||
NoOverloadedStrings
|
||||
NoPArr
|
||||
NoPackageImports
|
||||
NoParallelListComp
|
||||
NoPatternGuards
|
||||
NoPolymorphicComponents
|
||||
NoQuasiQuotes
|
||||
NoRank2Types
|
||||
NoRankNTypes
|
||||
NoRecordWildCards
|
||||
NoRecursiveDo
|
||||
NoRelaxedPolyRec
|
||||
NoScopedTypeVariables
|
||||
NoStandaloneDeriving
|
||||
NoTemplateHaskell
|
||||
NoTransformListComp
|
||||
NoTypeFamilies
|
||||
NoTypeOperators
|
||||
NoTypeSynonymInstances
|
||||
NoUnboxedTuples
|
||||
NoUndecidableInstances
|
||||
NoUnicodeSyntax
|
||||
NoUnliftedFFITypes
|
||||
NoViewPatterns
|
||||
Nothing
|
||||
Num
|
||||
Numeric
|
||||
OPTIONS_GHC
|
||||
Ord
|
||||
Ordering
|
||||
OverlappingInstances
|
||||
OverloadedStrings
|
||||
PArr
|
||||
PackageImports
|
||||
ParallelListComp
|
||||
PatternGuards
|
||||
PolymorphicComponents
|
||||
Prelude
|
||||
QuasiQuotes
|
||||
RULES
|
||||
Rank2Types
|
||||
RankNTypes
|
||||
Ratio
|
||||
Read
|
||||
ReadS
|
||||
Real
|
||||
RealFloat
|
||||
RealFrac
|
||||
RecordWildCards
|
||||
RecursiveDo
|
||||
RelaxedPolyRec
|
||||
Right
|
||||
SOURCE
|
||||
SPECIALIZE
|
||||
ScopedTypeVariables
|
||||
ShowS
|
||||
StandaloneDeriving
|
||||
String
|
||||
System.CPUTime
|
||||
System.Cmd
|
||||
System.Console.Editline
|
||||
System.Console.GetOpt
|
||||
System.Console.Readline
|
||||
System.Directory
|
||||
System.Environment
|
||||
System.Exit
|
||||
System.FilePath
|
||||
System.FilePath.Posix
|
||||
System.FilePath.Windows
|
||||
System.IO
|
||||
System.IO.Error
|
||||
System.IO.Unsafe
|
||||
System.Info
|
||||
System.Locale
|
||||
System.Mem
|
||||
System.Mem.StableName
|
||||
System.Mem.Weak
|
||||
System.Posix
|
||||
System.Posix.Directory
|
||||
System.Posix.DynamicLinker
|
||||
System.Posix.DynamicLinker.Module
|
||||
System.Posix.DynamicLinker.Prim
|
||||
System.Posix.Env
|
||||
System.Posix.Error
|
||||
System.Posix.Files
|
||||
System.Posix.IO
|
||||
System.Posix.Process
|
||||
System.Posix.Process.Internals
|
||||
System.Posix.Resource
|
||||
System.Posix.Semaphore
|
||||
System.Posix.SharedMem
|
||||
System.Posix.Signals
|
||||
System.Posix.Signals.Exts
|
||||
System.Posix.Temp
|
||||
System.Posix.Terminal
|
||||
System.Posix.Time
|
||||
System.Posix.Types
|
||||
System.Posix.Unistd
|
||||
System.Posix.User
|
||||
System.Process
|
||||
System.Random
|
||||
System.Time
|
||||
System.Timeout
|
||||
TemplateHaskell
|
||||
Test.HUnit
|
||||
Test.HUnit.Base
|
||||
Test.HUnit.Lang
|
||||
Test.HUnit.Terminal
|
||||
Test.HUnit.Text
|
||||
Test.QuickCheck
|
||||
Test.QuickCheck.Batch
|
||||
Test.QuickCheck.Poly
|
||||
Test.QuickCheck.Utils
|
||||
Text.Html
|
||||
Text.Html.BlockTable
|
||||
Text.ParserCombinators.Parsec
|
||||
Text.ParserCombinators.Parsec.Char
|
||||
Text.ParserCombinators.Parsec.Combinator
|
||||
Text.ParserCombinators.Parsec.Error
|
||||
Text.ParserCombinators.Parsec.Expr
|
||||
Text.ParserCombinators.Parsec.Language
|
||||
Text.ParserCombinators.Parsec.Perm
|
||||
Text.ParserCombinators.Parsec.Pos
|
||||
Text.ParserCombinators.Parsec.Prim
|
||||
Text.ParserCombinators.Parsec.Token
|
||||
Text.ParserCombinators.ReadP
|
||||
Text.ParserCombinators.ReadPrec
|
||||
Text.PrettyPrint
|
||||
Text.PrettyPrint.HughesPJ
|
||||
Text.Printf
|
||||
Text.Read
|
||||
Text.Read.Lex
|
||||
Text.Regex.Base
|
||||
Text.Regex.Base.Context
|
||||
Text.Regex.Base.Impl
|
||||
Text.Regex.Base.RegexLike
|
||||
Text.Regex.Posix
|
||||
Text.Regex.Posix.ByteString
|
||||
Text.Regex.Posix.String
|
||||
Text.Regex.Posix.Wrap
|
||||
Text.Show
|
||||
Text.Show.Functions
|
||||
Text.XHtml
|
||||
Text.XHtml.Debug
|
||||
Text.XHtml.Frameset
|
||||
Text.XHtml.Strict
|
||||
Text.XHtml.Table
|
||||
Text.XHtml.Transitional
|
||||
Trace.Hpc.Mix
|
||||
Trace.Hpc.Reflect
|
||||
Trace.Hpc.Tix
|
||||
Trace.Hpc.Util
|
||||
TransformListComp
|
||||
True
|
||||
TypeFamilies
|
||||
TypeOperators
|
||||
TypeSynonymInstances
|
||||
UNPACK
|
||||
UnboxedTuples
|
||||
UndecidableInstances
|
||||
UnicodeSyntax
|
||||
UnliftedFFITypes
|
||||
Unsafe.Coerce
|
||||
ViewPatterns
|
||||
WARNING
|
||||
abs
|
||||
acos
|
||||
acosh
|
||||
all
|
||||
and
|
||||
any
|
||||
appendFile
|
||||
as
|
||||
asTypeOf
|
||||
asin
|
||||
asinh
|
||||
atan
|
||||
atan2
|
||||
atanh
|
||||
break
|
||||
case
|
||||
catch
|
||||
ceiling
|
||||
class
|
||||
compare
|
||||
concat
|
||||
concatMap
|
||||
const
|
||||
cos
|
||||
cosh
|
||||
curry
|
||||
cycle
|
||||
data
|
||||
decodeFloat
|
||||
default
|
||||
deriving
|
||||
div
|
||||
divMod
|
||||
do
|
||||
drop
|
||||
dropWhile
|
||||
either
|
||||
elem
|
||||
else
|
||||
encodeFloat
|
||||
enumFrom
|
||||
enumFromThen
|
||||
enumFromThenTo
|
||||
enumFromTo
|
||||
error
|
||||
exp
|
||||
exponent
|
||||
fail
|
||||
filter
|
||||
flip
|
||||
floatDigits
|
||||
floatRadix
|
||||
floatRange
|
||||
floor
|
||||
fmap
|
||||
fold
|
||||
fold1
|
||||
foldr
|
||||
foldr1
|
||||
fromEnum
|
||||
fromInteger
|
||||
fromIntegral
|
||||
fromRational
|
||||
fst
|
||||
gcd
|
||||
getChar
|
||||
getContents
|
||||
getLine
|
||||
head
|
||||
hiding
|
||||
id
|
||||
if
|
||||
import
|
||||
in
|
||||
infix
|
||||
infixl
|
||||
infixr
|
||||
init
|
||||
instance
|
||||
intract
|
||||
ioError
|
||||
isDenormalized
|
||||
isIEEE
|
||||
isInfinite
|
||||
isNan
|
||||
isNegativeZero
|
||||
iterate
|
||||
last
|
||||
lcm
|
||||
length
|
||||
let
|
||||
lex
|
||||
lines
|
||||
log
|
||||
logBase
|
||||
lookup
|
||||
map
|
||||
mapM
|
||||
mapM_
|
||||
max
|
||||
maxBound
|
||||
maximum
|
||||
maybe
|
||||
min
|
||||
minBound
|
||||
minimum
|
||||
mod
|
||||
module
|
||||
negate
|
||||
newtype
|
||||
not
|
||||
notElem
|
||||
null
|
||||
odd
|
||||
of
|
||||
or
|
||||
otherwise
|
||||
pi
|
||||
pred
|
||||
print
|
||||
product
|
||||
properFraction
|
||||
putChar
|
||||
putStr
|
||||
putStrLn
|
||||
qualified
|
||||
quot
|
||||
quotRem
|
||||
read
|
||||
readFile
|
||||
readIO
|
||||
readList
|
||||
readLn
|
||||
readParen
|
||||
reads
|
||||
readsPrec
|
||||
realtoFrac
|
||||
recip
|
||||
rem
|
||||
repeat
|
||||
replicate
|
||||
return
|
||||
reverse
|
||||
round
|
||||
scaleFloat
|
||||
scanl
|
||||
scanl1
|
||||
scanr
|
||||
scanr1
|
||||
seq
|
||||
sequence
|
||||
sequence_
|
||||
show
|
||||
showChar
|
||||
showList
|
||||
showParen
|
||||
showString
|
||||
shows
|
||||
showsPrec
|
||||
significand
|
||||
signum
|
||||
sin
|
||||
sinh
|
||||
snd
|
||||
span
|
||||
splitAt
|
||||
sqrt
|
||||
subtract
|
||||
succ
|
||||
sum
|
||||
tail
|
||||
take
|
||||
takeWhile
|
||||
tan
|
||||
tanh
|
||||
then
|
||||
toEnum
|
||||
toInteger
|
||||
toRational
|
||||
truncate
|
||||
type
|
||||
uncurry
|
||||
undefined
|
||||
unlines
|
||||
until
|
||||
unwords
|
||||
unzip
|
||||
unzip3
|
||||
userError
|
||||
where
|
||||
words
|
||||
writeFile
|
||||
zip
|
||||
zip3
|
||||
zipWith
|
||||
zipWith3
|
||||
53
elpa/auto-complete-20170125.245/dict/java-mode
Normal file
53
elpa/auto-complete-20170125.245/dict/java-mode
Normal file
@@ -0,0 +1,53 @@
|
||||
abstract
|
||||
assert
|
||||
boolean
|
||||
break
|
||||
byte
|
||||
case
|
||||
catch
|
||||
char
|
||||
class
|
||||
const
|
||||
continue
|
||||
default
|
||||
do
|
||||
double
|
||||
else
|
||||
enum
|
||||
extends
|
||||
final
|
||||
finally
|
||||
float
|
||||
for
|
||||
goto
|
||||
if
|
||||
implements
|
||||
import
|
||||
instanceof
|
||||
int
|
||||
interface
|
||||
long
|
||||
native
|
||||
new
|
||||
package
|
||||
private
|
||||
protected
|
||||
public
|
||||
return
|
||||
short
|
||||
static
|
||||
strictfp
|
||||
super
|
||||
switch
|
||||
synchronized
|
||||
this
|
||||
throw
|
||||
throws
|
||||
transient
|
||||
try
|
||||
void
|
||||
volatile
|
||||
while
|
||||
@Override
|
||||
@Deprecated
|
||||
@SuppressWarnings
|
||||
148
elpa/auto-complete-20170125.245/dict/js-mode
Normal file
148
elpa/auto-complete-20170125.245/dict/js-mode
Normal file
@@ -0,0 +1,148 @@
|
||||
Anchor
|
||||
Area
|
||||
Array
|
||||
Boolean
|
||||
Button
|
||||
Checkbox
|
||||
Date
|
||||
Document
|
||||
Element
|
||||
FileUpload
|
||||
Form
|
||||
Frame
|
||||
Function
|
||||
Hidden
|
||||
History
|
||||
Image
|
||||
Infinity
|
||||
JavaArray
|
||||
JavaClass
|
||||
JavaObject
|
||||
JavaPackage
|
||||
Link
|
||||
Location
|
||||
Math
|
||||
MimeType
|
||||
NaN
|
||||
Navigator
|
||||
Number
|
||||
Object
|
||||
Option
|
||||
Packages
|
||||
Password
|
||||
Plugin
|
||||
Radio
|
||||
RegExp
|
||||
Reset
|
||||
Select
|
||||
String
|
||||
Submit
|
||||
Text
|
||||
Textarea
|
||||
Window
|
||||
alert
|
||||
arguments
|
||||
assign
|
||||
blur
|
||||
break
|
||||
callee
|
||||
caller
|
||||
captureEvents
|
||||
case
|
||||
clearInterval
|
||||
clearTimeout
|
||||
close
|
||||
closed
|
||||
comment
|
||||
confirm
|
||||
constructor
|
||||
continue
|
||||
default
|
||||
defaultStatus
|
||||
delete
|
||||
do
|
||||
document
|
||||
else
|
||||
escape
|
||||
eval
|
||||
export
|
||||
find
|
||||
focus
|
||||
for
|
||||
frames
|
||||
function
|
||||
getClass
|
||||
history
|
||||
home
|
||||
if
|
||||
import
|
||||
in
|
||||
innerHeight
|
||||
innerWidth
|
||||
isFinite
|
||||
isNan
|
||||
java
|
||||
label
|
||||
length
|
||||
location
|
||||
locationbar
|
||||
menubar
|
||||
moveBy
|
||||
moveTo
|
||||
name
|
||||
navigate
|
||||
navigator
|
||||
netscape
|
||||
new
|
||||
onBlur
|
||||
onError
|
||||
onFocus
|
||||
onLoad
|
||||
onUnload
|
||||
open
|
||||
opener
|
||||
outerHeight
|
||||
outerWidth
|
||||
pageXoffset
|
||||
pageYoffset
|
||||
parent
|
||||
parseFloat
|
||||
parseInt
|
||||
personalbar
|
||||
print
|
||||
prompt
|
||||
prototype
|
||||
ref
|
||||
releaseEvents
|
||||
resizeBy
|
||||
resizeTo
|
||||
return
|
||||
routeEvent
|
||||
scroll
|
||||
scrollBy
|
||||
scrollTo
|
||||
scrollbars
|
||||
self
|
||||
setInterval
|
||||
setTimeout
|
||||
status
|
||||
statusbar
|
||||
stop
|
||||
sun
|
||||
switch
|
||||
taint
|
||||
this
|
||||
toString
|
||||
toolbar
|
||||
top
|
||||
typeof
|
||||
unescape
|
||||
untaint
|
||||
unwatch
|
||||
valueOf
|
||||
var
|
||||
void
|
||||
watch
|
||||
while
|
||||
window
|
||||
with
|
||||
37
elpa/auto-complete-20170125.245/dict/julia-mode
Normal file
37
elpa/auto-complete-20170125.245/dict/julia-mode
Normal file
@@ -0,0 +1,37 @@
|
||||
abstract
|
||||
break
|
||||
case
|
||||
catch
|
||||
const
|
||||
continue
|
||||
do
|
||||
else
|
||||
elseif
|
||||
end
|
||||
eval
|
||||
export
|
||||
false
|
||||
finally
|
||||
for
|
||||
function
|
||||
global
|
||||
if
|
||||
ifelse
|
||||
immutable
|
||||
import
|
||||
importall
|
||||
in
|
||||
let
|
||||
macro
|
||||
module
|
||||
otherwise
|
||||
quote
|
||||
return
|
||||
switch
|
||||
throw
|
||||
true
|
||||
try
|
||||
type
|
||||
typealias
|
||||
using
|
||||
while
|
||||
21
elpa/auto-complete-20170125.245/dict/lua-mode
Normal file
21
elpa/auto-complete-20170125.245/dict/lua-mode
Normal file
@@ -0,0 +1,21 @@
|
||||
and
|
||||
break
|
||||
do
|
||||
else
|
||||
elseif
|
||||
end
|
||||
false
|
||||
for
|
||||
function
|
||||
if
|
||||
in
|
||||
local
|
||||
nil
|
||||
not
|
||||
or
|
||||
repeat
|
||||
return
|
||||
then
|
||||
true
|
||||
until
|
||||
while
|
||||
70
elpa/auto-complete-20170125.245/dict/nim-mode
Normal file
70
elpa/auto-complete-20170125.245/dict/nim-mode
Normal file
@@ -0,0 +1,70 @@
|
||||
addr
|
||||
and
|
||||
as
|
||||
asm
|
||||
atomic
|
||||
bind
|
||||
block
|
||||
break
|
||||
case
|
||||
cast
|
||||
concept
|
||||
const
|
||||
continue
|
||||
converter
|
||||
defer
|
||||
discard
|
||||
distinct
|
||||
div
|
||||
do
|
||||
elif
|
||||
else
|
||||
end
|
||||
enum
|
||||
except
|
||||
export
|
||||
finally
|
||||
for
|
||||
from
|
||||
func
|
||||
generic
|
||||
if
|
||||
import
|
||||
in
|
||||
include
|
||||
interface
|
||||
is
|
||||
isnot
|
||||
iterator
|
||||
let
|
||||
macro
|
||||
method
|
||||
mixin
|
||||
mod
|
||||
nil
|
||||
not
|
||||
notin
|
||||
object
|
||||
of
|
||||
or
|
||||
out
|
||||
proc
|
||||
ptr
|
||||
raise
|
||||
ref
|
||||
return
|
||||
shl
|
||||
shr
|
||||
static
|
||||
template
|
||||
try
|
||||
tuple
|
||||
type
|
||||
using
|
||||
var
|
||||
when
|
||||
while
|
||||
with
|
||||
without
|
||||
xor
|
||||
yield
|
||||
161
elpa/auto-complete-20170125.245/dict/objc-mode
Normal file
161
elpa/auto-complete-20170125.245/dict/objc-mode
Normal file
@@ -0,0 +1,161 @@
|
||||
auto
|
||||
break
|
||||
case
|
||||
char
|
||||
const
|
||||
continue
|
||||
default
|
||||
do
|
||||
double
|
||||
else
|
||||
enum
|
||||
extern
|
||||
float
|
||||
for
|
||||
goto
|
||||
if
|
||||
inline
|
||||
int
|
||||
long
|
||||
register
|
||||
restrict
|
||||
return
|
||||
short
|
||||
signed
|
||||
sizeof
|
||||
static
|
||||
struct
|
||||
switch
|
||||
typedef
|
||||
union
|
||||
unsigned
|
||||
void
|
||||
volatile
|
||||
while
|
||||
_Alignas
|
||||
_Alignof
|
||||
_Atomic
|
||||
_Bool
|
||||
_Complex
|
||||
_Generic
|
||||
_Imaginary
|
||||
_Noreturn
|
||||
_Static_assert
|
||||
_Thread_local
|
||||
alignas
|
||||
alignof
|
||||
atomic_
|
||||
bool
|
||||
complex
|
||||
imaginary
|
||||
noreturn
|
||||
static_assert
|
||||
thread_local
|
||||
#if
|
||||
#elif
|
||||
#else
|
||||
#endif
|
||||
defined
|
||||
#ifdef
|
||||
#ifndef
|
||||
#define
|
||||
#undef
|
||||
#include
|
||||
#line
|
||||
#error
|
||||
#pragma
|
||||
_Pragma
|
||||
asm
|
||||
fortran
|
||||
#import
|
||||
self
|
||||
_cmd
|
||||
instancetype
|
||||
__bridge
|
||||
__bridge_transfer
|
||||
__bridge_retained
|
||||
__bridge_retain
|
||||
@not_keyword
|
||||
@class
|
||||
@compatibility_alias
|
||||
@defs
|
||||
@encode
|
||||
@end
|
||||
@implementation
|
||||
@interface
|
||||
@private
|
||||
@protected
|
||||
@protocol
|
||||
@public
|
||||
@selector
|
||||
@throw
|
||||
@try
|
||||
@catch
|
||||
@finally
|
||||
@synchronized
|
||||
@autoreleasepool
|
||||
@property
|
||||
@package
|
||||
@required
|
||||
@optional
|
||||
@synthesize
|
||||
@dynamic
|
||||
@import
|
||||
@available
|
||||
__attribute__((visibility("default")))
|
||||
__attribute__((visibility("hidden")))
|
||||
__attribute__((deprecated))
|
||||
__attribute__((unavailable))
|
||||
__attribute__((objc_exception))
|
||||
__attribute__((objc_root_class))
|
||||
__covariant
|
||||
__contravariant
|
||||
__kindof
|
||||
getter=
|
||||
setter=
|
||||
readonly
|
||||
readwrite
|
||||
assign
|
||||
retain
|
||||
copy
|
||||
nonatomic
|
||||
atomic
|
||||
strong
|
||||
weak
|
||||
unsafe_unretained
|
||||
nonnull
|
||||
nullable
|
||||
null_unspecified
|
||||
null_resettable
|
||||
class
|
||||
__attribute__((deprecated))
|
||||
in
|
||||
out
|
||||
inout
|
||||
oneway
|
||||
bycopy
|
||||
byref
|
||||
nonnull
|
||||
nullable
|
||||
null_unspecified
|
||||
__attribute__((unused))
|
||||
super
|
||||
true
|
||||
false
|
||||
__objc_yes
|
||||
__objc_no
|
||||
Class
|
||||
id
|
||||
SEL
|
||||
IMP
|
||||
BOOL
|
||||
STR
|
||||
NSInteger
|
||||
NSUInteger
|
||||
YES
|
||||
NO
|
||||
Nil
|
||||
nil
|
||||
__strong
|
||||
__unsafe_unretained
|
||||
__autoreleasing
|
||||
46
elpa/auto-complete-20170125.245/dict/octave-mode
Normal file
46
elpa/auto-complete-20170125.245/dict/octave-mode
Normal file
@@ -0,0 +1,46 @@
|
||||
# GNU Octave, and probably proprietary MATLAB
|
||||
# https://www.gnu.org/software/octave/doc/interpreter/Keywords.html
|
||||
|
||||
__FILE__
|
||||
__LINE__
|
||||
break
|
||||
case
|
||||
catch
|
||||
classdef
|
||||
continue
|
||||
do
|
||||
else
|
||||
elseif
|
||||
end
|
||||
end_try_catch
|
||||
end_unwind_protect
|
||||
endclassdef
|
||||
endenumeration
|
||||
endevents
|
||||
endfor
|
||||
endfunction
|
||||
endif
|
||||
endmethods
|
||||
endparfor
|
||||
endproperties
|
||||
endswitch
|
||||
endwhile
|
||||
enumeration
|
||||
events
|
||||
for
|
||||
function
|
||||
global
|
||||
if
|
||||
methods
|
||||
otherwise
|
||||
parfor
|
||||
persistent
|
||||
properties
|
||||
return
|
||||
static
|
||||
switch
|
||||
try
|
||||
unitl
|
||||
unwind_protect
|
||||
unwind_protect_cleanup
|
||||
while
|
||||
6144
elpa/auto-complete-20170125.245/dict/php-mode
Normal file
6144
elpa/auto-complete-20170125.245/dict/php-mode
Normal file
File diff suppressed because it is too large
Load Diff
379
elpa/auto-complete-20170125.245/dict/python-mode
Normal file
379
elpa/auto-complete-20170125.245/dict/python-mode
Normal file
@@ -0,0 +1,379 @@
|
||||
ArithmeticError
|
||||
AssertionError
|
||||
AttributeError
|
||||
BaseException
|
||||
BufferError
|
||||
BytesWarning
|
||||
DeprecationWarning
|
||||
EOFError
|
||||
Ellipsis
|
||||
EnvironmentError
|
||||
Exception
|
||||
False
|
||||
FloatingPointError
|
||||
FutureWarning
|
||||
GeneratorExit
|
||||
IOError
|
||||
ImportError
|
||||
ImportWarning
|
||||
IndentationError
|
||||
IndexError
|
||||
KeyError
|
||||
KeyboardInterrupt
|
||||
LookupError
|
||||
MemoryError
|
||||
NameError
|
||||
None
|
||||
NotImplemented
|
||||
NotImplementedError
|
||||
OSError
|
||||
OverflowError
|
||||
PendingDeprecationWarning
|
||||
ReferenceError
|
||||
RuntimeError
|
||||
RuntimeWarning
|
||||
StandardError
|
||||
StopIteration
|
||||
SyntaxError
|
||||
SyntaxWarning
|
||||
SystemError
|
||||
SystemExit
|
||||
TabError
|
||||
True
|
||||
TypeError
|
||||
UnboundLocalError
|
||||
UnicodeDecodeError
|
||||
UnicodeEncodeError
|
||||
UnicodeError
|
||||
UnicodeTranslateError
|
||||
UnicodeWarning
|
||||
UserWarning
|
||||
ValueError
|
||||
Warning
|
||||
ZeroDivisionError
|
||||
__builtins__
|
||||
__debug__
|
||||
__doc__
|
||||
__file__
|
||||
__future__
|
||||
__import__
|
||||
__init__
|
||||
__main__
|
||||
__name__
|
||||
__package__
|
||||
_dummy_thread
|
||||
_thread
|
||||
abc
|
||||
abs
|
||||
aifc
|
||||
all
|
||||
and
|
||||
any
|
||||
apply
|
||||
argparse
|
||||
array
|
||||
as
|
||||
assert
|
||||
ast
|
||||
asynchat
|
||||
asyncio
|
||||
asyncore
|
||||
atexit
|
||||
audioop
|
||||
base64
|
||||
basestring
|
||||
bdb
|
||||
bin
|
||||
binascii
|
||||
binhex
|
||||
bisect
|
||||
bool
|
||||
break
|
||||
buffer
|
||||
builtins
|
||||
bytearray
|
||||
bytes
|
||||
bz2
|
||||
calendar
|
||||
callable
|
||||
cgi
|
||||
cgitb
|
||||
chr
|
||||
chuck
|
||||
class
|
||||
classmethod
|
||||
cmath
|
||||
cmd
|
||||
cmp
|
||||
code
|
||||
codecs
|
||||
codeop
|
||||
coerce
|
||||
collections
|
||||
colorsys
|
||||
compile
|
||||
compileall
|
||||
complex
|
||||
concurrent
|
||||
configparser
|
||||
contextlib
|
||||
continue
|
||||
copy
|
||||
copyreg
|
||||
copyright
|
||||
credits
|
||||
crypt
|
||||
csv
|
||||
ctypes
|
||||
curses
|
||||
datetime
|
||||
dbm
|
||||
decimal
|
||||
def
|
||||
del
|
||||
delattr
|
||||
dict
|
||||
difflib
|
||||
dir
|
||||
dis
|
||||
distutils
|
||||
divmod
|
||||
doctest
|
||||
dummy_threading
|
||||
elif
|
||||
else
|
||||
email
|
||||
enumerate
|
||||
ensurepip
|
||||
enum
|
||||
errno
|
||||
eval
|
||||
except
|
||||
exec
|
||||
execfile
|
||||
exit
|
||||
faulthandler
|
||||
fcntl
|
||||
file
|
||||
filecmp
|
||||
fileinput
|
||||
filter
|
||||
finally
|
||||
float
|
||||
fnmatch
|
||||
for
|
||||
format
|
||||
formatter
|
||||
fpectl
|
||||
fractions
|
||||
from
|
||||
frozenset
|
||||
ftplib
|
||||
functools
|
||||
gc
|
||||
getattr
|
||||
getopt
|
||||
getpass
|
||||
gettext
|
||||
glob
|
||||
global
|
||||
globals
|
||||
grp
|
||||
gzip
|
||||
hasattr
|
||||
hash
|
||||
hashlib
|
||||
heapq
|
||||
help
|
||||
hex
|
||||
hmac
|
||||
html
|
||||
http
|
||||
id
|
||||
if
|
||||
imghdr
|
||||
imp
|
||||
impalib
|
||||
import
|
||||
importlib
|
||||
in
|
||||
input
|
||||
inspect
|
||||
int
|
||||
intern
|
||||
io
|
||||
ipaddress
|
||||
is
|
||||
isinstance
|
||||
issubclass
|
||||
iter
|
||||
itertools
|
||||
json
|
||||
keyword
|
||||
lambda
|
||||
len
|
||||
license
|
||||
linecache
|
||||
list
|
||||
locale
|
||||
locals
|
||||
logging
|
||||
long
|
||||
lzma
|
||||
macpath
|
||||
mailbox
|
||||
mailcap
|
||||
map
|
||||
marshal
|
||||
math
|
||||
max
|
||||
memoryview
|
||||
mimetypes
|
||||
min
|
||||
mmap
|
||||
modulefinder
|
||||
msilib
|
||||
msvcrt
|
||||
multiprocessing
|
||||
netrc
|
||||
next
|
||||
nis
|
||||
nntplib
|
||||
not
|
||||
numbers
|
||||
object
|
||||
oct
|
||||
open
|
||||
operator
|
||||
optparse
|
||||
or
|
||||
ord
|
||||
os
|
||||
ossaudiodev
|
||||
parser
|
||||
pass
|
||||
pathlib
|
||||
pdb
|
||||
pickle
|
||||
pickletools
|
||||
pipes
|
||||
pkgutil
|
||||
platform
|
||||
plistlib
|
||||
poplib
|
||||
posix
|
||||
pow
|
||||
pprint
|
||||
print
|
||||
profile
|
||||
property
|
||||
pty
|
||||
pwd
|
||||
py_compiler
|
||||
pyclbr
|
||||
pydoc
|
||||
queue
|
||||
quit
|
||||
quopri
|
||||
raise
|
||||
random
|
||||
range
|
||||
raw_input
|
||||
re
|
||||
readline
|
||||
reduce
|
||||
reload
|
||||
repr
|
||||
reprlib
|
||||
resource
|
||||
return
|
||||
reversed
|
||||
rlcompleter
|
||||
round
|
||||
runpy
|
||||
sched
|
||||
select
|
||||
selectors
|
||||
self
|
||||
set
|
||||
setattr
|
||||
shelve
|
||||
shlex
|
||||
shutil
|
||||
signal
|
||||
site
|
||||
slice
|
||||
smtpd
|
||||
smtplib
|
||||
sndhdr
|
||||
socket
|
||||
socketserver
|
||||
sorted
|
||||
spwd
|
||||
sqlite3
|
||||
ssl
|
||||
stat
|
||||
staticmethod
|
||||
statistics
|
||||
str
|
||||
string
|
||||
stringprep
|
||||
struct
|
||||
subprocess
|
||||
sum
|
||||
sunau
|
||||
super
|
||||
symbol
|
||||
symtable
|
||||
sys
|
||||
sysconfig
|
||||
syslog
|
||||
tabnanny
|
||||
tarfile
|
||||
telnetlib
|
||||
tempfile
|
||||
termios
|
||||
test
|
||||
textwrap
|
||||
threading
|
||||
time
|
||||
timeit
|
||||
tkinter
|
||||
token
|
||||
tokenize
|
||||
trace
|
||||
traceback
|
||||
tracemalloc
|
||||
try
|
||||
tty
|
||||
tuple
|
||||
turtle
|
||||
type
|
||||
types
|
||||
unichr
|
||||
unicode
|
||||
unicodedata
|
||||
unittest
|
||||
urllib
|
||||
uu
|
||||
uuid
|
||||
vars
|
||||
venv
|
||||
warnings
|
||||
wave
|
||||
weakref
|
||||
webbrowser
|
||||
while
|
||||
winsound
|
||||
winreg
|
||||
with
|
||||
wsgiref
|
||||
xdrlib
|
||||
xml
|
||||
xmlrpc
|
||||
xrange
|
||||
yield
|
||||
zip
|
||||
zipfile
|
||||
zipimport
|
||||
zlib
|
||||
183
elpa/auto-complete-20170125.245/dict/qml-mode
Normal file
183
elpa/auto-complete-20170125.245/dict/qml-mode
Normal file
@@ -0,0 +1,183 @@
|
||||
AlignBottom
|
||||
AlignCenter
|
||||
AlignHCenter
|
||||
AlignLeft
|
||||
AlignRight
|
||||
AlignTop
|
||||
AlignVCenter
|
||||
AnchorAnimation
|
||||
AnchorChanges
|
||||
Audio
|
||||
Behavior
|
||||
Binding
|
||||
BorderImage
|
||||
ColorAnimation
|
||||
Column
|
||||
Component
|
||||
Connections
|
||||
Easing
|
||||
Flickable
|
||||
Flipable
|
||||
Flow
|
||||
FocusScope
|
||||
GestureArea
|
||||
Grid
|
||||
GridView
|
||||
Horizontal
|
||||
Image
|
||||
InBack
|
||||
InBounce
|
||||
InCirc
|
||||
InCubic
|
||||
InElastic
|
||||
InExpo
|
||||
InOutBack
|
||||
InOutBounce
|
||||
InOutCirc
|
||||
InOutCubic
|
||||
InOutElastic
|
||||
InOutExpo
|
||||
InOutQuad
|
||||
InOutQuart
|
||||
InOutQuint
|
||||
InQuad
|
||||
InQuart
|
||||
InQuint
|
||||
InQuint
|
||||
InSine
|
||||
Item
|
||||
LayoutItem
|
||||
LeftButton
|
||||
Linear
|
||||
ListElement
|
||||
ListModel
|
||||
ListView
|
||||
Loader
|
||||
MidButton
|
||||
MiddleButton
|
||||
MouseArea
|
||||
NoButton
|
||||
NumberAnimation
|
||||
OutBack
|
||||
OutBounce
|
||||
OutCirc
|
||||
OutCubic
|
||||
OutElastic
|
||||
OutExpo
|
||||
OutInBack
|
||||
OutInBounce
|
||||
OutInCirc
|
||||
OutInCubic
|
||||
OutInElastic
|
||||
OutInExpo
|
||||
OutInQuad
|
||||
OutInQuart
|
||||
OutInQuint
|
||||
OutQuad
|
||||
OutQuart
|
||||
OutQuint
|
||||
OutSine
|
||||
Package
|
||||
ParallelAnimation
|
||||
ParentAnimation
|
||||
ParentChange
|
||||
ParticleMotionGravity
|
||||
ParticleMotionLinear
|
||||
ParticleMotionWander
|
||||
Particles
|
||||
Path
|
||||
PathAttribute
|
||||
PathCubic
|
||||
PathLine
|
||||
PathPercent
|
||||
PathQuad
|
||||
PathView
|
||||
PauseAnimation
|
||||
PropertyAction
|
||||
PropertyAnimation
|
||||
PropertyChanges
|
||||
Qt
|
||||
QtObject
|
||||
Rectangle
|
||||
Repeater
|
||||
RightButton
|
||||
Rotation
|
||||
RotationAnimation
|
||||
Row
|
||||
Scale
|
||||
ScriptAction
|
||||
SequentialAnimation
|
||||
SmoothedAnimation
|
||||
SoundEffect
|
||||
SpringFollow
|
||||
State
|
||||
StateChangeScript
|
||||
StateGroup
|
||||
SystemPalette
|
||||
Text
|
||||
TextEdit
|
||||
TextInput
|
||||
Timer
|
||||
Transition
|
||||
Translate
|
||||
Vertical
|
||||
Video
|
||||
ViewsPositionersMediaEffects
|
||||
VisualDataModel
|
||||
VisualItemModel
|
||||
WebView
|
||||
WorkerScript
|
||||
XmlListModel
|
||||
XmlRole
|
||||
alias
|
||||
as
|
||||
bool
|
||||
break
|
||||
case
|
||||
catch
|
||||
color
|
||||
const
|
||||
continue
|
||||
date
|
||||
debugger
|
||||
default
|
||||
delete
|
||||
do
|
||||
double
|
||||
else
|
||||
enum
|
||||
false
|
||||
false
|
||||
finally
|
||||
for
|
||||
function
|
||||
if
|
||||
import
|
||||
import
|
||||
in
|
||||
instanceof
|
||||
int
|
||||
let
|
||||
new
|
||||
null
|
||||
on
|
||||
parent
|
||||
property
|
||||
real
|
||||
return
|
||||
signal
|
||||
string
|
||||
switch
|
||||
this
|
||||
throw
|
||||
true
|
||||
try
|
||||
typeof
|
||||
undefined
|
||||
url
|
||||
var
|
||||
variant
|
||||
void
|
||||
while
|
||||
with
|
||||
yield
|
||||
181
elpa/auto-complete-20170125.245/dict/ruby-mode
Normal file
181
elpa/auto-complete-20170125.245/dict/ruby-mode
Normal file
@@ -0,0 +1,181 @@
|
||||
$!
|
||||
$"
|
||||
$$
|
||||
$&
|
||||
$'
|
||||
$*
|
||||
$+
|
||||
$,
|
||||
$-0
|
||||
$-F
|
||||
$-I
|
||||
$-K
|
||||
$-a
|
||||
$-d
|
||||
$-i
|
||||
$-l
|
||||
$-p
|
||||
$-v
|
||||
$-w
|
||||
$.
|
||||
$/
|
||||
$0
|
||||
$1
|
||||
$10
|
||||
$11
|
||||
$2
|
||||
$3
|
||||
$4
|
||||
$5
|
||||
$6
|
||||
$7
|
||||
$8
|
||||
$9
|
||||
$:
|
||||
$;
|
||||
$<
|
||||
$=
|
||||
$>
|
||||
$?
|
||||
$@
|
||||
$DEBUG
|
||||
$FILENAME
|
||||
$KCODE
|
||||
$LOADED_FEATURES
|
||||
$LOAD_PATH
|
||||
$PROGRAM_NAME
|
||||
$SAFE
|
||||
$VERBOSE
|
||||
$\
|
||||
$_
|
||||
$`
|
||||
$deferr
|
||||
$defout
|
||||
$stderr
|
||||
$stdin
|
||||
$stdout
|
||||
$~
|
||||
ARGF
|
||||
ARGV
|
||||
Array
|
||||
BEGIN
|
||||
DATA
|
||||
END
|
||||
ENV
|
||||
FALSE
|
||||
Float
|
||||
Integer
|
||||
NIL
|
||||
PLATFORM
|
||||
RELEASE_DATE
|
||||
RUBY_COPYRIGHT
|
||||
RUBY_DESCRIPTION
|
||||
RUBY_PATCHLEVEL
|
||||
RUBY_PLATFORM
|
||||
RUBY_RELEASE_DATE
|
||||
RUBY_VERSION
|
||||
SCRIPT_LINES__
|
||||
STDERR
|
||||
STDIN
|
||||
STDOUT
|
||||
String
|
||||
TOPLEVEL_BINDING
|
||||
TRUE
|
||||
VERSION
|
||||
__method__
|
||||
`
|
||||
abort
|
||||
alias
|
||||
and
|
||||
at_exit
|
||||
autoload
|
||||
autoload?
|
||||
begin
|
||||
binding
|
||||
block_given
|
||||
break
|
||||
callcc
|
||||
caller
|
||||
case
|
||||
catch
|
||||
chomp
|
||||
chomp!
|
||||
chop
|
||||
chop
|
||||
class
|
||||
def
|
||||
defined?
|
||||
do
|
||||
else
|
||||
elsif
|
||||
end
|
||||
ensure
|
||||
eval
|
||||
exec
|
||||
exit
|
||||
exit!
|
||||
fail
|
||||
false
|
||||
for
|
||||
fork
|
||||
format
|
||||
getc
|
||||
gets
|
||||
global_variables
|
||||
gsub
|
||||
gsub!
|
||||
if
|
||||
in
|
||||
iterator?
|
||||
lambda
|
||||
load
|
||||
local_variables
|
||||
loop
|
||||
module
|
||||
next
|
||||
nil
|
||||
not
|
||||
open
|
||||
or
|
||||
p
|
||||
printf
|
||||
proc
|
||||
putc
|
||||
puts
|
||||
raise
|
||||
rand
|
||||
readline
|
||||
readlines
|
||||
redo
|
||||
require
|
||||
require_relative
|
||||
rescue
|
||||
retry
|
||||
return
|
||||
scan
|
||||
select
|
||||
self
|
||||
set_trace_func
|
||||
sleep
|
||||
split
|
||||
sprintf
|
||||
srand
|
||||
sub
|
||||
sub!
|
||||
super
|
||||
syscall
|
||||
system
|
||||
test
|
||||
then
|
||||
throw
|
||||
trace_var
|
||||
trap
|
||||
true
|
||||
undef
|
||||
unless
|
||||
until
|
||||
untrace_var
|
||||
warn
|
||||
when
|
||||
while
|
||||
yield
|
||||
1347
elpa/auto-complete-20170125.245/dict/scala-mode
Normal file
1347
elpa/auto-complete-20170125.245/dict/scala-mode
Normal file
File diff suppressed because it is too large
Load Diff
216
elpa/auto-complete-20170125.245/dict/scheme-mode
Normal file
216
elpa/auto-complete-20170125.245/dict/scheme-mode
Normal file
@@ -0,0 +1,216 @@
|
||||
case-lambda
|
||||
call/cc
|
||||
class
|
||||
define-class
|
||||
exit-handler
|
||||
field
|
||||
import
|
||||
inherit
|
||||
init-field
|
||||
interface
|
||||
let*-values
|
||||
let-values
|
||||
let/ec
|
||||
mixin
|
||||
opt-lambda
|
||||
override
|
||||
protect
|
||||
provide
|
||||
public
|
||||
rename
|
||||
require
|
||||
require-for-syntax
|
||||
syntax
|
||||
syntax-case
|
||||
syntax-error
|
||||
unit/sig
|
||||
unless
|
||||
when
|
||||
with-syntax
|
||||
and
|
||||
begin
|
||||
call-with-current-continuation
|
||||
call-with-input-file
|
||||
call-with-output-file
|
||||
case
|
||||
cond
|
||||
define
|
||||
define-syntax
|
||||
delay
|
||||
do
|
||||
dynamic-wind
|
||||
else
|
||||
for-each
|
||||
if
|
||||
lambda
|
||||
let
|
||||
let*
|
||||
let-syntax
|
||||
letrec
|
||||
letrec-syntax
|
||||
map
|
||||
or
|
||||
syntax-rules
|
||||
abs
|
||||
acos
|
||||
angle
|
||||
append
|
||||
apply
|
||||
asin
|
||||
assoc
|
||||
assq
|
||||
assv
|
||||
atan
|
||||
boolean?
|
||||
caar
|
||||
cadr
|
||||
call-with-input-file
|
||||
call-with-output-file
|
||||
call-with-values
|
||||
car
|
||||
cdddar
|
||||
cddddr
|
||||
cdr
|
||||
ceiling
|
||||
char->integer
|
||||
char-alphabetic?
|
||||
char-ci<=?
|
||||
char-ci<?
|
||||
char-ci=?
|
||||
char-ci>=?
|
||||
char-ci>?
|
||||
char-downcase
|
||||
char-lower-case?
|
||||
char-numeric?
|
||||
char-ready?
|
||||
char-upcase
|
||||
char-upper-case?
|
||||
char-whitespace?
|
||||
char<=?
|
||||
char<?
|
||||
char=?
|
||||
char>=?
|
||||
char>?
|
||||
char?
|
||||
close-input-port
|
||||
close-output-port
|
||||
complex?
|
||||
cons
|
||||
cos
|
||||
current-input-port
|
||||
current-output-port
|
||||
denominator
|
||||
display
|
||||
eof-object?
|
||||
eq?
|
||||
equal?
|
||||
eqv?
|
||||
eval
|
||||
even?
|
||||
exact->inexact
|
||||
exact?
|
||||
exp
|
||||
expt
|
||||
#f
|
||||
floor
|
||||
force
|
||||
gcd
|
||||
imag-part
|
||||
inexact->exact
|
||||
inexact?
|
||||
input-port?
|
||||
integer->char
|
||||
integer?
|
||||
interaction-environment
|
||||
lcm
|
||||
length
|
||||
list
|
||||
list->string
|
||||
list->vector
|
||||
list-ref
|
||||
list-tail
|
||||
list?
|
||||
load
|
||||
log
|
||||
magnitude
|
||||
make-polar
|
||||
make-rectangular
|
||||
make-string
|
||||
make-vector
|
||||
max
|
||||
member
|
||||
memq
|
||||
memv
|
||||
min
|
||||
modulo
|
||||
negative?
|
||||
newline
|
||||
not
|
||||
null-environment
|
||||
null?
|
||||
number->string
|
||||
number?
|
||||
numerator
|
||||
odd?
|
||||
open-input-file
|
||||
open-output-file
|
||||
output-port?
|
||||
pair?
|
||||
peek-char
|
||||
port?
|
||||
positive?
|
||||
procedure?
|
||||
quasiquote
|
||||
quote
|
||||
quotient
|
||||
rational?
|
||||
rationalize
|
||||
read
|
||||
read-char
|
||||
real-part
|
||||
real?
|
||||
remainder
|
||||
reverse
|
||||
round
|
||||
scheme-report-environment
|
||||
set!
|
||||
set-car!
|
||||
set-cdr!
|
||||
sin
|
||||
sqrt
|
||||
string
|
||||
string->list
|
||||
string->number
|
||||
string->symbol
|
||||
string-append
|
||||
string-ci<=?
|
||||
string-ci<?
|
||||
string-ci=?
|
||||
string-ci>=?
|
||||
string-ci>?
|
||||
string-copy
|
||||
string-fill!
|
||||
string-length
|
||||
string-ref
|
||||
string-set!
|
||||
string<=?
|
||||
string<?
|
||||
string=?
|
||||
string>=?
|
||||
string>?
|
||||
string?
|
||||
substring
|
||||
symbol->string
|
||||
symbol?
|
||||
#t
|
||||
tan
|
||||
transcript-off
|
||||
transcript-on
|
||||
truncate
|
||||
values
|
||||
vector
|
||||
vector->list
|
||||
vector-fill!
|
||||
vector-length
|
||||
vector-ref
|
||||
vector-set!
|
||||
1481
elpa/auto-complete-20170125.245/dict/sclang-mode
Normal file
1481
elpa/auto-complete-20170125.245/dict/sclang-mode
Normal file
File diff suppressed because it is too large
Load Diff
182
elpa/auto-complete-20170125.245/dict/sh-mode
Normal file
182
elpa/auto-complete-20170125.245/dict/sh-mode
Normal file
@@ -0,0 +1,182 @@
|
||||
# Bash Family Shell Dictionary
|
||||
# http://www.gnu.org/software/bash/manual/bash.html
|
||||
|
||||
.
|
||||
:
|
||||
[
|
||||
alias
|
||||
bg
|
||||
bind
|
||||
break
|
||||
builtin
|
||||
caller
|
||||
cd
|
||||
command
|
||||
compgen
|
||||
complete
|
||||
compopt
|
||||
continue
|
||||
declare
|
||||
dirs
|
||||
disown
|
||||
echo
|
||||
enable
|
||||
eval
|
||||
exec
|
||||
exit
|
||||
export
|
||||
fc
|
||||
fg
|
||||
getopts
|
||||
hash
|
||||
help
|
||||
history
|
||||
jobs
|
||||
kill
|
||||
let
|
||||
local
|
||||
logout
|
||||
mapfile
|
||||
popd
|
||||
printf
|
||||
pushd
|
||||
pwd
|
||||
read
|
||||
readarray
|
||||
readonly
|
||||
return
|
||||
set
|
||||
shift
|
||||
shopt
|
||||
source
|
||||
suspend
|
||||
test
|
||||
times
|
||||
trap
|
||||
type
|
||||
typeset
|
||||
ulimit
|
||||
umask
|
||||
unalias
|
||||
unset
|
||||
wait
|
||||
!
|
||||
[[
|
||||
]]
|
||||
case
|
||||
do
|
||||
done
|
||||
elif
|
||||
else
|
||||
esac
|
||||
fi
|
||||
for
|
||||
function
|
||||
if
|
||||
in
|
||||
select
|
||||
then
|
||||
time
|
||||
until
|
||||
while
|
||||
{
|
||||
}
|
||||
!
|
||||
#
|
||||
$
|
||||
*
|
||||
-
|
||||
0
|
||||
?
|
||||
@
|
||||
_
|
||||
BASH
|
||||
BASH_ALIASES
|
||||
BASH_ARGC
|
||||
BASH_ARGV
|
||||
BASH_CMDS
|
||||
BASH_COMMAND
|
||||
BASH_ENV
|
||||
BASH_EXECUTION_STRING
|
||||
BASH_LINENO
|
||||
BASH_REMATCH
|
||||
BASH_SOURCE
|
||||
BASH_SUBSHELL
|
||||
BASH_VERSINFO
|
||||
BASH_VERSION
|
||||
BASH_XTRACEFD
|
||||
BASHOPTS
|
||||
BASHPID
|
||||
CDPATH
|
||||
COLUMNS
|
||||
COMP_CWORD
|
||||
COMP_KEY
|
||||
COMP_LINE
|
||||
COMP_POINT
|
||||
COMP_TYPE
|
||||
COMP_WORDBREAKS
|
||||
COMP_WORDS
|
||||
COMPREPLY
|
||||
DIRSTACK
|
||||
EMACS
|
||||
EUID
|
||||
FCEDIT
|
||||
FIGNORE
|
||||
FUNCNAME
|
||||
GLOBIGNORE
|
||||
GROUPS
|
||||
HISTCMD
|
||||
HISTCONTROL
|
||||
HISTFILE
|
||||
HISTFILESIZE
|
||||
HISTIGNORE
|
||||
HISTSIZE
|
||||
HISTTIMEFORMAT
|
||||
HOME
|
||||
HOSTFILE
|
||||
HOSTNAME
|
||||
HOSTTYPE
|
||||
IFS
|
||||
IGNOREEOF
|
||||
INPUTRC
|
||||
LANG
|
||||
LC_ALL
|
||||
LC_COLLATE
|
||||
LC_CTYPE
|
||||
LC_MESSAGES
|
||||
LC_MESSAGES
|
||||
LC_NUMERIC
|
||||
LINENO
|
||||
LINES
|
||||
MACHTYPE
|
||||
MAIL
|
||||
MAILCHECK
|
||||
MAILPATH
|
||||
OLDPWD
|
||||
OPTARG
|
||||
OPTERR
|
||||
OPTIND
|
||||
OSTYPE
|
||||
PATH
|
||||
PIPESTATUS
|
||||
POSIXLY_CORRECT
|
||||
PPID
|
||||
PROMPT_COMMAND
|
||||
PROMPT_DIRTRIM
|
||||
PS1
|
||||
PS2
|
||||
PS3
|
||||
PS4
|
||||
PWD
|
||||
RANDOM
|
||||
REPLY
|
||||
SECONDS
|
||||
SHELL
|
||||
SHELLOPTS
|
||||
SHLVL
|
||||
TEXTDOMAIN
|
||||
TEXTDOMAINDIR
|
||||
TIMEFORMAT
|
||||
TMOUT
|
||||
TMPDIR
|
||||
UID
|
||||
87
elpa/auto-complete-20170125.245/dict/swift-mode
Normal file
87
elpa/auto-complete-20170125.245/dict/swift-mode
Normal file
@@ -0,0 +1,87 @@
|
||||
associatedtype
|
||||
class
|
||||
deinit
|
||||
enum
|
||||
extension
|
||||
func
|
||||
import
|
||||
init
|
||||
inout
|
||||
let
|
||||
operator
|
||||
precedencegroup
|
||||
protocol
|
||||
struct
|
||||
subscript
|
||||
typealias
|
||||
var
|
||||
fileprivate
|
||||
internal
|
||||
private
|
||||
public
|
||||
static
|
||||
undef
|
||||
sil
|
||||
sil_stage
|
||||
sil_vtable
|
||||
sil_global
|
||||
sil_witness_table
|
||||
sil_default_witness_table
|
||||
sil_coverage_map
|
||||
sil_scope
|
||||
defer
|
||||
if
|
||||
guard
|
||||
do
|
||||
repeat
|
||||
else
|
||||
for
|
||||
in
|
||||
while
|
||||
return
|
||||
break
|
||||
continue
|
||||
fallthrough
|
||||
switch
|
||||
case
|
||||
default
|
||||
where
|
||||
catch
|
||||
as
|
||||
Any
|
||||
false
|
||||
is
|
||||
nil
|
||||
rethrows
|
||||
super
|
||||
self
|
||||
Self
|
||||
throw
|
||||
true
|
||||
try
|
||||
throws
|
||||
__FILE__
|
||||
__LINE__
|
||||
__COLUMN__
|
||||
__FUNCTION__
|
||||
__DSO_HANDLE__
|
||||
_
|
||||
#if
|
||||
#else
|
||||
#elseif
|
||||
#endif
|
||||
#keyPath
|
||||
#line
|
||||
#sourceLocation
|
||||
#selector
|
||||
#available
|
||||
#fileLiteral
|
||||
#imageLiteral
|
||||
#colorLiteral
|
||||
#FileReference
|
||||
#Image
|
||||
#Color
|
||||
#file
|
||||
#column
|
||||
#function
|
||||
#dsohandle
|
||||
172
elpa/auto-complete-20170125.245/dict/tcl-mode
Normal file
172
elpa/auto-complete-20170125.245/dict/tcl-mode
Normal file
@@ -0,0 +1,172 @@
|
||||
after
|
||||
append
|
||||
apply
|
||||
array
|
||||
auto_execok
|
||||
auto_import
|
||||
auto_load
|
||||
auto_load_index
|
||||
auto_mkindex
|
||||
auto_mkindex_old
|
||||
auto_qualify
|
||||
auto_reset
|
||||
bell
|
||||
binary
|
||||
bind
|
||||
bindtags
|
||||
break
|
||||
button
|
||||
canvas
|
||||
case
|
||||
catch
|
||||
cd
|
||||
chan
|
||||
checkbutton
|
||||
clipboard
|
||||
clock
|
||||
close
|
||||
concat
|
||||
continue
|
||||
destroy
|
||||
dict
|
||||
encoding
|
||||
entry
|
||||
eof
|
||||
error
|
||||
eval
|
||||
event
|
||||
exec
|
||||
exit
|
||||
expr
|
||||
fblocked
|
||||
fconfigure
|
||||
fcopy
|
||||
file
|
||||
fileevent
|
||||
flush
|
||||
focus
|
||||
font
|
||||
for
|
||||
foreach
|
||||
format
|
||||
frame
|
||||
gets
|
||||
glob
|
||||
global
|
||||
grab
|
||||
grid
|
||||
if
|
||||
image
|
||||
incr
|
||||
info
|
||||
interp
|
||||
join
|
||||
label
|
||||
labelframe
|
||||
lappend
|
||||
lassign
|
||||
lindex
|
||||
linsert
|
||||
list
|
||||
listbox
|
||||
llength
|
||||
load
|
||||
lower
|
||||
lrange
|
||||
lrepeat
|
||||
lreplace
|
||||
lreverse
|
||||
lsearch
|
||||
lset
|
||||
lsort
|
||||
menu
|
||||
menubutton
|
||||
message
|
||||
namespace
|
||||
open
|
||||
option
|
||||
pack
|
||||
package
|
||||
panedwindow
|
||||
pid
|
||||
pkg_mkIndex
|
||||
place
|
||||
proc
|
||||
puts
|
||||
pwd
|
||||
radiobutton
|
||||
raise
|
||||
read
|
||||
regexp
|
||||
registry
|
||||
regsub
|
||||
rename
|
||||
return
|
||||
scale
|
||||
scan
|
||||
scrollbar
|
||||
seek
|
||||
selection
|
||||
set
|
||||
socket
|
||||
source
|
||||
spinbox
|
||||
split
|
||||
string
|
||||
subst
|
||||
switch
|
||||
tclLog
|
||||
tclPkgSetup
|
||||
tclPkgUnknown
|
||||
tcl_findLibrary
|
||||
tell
|
||||
text
|
||||
time
|
||||
tk
|
||||
tk_chooseColor
|
||||
tk_chooseDirectory
|
||||
tk_getOpenFile
|
||||
tk_getSaveFile
|
||||
tk_menuSetFocus
|
||||
tk_messageBox
|
||||
tk_popup
|
||||
tk_textCopy
|
||||
tk_textCut
|
||||
tk_textPaste
|
||||
tkwait
|
||||
toplevel
|
||||
ttk::button
|
||||
ttk::checkbutton
|
||||
ttk::combobox
|
||||
ttk::entry
|
||||
ttk::focusFirst
|
||||
ttk::frame
|
||||
ttk::label
|
||||
ttk::labelframe
|
||||
ttk::menubutton
|
||||
ttk::notebook
|
||||
ttk::paned
|
||||
ttk::panedwindow
|
||||
ttk::progressbar
|
||||
ttk::radiobutton
|
||||
ttk::scale
|
||||
ttk::scrollbar
|
||||
ttk::separator
|
||||
ttk::setTheme
|
||||
ttk::sizegrip
|
||||
ttk::style
|
||||
ttk::takefocus
|
||||
ttk::themes
|
||||
ttk::treeview
|
||||
trace
|
||||
unknown
|
||||
unload
|
||||
unset
|
||||
update
|
||||
uplevel
|
||||
upvar
|
||||
variable
|
||||
vwait
|
||||
while
|
||||
winfo
|
||||
wm
|
||||
797
elpa/auto-complete-20170125.245/dict/ts-mode
Normal file
797
elpa/auto-complete-20170125.245/dict/ts-mode
Normal file
@@ -0,0 +1,797 @@
|
||||
absRefPrefix
|
||||
accessibility
|
||||
accessibilityWrap
|
||||
accessKey
|
||||
ACT
|
||||
ACTIFSUB
|
||||
ACTIVSUBRO
|
||||
ACTRO
|
||||
addAttributes
|
||||
addExtUrlsAndShortCuts
|
||||
additionalHeaders
|
||||
additionalParams
|
||||
addParams
|
||||
addQueryString
|
||||
addQueryString
|
||||
adjustItemsH
|
||||
adjustSubItemsH
|
||||
adminPanelStyles
|
||||
after
|
||||
age
|
||||
align
|
||||
align.field
|
||||
all
|
||||
allowedAttribs
|
||||
allowedGroups
|
||||
allowEdit
|
||||
allowNew
|
||||
allowTags
|
||||
allStdWrap
|
||||
allWrap
|
||||
alternativeSortingField
|
||||
alternativeTempPath
|
||||
altImgResource
|
||||
altTarget
|
||||
altText
|
||||
alwaysActivePIDlist
|
||||
alwaysLink
|
||||
andWhere
|
||||
angle
|
||||
antiAlias
|
||||
append
|
||||
applyTotalH
|
||||
applyTotalW
|
||||
arrayReturnMode
|
||||
arrowACT
|
||||
arrowImgParams
|
||||
arrowNO
|
||||
ATagBeforeWrap
|
||||
ATagParams
|
||||
ATagTitle
|
||||
atLeast
|
||||
atMost
|
||||
authcodeFields
|
||||
autoInsertPID
|
||||
autostart
|
||||
backColor
|
||||
badMess
|
||||
base64
|
||||
baseURL
|
||||
beforeImg
|
||||
beforeImgLink
|
||||
beforeImgTagParams
|
||||
beforeROImg
|
||||
beforeWrap
|
||||
begin
|
||||
begin
|
||||
beginAtLevel
|
||||
beLoginLinkIPList
|
||||
beLoginLinkIPList_login
|
||||
beLoginLinkIPList_logout
|
||||
beUserLogin
|
||||
bgImg
|
||||
blankStrEqFalse
|
||||
blur
|
||||
bm
|
||||
bodyTag
|
||||
bodyTag
|
||||
bodyTagAdd
|
||||
bodyTagCObject
|
||||
bodyTagMargins
|
||||
border
|
||||
border
|
||||
borderCol
|
||||
bordersWithin
|
||||
borderThick
|
||||
bottomContent
|
||||
bottomHeight
|
||||
br
|
||||
breakSpace
|
||||
breakWidth
|
||||
brTag
|
||||
bytes
|
||||
c
|
||||
cache_clearAtMidnight
|
||||
cached
|
||||
cache_period
|
||||
caption
|
||||
captionAlign
|
||||
captionSplit
|
||||
case
|
||||
case
|
||||
CASE
|
||||
casesensitiveComp
|
||||
cellpadding
|
||||
cellspacing
|
||||
char
|
||||
charcoal
|
||||
clearCacheOfPages
|
||||
cMargins
|
||||
COA
|
||||
COA_INT
|
||||
cObject
|
||||
cObjNum
|
||||
code
|
||||
collapse
|
||||
color
|
||||
color1
|
||||
color2
|
||||
color3
|
||||
color.default
|
||||
color.field
|
||||
colRelations
|
||||
cols
|
||||
cols
|
||||
colSpace
|
||||
COLUMNS
|
||||
COMMENT
|
||||
commentWrap
|
||||
compensateFieldWidth
|
||||
compX
|
||||
compY
|
||||
concatenateJsAndCss
|
||||
conf
|
||||
config
|
||||
config
|
||||
CONFIG
|
||||
constants
|
||||
CONTENT
|
||||
content_fallback
|
||||
content_from_pid_allowOutsideDomain
|
||||
controllerActionName
|
||||
controllerExtensionName
|
||||
controllerName
|
||||
crop
|
||||
cropHTML
|
||||
csConv
|
||||
cssInline
|
||||
CSS_inlineStyle
|
||||
CTABLE
|
||||
CUR
|
||||
CURIFSUB
|
||||
CURIFSUBRO
|
||||
current
|
||||
CURRO
|
||||
cWidth
|
||||
data
|
||||
dataArray
|
||||
dataWrap
|
||||
date
|
||||
debug
|
||||
debugData
|
||||
debugFunc
|
||||
debugItemConf
|
||||
debugRenumberedObject
|
||||
decimals
|
||||
dec_point
|
||||
default
|
||||
defaultAlign
|
||||
defaultCmd
|
||||
defaultCode
|
||||
defaultGetVars
|
||||
delete
|
||||
denyTags
|
||||
depth
|
||||
dimensions
|
||||
directImageLink
|
||||
directionLeft
|
||||
directionUp
|
||||
directReturn
|
||||
disableAllHeaderCode
|
||||
disableAltText
|
||||
disableCharsetHeader
|
||||
disableImgBorderAttr
|
||||
disablePageExternalUrl
|
||||
disablePrefixComment
|
||||
disablePreviewNotification
|
||||
displayActiveOnLoad
|
||||
displayActiveOnLoad
|
||||
displayrecord
|
||||
distributeX
|
||||
distributeY
|
||||
doctype
|
||||
doctypeSwitch
|
||||
doNotLinkIt
|
||||
doNotShowLink
|
||||
doNotStripHTML
|
||||
dontCheckPid
|
||||
dontFollowMouse
|
||||
dontHideOnMouseUp
|
||||
dontLinkIfSubmenu
|
||||
dontMd5FieldNames
|
||||
dontWrapInTable
|
||||
doubleBrTag
|
||||
doublePostCheck
|
||||
dWorkArea
|
||||
edge
|
||||
edit
|
||||
editIcons
|
||||
editIcons
|
||||
editPanel
|
||||
EDITPANEL
|
||||
EDITPANEL
|
||||
effects
|
||||
email
|
||||
emailMess
|
||||
emboss
|
||||
emptyTitleHandling
|
||||
emptyTitleHandling
|
||||
emptyTitleHandling
|
||||
enable
|
||||
enableContentLengthHeader
|
||||
encapsLines
|
||||
encapsLinesStdWrap
|
||||
encapsTagList
|
||||
entryLevel
|
||||
equalH
|
||||
equals
|
||||
evalErrors
|
||||
evalFunc
|
||||
excludeDoktypes
|
||||
excludeNoSearchPages
|
||||
excludeUidList
|
||||
expAll
|
||||
explode
|
||||
ext
|
||||
extbase
|
||||
externalBlocks
|
||||
extOnReady
|
||||
extTarget
|
||||
face.default
|
||||
face.field
|
||||
FEData
|
||||
fe_userEditSelf
|
||||
fe_userOwnSelf
|
||||
field
|
||||
fieldPrefix
|
||||
fieldRequired
|
||||
fieldWrap
|
||||
file
|
||||
FILE
|
||||
filelink
|
||||
fileList
|
||||
fileTarget
|
||||
firstLabel
|
||||
firstLabelGeneral
|
||||
flip
|
||||
flop
|
||||
foldSpeed
|
||||
foldTimer
|
||||
fontFile
|
||||
fontSize
|
||||
fontSizeMultiplicator
|
||||
fontTag
|
||||
footerData
|
||||
forceAbsoluteUrl
|
||||
forceTypeValue
|
||||
FORM
|
||||
format
|
||||
formName
|
||||
formurl
|
||||
frame
|
||||
frameReloadIfNotInFrameset
|
||||
frameSet
|
||||
freezeMouseover
|
||||
ftu
|
||||
gamma
|
||||
gapBgCol
|
||||
gapLineCol
|
||||
gapLineThickness
|
||||
gapWidth
|
||||
gif
|
||||
GIFBUILDER
|
||||
globalNesting
|
||||
GMENU
|
||||
goodMess
|
||||
gray
|
||||
gr_list
|
||||
groupBy
|
||||
headerComment
|
||||
headerData
|
||||
headTag
|
||||
height
|
||||
hiddenFields
|
||||
hide
|
||||
hideButCreateMap
|
||||
hideMenuTimer
|
||||
hideMenuWhenNotOver
|
||||
hideNonTranslated
|
||||
highColor
|
||||
HMENU
|
||||
hover
|
||||
hoverStyle
|
||||
HRULER
|
||||
HTML
|
||||
html5
|
||||
htmlmail
|
||||
HTMLparser
|
||||
htmlSpecialChars
|
||||
htmlTag_dir
|
||||
htmlTag_langKey
|
||||
htmlTag_setParams
|
||||
http
|
||||
icon
|
||||
iconCObject
|
||||
icon_image_ext_list
|
||||
icon_link
|
||||
icon_thumbSize
|
||||
if
|
||||
ifBlank
|
||||
ifEmpty
|
||||
IFSUB
|
||||
IFSUBRO
|
||||
ignore
|
||||
IMAGE
|
||||
image_compression
|
||||
image_effects
|
||||
image_frames
|
||||
imgList
|
||||
imgMap
|
||||
imgMapExtras
|
||||
imgMax
|
||||
imgNameNotRandom
|
||||
imgNamePrefix
|
||||
imgObjNum
|
||||
imgParams
|
||||
imgPath
|
||||
imgStart
|
||||
IMGTEXT
|
||||
import
|
||||
inBranch
|
||||
includeCSS
|
||||
includeJS
|
||||
includeJSFooter
|
||||
includeJSFooterlibs
|
||||
includeJSlibs
|
||||
includeLibrary
|
||||
includeLibs
|
||||
includeNotInMenu
|
||||
incT3Lib_htmlmail
|
||||
index_descrLgd
|
||||
index_enable
|
||||
index_externals
|
||||
index_metatags
|
||||
infomail
|
||||
inlineJS
|
||||
inlineLanguageLabel
|
||||
inlineSettings
|
||||
inlineStyle2TempFile
|
||||
innerStdWrap_all
|
||||
innerWrap
|
||||
innerWrap2
|
||||
inputLevels
|
||||
insertClassesFromRTE
|
||||
insertData
|
||||
intensity
|
||||
intTarget
|
||||
intval
|
||||
invert
|
||||
IProcFunc
|
||||
isFalse
|
||||
isGreaterThan
|
||||
isInList
|
||||
isLessThan
|
||||
isPositive
|
||||
isTrue
|
||||
itemArrayProcFunc
|
||||
items
|
||||
iterations
|
||||
javascriptLibs
|
||||
join
|
||||
jpg
|
||||
jsFooterInline
|
||||
jsInline
|
||||
JSMENU
|
||||
JSwindow
|
||||
JSwindow.altUrl
|
||||
JSwindow.altUrl_noDefaultParams
|
||||
JSwindow.expand
|
||||
JSwindow.newWindow
|
||||
JSwindow_params
|
||||
jumpurl
|
||||
jumpurl_enable
|
||||
jumpurl_mailto_disable
|
||||
keep
|
||||
keepNonMatchedTags
|
||||
keywords
|
||||
keywordsField
|
||||
labelStdWrap
|
||||
labelWrap
|
||||
lang
|
||||
language
|
||||
language_alt
|
||||
languageField
|
||||
layer_menu_id
|
||||
layerStyle
|
||||
layout
|
||||
layoutRootPath
|
||||
leftjoin
|
||||
leftOffset
|
||||
levels
|
||||
limit
|
||||
lineColor
|
||||
lineThickness
|
||||
linkAccessRestrictedPages
|
||||
linkParams
|
||||
linkVars
|
||||
linkWrap
|
||||
list
|
||||
listNum
|
||||
lm
|
||||
LOAD_REGISTER
|
||||
locale_all
|
||||
localNesting
|
||||
locationData
|
||||
lockFilePath
|
||||
lockPosition
|
||||
lockPosition_addSelf
|
||||
lockPosition_adjust
|
||||
loginUser
|
||||
longdescURL
|
||||
loop
|
||||
lowColor
|
||||
lower
|
||||
mailto
|
||||
main
|
||||
mainScript
|
||||
makelinks
|
||||
markers
|
||||
markerWrap
|
||||
mask
|
||||
max
|
||||
maxAge
|
||||
maxH
|
||||
maxHeight
|
||||
maxItems
|
||||
maxW
|
||||
maxWidth
|
||||
maxWInText
|
||||
m.bgImg
|
||||
m.bottomImg
|
||||
m.bottomImg_mask
|
||||
md5
|
||||
meaningfulTempFilePrefix
|
||||
menuBackColor
|
||||
menuHeight
|
||||
menuOffset
|
||||
menuWidth
|
||||
message_page_is_being_generated
|
||||
message_preview
|
||||
message_preview_workspace
|
||||
meta
|
||||
metaCharset
|
||||
method
|
||||
minH
|
||||
minifyCSS
|
||||
minifyJS
|
||||
minItems
|
||||
minItems
|
||||
minW
|
||||
m.mask
|
||||
moveJsFromHeaderToFooter
|
||||
MP_defaults
|
||||
MP_disableTypolinkClosestMPvalue
|
||||
MP_mapRootPoints
|
||||
MULTIMEDIA
|
||||
name
|
||||
namespaces
|
||||
negate
|
||||
newRecordFromTable
|
||||
newRecordInPid
|
||||
next
|
||||
niceText
|
||||
NO
|
||||
noAttrib
|
||||
noBlur
|
||||
no_cache
|
||||
noCols
|
||||
noLink
|
||||
noLinkUnderline
|
||||
nonCachedSubst
|
||||
none
|
||||
nonTypoTagStdWrap
|
||||
nonTypoTagUserFunc
|
||||
nonWrappedTag
|
||||
noOrderBy
|
||||
noPageTitle
|
||||
noResultObj
|
||||
normalWhenNoLanguage
|
||||
noRows
|
||||
noScale
|
||||
noScaleUp
|
||||
noscript
|
||||
noStretchAndMarginCells
|
||||
notification_email_charset
|
||||
notification_email_encoding
|
||||
notification_email_urlmode
|
||||
noTrimWrap
|
||||
noValueInsert
|
||||
noWrapAttr
|
||||
numberFormat
|
||||
numRows
|
||||
obj
|
||||
offset
|
||||
offset
|
||||
_offset
|
||||
offsetWrap
|
||||
onlyCurrentPid
|
||||
opacity
|
||||
options
|
||||
orderBy
|
||||
OTABLE
|
||||
outerWrap
|
||||
outline
|
||||
output
|
||||
outputLevels
|
||||
override
|
||||
overrideAttribs
|
||||
overrideEdit
|
||||
overrideId
|
||||
PAGE
|
||||
pageGenScript
|
||||
pageRendererTemplateFile
|
||||
pageTitleFirst
|
||||
parameter
|
||||
params
|
||||
parseFunc
|
||||
parseFunc
|
||||
parseValues
|
||||
partialRootPath
|
||||
path
|
||||
pidInList
|
||||
pixelSpaceFontSizeRef
|
||||
plainTextStdWrap
|
||||
pluginNames
|
||||
png
|
||||
postCObject
|
||||
postUserFunc
|
||||
postUserFunkInt
|
||||
preCObject
|
||||
prefixComment
|
||||
prefixLocalAnchors
|
||||
prefixLocalAnchors
|
||||
prefixRelPathWith
|
||||
preIfEmptyListNum
|
||||
prepend
|
||||
preUserFunc
|
||||
prev
|
||||
previewBorder
|
||||
printBeforeContent
|
||||
prioriCalc
|
||||
processScript
|
||||
properties
|
||||
protect
|
||||
protectLvar
|
||||
quality
|
||||
quality
|
||||
radioInputWrap
|
||||
radioWrap
|
||||
range
|
||||
range
|
||||
rawUrlEncode
|
||||
recipient
|
||||
RECORDS
|
||||
recursive
|
||||
redirect
|
||||
reduceColors
|
||||
relativeToParentLayer
|
||||
relativeToTriggerItem
|
||||
relPathPrefix
|
||||
remap
|
||||
remapTag
|
||||
removeBadHTML
|
||||
removeDefaultJS
|
||||
removeIfEquals
|
||||
removeIfFalse
|
||||
removeObjectsOfDummy
|
||||
removePrependedNumbers
|
||||
removeTags
|
||||
removeWrapping
|
||||
renderCharset
|
||||
renderObj
|
||||
renderWrap
|
||||
REQ
|
||||
required
|
||||
required
|
||||
resources
|
||||
resultObj
|
||||
returnKey
|
||||
returnLast
|
||||
reverseOrder
|
||||
rightjoin
|
||||
rm
|
||||
rmTagIfNoAttrib
|
||||
RO_chBgColor
|
||||
rootline
|
||||
rotate
|
||||
rows
|
||||
rowSpace
|
||||
sample
|
||||
sample
|
||||
section
|
||||
sectionIndex
|
||||
select
|
||||
sendCacheHeaders
|
||||
sendCacheHeaders_onlyWhenLoginDeniedInBranch
|
||||
separator
|
||||
setContentToCurrent
|
||||
setCurrent
|
||||
setfixed
|
||||
setFixedHeight
|
||||
setFixedWidth
|
||||
setJS_mouseOver
|
||||
setJS_openPic
|
||||
setKeywords
|
||||
shadow
|
||||
sharpen
|
||||
shear
|
||||
short
|
||||
shortcutIcon
|
||||
showAccessRestrictedPages
|
||||
showActive
|
||||
showFirst
|
||||
simulateStaticDocuments
|
||||
simulateStaticDocuments_addTitle
|
||||
simulateStaticDocuments_dontRedirectPathInfoError
|
||||
simulateStaticDocuments_noTypeIfNoTitle
|
||||
simulateStaticDocuments_pEnc
|
||||
simulateStaticDocuments_pEnc_onlyP
|
||||
simulateStaticDocuments_replacementChar
|
||||
sitetitle
|
||||
size
|
||||
size.default
|
||||
size.field
|
||||
slide
|
||||
smallFormFields
|
||||
solarize
|
||||
source
|
||||
space
|
||||
spaceAfter
|
||||
spaceBefore
|
||||
spaceBelowAbove
|
||||
spaceLeft
|
||||
spaceRight
|
||||
spacing
|
||||
spamProtectEmailAddresses
|
||||
spamProtectEmailAddresses_atSubst
|
||||
spamProtectEmailAddresses_lastDotSubst
|
||||
SPC
|
||||
special
|
||||
split
|
||||
splitRendering
|
||||
src
|
||||
stat
|
||||
stat_apache
|
||||
stat_apache_logfile
|
||||
stat_apache_niceTitle
|
||||
stat_apache_noHost
|
||||
stat_apache_noRoot
|
||||
stat_apache_notExtended
|
||||
stat_apache_pagenames
|
||||
stat_excludeBEuserHits
|
||||
stat_excludeIPList
|
||||
stat_mysql
|
||||
stat_pageLen
|
||||
stat_titleLen
|
||||
stat_typeNumList
|
||||
stayFolded
|
||||
stdWrap
|
||||
stdWrap2
|
||||
strftime
|
||||
stripHtml
|
||||
stripProfile
|
||||
stylesheet
|
||||
submenuObjSuffixes
|
||||
subMenuOffset
|
||||
subparts
|
||||
subst_elementUid
|
||||
subst_elementUid
|
||||
substMarksSeparately
|
||||
substring
|
||||
swirl
|
||||
sword
|
||||
sword_noMixedCase
|
||||
sword_standAlone
|
||||
sys_language_mode
|
||||
sys_language_overlay
|
||||
sys_language_softExclude
|
||||
sys_language_softMergeIfNotBlank
|
||||
sys_language_uid
|
||||
sys_page
|
||||
table
|
||||
tableParams
|
||||
tables
|
||||
tableStdWrap
|
||||
tableStyle
|
||||
tags
|
||||
target
|
||||
TCAselectItem
|
||||
TDparams
|
||||
template
|
||||
TEMPLATE
|
||||
templateFile
|
||||
text
|
||||
TEXT
|
||||
textMargin
|
||||
textMargin_outOfText
|
||||
textMaxLength
|
||||
textObjNum
|
||||
textPos
|
||||
textStyle
|
||||
thickness
|
||||
thousands_sep
|
||||
title
|
||||
titleTagFunction
|
||||
titleText
|
||||
titleText
|
||||
tm
|
||||
TMENU
|
||||
token
|
||||
topOffset
|
||||
totalWidth
|
||||
transparentBackground
|
||||
transparentColor
|
||||
trim
|
||||
twice
|
||||
typeNum
|
||||
types
|
||||
typolink
|
||||
typolinkCheckRootline
|
||||
typolinkEnableLinksAcrossDomains
|
||||
typolinkLinkAccessRestrictedPages
|
||||
typolinkLinkAccessRestrictedPages_addParams
|
||||
uid
|
||||
uidInList
|
||||
uniqueGlobal
|
||||
uniqueLinkVars
|
||||
uniqueLocal
|
||||
unset
|
||||
unsetEmpty
|
||||
upper
|
||||
url
|
||||
useCacheHash
|
||||
useLargestItemX
|
||||
useLargestItemY
|
||||
USER
|
||||
USERDEF1
|
||||
USERDEF1RO
|
||||
USERDEF2RO
|
||||
USERFEF2
|
||||
userFunc
|
||||
userFunc_updateArray
|
||||
userIdColumn
|
||||
USER_INT
|
||||
USERNAME_substToken
|
||||
USERUID_substToken
|
||||
USR
|
||||
USRRO
|
||||
value
|
||||
variables
|
||||
wave
|
||||
where
|
||||
width
|
||||
wordSpacing
|
||||
workArea
|
||||
workOnSubpart
|
||||
wrap
|
||||
wrap2
|
||||
wrap3
|
||||
wrapAlign
|
||||
wrapFieldName
|
||||
wrapItemAndSub
|
||||
wrapNoWrappedLines
|
||||
wraps
|
||||
xhtml_11
|
||||
xhtml_2
|
||||
xhtml_basic
|
||||
xhtml_cleaning
|
||||
xhtmlDoctype
|
||||
xhtml_frames
|
||||
xhtml+rdfa_10
|
||||
xhtml_strict
|
||||
xhtml_trans
|
||||
xml_10
|
||||
xml_11
|
||||
xmlprologue
|
||||
xPosOffset
|
||||
yPosOffset
|
||||
231
elpa/auto-complete-20170125.245/dict/tuareg-mode
Normal file
231
elpa/auto-complete-20170125.245/dict/tuareg-mode
Normal file
@@ -0,0 +1,231 @@
|
||||
# OCaml 3.12.1
|
||||
|
||||
# Keywords
|
||||
and
|
||||
as
|
||||
assert
|
||||
begin
|
||||
class
|
||||
constraint
|
||||
do
|
||||
done
|
||||
downto
|
||||
else
|
||||
end
|
||||
exception
|
||||
external
|
||||
false
|
||||
for
|
||||
fun
|
||||
function
|
||||
functor
|
||||
if
|
||||
in
|
||||
include
|
||||
inherit
|
||||
initializer
|
||||
lazy
|
||||
let
|
||||
match
|
||||
method
|
||||
module
|
||||
mutable
|
||||
new
|
||||
object
|
||||
of
|
||||
open
|
||||
or
|
||||
private
|
||||
rec
|
||||
sig
|
||||
struct
|
||||
then
|
||||
to
|
||||
true
|
||||
try
|
||||
type
|
||||
val
|
||||
virtual
|
||||
when
|
||||
while
|
||||
with
|
||||
|
||||
# Pervasives
|
||||
!
|
||||
!=
|
||||
&
|
||||
&&
|
||||
*
|
||||
**
|
||||
*.
|
||||
+
|
||||
+.
|
||||
-
|
||||
-.
|
||||
/
|
||||
/.
|
||||
:=
|
||||
<
|
||||
<=
|
||||
<>
|
||||
=
|
||||
==
|
||||
>
|
||||
>=
|
||||
@
|
||||
FP_infinite
|
||||
FP_nan
|
||||
FP_normal
|
||||
FP_subnormal
|
||||
FP_zero
|
||||
LargeFile
|
||||
Open_append
|
||||
Open_binary
|
||||
Open_creat
|
||||
Open_nonblock
|
||||
Open_rdonly
|
||||
Open_text
|
||||
Open_trunc
|
||||
Open_wronly
|
||||
Oupen_excl
|
||||
^
|
||||
^^
|
||||
abs
|
||||
abs_float
|
||||
acos
|
||||
asin
|
||||
asr
|
||||
at_exit
|
||||
atan
|
||||
atan2
|
||||
bool_of_string
|
||||
ceil
|
||||
char_of_int
|
||||
classify_float
|
||||
close_in
|
||||
close_in_noerr
|
||||
close_out
|
||||
close_out_noerr
|
||||
compare
|
||||
cos
|
||||
cosh
|
||||
decr
|
||||
do_at_exit
|
||||
epsilon_float
|
||||
exit
|
||||
exp
|
||||
expm1
|
||||
failwith
|
||||
float
|
||||
float_of_int
|
||||
float_of_string
|
||||
floor
|
||||
flush
|
||||
flush_all
|
||||
format
|
||||
format4
|
||||
format_of_string
|
||||
fpclass
|
||||
frexp
|
||||
fst
|
||||
ignore
|
||||
in_channel
|
||||
in_channel_length
|
||||
incr
|
||||
infinity
|
||||
input
|
||||
input_binary_int
|
||||
input_byte
|
||||
input_char
|
||||
input_line
|
||||
input_value
|
||||
int_of_char
|
||||
int_of_float
|
||||
int_of_string
|
||||
invalid_arg
|
||||
land
|
||||
ldexp
|
||||
lnot
|
||||
log
|
||||
log10
|
||||
log1p
|
||||
lor
|
||||
lsl
|
||||
lsr
|
||||
lxor
|
||||
max
|
||||
max_float
|
||||
max_int
|
||||
min
|
||||
min_float
|
||||
min_int
|
||||
mod
|
||||
mod_float
|
||||
modf
|
||||
nan
|
||||
neg_infinity
|
||||
not
|
||||
open_flag
|
||||
open_in
|
||||
open_in_bin
|
||||
open_in_gen
|
||||
open_out
|
||||
open_out_bin
|
||||
open_out_gen
|
||||
or
|
||||
out_channel
|
||||
out_channel_length
|
||||
output
|
||||
output_binary_int
|
||||
output_byte
|
||||
output_char
|
||||
output_string
|
||||
output_value
|
||||
pos_in
|
||||
pos_out
|
||||
pred
|
||||
prerr_char
|
||||
prerr_endline
|
||||
prerr_float
|
||||
prerr_int
|
||||
prerr_newline
|
||||
prerr_string
|
||||
print_char
|
||||
print_endline
|
||||
print_float
|
||||
print_int
|
||||
print_newline
|
||||
print_string
|
||||
raise
|
||||
read_float
|
||||
read_int
|
||||
read_line
|
||||
really_input
|
||||
ref
|
||||
seek_in
|
||||
seek_out
|
||||
set_binary_mode_in
|
||||
set_binary_mode_out
|
||||
sin
|
||||
sinh
|
||||
snd
|
||||
sqrt
|
||||
stderr
|
||||
stdin
|
||||
stdout
|
||||
string_of_bool
|
||||
string_of_float
|
||||
string_of_format
|
||||
string_of_int
|
||||
succ
|
||||
tan
|
||||
tanh
|
||||
truncate
|
||||
unsafe_really_input
|
||||
valid_float_lexem
|
||||
||
|
||||
~
|
||||
~+
|
||||
~+.
|
||||
~-
|
||||
~-.
|
||||
313
elpa/auto-complete-20170125.245/dict/verilog-mode
Normal file
313
elpa/auto-complete-20170125.245/dict/verilog-mode
Normal file
@@ -0,0 +1,313 @@
|
||||
`define
|
||||
`else
|
||||
`endif
|
||||
`ifdef
|
||||
`ifndef
|
||||
`macromodule
|
||||
`module
|
||||
`primitive
|
||||
`timescale
|
||||
above
|
||||
abs
|
||||
absdelay
|
||||
ac_stim
|
||||
acos
|
||||
acosh
|
||||
alias
|
||||
aliasparam
|
||||
always
|
||||
always_comb
|
||||
always_ff
|
||||
always_latch
|
||||
analog
|
||||
analysis
|
||||
and
|
||||
asin
|
||||
asinh
|
||||
assert
|
||||
assign
|
||||
assume
|
||||
atan
|
||||
atan2
|
||||
atanh
|
||||
automatic
|
||||
before
|
||||
begin
|
||||
bind
|
||||
bins
|
||||
binsof
|
||||
bit
|
||||
branch
|
||||
break
|
||||
buf
|
||||
bufif0
|
||||
bufif1
|
||||
byte
|
||||
case
|
||||
casex
|
||||
casez
|
||||
cell
|
||||
chandle
|
||||
class
|
||||
clocking
|
||||
cmos
|
||||
config
|
||||
connectmodule
|
||||
connectrules
|
||||
const
|
||||
constraint
|
||||
context
|
||||
continue
|
||||
cos
|
||||
cosh
|
||||
cover
|
||||
covergroup
|
||||
coverpoint
|
||||
cross
|
||||
ddt
|
||||
ddx
|
||||
deassign
|
||||
default
|
||||
define
|
||||
defparam
|
||||
design
|
||||
disable
|
||||
discipline
|
||||
dist
|
||||
do
|
||||
driver_update
|
||||
edge
|
||||
else
|
||||
end
|
||||
endcase
|
||||
endclass
|
||||
endclocking
|
||||
endconfig
|
||||
endconnectrules
|
||||
enddiscipline
|
||||
endfunction
|
||||
endgenerate
|
||||
endgroup
|
||||
endif
|
||||
endinterface
|
||||
endmodule
|
||||
endnature
|
||||
endpackage
|
||||
endparamset
|
||||
endprimitive
|
||||
endprogram
|
||||
endproperty
|
||||
endsequence
|
||||
endspecify
|
||||
endtable
|
||||
endtask
|
||||
enum
|
||||
event
|
||||
exclude
|
||||
exp
|
||||
expect
|
||||
export
|
||||
extends
|
||||
extern
|
||||
final
|
||||
final_step
|
||||
first_match
|
||||
flicker_noise
|
||||
floor
|
||||
flow
|
||||
for
|
||||
force
|
||||
foreach
|
||||
forever
|
||||
fork
|
||||
forkjoin
|
||||
from
|
||||
function
|
||||
generate
|
||||
genvar
|
||||
ground
|
||||
highz0
|
||||
highz1
|
||||
hypot
|
||||
idt
|
||||
idtmod
|
||||
if
|
||||
ifdef
|
||||
iff
|
||||
ifndef
|
||||
ifnone
|
||||
ignore_bins
|
||||
illegal_bins
|
||||
import
|
||||
incdir
|
||||
include
|
||||
inf
|
||||
initial
|
||||
initial_step
|
||||
inout
|
||||
input
|
||||
inside
|
||||
instance
|
||||
int
|
||||
integer
|
||||
interface
|
||||
intersect
|
||||
join
|
||||
join_any
|
||||
join_none
|
||||
laplace_nd
|
||||
laplace_np
|
||||
laplace_zd
|
||||
laplace_zp
|
||||
large
|
||||
last_crossing
|
||||
liblist
|
||||
library
|
||||
limexp
|
||||
ln
|
||||
local
|
||||
localparam
|
||||
log
|
||||
logic
|
||||
longint
|
||||
macromodule
|
||||
mailbox
|
||||
matches
|
||||
max
|
||||
medium
|
||||
min
|
||||
modport
|
||||
module
|
||||
nand
|
||||
nand
|
||||
nature
|
||||
negedge
|
||||
net_resolution
|
||||
new
|
||||
nmos
|
||||
nmos
|
||||
noise_table
|
||||
nor
|
||||
noshowcancelled
|
||||
not
|
||||
notif0
|
||||
notif1
|
||||
null
|
||||
or
|
||||
output
|
||||
package
|
||||
packed
|
||||
parameter
|
||||
paramset
|
||||
pmos
|
||||
pmos
|
||||
posedge
|
||||
potential
|
||||
pow
|
||||
primitive
|
||||
priority
|
||||
program
|
||||
property
|
||||
protected
|
||||
pull0
|
||||
pull1
|
||||
pullup
|
||||
pulsestyle_ondetect
|
||||
pulsestyle_onevent
|
||||
pure
|
||||
rand
|
||||
randc
|
||||
randcase
|
||||
randcase
|
||||
randsequence
|
||||
rcmos
|
||||
real
|
||||
realtime
|
||||
ref
|
||||
reg
|
||||
release
|
||||
repeat
|
||||
return
|
||||
rnmos
|
||||
rpmos
|
||||
rtran
|
||||
rtranif0
|
||||
rtranif1
|
||||
scalared
|
||||
semaphore
|
||||
sequence
|
||||
shortint
|
||||
shortreal
|
||||
showcancelled
|
||||
signed
|
||||
sin
|
||||
sinh
|
||||
slew
|
||||
small
|
||||
solve
|
||||
specify
|
||||
specparam
|
||||
sqrt
|
||||
static
|
||||
string
|
||||
strong0
|
||||
strong1
|
||||
struct
|
||||
super
|
||||
supply
|
||||
supply0
|
||||
supply1
|
||||
table
|
||||
tagged
|
||||
tan
|
||||
tanh
|
||||
task
|
||||
then
|
||||
this
|
||||
throughout
|
||||
time
|
||||
timeprecision
|
||||
timer
|
||||
timescale
|
||||
timeunit
|
||||
tran
|
||||
tran
|
||||
tranif0
|
||||
tranif1
|
||||
transition
|
||||
tri
|
||||
tri
|
||||
tri0
|
||||
tri1
|
||||
triand
|
||||
trior
|
||||
trireg
|
||||
type
|
||||
typedef
|
||||
union
|
||||
unique
|
||||
unsigned
|
||||
use
|
||||
uwire
|
||||
var
|
||||
vectored
|
||||
virtual
|
||||
void
|
||||
wait
|
||||
wait_order
|
||||
wand
|
||||
weak0
|
||||
weak1
|
||||
while
|
||||
white_noise
|
||||
wildcard
|
||||
wire
|
||||
with
|
||||
within
|
||||
wor
|
||||
wreal
|
||||
xnor
|
||||
xor
|
||||
zi_nd
|
||||
zi_np
|
||||
zi_zd
|
||||
211
elpa/cargo-20190902.754/cargo-autoloads.el
Normal file
211
elpa/cargo-20190902.754/cargo-autoloads.el
Normal file
@@ -0,0 +1,211 @@
|
||||
;;; cargo-autoloads.el --- automatically extracted autoloads
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(add-to-list 'load-path (directory-file-name
|
||||
(or (file-name-directory #$) (car load-path))))
|
||||
|
||||
|
||||
;;;### (autoloads nil "cargo" "cargo.el" (0 0 0 0))
|
||||
;;; Generated autoloads from cargo.el
|
||||
|
||||
(autoload 'cargo-minor-mode "cargo" "\
|
||||
Cargo minor mode. Used to hold keybindings for cargo-mode.
|
||||
|
||||
\\{cargo-minor-mode-map}
|
||||
|
||||
\(fn &optional ARG)" t nil)
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "cargo" '("cargo-minor-mode")))
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil "cargo-process" "cargo-process.el" (0 0 0 0))
|
||||
;;; Generated autoloads from cargo-process.el
|
||||
|
||||
(autoload 'cargo-process-bench "cargo-process" "\
|
||||
Run the Cargo bench command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Run the benchmarks.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-build "cargo-process" "\
|
||||
Run the Cargo build command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Compile the current project.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-clean "cargo-process" "\
|
||||
Run the Cargo clean command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Remove the target directory.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-doc "cargo-process" "\
|
||||
Run the Cargo doc command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Build this project's and its dependencies' documentation.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-doc-open "cargo-process" "\
|
||||
Run the Cargo doc command with the --open switch.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Open this project's documentation.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-new "cargo-process" "\
|
||||
Run the Cargo new command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
NAME is the name of your application.
|
||||
If BIN is t then create a binary application, otherwise a library.
|
||||
Cargo: Create a new cargo project.
|
||||
|
||||
\(fn NAME &optional BIN)" t nil)
|
||||
|
||||
(autoload 'cargo-process-init "cargo-process" "\
|
||||
Run the Cargo init command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
DIRECTORY is the directory you want to create a cargo project in.
|
||||
If BIN is t then create a binary application, otherwise a library.
|
||||
Cargo: Create a new cargo project in current directory.
|
||||
|
||||
DIRECTORY is created if necessary.
|
||||
|
||||
\(fn DIRECTORY &optional BIN)" t nil)
|
||||
|
||||
(autoload 'cargo-process-run "cargo-process" "\
|
||||
Run the Cargo run command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Build and execute src/main.rs.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-run-bin "cargo-process" "\
|
||||
Run the Cargo run command --bin <name>.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Build and execute a specific binary
|
||||
|
||||
\(fn COMMAND)" t nil)
|
||||
|
||||
(autoload 'cargo-process-run-example "cargo-process" "\
|
||||
Run the Cargo run command --example <name>.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Build and execute with --example <name>.
|
||||
|
||||
\(fn COMMAND)" t nil)
|
||||
|
||||
(autoload 'cargo-process-search "cargo-process" "\
|
||||
Run the Cargo search command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
SEARCH-TERM is used as the search term for the Cargo registry.
|
||||
Cargo: Search registry for crates.
|
||||
|
||||
\(fn SEARCH-TERM)" t nil)
|
||||
|
||||
(autoload 'cargo-process-test "cargo-process" "\
|
||||
Run the Cargo test command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Run the tests.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-current-test "cargo-process" "\
|
||||
Run the Cargo test command for the current test.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Run the tests.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-current-file-tests "cargo-process" "\
|
||||
Run the Cargo test command for the current file.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Run the tests.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-update "cargo-process" "\
|
||||
Run the Cargo update command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Update dependencies listed in Cargo.lock.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-fmt "cargo-process" "\
|
||||
Run the Cargo fmt command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Requires Cargo Fmt to be installed.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-outdated "cargo-process" "\
|
||||
Run the Cargo outdated command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Requires Cargo Outdated to be installed.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-check "cargo-process" "\
|
||||
Run the Cargo check command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Check compile the current project.
|
||||
Requires cargo-check to be installed.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-clippy "cargo-process" "\
|
||||
Run the Cargo clippy command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Clippy compile the current project.
|
||||
Requires Cargo clippy to be installed.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(autoload 'cargo-process-add "cargo-process" "\
|
||||
Run the Cargo add command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
CRATES is the name of the crate to add.
|
||||
Cargo: This command allows you to add a dependency to a Cargo.toml manifest file.
|
||||
|
||||
\(fn CRATE)" t nil)
|
||||
|
||||
(autoload 'cargo-process-rm "cargo-process" "\
|
||||
Run the Cargo rm command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
CRATE is the name of the crate to remove.
|
||||
Cargo: Remove a dependency from a Cargo.toml manifest file.
|
||||
|
||||
\(fn CRATE)" t nil)
|
||||
|
||||
(autoload 'cargo-process-upgrade "cargo-process" "\
|
||||
Run the Cargo update command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
If ALL is t then update all crates, otherwise specify CRATES.
|
||||
Cargo: Upgrade dependencies as specified in the local manifest file
|
||||
|
||||
\(fn &optional ALL CRATES)" t nil)
|
||||
|
||||
(autoload 'cargo-process-repeat "cargo-process" "\
|
||||
Run the last cargo-process command.
|
||||
|
||||
\(fn)" t nil)
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "cargo-process" '("cargo-process-" "manifest-path-argument" "set-rust-backtrace" "rustc-errno")))
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil nil ("cargo-pkg.el") (0 0 0 0))
|
||||
|
||||
;;;***
|
||||
|
||||
;; Local Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; no-update-autoloads: t
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
;;; cargo-autoloads.el ends here
|
||||
13
elpa/cargo-20190902.754/cargo-pkg.el
Normal file
13
elpa/cargo-20190902.754/cargo-pkg.el
Normal file
@@ -0,0 +1,13 @@
|
||||
(define-package "cargo" "20190902.754" "Emacs Minor Mode for Cargo, Rust's Package Manager."
|
||||
'((emacs "24.3")
|
||||
(rust-mode "0.2.0")
|
||||
(markdown-mode "2.4"))
|
||||
:keywords
|
||||
'("tools")
|
||||
:authors
|
||||
'(("Kevin W. van Rooijen" . "kevin.van.rooijen@attichacker.com"))
|
||||
:maintainer
|
||||
'("Kevin W. van Rooijen" . "kevin.van.rooijen@attichacker.com"))
|
||||
;; Local Variables:
|
||||
;; no-byte-compile: t
|
||||
;; End:
|
||||
677
elpa/cargo-20190902.754/cargo-process.el
Normal file
677
elpa/cargo-20190902.754/cargo-process.el
Normal file
@@ -0,0 +1,677 @@
|
||||
;;; cargo-process.el --- Cargo Process Major Mode -*-lexical-binding: t-*-
|
||||
|
||||
;; Copyright (C) 2015 Kevin W. van Rooijen
|
||||
|
||||
;; Author: Kevin W. van Rooijen <kevin.van.rooijen@attichacker.com>
|
||||
;; Keywords: processes, tools
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Cargo Process Major mode.
|
||||
;; Used to run Cargo background processes.
|
||||
;; Current supported Cargo functions:
|
||||
;; * cargo-process-bench - Run the benchmarks.
|
||||
;; * cargo-process-build - Compile the current project.
|
||||
;; * cargo-process-clean - Remove the target directory.
|
||||
;; * cargo-process-doc - Build this project's and its dependencies' documentation.
|
||||
;; * cargo-process-doc-open - Open this project's documentation.
|
||||
;; * cargo-process-new - Create a new cargo project.
|
||||
;; * cargo-process-init - Create a new cargo project inside an existing directory.
|
||||
;; * cargo-process-run - Build and execute src/main.rs.
|
||||
;; * cargo-process-run-example - Build and execute with --example <name>.
|
||||
;; * cargo-process-run-bin - Build and execute a specific binary.
|
||||
;; * cargo-process-search - Search registry for crates.
|
||||
;; * cargo-process-test - Run all unit tests.
|
||||
;; * cargo-process-update - Update dependencies listed in Cargo.lock.
|
||||
;; * cargo-process-repeat - Run the last cargo-process command.
|
||||
;; * cargo-process-current-test - Run the current unit test.
|
||||
;; * cargo-process-current-file-tests - Run the current file unit tests.
|
||||
;; * cargo-process-fmt - Run the optional cargo command fmt.
|
||||
;; * cargo-process-check - Run the optional cargo command check.
|
||||
;; * cargo-process-clippy - Run the optional cargo command clippy.
|
||||
;; * cargo-process-add - Run the optional cargo command add.
|
||||
;; * cargo-process-rm - Run the optional cargo command rm.
|
||||
;; * cargo-process-upgrade - Run the optional cargo command upgrade.
|
||||
;; * cargo-process-outdated - Run the optional cargo command outdated.
|
||||
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(require 'compile)
|
||||
(require 'button)
|
||||
(require 'rust-mode)
|
||||
(require 'markdown-mode)
|
||||
|
||||
(defgroup cargo-process nil
|
||||
"Cargo Process group."
|
||||
:prefix "cargo-process-"
|
||||
:group 'cargo)
|
||||
|
||||
(defcustom cargo-process--custom-path-to-bin
|
||||
(or (executable-find "cargo")
|
||||
(expand-file-name "cargo" "~/.cargo/bin")
|
||||
"/usr/local/bin/cargo")
|
||||
"Custom path to the cargo executable"
|
||||
:type 'file
|
||||
:group 'cargo-process)
|
||||
|
||||
(defcustom cargo-process--rustc-cmd
|
||||
(or (executable-find "rustc")
|
||||
(expand-file-name "rustc" "~/.cargo/bin")
|
||||
"/usr/local/bin/rustc")
|
||||
"Custom path to the rustc executable"
|
||||
:type 'file
|
||||
:group 'cargo-process)
|
||||
|
||||
(defcustom cargo-process--enable-rust-backtrace nil
|
||||
"Set RUST_BACKTRACE environment variable to 1 for tasks test and run"
|
||||
:type 'boolean
|
||||
:group 'cargo-process)
|
||||
|
||||
(defcustom cargo-process--command-flags ""
|
||||
"Flags to be added to every cargo command when run."
|
||||
:group 'cargo-process)
|
||||
|
||||
(defvar cargo-process-mode-map
|
||||
(nconc (make-sparse-keymap) compilation-mode-map)
|
||||
"Keymap for Cargo major mode.")
|
||||
|
||||
(defvar cargo-process--no-manifest-commands
|
||||
'("New" "Init" "Search" "Fmt")
|
||||
"These commands should not specify a manifest file.")
|
||||
|
||||
(defvar cargo-process-last-command nil "Command used last for repeating.")
|
||||
|
||||
(make-variable-buffer-local 'cargo-process-last-command)
|
||||
|
||||
(defcustom cargo-process--command-bench "bench"
|
||||
"Subcommand used by `cargo-process-bench'.")
|
||||
|
||||
(defcustom cargo-process--command-build "build"
|
||||
"Subcommand used by `cargo-process-build'.")
|
||||
|
||||
(defcustom cargo-process--command-clean "clean"
|
||||
"Subcommand used by `cargo-process-clean'.")
|
||||
|
||||
(defcustom cargo-process--command-doc "doc"
|
||||
"Subcommand used by `cargo-process-doc'.")
|
||||
|
||||
(defcustom cargo-process--command-doc-open "doc --open"
|
||||
"Subcommand used by `cargo-process-doc'.")
|
||||
|
||||
(defcustom cargo-process--command-new "new"
|
||||
"Subcommand used by `cargo-process-new'.")
|
||||
|
||||
(defcustom cargo-process--command-init "init"
|
||||
"Subcommand used by `cargo-process-init'.")
|
||||
|
||||
(defcustom cargo-process--command-run "run"
|
||||
"Subcommand used by `cargo-process-run'.")
|
||||
|
||||
(defcustom cargo-process--command-run-bin "run --bin"
|
||||
"Subcommand used by `cargo-process-run-bin'.")
|
||||
|
||||
(defcustom cargo-process--command-run-example "run --example"
|
||||
"Subcommand used by `cargo-process-run-example'.")
|
||||
|
||||
(defcustom cargo-process--command-search "search"
|
||||
"Subcommand used by `cargo-process-search'.")
|
||||
|
||||
(defcustom cargo-process--command-test "test"
|
||||
"Subcommand used by `cargo-process-test'.")
|
||||
|
||||
(defcustom cargo-process--command-current-test "test"
|
||||
"Subcommand used by `cargo-process-current-test'.")
|
||||
|
||||
(defcustom cargo-process--command-current-file-tests "test"
|
||||
"Subcommand used by `cargo-process-current-file-tests'.")
|
||||
|
||||
(defcustom cargo-process--command-update "update"
|
||||
"Subcommand used by `cargo-process-update'.")
|
||||
|
||||
(defcustom cargo-process--command-fmt "fmt"
|
||||
"Subcommand used by `cargo-process-fmt'.")
|
||||
|
||||
(defcustom cargo-process--command-outdated "outdated -R"
|
||||
"Subcommand used by `cargo-process-outdated'.")
|
||||
|
||||
(defcustom cargo-process--command-check "check"
|
||||
"Subcommand used by `cargo-process-check'.")
|
||||
|
||||
(defcustom cargo-process--command-clippy "clippy"
|
||||
"Subcommand used by `cargo-process-clippy'.")
|
||||
|
||||
(defcustom cargo-process--command-add "add"
|
||||
"Subcommand used by `cargo-process-add'.")
|
||||
|
||||
(defcustom cargo-process--command-rm "rm"
|
||||
"Subcommand used by `cargo-process-rm'.")
|
||||
|
||||
(defcustom cargo-process--command-upgrade "upgrade"
|
||||
"Subcommand used by `cargo-process-upgrade'.")
|
||||
|
||||
(defvar cargo-process-favorite-crates nil)
|
||||
|
||||
(defface cargo-process--ok-face
|
||||
'((t (:inherit success)))
|
||||
"Ok face"
|
||||
:group 'cargo-process)
|
||||
|
||||
(defface cargo-process--error-face
|
||||
'((t (:inherit error)))
|
||||
"Error face"
|
||||
:group 'cargo-process)
|
||||
|
||||
(defface cargo-process--warning-face
|
||||
'((t (:inherit warning)))
|
||||
"Warning face"
|
||||
:group 'cargo-process)
|
||||
|
||||
(defface cargo-process--pointer-face
|
||||
'((t (:inherit font-lock-negation-char-face)))
|
||||
"Pointer face"
|
||||
:group 'cargo-process)
|
||||
|
||||
(defface cargo-process--standard-face
|
||||
'((t (:inherit font-lock-comment-face)))
|
||||
"Standard face"
|
||||
:group 'cargo-process)
|
||||
|
||||
(defface cargo-process--errno-face
|
||||
'((t (:inherit link)))
|
||||
"Error number face"
|
||||
:group 'cargo-process)
|
||||
|
||||
(defconst cargo-process--rust-backtrace "RUST_BACKTRACE")
|
||||
|
||||
(defconst cargo-process-test-regexp "^[[:space:]]*fn[[:space:]]*"
|
||||
"Regex to find Rust unit test function.")
|
||||
|
||||
(defconst cargo-process-test-mod-regexp "^[[:space:]]*mod[[:space:]]+[[:word:][:multibyte:]_][[:word:][:multibyte:]_[:digit:]]*[[:space:]]*{")
|
||||
|
||||
(defconst cargo-process-font-lock-keywords
|
||||
'(("^error\\:?" . 'cargo-process--error-face)
|
||||
("^warning\\:?" . 'cargo-process--warning-face)
|
||||
("^\s*\\^\\~*\s*$" . 'cargo-process--pointer-face)
|
||||
("^\s*Compiling.*" . 'cargo-process--standard-face)
|
||||
("^\s*Running.*" . 'cargo-process--standard-face)
|
||||
("^\s*Updating.*" . 'cargo-process--standard-face)
|
||||
("test result: FAILED." . 'cargo-process--error-face)
|
||||
("test result: ok." . 'cargo-process--ok-face)
|
||||
("test\s.*\sFAILED" . 'cargo-process--error-face)
|
||||
("test\s.*\sok" . 'cargo-process--ok-face))
|
||||
"Minimal highlighting expressions for cargo-process mode.")
|
||||
|
||||
;; Bind `case-fold-search' to nil before using the regex.
|
||||
(defconst cargo-process--errno-regex "\\bE[0-9]\\{4\\}\\b"
|
||||
"A regular expression to match Rust error number.")
|
||||
|
||||
(define-button-type 'rustc-errno
|
||||
'follow-link t
|
||||
'face 'cargo-process--errno-face
|
||||
'action #'cargo-process--explain-action)
|
||||
|
||||
(defun cargo-process--defun-at-point-p ()
|
||||
(string-match cargo-process-test-regexp
|
||||
(buffer-substring-no-properties (line-beginning-position)
|
||||
(line-end-position))))
|
||||
|
||||
(defun cargo-process--project-root (&optional extra)
|
||||
"Find the root of the current Cargo project."
|
||||
(let ((root (locate-dominating-file (or buffer-file-name default-directory) "Cargo.toml")))
|
||||
(when root
|
||||
(file-truename (concat root extra)))))
|
||||
|
||||
(define-derived-mode cargo-process-mode compilation-mode "Cargo-Process."
|
||||
"Major mode for the Cargo process buffer."
|
||||
(use-local-map cargo-process-mode-map)
|
||||
(setq major-mode 'cargo-process-mode)
|
||||
(setq mode-name "Cargo-Process")
|
||||
(setq-local truncate-lines t)
|
||||
(run-hooks 'cargo-process-mode-hook)
|
||||
(add-hook 'compilation-filter-hook #'cargo-process--add-errno-buttons)
|
||||
(font-lock-add-keywords nil cargo-process-font-lock-keywords))
|
||||
|
||||
(defun cargo-process--finished-sentinel (process event)
|
||||
"Execute after PROCESS return and EVENT is 'finished'."
|
||||
(compilation-sentinel process event)
|
||||
(when (equal event "finished\n")
|
||||
(message "Cargo Process finished.")))
|
||||
|
||||
(defun cargo-process--activate-mode (buffer)
|
||||
"Execute commands BUFFER at process start."
|
||||
(with-current-buffer buffer
|
||||
(funcall 'cargo-process-mode)
|
||||
(setq-local window-point-insertion-type t)))
|
||||
|
||||
(defun set-rust-backtrace (command)
|
||||
"Set RUST_BACKTRACE variable depending on the COMMAND used.
|
||||
Always set to nil if cargo-process--enable-rust-backtrace is nil"
|
||||
(if (and cargo-process--enable-rust-backtrace
|
||||
(string-match "\\(test\\|run\\)" command))
|
||||
(setenv cargo-process--rust-backtrace "1")
|
||||
(setenv cargo-process--rust-backtrace nil)))
|
||||
|
||||
(defun cargo-process--workspace-root ()
|
||||
"Find the workspace root using `cargo metadata`."
|
||||
(when (cargo-process--project-root)
|
||||
(let* ((metadata-text (shell-command-to-string
|
||||
(concat (shell-quote-argument cargo-process--custom-path-to-bin)
|
||||
" metadata --format-version 1 --no-deps")))
|
||||
(metadata-json (json-read-from-string metadata-text))
|
||||
(workspace-root (cdr (assoc 'workspace_root metadata-json))))
|
||||
workspace-root)))
|
||||
|
||||
(defun manifest-path-argument (name)
|
||||
(let ((manifest-filename (cargo-process--project-root "Cargo.toml")))
|
||||
(when (and manifest-filename
|
||||
(not (member name cargo-process--no-manifest-commands)))
|
||||
(concat "--manifest-path " (shell-quote-argument manifest-filename)))))
|
||||
|
||||
(defun cargo-process--start (name command &optional last-cmd opens-external)
|
||||
"Start the Cargo process NAME with the cargo command COMMAND.
|
||||
OPENS-EXTERNAL is non-nil if the COMMAND is expected to open an external application.
|
||||
Returns the created process."
|
||||
(set-rust-backtrace command)
|
||||
(let* ((buffer (concat "*Cargo " name "*"))
|
||||
(project-root (cargo-process--project-root))
|
||||
(cmd
|
||||
(or last-cmd
|
||||
(cargo-process--maybe-read-command
|
||||
(cargo-process--augment-cmd-for-os opens-external
|
||||
(mapconcat #'identity (list (shell-quote-argument cargo-process--custom-path-to-bin)
|
||||
command
|
||||
(manifest-path-argument name)
|
||||
cargo-process--command-flags)
|
||||
" ")))))
|
||||
(default-directory (or project-root default-directory)))
|
||||
(save-some-buffers (not compilation-ask-about-save)
|
||||
(lambda ()
|
||||
(and project-root
|
||||
buffer-file-name
|
||||
(string-prefix-p project-root (file-truename buffer-file-name)))))
|
||||
(setq cargo-process-last-command (list name command cmd))
|
||||
(let ((default-directory (or (cargo-process--workspace-root)
|
||||
default-directory)))
|
||||
(compilation-start cmd 'cargo-process-mode (lambda(_) buffer)))
|
||||
(let ((process (get-buffer-process buffer)))
|
||||
(set-process-sentinel process 'cargo-process--finished-sentinel)
|
||||
process)))
|
||||
|
||||
(defun cargo-process--explain-action (button)
|
||||
"Action called when the user activates Rust errno BUTTON."
|
||||
(cargo-process--explain-help (button-label button)))
|
||||
|
||||
(defun cargo-process--explain-help (errno)
|
||||
"Display a detailed explaination of ERRNO in a markdown buffer."
|
||||
(pop-to-buffer
|
||||
(let ((current-window (selected-window))
|
||||
(inhibit-message t))
|
||||
(with-current-buffer (get-buffer-create "*rust errno*")
|
||||
(let ((buffer-read-only nil))
|
||||
(erase-buffer)
|
||||
(insert (shell-command-to-string
|
||||
(concat cargo-process--rustc-cmd " --explain=" errno))))
|
||||
(markdown-view-mode)
|
||||
(setq-local markdown-fontify-code-blocks-natively t)
|
||||
(setq-local markdown-fontify-code-block-default-mode 'rust-mode)
|
||||
(setq-local kill-buffer-hook (lambda ()
|
||||
(when (window-live-p current-window)
|
||||
(select-window current-window))))
|
||||
(setq
|
||||
header-line-format
|
||||
(concat (propertize " " 'display
|
||||
`(space :align-to (- right-fringe ,(1+ (length errno)))))
|
||||
(propertize errno 'face 'error)))
|
||||
(markdown-toggle-markup-hiding 1)
|
||||
(goto-char 1)
|
||||
(current-buffer)))))
|
||||
|
||||
(defun cargo-process--add-errno-buttons ()
|
||||
"Turn error numbers into clickable links in Cargo process output.
|
||||
Meant to be run as a `compilation-filter-hook'."
|
||||
(save-excursion
|
||||
(let ((start compilation-filter-start)
|
||||
(end (point))
|
||||
(case-fold-search nil))
|
||||
(goto-char start)
|
||||
(while (re-search-forward cargo-process--errno-regex end t)
|
||||
(make-button (match-beginning 0)
|
||||
(match-end 0)
|
||||
:type 'rustc-errno)))))
|
||||
|
||||
(defun cargo-process--get-current-test ()
|
||||
"Return the current test."
|
||||
(save-excursion
|
||||
(unless (cargo-process--defun-at-point-p)
|
||||
(rust-beginning-of-defun))
|
||||
(beginning-of-line)
|
||||
(search-forward "fn ")
|
||||
(let* ((line (buffer-substring-no-properties (point)
|
||||
(line-end-position)))
|
||||
(lines (split-string line "("))
|
||||
(function-name (car lines)))
|
||||
function-name)))
|
||||
|
||||
(defun cargo-process--get-current-mod ()
|
||||
"Return the current mod."
|
||||
(save-excursion
|
||||
(when (search-backward-regexp cargo-process-test-mod-regexp nil t)
|
||||
(let* ((line (buffer-substring-no-properties (line-beginning-position)
|
||||
(line-end-position)))
|
||||
(line (string-trim-left line))
|
||||
(lines (split-string line " \\|{"))
|
||||
(mod (cadr lines)))
|
||||
mod))))
|
||||
|
||||
(defun cargo-process--get-current-test-fullname ()
|
||||
(if (cargo-process--get-current-mod)
|
||||
(concat (cargo-process--get-current-mod)
|
||||
"::"
|
||||
(cargo-process--get-current-test))
|
||||
(cargo-process--get-current-test)))
|
||||
|
||||
(defun cargo-process--maybe-read-command (default)
|
||||
"Prompt to modify the DEFAULT command when the prefix argument is present.
|
||||
Without the prefix argument, return DEFAULT immediately."
|
||||
(if current-prefix-arg
|
||||
(read-shell-command "Cargo command: " default)
|
||||
default))
|
||||
|
||||
(defun cargo-process--get-dependencies (&optional manifest)
|
||||
"Extract the list of dependencies from the
|
||||
MANIFEST (i.e. Cargo.toml)."
|
||||
(with-current-buffer (find-file-noselect (or manifest
|
||||
(cargo-process--project-root "Cargo.toml")))
|
||||
(save-excursion
|
||||
(let ((deps-list))
|
||||
(widen)
|
||||
(goto-char (point-min))
|
||||
(search-forward "[dependencies]" nil t)
|
||||
(while (re-search-forward "^[a-zA-Z\-\_]* *=" nil t)
|
||||
(beginning-of-line)
|
||||
(setq deps-list
|
||||
(cons (thing-at-point 'sexp t) deps-list))
|
||||
(end-of-line))
|
||||
deps-list))))
|
||||
|
||||
(defun cargo-process--augment-cmd-for-os (opens-external cmd)
|
||||
"Augment the cargo CMD according to OS. OPENS-EXTERNAL is non-nil
|
||||
if the CMD is expected to open and external application."
|
||||
(if (and opens-external
|
||||
(not (member system-type '(windows-nt ms-dos)))
|
||||
(executable-find "setsid"))
|
||||
(concat "setsid -w " cmd)
|
||||
cmd))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-bench ()
|
||||
"Run the Cargo bench command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Run the benchmarks."
|
||||
(interactive)
|
||||
(cargo-process--start "Bench" cargo-process--command-bench))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-build ()
|
||||
"Run the Cargo build command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Compile the current project."
|
||||
(interactive)
|
||||
(cargo-process--start "Build" cargo-process--command-build))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-clean ()
|
||||
"Run the Cargo clean command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Remove the target directory."
|
||||
(interactive)
|
||||
(cargo-process--start "Clean" cargo-process--command-clean))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-doc ()
|
||||
"Run the Cargo doc command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Build this project's and its dependencies' documentation."
|
||||
(interactive)
|
||||
(cargo-process--start "Doc" cargo-process--command-doc))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-doc-open ()
|
||||
"Run the Cargo doc command with the --open switch.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Open this project's documentation."
|
||||
(interactive)
|
||||
(cargo-process--start "Doc" cargo-process--command-doc-open nil t))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-new (name &optional bin)
|
||||
"Run the Cargo new command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
NAME is the name of your application.
|
||||
If BIN is t then create a binary application, otherwise a library.
|
||||
Cargo: Create a new cargo project."
|
||||
(interactive "sProject name: ")
|
||||
(let ((bin (if (or bin
|
||||
(y-or-n-p "Create Bin Project? "))
|
||||
" --bin"
|
||||
" --lib")))
|
||||
(cargo-process--start "New" (concat cargo-process--command-new
|
||||
" "
|
||||
name
|
||||
bin))))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-init (directory &optional bin)
|
||||
"Run the Cargo init command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
DIRECTORY is the directory you want to create a cargo project in.
|
||||
If BIN is t then create a binary application, otherwise a library.
|
||||
Cargo: Create a new cargo project in current directory.
|
||||
|
||||
DIRECTORY is created if necessary."
|
||||
(interactive
|
||||
(list (read-directory-name "Directory: " nil default-directory nil)))
|
||||
(let* ((bin (if (or bin (y-or-n-p "Create Bin Project? "))
|
||||
" --bin"
|
||||
" --lib"))
|
||||
(process
|
||||
(cargo-process--start "Init" (concat cargo-process--command-init
|
||||
" "
|
||||
directory
|
||||
bin))))
|
||||
(set-process-sentinel
|
||||
process
|
||||
(lambda (process event)
|
||||
(cargo-process--open-manifest process
|
||||
event
|
||||
(expand-file-name "Cargo.toml" directory))))))
|
||||
|
||||
(defun cargo-process--open-manifest (process event manifest-path)
|
||||
"Open the manifest file when process ends."
|
||||
(when (equal event "finished\n")
|
||||
(find-file manifest-path)))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-run ()
|
||||
"Run the Cargo run command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Build and execute src/main.rs."
|
||||
(interactive)
|
||||
(cargo-process--start "Run" cargo-process--command-run))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-run-bin (command)
|
||||
"Run the Cargo run command --bin <name>.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Build and execute a specific binary"
|
||||
(interactive "sBinary name: ")
|
||||
(cargo-process--start (concat "Run " command)
|
||||
(concat cargo-process--command-run-bin " " command)))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-run-example (command)
|
||||
"Run the Cargo run command --example <name>.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Build and execute with --example <name>."
|
||||
(interactive "sExample name: ")
|
||||
(cargo-process--start (concat "Example " command)
|
||||
(concat cargo-process--command-run-example " " command)))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-search (search-term)
|
||||
"Run the Cargo search command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
SEARCH-TERM is used as the search term for the Cargo registry.
|
||||
Cargo: Search registry for crates."
|
||||
(interactive "sSearch: ")
|
||||
(cargo-process--start "Search"
|
||||
(concat cargo-process--command-search " " search-term)))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-test ()
|
||||
"Run the Cargo test command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Run the tests."
|
||||
(interactive)
|
||||
(cargo-process--start "Test" cargo-process--command-test))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-current-test ()
|
||||
"Run the Cargo test command for the current test.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Run the tests."
|
||||
(interactive)
|
||||
(cargo-process--start "Test"
|
||||
(concat cargo-process--command-current-test
|
||||
" "
|
||||
(cargo-process--get-current-test-fullname))))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-current-file-tests ()
|
||||
"Run the Cargo test command for the current file.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Run the tests."
|
||||
(interactive)
|
||||
(cargo-process--start "Test" (concat cargo-process--command-current-file-tests
|
||||
" "
|
||||
(cargo-process--get-current-mod))))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-update ()
|
||||
"Run the Cargo update command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Update dependencies listed in Cargo.lock."
|
||||
(interactive)
|
||||
(cargo-process--start "Update" cargo-process--command-update))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-fmt ()
|
||||
"Run the Cargo fmt command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Requires Cargo Fmt to be installed."
|
||||
(interactive)
|
||||
(cargo-process--start "Fmt" cargo-process--command-fmt))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-outdated ()
|
||||
"Run the Cargo outdated command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Requires Cargo Outdated to be installed."
|
||||
(interactive)
|
||||
(cargo-process--start "Outdated" cargo-process--command-outdated))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-check ()
|
||||
"Run the Cargo check command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Check compile the current project.
|
||||
Requires cargo-check to be installed."
|
||||
(interactive)
|
||||
(cargo-process--start "Check" cargo-process--command-check))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-clippy ()
|
||||
"Run the Cargo clippy command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
Cargo: Clippy compile the current project.
|
||||
Requires Cargo clippy to be installed."
|
||||
(interactive)
|
||||
(cargo-process--start "Clippy" cargo-process--command-clippy))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-add (crate)
|
||||
"Run the Cargo add command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
CRATES is the name of the crate to add.
|
||||
Cargo: This command allows you to add a dependency to a Cargo.toml manifest file."
|
||||
(interactive (list
|
||||
(completing-read "Crate(s) to add: " cargo-process-favorite-crates)))
|
||||
(cargo-process--start "Add" (concat cargo-process--command-add
|
||||
" "
|
||||
crate)))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-rm (crate)
|
||||
"Run the Cargo rm command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
CRATE is the name of the crate to remove.
|
||||
Cargo: Remove a dependency from a Cargo.toml manifest file."
|
||||
(interactive
|
||||
(list
|
||||
(let ((deplist (cargo-process--get-dependencies)))
|
||||
(when deplist
|
||||
(completing-read "Crate to remove: "
|
||||
deplist nil t)))))
|
||||
(if crate (cargo-process--start "Remove" (concat cargo-process--command-rm
|
||||
" "
|
||||
crate))
|
||||
(message "No crates used in current project.")))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-upgrade (&optional all crates)
|
||||
"Run the Cargo update command.
|
||||
With the prefix argument, modify the command's invocation.
|
||||
If ALL is t then update all crates, otherwise specify CRATES.
|
||||
Cargo: Upgrade dependencies as specified in the local manifest file"
|
||||
(interactive)
|
||||
(let ((deplist (cargo-process--get-dependencies)))
|
||||
(if deplist
|
||||
(let* ((all (when (or all
|
||||
(y-or-n-p "Upgrade all crates? "))
|
||||
"--all"))
|
||||
(crates (when (not all)
|
||||
(completing-read "Crate(s) to upgrade: " deplist nil 'confirm))))
|
||||
(cargo-process--start "Upgrade" (concat cargo-process--command-upgrade
|
||||
" "
|
||||
all
|
||||
" "
|
||||
crates)))
|
||||
(message "No crates used in current project."))))
|
||||
|
||||
;;;###autoload
|
||||
(defun cargo-process-repeat ()
|
||||
"Run the last cargo-process command."
|
||||
(interactive)
|
||||
(if cargo-process-last-command
|
||||
(apply 'cargo-process--start cargo-process-last-command)
|
||||
(message "No last Cargo command.")))
|
||||
|
||||
(define-key cargo-process-mode-map (kbd "n") 'forward-button)
|
||||
(define-key cargo-process-mode-map (kbd "p") 'backward-button)
|
||||
|
||||
(provide 'cargo-process)
|
||||
;;; cargo-process.el ends here
|
||||
BIN
elpa/cargo-20190902.754/cargo-process.elc
Normal file
BIN
elpa/cargo-20190902.754/cargo-process.elc
Normal file
Binary file not shown.
95
elpa/cargo-20190902.754/cargo.el
Normal file
95
elpa/cargo-20190902.754/cargo.el
Normal file
@@ -0,0 +1,95 @@
|
||||
;;; cargo.el --- Emacs Minor Mode for Cargo, Rust's Package Manager.
|
||||
|
||||
;; Copyright (C) 2015 Kevin W. van Rooijen
|
||||
|
||||
;; Author: Kevin W. van Rooijen <kevin.van.rooijen@attichacker.com>
|
||||
;; Version : 0.4.0
|
||||
;; Keywords: tools
|
||||
;; Package-Requires: ((emacs "24.3") (rust-mode "0.2.0") (markdown-mode "2.4"))
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Cargo Minor mode.
|
||||
;; Provides a number of key combinations and functions for managing Cargo.
|
||||
;; Current supported Cargo Key Combinations:
|
||||
;; * C-c C-c C-e - cargo-process-bench
|
||||
;; * C-c C-c C-b - cargo-process-build
|
||||
;; * C-c C-c C-l - cargo-process-clean
|
||||
;; * C-c C-c C-d - cargo-process-doc
|
||||
;; * C-c C-c C-v - cargo-process-doc-open
|
||||
;; * C-c C-c C-n - cargo-process-new
|
||||
;; * C-c C-c C-i - cargo-process-init
|
||||
;; * C-c C-c C-r - cargo-process-run
|
||||
;; * C-c C-c C-x - cargo-process-run-example
|
||||
;; * C-c C-c C-s - cargo-process-search
|
||||
;; * C-c C-c C-t - cargo-process-test
|
||||
;; * C-c C-c C-u - cargo-process-update
|
||||
;; * C-c C-c C-c - cargo-process-repeat
|
||||
;; * C-c C-c C-f - cargo-process-current-test
|
||||
;; * C-c C-c C-o - cargo-process-current-file-tests
|
||||
;; * C-c C-c C-O - cargo-process-outdated
|
||||
;; * C-c C-c C-m - cargo-process-fmt
|
||||
;; * C-c C-c C-k - cargo-process-check
|
||||
;; * C-c C-c C-K - cargo-process-clippy
|
||||
;; * C-c C-c C-a - cargo-process-add
|
||||
;; * C-c C-c C-D - cargo-process-rm
|
||||
;; * C-c C-c C-U - cargo-process-upgrade
|
||||
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(require 'cargo-process)
|
||||
|
||||
(defgroup cargo nil
|
||||
"Cargo group."
|
||||
:prefix "cargo-"
|
||||
:group 'tools)
|
||||
|
||||
(defvar cargo-minor-mode-map (make-keymap) "Cargo-mode keymap.")
|
||||
(defvar cargo-minor-mode nil)
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode cargo-minor-mode
|
||||
"Cargo minor mode. Used to hold keybindings for cargo-mode.
|
||||
|
||||
\\{cargo-minor-mode-map}"
|
||||
nil " cargo" cargo-minor-mode-map)
|
||||
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-e") 'cargo-process-bench)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-b") 'cargo-process-build)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-l") 'cargo-process-clean)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-d") 'cargo-process-doc)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-v") 'cargo-process-doc-open)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-n") 'cargo-process-new)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-i") 'cargo-process-init)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-r") 'cargo-process-run)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-x") 'cargo-process-run-example)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-s") 'cargo-process-search)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-t") 'cargo-process-test)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-u") 'cargo-process-update)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-c") 'cargo-process-repeat)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-f") 'cargo-process-current-test)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-o") 'cargo-process-current-file-tests)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-S-o") 'cargo-process-outdated)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-m") 'cargo-process-fmt)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-k") 'cargo-process-check)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-S-k") 'cargo-process-clippy)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-a") 'cargo-process-add)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-S-d") 'cargo-process-rm)
|
||||
(define-key cargo-minor-mode-map (kbd "C-c C-c C-S-u") 'cargo-process-upgrade)
|
||||
|
||||
(provide 'cargo)
|
||||
;;; cargo.el ends here
|
||||
BIN
elpa/cargo-20190902.754/cargo.elc
Normal file
BIN
elpa/cargo-20190902.754/cargo.elc
Normal file
Binary file not shown.
22
elpa/epl-20180205.2049/epl-autoloads.el
Normal file
22
elpa/epl-20180205.2049/epl-autoloads.el
Normal file
@@ -0,0 +1,22 @@
|
||||
;;; epl-autoloads.el --- automatically extracted autoloads
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(add-to-list 'load-path (directory-file-name
|
||||
(or (file-name-directory #$) (car load-path))))
|
||||
|
||||
|
||||
;;;### (autoloads nil "epl" "epl.el" (0 0 0 0))
|
||||
;;; Generated autoloads from epl.el
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "epl" '("epl-")))
|
||||
|
||||
;;;***
|
||||
|
||||
;; Local Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; no-update-autoloads: t
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
;;; epl-autoloads.el ends here
|
||||
2
elpa/epl-20180205.2049/epl-pkg.el
Normal file
2
elpa/epl-20180205.2049/epl-pkg.el
Normal file
@@ -0,0 +1,2 @@
|
||||
;;; -*- no-byte-compile: t -*-
|
||||
(define-package "epl" "20180205.2049" "Emacs Package Library" '((cl-lib "0.3")) :commit "78ab7a85c08222cd15582a298a364774e3282ce6" :keywords '("convenience") :authors '(("Sebastian Wiesner" . "swiesner@lunaryorn.com")) :maintainer '("Johan Andersson" . "johan.rejeep@gmail.com") :url "http://github.com/cask/epl")
|
||||
711
elpa/epl-20180205.2049/epl.el
Normal file
711
elpa/epl-20180205.2049/epl.el
Normal file
@@ -0,0 +1,711 @@
|
||||
;;; epl.el --- Emacs Package Library -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2013-2015 Sebastian Wiesner
|
||||
;; Copyright (C) 1985-1986, 1992, 1994-1995, 1999-2015 Free Software
|
||||
|
||||
;; Author: Sebastian Wiesner <swiesner@lunaryorn.com>
|
||||
;; Maintainer: Johan Andersson <johan.rejeep@gmail.com>
|
||||
;; Sebastian Wiesner <swiesner@lunaryorn.com>
|
||||
;; Version: 0.10-cvs
|
||||
;; Package-Version: 20180205.2049
|
||||
;; Package-Requires: ((cl-lib "0.3"))
|
||||
;; Keywords: convenience
|
||||
;; URL: http://github.com/cask/epl
|
||||
|
||||
;; This file is NOT part of GNU Emacs.
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; A package management library for Emacs, based on package.el.
|
||||
|
||||
;; The purpose of this library is to wrap all the quirks and hassle of
|
||||
;; package.el into a sane API.
|
||||
|
||||
;; The following functions comprise the public interface of this library:
|
||||
|
||||
;;; Package directory selection
|
||||
|
||||
;; `epl-package-dir' gets the directory of packages.
|
||||
|
||||
;; `epl-default-package-dir' gets the default package directory.
|
||||
|
||||
;; `epl-change-package-dir' changes the directory of packages.
|
||||
|
||||
;;; Package system management
|
||||
|
||||
;; `epl-initialize' initializes the package system and activates all
|
||||
;; packages.
|
||||
|
||||
;; `epl-reset' resets the package system.
|
||||
|
||||
;; `epl-refresh' refreshes all package archives.
|
||||
|
||||
;; `epl-add-archive' adds a new package archive.
|
||||
|
||||
;;; Package objects
|
||||
|
||||
;; Struct `epl-requirement' describes a requirement of a package with `name' and
|
||||
;; `version' slots.
|
||||
|
||||
;; `epl-requirement-version-string' gets a requirement version as string.
|
||||
|
||||
;; Struct `epl-package' describes an installed or installable package with a
|
||||
;; `name' and some internal `description'.
|
||||
|
||||
;; `epl-package-version' gets the version of a package.
|
||||
|
||||
;; `epl-package-version-string' gets the version of a package as string.
|
||||
|
||||
;; `epl-package-summary' gets the summary of a package.
|
||||
|
||||
;; `epl-package-requirements' gets the requirements of a package.
|
||||
|
||||
;; `epl-package-directory' gets the installation directory of a package.
|
||||
|
||||
;; `epl-package-from-buffer' creates a package object for the package contained
|
||||
;; in the current buffer.
|
||||
|
||||
;; `epl-package-from-file' creates a package object for a package file, either
|
||||
;; plain lisp or tarball.
|
||||
|
||||
;; `epl-package-from-descriptor-file' creates a package object for a package
|
||||
;; description (i.e. *-pkg.el) file.
|
||||
|
||||
;;; Package database access
|
||||
|
||||
;; `epl-package-installed-p' determines whether a package is installed, either
|
||||
;; built-in or explicitly installed.
|
||||
|
||||
;; `epl-package-outdated-p' determines whether a package is outdated, that is,
|
||||
;; whether a package with a higher version number is available.
|
||||
|
||||
;; `epl-built-in-packages', `epl-installed-packages', `epl-outdated-packages'
|
||||
;; and `epl-available-packages' get all packages built-in, installed, outdated,
|
||||
;; or available for installation respectively.
|
||||
|
||||
;; `epl-find-built-in-package', `epl-find-installed-packages' and
|
||||
;; `epl-find-available-packages' find built-in, installed and available packages
|
||||
;; by name.
|
||||
|
||||
;; `epl-find-upgrades' finds all upgradable packages.
|
||||
|
||||
;; `epl-built-in-p' return true if package is built-in to Emacs.
|
||||
|
||||
;;; Package operations
|
||||
|
||||
;; `epl-install-file' installs a package file.
|
||||
|
||||
;; `epl-package-install' installs a package.
|
||||
|
||||
;; `epl-package-delete' deletes a package.
|
||||
|
||||
;; `epl-upgrade' upgrades packages.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'cl-lib)
|
||||
(require 'package)
|
||||
|
||||
|
||||
(unless (fboundp #'define-error)
|
||||
;; `define-error' for 24.3 and earlier, copied from subr.el
|
||||
(defun define-error (name message &optional parent)
|
||||
"Define NAME as a new error signal.
|
||||
MESSAGE is a string that will be output to the echo area if such an error
|
||||
is signaled without being caught by a `condition-case'.
|
||||
PARENT is either a signal or a list of signals from which it inherits.
|
||||
Defaults to `error'."
|
||||
(unless parent (setq parent 'error))
|
||||
(let ((conditions
|
||||
(if (consp parent)
|
||||
(apply #'append
|
||||
(mapcar (lambda (parent)
|
||||
(cons parent
|
||||
(or (get parent 'error-conditions)
|
||||
(error "Unknown signal `%s'" parent))))
|
||||
parent))
|
||||
(cons parent (get parent 'error-conditions)))))
|
||||
(put name 'error-conditions
|
||||
(delete-dups (copy-sequence (cons name conditions))))
|
||||
(when message (put name 'error-message message)))))
|
||||
|
||||
(defsubst epl--package-desc-p (package)
|
||||
"Whether PACKAGE is a `package-desc' object.
|
||||
|
||||
Like `package-desc-p', but return nil, if `package-desc-p' is not
|
||||
defined as function."
|
||||
(and (fboundp 'package-desc-p) (package-desc-p package)))
|
||||
|
||||
|
||||
;;; EPL errors
|
||||
(define-error 'epl-error "EPL error")
|
||||
|
||||
(define-error 'epl-invalid-package "Invalid EPL package" 'epl-error)
|
||||
|
||||
(define-error 'epl-invalid-package-file "Invalid EPL package file"
|
||||
'epl-invalid-package)
|
||||
|
||||
|
||||
;;; Package directory
|
||||
(defun epl-package-dir ()
|
||||
"Get the directory of packages."
|
||||
package-user-dir)
|
||||
|
||||
(defun epl-default-package-dir ()
|
||||
"Get the default directory of packages."
|
||||
(eval (car (get 'package-user-dir 'standard-value))))
|
||||
|
||||
(defun epl-change-package-dir (directory)
|
||||
"Change the directory of packages to DIRECTORY."
|
||||
(setq package-user-dir directory)
|
||||
(epl-initialize))
|
||||
|
||||
|
||||
;;; Package system management
|
||||
(defvar epl--load-path-before-initialize nil
|
||||
"Remember the load path for `epl-reset'.")
|
||||
|
||||
(defun epl-initialize (&optional no-activate)
|
||||
"Load Emacs Lisp packages and activate them.
|
||||
|
||||
With NO-ACTIVATE non-nil, do not activate packages."
|
||||
(setq epl--load-path-before-initialize load-path)
|
||||
(package-initialize no-activate))
|
||||
|
||||
(defalias 'epl-refresh 'package-refresh-contents)
|
||||
|
||||
(defun epl-add-archive (name url)
|
||||
"Add a package archive with NAME and URL."
|
||||
(add-to-list 'package-archives (cons name url)))
|
||||
|
||||
(defun epl-reset ()
|
||||
"Reset the package system.
|
||||
|
||||
Clear the list of installed and available packages, the list of
|
||||
package archives and reset the package directory."
|
||||
(setq package-alist nil
|
||||
package-archives nil
|
||||
package-archive-contents nil
|
||||
load-path epl--load-path-before-initialize)
|
||||
(when (boundp 'package-obsolete-alist) ; Legacy package.el
|
||||
(setq package-obsolete-alist nil))
|
||||
(epl-change-package-dir (epl-default-package-dir)))
|
||||
|
||||
|
||||
;;; Package structures
|
||||
(cl-defstruct (epl-requirement
|
||||
(:constructor epl-requirement-create))
|
||||
"Structure describing a requirement.
|
||||
|
||||
Slots:
|
||||
|
||||
`name' The name of the required package, as symbol.
|
||||
|
||||
`version' The version of the required package, as version list."
|
||||
name
|
||||
version)
|
||||
|
||||
(defun epl-requirement-version-string (requirement)
|
||||
"The version of a REQUIREMENT, as string."
|
||||
(package-version-join (epl-requirement-version requirement)))
|
||||
|
||||
(cl-defstruct (epl-package (:constructor epl-package-create))
|
||||
"Structure representing a package.
|
||||
|
||||
Slots:
|
||||
|
||||
`name' The package name, as symbol.
|
||||
|
||||
`description' The package description.
|
||||
|
||||
The format package description varies between package.el
|
||||
variants. For `package-desc' variants, it is simply the
|
||||
corresponding `package-desc' object. For legacy variants, it is
|
||||
a vector `[VERSION REQS DOCSTRING]'.
|
||||
|
||||
Do not access `description' directly, but instead use the
|
||||
`epl-package' accessors."
|
||||
name
|
||||
description)
|
||||
|
||||
(defmacro epl-package-as-description (var &rest body)
|
||||
"Cast VAR to a package description in BODY.
|
||||
|
||||
VAR is a symbol, bound to an `epl-package' object. This macro
|
||||
casts this object to the `description' object, and binds the
|
||||
description to VAR in BODY."
|
||||
(declare (indent 1))
|
||||
(unless (symbolp var)
|
||||
(signal 'wrong-type-argument (list #'symbolp var)))
|
||||
`(if (epl-package-p ,var)
|
||||
(let ((,var (epl-package-description ,var)))
|
||||
,@body)
|
||||
(signal 'wrong-type-argument (list #'epl-package-p ,var))))
|
||||
|
||||
(defsubst epl-package--package-desc-p (package)
|
||||
"Whether the description of PACKAGE is a `package-desc'."
|
||||
(epl--package-desc-p (epl-package-description package)))
|
||||
|
||||
(defun epl-package-version (package)
|
||||
"Get the version of PACKAGE, as version list."
|
||||
(epl-package-as-description package
|
||||
(cond
|
||||
((fboundp 'package-desc-version) (package-desc-version package))
|
||||
;; Legacy
|
||||
((fboundp 'package-desc-vers)
|
||||
(let ((version (package-desc-vers package)))
|
||||
(if (listp version) version (version-to-list version))))
|
||||
(:else (error "Cannot get version from %S" package)))))
|
||||
|
||||
(defun epl-package-version-string (package)
|
||||
"Get the version from a PACKAGE, as string."
|
||||
(package-version-join (epl-package-version package)))
|
||||
|
||||
(defun epl-package-summary (package)
|
||||
"Get the summary of PACKAGE, as string."
|
||||
(epl-package-as-description package
|
||||
(cond
|
||||
((fboundp 'package-desc-summary) (package-desc-summary package))
|
||||
((fboundp 'package-desc-doc) (package-desc-doc package)) ; Legacy
|
||||
(:else (error "Cannot get summary from %S" package)))))
|
||||
|
||||
(defsubst epl-requirement--from-req (req)
|
||||
"Create a `epl-requirement' from a `package-desc' REQ."
|
||||
(let ((version (cadr req)))
|
||||
(epl-requirement-create :name (car req)
|
||||
:version (if (listp version) version
|
||||
(version-to-list version)))))
|
||||
|
||||
(defun epl-package-requirements (package)
|
||||
"Get the requirements of PACKAGE.
|
||||
|
||||
The requirements are a list of `epl-requirement' objects."
|
||||
(epl-package-as-description package
|
||||
(mapcar #'epl-requirement--from-req (package-desc-reqs package))))
|
||||
|
||||
(defun epl-package-directory (package)
|
||||
"Get the directory PACKAGE is installed to.
|
||||
|
||||
Return the absolute path of the installation directory of
|
||||
PACKAGE, or nil, if PACKAGE is not installed."
|
||||
(cond
|
||||
((fboundp 'package-desc-dir)
|
||||
(package-desc-dir (epl-package-description package)))
|
||||
((fboundp 'package--dir)
|
||||
(package--dir (symbol-name (epl-package-name package))
|
||||
(epl-package-version-string package)))
|
||||
(:else (error "Cannot get package directory from %S" package))))
|
||||
|
||||
(defun epl-package-->= (pkg1 pkg2)
|
||||
"Determine whether PKG1 is before PKG2 by version."
|
||||
(not (version-list-< (epl-package-version pkg1)
|
||||
(epl-package-version pkg2))))
|
||||
|
||||
(defun epl-package--from-package-desc (package-desc)
|
||||
"Create an `epl-package' from a PACKAGE-DESC.
|
||||
|
||||
PACKAGE-DESC is a `package-desc' object, from recent package.el
|
||||
variants."
|
||||
(if (and (fboundp 'package-desc-name)
|
||||
(epl--package-desc-p package-desc))
|
||||
(epl-package-create :name (package-desc-name package-desc)
|
||||
:description package-desc)
|
||||
(signal 'wrong-type-argument (list 'epl--package-desc-p package-desc))))
|
||||
|
||||
(defun epl-package--parse-info (info)
|
||||
"Parse a package.el INFO."
|
||||
(if (epl--package-desc-p info)
|
||||
(epl-package--from-package-desc info)
|
||||
;; For legacy package.el, info is a vector [NAME REQUIRES DESCRIPTION
|
||||
;; VERSION COMMENTARY]. We need to re-shape this vector into the
|
||||
;; `package-alist' format [VERSION REQUIRES DESCRIPTION] to attach it to the
|
||||
;; new `epl-package'.
|
||||
(let ((name (intern (aref info 0)))
|
||||
(info (vector (aref info 3) (aref info 1) (aref info 2))))
|
||||
(epl-package-create :name name :description info))))
|
||||
|
||||
(defun epl-package-from-buffer (&optional buffer)
|
||||
"Create an `epl-package' object from BUFFER.
|
||||
|
||||
BUFFER defaults to the current buffer.
|
||||
|
||||
Signal `epl-invalid-package' if the buffer does not contain a
|
||||
valid package file."
|
||||
(let ((info (with-current-buffer (or buffer (current-buffer))
|
||||
(condition-case err
|
||||
(package-buffer-info)
|
||||
(error (signal 'epl-invalid-package (cdr err)))))))
|
||||
(epl-package--parse-info info)))
|
||||
|
||||
(defun epl-package-from-lisp-file (file-name)
|
||||
"Parse the package headers the file at FILE-NAME.
|
||||
|
||||
Return an `epl-package' object with the header metadata."
|
||||
(with-temp-buffer
|
||||
(insert-file-contents file-name)
|
||||
(condition-case err
|
||||
(epl-package-from-buffer (current-buffer))
|
||||
;; Attach file names to invalid package errors
|
||||
(epl-invalid-package
|
||||
(signal 'epl-invalid-package-file (cons file-name (cdr err))))
|
||||
;; Forward other errors
|
||||
(error (signal (car err) (cdr err))))))
|
||||
|
||||
(defun epl-package-from-tar-file (file-name)
|
||||
"Parse the package tarball at FILE-NAME.
|
||||
|
||||
Return a `epl-package' object with the meta data of the tarball
|
||||
package in FILE-NAME."
|
||||
(condition-case nil
|
||||
;; In legacy package.el, `package-tar-file-info' takes the name of the tar
|
||||
;; file to parse as argument. In modern package.el, it has no arguments
|
||||
;; and works on the current buffer. Hence, we just try to call the legacy
|
||||
;; version, and if that fails because of a mismatch between formal and
|
||||
;; actual arguments, we use the modern approach. To avoid spurious
|
||||
;; signature warnings by the byte compiler, we suppress warnings when
|
||||
;; calling the function.
|
||||
(epl-package--parse-info (with-no-warnings
|
||||
(package-tar-file-info file-name)))
|
||||
(wrong-number-of-arguments
|
||||
(with-temp-buffer
|
||||
(insert-file-contents-literally file-name)
|
||||
;; Switch to `tar-mode' to enable extraction of the file. Modern
|
||||
;; `package-tar-file-info' relies on `tar-mode', and signals an error if
|
||||
;; called in a buffer with a different mode.
|
||||
(tar-mode)
|
||||
(epl-package--parse-info (with-no-warnings
|
||||
(package-tar-file-info)))))))
|
||||
|
||||
(defun epl-package-from-file (file-name)
|
||||
"Parse the package at FILE-NAME.
|
||||
|
||||
Return an `epl-package' object with the meta data of the package
|
||||
at FILE-NAME."
|
||||
(if (string-match-p (rx ".tar" string-end) file-name)
|
||||
(epl-package-from-tar-file file-name)
|
||||
(epl-package-from-lisp-file file-name)))
|
||||
|
||||
(defun epl-package--parse-descriptor-requirement (requirement)
|
||||
"Parse a REQUIREMENT in a package descriptor."
|
||||
;; This function is only called on legacy package.el. On package-desc
|
||||
;; package.el, we just let package.el do the work.
|
||||
(cl-destructuring-bind (name version-string) requirement
|
||||
(list name (version-to-list version-string))))
|
||||
|
||||
(defun epl-package-from-descriptor-file (descriptor-file)
|
||||
"Load a `epl-package' from a package DESCRIPTOR-FILE.
|
||||
|
||||
A package descriptor is a file defining a new package. Its name
|
||||
typically ends with -pkg.el."
|
||||
(with-temp-buffer
|
||||
(insert-file-contents descriptor-file)
|
||||
(goto-char (point-min))
|
||||
(let ((sexp (read (current-buffer))))
|
||||
(unless (eq (car sexp) 'define-package)
|
||||
(error "%S is no valid package descriptor" descriptor-file))
|
||||
(if (and (fboundp 'package-desc-from-define)
|
||||
(fboundp 'package-desc-name))
|
||||
;; In Emacs snapshot, we can conveniently call a function to parse the
|
||||
;; descriptor
|
||||
(let ((desc (apply #'package-desc-from-define (cdr sexp))))
|
||||
(epl-package-create :name (package-desc-name desc)
|
||||
:description desc))
|
||||
;; In legacy package.el, we must manually deconstruct the descriptor,
|
||||
;; because the load function has eval's the descriptor and has a lot of
|
||||
;; global side-effects.
|
||||
(cl-destructuring-bind
|
||||
(name version-string summary requirements) (cdr sexp)
|
||||
(epl-package-create
|
||||
:name (intern name)
|
||||
:description
|
||||
(vector (version-to-list version-string)
|
||||
(mapcar #'epl-package--parse-descriptor-requirement
|
||||
;; Strip the leading `quote' from the package list
|
||||
(cadr requirements))
|
||||
summary)))))))
|
||||
|
||||
|
||||
;;; Package database access
|
||||
(defun epl-package-installed-p (package &optional min-version)
|
||||
"Determine whether a PACKAGE, of MIN-VERSION or newer, is installed.
|
||||
|
||||
PACKAGE is either a package name as symbol, or a package object.
|
||||
When a explicit MIN-VERSION is provided it overwrites the version of the PACKAGE object."
|
||||
(let ((name (if (epl-package-p package)
|
||||
(epl-package-name package)
|
||||
package))
|
||||
(min-version (or min-version (and (epl-package-p package)
|
||||
(epl-package-version package)))))
|
||||
(package-installed-p name min-version)))
|
||||
|
||||
(defun epl--parse-built-in-entry (entry)
|
||||
"Parse an ENTRY from the list of built-in packages.
|
||||
|
||||
Return the corresponding `epl-package' object."
|
||||
(if (fboundp 'package--from-builtin)
|
||||
;; In package-desc package.el, convert the built-in package to a
|
||||
;; `package-desc' and convert that to an `epl-package'
|
||||
(epl-package--from-package-desc (package--from-builtin entry))
|
||||
(epl-package-create :name (car entry) :description (cdr entry))))
|
||||
|
||||
(defun epl-built-in-packages ()
|
||||
"Get all built-in packages.
|
||||
|
||||
Return a list of `epl-package' objects."
|
||||
;; This looks mighty strange, but it's the only way to force package.el to
|
||||
;; build the list of built-in packages. Without this, `package--builtins'
|
||||
;; might be empty.
|
||||
(package-built-in-p 'foo)
|
||||
(mapcar #'epl--parse-built-in-entry package--builtins))
|
||||
|
||||
(defun epl-find-built-in-package (name)
|
||||
"Find a built-in package with NAME.
|
||||
|
||||
NAME is a package name, as symbol.
|
||||
|
||||
Return the built-in package as `epl-package' object, or nil if
|
||||
there is no built-in package with NAME."
|
||||
(when (package-built-in-p name)
|
||||
;; We must call `package-built-in-p' *before* inspecting
|
||||
;; `package--builtins', because otherwise `package--builtins' might be
|
||||
;; empty.
|
||||
(epl--parse-built-in-entry (assq name package--builtins))))
|
||||
|
||||
(defun epl-package-outdated-p (package)
|
||||
"Determine whether a PACKAGE is outdated.
|
||||
|
||||
A package is outdated, if there is an available package with a
|
||||
higher version.
|
||||
|
||||
PACKAGE is either a package name as symbol, or a package object.
|
||||
In the former case, test the installed or built-in package with
|
||||
the highest version number, in the later case, test the package
|
||||
object itself.
|
||||
|
||||
Return t, if the package is outdated, or nil otherwise."
|
||||
(let* ((package (if (epl-package-p package)
|
||||
package
|
||||
(or (car (epl-find-installed-packages package))
|
||||
(epl-find-built-in-package package))))
|
||||
(available (car (epl-find-available-packages
|
||||
(epl-package-name package)))))
|
||||
(and package available (version-list-< (epl-package-version package)
|
||||
(epl-package-version available)))))
|
||||
|
||||
(defun epl--parse-package-list-entry (entry)
|
||||
"Parse a list of packages from ENTRY.
|
||||
|
||||
ENTRY is a single entry in a package list, e.g. `package-alist',
|
||||
`package-archive-contents', etc. Typically it is a cons cell,
|
||||
but the exact format varies between package.el versions. This
|
||||
function tries to parse all known variants.
|
||||
|
||||
Return a list of `epl-package' objects parsed from ENTRY."
|
||||
(let ((descriptions (cdr entry)))
|
||||
(cond
|
||||
((listp descriptions)
|
||||
(sort (mapcar #'epl-package--from-package-desc descriptions)
|
||||
#'epl-package-->=))
|
||||
;; Legacy package.el has just a single package in an entry, which is a
|
||||
;; standard description vector
|
||||
((vectorp descriptions)
|
||||
(list (epl-package-create :name (car entry)
|
||||
:description descriptions)))
|
||||
(:else (error "Cannot parse entry %S" entry)))))
|
||||
|
||||
(defun epl-installed-packages ()
|
||||
"Get all installed packages.
|
||||
|
||||
Return a list of package objects."
|
||||
(apply #'append (mapcar #'epl--parse-package-list-entry package-alist)))
|
||||
|
||||
(defsubst epl--filter-outdated-packages (packages)
|
||||
"Filter outdated packages from PACKAGES."
|
||||
(let (res)
|
||||
(dolist (package packages)
|
||||
(when (epl-package-outdated-p package)
|
||||
(push package res)))
|
||||
(nreverse res)))
|
||||
|
||||
(defun epl-outdated-packages ()
|
||||
"Get all outdated packages, as in `epl-package-outdated-p'.
|
||||
|
||||
Return a list of package objects."
|
||||
(epl--filter-outdated-packages (epl-installed-packages)))
|
||||
|
||||
(defsubst epl--find-package-in-list (name list)
|
||||
"Find a package by NAME in a package LIST.
|
||||
|
||||
Return a list of corresponding `epl-package' objects."
|
||||
(let ((entry (assq name list)))
|
||||
(when entry
|
||||
(epl--parse-package-list-entry entry))))
|
||||
|
||||
(defun epl-find-installed-package (name)
|
||||
"Find the latest installed package by NAME.
|
||||
|
||||
NAME is a package name, as symbol.
|
||||
|
||||
Return the installed package with the highest version number as
|
||||
`epl-package' object, or nil, if no package with NAME is
|
||||
installed."
|
||||
(car (epl-find-installed-packages name)))
|
||||
(make-obsolete 'epl-find-installed-package 'epl-find-installed-packages "0.7")
|
||||
|
||||
(defun epl-find-installed-packages (name)
|
||||
"Find all installed packages by NAME.
|
||||
|
||||
NAME is a package name, as symbol.
|
||||
|
||||
Return a list of all installed packages with NAME, sorted by
|
||||
version number in descending order. Return nil, if there are no
|
||||
packages with NAME."
|
||||
(epl--find-package-in-list name package-alist))
|
||||
|
||||
(defun epl-available-packages ()
|
||||
"Get all packages available for installation.
|
||||
|
||||
Return a list of package objects."
|
||||
(apply #'append (mapcar #'epl--parse-package-list-entry
|
||||
package-archive-contents)))
|
||||
|
||||
(defun epl-find-available-packages (name)
|
||||
"Find available packages for NAME.
|
||||
|
||||
NAME is a package name, as symbol.
|
||||
|
||||
Return a list of available packages for NAME, sorted by version
|
||||
number in descending order. Return nil, if there are no packages
|
||||
for NAME."
|
||||
(epl--find-package-in-list name package-archive-contents))
|
||||
|
||||
(cl-defstruct (epl-upgrade
|
||||
(:constructor epl-upgrade-create))
|
||||
"Structure describing an upgradable package.
|
||||
Slots:
|
||||
|
||||
`installed' The installed package
|
||||
|
||||
`available' The package available for installation."
|
||||
installed
|
||||
available)
|
||||
|
||||
(defun epl-find-upgrades (&optional packages)
|
||||
"Find all upgradable PACKAGES.
|
||||
|
||||
PACKAGES is a list of package objects to upgrade, defaulting to
|
||||
all installed packages.
|
||||
|
||||
Return a list of `epl-upgrade' objects describing all upgradable
|
||||
packages."
|
||||
(let ((packages (or packages (epl-installed-packages)))
|
||||
upgrades)
|
||||
(dolist (pkg packages)
|
||||
(let* ((version (epl-package-version pkg))
|
||||
(name (epl-package-name pkg))
|
||||
;; Find the latest available package for NAME
|
||||
(available-pkg (car (epl-find-available-packages name)))
|
||||
(available-version (when available-pkg
|
||||
(epl-package-version available-pkg))))
|
||||
(when (and available-version (version-list-< version available-version))
|
||||
(push (epl-upgrade-create :installed pkg
|
||||
:available available-pkg)
|
||||
upgrades))))
|
||||
(nreverse upgrades)))
|
||||
|
||||
(defalias 'epl-built-in-p 'package-built-in-p)
|
||||
|
||||
|
||||
;;; Package operations
|
||||
|
||||
(defun epl-install-file (file)
|
||||
"Install a package from FILE, like `package-install-file'."
|
||||
(interactive (advice-eval-interactive-spec
|
||||
(cadr (interactive-form #'package-install-file))))
|
||||
(apply #'package-install-file (list file))
|
||||
(let ((package (epl-package-from-file file)))
|
||||
(unless (epl-package--package-desc-p package)
|
||||
(epl--kill-autoload-buffer package))))
|
||||
|
||||
(defun epl--kill-autoload-buffer (package)
|
||||
"Kill the buffer associated with autoloads for PACKAGE."
|
||||
(let* ((auto-name (format "%s-autoloads.el" (epl-package-name package)))
|
||||
(generated-autoload-file (expand-file-name auto-name (epl-package-directory package)))
|
||||
(buf (find-buffer-visiting generated-autoload-file)))
|
||||
(when buf (kill-buffer buf))))
|
||||
|
||||
(defun epl-package-install (package &optional force)
|
||||
"Install a PACKAGE.
|
||||
|
||||
PACKAGE is a `epl-package' object. If FORCE is given and
|
||||
non-nil, install PACKAGE, even if it is already installed."
|
||||
(when (or force (not (epl-package-installed-p package)))
|
||||
(if (epl-package--package-desc-p package)
|
||||
(package-install (epl-package-description package))
|
||||
;; The legacy API installs by name. We have no control over versioning,
|
||||
;; etc.
|
||||
(package-install (epl-package-name package))
|
||||
(epl--kill-autoload-buffer package))))
|
||||
|
||||
(defun epl-package-delete (package)
|
||||
"Delete a PACKAGE.
|
||||
|
||||
PACKAGE is a `epl-package' object to delete."
|
||||
;; package-delete allows for packages being trashed instead of fully deleted.
|
||||
;; Let's prevent his silly behavior
|
||||
(let ((delete-by-moving-to-trash nil))
|
||||
;; The byte compiler will warn us that we are calling `package-delete' with
|
||||
;; the wrong number of arguments, since it can't infer that we guarantee to
|
||||
;; always call the correct version. Thus we suppress all warnings when
|
||||
;; calling `package-delete'. I wish there was a more granular way to
|
||||
;; disable just that specific warning, but it is what it is.
|
||||
(if (epl-package--package-desc-p package)
|
||||
(with-no-warnings
|
||||
(package-delete (epl-package-description package)))
|
||||
;; The legacy API deletes by name (as string!) and version instead by
|
||||
;; descriptor. Hence `package-delete' takes two arguments. For some
|
||||
;; insane reason, the arguments are strings here!
|
||||
(let ((name (symbol-name (epl-package-name package)))
|
||||
(version (epl-package-version-string package)))
|
||||
(with-no-warnings
|
||||
(package-delete name version))
|
||||
;; Legacy package.el does not remove the deleted package
|
||||
;; from the `package-alist', so we do it manually here.
|
||||
(let ((pkg (assq (epl-package-name package) package-alist)))
|
||||
(when pkg
|
||||
(setq package-alist (delq pkg package-alist))))))))
|
||||
|
||||
(defun epl-upgrade (&optional packages preserve-obsolete)
|
||||
"Upgrade PACKAGES.
|
||||
|
||||
PACKAGES is a list of package objects to upgrade, defaulting to
|
||||
all installed packages.
|
||||
|
||||
The old versions of the updated packages are deleted, unless
|
||||
PRESERVE-OBSOLETE is non-nil.
|
||||
|
||||
Return a list of all performed upgrades, as a list of
|
||||
`epl-upgrade' objects."
|
||||
(let ((upgrades (epl-find-upgrades packages)))
|
||||
(dolist (upgrade upgrades)
|
||||
(epl-package-install (epl-upgrade-available upgrade) 'force)
|
||||
(unless preserve-obsolete
|
||||
(epl-package-delete (epl-upgrade-installed upgrade))))
|
||||
upgrades))
|
||||
|
||||
(provide 'epl)
|
||||
|
||||
;;; epl.el ends here
|
||||
BIN
elpa/epl-20180205.2049/epl.elc
Normal file
BIN
elpa/epl-20180205.2049/epl.elc
Normal file
Binary file not shown.
BIN
elpa/gnupg/pubring.kbx
Normal file
BIN
elpa/gnupg/pubring.kbx
Normal file
Binary file not shown.
BIN
elpa/gnupg/pubring.kbx~
Normal file
BIN
elpa/gnupg/pubring.kbx~
Normal file
Binary file not shown.
BIN
elpa/gnupg/trustdb.gpg
Normal file
BIN
elpa/gnupg/trustdb.gpg
Normal file
Binary file not shown.
219
elpa/helm-20191004.1946/emacs-helm.sh
Executable file
219
elpa/helm-20191004.1946/emacs-helm.sh
Executable file
@@ -0,0 +1,219 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
|
||||
## Copyright (C) 2012 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify
|
||||
## it under the terms of the GNU General Public License as published by
|
||||
## the Free Software Foundation, either version 3 of the License, or
|
||||
## (at your option) any later version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful,
|
||||
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
## GNU General Public License for more details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License
|
||||
## along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
## Commentary:
|
||||
# Preconfigured `emacs -Q' with a basic Helm configuration.
|
||||
|
||||
|
||||
# If TEMP env var exists, use it, otherwise declare it.
|
||||
test -z "$TEMP" && TEMP="/tmp"
|
||||
|
||||
CONF_FILE="$TEMP/helm-cfg.el"
|
||||
EMACS=emacs
|
||||
TOOLBARS=-1
|
||||
LOAD_PACKAGES=
|
||||
|
||||
usage () {
|
||||
cat >&1 <<EOF
|
||||
Usage: ${0##*/} [-P PATH] [--toolbars] [--load-packages pkgs] [-h] [EMACS-OPTIONS-OR-FILENAME]
|
||||
|
||||
-P --path Specify path to emacs
|
||||
-B --toolbars Display Menu bar, scroll bar etc...
|
||||
--load-packages Load specified M/Elpa packages (separate with ",")
|
||||
-h Display this help and exit
|
||||
|
||||
Any other Emacs options or filename must come after.
|
||||
|
||||
Emacs options:
|
||||
|
||||
Initialization options:
|
||||
|
||||
--chdir DIR change to directory DIR
|
||||
--daemon, --bg-daemon[=NAME] start a (named) server in the background
|
||||
--fg-daemon[=NAME] start a (named) server in the foreground
|
||||
--debug-init enable Emacs Lisp debugger for init file
|
||||
--display, -d DISPLAY use X server DISPLAY
|
||||
--no-build-details do not add build details such as time stamps
|
||||
--no-loadup, -nl do not load loadup.el into bare Emacs
|
||||
--no-site-file do not load site-start.el
|
||||
--no-x-resources do not load X resources
|
||||
--no-window-system, -nw do not communicate with X, ignoring $DISPLAY
|
||||
--script FILE run FILE as an Emacs Lisp script
|
||||
--terminal, -t DEVICE use DEVICE for terminal I/O
|
||||
|
||||
Action options:
|
||||
|
||||
FILE visit FILE
|
||||
+LINE go to line LINE in next FILE
|
||||
+LINE:COLUMN go to line LINE, column COLUMN, in next FILE
|
||||
--directory, -L DIR prepend DIR to load-path (with :DIR, append DIR)
|
||||
--file FILE visit FILE
|
||||
--find-file FILE visit FILE
|
||||
--funcall, -f FUNC call Emacs Lisp function FUNC with no arguments
|
||||
--insert FILE insert contents of FILE into current buffer
|
||||
--load, -l FILE load Emacs Lisp FILE using the load function
|
||||
--visit FILE visit FILE
|
||||
|
||||
Display options:
|
||||
|
||||
--background-color, -bg COLOR window background color
|
||||
--basic-display, -D disable many display features;
|
||||
used for debugging Emacs
|
||||
--border-color, -bd COLOR main border color
|
||||
--border-width, -bw WIDTH width of main border
|
||||
--color, --color=MODE override color mode for character terminals;
|
||||
MODE defaults to \`auto', and
|
||||
can also be \`never', \`always',
|
||||
or a mode name like \`ansi8'
|
||||
--cursor-color, -cr COLOR color of the Emacs cursor indicating point
|
||||
--font, -fn FONT default font; must be fixed-width
|
||||
--foreground-color, -fg COLOR window foreground color
|
||||
--fullheight, -fh make the first frame high as the screen
|
||||
--fullscreen, -fs make the first frame fullscreen
|
||||
--fullwidth, -fw make the first frame wide as the screen
|
||||
--maximized, -mm make the first frame maximized
|
||||
--geometry, -g GEOMETRY window geometry
|
||||
--iconic start Emacs in iconified state
|
||||
--internal-border, -ib WIDTH width between text and main border
|
||||
--line-spacing, -lsp PIXELS additional space to put between lines
|
||||
--mouse-color, -ms COLOR mouse cursor color in Emacs window
|
||||
--name NAME title for initial Emacs frame
|
||||
--reverse-video, -r, -rv switch foreground and background
|
||||
--title, -T TITLE title for initial Emacs frame
|
||||
--vertical-scroll-bars, -vb enable vertical scroll bars
|
||||
--xrm XRESOURCES set additional X resources
|
||||
--parent-id XID set parent window
|
||||
--help display this help and exit
|
||||
--version output version information and exit
|
||||
|
||||
You can generally also specify long option names with a single -; for
|
||||
example, -batch as well as --batch. You can use any unambiguous
|
||||
abbreviation for a --option.
|
||||
|
||||
Various environment variables and window system resources also affect
|
||||
the operation of Emacs. See the main documentation.
|
||||
EOF
|
||||
}
|
||||
|
||||
for a in "$@"; do
|
||||
case $a in
|
||||
--path | -P)
|
||||
shift 1
|
||||
EMACS="$1"
|
||||
shift 1
|
||||
;;
|
||||
--toolbars | -B)
|
||||
shift 1
|
||||
TOOLBARS=1
|
||||
;;
|
||||
--load-packages)
|
||||
shift 1
|
||||
LOAD_PACKAGES="$1"
|
||||
shift 1
|
||||
;;
|
||||
-h)
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
LOAD_PATH=$($EMACS -q -batch --eval "(prin1 load-path)")
|
||||
|
||||
cd "${0%/*}" || exit 1
|
||||
|
||||
# Check if autoload file exists.
|
||||
# It may be in a different directory if emacs-helm.sh is a symlink.
|
||||
TRUENAME=$(find . -samefile "$0" -printf "%l")
|
||||
if [ ! -z "$TRUENAME" ]; then
|
||||
AUTO_FILE="${TRUENAME%/*}/helm-autoloads.el"
|
||||
else
|
||||
AUTO_FILE="helm-autoloads.el"
|
||||
fi
|
||||
if [ ! -e "$AUTO_FILE" ]; then
|
||||
echo No autoloads found, please run make first to generate autoload file
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
cat > $CONF_FILE <<EOF
|
||||
(setq initial-scratch-message (concat initial-scratch-message
|
||||
";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\n\
|
||||
;; This Emacs is Powered by \`HELM' using\\n\
|
||||
;; emacs program \"$EMACS\".\\n\
|
||||
;; This is a minimal \`helm' configuration to discover \`helm' or debug it.\\n\
|
||||
;; You can retrieve this minimal configuration in \"$CONF_FILE\".\\n\
|
||||
;;
|
||||
;; Some original Emacs commands are replaced by their \`helm' counterparts:\\n\\n\
|
||||
;; - \`find-file'(C-x C-f) =>\`helm-find-files'\\n\
|
||||
;; - \`occur'(M-s o) =>\`helm-occur'\\n\
|
||||
;; - \`list-buffers'(C-x C-b) =>\`helm-buffers-list'\\n\
|
||||
;; - \`completion-at-point'(M-tab) =>\`helm-lisp-completion-at-point'[1]\\n\
|
||||
;; - \`apropos-command'(C-h a) =>\`helm-apropos'\\n\
|
||||
;; - \`dabbrev-expand'(M-/) =>\`helm-dabbrev'\\n\
|
||||
;; - \`execute-extended-command'(M-x) =>\`helm-M-x'\\n\\n
|
||||
;; Some other Emacs commands are \"helmized\" by \`helm-mode'.\\n\
|
||||
;; [1] Coming with emacs-24.4, \`completion-at-point' is \"helmized\" by \`helm-mode'\\n\
|
||||
|
||||
;; which provides Helm completion in many places like \`shell-mode'.\\n\
|
||||
;; Find context help for most Helm commands with \`C-h m'.\\n\
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\n\\n"))
|
||||
|
||||
(setq load-path (quote $LOAD_PATH))
|
||||
(require 'package)
|
||||
;; User may be using a non standard \`package-user-dir'.
|
||||
;; Modify \`package-directory-list' instead of \`package-user-dir'
|
||||
;; in case the user starts Helm from a non-ELPA installation.
|
||||
(unless (file-equal-p package-user-dir "~/.emacs.d/elpa")
|
||||
(add-to-list 'package-directory-list (directory-file-name
|
||||
(file-name-directory
|
||||
(directory-file-name default-directory)))))
|
||||
|
||||
(let* ((str-lst "$LOAD_PACKAGES")
|
||||
(load-packages (and str-lst
|
||||
(not (string= str-lst ""))
|
||||
(split-string str-lst ","))))
|
||||
(setq package-load-list
|
||||
(if (equal load-packages '("all"))
|
||||
'(all)
|
||||
(append '((helm-core t) (helm t) (async t) (popup t))
|
||||
(mapcar (lambda (p) (list (intern p) t)) load-packages)))))
|
||||
|
||||
(package-initialize)
|
||||
(add-to-list 'load-path (file-name-directory (file-truename "$0")))
|
||||
(unless (> $TOOLBARS 0)
|
||||
(setq default-frame-alist '((vertical-scroll-bars . nil)
|
||||
(tool-bar-lines . 0)
|
||||
(menu-bar-lines . 0)
|
||||
(fullscreen . nil))))
|
||||
(blink-cursor-mode -1)
|
||||
(require 'helm-config)
|
||||
(helm-mode 1)
|
||||
(define-key global-map [remap find-file] 'helm-find-files)
|
||||
(define-key global-map [remap occur] 'helm-occur)
|
||||
(define-key global-map [remap list-buffers] 'helm-buffers-list)
|
||||
(define-key global-map [remap dabbrev-expand] 'helm-dabbrev)
|
||||
(define-key global-map [remap execute-extended-command] 'helm-M-x)
|
||||
(define-key global-map [remap apropos-command] 'helm-apropos)
|
||||
(unless (boundp 'completion-in-region-function)
|
||||
(define-key lisp-interaction-mode-map [remap completion-at-point] 'helm-lisp-completion-at-point)
|
||||
(define-key emacs-lisp-mode-map [remap completion-at-point] 'helm-lisp-completion-at-point))
|
||||
(add-hook 'kill-emacs-hook #'(lambda () (and (file-exists-p "$CONF_FILE") (delete-file "$CONF_FILE"))))
|
||||
EOF
|
||||
|
||||
$EMACS -Q -l "$CONF_FILE" "$@"
|
||||
278
elpa/helm-20191004.1946/helm-adaptive.el
Normal file
278
elpa/helm-20191004.1946/helm-adaptive.el
Normal file
@@ -0,0 +1,278 @@
|
||||
;;; helm-adaptive.el --- Adaptive Sorting of Candidates. -*- lexical-binding: t -*-
|
||||
|
||||
;; Original Author: Tamas Patrovics
|
||||
|
||||
;; Copyright (C) 2007 Tamas Patrovics
|
||||
;; Copyright (C) 2012 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'cl-lib)
|
||||
(require 'helm)
|
||||
|
||||
|
||||
(defgroup helm-adapt nil
|
||||
"Adaptative sorting of candidates for Helm."
|
||||
:group 'helm)
|
||||
|
||||
(defcustom helm-adaptive-history-file
|
||||
"~/.emacs.d/helm-adaptive-history"
|
||||
"Path of file where history information is stored.
|
||||
When nil history is not saved nor restored after emacs restart unless
|
||||
you save/restore `helm-adaptive-history' with something else like
|
||||
psession or desktop."
|
||||
:type 'string
|
||||
:group 'helm-adapt)
|
||||
|
||||
(defcustom helm-adaptive-history-length 50
|
||||
"Maximum number of candidates stored for a source."
|
||||
:type 'number
|
||||
:group 'helm-adapt)
|
||||
|
||||
(defcustom helm-adaptive-sort-by-frequent-recent-usage t
|
||||
"Try to sort on an average of frequent and recent usage when non-nil.
|
||||
|
||||
When nil sort on frequency usage only.
|
||||
|
||||
Only frequency:
|
||||
When candidate have low frequency, you have to hit on it many times to
|
||||
make it going up on top.
|
||||
|
||||
Frequency+recent:
|
||||
Even with a low frequency, candidate go up on top. If a candidate
|
||||
have a high frequency but it is not used since some time, it goes
|
||||
down slowly, but as soon you reuse it it go up on top quickly."
|
||||
:group 'helm-adapt
|
||||
:type 'boolean)
|
||||
|
||||
;; Internal
|
||||
(defvar helm-adaptive-done nil
|
||||
"nil if history information is not yet stored for the current
|
||||
selection.")
|
||||
|
||||
(defvar helm-adaptive-history nil
|
||||
"Contains the stored history information.
|
||||
Format: ((SOURCE-NAME (SELECTED-CANDIDATE (PATTERN . NUMBER-OF-USE) ...) ...) ...)")
|
||||
|
||||
(defconst helm-adaptive-freq-coefficient 5)
|
||||
(defconst helm-adaptive-recent-coefficient 2)
|
||||
|
||||
(defun helm-adaptive-done-reset ()
|
||||
(setq helm-adaptive-done nil))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode helm-adaptive-mode
|
||||
"Toggle adaptive sorting in all sources."
|
||||
:group 'helm-adapt
|
||||
:require 'helm-adaptive
|
||||
:global t
|
||||
(if helm-adaptive-mode
|
||||
(progn
|
||||
(unless helm-adaptive-history
|
||||
(helm-adaptive-maybe-load-history))
|
||||
(add-hook 'kill-emacs-hook 'helm-adaptive-save-history)
|
||||
;; Should run at beginning of `helm-initial-setup'.
|
||||
(add-hook 'helm-before-initialize-hook 'helm-adaptive-done-reset)
|
||||
;; Should run at beginning of `helm-exit-minibuffer'.
|
||||
(add-hook 'helm-before-action-hook 'helm-adaptive-store-selection)
|
||||
;; Should run at beginning of `helm-select-action'.
|
||||
(add-hook 'helm-select-action-hook 'helm-adaptive-store-selection))
|
||||
(helm-adaptive-save-history)
|
||||
(setq helm-adaptive-history nil)
|
||||
(remove-hook 'kill-emacs-hook 'helm-adaptive-save-history)
|
||||
(remove-hook 'helm-before-initialize-hook 'helm-adaptive-done-reset)
|
||||
(remove-hook 'helm-before-action-hook 'helm-adaptive-store-selection)
|
||||
(remove-hook 'helm-select-action-hook 'helm-adaptive-store-selection)))
|
||||
|
||||
(defun helm-adapt-use-adaptive-p (&optional source-name)
|
||||
"Return current source only if it use adaptive history, nil otherwise."
|
||||
(when helm-adaptive-mode
|
||||
(let* ((source (or source-name (helm-get-current-source)))
|
||||
(adapt-source (or (assoc-default 'filtered-candidate-transformer source)
|
||||
(assoc-default 'candidate-transformer source))))
|
||||
(if (listp adapt-source)
|
||||
(and (memq 'helm-adaptive-sort adapt-source) source)
|
||||
(and (eq adapt-source 'helm-adaptive-sort) source)))))
|
||||
|
||||
(defun helm-adaptive-store-selection ()
|
||||
"Store history information for the selected candidate."
|
||||
(unless helm-adaptive-done
|
||||
(setq helm-adaptive-done t)
|
||||
(let ((source (helm-adapt-use-adaptive-p)))
|
||||
(when source
|
||||
(let* ((source-name (assoc-default 'name source))
|
||||
(source-info (or (assoc source-name helm-adaptive-history)
|
||||
(progn
|
||||
(push (list source-name) helm-adaptive-history)
|
||||
(car helm-adaptive-history))))
|
||||
(selection (helm-get-selection nil t))
|
||||
(selection-info (progn
|
||||
(setcdr source-info
|
||||
(cons
|
||||
(let ((found (assoc selection (cdr source-info))))
|
||||
(if (not found)
|
||||
;; new entry
|
||||
(list selection)
|
||||
;; move entry to the beginning of the
|
||||
;; list, so that it doesn't get
|
||||
;; trimmed when the history is
|
||||
;; truncated
|
||||
(setcdr source-info
|
||||
(delete found (cdr source-info)))
|
||||
found))
|
||||
(cdr source-info)))
|
||||
(cadr source-info)))
|
||||
(pattern-info (progn
|
||||
(setcdr selection-info
|
||||
(cons
|
||||
(let ((found (assoc helm-pattern (cdr selection-info))))
|
||||
(if (not found)
|
||||
;; new entry
|
||||
(cons helm-pattern 0)
|
||||
;; move entry to the beginning of the
|
||||
;; list, so if two patterns used the
|
||||
;; same number of times then the one
|
||||
;; used last appears first in the list
|
||||
(setcdr selection-info
|
||||
(delete found (cdr selection-info)))
|
||||
found))
|
||||
(cdr selection-info)))
|
||||
(cadr selection-info)))
|
||||
(timestamp-info (helm-aif (assq 'timestamp (cdr selection-info))
|
||||
it
|
||||
(setcdr selection-info (cons (cons 'timestamp 0) (cdr selection-info)))
|
||||
(cadr selection-info))))
|
||||
;; Increase usage count.
|
||||
(setcdr pattern-info (1+ (cdr pattern-info)))
|
||||
;; Update timestamp.
|
||||
(setcdr timestamp-info (float-time))
|
||||
;; Truncate history if needed.
|
||||
(if (> (length (cdr selection-info)) helm-adaptive-history-length)
|
||||
(setcdr selection-info
|
||||
(cl-subseq (cdr selection-info) 0 helm-adaptive-history-length))))))))
|
||||
|
||||
(defun helm-adaptive-maybe-load-history ()
|
||||
"Load `helm-adaptive-history-file' which contain `helm-adaptive-history'.
|
||||
Returns nil if `helm-adaptive-history-file' doesn't exist."
|
||||
(when (and helm-adaptive-history-file
|
||||
(file-readable-p helm-adaptive-history-file))
|
||||
(load-file helm-adaptive-history-file)))
|
||||
|
||||
(defun helm-adaptive-save-history (&optional arg)
|
||||
"Save history information to file given by `helm-adaptive-history-file'."
|
||||
(interactive "p")
|
||||
(when helm-adaptive-history-file
|
||||
(with-temp-buffer
|
||||
(insert
|
||||
";; -*- mode: emacs-lisp -*-\n"
|
||||
";; History entries used for helm adaptive display.\n")
|
||||
(let (print-length print-level)
|
||||
(prin1 `(setq helm-adaptive-history ',helm-adaptive-history)
|
||||
(current-buffer)))
|
||||
(insert ?\n)
|
||||
(write-region (point-min) (point-max) helm-adaptive-history-file nil
|
||||
(unless arg 'quiet)))))
|
||||
|
||||
(defun helm-adaptive-sort (candidates source)
|
||||
"Sort the CANDIDATES for SOURCE by usage frequency.
|
||||
This is a filtered candidate transformer you can use with the
|
||||
`filtered-candidate-transformer' attribute."
|
||||
(let* ((source-name (assoc-default 'name source))
|
||||
(source-info (assoc source-name helm-adaptive-history)))
|
||||
(if source-info
|
||||
(let ((usage
|
||||
;; Loop in the SOURCE entry of `helm-adaptive-history'
|
||||
;; and assemble a list containing the (CANDIDATE
|
||||
;; . USAGE-COUNT) pairs.
|
||||
(cl-loop with cf = (if helm-adaptive-sort-by-frequent-recent-usage
|
||||
helm-adaptive-freq-coefficient 1)
|
||||
with cr = helm-adaptive-recent-coefficient
|
||||
for (src-cand . infos) in (cdr source-info)
|
||||
for count-freq = 0
|
||||
for count-rec =
|
||||
(helm-aif (and helm-adaptive-sort-by-frequent-recent-usage
|
||||
(assq 'timestamp infos))
|
||||
(* cr (+ (float-time) (cdr it)))
|
||||
0)
|
||||
do (cl-loop for (pattern . score) in
|
||||
(remove (assq 'timestamp infos) infos)
|
||||
;; If current pattern is equal to
|
||||
;; the previously used one then
|
||||
;; this candidate has priority
|
||||
;; (that's why its count-freq is
|
||||
;; boosted by 10000) and it only
|
||||
;; has to compete with other
|
||||
;; candidates which were also
|
||||
;; selected with the same pattern.
|
||||
if (equal pattern helm-pattern)
|
||||
return (setq count-freq (+ 10000 score))
|
||||
else do (cl-incf count-freq score))
|
||||
and collect (cons src-cand (+ (* count-freq cf) count-rec))
|
||||
into results
|
||||
;; Sort the list in descending order, so
|
||||
;; candidates with highest priority come
|
||||
;; first.
|
||||
finally return
|
||||
(sort results (lambda (first second)
|
||||
(> (cdr first) (cdr second)))))))
|
||||
(if (consp usage)
|
||||
;; Put those candidates first which have the highest usage count.
|
||||
(cl-loop for (cand . _freq) in usage
|
||||
for info = (or (and (assq 'multiline source)
|
||||
(replace-regexp-in-string
|
||||
"\n\\'" "" cand))
|
||||
cand)
|
||||
when (cl-member info candidates
|
||||
:test 'helm-adaptive-compare)
|
||||
collect (car it) into sorted
|
||||
and do (setq candidates
|
||||
(cl-remove info candidates
|
||||
:test 'helm-adaptive-compare))
|
||||
finally return (append sorted candidates))
|
||||
(message "Your `%s' is maybe corrupted or too old, \
|
||||
you should reinitialize it with `helm-reset-adaptive-history'"
|
||||
helm-adaptive-history-file)
|
||||
(sit-for 1)
|
||||
candidates))
|
||||
;; if there is no information stored for this source then do nothing
|
||||
candidates)))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-reset-adaptive-history ()
|
||||
"Delete all `helm-adaptive-history' and his file.
|
||||
Useful when you have a old or corrupted `helm-adaptive-history-file'."
|
||||
(interactive)
|
||||
(when (y-or-n-p "Really delete all your `helm-adaptive-history'? ")
|
||||
(setq helm-adaptive-history nil)
|
||||
(delete-file helm-adaptive-history-file)))
|
||||
|
||||
(defun helm-adaptive-compare (x y)
|
||||
"Compare display parts if some of candidates X and Y.
|
||||
|
||||
Arguments X and Y are cons cell in (DISPLAY . REAL) format or atoms."
|
||||
(equal (if (listp x) (car x) x)
|
||||
(if (listp y) (car y) y)))
|
||||
|
||||
|
||||
(provide 'helm-adaptive)
|
||||
|
||||
;; Local Variables:
|
||||
;; byte-compile-warnings: (not obsolete)
|
||||
;; coding: utf-8
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
;;; helm-adaptive.el ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-adaptive.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-adaptive.elc
Normal file
Binary file not shown.
1100
elpa/helm-20191004.1946/helm-autoloads.el
Normal file
1100
elpa/helm-20191004.1946/helm-autoloads.el
Normal file
File diff suppressed because it is too large
Load Diff
737
elpa/helm-20191004.1946/helm-bookmark.el
Normal file
737
elpa/helm-20191004.1946/helm-bookmark.el
Normal file
@@ -0,0 +1,737 @@
|
||||
;;; helm-bookmark.el --- Helm for Emacs regular Bookmarks. -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
(require 'cl-lib)
|
||||
(require 'bookmark)
|
||||
(require 'helm)
|
||||
(require 'helm-lib)
|
||||
(require 'helm-help)
|
||||
(require 'helm-types)
|
||||
(require 'helm-utils)
|
||||
(require 'helm-info)
|
||||
(require 'helm-adaptive)
|
||||
(require 'helm-net)
|
||||
|
||||
(declare-function helm-browse-project "helm-files" (arg))
|
||||
(declare-function addressbook-bookmark-edit "ext:addressbook-bookmark.el" (bookmark))
|
||||
|
||||
(defgroup helm-bookmark nil
|
||||
"Predefined configurations for `helm.el'."
|
||||
:group 'helm)
|
||||
|
||||
(defcustom helm-bookmark-show-location nil
|
||||
"Show location of bookmark on display."
|
||||
:group 'helm-bookmark
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom helm-bookmark-default-filtered-sources
|
||||
(append '(helm-source-bookmark-org
|
||||
helm-source-bookmark-files&dirs
|
||||
helm-source-bookmark-helm-find-files
|
||||
helm-source-bookmark-info
|
||||
helm-source-bookmark-gnus
|
||||
helm-source-bookmark-man
|
||||
helm-source-bookmark-images
|
||||
helm-source-bookmark-w3m)
|
||||
(list 'helm-source-bookmark-uncategorized
|
||||
'helm-source-bookmark-set))
|
||||
"List of sources to use in `helm-filtered-bookmarks'."
|
||||
:group 'helm-bookmark
|
||||
:type '(repeat (choice symbol)))
|
||||
|
||||
|
||||
(defface helm-bookmark-info
|
||||
'((t (:foreground "green")))
|
||||
"Face used for W3m Emacs bookmarks (not w3m bookmarks)."
|
||||
:group 'helm-bookmark)
|
||||
|
||||
(defface helm-bookmark-w3m
|
||||
'((t (:foreground "yellow")))
|
||||
"Face used for W3m Emacs bookmarks (not w3m bookmarks)."
|
||||
:group 'helm-bookmark)
|
||||
|
||||
(defface helm-bookmark-gnus
|
||||
'((t (:foreground "magenta")))
|
||||
"Face used for Gnus bookmarks."
|
||||
:group 'helm-bookmark)
|
||||
|
||||
(defface helm-bookmark-man
|
||||
'((t (:foreground "Orange4")))
|
||||
"Face used for Woman/man bookmarks."
|
||||
:group 'helm-bookmark)
|
||||
|
||||
(defface helm-bookmark-file
|
||||
'((t (:foreground "Deepskyblue2")))
|
||||
"Face used for file bookmarks."
|
||||
:group 'helm-bookmark)
|
||||
|
||||
(defface helm-bookmark-file-not-found
|
||||
'((t (:foreground "Slategray4")))
|
||||
"Face used for file bookmarks."
|
||||
:group 'helm-bookmark)
|
||||
|
||||
(defface helm-bookmark-directory
|
||||
'((t (:inherit helm-ff-directory)))
|
||||
"Face used for file bookmarks."
|
||||
:group 'helm-bookmark)
|
||||
|
||||
(defface helm-bookmark-addressbook
|
||||
'((t (:foreground "tomato")))
|
||||
"Face used for addressbook bookmarks."
|
||||
:group 'helm-bookmark)
|
||||
|
||||
|
||||
(defvar helm-bookmark-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map helm-map)
|
||||
(define-key map (kbd "C-c o") 'helm-bookmark-run-jump-other-window)
|
||||
(define-key map (kbd "C-c C-o") 'helm-bookmark-run-jump-other-frame)
|
||||
(define-key map (kbd "C-d") 'helm-bookmark-run-delete)
|
||||
(define-key map (kbd "C-]") 'helm-bookmark-toggle-filename)
|
||||
(define-key map (kbd "M-e") 'helm-bookmark-run-edit)
|
||||
map)
|
||||
"Generic Keymap for emacs bookmark sources.")
|
||||
|
||||
(defclass helm-source-basic-bookmarks (helm-source-in-buffer helm-type-bookmark)
|
||||
((init :initform (lambda ()
|
||||
(bookmark-maybe-load-default-file)
|
||||
(helm-init-candidates-in-buffer
|
||||
'global
|
||||
(bookmark-all-names))))
|
||||
(filtered-candidate-transformer :initform 'helm-bookmark-transformer)))
|
||||
|
||||
(defvar helm-source-bookmarks
|
||||
(helm-make-source "Bookmarks" 'helm-source-basic-bookmarks)
|
||||
"See (info \"(emacs)Bookmarks\").")
|
||||
|
||||
(defun helm-bookmark-transformer (candidates _source)
|
||||
(cl-loop for i in candidates
|
||||
for loc = (bookmark-location i)
|
||||
for len = (string-width i)
|
||||
for trunc = (if (> len bookmark-bmenu-file-column)
|
||||
(helm-substring i bookmark-bmenu-file-column)
|
||||
i)
|
||||
for sep = (make-string (- (+ bookmark-bmenu-file-column 2)
|
||||
(length trunc))
|
||||
? )
|
||||
if helm-bookmark-show-location
|
||||
collect (cons (concat trunc sep (if (listp loc) (car loc) loc)) i)
|
||||
else collect i))
|
||||
|
||||
(defun helm-bookmark-toggle-filename-1 (_candidate)
|
||||
(let* ((real (helm-get-selection helm-buffer))
|
||||
(trunc (if (> (string-width real) bookmark-bmenu-file-column)
|
||||
(helm-substring real bookmark-bmenu-file-column)
|
||||
real))
|
||||
(loc (bookmark-location real)))
|
||||
(setq helm-bookmark-show-location (not helm-bookmark-show-location))
|
||||
(helm-update (if helm-bookmark-show-location
|
||||
(concat (regexp-quote trunc)
|
||||
" +"
|
||||
(regexp-quote
|
||||
(if (listp loc) (car loc) loc)))
|
||||
(regexp-quote real)))))
|
||||
|
||||
(defun helm-bookmark-toggle-filename ()
|
||||
"Toggle bookmark location visibility."
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-attrset 'toggle-filename
|
||||
'(helm-bookmark-toggle-filename-1 . never-split))
|
||||
(helm-execute-persistent-action 'toggle-filename)))
|
||||
(put 'helm-bookmark-toggle-filename 'helm-only t)
|
||||
|
||||
(defun helm-bookmark-jump (candidate)
|
||||
"Jump to bookmark action."
|
||||
(let ((current-prefix-arg helm-current-prefix-arg)
|
||||
non-essential)
|
||||
(bookmark-jump candidate)))
|
||||
|
||||
(defun helm-bookmark-jump-other-frame (candidate)
|
||||
"Jump to bookmark in other frame action."
|
||||
(let ((current-prefix-arg helm-current-prefix-arg)
|
||||
non-essential)
|
||||
(bookmark-jump candidate 'switch-to-buffer-other-frame)))
|
||||
|
||||
(defun helm-bookmark-jump-other-window (candidate)
|
||||
"Jump to bookmark in other window action."
|
||||
(let (non-essential)
|
||||
(bookmark-jump-other-window candidate)))
|
||||
|
||||
|
||||
;;; bookmark-set
|
||||
;;
|
||||
(defvar helm-source-bookmark-set
|
||||
(helm-build-dummy-source "Set Bookmark"
|
||||
:filtered-candidate-transformer
|
||||
(lambda (_candidates _source)
|
||||
(list (or (and (not (string= helm-pattern ""))
|
||||
helm-pattern)
|
||||
"Enter a bookmark name to record")))
|
||||
:action '(("Set bookmark" . (lambda (candidate)
|
||||
(if (string= helm-pattern "")
|
||||
(message "No bookmark name given for record")
|
||||
(bookmark-set candidate))))))
|
||||
"See (info \"(emacs)Bookmarks\").")
|
||||
|
||||
|
||||
;;; Predicates
|
||||
;;
|
||||
(defconst helm-bookmark--non-file-filename " - no file -"
|
||||
"Name to use for `filename' entry, for non-file bookmarks.")
|
||||
|
||||
(defun helm-bookmark-gnus-bookmark-p (bookmark)
|
||||
"Return non-nil if BOOKMARK is a Gnus bookmark.
|
||||
BOOKMARK is a bookmark name or a bookmark record."
|
||||
(or (eq (bookmark-get-handler bookmark) 'bmkext-jump-gnus)
|
||||
(eq (bookmark-get-handler bookmark) 'gnus-summary-bookmark-jump)
|
||||
(eq (bookmark-get-handler bookmark) 'bookmarkp-jump-gnus)))
|
||||
|
||||
(defun helm-bookmark-w3m-bookmark-p (bookmark)
|
||||
"Return non-nil if BOOKMARK is a W3m bookmark.
|
||||
BOOKMARK is a bookmark name or a bookmark record."
|
||||
(or (eq (bookmark-get-handler bookmark) 'bmkext-jump-w3m)
|
||||
(eq (bookmark-get-handler bookmark) 'bookmark-w3m-bookmark-jump)
|
||||
(eq (bookmark-get-handler bookmark) 'bookmarkp-jump-w3m)))
|
||||
|
||||
(defun helm-bookmark-woman-bookmark-p (bookmark)
|
||||
"Return non-nil if BOOKMARK is a Woman bookmark.
|
||||
BOOKMARK is a bookmark name or a bookmark record."
|
||||
(or (eq (bookmark-get-handler bookmark) 'bmkext-jump-woman)
|
||||
(eq (bookmark-get-handler bookmark) 'woman-bookmark-jump)
|
||||
(eq (bookmark-get-handler bookmark) 'bookmarkp-jump-woman)))
|
||||
|
||||
(defun helm-bookmark-man-bookmark-p (bookmark)
|
||||
"Return non-nil if BOOKMARK is a Man bookmark.
|
||||
BOOKMARK is a bookmark name or a bookmark record."
|
||||
(or (eq (bookmark-get-handler bookmark) 'bmkext-jump-man)
|
||||
(eq (bookmark-get-handler bookmark) 'Man-bookmark-jump)
|
||||
(eq (bookmark-get-handler bookmark) 'bookmarkp-jump-man)))
|
||||
|
||||
(defun helm-bookmark-woman-man-bookmark-p (bookmark)
|
||||
"Return non-nil if BOOKMARK is a Man or Woman bookmark.
|
||||
BOOKMARK is a bookmark name or a bookmark record."
|
||||
(or (helm-bookmark-man-bookmark-p bookmark)
|
||||
(helm-bookmark-woman-bookmark-p bookmark)))
|
||||
|
||||
(defun helm-bookmark-info-bookmark-p (bookmark)
|
||||
"Return non-nil if BOOKMARK is an Info bookmark.
|
||||
BOOKMARK is a bookmark name or a bookmark record."
|
||||
(eq (bookmark-get-handler bookmark) 'Info-bookmark-jump))
|
||||
|
||||
(defun helm-bookmark-image-bookmark-p (bookmark)
|
||||
"Return non-nil if BOOKMARK bookmarks an image file."
|
||||
(if (stringp bookmark)
|
||||
(assq 'image-type (assq bookmark bookmark-alist))
|
||||
(assq 'image-type bookmark)))
|
||||
|
||||
(defun helm-bookmark-file-p (bookmark)
|
||||
"Return non-nil if BOOKMARK bookmarks a file or directory.
|
||||
BOOKMARK is a bookmark name or a bookmark record.
|
||||
This excludes bookmarks of a more specific kind (Info, Gnus, and W3m)."
|
||||
(let* ((filename (bookmark-get-filename bookmark))
|
||||
(isnonfile (equal filename helm-bookmark--non-file-filename)))
|
||||
(and filename (not isnonfile) (not (bookmark-get-handler bookmark)))))
|
||||
|
||||
(defun helm-bookmark-org-file-p (bookmark)
|
||||
(let* ((filename (bookmark-get-filename bookmark)))
|
||||
(or (string-suffix-p ".org" filename t)
|
||||
(string-suffix-p ".org_archive" filename t))))
|
||||
|
||||
(defun helm-bookmark-helm-find-files-p (bookmark)
|
||||
"Return non-nil if BOOKMARK bookmarks a `helm-find-files' session.
|
||||
BOOKMARK is a bookmark name or a bookmark record."
|
||||
(eq (bookmark-get-handler bookmark) 'helm-ff-bookmark-jump))
|
||||
|
||||
(defun helm-bookmark-addressbook-p (bookmark)
|
||||
"Return non--nil if BOOKMARK is a contact recorded with addressbook-bookmark.
|
||||
BOOKMARK is a bookmark name or a bookmark record."
|
||||
(if (listp bookmark)
|
||||
(string= (assoc-default 'type bookmark) "addressbook")
|
||||
(string= (assoc-default
|
||||
'type (assoc bookmark bookmark-alist)) "addressbook")))
|
||||
|
||||
(defun helm-bookmark-uncategorized-bookmark-p (bookmark)
|
||||
"Return non--nil if BOOKMARK match no known category."
|
||||
(cl-loop for pred in '(helm-bookmark-org-file-p
|
||||
helm-bookmark-addressbook-p
|
||||
helm-bookmark-gnus-bookmark-p
|
||||
helm-bookmark-w3m-bookmark-p
|
||||
helm-bookmark-woman-man-bookmark-p
|
||||
helm-bookmark-info-bookmark-p
|
||||
helm-bookmark-image-bookmark-p
|
||||
helm-bookmark-file-p
|
||||
helm-bookmark-helm-find-files-p
|
||||
helm-bookmark-addressbook-p)
|
||||
never (funcall pred bookmark)))
|
||||
|
||||
(defun helm-bookmark-filter-setup-alist (fn)
|
||||
"Return a filtered `bookmark-alist' sorted alphabetically."
|
||||
(cl-loop for b in bookmark-alist
|
||||
for name = (car b)
|
||||
when (funcall fn b) collect
|
||||
(propertize name 'location (bookmark-location name))))
|
||||
|
||||
;;; Bookmark handlers
|
||||
;;
|
||||
(defvar w3m-async-exec)
|
||||
(defun helm-bookmark-jump-w3m (bookmark)
|
||||
"Jump to W3m bookmark BOOKMARK, setting a new tab.
|
||||
If `browse-url-browser-function' is set to something else
|
||||
than `w3m-browse-url' use it."
|
||||
(require 'helm-net)
|
||||
(let* ((file (or (bookmark-prop-get bookmark 'filename)
|
||||
(bookmark-prop-get bookmark 'url)))
|
||||
(buf (generate-new-buffer-name "*w3m*"))
|
||||
(w3m-async-exec nil)
|
||||
;; If user don't have anymore w3m installed let it browse its
|
||||
;; bookmarks with default browser otherwise assume bookmark
|
||||
;; have been bookmarked from w3m and use w3m.
|
||||
(browse-url-browser-function (or (and (fboundp 'w3m-browse-url)
|
||||
(executable-find "w3m")
|
||||
'w3m-browse-url)
|
||||
browse-url-browser-function))
|
||||
(really-use-w3m (equal browse-url-browser-function 'w3m-browse-url)))
|
||||
(helm-browse-url file really-use-w3m)
|
||||
(when really-use-w3m
|
||||
(bookmark-default-handler
|
||||
`("" (buffer . ,buf) . ,(bookmark-get-bookmark-record bookmark))))))
|
||||
|
||||
;; All bookmarks recorded with the handler provided with w3m
|
||||
;; (`bookmark-w3m-bookmark-jump') will use our handler which open
|
||||
;; the bookmark in a new tab or in an external browser depending
|
||||
;; on `browse-url-browser-function'.
|
||||
(defalias 'bookmark-w3m-bookmark-jump 'helm-bookmark-jump-w3m)
|
||||
|
||||
;; Provide compatibility with old handlers provided in external
|
||||
;; packages bookmark-extensions.el and bookmark+.
|
||||
(defalias 'bmkext-jump-woman 'woman-bookmark-jump)
|
||||
(defalias 'bmkext-jump-man 'Man-bookmark-jump)
|
||||
(defalias 'bmkext-jump-w3m 'helm-bookmark-jump-w3m)
|
||||
(defalias 'bmkext-jump-gnus 'gnus-summary-bookmark-jump)
|
||||
(defalias 'bookmarkp-jump-gnus 'gnus-summary-bookmark-jump)
|
||||
(defalias 'bookmarkp-jump-w3m 'helm-bookmark-jump-w3m)
|
||||
(defalias 'bookmarkp-jump-woman 'woman-bookmark-jump)
|
||||
(defalias 'bookmarkp-jump-man 'Man-bookmark-jump)
|
||||
|
||||
|
||||
;;;; Filtered bookmark sources
|
||||
;;
|
||||
;;
|
||||
(defclass helm-source-filtered-bookmarks (helm-source-in-buffer helm-type-bookmark)
|
||||
((filtered-candidate-transformer
|
||||
:initform '(helm-adaptive-sort
|
||||
helm-highlight-bookmark))))
|
||||
|
||||
;;; W3m bookmarks.
|
||||
;;
|
||||
(defun helm-bookmark-w3m-setup-alist ()
|
||||
"Specialized filter function for bookmarks w3m."
|
||||
(helm-bookmark-filter-setup-alist 'helm-bookmark-w3m-bookmark-p))
|
||||
|
||||
(defvar helm-source-bookmark-w3m
|
||||
(helm-make-source "Bookmark W3m" 'helm-source-filtered-bookmarks
|
||||
:init (lambda ()
|
||||
(bookmark-maybe-load-default-file)
|
||||
(helm-init-candidates-in-buffer
|
||||
'global (helm-bookmark-w3m-setup-alist)))))
|
||||
|
||||
;;; Images
|
||||
;;
|
||||
(defun helm-bookmark-images-setup-alist ()
|
||||
"Specialized filter function for images bookmarks."
|
||||
(helm-bookmark-filter-setup-alist 'helm-bookmark-image-bookmark-p))
|
||||
|
||||
(defvar helm-source-bookmark-images
|
||||
(helm-make-source "Bookmark Images" 'helm-source-filtered-bookmarks
|
||||
:init (lambda ()
|
||||
(bookmark-maybe-load-default-file)
|
||||
(helm-init-candidates-in-buffer
|
||||
'global (helm-bookmark-images-setup-alist)))))
|
||||
|
||||
;;; Woman Man
|
||||
;;
|
||||
(defun helm-bookmark-man-setup-alist ()
|
||||
"Specialized filter function for bookmarks w3m."
|
||||
(helm-bookmark-filter-setup-alist 'helm-bookmark-woman-man-bookmark-p))
|
||||
|
||||
(defvar helm-source-bookmark-man
|
||||
(helm-make-source "Bookmark Woman&Man" 'helm-source-filtered-bookmarks
|
||||
:init (lambda ()
|
||||
(bookmark-maybe-load-default-file)
|
||||
(helm-init-candidates-in-buffer
|
||||
'global (helm-bookmark-man-setup-alist)))))
|
||||
|
||||
;;; Org files
|
||||
;;
|
||||
(defun helm-bookmark-org-setup-alist ()
|
||||
"Specialized filter function for Org file bookmarks."
|
||||
(helm-bookmark-filter-setup-alist 'helm-bookmark-org-file-p))
|
||||
|
||||
(defvar helm-source-bookmark-org
|
||||
(helm-make-source " Bookmarked Org files" 'helm-source-filtered-bookmarks
|
||||
:init (lambda ()
|
||||
(bookmark-maybe-load-default-file)
|
||||
(helm-init-candidates-in-buffer
|
||||
'global (helm-bookmark-org-setup-alist)))))
|
||||
|
||||
;;; Gnus
|
||||
;;
|
||||
(defun helm-bookmark-gnus-setup-alist ()
|
||||
"Specialized filter function for bookmarks gnus."
|
||||
(helm-bookmark-filter-setup-alist 'helm-bookmark-gnus-bookmark-p))
|
||||
|
||||
(defvar helm-source-bookmark-gnus
|
||||
(helm-make-source "Bookmark Gnus" 'helm-source-filtered-bookmarks
|
||||
:init (lambda ()
|
||||
(bookmark-maybe-load-default-file)
|
||||
(helm-init-candidates-in-buffer
|
||||
'global (helm-bookmark-gnus-setup-alist)))))
|
||||
|
||||
;;; Info
|
||||
;;
|
||||
(defun helm-bookmark-info-setup-alist ()
|
||||
"Specialized filter function for bookmarks info."
|
||||
(helm-bookmark-filter-setup-alist 'helm-bookmark-info-bookmark-p))
|
||||
|
||||
(defvar helm-source-bookmark-info
|
||||
(helm-make-source "Bookmark Info" 'helm-source-filtered-bookmarks
|
||||
:init (lambda ()
|
||||
(bookmark-maybe-load-default-file)
|
||||
(helm-init-candidates-in-buffer
|
||||
'global (helm-bookmark-info-setup-alist)))))
|
||||
|
||||
;;; Files and directories
|
||||
;;
|
||||
(defun helm-bookmark-local-files-setup-alist ()
|
||||
"Specialized filter function for bookmarks locals files."
|
||||
(helm-bookmark-filter-setup-alist 'helm-bookmark-file-p))
|
||||
|
||||
(defvar helm-source-bookmark-files&dirs
|
||||
(helm-make-source "Bookmark Files&Directories" 'helm-source-filtered-bookmarks
|
||||
:init (lambda ()
|
||||
(bookmark-maybe-load-default-file)
|
||||
(helm-init-candidates-in-buffer
|
||||
'global (helm-bookmark-local-files-setup-alist)))))
|
||||
|
||||
;;; Helm find files sessions.
|
||||
;;
|
||||
(defun helm-bookmark-helm-find-files-setup-alist ()
|
||||
"Specialized filter function for `helm-find-files' bookmarks."
|
||||
(helm-bookmark-filter-setup-alist 'helm-bookmark-helm-find-files-p))
|
||||
|
||||
(defun helm-bookmark-browse-project (candidate)
|
||||
"Run `helm-browse-project' from action."
|
||||
(with-helm-default-directory
|
||||
(bookmark-get-filename candidate)
|
||||
(helm-browse-project nil)))
|
||||
|
||||
(defun helm-bookmark-run-browse-project ()
|
||||
"Run `helm-bookmark-browse-project' from keyboard."
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-bookmark-browse-project)))
|
||||
(put 'helm-bookmark-run-browse-project 'helm-only t)
|
||||
|
||||
(defvar helm-bookmark-find-files-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map helm-bookmark-map)
|
||||
(define-key map (kbd "C-x C-d") 'helm-bookmark-run-browse-project)
|
||||
map))
|
||||
|
||||
(defclass helm-bookmark-override-inheritor (helm-source) ())
|
||||
|
||||
(defmethod helm--setup-source ((source helm-bookmark-override-inheritor))
|
||||
;; Ensure `helm-source-in-buffer' method is called.
|
||||
(call-next-method)
|
||||
(setf (slot-value source 'action)
|
||||
(helm-append-at-nth
|
||||
(cl-loop for (name . action) in helm-type-bookmark-actions
|
||||
unless (memq action '(helm-bookmark-jump-other-frame
|
||||
helm-bookmark-jump-other-window))
|
||||
collect (cons name action))
|
||||
'(("Browse project" . helm-bookmark-browse-project)) 1))
|
||||
(setf (slot-value source 'keymap) helm-bookmark-find-files-map))
|
||||
|
||||
(defclass helm-bookmark-find-files-class (helm-source-filtered-bookmarks
|
||||
helm-bookmark-override-inheritor)
|
||||
())
|
||||
|
||||
(defvar helm-source-bookmark-helm-find-files
|
||||
(helm-make-source "Bookmark helm-find-files sessions" 'helm-bookmark-find-files-class
|
||||
:init (lambda ()
|
||||
(bookmark-maybe-load-default-file)
|
||||
(helm-init-candidates-in-buffer
|
||||
'global (helm-bookmark-helm-find-files-setup-alist)))
|
||||
:persistent-action (lambda (_candidate) (ignore))
|
||||
:persistent-help "Do nothing"))
|
||||
|
||||
;;; Uncategorized bookmarks
|
||||
;;
|
||||
(defun helm-bookmark-uncategorized-setup-alist ()
|
||||
"Specialized filter function for uncategorized bookmarks."
|
||||
(helm-bookmark-filter-setup-alist 'helm-bookmark-uncategorized-bookmark-p))
|
||||
|
||||
(defvar helm-source-bookmark-uncategorized
|
||||
(helm-make-source "Bookmark uncategorized" 'helm-source-filtered-bookmarks
|
||||
:init (lambda ()
|
||||
(bookmark-maybe-load-default-file)
|
||||
(helm-init-candidates-in-buffer
|
||||
'global (helm-bookmark-uncategorized-setup-alist)))))
|
||||
|
||||
;;; Transformer
|
||||
;;
|
||||
|
||||
(defun helm-highlight-bookmark (bookmarks _source)
|
||||
"Used as `filtered-candidate-transformer' to colorize bookmarks."
|
||||
(let ((non-essential t))
|
||||
(cl-loop for i in bookmarks
|
||||
for isfile = (bookmark-get-filename i)
|
||||
for hff = (helm-bookmark-helm-find-files-p i)
|
||||
for handlerp = (and (fboundp 'bookmark-get-handler)
|
||||
(bookmark-get-handler i))
|
||||
for isw3m = (and (fboundp 'helm-bookmark-w3m-bookmark-p)
|
||||
(helm-bookmark-w3m-bookmark-p i))
|
||||
for isgnus = (and (fboundp 'helm-bookmark-gnus-bookmark-p)
|
||||
(helm-bookmark-gnus-bookmark-p i))
|
||||
for isman = (and (fboundp 'helm-bookmark-man-bookmark-p) ; Man
|
||||
(helm-bookmark-man-bookmark-p i))
|
||||
for iswoman = (and (fboundp 'helm-bookmark-woman-bookmark-p) ; Woman
|
||||
(helm-bookmark-woman-bookmark-p i))
|
||||
for isannotation = (bookmark-get-annotation i)
|
||||
for isabook = (string= (bookmark-prop-get i 'type)
|
||||
"addressbook")
|
||||
for isinfo = (eq handlerp 'Info-bookmark-jump)
|
||||
for loc = (bookmark-location i)
|
||||
for len = (string-width i)
|
||||
for trunc = (if (and helm-bookmark-show-location
|
||||
(> len bookmark-bmenu-file-column))
|
||||
(helm-substring
|
||||
i bookmark-bmenu-file-column)
|
||||
i)
|
||||
;; Add a * if bookmark have annotation
|
||||
if (and isannotation (not (string-equal isannotation "")))
|
||||
do (setq trunc (concat "*" (if helm-bookmark-show-location trunc i)))
|
||||
for sep = (and helm-bookmark-show-location
|
||||
(make-string (- (+ bookmark-bmenu-file-column 2)
|
||||
(string-width trunc))
|
||||
? ))
|
||||
for bmk = (cond ( ;; info buffers
|
||||
isinfo
|
||||
(propertize trunc 'face 'helm-bookmark-info
|
||||
'help-echo isfile))
|
||||
( ;; w3m buffers
|
||||
isw3m
|
||||
(propertize trunc 'face 'helm-bookmark-w3m
|
||||
'help-echo isfile))
|
||||
( ;; gnus buffers
|
||||
isgnus
|
||||
(propertize trunc 'face 'helm-bookmark-gnus
|
||||
'help-echo isfile))
|
||||
( ;; Man Woman
|
||||
(or iswoman isman)
|
||||
(propertize trunc 'face 'helm-bookmark-man
|
||||
'help-echo isfile))
|
||||
( ;; Addressbook
|
||||
isabook
|
||||
(propertize trunc 'face 'helm-bookmark-addressbook))
|
||||
(;; Directories (helm-find-files)
|
||||
hff
|
||||
(if (and (file-remote-p isfile)
|
||||
(not (file-remote-p isfile nil t)))
|
||||
(propertize trunc 'face 'helm-bookmark-file-not-found
|
||||
'help-echo isfile)
|
||||
(propertize trunc 'face 'helm-bookmark-directory
|
||||
'help-echo isfile)))
|
||||
( ;; Directories (dired)
|
||||
(and isfile
|
||||
;; This is needed because `non-essential'
|
||||
;; is not working on Emacs-24.2 and the behavior
|
||||
;; of tramp seems to have changed since previous
|
||||
;; versions (Need to reenter password even if a
|
||||
;; first connection have been established,
|
||||
;; probably when host is named differently
|
||||
;; i.e machine/localhost)
|
||||
(and (not (file-remote-p isfile))
|
||||
(file-directory-p isfile)))
|
||||
(propertize trunc 'face 'helm-bookmark-directory
|
||||
'help-echo isfile))
|
||||
( ;; Non existing files.
|
||||
(and isfile
|
||||
;; Be safe and call `file-exists-p'
|
||||
;; only if file is not remote or
|
||||
;; remote but connected.
|
||||
(or (and (file-remote-p isfile)
|
||||
(not (file-remote-p isfile nil t)))
|
||||
(not (file-exists-p isfile))))
|
||||
(propertize trunc 'face 'helm-bookmark-file-not-found
|
||||
'help-echo isfile))
|
||||
( ;; regular files
|
||||
t
|
||||
(propertize trunc 'face 'helm-bookmark-file
|
||||
'help-echo isfile)))
|
||||
collect (if helm-bookmark-show-location
|
||||
(cons (concat bmk sep (if (listp loc) (car loc) loc))
|
||||
i)
|
||||
(cons bmk i)))))
|
||||
|
||||
|
||||
;;; Edit/rename/save bookmarks.
|
||||
;;
|
||||
;;
|
||||
(defun helm-bookmark-edit-bookmark (bookmark-name)
|
||||
"Edit bookmark's name and file name, and maybe save them.
|
||||
BOOKMARK-NAME is the current (old) name of the bookmark to be renamed."
|
||||
(let ((bmk (helm-bookmark-get-bookmark-from-name bookmark-name))
|
||||
(handler (bookmark-prop-get bookmark-name 'handler)))
|
||||
(if (eq handler 'addressbook-bookmark-jump)
|
||||
(addressbook-bookmark-edit
|
||||
(assoc bmk bookmark-alist))
|
||||
(helm-bookmark-edit-bookmark-1 bookmark-name handler))))
|
||||
|
||||
(defun helm-bookmark-edit-bookmark-1 (bookmark-name handler)
|
||||
(let* ((helm--reading-passwd-or-string t)
|
||||
(bookmark-fname (bookmark-get-filename bookmark-name))
|
||||
(bookmark-loc (bookmark-prop-get bookmark-name 'location))
|
||||
(new-name (read-from-minibuffer "Name: " bookmark-name))
|
||||
(new-loc (read-from-minibuffer "FileName or Location: "
|
||||
(or bookmark-fname
|
||||
(if (consp bookmark-loc)
|
||||
(car bookmark-loc)
|
||||
bookmark-loc))))
|
||||
(docid (and (eq handler 'mu4e-bookmark-jump)
|
||||
(read-number "Docid: " (cdr bookmark-loc)))))
|
||||
(when docid
|
||||
(setq new-loc (cons new-loc docid)))
|
||||
(when (and (not (equal new-name "")) (not (equal new-loc ""))
|
||||
(y-or-n-p "Save changes? "))
|
||||
(if bookmark-fname
|
||||
(progn
|
||||
(helm-bookmark-rename bookmark-name new-name 'batch)
|
||||
(bookmark-set-filename new-name new-loc))
|
||||
(bookmark-prop-set
|
||||
(bookmark-get-bookmark bookmark-name) 'location new-loc)
|
||||
(helm-bookmark-rename bookmark-name new-name 'batch))
|
||||
(helm-bookmark-maybe-save-bookmark)
|
||||
(list new-name new-loc))))
|
||||
|
||||
(defun helm-bookmark-maybe-save-bookmark ()
|
||||
"Increment save counter and maybe save `bookmark-alist'."
|
||||
(setq bookmark-alist-modification-count (1+ bookmark-alist-modification-count))
|
||||
(when (bookmark-time-to-save-p) (bookmark-save)))
|
||||
|
||||
(defun helm-bookmark-rename (old &optional new batch)
|
||||
"Change bookmark's name from OLD to NEW.
|
||||
Interactively:
|
||||
If called from the keyboard, then prompt for OLD.
|
||||
If called from the menubar, select OLD from a menu.
|
||||
If NEW is nil, then prompt for its string value.
|
||||
|
||||
If BATCH is non-nil, then do not rebuild the menu list.
|
||||
|
||||
While the user enters the new name, repeated `C-w' inserts consecutive
|
||||
words from the buffer into the new bookmark name."
|
||||
(interactive (list (bookmark-completing-read "Old bookmark name")))
|
||||
(bookmark-maybe-historicize-string old)
|
||||
(bookmark-maybe-load-default-file)
|
||||
(save-excursion (skip-chars-forward " ") (setq bookmark-yank-point (point)))
|
||||
(setq bookmark-current-buffer (current-buffer))
|
||||
(let ((newname (or new (read-from-minibuffer
|
||||
"New name: " nil
|
||||
(let ((now-map (copy-keymap minibuffer-local-map)))
|
||||
(define-key now-map "\C-w" 'bookmark-yank-word)
|
||||
now-map)
|
||||
nil 'bookmark-history))))
|
||||
(bookmark-set-name old newname)
|
||||
(setq bookmark-current-bookmark newname)
|
||||
(unless batch (bookmark-bmenu-surreptitiously-rebuild-list))
|
||||
(helm-bookmark-maybe-save-bookmark) newname))
|
||||
|
||||
(defun helm-bookmark-run-edit ()
|
||||
"Run `helm-bookmark-edit-bookmark' from keyboard."
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-bookmark-edit-bookmark)))
|
||||
(put 'helm-bookmark-run-edit 'helm-only t)
|
||||
|
||||
|
||||
(defun helm-bookmark-run-jump-other-frame ()
|
||||
"Jump to bookmark other frame from keyboard."
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-bookmark-jump-other-frame)))
|
||||
(put 'helm-bookmark-run-jump-other-frame 'helm-only t)
|
||||
|
||||
(defun helm-bookmark-run-jump-other-window ()
|
||||
"Jump to bookmark from keyboard."
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-bookmark-jump-other-window)))
|
||||
(put 'helm-bookmark-run-jump-other-window 'helm-only t)
|
||||
|
||||
(defun helm-bookmark-run-delete ()
|
||||
"Delete bookmark from keyboard."
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(when (y-or-n-p "Delete bookmark(s)?")
|
||||
(helm-exit-and-execute-action 'helm-delete-marked-bookmarks))))
|
||||
(put 'helm-bookmark-run-delete 'helm-only t)
|
||||
|
||||
(defun helm-bookmark-get-bookmark-from-name (bmk)
|
||||
"Return bookmark name even if it is a bookmark with annotation.
|
||||
e.g prepended with *."
|
||||
(let ((bookmark (replace-regexp-in-string "\\`\\*" "" bmk)))
|
||||
(if (assoc bookmark bookmark-alist) bookmark bmk)))
|
||||
|
||||
(defun helm-delete-marked-bookmarks (_ignore)
|
||||
"Delete this bookmark or all marked bookmarks."
|
||||
(cl-dolist (i (helm-marked-candidates))
|
||||
(bookmark-delete (helm-bookmark-get-bookmark-from-name i)
|
||||
'batch)))
|
||||
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-bookmarks ()
|
||||
"Preconfigured `helm' for bookmarks."
|
||||
(interactive)
|
||||
(helm :sources '(helm-source-bookmarks
|
||||
helm-source-bookmark-set)
|
||||
:buffer "*helm bookmarks*"
|
||||
:default (buffer-name helm-current-buffer)))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-filtered-bookmarks ()
|
||||
"Preconfigured helm for bookmarks (filtered by category).
|
||||
Optional source `helm-source-bookmark-addressbook' is loaded
|
||||
only if external addressbook-bookmark package is installed."
|
||||
(interactive)
|
||||
(helm :sources helm-bookmark-default-filtered-sources
|
||||
:prompt "Search Bookmark: "
|
||||
:buffer "*helm filtered bookmarks*"
|
||||
:default (list (thing-at-point 'symbol)
|
||||
(buffer-name helm-current-buffer))))
|
||||
|
||||
(provide 'helm-bookmark)
|
||||
|
||||
;; Local Variables:
|
||||
;; byte-compile-warnings: (not obsolete)
|
||||
;; coding: utf-8
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
;;; helm-bookmark.el ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-bookmark.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-bookmark.elc
Normal file
Binary file not shown.
1152
elpa/helm-20191004.1946/helm-buffers.el
Normal file
1152
elpa/helm-20191004.1946/helm-buffers.el
Normal file
File diff suppressed because it is too large
Load Diff
BIN
elpa/helm-20191004.1946/helm-buffers.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-buffers.elc
Normal file
Binary file not shown.
170
elpa/helm-20191004.1946/helm-color.el
Normal file
170
elpa/helm-20191004.1946/helm-color.el
Normal file
@@ -0,0 +1,170 @@
|
||||
;;; helm-color.el --- colors and faces -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
(require 'cl-lib)
|
||||
(require 'helm)
|
||||
(require 'helm-help)
|
||||
(require 'helm-elisp)
|
||||
|
||||
;;; Customize Face
|
||||
;;
|
||||
;;
|
||||
(defun helm-custom-faces-init ()
|
||||
"Initialize buffer for `helm-source-customize-face'."
|
||||
(unless (helm-candidate-buffer)
|
||||
(save-selected-window
|
||||
(list-faces-display)
|
||||
(message nil))
|
||||
(helm-init-candidates-in-buffer
|
||||
'global
|
||||
(with-current-buffer (get-buffer "*Faces*")
|
||||
(buffer-substring
|
||||
(next-single-char-property-change (point-min) 'face)
|
||||
(point-max))))
|
||||
(kill-buffer "*Faces*")))
|
||||
|
||||
(defvar helm-source-customize-face
|
||||
(helm-build-in-buffer-source "Customize Face"
|
||||
:init 'helm-custom-faces-init
|
||||
:get-line 'buffer-substring
|
||||
:persistent-action (lambda (candidate)
|
||||
(helm-elisp--persistent-help
|
||||
(intern (car (split-string candidate)))
|
||||
'helm-describe-face))
|
||||
:persistent-help "Describe face"
|
||||
:action '(("Customize"
|
||||
. (lambda (line)
|
||||
(customize-face (intern (car (split-string line))))))
|
||||
("Copy name"
|
||||
. (lambda (line)
|
||||
(kill-new (car (split-string line " " t)))))))
|
||||
"See (info \"(emacs)Faces\")")
|
||||
|
||||
;;; Colors browser
|
||||
;;
|
||||
;;
|
||||
(defun helm-colors-init ()
|
||||
(unless (helm-candidate-buffer)
|
||||
(save-selected-window
|
||||
(list-colors-display)
|
||||
(message nil))
|
||||
(helm-init-candidates-in-buffer
|
||||
'global
|
||||
(with-current-buffer (get-buffer "*Colors*")
|
||||
(buffer-string)))
|
||||
(kill-buffer "*Colors*")))
|
||||
|
||||
(defun helm-color-insert-name (candidate)
|
||||
(with-helm-current-buffer
|
||||
(insert (helm-colors-get-name candidate))))
|
||||
|
||||
(defun helm-color-kill-name (candidate)
|
||||
(kill-new (helm-colors-get-name candidate)))
|
||||
|
||||
(defun helm-color-insert-rgb (candidate)
|
||||
(with-helm-current-buffer
|
||||
(insert (helm-colors-get-rgb candidate))))
|
||||
|
||||
(defun helm-color-kill-rgb (candidate)
|
||||
(kill-new (helm-colors-get-rgb candidate)))
|
||||
|
||||
(defun helm-color-run-insert-name ()
|
||||
"Insert name of color from `helm-source-colors'"
|
||||
(interactive)
|
||||
(with-helm-alive-p (helm-exit-and-execute-action 'helm-color-insert-name)))
|
||||
(put 'helm-color-run-insert-name 'helm-only t)
|
||||
|
||||
(defun helm-color-run-kill-name ()
|
||||
"Kill name of color from `helm-source-colors'"
|
||||
(interactive)
|
||||
(with-helm-alive-p (helm-exit-and-execute-action 'helm-color-kill-name)))
|
||||
(put 'helm-color-run-kill-name 'helm-only t)
|
||||
|
||||
(defun helm-color-run-insert-rgb ()
|
||||
"Insert RGB of color from `helm-source-colors'"
|
||||
(interactive)
|
||||
(with-helm-alive-p (helm-exit-and-execute-action 'helm-color-insert-rgb)))
|
||||
(put 'helm-color-run-insert-rgb 'helm-only t)
|
||||
|
||||
(defun helm-color-run-kill-rgb ()
|
||||
"Kill RGB of color from `helm-source-colors'"
|
||||
(interactive)
|
||||
(with-helm-alive-p (helm-exit-and-execute-action 'helm-color-kill-rgb)))
|
||||
(put 'helm-color-run-kill-rgb 'helm-only t)
|
||||
|
||||
(defvar helm-color-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map helm-map)
|
||||
(define-key map (kbd "C-c n") 'helm-color-run-insert-name)
|
||||
(define-key map (kbd "C-c N") 'helm-color-run-kill-name)
|
||||
(define-key map (kbd "C-c r") 'helm-color-run-insert-rgb)
|
||||
(define-key map (kbd "C-c R") 'helm-color-run-kill-rgb)
|
||||
map))
|
||||
|
||||
(defvar helm-source-colors
|
||||
(helm-build-in-buffer-source "Colors"
|
||||
:init 'helm-colors-init
|
||||
:get-line 'buffer-substring
|
||||
:keymap helm-color-map
|
||||
:persistent-help "Kill entry in RGB format."
|
||||
:persistent-action 'helm-color-kill-rgb
|
||||
:help-message 'helm-colors-help-message
|
||||
:action
|
||||
'(("Copy Name (C-c N)" . helm-color-kill-name)
|
||||
("Copy RGB (C-c R)" . helm-color-kill-rgb)
|
||||
("Insert Name (C-c n)" . helm-color-insert-name)
|
||||
("Insert RGB (C-c r)" . helm-color-insert-rgb))))
|
||||
|
||||
(defun helm-colors-get-name (candidate)
|
||||
"Get color name."
|
||||
(replace-regexp-in-string
|
||||
" " ""
|
||||
(with-temp-buffer
|
||||
(insert (capitalize candidate))
|
||||
(goto-char (point-min))
|
||||
(search-forward-regexp "\\s-\\{2,\\}")
|
||||
(delete-region (point) (point-max))
|
||||
(buffer-string))))
|
||||
|
||||
(defun helm-colors-get-rgb (candidate)
|
||||
"Get color RGB."
|
||||
(replace-regexp-in-string
|
||||
" " ""
|
||||
(with-temp-buffer
|
||||
(insert (capitalize candidate))
|
||||
(goto-char (point-max))
|
||||
(search-backward-regexp "\\s-\\{2,\\}")
|
||||
(delete-region (point) (point-min))
|
||||
(buffer-string))))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-colors ()
|
||||
"Preconfigured `helm' for color."
|
||||
(interactive)
|
||||
(helm :sources '(helm-source-colors helm-source-customize-face)
|
||||
:buffer "*helm colors*"))
|
||||
|
||||
(provide 'helm-color)
|
||||
|
||||
;; Local Variables:
|
||||
;; byte-compile-warnings: (not obsolete)
|
||||
;; coding: utf-8
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
;;; helm-color.el ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-color.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-color.elc
Normal file
Binary file not shown.
219
elpa/helm-20191004.1946/helm-comint.el
Normal file
219
elpa/helm-20191004.1946/helm-comint.el
Normal file
@@ -0,0 +1,219 @@
|
||||
;;; helm-comint.el --- Comint prompt navigation for helm. -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; You can bind this as follows in .emacs:
|
||||
;;
|
||||
;; (add-hook 'comint-mode-hook
|
||||
;; (lambda ()
|
||||
;; (define-key comint-mode-map (kbd "M-s f") 'helm-comint-prompts-all)))
|
||||
|
||||
;;; Code:
|
||||
(require 'cl-lib)
|
||||
(require 'helm)
|
||||
(require 'helm-lib)
|
||||
(require 'helm-help)
|
||||
(require 'helm-elisp)
|
||||
|
||||
;;; Comint prompts
|
||||
;;
|
||||
(defface helm-comint-prompts-promptidx
|
||||
'((t (:foreground "cyan")))
|
||||
"Face used to highlight comint prompt index."
|
||||
:group 'helm-comint-faces)
|
||||
|
||||
(defface helm-comint-prompts-buffer-name
|
||||
'((t (:foreground "green")))
|
||||
"Face used to highlight comint buffer name."
|
||||
:group 'helm-comint-faces)
|
||||
|
||||
(defcustom helm-comint-prompts-promptidx-p t
|
||||
"Show prompt number."
|
||||
:group 'helm-comint
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom helm-comint-mode-list '(comint-mode slime-repl-mode)
|
||||
"Supported modes for prompt navigation.
|
||||
Derived modes (e.g. Geiser's REPL) are automatically supported."
|
||||
:group 'helm-comint
|
||||
:type '(repeat (choice symbol)))
|
||||
|
||||
(defcustom helm-comint-max-offset 400
|
||||
"Max number of chars displayed per candidate in comint-input-ring browser.
|
||||
When `t', don't truncate candidate, show all.
|
||||
By default it is approximatively the number of bits contained in five lines
|
||||
of 80 chars each i.e 80*5.
|
||||
Note that if you set this to nil multiline will be disabled, i.e you
|
||||
will not have anymore separators between candidates."
|
||||
:type '(choice (const :tag "Disabled" t)
|
||||
(integer :tag "Max candidate offset"))
|
||||
:group 'helm-misc)
|
||||
|
||||
(defvar helm-comint-prompts-keymap
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map helm-map)
|
||||
(define-key map (kbd "C-c o") 'helm-comint-prompts-other-window)
|
||||
(define-key map (kbd "C-c C-o") 'helm-comint-prompts-other-frame)
|
||||
map)
|
||||
"Keymap for `helm-comint-prompt-all'.")
|
||||
|
||||
(defun helm-comint-prompts-list (mode &optional buffer)
|
||||
"List the prompts in BUFFER in mode MODE.
|
||||
|
||||
Return a list of (\"prompt\" (point) (buffer-name) prompt-index))
|
||||
e.g. (\"ls\" 162 \"*shell*\" 3).
|
||||
If BUFFER is nil, use current buffer."
|
||||
(with-current-buffer (or buffer (current-buffer))
|
||||
(when (derived-mode-p mode)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(let (result (count 1))
|
||||
(save-mark-and-excursion
|
||||
(helm-awhile (and (not (eobp)) (comint-next-prompt 1))
|
||||
(push (list (buffer-substring-no-properties
|
||||
it (point-at-eol))
|
||||
it (buffer-name) count)
|
||||
result)
|
||||
(setq count (1+ count))))
|
||||
(nreverse result))))))
|
||||
|
||||
(defun helm-comint-prompts-list-all (mode)
|
||||
"List the prompts of all buffers in mode MODE.
|
||||
See `helm-comint-prompts-list'."
|
||||
(cl-loop for b in (buffer-list)
|
||||
append (helm-comint-prompts-list mode b)))
|
||||
|
||||
(defun helm-comint-prompts-transformer (candidates &optional all)
|
||||
;; ("ls" 162 "*shell*" 3) => ("*shell*:3:ls" . ("ls" 162 "*shell*" 3))
|
||||
(cl-loop for (prt pos buf id) in candidates
|
||||
collect `(,(concat
|
||||
(when all
|
||||
(concat (propertize
|
||||
buf
|
||||
'face 'helm-comint-prompts-buffer-name)
|
||||
":"))
|
||||
(when helm-comint-prompts-promptidx-p
|
||||
(concat (propertize
|
||||
(number-to-string id)
|
||||
'face 'helm-comint-prompts-promptidx)
|
||||
":"))
|
||||
prt)
|
||||
. ,(list prt pos buf id))))
|
||||
|
||||
(defun helm-comint-prompts-all-transformer (candidates)
|
||||
(helm-comint-prompts-transformer candidates t))
|
||||
|
||||
(cl-defun helm-comint-prompts-goto (candidate &optional (action 'switch-to-buffer))
|
||||
;; Candidate format: ("ls" 162 "*shell*" 3)
|
||||
(let ((buf (nth 2 candidate)))
|
||||
(unless (and (string= (buffer-name) buf)
|
||||
(eq action 'switch-to-buffer))
|
||||
(funcall action buf))
|
||||
(goto-char (nth 1 candidate))
|
||||
(recenter)))
|
||||
|
||||
(defun helm-comint-prompts-goto-other-window (candidate)
|
||||
(helm-comint-prompts-goto candidate 'switch-to-buffer-other-window))
|
||||
|
||||
(defun helm-comint-prompts-goto-other-frame (candidate)
|
||||
(helm-comint-prompts-goto candidate 'switch-to-buffer-other-frame))
|
||||
|
||||
(defun helm-comint-prompts-other-window ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-comint-prompts-goto-other-window)))
|
||||
(put 'helm-comint-prompts-other-window 'helm-only t)
|
||||
|
||||
(defun helm-comint-prompts-other-frame ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-comint-prompts-goto-other-frame)))
|
||||
(put 'helm-comint-prompts-other-frame 'helm-only t)
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-comint-prompts ()
|
||||
"Pre-configured `helm' to browse the prompts of the current comint buffer."
|
||||
(interactive)
|
||||
(if (apply 'derived-mode-p helm-comint-mode-list)
|
||||
(helm :sources
|
||||
(helm-build-sync-source "Comint prompts"
|
||||
:candidates (helm-comint-prompts-list major-mode)
|
||||
:candidate-transformer 'helm-comint-prompts-transformer
|
||||
:action '(("Go to prompt" . helm-comint-prompts-goto)))
|
||||
:buffer "*helm comint prompts*")
|
||||
(message "Current buffer is not a comint buffer")))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-comint-prompts-all ()
|
||||
"Pre-configured `helm' to browse the prompts of all comint sessions."
|
||||
(interactive)
|
||||
(if (apply 'derived-mode-p helm-comint-mode-list)
|
||||
(helm :sources
|
||||
(helm-build-sync-source "All comint prompts"
|
||||
:candidates (helm-comint-prompts-list-all major-mode)
|
||||
:candidate-transformer 'helm-comint-prompts-all-transformer
|
||||
:action (quote (("Go to prompt" . helm-comint-prompts-goto)
|
||||
("Go to prompt in other window `C-c o`" .
|
||||
helm-comint-prompts-goto-other-window)
|
||||
("Go to prompt in other frame `C-c C-o`" .
|
||||
helm-comint-prompts-goto-other-frame)))
|
||||
:keymap helm-comint-prompts-keymap)
|
||||
:buffer "*helm comint all prompts*")
|
||||
(message "Current buffer is not a comint buffer")))
|
||||
|
||||
;;; Comint history
|
||||
;;
|
||||
;;
|
||||
(defun helm-comint-input-ring-action (candidate)
|
||||
"Default action for comint history."
|
||||
(with-helm-current-buffer
|
||||
(delete-region (comint-line-beginning-position) (point-max))
|
||||
(insert candidate)))
|
||||
|
||||
(defvar helm-source-comint-input-ring
|
||||
(helm-build-sync-source "Comint history"
|
||||
:candidates (lambda ()
|
||||
(with-helm-current-buffer
|
||||
(cl-loop for elm in (ring-elements comint-input-ring)
|
||||
unless (string= elm "")
|
||||
collect elm)))
|
||||
:action 'helm-comint-input-ring-action
|
||||
;; Multiline does not work for `shell' because of an Emacs bug.
|
||||
;; It works in other REPLs like Geiser.
|
||||
:multiline 'helm-comint-max-offset)
|
||||
"Source that provides Helm completion against `comint-input-ring'.")
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-comint-input-ring ()
|
||||
"Preconfigured `helm' that provide completion of `comint' history."
|
||||
(interactive)
|
||||
(when (derived-mode-p 'comint-mode)
|
||||
(helm :sources 'helm-source-comint-input-ring
|
||||
:input (buffer-substring-no-properties (comint-line-beginning-position)
|
||||
(point-at-eol))
|
||||
:buffer "*helm comint history*")))
|
||||
|
||||
(provide 'helm-comint)
|
||||
|
||||
;; Local Variables:
|
||||
;; byte-compile-warnings: (not obsolete)
|
||||
;; coding: utf-8
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
;;; helm-comint.el ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-comint.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-comint.elc
Normal file
Binary file not shown.
308
elpa/helm-20191004.1946/helm-command.el
Normal file
308
elpa/helm-20191004.1946/helm-command.el
Normal file
@@ -0,0 +1,308 @@
|
||||
;;; helm-command.el --- Helm execute-exended-command. -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'cl-lib)
|
||||
(require 'helm)
|
||||
(require 'helm-help)
|
||||
(require 'helm-mode)
|
||||
(require 'helm-elisp)
|
||||
|
||||
|
||||
(defgroup helm-command nil
|
||||
"Emacs command related Applications and libraries for Helm."
|
||||
:group 'helm)
|
||||
|
||||
(defcustom helm-M-x-requires-pattern 0
|
||||
"Value of requires-pattern for `helm-M-x'.
|
||||
Show all candidates on startup when 0 (default)."
|
||||
:group 'helm-command
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom helm-M-x-always-save-history nil
|
||||
"`helm-M-x' Save command in `extended-command-history' even when it fail."
|
||||
:group 'helm-command
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom helm-M-x-reverse-history nil
|
||||
"The history source of `helm-M-x' appear in second position when non--nil."
|
||||
:group 'helm-command
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom helm-M-x-fuzzy-match nil
|
||||
"Enable fuzzy matching in `helm-M-x' when non--nil."
|
||||
:group 'helm-command
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom helm-M-x-default-sort-fn #'helm-M-x-fuzzy-sort-candidates
|
||||
"Default sort function for `helm-M-x'.
|
||||
|
||||
It should sort against REAL value of candidates.
|
||||
|
||||
It is used only when `helm-M-x-fuzzy-match' is enabled."
|
||||
:group 'helm-command
|
||||
:type 'function)
|
||||
|
||||
;;; Faces
|
||||
;;
|
||||
;;
|
||||
(defgroup helm-command-faces nil
|
||||
"Customize the appearance of helm-command."
|
||||
:prefix "helm-"
|
||||
:group 'helm-command
|
||||
:group 'helm-faces)
|
||||
|
||||
(defface helm-M-x-key '((t (:foreground "orange" :underline t)))
|
||||
"Face used in helm-M-x to show keybinding."
|
||||
:group 'helm-command-faces)
|
||||
|
||||
|
||||
(defvar helm-M-x-input-history nil)
|
||||
(defvar helm-M-x-prefix-argument nil
|
||||
"Prefix argument before calling `helm-M-x'.")
|
||||
|
||||
|
||||
(defun helm-M-x-get-major-mode-command-alist (mode-map)
|
||||
"Return alist of MODE-MAP."
|
||||
(when mode-map
|
||||
(cl-loop for key being the key-seqs of mode-map using (key-bindings com)
|
||||
for str-key = (key-description key)
|
||||
for ismenu = (string-match "<menu-bar>" str-key)
|
||||
unless ismenu collect (cons str-key com))))
|
||||
|
||||
(defun helm-get-mode-map-from-mode (mode)
|
||||
"Guess the mode-map name according to MODE.
|
||||
Some modes don't use conventional mode-map name
|
||||
so we need to guess mode-map name. e.g python-mode ==> py-mode-map.
|
||||
Return nil if no mode-map found."
|
||||
(cl-loop ;; Start with a conventional mode-map name.
|
||||
with mode-map = (intern-soft (format "%s-map" mode))
|
||||
with mode-string = (symbol-name mode)
|
||||
with mode-name = (replace-regexp-in-string "-mode" "" mode-string)
|
||||
while (not mode-map)
|
||||
for count downfrom (length mode-name)
|
||||
;; Return when no result after parsing entire string.
|
||||
when (eq count 0) return nil
|
||||
for sub-name = (substring mode-name 0 count)
|
||||
do (setq mode-map (intern-soft (format "%s-map" (concat sub-name "-mode"))))
|
||||
finally return mode-map))
|
||||
|
||||
(defun helm-M-x-current-mode-map-alist ()
|
||||
"Return mode-map alist of current `major-mode'."
|
||||
(let ((map-sym (helm-get-mode-map-from-mode major-mode)))
|
||||
(when (and map-sym (boundp map-sym))
|
||||
(helm-M-x-get-major-mode-command-alist (symbol-value map-sym)))))
|
||||
|
||||
|
||||
(defun helm-M-x-transformer-1 (candidates &optional sort)
|
||||
"Transformer function to show bindings in emacs commands.
|
||||
Show global bindings and local bindings according to current `major-mode'.
|
||||
If SORT is non nil sort list with `helm-generic-sort-fn'.
|
||||
Note that SORT should not be used when fuzzy matching because
|
||||
fuzzy matching is running its own sort function with a different algorithm."
|
||||
(with-helm-current-buffer
|
||||
(cl-loop with local-map = (helm-M-x-current-mode-map-alist)
|
||||
for cand in candidates
|
||||
for local-key = (car (rassq cand local-map))
|
||||
for key = (substitute-command-keys (format "\\[%s]" cand))
|
||||
unless (get (intern (if (consp cand) (car cand) cand)) 'helm-only)
|
||||
collect
|
||||
(cons (cond ((and (string-match "^M-x" key) local-key)
|
||||
(format "%s (%s)"
|
||||
cand (propertize
|
||||
local-key
|
||||
'face 'helm-M-x-key)))
|
||||
((string-match "^M-x" key) cand)
|
||||
(t (format "%s (%s)"
|
||||
cand (propertize
|
||||
key
|
||||
'face 'helm-M-x-key))))
|
||||
cand)
|
||||
into ls
|
||||
finally return
|
||||
(if sort (sort ls #'helm-generic-sort-fn) ls))))
|
||||
|
||||
(defun helm-M-x-transformer (candidates _source)
|
||||
"Transformer function for `helm-M-x' candidates."
|
||||
(helm-M-x-transformer-1 candidates (null helm--in-fuzzy)))
|
||||
|
||||
(defun helm-M-x-transformer-hist (candidates _source)
|
||||
"Transformer function for `helm-M-x' candidates."
|
||||
(helm-M-x-transformer-1 candidates))
|
||||
|
||||
(defun helm-M-x--notify-prefix-arg ()
|
||||
;; Notify a prefix-arg set AFTER calling M-x.
|
||||
(when prefix-arg
|
||||
(with-helm-window
|
||||
(helm-display-mode-line (helm-get-current-source) 'force))))
|
||||
|
||||
(defun helm-cmd--get-current-function-name ()
|
||||
(save-excursion
|
||||
(beginning-of-defun)
|
||||
(cadr (split-string (buffer-substring-no-properties
|
||||
(point-at-bol) (point-at-eol))))))
|
||||
|
||||
(defun helm-cmd--get-preconfigured-commands (&optional dir)
|
||||
(let* ((helm-dir (or dir (helm-basedir (locate-library "helm"))))
|
||||
(helm-autoload-file (expand-file-name "helm-autoloads.el" helm-dir))
|
||||
results)
|
||||
(when (file-exists-p helm-autoload-file)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents helm-autoload-file)
|
||||
(while (re-search-forward "Preconfigured" nil t)
|
||||
(push (substring (helm-cmd--get-current-function-name) 1) results))))
|
||||
results))
|
||||
|
||||
(defvar helm-M-x-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map helm-comp-read-map)
|
||||
(define-key map (kbd "C-u") nil)
|
||||
(define-key map (kbd "C-u") 'helm-M-x-universal-argument)
|
||||
map))
|
||||
|
||||
(defun helm-M-x-universal-argument ()
|
||||
"Same as `universal-argument' but for `helm-M-x'."
|
||||
(interactive)
|
||||
(if helm-M-x-prefix-argument
|
||||
(progn (setq helm-M-x-prefix-argument nil)
|
||||
(let ((inhibit-read-only t))
|
||||
(with-selected-window (minibuffer-window)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(delete-char (- (minibuffer-prompt-width) (length "M-x "))))))
|
||||
(message "Initial prefix arg disabled"))
|
||||
(setq prefix-arg (list 4))
|
||||
(universal-argument--mode)))
|
||||
(put 'helm-M-x-universal-argument 'helm-only t)
|
||||
|
||||
(defun helm-M-x-fuzzy-sort-candidates (candidates _source)
|
||||
(helm-fuzzy-matching-default-sort-fn-1 candidates t))
|
||||
|
||||
(defun helm-M-x-read-extended-command (&optional collection history)
|
||||
"Read command name to invoke in `helm-M-x'.
|
||||
Helm completion is not provided when executing or defining
|
||||
kbd macros.
|
||||
Optional arg COLLECTION is to allow using another COLLECTION
|
||||
than the default which is OBARRAY."
|
||||
(if (or defining-kbd-macro executing-kbd-macro)
|
||||
(if helm-mode
|
||||
(unwind-protect
|
||||
(progn
|
||||
(helm-mode -1)
|
||||
(read-extended-command))
|
||||
(helm-mode 1))
|
||||
(read-extended-command))
|
||||
(let* ((helm-fuzzy-sort-fn helm-M-x-default-sort-fn)
|
||||
(helm--mode-line-display-prefarg t)
|
||||
(tm (run-at-time 1 0.1 'helm-M-x--notify-prefix-arg))
|
||||
(helm-move-selection-after-hook
|
||||
(cons (lambda () (setq current-prefix-arg nil))
|
||||
helm-move-selection-after-hook)))
|
||||
(setq extended-command-history
|
||||
(cl-loop for c in extended-command-history
|
||||
when (and c (commandp (intern c)))
|
||||
do (set-text-properties 0 (length c) nil c)
|
||||
and collect c))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(setq current-prefix-arg nil)
|
||||
(helm-comp-read
|
||||
(concat (cond
|
||||
((eq helm-M-x-prefix-argument '-) "- ")
|
||||
((and (consp helm-M-x-prefix-argument)
|
||||
(eq (car helm-M-x-prefix-argument) 4)) "C-u ")
|
||||
((and (consp helm-M-x-prefix-argument)
|
||||
(integerp (car helm-M-x-prefix-argument)))
|
||||
(format "%d " (car helm-M-x-prefix-argument)))
|
||||
((integerp helm-M-x-prefix-argument)
|
||||
(format "%d " helm-M-x-prefix-argument)))
|
||||
"M-x ")
|
||||
(or collection obarray)
|
||||
:test 'commandp
|
||||
:requires-pattern helm-M-x-requires-pattern
|
||||
:name "Emacs Commands"
|
||||
:buffer "*helm M-x*"
|
||||
:persistent-action (lambda (candidate)
|
||||
(helm-elisp--persistent-help
|
||||
candidate 'helm-describe-function))
|
||||
:persistent-help "Describe this command"
|
||||
:history (or history extended-command-history)
|
||||
:reverse-history helm-M-x-reverse-history
|
||||
:input-history 'helm-M-x-input-history
|
||||
:del-input nil
|
||||
:help-message 'helm-M-x-help-message
|
||||
:group 'helm-command
|
||||
:keymap helm-M-x-map
|
||||
:must-match t
|
||||
:match-part (lambda (c) (car (split-string c)))
|
||||
:fuzzy helm-M-x-fuzzy-match
|
||||
:nomark t
|
||||
:candidates-in-buffer t
|
||||
:fc-transformer 'helm-M-x-transformer
|
||||
:hist-fc-transformer 'helm-M-x-transformer-hist))
|
||||
(cancel-timer tm)
|
||||
(setq helm--mode-line-display-prefarg nil)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-M-x (_arg &optional command-name)
|
||||
"Preconfigured `helm' for Emacs commands.
|
||||
It is `helm' replacement of regular `M-x' `execute-extended-command'.
|
||||
|
||||
Unlike regular `M-x' emacs vanilla `execute-extended-command' command,
|
||||
the prefix args if needed, can be passed AFTER starting `helm-M-x'.
|
||||
When a prefix arg is passed BEFORE starting `helm-M-x', the first `C-u'
|
||||
while in `helm-M-x' session will disable it.
|
||||
|
||||
You can get help on each command by persistent action."
|
||||
(interactive
|
||||
(progn
|
||||
(setq helm-M-x-prefix-argument current-prefix-arg)
|
||||
(list current-prefix-arg (helm-M-x-read-extended-command))))
|
||||
(when (stringp command-name)
|
||||
(unless (string= command-name "")
|
||||
(let ((sym-com (and (stringp command-name) (intern-soft command-name))))
|
||||
(when sym-com
|
||||
;; Avoid having `this-command' set to *exit-minibuffer.
|
||||
(setq this-command sym-com
|
||||
;; Handle C-x z (repeat) Issue #322
|
||||
real-this-command sym-com)
|
||||
;; If helm-M-x is called with regular emacs completion (kmacro)
|
||||
;; use the value of arg otherwise use helm-current-prefix-arg.
|
||||
(let ((prefix-arg (or helm-current-prefix-arg helm-M-x-prefix-argument)))
|
||||
(cl-flet ((save-hist (command)
|
||||
(setq extended-command-history
|
||||
(cons command (delete command extended-command-history)))))
|
||||
(condition-case-unless-debug err
|
||||
(progn
|
||||
(command-execute sym-com 'record)
|
||||
(save-hist command-name))
|
||||
(error
|
||||
(when helm-M-x-always-save-history
|
||||
(save-hist command-name))
|
||||
(signal (car err) (cdr err)))))))))))
|
||||
(put 'helm-M-x 'interactive-only 'command-execute)
|
||||
|
||||
(provide 'helm-command)
|
||||
|
||||
;; Local Variables:
|
||||
;; byte-compile-warnings: (not obsolete)
|
||||
;; coding: utf-8
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
;;; helm-command.el ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-command.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-command.elc
Normal file
Binary file not shown.
172
elpa/helm-20191004.1946/helm-config.el
Normal file
172
elpa/helm-20191004.1946/helm-config.el
Normal file
@@ -0,0 +1,172 @@
|
||||
;;; helm-config.el --- Applications library for `helm.el' -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
||||
;;; Require
|
||||
;;
|
||||
;;
|
||||
(declare-function async-bytecomp-package-mode "ext:async-bytecomp.el")
|
||||
(when (require 'async-bytecomp nil t)
|
||||
(and (fboundp 'async-bytecomp-package-mode)
|
||||
(async-bytecomp-package-mode 1)))
|
||||
|
||||
|
||||
(defgroup helm-config nil
|
||||
"Various configurations for Helm."
|
||||
:group 'helm)
|
||||
|
||||
(defcustom helm-command-prefix-key "C-x c"
|
||||
"The key `helm-command-prefix' is bound to in the global map."
|
||||
:type '(choice (string :tag "Key") (const :tag "no binding"))
|
||||
:group 'helm-config
|
||||
:set
|
||||
(lambda (var key)
|
||||
(when (and (boundp var) (symbol-value var))
|
||||
(define-key (current-global-map)
|
||||
(read-kbd-macro (symbol-value var)) nil))
|
||||
(when key
|
||||
(define-key (current-global-map)
|
||||
(read-kbd-macro key) 'helm-command-prefix))
|
||||
(set var key)))
|
||||
|
||||
(defcustom helm-minibuffer-history-key "C-r"
|
||||
"The key `helm-minibuffer-history' is bound to in minibuffer local maps."
|
||||
:type '(choice (string :tag "Key") (const :tag "no binding"))
|
||||
:group 'helm-config
|
||||
:set
|
||||
(lambda (var key)
|
||||
(cl-dolist (map '(minibuffer-local-completion-map
|
||||
minibuffer-local-filename-completion-map
|
||||
minibuffer-local-filename-must-match-map ; Emacs 23.1.+
|
||||
minibuffer-local-isearch-map
|
||||
minibuffer-local-map
|
||||
minibuffer-local-must-match-filename-map ; Older Emacsen
|
||||
minibuffer-local-must-match-map
|
||||
minibuffer-local-ns-map))
|
||||
(when (and (boundp map) (keymapp (symbol-value map)))
|
||||
(when (and (boundp var) (symbol-value var))
|
||||
(define-key (symbol-value map)
|
||||
(read-kbd-macro (symbol-value var)) nil))
|
||||
(when key
|
||||
(define-key (symbol-value map)
|
||||
(read-kbd-macro key) 'helm-minibuffer-history))))
|
||||
(set var key)))
|
||||
|
||||
;;; Command Keymap
|
||||
;;
|
||||
;;
|
||||
(defvar helm-command-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map (kbd "a") 'helm-apropos)
|
||||
(define-key map (kbd "e") 'helm-etags-select)
|
||||
(define-key map (kbd "l") 'helm-locate)
|
||||
(define-key map (kbd "s") 'helm-surfraw)
|
||||
(define-key map (kbd "r") 'helm-regexp)
|
||||
(define-key map (kbd "m") 'helm-man-woman)
|
||||
(define-key map (kbd "t") 'helm-top)
|
||||
(define-key map (kbd "/") 'helm-find)
|
||||
(define-key map (kbd "i") 'helm-semantic-or-imenu)
|
||||
(define-key map (kbd "I") 'helm-imenu-in-all-buffers)
|
||||
(define-key map (kbd "<tab>") 'helm-lisp-completion-at-point)
|
||||
(define-key map (kbd "p") 'helm-list-emacs-process)
|
||||
(define-key map (kbd "C-x r b") 'helm-filtered-bookmarks)
|
||||
(define-key map (kbd "M-y") 'helm-show-kill-ring)
|
||||
(define-key map (kbd "C-c <SPC>") 'helm-all-mark-rings)
|
||||
(define-key map (kbd "C-x C-f") 'helm-find-files)
|
||||
(define-key map (kbd "f") 'helm-multi-files)
|
||||
(define-key map (kbd "C-:") 'helm-eval-expression-with-eldoc)
|
||||
(define-key map (kbd "C-,") 'helm-calcul-expression)
|
||||
(define-key map (kbd "M-x") 'helm-M-x)
|
||||
(define-key map (kbd "M-s o") 'helm-occur)
|
||||
(define-key map (kbd "M-g a") 'helm-do-grep-ag)
|
||||
(define-key map (kbd "c") 'helm-colors)
|
||||
(define-key map (kbd "F") 'helm-select-xfont)
|
||||
(define-key map (kbd "8") 'helm-ucs)
|
||||
(define-key map (kbd "C-c f") 'helm-recentf)
|
||||
(define-key map (kbd "C-c g") 'helm-google-suggest)
|
||||
(define-key map (kbd "h i") 'helm-info-at-point)
|
||||
(define-key map (kbd "h r") 'helm-info-emacs)
|
||||
(define-key map (kbd "h g") 'helm-info-gnus)
|
||||
(define-key map (kbd "h h") 'helm-documentation)
|
||||
(define-key map (kbd "C-x C-b") 'helm-buffers-list)
|
||||
(define-key map (kbd "C-x r i") 'helm-register)
|
||||
(define-key map (kbd "C-c C-x") 'helm-run-external-command)
|
||||
(define-key map (kbd "b") 'helm-resume)
|
||||
(define-key map (kbd "M-g i") 'helm-gid)
|
||||
(define-key map (kbd "@") 'helm-list-elisp-packages)
|
||||
map))
|
||||
|
||||
;; Don't override the keymap we just defined with an empty
|
||||
;; keymap. This also protect bindings changed by the user.
|
||||
(defvar helm-command-prefix)
|
||||
(define-prefix-command 'helm-command-prefix)
|
||||
(fset 'helm-command-prefix helm-command-map)
|
||||
(setq helm-command-prefix helm-command-map)
|
||||
|
||||
|
||||
;;; Menu
|
||||
|
||||
(require 'helm-easymenu)
|
||||
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-configuration ()
|
||||
"Customize `helm'."
|
||||
(interactive)
|
||||
(customize-group "helm"))
|
||||
|
||||
|
||||
;;; Fontlock
|
||||
(cl-dolist (mode '(emacs-lisp-mode lisp-interaction-mode))
|
||||
(font-lock-add-keywords
|
||||
mode
|
||||
'(("(\\<\\(with-helm-after-update-hook\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(with-helm-temp-hook\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(with-helm-window\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(with-helm-quittable\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(with-helm-current-buffer\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(with-helm-buffer\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(with-helm-show-completion\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(with-helm-default-directory\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(with-helm-restore-variables\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(helm-multi-key-defun\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(helm-while-no-input\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(helm-aif\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(helm-awhile\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(helm-acond\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(helm-aand\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(helm-with-gensyms\\)\\>" 1 font-lock-keyword-face)
|
||||
("(\\<\\(helm-read-answer\\)\\>" 1 font-lock-keyword-face))))
|
||||
|
||||
|
||||
;;; Load the autoload file
|
||||
;; It should have been generated either by
|
||||
;; package.el or the make file.
|
||||
|
||||
(load "helm-autoloads" nil t)
|
||||
|
||||
(provide 'helm-config)
|
||||
|
||||
;; Local Variables:
|
||||
;; byte-compile-warnings: (not obsolete)
|
||||
;; coding: utf-8
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
;;; helm-config.el ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-config.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-config.elc
Normal file
Binary file not shown.
388
elpa/helm-20191004.1946/helm-dabbrev.el
Normal file
388
elpa/helm-20191004.1946/helm-dabbrev.el
Normal file
@@ -0,0 +1,388 @@
|
||||
;;; helm-dabbrev.el --- Helm implementation of dabbrev. -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'helm)
|
||||
(require 'helm-lib)
|
||||
(require 'helm-help)
|
||||
(require 'helm-elisp) ; For show-completion.
|
||||
|
||||
(defgroup helm-dabbrev nil
|
||||
"Dabbrev related Applications and libraries for Helm."
|
||||
:group 'helm)
|
||||
|
||||
(defcustom helm-dabbrev-always-search-all t
|
||||
"Always search in all buffers when non--nil.
|
||||
Note that even if nil, a search in all buffers
|
||||
will occur if the length of candidates is <= than
|
||||
`helm-dabbrev-max-length-result'."
|
||||
:group 'helm-dabbrev
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom helm-dabbrev-candidates-number-limit 1000
|
||||
"Maximum number of candidates to collect.
|
||||
|
||||
Higher this number is, slower the computation of candidates will be.
|
||||
You can use safely a higher value with emacs-26+.
|
||||
Note that this have nothing to do with `helm-candidate-number-limit'."
|
||||
:group 'helm-dabbrev
|
||||
:type 'integer)
|
||||
|
||||
(defcustom helm-dabbrev-ignored-buffers-regexps
|
||||
'("\\*helm" "\\*Messages" "\\*Echo Area" "\\*Buffer List")
|
||||
"List of regexps matching names of buffers that helm-dabbrev should not check."
|
||||
:group 'helm-dabbrev
|
||||
:type '(repeat regexp))
|
||||
|
||||
(defcustom helm-dabbrev-related-buffer-fn #'helm-dabbrev--same-major-mode-p
|
||||
"A function that decide if a buffer to search in is related to `current-buffer'.
|
||||
This is actually determined by comparing `major-mode' of the buffer to search
|
||||
and the `current-buffer'.
|
||||
The function take one arg, the buffer which is current, look at
|
||||
`helm-dabbrev--same-major-mode-p' for example.
|
||||
|
||||
When nil all buffers are considered related to `current-buffer'."
|
||||
:group 'helm-dabbrev
|
||||
:type 'function)
|
||||
|
||||
(defcustom helm-dabbrev-major-mode-assoc nil
|
||||
"Major mode association alist.
|
||||
This allow helm-dabbrev searching in buffers with the associated `major-mode'.
|
||||
e.g \(emacs-lisp-mode . lisp-interaction-mode\)
|
||||
will allow searching in the lisp-interaction-mode buffer when `current-buffer'
|
||||
is an `emacs-lisp-mode' buffer and vice versa i.e
|
||||
no need to provide \(lisp-interaction-mode . emacs-lisp-mode\) association.
|
||||
|
||||
When nil check is the searched buffer have same `major-mode'
|
||||
than the `current-buffer'.
|
||||
This have no effect when `helm-dabbrev-related-buffer-fn' is nil or of course
|
||||
bound to a function that doesn't handle this var."
|
||||
:type '(alist :key-type symbol :value-type symbol)
|
||||
:group 'helm-dabbrev)
|
||||
|
||||
(defcustom helm-dabbrev-lineno-around 30
|
||||
"Search first in this number of lines before an after point."
|
||||
:group 'helm-dabbrev
|
||||
:type 'integer)
|
||||
|
||||
(defcustom helm-dabbrev-cycle-threshold 5
|
||||
"Number of time helm-dabbrev cycle before displaying helm completion.
|
||||
When nil or 0 disable cycling."
|
||||
:group 'helm-dabbrev
|
||||
:type '(choice (const :tag "Cycling disabled" nil) integer))
|
||||
|
||||
(defcustom helm-dabbrev-case-fold-search 'smart
|
||||
"Set `case-fold-search' in `helm-dabbrev'.
|
||||
Same as `helm-case-fold-search' but for `helm-dabbrev'.
|
||||
Note that this is not affecting searching in helm buffer,
|
||||
but the initial search for all candidates in buffer(s)."
|
||||
:group 'helm-dabbrev
|
||||
:type '(choice (const :tag "Ignore case" t)
|
||||
(const :tag "Respect case" nil)
|
||||
(other :tag "Smart" 'smart)))
|
||||
|
||||
(defcustom helm-dabbrev-use-thread nil
|
||||
"[EXPERIMENTAL] Compute candidates asynchronously (partially) when non nil.
|
||||
|
||||
The idea is to compute candidates while cycling the first ones, so
|
||||
this is available only if `helm-dabbrev-cycle-threshold' is not 0 or
|
||||
nil, also it is available only on emacs-26+ (needs threads).
|
||||
|
||||
This is reasonably working when you don't have to complete a huge list
|
||||
of candidates, otherwise you will have a small delay after the first cycle
|
||||
because thread is released unexpectedly when helm-dabbrev exit after
|
||||
first insertion.
|
||||
|
||||
IOW keep `helm-dabbrev-candidates-number-limit' to a reasonable
|
||||
value (I don't!) and give enough prefix before completing e.g. for
|
||||
completing \"helm-dabbrev\" use \"helm-d\" and not \"he\" if you want
|
||||
to use this."
|
||||
:group 'helm-dabbrev
|
||||
:type 'boolean)
|
||||
|
||||
(defvaralias 'helm-dabbrev--regexp 'helm-dabbrev-separator-regexp)
|
||||
(make-obsolete-variable 'helm-dabbrev--regexp
|
||||
'helm-dabbrev-separator-regexp "2.8.3")
|
||||
;; Check for beginning of line should happen last (^\n\\|^).
|
||||
(defvar helm-dabbrev-separator-regexp
|
||||
"\\s-\\|\t\\|[(\\[\\{\"'`=<$;,@.#+]\\|\\s\\\\|^\n\\|^"
|
||||
"Regexp matching the start of a dabbrev candidate.")
|
||||
|
||||
|
||||
(defvar helm-dabbrev-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map helm-map)
|
||||
(define-key map (kbd "M-/") 'helm-next-line)
|
||||
(define-key map (kbd "M-:") 'helm-previous-line)
|
||||
map))
|
||||
|
||||
;; Internal
|
||||
(defvar helm-dabbrev--cache nil)
|
||||
(defvar helm-dabbrev--data nil)
|
||||
(cl-defstruct helm-dabbrev-info dabbrev limits iterator)
|
||||
(defvar helm-dabbrev--already-tried nil)
|
||||
(defvar helm-dabbrev--current-thread nil)
|
||||
|
||||
|
||||
(defun helm-dabbrev--buffer-list ()
|
||||
(cl-loop for buf in (buffer-list)
|
||||
unless (cl-loop for r in helm-dabbrev-ignored-buffers-regexps
|
||||
thereis (string-match r (buffer-name buf)))
|
||||
collect buf))
|
||||
|
||||
(defun helm-dabbrev--same-major-mode-p (start-buffer)
|
||||
"Decide if current-buffer is related to START-BUFFER."
|
||||
(helm-same-major-mode-p start-buffer helm-dabbrev-major-mode-assoc))
|
||||
|
||||
(defun helm-dabbrev--collect (str limit ignore-case all)
|
||||
(let* ((case-fold-search ignore-case)
|
||||
(buffer1 (current-buffer)) ; start buffer.
|
||||
(minibuf (minibufferp buffer1))
|
||||
result pos-before pos-after
|
||||
(search-and-store
|
||||
(lambda (pattern direction)
|
||||
(while (and (<= (length result) limit)
|
||||
(cl-case direction
|
||||
(1 (search-forward pattern nil t))
|
||||
(-1 (search-backward pattern nil t))
|
||||
(2 (let ((pos
|
||||
(save-excursion
|
||||
(forward-line
|
||||
helm-dabbrev-lineno-around)
|
||||
(point))))
|
||||
(setq pos-after pos)
|
||||
(search-forward pattern pos t)))
|
||||
(-2 (let ((pos
|
||||
(save-excursion
|
||||
(forward-line
|
||||
(- helm-dabbrev-lineno-around))
|
||||
(point))))
|
||||
(setq pos-before pos)
|
||||
(search-backward pattern pos t)))))
|
||||
(let* ((pbeg (match-beginning 0))
|
||||
(replace-regexp (concat "\\(" helm-dabbrev-separator-regexp
|
||||
"\\)\\'"))
|
||||
(match-word (helm-dabbrev--search
|
||||
pattern pbeg replace-regexp)))
|
||||
(when (and match-word (not (member match-word result)))
|
||||
(push match-word result)))))))
|
||||
(catch 'break
|
||||
(dolist (buf (if all (helm-dabbrev--buffer-list)
|
||||
(list (current-buffer))))
|
||||
(with-current-buffer buf
|
||||
(when (or minibuf ; check against all buffers when in minibuffer.
|
||||
(if helm-dabbrev-related-buffer-fn
|
||||
(funcall helm-dabbrev-related-buffer-fn buffer1)
|
||||
t))
|
||||
(save-excursion
|
||||
;; Start searching before thing before point.
|
||||
(goto-char (- (point) (length str)))
|
||||
;; Search the last 30 lines before point.
|
||||
(funcall search-and-store str -2)) ; store pos [1]
|
||||
(save-excursion
|
||||
;; Search the next 30 lines after point.
|
||||
(funcall search-and-store str 2)) ; store pos [2]
|
||||
(save-excursion
|
||||
;; Search all before point.
|
||||
;; If limit is reached in previous call of
|
||||
;; search-and-store pos-before is never set and
|
||||
;; goto-char will fail, so check it.
|
||||
(when pos-before
|
||||
(goto-char pos-before) ; start from [1]
|
||||
(funcall search-and-store str -1)))
|
||||
(save-excursion
|
||||
;; Search all after point.
|
||||
;; Same comment as above for pos-after.
|
||||
(when pos-after
|
||||
(goto-char pos-after) ; start from [2]
|
||||
(funcall search-and-store str 1)))))
|
||||
(when (>= (length result) limit) (throw 'break nil))))
|
||||
(nreverse result)))
|
||||
|
||||
(defun helm-dabbrev--search (pattern beg sep-regexp)
|
||||
"Search word or symbol at point matching PATTERN.
|
||||
Argument BEG is corresponding to the previous match-beginning search.
|
||||
The search starts at (1- BEG) with a regexp starting with
|
||||
`helm-dabbrev-separator-regexp' followed by PATTERN followed by a
|
||||
regexp matching syntactically any word or symbol.
|
||||
The possible false positives matching SEP-REGEXP at end are finally
|
||||
removed."
|
||||
(let ((eol (point-at-eol)))
|
||||
(save-excursion
|
||||
(goto-char (1- beg))
|
||||
(when (re-search-forward
|
||||
(concat "\\("
|
||||
helm-dabbrev-separator-regexp
|
||||
"\\)"
|
||||
"\\(?99:\\("
|
||||
(regexp-quote pattern)
|
||||
"\\(\\sw\\|\\s_\\)+\\)\\)")
|
||||
eol t)
|
||||
(replace-regexp-in-string
|
||||
sep-regexp ""
|
||||
(match-string-no-properties 99))))))
|
||||
|
||||
(defun helm-dabbrev--get-candidates (dabbrev &optional limit)
|
||||
(cl-assert dabbrev nil "[No Match]")
|
||||
(helm-dabbrev--collect
|
||||
dabbrev (or limit helm-dabbrev-candidates-number-limit)
|
||||
(cl-case helm-dabbrev-case-fold-search
|
||||
(smart (helm-set-case-fold-search-1 dabbrev))
|
||||
(t helm-dabbrev-case-fold-search))
|
||||
helm-dabbrev-always-search-all))
|
||||
|
||||
(defun helm-dabbrev-default-action (candidate)
|
||||
(with-helm-current-buffer
|
||||
(let* ((limits (helm-bounds-of-thing-before-point
|
||||
helm-dabbrev-separator-regexp))
|
||||
(beg (car limits))
|
||||
(end (point)))
|
||||
(run-with-timer
|
||||
0.01 nil
|
||||
'helm-insert-completion-at-point
|
||||
beg end candidate))))
|
||||
|
||||
;;;###autoload
|
||||
(cl-defun helm-dabbrev ()
|
||||
"Preconfigured helm for dynamic abbreviations."
|
||||
(interactive)
|
||||
(let ((dabbrev (helm-thing-before-point
|
||||
nil helm-dabbrev-separator-regexp))
|
||||
(limits (helm-bounds-of-thing-before-point
|
||||
helm-dabbrev-separator-regexp))
|
||||
(enable-recursive-minibuffers t)
|
||||
(cycling-disabled-p (or (null helm-dabbrev-cycle-threshold)
|
||||
(zerop helm-dabbrev-cycle-threshold)))
|
||||
(helm-execute-action-at-once-if-one t)
|
||||
(helm-quit-if-no-candidate
|
||||
(lambda ()
|
||||
(message "[Helm-dabbrev: No expansion found]"))))
|
||||
(cl-assert (and (stringp dabbrev) (not (string= dabbrev "")))
|
||||
nil "[Helm-dabbrev: Nothing found before point]")
|
||||
(when (and
|
||||
;; have been called at least once.
|
||||
(helm-dabbrev-info-p helm-dabbrev--data)
|
||||
;; But user have moved with some other command
|
||||
;; in the meaning time.
|
||||
(not (eq last-command 'helm-dabbrev)))
|
||||
(setq helm-dabbrev--data nil))
|
||||
;; When candidates are requested in helm directly without cycling,
|
||||
;; we need them right now before running helm, so no need to use a
|
||||
;; thread here.
|
||||
(when cycling-disabled-p
|
||||
(setq helm-dabbrev--cache (helm-dabbrev--get-candidates dabbrev)))
|
||||
(unless (or cycling-disabled-p
|
||||
(helm-dabbrev-info-p helm-dabbrev--data))
|
||||
(setq helm-dabbrev--data
|
||||
(make-helm-dabbrev-info
|
||||
:dabbrev dabbrev
|
||||
:limits limits
|
||||
:iterator
|
||||
(helm-iter-list
|
||||
(cl-loop for i in (helm-dabbrev--get-candidates
|
||||
dabbrev helm-dabbrev-cycle-threshold)
|
||||
when (string-match-p
|
||||
(concat "^" (regexp-quote dabbrev)) i)
|
||||
collect i))))
|
||||
;; Thread is released as soon as helm-dabbrev exits after first
|
||||
;; insertion so this is unusable for now, keep it like this for
|
||||
;; now hooping the situation with threads will be improved in
|
||||
;; emacs. The idea is to compute whole list of candidates in
|
||||
;; background while cycling with the first
|
||||
;; helm-dabbrev-cycle-threshold ones.
|
||||
(when (and (fboundp 'make-thread) helm-dabbrev-use-thread)
|
||||
(setq helm-dabbrev--current-thread
|
||||
(make-thread
|
||||
(lambda ()
|
||||
(setq helm-dabbrev--cache
|
||||
(helm-dabbrev--get-candidates dabbrev)))))))
|
||||
(let ((iter (and (helm-dabbrev-info-p helm-dabbrev--data)
|
||||
(helm-dabbrev-info-iterator helm-dabbrev--data)))
|
||||
deactivate-mark)
|
||||
;; Cycle until iterator is consumed.
|
||||
(helm-aif (and iter (helm-iter-next iter))
|
||||
(progn
|
||||
(helm-insert-completion-at-point
|
||||
(car (helm-dabbrev-info-limits helm-dabbrev--data))
|
||||
;; END is the end of the previous inserted string, not
|
||||
;; the end (apart for first insertion) of the initial string.
|
||||
(cdr limits) it)
|
||||
;; Move already tried candidates to end of list.
|
||||
(push it helm-dabbrev--already-tried))
|
||||
;; Iterator is now empty, reset dabbrev to initial value
|
||||
;; and start helm completion.
|
||||
(let* ((old-dabbrev (if (helm-dabbrev-info-p helm-dabbrev--data)
|
||||
(helm-dabbrev-info-dabbrev helm-dabbrev--data)
|
||||
dabbrev))
|
||||
(only-one (null (cdr (all-completions
|
||||
old-dabbrev
|
||||
helm-dabbrev--already-tried)))))
|
||||
(unless helm-dabbrev-use-thread
|
||||
(message "Waiting for helm-dabbrev candidates...")
|
||||
(setq helm-dabbrev--cache
|
||||
(helm-dabbrev--get-candidates old-dabbrev)))
|
||||
;; If the length of candidates is only one when computed
|
||||
;; that's mean the unique matched item have already been
|
||||
;; inserted by the iterator, so no need to reinsert the old dabbrev,
|
||||
;; just let helm exiting with "No expansion found".
|
||||
(unless (or only-one cycling-disabled-p)
|
||||
(setq dabbrev old-dabbrev
|
||||
limits (helm-dabbrev-info-limits helm-dabbrev--data))
|
||||
(setq helm-dabbrev--data nil)
|
||||
(delete-region (car limits) (point))
|
||||
(insert dabbrev))
|
||||
;; Cycling is finished, block until helm-dabbrev--cache have
|
||||
;; finished to complete.
|
||||
(when (and (fboundp 'thread-join)
|
||||
helm-dabbrev-use-thread
|
||||
(thread-alive-p helm-dabbrev--current-thread))
|
||||
(thread-join helm-dabbrev--current-thread))
|
||||
(when (and (null cycling-disabled-p) only-one)
|
||||
(cl-return-from helm-dabbrev
|
||||
(message "[Helm-dabbrev: No expansion found]")))
|
||||
(with-helm-show-completion (car limits) (cdr limits)
|
||||
(unwind-protect
|
||||
(helm :sources
|
||||
(helm-build-in-buffer-source "Dabbrev Expand"
|
||||
:data
|
||||
(cl-loop for cand in helm-dabbrev--cache
|
||||
unless
|
||||
(member cand helm-dabbrev--already-tried)
|
||||
collect cand into lst
|
||||
finally return
|
||||
(append lst helm-dabbrev--already-tried))
|
||||
:persistent-action 'ignore
|
||||
:persistent-help "DoNothing"
|
||||
:keymap helm-dabbrev-map
|
||||
:action 'helm-dabbrev-default-action
|
||||
:group 'helm-dabbrev)
|
||||
:buffer "*helm dabbrev*"
|
||||
:input (concat "^" dabbrev " ")
|
||||
:resume 'noresume
|
||||
:allow-nest t)
|
||||
(setq helm-dabbrev--already-tried nil))))))))
|
||||
|
||||
(provide 'helm-dabbrev)
|
||||
|
||||
;; Local Variables:
|
||||
;; byte-compile-warnings: (not obsolete)
|
||||
;; coding: utf-8
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
;;; helm-dabbrev.el ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-dabbrev.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-dabbrev.elc
Normal file
Binary file not shown.
87
elpa/helm-20191004.1946/helm-easymenu.el
Normal file
87
elpa/helm-20191004.1946/helm-easymenu.el
Normal file
@@ -0,0 +1,87 @@
|
||||
;;; helm-easymenu.el --- Helm easymenu definitions. -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2015 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'easymenu)
|
||||
|
||||
(easy-menu-add-item
|
||||
nil '("Tools")
|
||||
'("Helm"
|
||||
["Find any Files/Buffers" helm-multi-files t]
|
||||
["Helm Everywhere (Toggle)" helm-mode t]
|
||||
["Helm resume" helm-resume t]
|
||||
"----"
|
||||
("Files"
|
||||
["Find files" helm-find-files t]
|
||||
["Recent Files" helm-recentf t]
|
||||
["Locate" helm-locate t]
|
||||
["Search Files with find" helm-find t]
|
||||
["Bookmarks" helm-filtered-bookmarks t])
|
||||
("Buffers"
|
||||
["Find buffers" helm-buffers-list t])
|
||||
("Commands"
|
||||
["Emacs Commands" helm-M-x t]
|
||||
["Externals Commands" helm-run-external-command t])
|
||||
("Help"
|
||||
["Helm Apropos" helm-apropos t])
|
||||
("Info"
|
||||
["Info at point" helm-info-at-point t]
|
||||
["Emacs Manual index" helm-info-emacs t]
|
||||
["Gnus Manual index" helm-info-gnus t]
|
||||
["Helm documentation" helm-documentation t])
|
||||
("Elpa"
|
||||
["Elisp packages" helm-list-elisp-packages t]
|
||||
["Elisp packages no fetch" helm-list-elisp-packages-no-fetch t])
|
||||
("Tools"
|
||||
["Occur" helm-occur t]
|
||||
["Grep current directory with AG" helm-do-grep-ag t]
|
||||
["Gid" helm-gid t]
|
||||
["Etags" helm-etags-select t]
|
||||
["Lisp complete at point" helm-lisp-completion-at-point t]
|
||||
["Browse Kill ring" helm-show-kill-ring t]
|
||||
["Browse register" helm-register t]
|
||||
["Mark Ring" helm-all-mark-rings t]
|
||||
["Regexp handler" helm-regexp t]
|
||||
["Colors & Faces" helm-colors t]
|
||||
["Show xfonts" helm-select-xfont t]
|
||||
["Ucs Symbols" helm-ucs t]
|
||||
["Imenu" helm-imenu t]
|
||||
["Imenu all" helm-imenu-in-all-buffers t]
|
||||
["Semantic or Imenu" helm-semantic-or-imenu t]
|
||||
["Google Suggest" helm-google-suggest t]
|
||||
["Eval expression" helm-eval-expression-with-eldoc t]
|
||||
["Calcul expression" helm-calcul-expression t]
|
||||
["Man pages" helm-man-woman t]
|
||||
["Top externals process" helm-top t]
|
||||
["Emacs internals process" helm-list-emacs-process t])
|
||||
"----"
|
||||
["Preferred Options" helm-configuration t])
|
||||
"Spell Checking")
|
||||
|
||||
(easy-menu-add-item nil '("Tools") '("----") "Spell Checking")
|
||||
|
||||
|
||||
(provide 'helm-easymenu)
|
||||
|
||||
;; Local Variables:
|
||||
;; byte-compile-warnings: (not obsolete)
|
||||
;; coding: utf-8
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
;;; helm-easymenu.el ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-easymenu.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-easymenu.elc
Normal file
Binary file not shown.
463
elpa/helm-20191004.1946/helm-elisp-package.el
Normal file
463
elpa/helm-20191004.1946/helm-elisp-package.el
Normal file
@@ -0,0 +1,463 @@
|
||||
;;; helm-elisp-package.el --- helm interface for package.el -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
(require 'cl-lib)
|
||||
(require 'helm)
|
||||
(require 'helm-help)
|
||||
(require 'package)
|
||||
|
||||
(defgroup helm-el-package nil
|
||||
"helm elisp packages."
|
||||
:group 'helm)
|
||||
|
||||
(defcustom helm-el-package-initial-filter 'all
|
||||
"Show only installed, upgraded or all packages at startup."
|
||||
:group 'helm-el-package
|
||||
:type '(radio :tag "Initial filter for elisp packages"
|
||||
(const :tag "Show all packages" all)
|
||||
(const :tag "Show installed packages" installed)
|
||||
(const :tag "Show not installed packages" uninstalled)
|
||||
(const :tag "Show upgradable packages" upgrade)))
|
||||
|
||||
(defcustom helm-el-truncate-lines t
|
||||
"Truncate lines in helm-buffer when non--nil."
|
||||
:group 'helm-el-package
|
||||
:type 'boolean)
|
||||
|
||||
;; internals vars
|
||||
(defvar helm-el-package--show-only 'all)
|
||||
(defvar helm-el-package--initialized-p nil)
|
||||
(defvar helm-el-package--tabulated-list nil)
|
||||
(defvar helm-el-package--upgrades nil)
|
||||
(defvar helm-el-package--removable-packages nil)
|
||||
|
||||
;; Shutup bytecompiler for emacs-24*
|
||||
(defvar package-menu-async) ; Only available on emacs-25.
|
||||
(declare-function async-byte-recompile-directory "ext:async-bytecomp.el")
|
||||
|
||||
(defun helm-el-package--init ()
|
||||
(let (package-menu-async
|
||||
(inhibit-read-only t))
|
||||
(when (null package-alist)
|
||||
(setq helm-el-package--show-only 'all))
|
||||
(when (setq helm-el-package--removable-packages
|
||||
(package--removable-packages))
|
||||
(package-autoremove))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(save-selected-window
|
||||
(if helm-el-package--initialized-p
|
||||
;; Use this as `list-packages' doesn't work
|
||||
;; properly (empty buffer) when called from lisp
|
||||
;; with 'no-fetch (emacs-25 WA).
|
||||
(package-show-package-list)
|
||||
(when helm--force-updating-p (message "Refreshing packages list..."))
|
||||
(list-packages helm-el-package--initialized-p))
|
||||
(setq helm-el-package--initialized-p t)
|
||||
(message nil))
|
||||
(helm-init-candidates-in-buffer
|
||||
'global
|
||||
(with-current-buffer (get-buffer "*Packages*")
|
||||
(setq helm-el-package--tabulated-list tabulated-list-entries)
|
||||
(remove-text-properties (point-min) (point-max)
|
||||
'(read-only button follow-link category))
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward "^[ \t]+" nil t)
|
||||
(replace-match ""))
|
||||
(buffer-string)))
|
||||
(setq helm-el-package--upgrades (helm-el-package-menu--find-upgrades))
|
||||
(if helm--force-updating-p
|
||||
(if helm-el-package--upgrades
|
||||
(message "Refreshing packages list done, [%d] package(s) to upgrade"
|
||||
(length helm-el-package--upgrades))
|
||||
(message "Refreshing packages list done, no upgrades available"))
|
||||
(setq helm-el-package--show-only (if helm-el-package--upgrades
|
||||
'upgrade
|
||||
helm-el-package-initial-filter))))
|
||||
(kill-buffer "*Packages*"))))
|
||||
|
||||
(defun helm-el-package-describe (candidate)
|
||||
(let ((id (get-text-property 0 'tabulated-list-id candidate)))
|
||||
(describe-package (package-desc-name id))))
|
||||
|
||||
(defun helm-el-package-visit-homepage (candidate)
|
||||
(let* ((id (get-text-property 0 'tabulated-list-id candidate))
|
||||
(pkg (package-desc-name id))
|
||||
(desc (cadr (assoc pkg package-archive-contents)))
|
||||
(extras (package-desc-extras desc))
|
||||
(url (and (listp extras) (cdr-safe (assoc :url extras)))))
|
||||
(if (stringp url)
|
||||
(browse-url url)
|
||||
(message "Package %s has no homepage"
|
||||
(propertize (symbol-name pkg)
|
||||
'face 'font-lock-keyword-face)))))
|
||||
|
||||
(defun helm-el-run-visit-homepage ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-el-package-visit-homepage)))
|
||||
(put 'helm-el-run-visit-homepage 'helm-only t)
|
||||
|
||||
(defun helm-elisp-package--pkg-name (pkg)
|
||||
(if (package-desc-p pkg)
|
||||
(package-desc-name pkg)
|
||||
pkg))
|
||||
|
||||
(defun helm-el-package-install-1 (pkg-list)
|
||||
(cl-loop with mkd = pkg-list
|
||||
for p in mkd
|
||||
for id = (get-text-property 0 'tabulated-list-id p)
|
||||
for name = (helm-elisp-package--pkg-name id)
|
||||
do (package-install id t)
|
||||
when (helm-aand (assq name package-alist)
|
||||
(package-desc-dir (cadr it))
|
||||
(file-exists-p it))
|
||||
collect id into installed-list and
|
||||
do (unless (package--user-selected-p name)
|
||||
(package--save-selected-packages
|
||||
(cons name package-selected-packages)))
|
||||
finally do (message (format "%d packages installed:\n(%s)"
|
||||
(length installed-list)
|
||||
(mapconcat #'package-desc-full-name
|
||||
installed-list ", ")))))
|
||||
|
||||
(defun helm-el-package-install (_candidate)
|
||||
(helm-el-package-install-1 (helm-marked-candidates)))
|
||||
|
||||
(defun helm-el-run-package-install ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-el-package-install)))
|
||||
(put 'helm-el-run-package-install 'helm-only t)
|
||||
|
||||
(defun helm-el-package-uninstall-1 (pkg-list &optional force)
|
||||
(cl-loop with mkd = pkg-list
|
||||
for p in mkd
|
||||
for id = (get-text-property 0 'tabulated-list-id p)
|
||||
do
|
||||
(condition-case-unless-debug err
|
||||
(package-delete id force)
|
||||
(error (message (cadr err))))
|
||||
;; Seems like package-descs are symbols with props instead of
|
||||
;; vectors in emacs-27, use package-desc-name to ensure
|
||||
;; compatibility in all emacs versions.
|
||||
unless (assoc (package-desc-name id) package-alist)
|
||||
collect id into delete-list
|
||||
finally do (if delete-list
|
||||
(message (format "%d packages deleted:\n(%s)"
|
||||
(length delete-list)
|
||||
(mapconcat #'package-desc-full-name
|
||||
delete-list ", ")))
|
||||
"No package deleted")))
|
||||
|
||||
(defun helm-el-package-uninstall (_candidate)
|
||||
(helm-el-package-uninstall-1 (helm-marked-candidates) helm-current-prefix-arg))
|
||||
|
||||
(defun helm-el-run-package-uninstall ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-el-package-uninstall)))
|
||||
(put 'helm-el-run-package-uninstall 'helm-only t)
|
||||
|
||||
(defun helm-el-package-menu--find-upgrades ()
|
||||
(cl-loop for entry in helm-el-package--tabulated-list
|
||||
for pkg-desc = (car entry)
|
||||
for status = (package-desc-status pkg-desc)
|
||||
;; A dependency.
|
||||
when (string= status "dependency")
|
||||
collect pkg-desc into dependencies
|
||||
;; An installed package used as dependency (user have
|
||||
;; installed this package explicitely).
|
||||
when (package--used-elsewhere-p pkg-desc)
|
||||
collect pkg-desc into installed-as-dep
|
||||
;; An installed package.
|
||||
when (member status '("installed" "unsigned"))
|
||||
collect pkg-desc into installed
|
||||
when (member status '("available" "new"))
|
||||
collect (cons (package-desc-name pkg-desc) pkg-desc) into available
|
||||
finally return
|
||||
;; Always try to upgrade dependencies before installed.
|
||||
(cl-loop with all = (append dependencies installed-as-dep installed)
|
||||
for pkg in all
|
||||
for name = (package-desc-name pkg)
|
||||
for avail-pkg = (assq name available)
|
||||
when (and avail-pkg
|
||||
(version-list-<
|
||||
(package-desc-version pkg)
|
||||
(package-desc-version (cdr avail-pkg))))
|
||||
collect avail-pkg)))
|
||||
|
||||
(defun helm-el-package--user-installed-p (package)
|
||||
"Return non-nil if PACKAGE is a user-installed package."
|
||||
(let* ((assoc (assq package package-alist))
|
||||
(pkg-desc (and assoc (cadr assoc)))
|
||||
(dir (and pkg-desc (package-desc-dir pkg-desc))))
|
||||
(when dir
|
||||
(file-in-directory-p dir package-user-dir))))
|
||||
|
||||
(defun helm-el-package-upgrade-1 (pkg-list)
|
||||
(cl-loop for p in pkg-list
|
||||
for pkg-desc = (car p)
|
||||
for pkg-name = (package-desc-name pkg-desc)
|
||||
for upgrade = (cdr (assq pkg-name
|
||||
helm-el-package--upgrades))
|
||||
do
|
||||
(cond (;; Install.
|
||||
(equal pkg-desc upgrade)
|
||||
(message "Installing package `%s'" pkg-name)
|
||||
(package-install pkg-desc t))
|
||||
(;; Do nothing.
|
||||
(or (null upgrade)
|
||||
;; This may happen when a Elpa version of pkg
|
||||
;; is installed and need upgrade and pkg is as
|
||||
;; well a builtin package.
|
||||
(package-built-in-p pkg-name))
|
||||
(ignore))
|
||||
(;; Delete.
|
||||
t
|
||||
(message "Deleting package `%s'" pkg-name)
|
||||
(package-delete pkg-desc t t)))))
|
||||
|
||||
(defun helm-el-package-upgrade (_candidate)
|
||||
(helm-el-package-upgrade-1
|
||||
(cl-loop with pkgs = (helm-marked-candidates)
|
||||
for p in helm-el-package--tabulated-list
|
||||
for pkg = (car p)
|
||||
if (member (symbol-name (package-desc-name pkg)) pkgs)
|
||||
collect p)))
|
||||
|
||||
(defun helm-el-run-package-upgrade ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-el-package-upgrade)))
|
||||
(put 'helm-el-run-package-upgrade 'helm-only t)
|
||||
|
||||
(defun helm-el-package-upgrade-all ()
|
||||
(if helm-el-package--upgrades
|
||||
(with-helm-display-marked-candidates
|
||||
helm-marked-buffer-name (mapcar (lambda (x) (symbol-name (car x)))
|
||||
helm-el-package--upgrades)
|
||||
(when (y-or-n-p "Upgrade all packages? ")
|
||||
(helm-el-package-upgrade-1 helm-el-package--tabulated-list)))
|
||||
(message "No packages to upgrade actually!")))
|
||||
|
||||
(defun helm-el-package-upgrade-all-action (_candidate)
|
||||
(helm-el-package-upgrade-all))
|
||||
|
||||
(defun helm-el-run-package-upgrade-all ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-el-package-upgrade-all-action)))
|
||||
(put 'helm-el-run-package-upgrade-all 'helm-only t)
|
||||
|
||||
(defun helm-el-package--transformer (candidates _source)
|
||||
(cl-loop for c in candidates
|
||||
for disp = (concat " " c)
|
||||
for id = (get-text-property 0 'tabulated-list-id c)
|
||||
for name = (and id (package-desc-name id))
|
||||
for desc = (package-desc-status id)
|
||||
for built-in-p = (and (package-built-in-p name)
|
||||
(not (member desc '("available" "new"
|
||||
"installed" "dependency"))))
|
||||
for installed-p = (member desc '("installed" "dependency"))
|
||||
for upgrade-p = (assq name helm-el-package--upgrades)
|
||||
for user-installed-p = (memq name package-selected-packages)
|
||||
do (when (and user-installed-p (not upgrade-p))
|
||||
(put-text-property 0 2 'display "S " disp))
|
||||
do (when (or (memq name helm-el-package--removable-packages)
|
||||
(and upgrade-p installed-p))
|
||||
(put-text-property 0 2 'display "U " disp)
|
||||
(put-text-property
|
||||
2 (+ (length (symbol-name name)) 2)
|
||||
'face 'font-lock-variable-name-face disp))
|
||||
do (when (and upgrade-p (not installed-p) (not built-in-p))
|
||||
(put-text-property 0 2 'display "I " disp))
|
||||
for cand = (cons disp (car (split-string disp)))
|
||||
when (or (and built-in-p
|
||||
(eq helm-el-package--show-only 'built-in))
|
||||
(and upgrade-p
|
||||
(eq helm-el-package--show-only 'upgrade))
|
||||
(and installed-p
|
||||
(eq helm-el-package--show-only 'installed))
|
||||
(and (not installed-p)
|
||||
(not built-in-p)
|
||||
(eq helm-el-package--show-only 'uninstalled))
|
||||
(eq helm-el-package--show-only 'all))
|
||||
collect cand))
|
||||
|
||||
(defun helm-el-package-show-built-in ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(setq helm-el-package--show-only 'built-in)
|
||||
(helm-update)))
|
||||
(put 'helm-el-package-show-built-in 'helm-only t)
|
||||
|
||||
(defun helm-el-package-show-upgrade ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(setq helm-el-package--show-only 'upgrade)
|
||||
(helm-update)))
|
||||
(put 'helm-el-package-show-upgrade 'helm-only t)
|
||||
|
||||
(defun helm-el-package-show-installed ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(setq helm-el-package--show-only 'installed)
|
||||
(helm-update)))
|
||||
(put 'helm-el-package-show-installed 'helm-only t)
|
||||
|
||||
(defun helm-el-package-show-all ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(setq helm-el-package--show-only 'all)
|
||||
(helm-update)))
|
||||
(put 'helm-el-package-show-all 'helm-only t)
|
||||
|
||||
(defun helm-el-package-show-uninstalled ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(setq helm-el-package--show-only 'uninstalled)
|
||||
(helm-update)))
|
||||
(put 'helm-el-package-show-uninstalled 'helm-only t)
|
||||
|
||||
(defvar helm-el-package-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map helm-map)
|
||||
(define-key map (kbd "M-I") 'helm-el-package-show-installed)
|
||||
(define-key map (kbd "M-O") 'helm-el-package-show-uninstalled)
|
||||
(define-key map (kbd "M-U") 'helm-el-package-show-upgrade)
|
||||
(define-key map (kbd "M-B") 'helm-el-package-show-built-in)
|
||||
(define-key map (kbd "M-A") 'helm-el-package-show-all)
|
||||
(define-key map (kbd "C-c i") 'helm-el-run-package-install)
|
||||
(define-key map (kbd "C-c r") 'helm-el-run-package-reinstall)
|
||||
(define-key map (kbd "C-c d") 'helm-el-run-package-uninstall)
|
||||
(define-key map (kbd "C-c u") 'helm-el-run-package-upgrade)
|
||||
(define-key map (kbd "C-c U") 'helm-el-run-package-upgrade-all)
|
||||
(define-key map (kbd "C-c @") 'helm-el-run-visit-homepage)
|
||||
map))
|
||||
|
||||
(defvar helm-source-list-el-package nil)
|
||||
(defclass helm-list-el-package-source (helm-source-in-buffer)
|
||||
((init :initform 'helm-el-package--init)
|
||||
(get-line :initform 'buffer-substring)
|
||||
(filtered-candidate-transformer :initform 'helm-el-package--transformer)
|
||||
(action-transformer :initform 'helm-el-package--action-transformer)
|
||||
(help-message :initform 'helm-el-package-help-message)
|
||||
(keymap :initform helm-el-package-map)
|
||||
(update :initform 'helm-el-package--update)
|
||||
(candidate-number-limit :initform 9999)
|
||||
(action :initform '(("Describe package" . helm-el-package-describe)
|
||||
("Visit homepage" . helm-el-package-visit-homepage)))
|
||||
(group :initform 'helm-el-package)))
|
||||
|
||||
(defun helm-el-package--action-transformer (actions candidate)
|
||||
(let* ((pkg-desc (get-text-property 0 'tabulated-list-id candidate))
|
||||
(status (package-desc-status pkg-desc))
|
||||
(pkg-name (package-desc-name pkg-desc))
|
||||
(built-in (and (package-built-in-p pkg-name)
|
||||
(not (member status '("available" "new"
|
||||
"installed" "dependency")))))
|
||||
(acts (if helm-el-package--upgrades
|
||||
(append actions '(("Upgrade all packages"
|
||||
. helm-el-package-upgrade-all-action)))
|
||||
actions)))
|
||||
(cond (built-in '(("Describe package" . helm-el-package-describe)))
|
||||
((and (package-installed-p pkg-name)
|
||||
(cdr (assq pkg-name helm-el-package--upgrades))
|
||||
(member status '("installed" "dependency")))
|
||||
(append '(("Upgrade package(s)" . helm-el-package-upgrade)
|
||||
("Uninstall package(s)" . helm-el-package-uninstall))
|
||||
acts))
|
||||
((and (package-installed-p pkg-name)
|
||||
(cdr (assq pkg-name helm-el-package--upgrades))
|
||||
(string= status "available"))
|
||||
(append '(("Upgrade package(s)" . helm-el-package-upgrade))
|
||||
acts))
|
||||
((and (package-installed-p pkg-name)
|
||||
(or (null (package-built-in-p pkg-name))
|
||||
(and (package-built-in-p pkg-name)
|
||||
(assq pkg-name package-alist))))
|
||||
(append acts '(("Reinstall package(s)" . helm-el-package-reinstall)
|
||||
("Recompile package(s)" . helm-el-package-recompile)
|
||||
("Uninstall package(s)" . helm-el-package-uninstall))))
|
||||
(t (append acts '(("Install packages(s)" . helm-el-package-install)))))))
|
||||
|
||||
(defun helm-el-package--update ()
|
||||
(setq helm-el-package--initialized-p nil))
|
||||
|
||||
(defun helm-el-package-recompile (_pkg)
|
||||
(cl-loop for p in (helm-marked-candidates)
|
||||
do (helm-el-package-recompile-1 p)))
|
||||
|
||||
(defun helm-el-package-recompile-1 (pkg)
|
||||
(let* ((pkg-desc (get-text-property 0 'tabulated-list-id pkg))
|
||||
(dir (package-desc-dir pkg-desc)))
|
||||
(async-byte-recompile-directory dir)))
|
||||
|
||||
(defun helm-el-package-reinstall (_pkg)
|
||||
(cl-loop for p in (helm-marked-candidates)
|
||||
for pkg-desc = (get-text-property 0 'tabulated-list-id p)
|
||||
do (helm-el-package-reinstall-1 pkg-desc)))
|
||||
|
||||
(defun helm-el-package-reinstall-1 (pkg-desc)
|
||||
(let ((name (package-desc-name pkg-desc)))
|
||||
(package-delete pkg-desc 'force 'nosave)
|
||||
;; pkg-desc contain the description
|
||||
;; of the installed package just removed
|
||||
;; and is BTW no more valid.
|
||||
;; Use the entry in package-archive-content
|
||||
;; which is the non--installed package entry.
|
||||
;; For some reason `package-install'
|
||||
;; need a pkg-desc (package-desc-p) for the build-in
|
||||
;; packages already installed, the name (as symbol)
|
||||
;; fails with such packages.
|
||||
(package-install
|
||||
(cadr (assq name package-archive-contents)) t)))
|
||||
|
||||
(defun helm-el-run-package-reinstall ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-el-package-reinstall)))
|
||||
(put 'helm-el-run-package-reinstall 'helm-only t)
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-list-elisp-packages (arg)
|
||||
"Preconfigured helm for listing and handling emacs packages."
|
||||
(interactive "P")
|
||||
(when arg (setq helm-el-package--initialized-p nil))
|
||||
(unless helm-source-list-el-package
|
||||
(setq helm-source-list-el-package
|
||||
(helm-make-source "list packages" 'helm-list-el-package-source)))
|
||||
(helm :sources 'helm-source-list-el-package
|
||||
:truncate-lines helm-el-truncate-lines
|
||||
:full-frame t
|
||||
:buffer "*helm list packages*"))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-list-elisp-packages-no-fetch (arg)
|
||||
"Preconfigured helm for emacs packages.
|
||||
|
||||
Same as `helm-list-elisp-packages' but don't fetch packages on remote.
|
||||
Called with a prefix ARG always fetch packages on remote."
|
||||
(interactive "P")
|
||||
(let ((helm-el-package--initialized-p (null arg)))
|
||||
(helm-list-elisp-packages nil)))
|
||||
|
||||
(provide 'helm-elisp-package)
|
||||
|
||||
;;; helm-elisp-package.el ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-elisp-package.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-elisp-package.elc
Normal file
Binary file not shown.
984
elpa/helm-20191004.1946/helm-elisp.el
Normal file
984
elpa/helm-20191004.1946/helm-elisp.el
Normal file
@@ -0,0 +1,984 @@
|
||||
;;; helm-elisp.el --- Elisp symbols completion for helm. -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
(require 'cl-lib)
|
||||
(require 'helm)
|
||||
(require 'helm-lib)
|
||||
(require 'helm-help)
|
||||
(require 'helm-types)
|
||||
(require 'helm-utils)
|
||||
(require 'helm-info)
|
||||
(require 'helm-eval)
|
||||
(require 'helm-files)
|
||||
|
||||
(declare-function 'helm-describe-function "helm-lib")
|
||||
(declare-function 'helm-describe-variable "helm-lib")
|
||||
(declare-function 'helm-describe-face "helm-lib")
|
||||
|
||||
|
||||
;;; Customizable values
|
||||
|
||||
(defgroup helm-elisp nil
|
||||
"Elisp related Applications and libraries for Helm."
|
||||
:group 'helm)
|
||||
|
||||
(defcustom helm-turn-on-show-completion t
|
||||
"Display candidate in `current-buffer' while moving selection when non--nil."
|
||||
:group 'helm-elisp
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom helm-show-completion-min-window-height 7
|
||||
"Minimum completion window height used in show completion.
|
||||
This is used in macro `with-helm-show-completion'."
|
||||
:group 'helm-elisp
|
||||
:type 'integer)
|
||||
|
||||
(defcustom helm-lisp-quoted-function-list
|
||||
'(funcall apply mapc cl-mapc mapcar cl-mapcar
|
||||
callf callf2 cl-callf cl-callf2 fset
|
||||
fboundp fmakunbound symbol-function)
|
||||
"List of function where quoted function completion happen.
|
||||
e.g give only function names after \(funcall '."
|
||||
:group 'helm-elisp
|
||||
:type '(repeat (choice symbol)))
|
||||
|
||||
(defcustom helm-lisp-unquoted-function-list
|
||||
'(function defadvice)
|
||||
"List of function where unquoted function completion happen.
|
||||
e.g give only function names after \(function ."
|
||||
:group 'helm-elisp
|
||||
:type '(repeat (choice symbol)))
|
||||
|
||||
(defcustom helm-apropos-fuzzy-match nil
|
||||
"Enable fuzzy matching for `helm-apropos' when non-nil."
|
||||
:group 'helm-elisp
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom helm-lisp-fuzzy-completion nil
|
||||
"Enable fuzzy matching in emacs-lisp completion when non-nil.
|
||||
NOTE: This enable fuzzy matching in helm native implementation of
|
||||
elisp completion, but not on helmized elisp completion, i.e
|
||||
fuzzy completion is not available in `completion-at-point'."
|
||||
:group 'helm-elisp
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom helm-apropos-function-list '(helm-def-source--emacs-commands
|
||||
helm-def-source--emacs-functions
|
||||
helm-def-source--eieio-classes
|
||||
helm-def-source--eieio-generic
|
||||
helm-def-source--emacs-variables
|
||||
helm-def-source--emacs-faces)
|
||||
"A list of functions that build helm sources to use in `helm-apropos'."
|
||||
:group 'helm-elisp
|
||||
:type '(repeat (choice symbol)))
|
||||
|
||||
(defcustom helm-apropos-defaut-info-lookup-sources '(helm-source-info-elisp
|
||||
helm-source-info-cl
|
||||
helm-source-info-eieio)
|
||||
"A list of sources to look into when searching info page of a symbol."
|
||||
:group 'helm-elisp
|
||||
:type '(repeat (choice symbol)))
|
||||
|
||||
(defcustom helm-show-completion-display-function
|
||||
(if (display-graphic-p)
|
||||
#'helm-display-buffer-in-own-frame
|
||||
#'helm-show-completion-default-display-function)
|
||||
"The function used to display helm completion buffer.
|
||||
|
||||
This function is used by `with-helm-show-completion', when nil
|
||||
fallback to `helm-default-display-buffer'.
|
||||
|
||||
Default is to use a separate frame on graphic display and
|
||||
`helm-show-completion-default-display-function' on non graphic
|
||||
display."
|
||||
:group 'helm-elisp
|
||||
:type 'function)
|
||||
|
||||
;;; Faces
|
||||
;;
|
||||
;;
|
||||
(defgroup helm-elisp-faces nil
|
||||
"Customize the appearance of helm-elisp."
|
||||
:prefix "helm-"
|
||||
:group 'helm-elisp
|
||||
:group 'helm-faces)
|
||||
|
||||
(defface helm-lisp-show-completion
|
||||
'((t (:background "DarkSlateGray")))
|
||||
"Face used for showing candidates in `helm-lisp-completion'."
|
||||
:group 'helm-elisp-faces)
|
||||
|
||||
(defface helm-lisp-completion-info
|
||||
'((t (:foreground "red")))
|
||||
"Face used for showing info in `helm-lisp-completion'."
|
||||
:group 'helm-elisp-faces)
|
||||
|
||||
(defcustom helm-elisp-help-function
|
||||
'helm-elisp-show-help
|
||||
"Function for displaying help for Lisp symbols."
|
||||
:group 'helm-elisp
|
||||
:type '(choice (function :tag "Open help for the symbol."
|
||||
helm-elisp-show-help)
|
||||
(function :tag "Show one liner in modeline."
|
||||
helm-elisp-show-doc-modeline)))
|
||||
|
||||
(defcustom helm-locate-library-fuzzy-match t
|
||||
"Enable fuzzy-matching in `helm-locate-library' when non--nil."
|
||||
:type 'boolean
|
||||
:group 'helm-elisp)
|
||||
|
||||
|
||||
;;; Show completion.
|
||||
;;
|
||||
;; Provide show completion with macro `with-helm-show-completion'.
|
||||
|
||||
(defvar helm-show-completion-overlay nil)
|
||||
|
||||
;; Called each time cursor move in helm-buffer.
|
||||
(defun helm-show-completion ()
|
||||
(with-helm-current-buffer
|
||||
(overlay-put helm-show-completion-overlay
|
||||
'display (substring-no-properties
|
||||
(helm-get-selection)))))
|
||||
|
||||
(defun helm-show-completion-init-overlay (beg end)
|
||||
(setq helm-show-completion-overlay (make-overlay beg end))
|
||||
(overlay-put helm-show-completion-overlay
|
||||
'face 'helm-lisp-show-completion))
|
||||
|
||||
(defun helm-show-completion-default-display-function (buffer &rest _args)
|
||||
"A special resized helm window is used depending on position in BUFFER."
|
||||
(with-selected-window (selected-window)
|
||||
(if (window-dedicated-p)
|
||||
(helm-default-display-buffer buffer)
|
||||
(let* ((screen-size (+ (count-screen-lines (window-start) (point) t)
|
||||
1 ; mode-line
|
||||
(if header-line-format 1 0))) ; header-line
|
||||
(def-size (- (window-height)
|
||||
helm-show-completion-min-window-height))
|
||||
(upper-height (max window-min-height (min screen-size def-size)))
|
||||
split-window-keep-point)
|
||||
(recenter -1)
|
||||
(set-window-buffer (if (active-minibuffer-window)
|
||||
(minibuffer-selected-window)
|
||||
(split-window nil upper-height
|
||||
helm-split-window-default-side))
|
||||
buffer)))))
|
||||
|
||||
(defmacro with-helm-show-completion (beg end &rest body)
|
||||
"Show helm candidate in an overlay at point.
|
||||
BEG and END are the beginning and end position of the current completion
|
||||
in `helm-current-buffer'.
|
||||
BODY is an helm call where we want to enable show completion.
|
||||
If `helm-turn-on-show-completion' is nil do nothing."
|
||||
(declare (indent 2) (debug t))
|
||||
`(unwind-protect
|
||||
(if helm-turn-on-show-completion
|
||||
(let ((helm-move-selection-after-hook
|
||||
(append (list 'helm-show-completion)
|
||||
helm-move-selection-after-hook))
|
||||
(helm-split-window-default-side
|
||||
(if (eq helm-split-window-default-side 'same)
|
||||
'below helm-split-window-default-side))
|
||||
helm-split-window-inside-p
|
||||
helm-reuse-last-window-split-state)
|
||||
(helm-set-local-variable
|
||||
'helm-display-function
|
||||
(or helm-show-completion-display-function
|
||||
'helm-default-display-buffer))
|
||||
(helm-show-completion-init-overlay ,beg ,end)
|
||||
,@body)
|
||||
,@body)
|
||||
(when (and helm-show-completion-overlay
|
||||
(overlayp helm-show-completion-overlay))
|
||||
(delete-overlay helm-show-completion-overlay))))
|
||||
|
||||
|
||||
;;; Lisp symbol completion.
|
||||
;;
|
||||
;;
|
||||
(defun helm-lisp-completion--predicate-at-point (beg)
|
||||
;; Return a predicate for `all-completions'.
|
||||
(let ((fn-sym-p (lambda ()
|
||||
(or
|
||||
(and (eq (char-before) ?\ )
|
||||
(save-excursion
|
||||
(skip-syntax-backward " " (point-at-bol))
|
||||
(memq (symbol-at-point)
|
||||
helm-lisp-unquoted-function-list)))
|
||||
(and (eq (char-before) ?\')
|
||||
(save-excursion
|
||||
(forward-char -1)
|
||||
(eq (char-before) ?\#)))))))
|
||||
(save-excursion
|
||||
(goto-char beg)
|
||||
(if (or
|
||||
;; Complete on all symbols in non--lisp modes (logs mail etc..)
|
||||
(not (memq major-mode '(emacs-lisp-mode
|
||||
lisp-interaction-mode
|
||||
inferior-emacs-lisp-mode)))
|
||||
(not (or (funcall fn-sym-p)
|
||||
(and (eq (char-before) ?\')
|
||||
(save-excursion
|
||||
(forward-char (if (funcall fn-sym-p) -2 -1))
|
||||
(skip-syntax-backward " " (point-at-bol))
|
||||
(memq (symbol-at-point)
|
||||
helm-lisp-quoted-function-list)))
|
||||
(eq (char-before) ?\())) ; no paren before str.
|
||||
;; Looks like we are in a let statement.
|
||||
(condition-case nil
|
||||
(progn (up-list -2) (forward-char 1)
|
||||
(eq (char-after) ?\())
|
||||
(error nil)))
|
||||
(lambda (sym)
|
||||
(or (boundp sym) (fboundp sym) (symbol-plist sym)))
|
||||
#'fboundp))))
|
||||
|
||||
(defun helm-thing-before-point (&optional limits regexp)
|
||||
"Return symbol name before point.
|
||||
If REGEXP is specified return what REGEXP find before point.
|
||||
By default match the beginning of symbol before point.
|
||||
With LIMITS arg specified return the beginning and end position
|
||||
of symbol before point."
|
||||
(save-excursion
|
||||
(let (beg
|
||||
(end (point))
|
||||
(boundary (field-beginning nil nil (point-at-bol))))
|
||||
(if (re-search-backward (or regexp "\\_<") boundary t)
|
||||
(setq beg (match-end 0))
|
||||
(setq beg boundary))
|
||||
(unless (= beg end)
|
||||
(if limits
|
||||
(cons beg end)
|
||||
(buffer-substring-no-properties beg end))))))
|
||||
|
||||
(defun helm-bounds-of-thing-before-point (&optional regexp)
|
||||
"Get the beginning and end position of `helm-thing-before-point'.
|
||||
Return a cons \(beg . end\)."
|
||||
(helm-thing-before-point 'limits regexp))
|
||||
|
||||
(defun helm-insert-completion-at-point (beg end str)
|
||||
;; When there is no space after point
|
||||
;; we are completing inside a symbol or
|
||||
;; after a partial symbol with the next arg aside
|
||||
;; without space, in this case mark the region.
|
||||
;; deleting it would remove the
|
||||
;; next arg which is unwanted.
|
||||
(delete-region beg end)
|
||||
(insert str)
|
||||
(let ((pos (cdr (or (bounds-of-thing-at-point 'symbol)
|
||||
;; needed for helm-dabbrev.
|
||||
(bounds-of-thing-at-point 'filename)))))
|
||||
(when (and pos (< (point) pos))
|
||||
(push-mark pos t t))))
|
||||
|
||||
(defvar helm-lisp-completion--cache nil)
|
||||
(defvar helm-lgst-len nil)
|
||||
;;;###autoload
|
||||
(defun helm-lisp-completion-at-point ()
|
||||
"Preconfigured helm for lisp symbol completion at point."
|
||||
(interactive)
|
||||
(setq helm-lgst-len 0)
|
||||
(let* ((target (helm-thing-before-point))
|
||||
(beg (car (helm-bounds-of-thing-before-point)))
|
||||
(end (point))
|
||||
(pred (and beg (helm-lisp-completion--predicate-at-point beg)))
|
||||
(loc-vars (and (fboundp 'elisp--local-variables)
|
||||
(ignore-errors
|
||||
(mapcar #'symbol-name (elisp--local-variables)))))
|
||||
(glob-syms (and target pred (all-completions target obarray pred)))
|
||||
(candidates (append loc-vars glob-syms))
|
||||
(helm-quit-if-no-candidate t)
|
||||
(helm-execute-action-at-once-if-one t)
|
||||
(enable-recursive-minibuffers t))
|
||||
(setq helm-lisp-completion--cache (cl-loop for sym in candidates
|
||||
for len = (length sym)
|
||||
when (> len helm-lgst-len)
|
||||
do (setq helm-lgst-len len)
|
||||
collect sym))
|
||||
(if candidates
|
||||
(with-helm-show-completion beg end
|
||||
;; Overlay is initialized now in helm-current-buffer.
|
||||
(helm
|
||||
:sources (helm-build-in-buffer-source "Lisp completion"
|
||||
:data helm-lisp-completion--cache
|
||||
:persistent-action `(helm-lisp-completion-persistent-action .
|
||||
,(and (eq helm-elisp-help-function
|
||||
'helm-elisp-show-doc-modeline)
|
||||
'never-split))
|
||||
:nomark t
|
||||
:match-part (lambda (c) (car (split-string c)))
|
||||
:fuzzy-match helm-lisp-fuzzy-completion
|
||||
:persistent-help (helm-lisp-completion-persistent-help)
|
||||
:filtered-candidate-transformer
|
||||
'helm-lisp-completion-transformer
|
||||
:action (lambda (candidate)
|
||||
(with-helm-current-buffer
|
||||
(run-with-timer
|
||||
0.01 nil
|
||||
'helm-insert-completion-at-point
|
||||
beg end candidate))))
|
||||
:input (if helm-lisp-fuzzy-completion
|
||||
target (concat target " "))
|
||||
:resume 'noresume
|
||||
:truncate-lines t
|
||||
:buffer "*helm lisp completion*"
|
||||
:allow-nest t))
|
||||
(message "[No Match]"))))
|
||||
|
||||
(defun helm-lisp-completion-persistent-action (candidate &optional name)
|
||||
"Show documentation for the function.
|
||||
Documentation is shown briefly in mode-line or completely
|
||||
in other window according to the value of `helm-elisp-help-function'."
|
||||
(funcall helm-elisp-help-function candidate name))
|
||||
|
||||
(defun helm-lisp-completion-persistent-help ()
|
||||
"Return persistent-help according to the value of `helm-elisp-help-function'"
|
||||
(cl-ecase helm-elisp-help-function
|
||||
(helm-elisp-show-doc-modeline "Show brief doc in mode-line")
|
||||
(helm-elisp-show-help "Toggle show help for the symbol")))
|
||||
|
||||
(defun helm-elisp--show-help-1 (candidate &optional name)
|
||||
(let ((sym (intern-soft candidate)))
|
||||
(cl-typecase sym
|
||||
((and fboundp boundp)
|
||||
(if (member name `(,helm-describe-function-function ,helm-describe-variable-function))
|
||||
(funcall (intern (format "helm-%s" name)) sym)
|
||||
;; When there is no way to know what to describe
|
||||
;; prefer describe-function.
|
||||
(helm-describe-function sym)))
|
||||
(fbound (helm-describe-function sym))
|
||||
(bound (helm-describe-variable sym))
|
||||
(face (helm-describe-face sym)))))
|
||||
|
||||
(defun helm-elisp-show-help (candidate &optional name)
|
||||
"Show full help for the function CANDIDATE.
|
||||
Arg NAME specify the name of the top level function
|
||||
calling helm generic completion (e.g \"describe-function\")
|
||||
which allow calling the right function when CANDIDATE symbol
|
||||
refers at the same time to variable and a function."
|
||||
(helm-elisp--persistent-help
|
||||
candidate 'helm-elisp--show-help-1 name))
|
||||
|
||||
(defun helm-elisp-show-doc-modeline (candidate &optional name)
|
||||
"Show brief documentation for the function in modeline."
|
||||
(let ((cursor-in-echo-area t)
|
||||
mode-line-in-non-selected-windows)
|
||||
(helm-show-info-in-mode-line
|
||||
(propertize
|
||||
(helm-get-first-line-documentation
|
||||
(intern candidate) name)
|
||||
'face 'helm-lisp-completion-info))))
|
||||
|
||||
(defun helm-lisp-completion-transformer (candidates _source)
|
||||
"Helm candidates transformer for lisp completion."
|
||||
(cl-loop for c in candidates
|
||||
for sym = (intern c)
|
||||
for annot = (cl-typecase sym
|
||||
(command " (Com)")
|
||||
(class " (Class)")
|
||||
(generic " (Gen)")
|
||||
(fbound " (Fun)")
|
||||
(bound " (Var)")
|
||||
(face " (Face)"))
|
||||
for spaces = (make-string (- helm-lgst-len (length c)) ? )
|
||||
collect (cons (concat c spaces annot) c) into lst
|
||||
finally return (sort lst #'helm-generic-sort-fn)))
|
||||
|
||||
(defun helm-get-first-line-documentation (sym &optional name)
|
||||
"Return first line documentation of symbol SYM.
|
||||
If SYM is not documented, return \"Not documented\"."
|
||||
(let ((doc (cl-typecase sym
|
||||
((and fboundp boundp)
|
||||
(cond ((string= name "describe-function")
|
||||
(documentation sym t))
|
||||
((string= name "describe-variable")
|
||||
(documentation-property sym 'variable-documentation t))
|
||||
(t (documentation sym t))))
|
||||
(fbound (documentation sym t))
|
||||
(bound (documentation-property sym 'variable-documentation t))
|
||||
(face (face-documentation sym)))))
|
||||
(if (and doc (not (string= doc ""))
|
||||
;; `documentation' return "\n\n(args...)"
|
||||
;; for CL-style functions.
|
||||
(not (string-match-p "^\n\n" doc)))
|
||||
(car (split-string doc "\n"))
|
||||
"Not documented")))
|
||||
|
||||
;;; File completion.
|
||||
;;
|
||||
;; Complete file name at point.
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-complete-file-name-at-point (&optional force)
|
||||
"Preconfigured helm to complete file name at point."
|
||||
(interactive)
|
||||
(require 'helm-mode)
|
||||
(let* ((tap (thing-at-point 'filename))
|
||||
beg
|
||||
(init (and tap
|
||||
(or force
|
||||
(save-excursion
|
||||
(end-of-line)
|
||||
(search-backward tap (point-at-bol) t)
|
||||
(setq beg (point))
|
||||
(looking-back "[^'`( ]" (1- (point)))))
|
||||
(expand-file-name
|
||||
(substring-no-properties tap))))
|
||||
(end (point))
|
||||
(helm-quit-if-no-candidate t)
|
||||
(helm-execute-action-at-once-if-one t)
|
||||
completion)
|
||||
(with-helm-show-completion beg end
|
||||
(setq completion (helm-read-file-name "FileName: "
|
||||
:initial-input init)))
|
||||
(when (and completion (not (string= completion "")))
|
||||
(delete-region beg end) (insert (if (string-match "^~" tap)
|
||||
(abbreviate-file-name completion)
|
||||
completion)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-lisp-indent ()
|
||||
;; It is meant to use with `helm-define-multi-key' which
|
||||
;; does not support args for functions yet, so use `current-prefix-arg'
|
||||
;; for now instead of (interactive "P").
|
||||
(interactive)
|
||||
(let ((tab-always-indent (or (eq tab-always-indent 'complete)
|
||||
tab-always-indent)))
|
||||
(indent-for-tab-command current-prefix-arg)))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-lisp-completion-or-file-name-at-point ()
|
||||
"Preconfigured helm to complete lisp symbol or filename at point.
|
||||
Filename completion happen if string start after or between a double quote."
|
||||
(interactive)
|
||||
(let* ((tap (thing-at-point 'filename)))
|
||||
(if (and tap (save-excursion
|
||||
(end-of-line)
|
||||
(search-backward tap (point-at-bol) t)
|
||||
(looking-back "[^'`( ]" (1- (point)))))
|
||||
(helm-complete-file-name-at-point)
|
||||
(helm-lisp-completion-at-point))))
|
||||
|
||||
|
||||
;;; Apropos
|
||||
;;
|
||||
;;
|
||||
(defvar helm-apropos-history nil)
|
||||
|
||||
(defun helm-apropos-init (test default)
|
||||
"Init candidates buffer for `helm-apropos' sources."
|
||||
(require 'helm-help)
|
||||
(helm-init-candidates-in-buffer 'global
|
||||
(let ((default-symbol (and (stringp default)
|
||||
(intern-soft default)))
|
||||
(symbols (all-completions "" obarray test)))
|
||||
(if (and default-symbol (funcall test default-symbol))
|
||||
(cons default-symbol symbols)
|
||||
symbols))))
|
||||
|
||||
(defun helm-apropos-init-faces (default)
|
||||
"Init candidates buffer for faces for `helm-apropos'."
|
||||
(require 'helm-help)
|
||||
(with-current-buffer (helm-candidate-buffer 'global)
|
||||
(goto-char (point-min))
|
||||
(let ((default-symbol (and (stringp default)
|
||||
(intern-soft default)))
|
||||
(faces (face-list)))
|
||||
(when (and default-symbol (facep default-symbol))
|
||||
(insert (concat default "\n")))
|
||||
(insert
|
||||
(mapconcat #'prin1-to-string
|
||||
(if default
|
||||
(cl-remove-if (lambda (sym) (string= sym default)) faces)
|
||||
faces)
|
||||
"\n")))))
|
||||
|
||||
(defun helm-apropos-default-sort-fn (candidates _source)
|
||||
(if (string= helm-pattern "")
|
||||
candidates
|
||||
(sort candidates #'helm-generic-sort-fn)))
|
||||
|
||||
(defun helm-apropos-clean-history-variable (candidate)
|
||||
(with-helm-current-buffer ; var is maybe local
|
||||
(let* ((sym (intern-soft candidate))
|
||||
(cands (symbol-value sym))
|
||||
(mkds (and (listp cands)
|
||||
(helm-comp-read "Delete entry: "
|
||||
cands :marked-candidates t))))
|
||||
(cl-assert (listp mkds) nil "Variable value is not a list")
|
||||
(cl-loop for elm in mkds do
|
||||
(if (local-variable-p sym)
|
||||
(set (make-local-variable sym)
|
||||
(setq cands (delete elm cands)))
|
||||
(set sym (setq cands (delete elm cands))))))))
|
||||
|
||||
(defun helm-apropos-clean-ring (candidate)
|
||||
(with-helm-current-buffer ; var is maybe local
|
||||
(let* ((sym (intern-soft candidate))
|
||||
(val (symbol-value sym))
|
||||
(cands (and (ring-p val) (ring-elements val)))
|
||||
(mkds (and cands (helm-comp-read
|
||||
"Delete entry: "
|
||||
cands :marked-candidates t))))
|
||||
(when mkds
|
||||
(cl-loop for elm in mkds do
|
||||
(ring-remove
|
||||
val (helm-position
|
||||
elm
|
||||
(ring-elements val)
|
||||
:test 'equal))
|
||||
and do (if (local-variable-p sym)
|
||||
(set (make-local-variable sym) val)
|
||||
(set sym val)))))))
|
||||
|
||||
(defun helm-apropos-action-transformer (actions candidate)
|
||||
(let* ((sym (helm-symbolify candidate))
|
||||
(val (with-helm-current-buffer (symbol-value sym))))
|
||||
(cond ((custom-variable-p sym)
|
||||
(append
|
||||
actions
|
||||
(let ((standard-value (eval (car (get sym 'standard-value)))))
|
||||
(unless (equal standard-value (symbol-value sym))
|
||||
`(("Reset Variable to default value"
|
||||
. ,(lambda (candidate)
|
||||
(let ((sym (helm-symbolify candidate)))
|
||||
(set sym standard-value)))))))
|
||||
'(("Customize variable" .
|
||||
(lambda (candidate)
|
||||
(customize-option (helm-symbolify candidate)))))))
|
||||
((and val (with-helm-current-buffer (ring-p (symbol-value sym))))
|
||||
(append actions
|
||||
'(("Clean ring" . helm-apropos-clean-ring))))
|
||||
((and (string-match-p "history" candidate) (listp val))
|
||||
(append actions
|
||||
'(("Clean variable" .
|
||||
helm-apropos-clean-history-variable))))
|
||||
(t actions))))
|
||||
|
||||
(defun helm-def-source--emacs-variables (&optional default)
|
||||
(helm-build-in-buffer-source "Variables"
|
||||
:init (lambda ()
|
||||
(helm-apropos-init
|
||||
(lambda (x) (and (boundp x) (not (keywordp x)))) default))
|
||||
:fuzzy-match helm-apropos-fuzzy-match
|
||||
:filtered-candidate-transformer (and (null helm-apropos-fuzzy-match)
|
||||
'helm-apropos-default-sort-fn)
|
||||
:nomark t
|
||||
:persistent-action (lambda (candidate)
|
||||
(helm-elisp--persistent-help
|
||||
candidate 'helm-describe-variable))
|
||||
:persistent-help "Toggle describe variable"
|
||||
:action '(("Describe variable" . helm-describe-variable)
|
||||
("Find variable" . helm-find-variable)
|
||||
("Info lookup" . helm-info-lookup-symbol)
|
||||
("Set variable" . helm-set-variable))
|
||||
:action-transformer 'helm-apropos-action-transformer))
|
||||
|
||||
(defun helm-def-source--emacs-faces (&optional default)
|
||||
"Create `helm' source for faces to be displayed with
|
||||
`helm-apropos'."
|
||||
(helm-build-in-buffer-source "Faces"
|
||||
:init (lambda () (helm-apropos-init-faces default))
|
||||
:fuzzy-match helm-apropos-fuzzy-match
|
||||
:filtered-candidate-transformer
|
||||
(append (and (null helm-apropos-fuzzy-match)
|
||||
'(helm-apropos-default-sort-fn))
|
||||
(list
|
||||
(lambda (candidates _source)
|
||||
(cl-loop for c in candidates
|
||||
collect (propertize c 'face (intern c))))))
|
||||
:persistent-action (lambda (candidate)
|
||||
(helm-elisp--persistent-help
|
||||
candidate 'helm-describe-face))
|
||||
:persistent-help "Toggle describe face"
|
||||
:action '(("Describe face" . helm-describe-face)
|
||||
("Find face" . helm-find-face-definition)
|
||||
("Customize face" . (lambda (candidate)
|
||||
(customize-face (helm-symbolify candidate)))))))
|
||||
|
||||
(defun helm-def-source--emacs-commands (&optional default)
|
||||
(helm-build-in-buffer-source "Commands"
|
||||
:init (lambda ()
|
||||
(helm-apropos-init 'commandp default))
|
||||
:fuzzy-match helm-apropos-fuzzy-match
|
||||
:filtered-candidate-transformer (and (null helm-apropos-fuzzy-match)
|
||||
'helm-apropos-default-sort-fn)
|
||||
:nomark t
|
||||
:persistent-action (lambda (candidate)
|
||||
(helm-elisp--persistent-help
|
||||
candidate 'helm-describe-function))
|
||||
:persistent-help "Toggle describe command"
|
||||
:action '(("Describe function" . helm-describe-function)
|
||||
("Find function" . helm-find-function)
|
||||
("Info lookup" . helm-info-lookup-symbol))))
|
||||
|
||||
(defun helm-def-source--emacs-functions (&optional default)
|
||||
(helm-build-in-buffer-source "Functions"
|
||||
:init (lambda ()
|
||||
(helm-apropos-init (lambda (x)
|
||||
(and (fboundp x)
|
||||
(not (commandp x))
|
||||
(not (generic-p x))
|
||||
(not (class-p x))))
|
||||
default))
|
||||
:fuzzy-match helm-apropos-fuzzy-match
|
||||
:filtered-candidate-transformer (and (null helm-apropos-fuzzy-match)
|
||||
'helm-apropos-default-sort-fn)
|
||||
:persistent-action (lambda (candidate)
|
||||
(helm-elisp--persistent-help
|
||||
candidate 'helm-describe-function))
|
||||
:persistent-help "Toggle describe function"
|
||||
:nomark t
|
||||
:action '(("Describe function" . helm-describe-function)
|
||||
("Find function" . helm-find-function)
|
||||
("Info lookup" . helm-info-lookup-symbol))))
|
||||
|
||||
(defun helm-def-source--eieio-classes (&optional default)
|
||||
(helm-build-in-buffer-source "Classes"
|
||||
:init (lambda ()
|
||||
(helm-apropos-init (lambda (x)
|
||||
(class-p x))
|
||||
default))
|
||||
:fuzzy-match helm-apropos-fuzzy-match
|
||||
:filtered-candidate-transformer (and (null helm-apropos-fuzzy-match)
|
||||
'helm-apropos-default-sort-fn)
|
||||
:nomark t
|
||||
:persistent-action (lambda (candidate)
|
||||
(helm-elisp--persistent-help
|
||||
candidate 'helm-describe-class))
|
||||
:persistent-help "Toggle describe class"
|
||||
:action '(("Describe Class" . helm-describe-class)
|
||||
("Find Class" . helm-find-function)
|
||||
("Info lookup" . helm-info-lookup-symbol))))
|
||||
|
||||
(defun helm-def-source--eieio-generic (&optional default)
|
||||
(helm-build-in-buffer-source "Generic functions"
|
||||
:init (lambda ()
|
||||
(helm-apropos-init (lambda (x)
|
||||
(generic-p x))
|
||||
default))
|
||||
:fuzzy-match helm-apropos-fuzzy-match
|
||||
:filtered-candidate-transformer (and (null helm-apropos-fuzzy-match)
|
||||
'helm-apropos-default-sort-fn)
|
||||
:nomark t
|
||||
:persistent-action (lambda (candidate)
|
||||
(helm-elisp--persistent-help
|
||||
candidate 'helm-describe-function))
|
||||
:persistent-help "Toggle describe generic function"
|
||||
:action '(("Describe function" . helm-describe-function)
|
||||
("Find function" . helm-find-function)
|
||||
("Info lookup" . helm-info-lookup-symbol))))
|
||||
|
||||
(defun helm-info-lookup-fallback-source (candidate)
|
||||
(let ((sym (helm-symbolify candidate))
|
||||
src-name fn)
|
||||
(cond ((class-p sym)
|
||||
(setq fn #'helm-describe-function
|
||||
src-name "Describe class"))
|
||||
((generic-p sym)
|
||||
(setq fn #'helm-describe-function
|
||||
src-name "Describe generic function"))
|
||||
((fboundp sym)
|
||||
(setq fn #'helm-describe-function
|
||||
src-name "Describe function"))
|
||||
((facep sym)
|
||||
(setq fn #'helm-describe-face
|
||||
src-name "Describe face"))
|
||||
(t
|
||||
(setq fn #'helm-describe-variable
|
||||
src-name "Describe variable")))
|
||||
(helm-build-sync-source src-name
|
||||
:candidates (list candidate)
|
||||
:persistent-action (lambda (candidate)
|
||||
(helm-elisp--persistent-help
|
||||
candidate fn))
|
||||
:persistent-help src-name
|
||||
:nomark t
|
||||
:action fn)))
|
||||
|
||||
(defun helm-info-lookup-symbol-1 (c)
|
||||
(let ((helm-execute-action-at-once-if-one 'current-source))
|
||||
(helm :sources (append helm-apropos-defaut-info-lookup-sources
|
||||
(list (helm-info-lookup-fallback-source c)))
|
||||
:resume 'noresume
|
||||
:buffer "*helm lookup*"
|
||||
:input c)))
|
||||
|
||||
(defun helm-info-lookup-symbol (candidate)
|
||||
;; ???:Running an idle-timer allows not catching RET when exiting
|
||||
;; with the fallback source.
|
||||
;; (run-with-idle-timer 0.01 nil #'helm-info-lookup-symbol-1 candidate)
|
||||
(helm-info-lookup-symbol-1 candidate))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-apropos (default)
|
||||
"Preconfigured helm to describe commands, functions, variables and faces.
|
||||
In non interactives calls DEFAULT argument should be provided as a string,
|
||||
i.e the `symbol-name' of any existing symbol."
|
||||
(interactive (list (thing-at-point 'symbol)))
|
||||
(helm :sources
|
||||
(mapcar (lambda (func)
|
||||
(funcall func default))
|
||||
helm-apropos-function-list)
|
||||
:history 'helm-apropos-history
|
||||
:buffer "*helm apropos*"
|
||||
:preselect (and default (concat "\\_<" (regexp-quote default) "\\_>"))))
|
||||
|
||||
|
||||
;;; Advices
|
||||
;;
|
||||
;;
|
||||
(defvar helm-source-advice
|
||||
(helm-build-sync-source "Function Advice"
|
||||
:init (lambda () (require 'advice))
|
||||
:candidates 'helm-advice-candidates
|
||||
:action (helm-make-actions "Toggle Enable/Disable" 'helm-advice-toggle)
|
||||
:persistent-action 'helm-advice-persistent-action
|
||||
:nomark t
|
||||
:multiline t
|
||||
:persistent-help "Toggle describe function / C-u C-j: Toggle advice"))
|
||||
|
||||
(defun helm-advice-candidates ()
|
||||
(cl-loop for (fname) in ad-advised-functions
|
||||
for function = (intern fname)
|
||||
append
|
||||
(cl-loop for class in ad-advice-classes append
|
||||
(cl-loop for advice in (ad-get-advice-info-field function class)
|
||||
for enabled = (ad-advice-enabled advice)
|
||||
collect
|
||||
(cons (format
|
||||
"%s %s %s"
|
||||
(if enabled "Enabled " "Disabled")
|
||||
(propertize fname 'face 'font-lock-function-name-face)
|
||||
(ad-make-single-advice-docstring advice class nil))
|
||||
(list function class advice))))))
|
||||
|
||||
(defun helm-advice-persistent-action (func-class-advice)
|
||||
(if current-prefix-arg
|
||||
(helm-advice-toggle func-class-advice)
|
||||
(describe-function (car func-class-advice))))
|
||||
|
||||
(defun helm-advice-toggle (func-class-advice)
|
||||
(cl-destructuring-bind (function _class advice) func-class-advice
|
||||
(cond ((ad-advice-enabled advice)
|
||||
(ad-advice-set-enabled advice nil)
|
||||
(message "Disabled"))
|
||||
(t
|
||||
(ad-advice-set-enabled advice t)
|
||||
(message "Enabled")))
|
||||
(ad-activate function)
|
||||
(and helm-in-persistent-action
|
||||
(helm-advice-update-current-display-string))))
|
||||
|
||||
(defun helm-advice-update-current-display-string ()
|
||||
(helm-edit-current-selection
|
||||
(let ((newword (cond ((looking-at "Disabled") "Enabled")
|
||||
((looking-at "Enabled") "Disabled"))))
|
||||
(when newword
|
||||
(delete-region (point) (progn (forward-word 1) (point)))
|
||||
(insert newword)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-manage-advice ()
|
||||
"Preconfigured `helm' to disable/enable function advices."
|
||||
(interactive)
|
||||
(helm-other-buffer 'helm-source-advice "*helm advice*"))
|
||||
|
||||
|
||||
;;; Locate elisp library
|
||||
;;
|
||||
;;
|
||||
(defun helm-locate-library-scan-list ()
|
||||
(cl-loop for dir in load-path
|
||||
with load-suffixes = '(".el")
|
||||
when (file-directory-p dir)
|
||||
append (directory-files
|
||||
dir t (concat (regexp-opt (get-load-suffixes))
|
||||
"\\'"))))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-locate-library ()
|
||||
"Preconfigured helm to locate elisp libraries."
|
||||
(interactive)
|
||||
(helm :sources (helm-build-in-buffer-source "Elisp libraries (Scan)"
|
||||
:data #'helm-locate-library-scan-list
|
||||
:fuzzy-match helm-locate-library-fuzzy-match
|
||||
:keymap helm-generic-files-map
|
||||
:search (unless helm-locate-library-fuzzy-match
|
||||
(lambda (regexp)
|
||||
(re-search-forward
|
||||
(if helm-ff-transformer-show-only-basename
|
||||
(replace-regexp-in-string
|
||||
"\\`\\^" "" regexp)
|
||||
regexp)
|
||||
nil t)))
|
||||
:match-part (lambda (candidate)
|
||||
(with-helm-buffer
|
||||
(if helm-ff-transformer-show-only-basename
|
||||
(helm-basename candidate) candidate)))
|
||||
:filter-one-by-one (lambda (c)
|
||||
(with-helm-buffer
|
||||
(if helm-ff-transformer-show-only-basename
|
||||
(cons (helm-basename c) c) c)))
|
||||
:action (helm-actions-from-type-file))
|
||||
:ff-transformer-show-only-basename nil
|
||||
:buffer "*helm locate library*"))
|
||||
|
||||
(defun helm-set-variable (var)
|
||||
"Set VAR value interactively."
|
||||
(let* ((sym (helm-symbolify var))
|
||||
(val (default-value sym)))
|
||||
(set-default sym (eval-minibuffer
|
||||
(format "Set `%s': " var)
|
||||
(if (or (stringp val)
|
||||
(memq val '(nil t))
|
||||
(numberp val))
|
||||
(prin1-to-string val)
|
||||
(format "'%s" (prin1-to-string val)))))))
|
||||
|
||||
|
||||
;;; Elisp Timers.
|
||||
;;
|
||||
;;
|
||||
(defclass helm-absolute-time-timers-class (helm-source-sync helm-type-timers)
|
||||
((candidates :initform timer-list)
|
||||
(allow-dups :initform t)
|
||||
(candidate-transformer
|
||||
:initform
|
||||
(lambda (candidates)
|
||||
(cl-loop for timer in candidates
|
||||
collect (cons (helm-elisp--format-timer timer) timer))))))
|
||||
|
||||
(defvar helm-source-absolute-time-timers
|
||||
(helm-make-source "Absolute Time Timers" 'helm-absolute-time-timers-class))
|
||||
|
||||
(defclass helm-idle-time-timers-class (helm-source-sync helm-type-timers)
|
||||
((candidates :initform timer-idle-list)
|
||||
(allow-dups :initform t)
|
||||
(candidate-transformer
|
||||
:initform
|
||||
(lambda (candidates)
|
||||
(cl-loop for timer in candidates
|
||||
collect (cons (helm-elisp--format-timer timer) timer))))))
|
||||
|
||||
(defvar helm-source-idle-time-timers
|
||||
(helm-make-source "Idle Time Timers" 'helm-idle-time-timers-class))
|
||||
|
||||
(defun helm-elisp--format-timer (timer)
|
||||
(format "%s repeat=%s %s(%s)"
|
||||
(let ((time (timer--time timer)))
|
||||
(if (timer--idle-delay timer)
|
||||
(format-time-string "idle-for=%5s" time)
|
||||
(format-time-string "%m/%d %T" time)))
|
||||
(or (timer--repeat-delay timer) "nil")
|
||||
(mapconcat 'identity (split-string
|
||||
(prin1-to-string (timer--function timer))
|
||||
"\n") " ")
|
||||
(mapconcat 'prin1-to-string (timer--args timer) " ")))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-timers ()
|
||||
"Preconfigured `helm' for timers."
|
||||
(interactive)
|
||||
(helm :sources '(helm-source-absolute-time-timers
|
||||
helm-source-idle-time-timers)
|
||||
:buffer "*helm timers*"))
|
||||
|
||||
|
||||
;;; Complex command history
|
||||
;;
|
||||
;;
|
||||
(defun helm-btf--usable-p ()
|
||||
"Return t if current version of `backtrace-frame' accept 2 arguments."
|
||||
(condition-case nil
|
||||
(progn (backtrace-frame 1 'condition-case) t)
|
||||
(wrong-number-of-arguments nil)))
|
||||
|
||||
(if (helm-btf--usable-p) ; Check if BTF accept more than one arg.
|
||||
;; Emacs 24.4.
|
||||
(dont-compile
|
||||
(defvar helm-sexp--last-sexp nil)
|
||||
;; This wont work compiled.
|
||||
(defun helm-sexp-eval-1 ()
|
||||
(interactive)
|
||||
(unwind-protect
|
||||
(progn
|
||||
;; Trick called-interactively-p into thinking that `cand' is
|
||||
;; an interactive call, See `repeat-complex-command'.
|
||||
(add-hook 'called-interactively-p-functions
|
||||
#'helm-complex-command-history--called-interactively-skip)
|
||||
(eval (read helm-sexp--last-sexp)))
|
||||
(remove-hook 'called-interactively-p-functions
|
||||
#'helm-complex-command-history--called-interactively-skip)))
|
||||
|
||||
(defun helm-complex-command-history--called-interactively-skip (i _frame1 frame2)
|
||||
(and (eq 'eval (cadr frame2))
|
||||
(eq 'helm-sexp-eval-1
|
||||
(cadr (backtrace-frame (+ i 2) #'called-interactively-p)))
|
||||
1))
|
||||
|
||||
(defun helm-sexp-eval (_candidate)
|
||||
(call-interactively #'helm-sexp-eval-1)))
|
||||
;; Emacs 24.3
|
||||
(defun helm-sexp-eval (cand)
|
||||
(let ((sexp (read cand)))
|
||||
(condition-case err
|
||||
(if (> (length (remove nil sexp)) 1)
|
||||
(eval sexp)
|
||||
(apply 'call-interactively sexp))
|
||||
(error (message "Evaluating gave an error: %S" err)
|
||||
nil)))))
|
||||
|
||||
(defvar helm-source-complex-command-history
|
||||
(helm-build-sync-source "Complex Command History"
|
||||
:candidates (lambda ()
|
||||
;; Use cdr to avoid adding
|
||||
;; `helm-complex-command-history' here.
|
||||
(cl-loop for i in command-history
|
||||
unless (equal i '(helm-complex-command-history))
|
||||
collect (prin1-to-string i)))
|
||||
:action (helm-make-actions
|
||||
"Eval" (lambda (candidate)
|
||||
(and (boundp 'helm-sexp--last-sexp)
|
||||
(setq helm-sexp--last-sexp candidate))
|
||||
(let ((command (read candidate)))
|
||||
(unless (equal command (car command-history))
|
||||
(setq command-history (cons command command-history))))
|
||||
(run-with-timer 0.1 nil #'helm-sexp-eval candidate))
|
||||
"Edit and eval" (lambda (candidate)
|
||||
(edit-and-eval-command "Eval: " (read candidate))))
|
||||
:persistent-action #'helm-sexp-eval
|
||||
:multiline t))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-complex-command-history ()
|
||||
"Preconfigured helm for complex command history."
|
||||
(interactive)
|
||||
(helm :sources 'helm-source-complex-command-history
|
||||
:buffer "*helm complex commands*"))
|
||||
|
||||
(provide 'helm-elisp)
|
||||
|
||||
;; Local Variables:
|
||||
;; byte-compile-warnings: (not obsolete)
|
||||
;; coding: utf-8
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
;;; helm-elisp.el ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-elisp.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-elisp.elc
Normal file
Binary file not shown.
488
elpa/helm-20191004.1946/helm-eshell.el
Normal file
488
elpa/helm-20191004.1946/helm-eshell.el
Normal file
@@ -0,0 +1,488 @@
|
||||
;;; helm-eshell.el --- pcomplete and eshell completion for helm. -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Enable like this in .emacs:
|
||||
;; (add-hook 'eshell-mode-hook
|
||||
;; (lambda ()
|
||||
;; (eshell-cmpl-initialize)
|
||||
;; (define-key eshell-mode-map [remap eshell-pcomplete] 'helm-esh-pcomplete)
|
||||
;; (define-key eshell-mode-map (kbd "M-s f") 'helm-eshell-prompts-all)))
|
||||
;; (define-key eshell-mode-map (kbd "M-r") 'helm-eshell-history)))
|
||||
|
||||
|
||||
;;; Code:
|
||||
(require 'cl-lib)
|
||||
(require 'helm)
|
||||
(require 'helm-lib)
|
||||
(require 'helm-help)
|
||||
(require 'helm-elisp)
|
||||
|
||||
(declare-function eshell-read-aliases-list "em-alias")
|
||||
(declare-function eshell-send-input "esh-mode" (&optional use-region queue-p no-newline))
|
||||
(declare-function eshell-bol "esh-mode")
|
||||
(declare-function eshell-parse-arguments "esh-arg" (beg end))
|
||||
(declare-function eshell-backward-argument "esh-mode" (&optional arg))
|
||||
(declare-function helm-quote-whitespace "helm-lib")
|
||||
(declare-function eshell-skip-prompt "em-prompt")
|
||||
(defvar eshell-special-chars-outside-quoting)
|
||||
|
||||
|
||||
(defgroup helm-eshell nil
|
||||
"Helm eshell completion and history."
|
||||
:group 'helm)
|
||||
|
||||
|
||||
(defcustom helm-eshell-fuzzy-match nil
|
||||
"Enable fuzzy matching in `helm-esh-pcomplete' when non--nil."
|
||||
:group 'helm-eshell
|
||||
:type 'boolean)
|
||||
|
||||
|
||||
(defvar helm-eshell-history-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map helm-map)
|
||||
(define-key map (kbd "M-p") 'helm-next-line)
|
||||
map)
|
||||
"Keymap for `helm-eshell-history'.")
|
||||
|
||||
(defvar helm-esh-completion-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map helm-map)
|
||||
(define-key map (kbd "TAB") 'helm-next-line)
|
||||
map)
|
||||
"Keymap for `helm-esh-pcomplete'.")
|
||||
|
||||
(defvar helm-eshell--quit-flag nil)
|
||||
|
||||
|
||||
(defclass helm-esh-source (helm-source-sync)
|
||||
((init :initform (lambda ()
|
||||
(setq pcomplete-current-completions nil
|
||||
pcomplete-last-completion-raw nil)
|
||||
;; Eshell-command add this hook in all minibuffers
|
||||
;; Remove it for the helm one. (Fixed in Emacs24)
|
||||
(remove-hook 'minibuffer-setup-hook 'eshell-mode)))
|
||||
(candidates :initform 'helm-esh-get-candidates)
|
||||
;(nomark :initform t)
|
||||
(persistent-action :initform 'ignore)
|
||||
(nohighlight :initform t)
|
||||
(filtered-candidate-transformer
|
||||
:initform
|
||||
(lambda (candidates _sources)
|
||||
(cl-loop
|
||||
for i in candidates
|
||||
collect
|
||||
(cond ((string-match "\\`~/?" helm-ec-target)
|
||||
(abbreviate-file-name i))
|
||||
((string-match "\\`/" helm-ec-target) i)
|
||||
(t
|
||||
(file-relative-name i)))
|
||||
into lst
|
||||
finally return (sort lst 'helm-generic-sort-fn))))
|
||||
(action :initform 'helm-ec-insert))
|
||||
"Helm class to define source for Eshell completion.")
|
||||
|
||||
;; Internal.
|
||||
(defvar helm-ec-target "")
|
||||
(defun helm-ec-insert (_candidate)
|
||||
"Replace text at point with CANDIDATE.
|
||||
The function that call this should set `helm-ec-target' to thing at point."
|
||||
(set (make-local-variable 'comint-file-name-quote-list)
|
||||
eshell-special-chars-outside-quoting)
|
||||
(let ((pt (point)))
|
||||
(when (and helm-ec-target
|
||||
(search-backward helm-ec-target nil t)
|
||||
(string= (buffer-substring (point) pt) helm-ec-target))
|
||||
(delete-region (point) pt)))
|
||||
(when (string-match "\\`\\*" helm-ec-target) (insert "*"))
|
||||
(let ((marked (helm-marked-candidates)))
|
||||
(prog1 t ;; Makes helm returns t on action.
|
||||
(insert
|
||||
(mapconcat
|
||||
(lambda (x)
|
||||
(cond ((string-match "\\`~/" helm-ec-target)
|
||||
;; Strip out the first escape char added by
|
||||
;; `comint-quote-filename' before "~" (Issue #1803).
|
||||
(substring (comint-quote-filename (abbreviate-file-name x)) 1))
|
||||
((string-match "\\`/" helm-ec-target)
|
||||
(comint-quote-filename x))
|
||||
(t
|
||||
(concat (and (string-match "\\`[.]/" helm-ec-target) "./")
|
||||
(comint-quote-filename
|
||||
(file-relative-name x))))))
|
||||
marked " ")
|
||||
(or (helm-aand (car (last marked))
|
||||
(string-match-p "/\\'" it)
|
||||
"")
|
||||
" ")))))
|
||||
|
||||
(defun helm-esh-get-candidates ()
|
||||
"Get candidates for eshell completion using `pcomplete'."
|
||||
(catch 'pcompleted
|
||||
(with-helm-current-buffer
|
||||
(let* ((pcomplete-stub)
|
||||
pcomplete-seen pcomplete-norm-func
|
||||
pcomplete-args pcomplete-last pcomplete-index
|
||||
(pcomplete-autolist pcomplete-autolist)
|
||||
(pcomplete-suffix-list pcomplete-suffix-list)
|
||||
(table (pcomplete-completions))
|
||||
(entry (or (try-completion helm-pattern
|
||||
(pcomplete-entries))
|
||||
helm-pattern)))
|
||||
(cl-loop ;; expand entry too to be able to compare it with file-cand.
|
||||
with exp-entry = (and (stringp entry)
|
||||
(not (string= entry ""))
|
||||
(file-name-as-directory
|
||||
(expand-file-name entry default-directory)))
|
||||
with comps = (all-completions pcomplete-stub table)
|
||||
unless comps return (prog1 nil
|
||||
;; Don't add final space when
|
||||
;; there is no completion (issue #1990).
|
||||
(setq helm-eshell--quit-flag t)
|
||||
(message "No completions of %s" pcomplete-stub))
|
||||
for i in comps
|
||||
;; Transform the related names to abs names.
|
||||
for file-cand = (and exp-entry
|
||||
(if (file-remote-p i) i
|
||||
(expand-file-name
|
||||
i (file-name-directory entry))))
|
||||
;; Compare them to avoid dups.
|
||||
for file-entry-p = (and (stringp exp-entry)
|
||||
(stringp file-cand)
|
||||
;; Fix :/tmp/foo/ $ cd foo
|
||||
(not (file-directory-p file-cand))
|
||||
(file-equal-p exp-entry file-cand))
|
||||
if (and file-cand (or (file-remote-p file-cand)
|
||||
(file-exists-p file-cand))
|
||||
(not file-entry-p))
|
||||
collect file-cand into ls
|
||||
else
|
||||
;; Avoid adding entry here.
|
||||
unless file-entry-p collect i into ls
|
||||
finally return
|
||||
(if (and exp-entry
|
||||
(file-directory-p exp-entry)
|
||||
;; If the car of completion list is
|
||||
;; an executable, probably we are in
|
||||
;; command completion, so don't add a
|
||||
;; possible file related entry here.
|
||||
(and ls (not (executable-find (car ls))))
|
||||
;; Don't add entry if already in prompt.
|
||||
(not (file-equal-p exp-entry pcomplete-stub)))
|
||||
(append (list exp-entry)
|
||||
;; Entry should not be here now but double check.
|
||||
(remove entry ls))
|
||||
ls))))))
|
||||
|
||||
;;; Eshell history.
|
||||
;;
|
||||
;;
|
||||
(defclass helm-eshell-history-source (helm-source-sync)
|
||||
((init :initform
|
||||
(lambda ()
|
||||
;; Same comment as in `helm-source-esh'.
|
||||
(remove-hook 'minibuffer-setup-hook 'eshell-mode)))
|
||||
(candidates
|
||||
:initform
|
||||
(lambda ()
|
||||
(with-helm-current-buffer
|
||||
(cl-loop for c from 0 to (ring-length eshell-history-ring)
|
||||
collect (eshell-get-history c)))))
|
||||
(nomark :initform t)
|
||||
(multiline :initform t)
|
||||
(keymap :initform helm-eshell-history-map)
|
||||
(candidate-number-limit :initform 9999)
|
||||
(action :initform (lambda (candidate)
|
||||
(eshell-kill-input)
|
||||
(insert candidate))))
|
||||
"Helm class to define source for Eshell history.")
|
||||
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-esh-pcomplete ()
|
||||
"Preconfigured helm to provide helm completion in eshell."
|
||||
(interactive)
|
||||
(let* ((helm-quit-if-no-candidate t)
|
||||
(helm-execute-action-at-once-if-one t)
|
||||
(end (point-marker))
|
||||
(beg (save-excursion (eshell-bol) (point)))
|
||||
(args (catch 'eshell-incomplete
|
||||
(eshell-parse-arguments beg end)))
|
||||
(target
|
||||
(or (and (looking-back " " (1- (point))) " ")
|
||||
(buffer-substring-no-properties
|
||||
(save-excursion
|
||||
(eshell-backward-argument 1) (point))
|
||||
end)))
|
||||
(users-comp (string= target "~"))
|
||||
(first (car args)) ; Maybe lisp delimiter "(".
|
||||
last ; Will be the last but parsed by pcomplete.
|
||||
del-space
|
||||
del-dot)
|
||||
(setq helm-ec-target (or target " ")
|
||||
end (point)
|
||||
;; Reset beg for `with-helm-show-completion'.
|
||||
beg (or (and target (not (string= target " "))
|
||||
(- end (length target)))
|
||||
;; Nothing at point.
|
||||
(progn (insert " ") (setq del-space t) (point))))
|
||||
(when (string-match "\\`[~.]*.*/[.]\\'" target)
|
||||
;; Fix completion on
|
||||
;; "~/.", "~/[...]/.", and "../."
|
||||
(delete-char -1) (setq del-dot t)
|
||||
(setq helm-ec-target (substring helm-ec-target 0 (1- (length helm-ec-target)))))
|
||||
(cond ((eq first ?\()
|
||||
(helm-lisp-completion-or-file-name-at-point))
|
||||
;; In eshell `pcomplete-parse-arguments' is called
|
||||
;; with `pcomplete-parse-arguments-function'
|
||||
;; locally bound to `eshell-complete-parse-arguments'
|
||||
;; which is calling `lisp-complete-symbol',
|
||||
;; calling it before would popup the
|
||||
;; *completions* buffer.
|
||||
(t (setq last (replace-regexp-in-string
|
||||
"\\`\\*" ""
|
||||
(car (last (ignore-errors
|
||||
(pcomplete-parse-arguments))))))
|
||||
;; Set helm-eshell--quit-flag to non-nil only on
|
||||
;; quit, this tells to not add final suffix when quitting
|
||||
;; helm.
|
||||
(add-hook 'helm-quit-hook 'helm-eshell--quit-hook-fn)
|
||||
(with-helm-show-completion beg end
|
||||
(unwind-protect
|
||||
(or (helm :sources (helm-make-source "Eshell completions" 'helm-esh-source
|
||||
:fuzzy-match helm-eshell-fuzzy-match)
|
||||
:buffer "*helm pcomplete*"
|
||||
:keymap helm-esh-completion-map
|
||||
:resume 'noresume
|
||||
:input (if (and (stringp last)
|
||||
(not (string= last ""))
|
||||
(not users-comp)
|
||||
;; Fix completion on
|
||||
;; "../" see #1832.
|
||||
(or (file-exists-p last)
|
||||
(helm-aand
|
||||
(file-name-directory last)
|
||||
(file-directory-p it))))
|
||||
(if (and (file-directory-p last)
|
||||
(string-match "\\`[~.]*.*/[.]\\'" target))
|
||||
;; Fix completion on
|
||||
;; "~/.", "~/[...]/.", and "../."
|
||||
(expand-file-name
|
||||
(concat (helm-basedir (file-name-as-directory last))
|
||||
(regexp-quote (helm-basename target))))
|
||||
(expand-file-name last))
|
||||
;; Don't add "~" to input to
|
||||
;; provide completion on all
|
||||
;; users instead of only on
|
||||
;; current $HOME (#1832).
|
||||
(unless users-comp last)))
|
||||
;; Delete removed dot on quit
|
||||
(and del-dot (prog1 t (insert ".")))
|
||||
;; A space is needed to have completion, remove
|
||||
;; it when nothing found.
|
||||
(and del-space (looking-back "\\s-" (1- (point)))
|
||||
(delete-char -1))
|
||||
(if (and (null helm-eshell--quit-flag)
|
||||
(and (stringp last) (file-directory-p last))
|
||||
(looking-back "\\([.]\\{1,2\\}\\|[^/]\\)\\'"
|
||||
(1- (point))))
|
||||
(prog1 t (insert "/"))
|
||||
;; We need another flag for space here, but
|
||||
;; global to pass it to `helm-quit-hook', this
|
||||
;; space is added when point is just after
|
||||
;; previous completion and there is no
|
||||
;; more completion, see issue #1832.
|
||||
(unless (or helm-eshell--quit-flag
|
||||
(looking-back "/\\'" (1- (point))))
|
||||
(prog1 t (insert " ")))
|
||||
(when (and helm-eshell--quit-flag
|
||||
(string-match-p "[.]\\{2\\}\\'" last))
|
||||
(insert "/"))))
|
||||
(remove-hook 'helm-quit-hook 'helm-eshell--quit-hook-fn)
|
||||
(setq helm-eshell--quit-flag nil)))))))
|
||||
|
||||
(defun helm-eshell--quit-hook-fn ()
|
||||
(setq helm-eshell--quit-flag t))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-eshell-history ()
|
||||
"Preconfigured helm for eshell history."
|
||||
(interactive)
|
||||
(let* ((end (point))
|
||||
(beg (save-excursion (eshell-bol) (point)))
|
||||
(input (buffer-substring beg end))
|
||||
flag-empty)
|
||||
(when (eq beg end)
|
||||
(insert " ")
|
||||
(setq flag-empty t)
|
||||
(setq end (point)))
|
||||
(unwind-protect
|
||||
(with-helm-show-completion beg end
|
||||
(helm :sources (helm-make-source "Eshell history"
|
||||
'helm-eshell-history-source
|
||||
:fuzzy-match helm-eshell-fuzzy-match)
|
||||
:buffer "*helm eshell history*"
|
||||
:resume 'noresume
|
||||
:input input))
|
||||
(when (and flag-empty
|
||||
(looking-back " " (1- (point))))
|
||||
(delete-char -1)))))
|
||||
|
||||
|
||||
;;; Eshell prompts
|
||||
;;
|
||||
(defface helm-eshell-prompts-promptidx
|
||||
'((t (:foreground "cyan")))
|
||||
"Face used to highlight Eshell prompt index."
|
||||
:group 'helm-eshell-faces)
|
||||
|
||||
(defface helm-eshell-prompts-buffer-name
|
||||
'((t (:foreground "green")))
|
||||
"Face used to highlight Eshell buffer name."
|
||||
:group 'helm-eshell-faces)
|
||||
|
||||
(defcustom helm-eshell-prompts-promptidx-p t
|
||||
"Show prompt number."
|
||||
:group 'helm-eshell
|
||||
:type 'boolean)
|
||||
|
||||
(defvar helm-eshell-prompts-keymap
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map helm-map)
|
||||
(define-key map (kbd "C-c o") 'helm-eshell-prompts-other-window)
|
||||
(define-key map (kbd "C-c C-o") 'helm-eshell-prompts-other-frame)
|
||||
map)
|
||||
"Keymap for `helm-eshell-prompt-all'.")
|
||||
|
||||
(defvar eshell-prompt-regexp)
|
||||
(defvar eshell-highlight-prompt)
|
||||
|
||||
(defun helm-eshell-prompts-list (&optional buffer)
|
||||
"List the prompts in Eshell BUFFER.
|
||||
|
||||
Return a list of (\"prompt\" (point) (buffer-name) prompt-index))
|
||||
e.g. (\"ls\" 162 \"*eshell*\" 3).
|
||||
If BUFFER is nil, use current buffer."
|
||||
(with-current-buffer (or buffer (current-buffer))
|
||||
(when (eq major-mode 'eshell-mode)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(let (result (count 1))
|
||||
(helm-awhile (re-search-forward eshell-prompt-regexp nil t)
|
||||
(when (or (and eshell-highlight-prompt
|
||||
(get-text-property (match-beginning 0) 'read-only))
|
||||
(null eshell-highlight-prompt))
|
||||
(push (list (buffer-substring-no-properties
|
||||
it (point-at-eol))
|
||||
it (buffer-name) count)
|
||||
result)
|
||||
(setq count (1+ count))))
|
||||
(nreverse result))))))
|
||||
|
||||
(defun helm-eshell-prompts-list-all ()
|
||||
"List the prompts of all Eshell buffers.
|
||||
See `helm-eshell-prompts-list'."
|
||||
(cl-loop for b in (buffer-list)
|
||||
append (helm-eshell-prompts-list b)))
|
||||
|
||||
(defun helm-eshell-prompts-transformer (candidates &optional all)
|
||||
;; ("ls" 162 "*eshell*" 3) => ("*eshell*:3:ls" . ("ls" 162 "*eshell*" 3))
|
||||
(cl-loop for (prt pos buf id) in candidates
|
||||
collect `(,(concat
|
||||
(when all
|
||||
(concat (propertize
|
||||
buf
|
||||
'face 'helm-eshell-prompts-buffer-name)
|
||||
":"))
|
||||
(when helm-eshell-prompts-promptidx-p
|
||||
(concat (propertize
|
||||
(number-to-string id)
|
||||
'face 'helm-eshell-prompts-promptidx)
|
||||
":"))
|
||||
prt)
|
||||
. ,(list prt pos buf id))))
|
||||
|
||||
(defun helm-eshell-prompts-all-transformer (candidates)
|
||||
(helm-eshell-prompts-transformer candidates t))
|
||||
|
||||
(cl-defun helm-eshell-prompts-goto (candidate &optional (action 'switch-to-buffer))
|
||||
;; Candidate format: ("ls" 162 "*eshell*" 3)
|
||||
(let ((buf (nth 2 candidate)))
|
||||
(unless (and (string= (buffer-name) buf)
|
||||
(eq action 'switch-to-buffer))
|
||||
(funcall action buf))
|
||||
(goto-char (nth 1 candidate))
|
||||
(recenter)))
|
||||
|
||||
(defun helm-eshell-prompts-goto-other-window (candidate)
|
||||
(helm-eshell-prompts-goto candidate 'switch-to-buffer-other-window))
|
||||
|
||||
(defun helm-eshell-prompts-goto-other-frame (candidate)
|
||||
(helm-eshell-prompts-goto candidate 'switch-to-buffer-other-frame))
|
||||
|
||||
(defun helm-eshell-prompts-other-window ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-eshell-prompts-goto-other-window)))
|
||||
(put 'helm-eshell-prompts-other-window 'helm-only t)
|
||||
|
||||
(defun helm-eshell-prompts-other-frame ()
|
||||
(interactive)
|
||||
(with-helm-alive-p
|
||||
(helm-exit-and-execute-action 'helm-eshell-prompts-goto-other-frame)))
|
||||
(put 'helm-eshell-prompts-other-frame 'helm-only t)
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-eshell-prompts ()
|
||||
"Pre-configured `helm' to browse the prompts of the current Eshell."
|
||||
(interactive)
|
||||
(if (eq major-mode 'eshell-mode)
|
||||
(helm :sources
|
||||
(helm-build-sync-source "Eshell prompts"
|
||||
:candidates (helm-eshell-prompts-list)
|
||||
:candidate-transformer 'helm-eshell-prompts-transformer
|
||||
:action '(("Go to prompt" . helm-eshell-prompts-goto)))
|
||||
:buffer "*helm Eshell prompts*")
|
||||
(message "Current buffer is not an Eshell buffer")))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-eshell-prompts-all ()
|
||||
"Pre-configured `helm' to browse the prompts of all Eshell sessions."
|
||||
(interactive)
|
||||
(helm :sources
|
||||
(helm-build-sync-source "All Eshell prompts"
|
||||
:candidates (helm-eshell-prompts-list-all)
|
||||
:candidate-transformer 'helm-eshell-prompts-all-transformer
|
||||
:action '(("Go to prompt" . helm-eshell-prompts-goto)
|
||||
("Go to prompt in other window `C-c o`" .
|
||||
helm-eshell-prompts-goto-other-window)
|
||||
("Go to prompt in other frame `C-c C-o`" .
|
||||
helm-eshell-prompts-goto-other-frame))
|
||||
:keymap helm-eshell-prompts-keymap)
|
||||
:buffer "*helm Eshell all prompts*"))
|
||||
|
||||
(provide 'helm-eshell)
|
||||
|
||||
;; Local Variables:
|
||||
;; byte-compile-warnings: (not obsolete)
|
||||
;; coding: utf-8
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
;;; helm-eshell ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-eshell.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-eshell.elc
Normal file
Binary file not shown.
204
elpa/helm-20191004.1946/helm-eval.el
Normal file
204
elpa/helm-20191004.1946/helm-eval.el
Normal file
@@ -0,0 +1,204 @@
|
||||
;;; helm-eval.el --- eval expressions from helm. -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012 ~ 2019 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
(require 'cl-lib)
|
||||
(require 'helm)
|
||||
(require 'helm-help)
|
||||
(require 'eldoc)
|
||||
(require 'edebug)
|
||||
|
||||
|
||||
(defgroup helm-eval nil
|
||||
"Eval related Applications and libraries for Helm."
|
||||
:group 'helm)
|
||||
|
||||
(defcustom helm-eldoc-in-minibuffer-show-fn
|
||||
'helm-show-info-in-mode-line
|
||||
"A function to display eldoc info.
|
||||
Should take one arg: the string to display."
|
||||
:group 'helm-eval
|
||||
:type 'symbol)
|
||||
|
||||
(defcustom helm-show-info-in-mode-line-delay 12
|
||||
"Eldoc will show info in mode-line during this delay if user is idle."
|
||||
:type 'integer
|
||||
:group 'helm-eval)
|
||||
|
||||
|
||||
;;; Eldoc compatibility between emacs-24 and emacs-25
|
||||
;;
|
||||
(if (require 'elisp-mode nil t) ; emacs-25
|
||||
;; Maybe the eldoc functions have been
|
||||
;; already aliased by eldoc-eval.
|
||||
(cl-loop for (f . a) in '((eldoc-current-symbol .
|
||||
elisp--current-symbol)
|
||||
(eldoc-fnsym-in-current-sexp .
|
||||
elisp--fnsym-in-current-sexp)
|
||||
(eldoc-get-fnsym-args-string .
|
||||
elisp-get-fnsym-args-string)
|
||||
(eldoc-get-var-docstring .
|
||||
elisp-get-var-docstring))
|
||||
unless (fboundp f)
|
||||
do (defalias f a))
|
||||
;; Emacs-24.
|
||||
(declare-function eldoc-current-symbol "eldoc")
|
||||
(declare-function eldoc-get-fnsym-args-string "eldoc" (sym &optional index))
|
||||
(declare-function eldoc-get-var-docstring "eldoc" (sym))
|
||||
(declare-function eldoc-fnsym-in-current-sexp "eldoc"))
|
||||
|
||||
;;; Evaluation Result
|
||||
;;
|
||||
;;
|
||||
;; Internal
|
||||
(defvar helm-eldoc-active-minibuffers-list nil)
|
||||
|
||||
(defvar helm-eval-expression-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map helm-map)
|
||||
(define-key map (kbd "<C-return>") 'helm-eval-new-line-and-indent)
|
||||
(define-key map (kbd "<M-tab>") 'lisp-indent-line)
|
||||
(define-key map (kbd "<C-tab>") 'helm-lisp-completion-at-point)
|
||||
(define-key map (kbd "C-p") 'previous-line)
|
||||
(define-key map (kbd "C-n") 'next-line)
|
||||
(define-key map (kbd "<up>") 'previous-line)
|
||||
(define-key map (kbd "<down>") 'next-line)
|
||||
(define-key map (kbd "<right>") 'forward-char)
|
||||
(define-key map (kbd "<left>") 'backward-char)
|
||||
map))
|
||||
|
||||
(defun helm-build-evaluation-result-source ()
|
||||
(helm-build-dummy-source "Evaluation Result"
|
||||
:multiline t
|
||||
:mode-line "C-RET: nl-and-indent, M-tab: reindent, C-tab:complete, C-p/n: next/prec-line."
|
||||
:filtered-candidate-transformer (lambda (_candidates _source)
|
||||
(list
|
||||
(condition-case nil
|
||||
(with-helm-current-buffer
|
||||
(pp-to-string
|
||||
(if edebug-active
|
||||
(edebug-eval-expression
|
||||
(read helm-pattern))
|
||||
(eval (read helm-pattern)))))
|
||||
(error "Error"))))
|
||||
:nohighlight t
|
||||
:keymap helm-eval-expression-map
|
||||
:action '(("Copy result to kill-ring" . (lambda (candidate)
|
||||
(kill-new
|
||||
(replace-regexp-in-string
|
||||
"\n" "" candidate))
|
||||
(message "Result copied to kill-ring")))
|
||||
("copy sexp to kill-ring" . (lambda (_candidate)
|
||||
(kill-new helm-input)
|
||||
(message "Sexp copied to kill-ring"))))))
|
||||
|
||||
(defun helm-eval-new-line-and-indent ()
|
||||
(interactive)
|
||||
(newline) (lisp-indent-line))
|
||||
|
||||
(defun helm-eldoc-store-minibuffer ()
|
||||
"Store minibuffer buffer name in `helm-eldoc-active-minibuffers-list'."
|
||||
(with-selected-window (minibuffer-window)
|
||||
(push (current-buffer) helm-eldoc-active-minibuffers-list)))
|
||||
|
||||
(defun helm-eldoc-show-in-eval ()
|
||||
"Return eldoc in mode-line for current minibuffer input."
|
||||
(let ((buf (window-buffer (active-minibuffer-window))))
|
||||
(condition-case err
|
||||
(when (member buf helm-eldoc-active-minibuffers-list)
|
||||
(with-current-buffer buf
|
||||
(let* ((sym (save-excursion
|
||||
(unless (looking-back ")\\|\"" (1- (point)))
|
||||
(forward-char -1))
|
||||
(eldoc-current-symbol)))
|
||||
(info-fn (eldoc-fnsym-in-current-sexp))
|
||||
(doc (or (eldoc-get-var-docstring sym)
|
||||
(eldoc-get-fnsym-args-string
|
||||
(car info-fn) (cadr info-fn)))))
|
||||
(when doc (funcall helm-eldoc-in-minibuffer-show-fn doc)))))
|
||||
(error (message "Eldoc in minibuffer error: %S" err) nil))))
|
||||
|
||||
(defun helm-show-info-in-mode-line (str)
|
||||
"Display string STR in mode-line."
|
||||
(save-selected-window
|
||||
(with-current-buffer helm-buffer
|
||||
(let ((mode-line-format (concat " " str)))
|
||||
(force-mode-line-update)
|
||||
(sit-for helm-show-info-in-mode-line-delay))
|
||||
(force-mode-line-update))))
|
||||
|
||||
;;; Calculation Result
|
||||
;;
|
||||
;;
|
||||
(defvar helm-source-calculation-result
|
||||
(helm-build-dummy-source "Calculation Result"
|
||||
:filtered-candidate-transformer (lambda (_candidates _source)
|
||||
(list
|
||||
(condition-case nil
|
||||
(calc-eval helm-pattern)
|
||||
(error "error"))))
|
||||
:nohighlight t
|
||||
:action '(("Copy result to kill-ring" . (lambda (candidate)
|
||||
(kill-new candidate)
|
||||
(message "Result \"%s\" copied to kill-ring"
|
||||
candidate)))
|
||||
("Copy operation to kill-ring" . (lambda (_candidate)
|
||||
(kill-new helm-input)
|
||||
(message "Calculation copied to kill-ring"))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-eval-expression (arg)
|
||||
"Preconfigured helm for `helm-source-evaluation-result'."
|
||||
(interactive "P")
|
||||
(helm :sources (helm-build-evaluation-result-source)
|
||||
:input (when arg (thing-at-point 'sexp))
|
||||
:buffer "*helm eval*"
|
||||
:echo-input-in-header-line nil
|
||||
:history 'read-expression-history))
|
||||
|
||||
(defvar eldoc-idle-delay)
|
||||
;;;###autoload
|
||||
(defun helm-eval-expression-with-eldoc ()
|
||||
"Preconfigured helm for `helm-source-evaluation-result' with `eldoc' support."
|
||||
(interactive)
|
||||
(let ((timer (run-with-idle-timer
|
||||
eldoc-idle-delay 'repeat
|
||||
'helm-eldoc-show-in-eval)))
|
||||
(unwind-protect
|
||||
(minibuffer-with-setup-hook
|
||||
'helm-eldoc-store-minibuffer
|
||||
(call-interactively 'helm-eval-expression))
|
||||
(and timer (cancel-timer timer))
|
||||
(setq helm-eldoc-active-minibuffers-list
|
||||
(cdr helm-eldoc-active-minibuffers-list)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun helm-calcul-expression ()
|
||||
"Preconfigured helm for `helm-source-calculation-result'."
|
||||
(interactive)
|
||||
(helm :sources 'helm-source-calculation-result
|
||||
:buffer "*helm calcul*"))
|
||||
|
||||
(provide 'helm-eval)
|
||||
|
||||
;; Local Variables:
|
||||
;; byte-compile-warnings: (not obsolete)
|
||||
;; coding: utf-8
|
||||
;; indent-tabs-mode: nil
|
||||
;; End:
|
||||
|
||||
;;; helm-eval.el ends here
|
||||
BIN
elpa/helm-20191004.1946/helm-eval.elc
Normal file
BIN
elpa/helm-20191004.1946/helm-eval.elc
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user