From cac6948e7e3e738c299db99e04632bf9b8299cf1 Mon Sep 17 00:00:00 2001 From: Marcus Kammer <2262664-marcuskammer@users.noreply.gitlab.com> Date: Mon, 3 Feb 2020 19:45:34 +0100 Subject: [PATCH] Upgrade packages --- .../anaphora-autoloads.el | 228 + elpa/anaphora-20180618.2200/anaphora-pkg.el | 2 + elpa/anaphora-20180618.2200/anaphora.el | 461 + elpa/anaphora-20180618.2200/anaphora.elc | Bin 0 -> 10810 bytes elpa/archives/gnu/archive-contents | 26 +- .../auto-complete-autoloads.el | 71 - .../auto-complete-config.el | 551 - .../auto-complete-config.elc | Bin 16537 -> 0 bytes .../auto-complete-pkg.el | 6 - .../auto-complete.el | 2164 --- .../auto-complete.elc | Bin 65927 -> 0 bytes elpa/auto-complete-20170125.245/dict/ada-mode | 72 - elpa/auto-complete-20170125.245/dict/c++-mode | 99 - elpa/auto-complete-20170125.245/dict/c-mode | 55 - .../auto-complete-20170125.245/dict/caml-mode | 231 - .../dict/clojure-mode | 580 - .../dict/clojurescript-mode | 475 - elpa/auto-complete-20170125.245/dict/coq-mode | 278 - elpa/auto-complete-20170125.245/dict/css-mode | 874 -- .../dict/erlang-mode | 216 - .../dict/ess-julia-mode | 37 - elpa/auto-complete-20170125.245/dict/go-mode | 25 - .../dict/haskell-mode | 679 - .../auto-complete-20170125.245/dict/java-mode | 53 - elpa/auto-complete-20170125.245/dict/js-mode | 148 - .../dict/julia-mode | 37 - elpa/auto-complete-20170125.245/dict/lua-mode | 21 - elpa/auto-complete-20170125.245/dict/nim-mode | 70 - .../auto-complete-20170125.245/dict/objc-mode | 161 - .../dict/octave-mode | 46 - elpa/auto-complete-20170125.245/dict/php-mode | 6144 -------- .../dict/python-mode | 379 - elpa/auto-complete-20170125.245/dict/qml-mode | 183 - .../auto-complete-20170125.245/dict/ruby-mode | 181 - .../dict/scala-mode | 1347 -- .../dict/scheme-mode | 216 - .../dict/sclang-mode | 1481 -- elpa/auto-complete-20170125.245/dict/sh-mode | 182 - .../dict/swift-mode | 87 - elpa/auto-complete-20170125.245/dict/tcl-mode | 172 - elpa/auto-complete-20170125.245/dict/ts-mode | 797 - .../dict/tuareg-mode | 231 - .../dict/verilog-mode | 313 - elpa/ein-20200127.249/ein-ac.el | 256 - elpa/ein-20200127.249/ein-ac.elc | Bin 8506 -> 0 bytes elpa/ein-20200127.249/ein-cell-edit.el | 276 - elpa/ein-20200127.249/ein-cell-edit.elc | Bin 9730 -> 0 bytes elpa/ein-20200127.249/ein-cell-output.el | 78 - elpa/ein-20200127.249/ein-cell-output.elc | Bin 2204 -> 0 bytes elpa/ein-20200127.249/ein-cell.elc | Bin 46057 -> 0 bytes elpa/ein-20200127.249/ein-company.el | 123 - elpa/ein-20200127.249/ein-company.elc | Bin 3956 -> 0 bytes elpa/ein-20200127.249/ein-completer.el | 186 - elpa/ein-20200127.249/ein-completer.elc | Bin 6968 -> 0 bytes elpa/ein-20200127.249/ein-connect.el | 414 - elpa/ein-20200127.249/ein-connect.elc | Bin 17249 -> 0 bytes elpa/ein-20200127.249/ein-console.el | 235 - elpa/ein-20200127.249/ein-console.elc | Bin 7183 -> 0 bytes elpa/ein-20200127.249/ein-contents-api.elc | Bin 25400 -> 0 bytes elpa/ein-20200127.249/ein-core.elc | Bin 13845 -> 0 bytes elpa/ein-20200127.249/ein-dev.elc | Bin 13529 -> 0 bytes elpa/ein-20200127.249/ein-hy.el | 51 - elpa/ein-20200127.249/ein-hy.elc | Bin 1654 -> 0 bytes elpa/ein-20200127.249/ein-inspector.el | 125 - elpa/ein-20200127.249/ein-inspector.elc | Bin 9797 -> 0 bytes elpa/ein-20200127.249/ein-jupyter.el | 279 - elpa/ein-20200127.249/ein-jupyter.elc | Bin 11133 -> 0 bytes elpa/ein-20200127.249/ein-kernel.elc | Bin 39433 -> 0 bytes elpa/ein-20200127.249/ein-kernelinfo.el | 115 - elpa/ein-20200127.249/ein-kernelinfo.elc | Bin 5178 -> 0 bytes .../ein-20200127.249/ein-multilang-fontify.el | 78 - .../ein-multilang-fontify.elc | Bin 1577 -> 0 bytes elpa/ein-20200127.249/ein-multilang.el | 434 - elpa/ein-20200127.249/ein-multilang.elc | Bin 16169 -> 0 bytes elpa/ein-20200127.249/ein-notebook.elc | Bin 243562 -> 0 bytes elpa/ein-20200127.249/ein-notebooklist.el | 1016 -- elpa/ein-20200127.249/ein-notebooklist.elc | Bin 50742 -> 0 bytes elpa/ein-20200127.249/ein-org.el | 117 - elpa/ein-20200127.249/ein-org.elc | Bin 3314 -> 0 bytes elpa/ein-20200127.249/ein-output-area.elc | Bin 3442 -> 0 bytes elpa/ein-20200127.249/ein-pkg.el | 14 - elpa/ein-20200127.249/ein-python.el | 82 - elpa/ein-20200127.249/ein-python.elc | Bin 1242 -> 0 bytes elpa/ein-20200127.249/ein-pytools.el | 467 - elpa/ein-20200127.249/ein-pytools.elc | Bin 16850 -> 0 bytes elpa/ein-20200127.249/ein-skewer.el | 98 - elpa/ein-20200127.249/ein-skewer.elc | Bin 3119 -> 0 bytes elpa/ein-20200127.249/ein-smartrep.el | 55 - elpa/ein-20200127.249/ein-smartrep.elc | Bin 1310 -> 0 bytes elpa/ein-20200127.249/ein-subpackages.el | 45 - elpa/ein-20200127.249/ein-subpackages.elc | Bin 1065 -> 0 bytes elpa/ein-20200127.249/ein-timestamp.el | 68 - elpa/ein-20200127.249/ein-timestamp.elc | Bin 2085 -> 0 bytes elpa/ein-20200127.249/ein-utils.elc | Bin 27234 -> 0 bytes elpa/ein-20200127.249/ein-websocket.elc | Bin 6104 -> 0 bytes elpa/ein-20200127.249/ein_inspector.py | 46 - elpa/ein-20200127.249/ein_remote_safe.py | 163 - elpa/ein-20200127.249/ob-ein.elc | Bin 18600 -> 0 bytes elpa/ein-20200127.249/poly-ein.elc | Bin 19575 -> 0 bytes .../ein-autoloads.el | 315 +- .../ein-cell.el | 742 +- elpa/ein-20200202.218/ein-cell.elc | Bin 0 -> 40761 bytes .../ein-classes.el | 81 +- .../ein-classes.elc | Bin 94275 -> 86314 bytes elpa/ein-20200202.218/ein-completer.el | 34 + .../ein-completer.elc} | Bin 703 -> 587 bytes .../ein-contents-api.el | 280 +- elpa/ein-20200202.218/ein-contents-api.elc | Bin 0 -> 21875 bytes .../ein-core.el | 104 +- elpa/ein-20200202.218/ein-core.elc | Bin 0 -> 14351 bytes .../ein-dev.el | 52 +- elpa/ein-20200202.218/ein-dev.elc | Bin 0 -> 13080 bytes .../ein-events.el | 4 +- .../ein-events.elc | Bin .../ein-file.el | 19 +- .../ein-file.elc | Bin 3262 -> 2470 bytes .../ein-helm.el | 0 .../ein-helm.elc | Bin .../ein-iexec.el | 4 +- .../ein-iexec.elc | Bin .../ein-ipdb.el | 20 +- .../ein-ipdb.elc | Bin 14954 -> 14617 bytes .../ein-ipynb-mode.el | 0 .../ein-ipynb-mode.elc | Bin elpa/ein-20200202.218/ein-jupyter.el | 364 + elpa/ein-20200202.218/ein-jupyter.elc | Bin 0 -> 13531 bytes .../ein-jupyterhub.el | 21 +- .../ein-jupyterhub.elc | Bin 41920 -> 41339 bytes elpa/ein-20200202.218/ein-k8s.el | 171 + elpa/ein-20200202.218/ein-k8s.elc | Bin 0 -> 6578 bytes .../ein-kernel.el | 395 +- elpa/ein-20200202.218/ein-kernel.elc | Bin 0 -> 37565 bytes elpa/ein-20200202.218/ein-kernelinfo.el | 56 + elpa/ein-20200202.218/ein-kernelinfo.elc | Bin 0 -> 2270 bytes .../ein-kill-ring.el | 0 .../ein-kill-ring.elc | Bin .../ein-log.el | 9 +- .../ein-log.elc | Bin .../ein-markdown-mode.el} | 6223 +++----- elpa/ein-20200202.218/ein-markdown-mode.elc | Bin 0 -> 272786 bytes .../ein-node.el | 20 +- .../ein-node.elc | Bin .../ein-notebook.el | 931 +- elpa/ein-20200202.218/ein-notebook.elc | Bin 0 -> 202975 bytes elpa/ein-20200202.218/ein-notebooklist.el | 792 + elpa/ein-20200202.218/ein-notebooklist.elc | Bin 0 -> 44223 bytes .../ein-notification.el | 84 +- .../ein-notification.elc | Bin 13044 -> 12444 bytes .../ein-output-area.el | 128 +- elpa/ein-20200202.218/ein-output-area.elc | Bin 0 -> 4825 bytes .../ein-pager.el | 0 .../ein-pager.elc | Bin elpa/ein-20200202.218/ein-pkg.el | 13 + .../ein-process.el | 81 +- .../ein-process.elc | Bin 13426 -> 13916 bytes .../ein-pseudo-console.el | 0 .../ein-pseudo-console.elc | Bin elpa/ein-20200202.218/ein-pytools.el | 146 + elpa/ein-20200202.218/ein-pytools.elc | Bin 0 -> 5315 bytes .../ein-query.el | 51 +- .../ein-query.elc | Bin 7777 -> 5971 bytes .../ein-scratchsheet.el | 5 +- .../ein-scratchsheet.elc | Bin 2189 -> 2132 bytes .../ein-shared-output.el | 41 +- .../ein-shared-output.elc | Bin 12925 -> 12094 bytes .../ein-traceback.el | 10 +- .../ein-traceback.elc | Bin 10925 -> 10920 bytes .../ein-utils.el | 217 +- elpa/ein-20200202.218/ein-utils.elc | Bin 0 -> 27761 bytes .../ein-websocket.el | 47 +- elpa/ein-20200202.218/ein-websocket.elc | Bin 0 -> 6458 bytes .../ein-worksheet.el | 500 +- .../ein-worksheet.elc | Bin 57546 -> 51469 bytes .../ein.el | 49 +- .../ein.elc | Bin 555 -> 547 bytes .../ob-ein.el | 230 +- elpa/ein-20200202.218/ob-ein.elc | Bin 0 -> 17077 bytes .../poly-ein.el | 138 +- elpa/ein-20200202.218/poly-ein.elc | Bin 0 -> 20024 bytes .../elpy-autoloads.el | 0 .../elpy-django.el | 0 .../elpy-django.elc | Bin .../elpy-pkg.el | 2 +- .../elpy-profile.el | 0 .../elpy-profile.elc | Bin .../elpy-refactor.el | 0 .../elpy-refactor.elc | Bin .../elpy-rpc.el | 3 +- .../elpy-rpc.elc | Bin 38281 -> 38249 bytes .../elpy-shell.el | 0 .../elpy-shell.elc | Bin 53319 -> 53346 bytes .../elpy.el | 0 .../elpy.elc | Bin 118741 -> 118143 bytes .../elpy/__init__.py | 0 .../elpy/__main__.py | 0 .../elpy/auto_pep8.py | 0 .../elpy/blackutil.py | 0 .../elpy/compat.py | 0 .../elpy/jedibackend.py | 0 .../elpy/pydocutils.py | 0 .../elpy/refactor.py | 0 .../elpy/rpc.py | 0 .../elpy/server.py | 0 .../elpy/tests/__init__.py | 0 .../elpy/tests/compat.py | 0 .../elpy/tests/support.py | 0 .../elpy/tests/test_auto_pep8.py | 0 .../elpy/tests/test_black.py | 0 .../elpy/tests/test_jedibackend.py | 0 .../elpy/tests/test_pydocutils.py | 0 .../elpy/tests/test_refactor.py | 0 .../elpy/tests/test_rpc.py | 0 .../elpy/tests/test_server.py | 0 .../elpy/tests/test_support.py | 0 .../elpy/tests/test_yapf.py | 0 .../elpy/yapfutil.py | 0 .../snippets/python-mode/.yas-setup.el | 0 .../snippets/python-mode/.yas-setup.elc | Bin .../snippets/python-mode/__abs__ | 0 .../snippets/python-mode/__add__ | 0 .../snippets/python-mode/__and__ | 0 .../snippets/python-mode/__bool__ | 0 .../snippets/python-mode/__call__ | 0 .../snippets/python-mode/__cmp__ | 0 .../snippets/python-mode/__coerce__ | 0 .../snippets/python-mode/__complex__ | 0 .../snippets/python-mode/__contains__ | 0 .../snippets/python-mode/__del__ | 0 .../snippets/python-mode/__delattr__ | 0 .../snippets/python-mode/__delete__ | 0 .../snippets/python-mode/__delitem__ | 0 .../snippets/python-mode/__div__ | 0 .../snippets/python-mode/__divmod__ | 0 .../snippets/python-mode/__enter__ | 0 .../snippets/python-mode/__eq__ | 0 .../snippets/python-mode/__exit__ | 0 .../snippets/python-mode/__float__ | 0 .../snippets/python-mode/__floordiv__ | 0 .../snippets/python-mode/__ge__ | 0 .../snippets/python-mode/__get__ | 0 .../snippets/python-mode/__getattr__ | 0 .../snippets/python-mode/__getattribute__ | 0 .../snippets/python-mode/__getitem__ | 0 .../snippets/python-mode/__gt__ | 0 .../snippets/python-mode/__hash__ | 0 .../snippets/python-mode/__hex__ | 0 .../snippets/python-mode/__iadd__ | 0 .../snippets/python-mode/__iand__ | 0 .../snippets/python-mode/__idiv__ | 0 .../snippets/python-mode/__ifloordiv__ | 0 .../snippets/python-mode/__ilshift__ | 0 .../snippets/python-mode/__imod__ | 0 .../snippets/python-mode/__imul__ | 0 .../snippets/python-mode/__index__ | 0 .../snippets/python-mode/__init__ | 0 .../snippets/python-mode/__instancecheck__ | 0 .../snippets/python-mode/__int__ | 0 .../snippets/python-mode/__invert__ | 0 .../snippets/python-mode/__ior__ | 0 .../snippets/python-mode/__ipow__ | 0 .../snippets/python-mode/__irshift__ | 0 .../snippets/python-mode/__isub__ | 0 .../snippets/python-mode/__iter__ | 0 .../snippets/python-mode/__itruediv__ | 0 .../snippets/python-mode/__ixor__ | 0 .../snippets/python-mode/__le__ | 0 .../snippets/python-mode/__len__ | 0 .../snippets/python-mode/__long__ | 0 .../snippets/python-mode/__lshift__ | 0 .../snippets/python-mode/__lt__ | 0 .../snippets/python-mode/__mod__ | 0 .../snippets/python-mode/__mul__ | 0 .../snippets/python-mode/__ne__ | 0 .../snippets/python-mode/__neg__ | 0 .../snippets/python-mode/__new__ | 0 .../snippets/python-mode/__nonzero__ | 0 .../snippets/python-mode/__oct__ | 0 .../snippets/python-mode/__or__ | 0 .../snippets/python-mode/__pos__ | 0 .../snippets/python-mode/__pow__ | 0 .../snippets/python-mode/__radd__ | 0 .../snippets/python-mode/__rand__ | 0 .../snippets/python-mode/__rdivmod__ | 0 .../snippets/python-mode/__repr__ | 0 .../snippets/python-mode/__reversed__ | 0 .../snippets/python-mode/__rfloordiv__ | 0 .../snippets/python-mode/__rlshift__ | 0 .../snippets/python-mode/__rmod__ | 0 .../snippets/python-mode/__rmul__ | 0 .../snippets/python-mode/__ror__ | 0 .../snippets/python-mode/__rpow__ | 0 .../snippets/python-mode/__rrshift__ | 0 .../snippets/python-mode/__rshift__ | 0 .../snippets/python-mode/__rsub__ | 0 .../snippets/python-mode/__rtruediv__ | 0 .../snippets/python-mode/__rxor__ | 0 .../snippets/python-mode/__set__ | 0 .../snippets/python-mode/__setattr__ | 0 .../snippets/python-mode/__setitem__ | 0 .../snippets/python-mode/__slots__ | 0 .../snippets/python-mode/__str__ | 0 .../snippets/python-mode/__sub__ | 0 .../snippets/python-mode/__subclasscheck__ | 0 .../snippets/python-mode/__truediv__ | 0 .../snippets/python-mode/__unicode__ | 0 .../snippets/python-mode/__xor__ | 0 .../snippets/python-mode/_abs | 0 .../snippets/python-mode/_add | 0 .../snippets/python-mode/_and | 0 .../snippets/python-mode/_bool | 0 .../snippets/python-mode/_call | 0 .../snippets/python-mode/_cmp | 0 .../snippets/python-mode/_coerce | 0 .../snippets/python-mode/_complex | 0 .../snippets/python-mode/_contains | 0 .../snippets/python-mode/_del | 0 .../snippets/python-mode/_delattr | 0 .../snippets/python-mode/_delete | 0 .../snippets/python-mode/_delitem | 0 .../snippets/python-mode/_div | 0 .../snippets/python-mode/_divmod | 0 .../snippets/python-mode/_enter | 0 .../snippets/python-mode/_eq | 0 .../snippets/python-mode/_exit | 0 .../snippets/python-mode/_float | 0 .../snippets/python-mode/_floordiv | 0 .../snippets/python-mode/_ge | 0 .../snippets/python-mode/_get | 0 .../snippets/python-mode/_getattr | 0 .../snippets/python-mode/_getattribute | 0 .../snippets/python-mode/_getitem | 0 .../snippets/python-mode/_gt | 0 .../snippets/python-mode/_hash | 0 .../snippets/python-mode/_hex | 0 .../snippets/python-mode/_iadd | 0 .../snippets/python-mode/_iand | 0 .../snippets/python-mode/_idiv | 0 .../snippets/python-mode/_ifloordiv | 0 .../snippets/python-mode/_ilshift | 0 .../snippets/python-mode/_imod | 0 .../snippets/python-mode/_imul | 0 .../snippets/python-mode/_index | 0 .../snippets/python-mode/_init | 0 .../snippets/python-mode/_instancecheck | 0 .../snippets/python-mode/_int | 0 .../snippets/python-mode/_invert | 0 .../snippets/python-mode/_ior | 0 .../snippets/python-mode/_ipow | 0 .../snippets/python-mode/_irshift | 0 .../snippets/python-mode/_isub | 0 .../snippets/python-mode/_iter | 0 .../snippets/python-mode/_itruediv | 0 .../snippets/python-mode/_ixor | 0 .../snippets/python-mode/_le | 0 .../snippets/python-mode/_len | 0 .../snippets/python-mode/_long | 0 .../snippets/python-mode/_lshift | 0 .../snippets/python-mode/_lt | 0 .../snippets/python-mode/_mod | 0 .../snippets/python-mode/_mul | 0 .../snippets/python-mode/_ne | 0 .../snippets/python-mode/_neg | 0 .../snippets/python-mode/_new | 0 .../snippets/python-mode/_nonzero | 0 .../snippets/python-mode/_oct | 0 .../snippets/python-mode/_or | 0 .../snippets/python-mode/_pos | 0 .../snippets/python-mode/_pow | 0 .../snippets/python-mode/_radd | 0 .../snippets/python-mode/_rand | 0 .../snippets/python-mode/_rdivmod | 0 .../snippets/python-mode/_repr | 0 .../snippets/python-mode/_reversed | 0 .../snippets/python-mode/_rfloordiv | 0 .../snippets/python-mode/_rlshift | 0 .../snippets/python-mode/_rmod | 0 .../snippets/python-mode/_rmul | 0 .../snippets/python-mode/_ror | 0 .../snippets/python-mode/_rpow | 0 .../snippets/python-mode/_rrshift | 0 .../snippets/python-mode/_rshift | 0 .../snippets/python-mode/_rsub | 0 .../snippets/python-mode/_rtruediv | 0 .../snippets/python-mode/_rxor | 0 .../snippets/python-mode/_set | 0 .../snippets/python-mode/_setattr | 0 .../snippets/python-mode/_setitem | 0 .../snippets/python-mode/_slots | 0 .../snippets/python-mode/_str | 0 .../snippets/python-mode/_sub | 0 .../snippets/python-mode/_subclasscheck | 0 .../snippets/python-mode/_truediv | 0 .../snippets/python-mode/_unicode | 0 .../snippets/python-mode/_xor | 0 .../snippets/python-mode/ase | 0 .../snippets/python-mode/asne | 0 .../snippets/python-mode/asr | 0 .../snippets/python-mode/class | 0 .../snippets/python-mode/def | 0 .../snippets/python-mode/defs | 0 .../snippets/python-mode/enc | 0 .../snippets/python-mode/env | 0 .../snippets/python-mode/from | 0 .../snippets/python-mode/pdb | 0 .../snippets/python-mode/py3 | 0 .../snippets/python-mode/super | 0 .../js2-imenu-extras.el | 349 - .../js2-imenu-extras.elc | Bin 13937 -> 0 bytes .../js2-mode-autoloads.el | 85 - elpa/js2-mode-20190815.1327/js2-mode-pkg.el | 15 - elpa/js2-mode-20190815.1327/js2-mode.el | 12940 ---------------- elpa/js2-mode-20190815.1327/js2-mode.elc | Bin 1298254 -> 0 bytes elpa/js2-mode-20190815.1327/js2-old-indent.el | 712 - .../js2-mode-20190815.1327/js2-old-indent.elc | Bin 15996 -> 0 bytes .../kubernetes-20200114.436/kubernetes-ast.el | 312 + .../kubernetes-ast.elc | Bin 0 -> 11182 bytes .../kubernetes-autoloads.el | 518 + .../kubernetes-commands.el | 398 + .../kubernetes-commands.elc | Bin 0 -> 16263 bytes .../kubernetes-configmaps.el | 137 + .../kubernetes-configmaps.elc | Bin 0 -> 7027 bytes .../kubernetes-contexts.el | 83 + .../kubernetes-contexts.elc | Bin 0 -> 4131 bytes .../kubernetes-deployments.el | 195 + .../kubernetes-deployments.elc | Bin 0 -> 8139 bytes .../kubernetes-errors.el | 31 + .../kubernetes-errors.elc | Bin 0 -> 1441 bytes .../kubernetes-ingress.el | 138 + .../kubernetes-ingress.elc | Bin 0 -> 7027 bytes .../kubernetes-jobs.el | 180 + .../kubernetes-jobs.elc | Bin 0 -> 7704 bytes .../kubernetes-kubectl.el | 524 + .../kubernetes-kubectl.elc | Bin 0 -> 19815 bytes .../kubernetes-labels.el | 85 + .../kubernetes-labels.elc | Bin 0 -> 3269 bytes .../kubernetes-loading-container.el | 78 + .../kubernetes-loading-container.elc | Bin 0 -> 4212 bytes .../kubernetes-logs.el | 132 + .../kubernetes-logs.elc | Bin 0 -> 8711 bytes .../kubernetes-modes.el | 90 + .../kubernetes-modes.elc | Bin 0 -> 7882 bytes .../kubernetes-namespaces.el | 53 + .../kubernetes-namespaces.elc | Bin 0 -> 3042 bytes .../kubernetes-nodes.el | 155 + .../kubernetes-nodes.elc | Bin 0 -> 6841 bytes .../kubernetes-overview.el | 455 + .../kubernetes-overview.elc | Bin 0 -> 21102 bytes .../kubernetes-20200114.436/kubernetes-pkg.el | 12 + .../kubernetes-pod-line.el | 51 + .../kubernetes-pod-line.elc | Bin 0 -> 2112 bytes .../kubernetes-pods.el | 200 + .../kubernetes-pods.elc | Bin 0 -> 8273 bytes .../kubernetes-popups.el | 136 + .../kubernetes-popups.elc | Bin 0 -> 8670 bytes .../kubernetes-process.el | 85 + .../kubernetes-process.elc | Bin 0 -> 13076 bytes .../kubernetes-props.el | 27 + .../kubernetes-props.elc | Bin 0 -> 1351 bytes .../kubernetes-secrets.el | 133 + .../kubernetes-secrets.elc | Bin 0 -> 6791 bytes .../kubernetes-services.el | 168 + .../kubernetes-services.elc | Bin 0 -> 7792 bytes .../kubernetes-state.el | 646 + .../kubernetes-state.elc | Bin 0 -> 35008 bytes .../kubernetes-statefulsets.el | 182 + .../kubernetes-statefulsets.elc | Bin 0 -> 8132 bytes .../kubernetes-timers.el | 43 + .../kubernetes-timers.elc | Bin 0 -> 1404 bytes .../kubernetes-utils.el | 183 + .../kubernetes-utils.elc | Bin 0 -> 6790 bytes .../kubernetes-vars.el | 220 + .../kubernetes-vars.elc | Bin 0 -> 7559 bytes .../kubernetes-yaml.el | 79 + .../kubernetes-yaml.elc | Bin 0 -> 2324 bytes elpa/kubernetes-20200114.436/kubernetes.el | 35 + elpa/kubernetes-20200114.436/kubernetes.elc | Bin 0 -> 588 bytes elpa/magit-popup-20200102.1811/dir | 18 + .../magit-popup-autoloads.el} | 14 +- .../magit-popup-pkg.el | 13 + elpa/magit-popup-20200102.1811/magit-popup.el | 1360 ++ .../magit-popup-20200102.1811/magit-popup.elc | Bin 0 -> 58833 bytes .../magit-popup.info | 744 + .../markdown-mode-autoloads.el | 51 - .../markdown-mode-pkg.el | 2 - .../markdown-mode.elc | Bin 326873 -> 0 bytes elpa/popup-20160709.1429/popup-pkg.el | 2 - elpa/popup-20160709.1429/popup.el | 1432 -- elpa/popup-20160709.1429/popup.elc | Bin 74993 -> 0 bytes .../simple-httpd-autoloads.el | 44 - .../simple-httpd-pkg.el | 2 - .../simple-httpd.el | 903 -- .../simple-httpd.elc | Bin 26240 -> 0 bytes elpa/skewer-mode-20200103.2247/cache-table.el | 66 - .../skewer-mode-20200103.2247/cache-table.elc | Bin 6710 -> 0 bytes elpa/skewer-mode-20200103.2247/example.html | 9 - .../skewer-mode-20200103.2247/skewer-bower.el | 217 - .../skewer-bower.elc | Bin 7546 -> 0 bytes elpa/skewer-mode-20200103.2247/skewer-css.el | 134 - elpa/skewer-mode-20200103.2247/skewer-css.elc | Bin 4971 -> 0 bytes .../skewer-everything.user.js | 54 - elpa/skewer-mode-20200103.2247/skewer-html.el | 165 - .../skewer-mode-20200103.2247/skewer-html.elc | Bin 7619 -> 0 bytes .../skewer-mode-autoloads.el | 128 - .../skewer-mode-pkg.el | 7 - elpa/skewer-mode-20200103.2247/skewer-mode.el | 620 - .../skewer-mode-20200103.2247/skewer-mode.elc | Bin 29614 -> 0 bytes elpa/skewer-mode-20200103.2247/skewer-repl.el | 210 - .../skewer-mode-20200103.2247/skewer-repl.elc | Bin 8901 -> 0 bytes .../skewer-mode-20200103.2247/skewer-setup.el | 21 - elpa/skewer-mode-20200103.2247/skewer.js | 436 - 510 files changed, 14096 insertions(+), 49003 deletions(-) create mode 100644 elpa/anaphora-20180618.2200/anaphora-autoloads.el create mode 100644 elpa/anaphora-20180618.2200/anaphora-pkg.el create mode 100644 elpa/anaphora-20180618.2200/anaphora.el create mode 100644 elpa/anaphora-20180618.2200/anaphora.elc delete mode 100644 elpa/auto-complete-20170125.245/auto-complete-autoloads.el delete mode 100644 elpa/auto-complete-20170125.245/auto-complete-config.el delete mode 100644 elpa/auto-complete-20170125.245/auto-complete-config.elc delete mode 100644 elpa/auto-complete-20170125.245/auto-complete-pkg.el delete mode 100644 elpa/auto-complete-20170125.245/auto-complete.el delete mode 100644 elpa/auto-complete-20170125.245/auto-complete.elc delete mode 100644 elpa/auto-complete-20170125.245/dict/ada-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/c++-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/c-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/caml-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/clojure-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/clojurescript-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/coq-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/css-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/erlang-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/ess-julia-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/go-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/haskell-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/java-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/js-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/julia-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/lua-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/nim-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/objc-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/octave-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/php-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/python-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/qml-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/ruby-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/scala-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/scheme-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/sclang-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/sh-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/swift-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/tcl-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/ts-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/tuareg-mode delete mode 100644 elpa/auto-complete-20170125.245/dict/verilog-mode delete mode 100644 elpa/ein-20200127.249/ein-ac.el delete mode 100644 elpa/ein-20200127.249/ein-ac.elc delete mode 100644 elpa/ein-20200127.249/ein-cell-edit.el delete mode 100644 elpa/ein-20200127.249/ein-cell-edit.elc delete mode 100644 elpa/ein-20200127.249/ein-cell-output.el delete mode 100644 elpa/ein-20200127.249/ein-cell-output.elc delete mode 100644 elpa/ein-20200127.249/ein-cell.elc delete mode 100644 elpa/ein-20200127.249/ein-company.el delete mode 100644 elpa/ein-20200127.249/ein-company.elc delete mode 100644 elpa/ein-20200127.249/ein-completer.el delete mode 100644 elpa/ein-20200127.249/ein-completer.elc delete mode 100644 elpa/ein-20200127.249/ein-connect.el delete mode 100644 elpa/ein-20200127.249/ein-connect.elc delete mode 100644 elpa/ein-20200127.249/ein-console.el delete mode 100644 elpa/ein-20200127.249/ein-console.elc delete mode 100644 elpa/ein-20200127.249/ein-contents-api.elc delete mode 100644 elpa/ein-20200127.249/ein-core.elc delete mode 100644 elpa/ein-20200127.249/ein-dev.elc delete mode 100644 elpa/ein-20200127.249/ein-hy.el delete mode 100644 elpa/ein-20200127.249/ein-hy.elc delete mode 100644 elpa/ein-20200127.249/ein-inspector.el delete mode 100644 elpa/ein-20200127.249/ein-inspector.elc delete mode 100644 elpa/ein-20200127.249/ein-jupyter.el delete mode 100644 elpa/ein-20200127.249/ein-jupyter.elc delete mode 100644 elpa/ein-20200127.249/ein-kernel.elc delete mode 100644 elpa/ein-20200127.249/ein-kernelinfo.el delete mode 100644 elpa/ein-20200127.249/ein-kernelinfo.elc delete mode 100644 elpa/ein-20200127.249/ein-multilang-fontify.el delete mode 100644 elpa/ein-20200127.249/ein-multilang-fontify.elc delete mode 100644 elpa/ein-20200127.249/ein-multilang.el delete mode 100644 elpa/ein-20200127.249/ein-multilang.elc delete mode 100644 elpa/ein-20200127.249/ein-notebook.elc delete mode 100644 elpa/ein-20200127.249/ein-notebooklist.el delete mode 100644 elpa/ein-20200127.249/ein-notebooklist.elc delete mode 100644 elpa/ein-20200127.249/ein-org.el delete mode 100644 elpa/ein-20200127.249/ein-org.elc delete mode 100644 elpa/ein-20200127.249/ein-output-area.elc delete mode 100644 elpa/ein-20200127.249/ein-pkg.el delete mode 100644 elpa/ein-20200127.249/ein-python.el delete mode 100644 elpa/ein-20200127.249/ein-python.elc delete mode 100644 elpa/ein-20200127.249/ein-pytools.el delete mode 100644 elpa/ein-20200127.249/ein-pytools.elc delete mode 100644 elpa/ein-20200127.249/ein-skewer.el delete mode 100644 elpa/ein-20200127.249/ein-skewer.elc delete mode 100644 elpa/ein-20200127.249/ein-smartrep.el delete mode 100644 elpa/ein-20200127.249/ein-smartrep.elc delete mode 100644 elpa/ein-20200127.249/ein-subpackages.el delete mode 100644 elpa/ein-20200127.249/ein-subpackages.elc delete mode 100644 elpa/ein-20200127.249/ein-timestamp.el delete mode 100644 elpa/ein-20200127.249/ein-timestamp.elc delete mode 100644 elpa/ein-20200127.249/ein-utils.elc delete mode 100644 elpa/ein-20200127.249/ein-websocket.elc delete mode 100644 elpa/ein-20200127.249/ein_inspector.py delete mode 100644 elpa/ein-20200127.249/ein_remote_safe.py delete mode 100644 elpa/ein-20200127.249/ob-ein.elc delete mode 100644 elpa/ein-20200127.249/poly-ein.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-autoloads.el (58%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-cell.el (60%) create mode 100644 elpa/ein-20200202.218/ein-cell.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-classes.el (81%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-classes.elc (70%) create mode 100644 elpa/ein-20200202.218/ein-completer.el rename elpa/{skewer-mode-20200103.2247/skewer-setup.elc => ein-20200202.218/ein-completer.elc} (57%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-contents-api.el (60%) create mode 100644 elpa/ein-20200202.218/ein-contents-api.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-core.el (81%) create mode 100644 elpa/ein-20200202.218/ein-core.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-dev.el (88%) create mode 100644 elpa/ein-20200202.218/ein-dev.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-events.el (93%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-events.elc (100%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-file.el (79%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-file.elc (69%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-helm.el (100%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-helm.elc (100%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-iexec.el (95%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-iexec.elc (100%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-ipdb.el (91%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-ipdb.elc (97%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-ipynb-mode.el (100%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-ipynb-mode.elc (100%) create mode 100644 elpa/ein-20200202.218/ein-jupyter.el create mode 100644 elpa/ein-20200202.218/ein-jupyter.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-jupyterhub.el (96%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-jupyterhub.elc (51%) create mode 100644 elpa/ein-20200202.218/ein-k8s.el create mode 100644 elpa/ein-20200202.218/ein-k8s.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-kernel.el (71%) create mode 100644 elpa/ein-20200202.218/ein-kernel.elc create mode 100644 elpa/ein-20200202.218/ein-kernelinfo.el create mode 100644 elpa/ein-20200202.218/ein-kernelinfo.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-kill-ring.el (100%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-kill-ring.elc (100%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-log.el (97%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-log.elc (100%) rename elpa/{markdown-mode-20191230.1055/markdown-mode.el => ein-20200202.218/ein-markdown-mode.el} (55%) create mode 100644 elpa/ein-20200202.218/ein-markdown-mode.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-node.el (79%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-node.elc (100%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-notebook.el (60%) create mode 100644 elpa/ein-20200202.218/ein-notebook.elc create mode 100644 elpa/ein-20200202.218/ein-notebooklist.el create mode 100644 elpa/ein-20200202.218/ein-notebooklist.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-notification.el (82%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-notification.elc (83%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-output-area.el (62%) create mode 100644 elpa/ein-20200202.218/ein-output-area.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-pager.el (100%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-pager.elc (100%) create mode 100644 elpa/ein-20200202.218/ein-pkg.el rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-process.el (70%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-process.elc (75%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-pseudo-console.el (100%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-pseudo-console.elc (100%) create mode 100644 elpa/ein-20200202.218/ein-pytools.el create mode 100644 elpa/ein-20200202.218/ein-pytools.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-query.el (73%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-query.elc (50%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-scratchsheet.el (88%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-scratchsheet.elc (85%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-shared-output.el (88%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-shared-output.elc (71%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-traceback.el (96%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-traceback.elc (94%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-utils.el (84%) create mode 100644 elpa/ein-20200202.218/ein-utils.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-websocket.el (77%) create mode 100644 elpa/ein-20200202.218/ein-websocket.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-worksheet.el (73%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein-worksheet.elc (61%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein.el (50%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ein.elc (72%) rename elpa/{ein-20200127.249 => ein-20200202.218}/ob-ein.el (64%) create mode 100644 elpa/ein-20200202.218/ob-ein.elc rename elpa/{ein-20200127.249 => ein-20200202.218}/poly-ein.el (74%) create mode 100644 elpa/ein-20200202.218/poly-ein.elc rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-autoloads.el (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-django.el (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-django.elc (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-pkg.el (76%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-profile.el (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-profile.elc (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-refactor.el (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-refactor.elc (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-rpc.el (99%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-rpc.elc (88%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-shell.el (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy-shell.elc (94%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy.el (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy.elc (87%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/__init__.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/__main__.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/auto_pep8.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/blackutil.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/compat.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/jedibackend.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/pydocutils.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/refactor.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/rpc.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/server.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/__init__.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/compat.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/support.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/test_auto_pep8.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/test_black.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/test_jedibackend.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/test_pydocutils.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/test_refactor.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/test_rpc.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/test_server.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/test_support.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/tests/test_yapf.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/elpy/yapfutil.py (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/.yas-setup.el (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/.yas-setup.elc (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__abs__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__add__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__and__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__bool__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__call__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__cmp__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__coerce__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__complex__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__contains__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__del__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__delattr__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__delete__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__delitem__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__div__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__divmod__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__enter__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__eq__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__exit__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__float__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__floordiv__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__ge__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__get__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__getattr__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__getattribute__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__getitem__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__gt__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__hash__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__hex__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__iadd__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__iand__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__idiv__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__ifloordiv__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__ilshift__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__imod__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__imul__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__index__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__init__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__instancecheck__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__int__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__invert__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__ior__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__ipow__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__irshift__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__isub__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__iter__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__itruediv__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__ixor__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__le__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__len__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__long__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__lshift__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__lt__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__mod__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__mul__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__ne__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__neg__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__new__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__nonzero__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__oct__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__or__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__pos__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__pow__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__radd__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rand__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rdivmod__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__repr__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__reversed__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rfloordiv__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rlshift__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rmod__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rmul__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__ror__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rpow__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rrshift__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rshift__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rsub__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rtruediv__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__rxor__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__set__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__setattr__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__setitem__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__slots__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__str__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__sub__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__subclasscheck__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__truediv__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__unicode__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/__xor__ (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_abs (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_add (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_and (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_bool (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_call (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_cmp (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_coerce (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_complex (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_contains (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_del (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_delattr (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_delete (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_delitem (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_div (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_divmod (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_enter (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_eq (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_exit (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_float (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_floordiv (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_ge (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_get (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_getattr (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_getattribute (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_getitem (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_gt (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_hash (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_hex (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_iadd (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_iand (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_idiv (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_ifloordiv (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_ilshift (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_imod (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_imul (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_index (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_init (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_instancecheck (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_int (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_invert (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_ior (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_ipow (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_irshift (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_isub (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_iter (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_itruediv (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_ixor (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_le (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_len (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_long (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_lshift (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_lt (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_mod (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_mul (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_ne (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_neg (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_new (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_nonzero (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_oct (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_or (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_pos (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_pow (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_radd (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rand (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rdivmod (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_repr (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_reversed (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rfloordiv (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rlshift (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rmod (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rmul (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_ror (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rpow (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rrshift (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rshift (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rsub (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rtruediv (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_rxor (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_set (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_setattr (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_setitem (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_slots (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_str (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_sub (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_subclasscheck (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_truediv (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_unicode (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/_xor (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/ase (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/asne (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/asr (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/class (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/def (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/defs (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/enc (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/env (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/from (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/pdb (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/py3 (100%) rename elpa/{elpy-20200112.1819 => elpy-20200202.2031}/snippets/python-mode/super (100%) delete mode 100644 elpa/js2-mode-20190815.1327/js2-imenu-extras.el delete mode 100644 elpa/js2-mode-20190815.1327/js2-imenu-extras.elc delete mode 100644 elpa/js2-mode-20190815.1327/js2-mode-autoloads.el delete mode 100644 elpa/js2-mode-20190815.1327/js2-mode-pkg.el delete mode 100644 elpa/js2-mode-20190815.1327/js2-mode.el delete mode 100644 elpa/js2-mode-20190815.1327/js2-mode.elc delete mode 100644 elpa/js2-mode-20190815.1327/js2-old-indent.el delete mode 100644 elpa/js2-mode-20190815.1327/js2-old-indent.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-ast.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-ast.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-autoloads.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-commands.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-commands.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-configmaps.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-configmaps.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-contexts.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-contexts.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-deployments.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-deployments.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-errors.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-errors.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-ingress.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-ingress.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-jobs.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-jobs.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-kubectl.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-kubectl.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-labels.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-labels.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-loading-container.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-loading-container.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-logs.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-logs.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-modes.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-modes.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-namespaces.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-namespaces.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-nodes.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-nodes.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-overview.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-overview.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-pkg.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-pod-line.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-pod-line.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-pods.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-pods.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-popups.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-popups.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-process.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-process.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-props.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-props.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-secrets.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-secrets.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-services.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-services.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-state.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-state.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-statefulsets.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-statefulsets.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-timers.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-timers.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-utils.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-utils.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-vars.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-vars.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes-yaml.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes-yaml.elc create mode 100644 elpa/kubernetes-20200114.436/kubernetes.el create mode 100644 elpa/kubernetes-20200114.436/kubernetes.elc create mode 100644 elpa/magit-popup-20200102.1811/dir rename elpa/{popup-20160709.1429/popup-autoloads.el => magit-popup-20200102.1811/magit-popup-autoloads.el} (50%) create mode 100644 elpa/magit-popup-20200102.1811/magit-popup-pkg.el create mode 100644 elpa/magit-popup-20200102.1811/magit-popup.el create mode 100644 elpa/magit-popup-20200102.1811/magit-popup.elc create mode 100644 elpa/magit-popup-20200102.1811/magit-popup.info delete mode 100644 elpa/markdown-mode-20191230.1055/markdown-mode-autoloads.el delete mode 100644 elpa/markdown-mode-20191230.1055/markdown-mode-pkg.el delete mode 100644 elpa/markdown-mode-20191230.1055/markdown-mode.elc delete mode 100644 elpa/popup-20160709.1429/popup-pkg.el delete mode 100644 elpa/popup-20160709.1429/popup.el delete mode 100644 elpa/popup-20160709.1429/popup.elc delete mode 100644 elpa/simple-httpd-20191103.1446/simple-httpd-autoloads.el delete mode 100644 elpa/simple-httpd-20191103.1446/simple-httpd-pkg.el delete mode 100644 elpa/simple-httpd-20191103.1446/simple-httpd.el delete mode 100644 elpa/simple-httpd-20191103.1446/simple-httpd.elc delete mode 100644 elpa/skewer-mode-20200103.2247/cache-table.el delete mode 100644 elpa/skewer-mode-20200103.2247/cache-table.elc delete mode 100644 elpa/skewer-mode-20200103.2247/example.html delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-bower.el delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-bower.elc delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-css.el delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-css.elc delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-everything.user.js delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-html.el delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-html.elc delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-mode-autoloads.el delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-mode-pkg.el delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-mode.el delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-mode.elc delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-repl.el delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-repl.elc delete mode 100644 elpa/skewer-mode-20200103.2247/skewer-setup.el delete mode 100644 elpa/skewer-mode-20200103.2247/skewer.js diff --git a/elpa/anaphora-20180618.2200/anaphora-autoloads.el b/elpa/anaphora-20180618.2200/anaphora-autoloads.el new file mode 100644 index 00000000..cd3cf829 --- /dev/null +++ b/elpa/anaphora-20180618.2200/anaphora-autoloads.el @@ -0,0 +1,228 @@ +;;; anaphora-autoloads.el --- automatically extracted autoloads +;; +;;; Code: + +(add-to-list 'load-path (directory-file-name + (or (file-name-directory #$) (car load-path)))) + + +;;;### (autoloads nil "anaphora" "anaphora.el" (0 0 0 0)) +;;; Generated autoloads from anaphora.el + +(let ((loads (get 'anaphora 'custom-loads))) (if (member '"anaphora" loads) nil (put 'anaphora 'custom-loads (cons '"anaphora" loads)))) + +(defvar anaphora-use-long-names-only nil "\ +Use only long names such as `anaphoric-if' instead of traditional `aif'.") + +(custom-autoload 'anaphora-use-long-names-only "anaphora" t) + +(defun anaphora--install-traditional-aliases (&optional arg) "\ +Install traditional short aliases for anaphoric macros. + +With negative numeric ARG, remove traditional aliases." (let ((syms (quote ((if . t) (prog1 . t) (prog2 . t) (when . when) (while . t) (and . t) (cond . cond) (lambda . lambda) (block . block) (case . case) (ecase . ecase) (typecase . typecase) (etypecase . etypecase) (let . let) (+ . t) (- . t) (* . t) (/ . t))))) (cond ((and (numberp arg) (< arg 0)) (dolist (cell syms) (when (ignore-errors (eq (symbol-function (intern-soft (format "a%s" (car cell)))) (intern-soft (format "anaphoric-%s" (car cell))))) (fmakunbound (intern (format "a%s" (car cell))))))) (t (dolist (cell syms) (let* ((builtin (car cell)) (traditional (intern (format "a%s" builtin))) (long (intern (format "anaphoric-%s" builtin)))) (defalias traditional long) (put traditional (quote lisp-indent-function) (get builtin (quote lisp-indent-function))) (put traditional (quote edebug-form-spec) (cdr cell)))))))) + +(unless anaphora-use-long-names-only (anaphora--install-traditional-aliases)) + +(autoload 'anaphoric-if "anaphora" "\ +Like `if', but the result of evaluating COND is bound to `it'. + +The variable `it' is available within THEN and ELSE. + +COND, THEN, and ELSE are otherwise as documented for `if'. + +\(fn COND THEN &rest ELSE)" nil t) + +(function-put 'anaphoric-if 'lisp-indent-function '2) + +(autoload 'anaphoric-prog1 "anaphora" "\ +Like `prog1', but the result of evaluating FIRST is bound to `it'. + +The variable `it' is available within BODY. + +FIRST and BODY are otherwise as documented for `prog1'. + +\(fn FIRST &rest BODY)" nil t) + +(function-put 'anaphoric-prog1 'lisp-indent-function '1) + +(autoload 'anaphoric-prog2 "anaphora" "\ +Like `prog2', but the result of evaluating FORM2 is bound to `it'. + +The variable `it' is available within BODY. + +FORM1, FORM2, and BODY are otherwise as documented for `prog2'. + +\(fn FORM1 FORM2 &rest BODY)" nil t) + +(function-put 'anaphoric-prog2 'lisp-indent-function '2) + +(autoload 'anaphoric-when "anaphora" "\ +Like `when', but the result of evaluating COND is bound to `it'. + +The variable `it' is available within BODY. + +COND and BODY are otherwise as documented for `when'. + +\(fn COND &rest BODY)" nil t) + +(function-put 'anaphoric-when 'lisp-indent-function '1) + +(autoload 'anaphoric-while "anaphora" "\ +Like `while', but the result of evaluating TEST is bound to `it'. + +The variable `it' is available within BODY. + +TEST and BODY are otherwise as documented for `while'. + +\(fn TEST &rest BODY)" nil t) + +(function-put 'anaphoric-while 'lisp-indent-function '1) + +(autoload 'anaphoric-and "anaphora" "\ +Like `and', but the result of the previous condition is bound to `it'. + +The variable `it' is available within all CONDITIONS after the +initial one. + +CONDITIONS are otherwise as documented for `and'. + +Note that some implementations of this macro bind only the first +condition to `it', rather than each successive condition. + +\(fn &rest CONDITIONS)" nil t) + +(autoload 'anaphoric-cond "anaphora" "\ +Like `cond', but the result of each condition is bound to `it'. + +The variable `it' is available within the remainder of each of CLAUSES. + +CLAUSES are otherwise as documented for `cond'. + +\(fn &rest CLAUSES)" nil t) + +(autoload 'anaphoric-lambda "anaphora" "\ +Like `lambda', but the function may refer to itself as `self'. + +ARGS and BODY are otherwise as documented for `lambda'. + +\(fn ARGS &rest BODY)" nil t) + +(function-put 'anaphoric-lambda 'lisp-indent-function 'defun) + +(autoload 'anaphoric-block "anaphora" "\ +Like `block', but the result of the previous expression is bound to `it'. + +The variable `it' is available within all expressions of BODY +except the initial one. + +NAME and BODY are otherwise as documented for `block'. + +\(fn NAME &rest BODY)" nil t) + +(function-put 'anaphoric-block 'lisp-indent-function '1) + +(autoload 'anaphoric-case "anaphora" "\ +Like `case', but the result of evaluating EXPR is bound to `it'. + +The variable `it' is available within CLAUSES. + +EXPR and CLAUSES are otherwise as documented for `case'. + +\(fn EXPR &rest CLAUSES)" nil t) + +(function-put 'anaphoric-case 'lisp-indent-function '1) + +(autoload 'anaphoric-ecase "anaphora" "\ +Like `ecase', but the result of evaluating EXPR is bound to `it'. + +The variable `it' is available within CLAUSES. + +EXPR and CLAUSES are otherwise as documented for `ecase'. + +\(fn EXPR &rest CLAUSES)" nil t) + +(function-put 'anaphoric-ecase 'lisp-indent-function '1) + +(autoload 'anaphoric-typecase "anaphora" "\ +Like `typecase', but the result of evaluating EXPR is bound to `it'. + +The variable `it' is available within CLAUSES. + +EXPR and CLAUSES are otherwise as documented for `typecase'. + +\(fn EXPR &rest CLAUSES)" nil t) + +(function-put 'anaphoric-typecase 'lisp-indent-function '1) + +(autoload 'anaphoric-etypecase "anaphora" "\ +Like `etypecase', but result of evaluating EXPR is bound to `it'. + +The variable `it' is available within CLAUSES. + +EXPR and CLAUSES are otherwise as documented for `etypecase'. + +\(fn EXPR &rest CLAUSES)" nil t) + +(function-put 'anaphoric-etypecase 'lisp-indent-function '1) + +(autoload 'anaphoric-let "anaphora" "\ +Like `let', but the result of evaluating FORM is bound to `it'. + +FORM and BODY are otherwise as documented for `let'. + +\(fn FORM &rest BODY)" nil t) + +(function-put 'anaphoric-let 'lisp-indent-function '1) + +(autoload 'anaphoric-+ "anaphora" "\ +Like `+', but the result of evaluating the previous expression is bound to `it'. + +The variable `it' is available within all expressions after the +initial one. + +NUMBERS-OR-MARKERS are otherwise as documented for `+'. + +\(fn &rest NUMBERS-OR-MARKERS)" nil t) + +(autoload 'anaphoric-- "anaphora" "\ +Like `-', but the result of evaluating the previous expression is bound to `it'. + +The variable `it' is available within all expressions after the +initial one. + +NUMBER-OR-MARKER and NUMBERS-OR-MARKERS are otherwise as +documented for `-'. + +\(fn &optional NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)" nil t) + +(autoload 'anaphoric-* "anaphora" "\ +Like `*', but the result of evaluating the previous expression is bound to `it'. + +The variable `it' is available within all expressions after the +initial one. + +NUMBERS-OR-MARKERS are otherwise as documented for `*'. + +\(fn &rest NUMBERS-OR-MARKERS)" nil t) + +(autoload 'anaphoric-/ "anaphora" "\ +Like `/', but the result of evaluating the previous divisor is bound to `it'. + +The variable `it' is available within all expressions after the +first divisor. + +DIVIDEND, DIVISOR, and DIVISORS are otherwise as documented for `/'. + +\(fn DIVIDEND DIVISOR &rest DIVISORS)" nil t) + +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "anaphora" '("anaphora-install-font-lock-keywords"))) + +;;;*** + +;; Local Variables: +;; version-control: never +;; no-byte-compile: t +;; no-update-autoloads: t +;; coding: utf-8 +;; End: +;;; anaphora-autoloads.el ends here diff --git a/elpa/anaphora-20180618.2200/anaphora-pkg.el b/elpa/anaphora-20180618.2200/anaphora-pkg.el new file mode 100644 index 00000000..edb9e644 --- /dev/null +++ b/elpa/anaphora-20180618.2200/anaphora-pkg.el @@ -0,0 +1,2 @@ +;;; -*- no-byte-compile: t -*- +(define-package "anaphora" "20180618.2200" "anaphoric macros providing implicit temp variables" 'nil :commit "3b2da3f759b244975852e79721c4a2dbad3905cf" :keywords '("extensions") :authors '(("Roland Walker" . "walker@pobox.com")) :maintainer '("Roland Walker" . "walker@pobox.com") :url "http://github.com/rolandwalker/anaphora") diff --git a/elpa/anaphora-20180618.2200/anaphora.el b/elpa/anaphora-20180618.2200/anaphora.el new file mode 100644 index 00000000..fa575847 --- /dev/null +++ b/elpa/anaphora-20180618.2200/anaphora.el @@ -0,0 +1,461 @@ +;;; anaphora.el --- anaphoric macros providing implicit temp variables -*- lexical-binding: t -*- +;; +;; This code is in the public domain. +;; +;; Author: Roland Walker +;; Homepage: http://github.com/rolandwalker/anaphora +;; URL: http://raw.githubusercontent.com/rolandwalker/anaphora/master/anaphora.el +;; Package-Version: 20180618.2200 +;; Version: 1.0.4 +;; Last-Updated: 18 Jun 2018 +;; EmacsWiki: Anaphora +;; Keywords: extensions +;; +;;; Commentary: +;; +;; Quickstart +;; +;; (require 'anaphora) +;; +;; (awhen (big-long-calculation) +;; (foo it) ; `it' is provided as +;; (bar it)) ; a temporary variable +;; +;; ;; anonymous function to compute factorial using `self' +;; (alambda (x) (if (= x 0) 1 (* x (self (1- x))))) +;; +;; ;; to fontify `it' and `self' +;; (with-eval-after-load "lisp-mode" +;; (anaphora-install-font-lock-keywords)) +;; +;; Explanation +;; +;; Anaphoric expressions implicitly create one or more temporary +;; variables which can be referred to during the expression. This +;; technique can improve clarity in certain cases. It also enables +;; recursion for anonymous functions. +;; +;; To use anaphora, place the anaphora.el library somewhere +;; Emacs can find it, and add the following to your ~/.emacs file: +;; +;; (require 'anaphora) +;; +;; The following macros are made available +;; +;; `aand' +;; `ablock' +;; `acase' +;; `acond' +;; `aecase' +;; `aetypecase' +;; `aif' +;; `alambda' +;; `alet' +;; `aprog1' +;; `aprog2' +;; `atypecase' +;; `awhen' +;; `awhile' +;; `a+' +;; `a-' +;; `a*' +;; `a/' +;; +;; See Also +;; +;; M-x customize-group RET anaphora RET +;; http://en.wikipedia.org/wiki/On_Lisp +;; http://en.wikipedia.org/wiki/Anaphoric_macro +;; +;; Notes +;; +;; Partially based on examples from the book "On Lisp", by Paul +;; Graham. +;; +;; Compatibility and Requirements +;; +;; GNU Emacs version 26.1 : yes +;; GNU Emacs version 25.x : yes +;; GNU Emacs version 24.x : yes +;; GNU Emacs version 23.x : yes +;; GNU Emacs version 22.x : yes +;; GNU Emacs version 21.x and lower : unknown +;; +;; Bugs +;; +;; TODO +;; +;; better face for it and self +;; +;;; License +;; +;; All code contributed by the author to this library is placed in the +;; public domain. It is the author's belief that the portions adapted +;; from examples in "On Lisp" are in the public domain. +;; +;; Regardless of the copyright status of individual functions, all +;; code herein is free software, and is provided without any express +;; or implied warranties. +;; +;;; Code: +;; + +;;; requirements + +;; for declare, labels, do, block, case, ecase, typecase, etypecase +(require 'cl-lib) + +;;; customizable variables + +;;;###autoload +(defgroup anaphora nil + "Anaphoric macros providing implicit temp variables" + :version "1.0.4" + :link '(emacs-commentary-link :tag "Commentary" "anaphora") + :link '(url-link :tag "GitHub" "http://github.com/rolandwalker/anaphora") + :link '(url-link :tag "EmacsWiki" "http://emacswiki.org/emacs/Anaphora") + :prefix "anaphora-" + :group 'extensions) + +;;;###autoload +(defcustom anaphora-use-long-names-only nil + "Use only long names such as `anaphoric-if' instead of traditional `aif'." + :type 'boolean + :group 'anaphora) + +;;; font-lock + +(defun anaphora-install-font-lock-keywords nil + "Fontify keywords `it' and `self'." + (font-lock-add-keywords 'emacs-lisp-mode `((,(concat "\\<" (regexp-opt '("it" "self") 'paren) "\\>") + 1 font-lock-variable-name-face)) 'append)) + +;;; aliases + +;;;###autoload +(progn + (defun anaphora--install-traditional-aliases (&optional arg) + "Install traditional short aliases for anaphoric macros. + +With negative numeric ARG, remove traditional aliases." + (let ((syms '( + (if . t) + (prog1 . t) + (prog2 . t) + (when . when) + (while . t) + (and . t) + (cond . cond) + (lambda . lambda) + (block . block) + (case . case) + (ecase . ecase) + (typecase . typecase) + (etypecase . etypecase) + (let . let) + (+ . t) + (- . t) + (* . t) + (/ . t) + ))) + (cond + ((and (numberp arg) + (< arg 0)) + (dolist (cell syms) + (when (ignore-errors + (eq (symbol-function (intern-soft (format "a%s" (car cell)))) + (intern-soft (format "anaphoric-%s" (car cell))))) + (fmakunbound (intern (format "a%s" (car cell))))))) + (t + (dolist (cell syms) + (let* ((builtin (car cell)) + (traditional (intern (format "a%s" builtin))) + (long (intern (format "anaphoric-%s" builtin)))) + (defalias traditional long) + (put traditional 'lisp-indent-function + (get builtin 'lisp-indent-function)) + (put traditional 'edebug-form-spec (cdr cell))))))))) + +;;;###autoload +(unless anaphora-use-long-names-only + (anaphora--install-traditional-aliases)) + +;;; macros + +;;;###autoload +(defmacro anaphoric-if (cond then &rest else) + "Like `if', but the result of evaluating COND is bound to `it'. + +The variable `it' is available within THEN and ELSE. + +COND, THEN, and ELSE are otherwise as documented for `if'." + (declare (debug t) + (indent 2)) + `(let ((it ,cond)) + (if it ,then ,@else))) + +;;;###autoload +(defmacro anaphoric-prog1 (first &rest body) + "Like `prog1', but the result of evaluating FIRST is bound to `it'. + +The variable `it' is available within BODY. + +FIRST and BODY are otherwise as documented for `prog1'." + (declare (debug t) + (indent 1)) + `(let ((it ,first)) + (progn ,@body) + it)) + +;;;###autoload +(defmacro anaphoric-prog2 (form1 form2 &rest body) + "Like `prog2', but the result of evaluating FORM2 is bound to `it'. + +The variable `it' is available within BODY. + +FORM1, FORM2, and BODY are otherwise as documented for `prog2'." + (declare (debug t) + (indent 2)) + `(progn + ,form1 + (let ((it ,form2)) + (progn ,@body) + it))) + +;;;###autoload +(defmacro anaphoric-when (cond &rest body) + "Like `when', but the result of evaluating COND is bound to `it'. + +The variable `it' is available within BODY. + +COND and BODY are otherwise as documented for `when'." + (declare (debug when) + (indent 1)) + `(anaphoric-if ,cond + (progn ,@body))) + +;;;###autoload +(defmacro anaphoric-while (test &rest body) + "Like `while', but the result of evaluating TEST is bound to `it'. + +The variable `it' is available within BODY. + +TEST and BODY are otherwise as documented for `while'." + (declare (debug t) + (indent 1)) + `(do ((it ,test ,test)) + ((not it)) + ,@body)) + +;;;###autoload +(defmacro anaphoric-and (&rest conditions) + "Like `and', but the result of the previous condition is bound to `it'. + +The variable `it' is available within all CONDITIONS after the +initial one. + +CONDITIONS are otherwise as documented for `and'. + +Note that some implementations of this macro bind only the first +condition to `it', rather than each successive condition." + (declare (debug t)) + (cond + ((null conditions) + t) + ((null (cdr conditions)) + (car conditions)) + (t + `(anaphoric-if ,(car conditions) (anaphoric-and ,@(cdr conditions)))))) + +;;;###autoload +(defmacro anaphoric-cond (&rest clauses) + "Like `cond', but the result of each condition is bound to `it'. + +The variable `it' is available within the remainder of each of CLAUSES. + +CLAUSES are otherwise as documented for `cond'." + (declare (debug cond)) + (if (null clauses) + nil + (let ((cl1 (car clauses)) + (sym (gensym))) + `(let ((,sym ,(car cl1))) + (if ,sym + (if (null ',(cdr cl1)) + ,sym + (let ((it ,sym)) ,@(cdr cl1))) + (anaphoric-cond ,@(cdr clauses))))))) + +;;;###autoload +(defmacro anaphoric-lambda (args &rest body) + "Like `lambda', but the function may refer to itself as `self'. + +ARGS and BODY are otherwise as documented for `lambda'." + (declare (debug lambda) + (indent defun)) + `(cl-labels ((self ,args ,@body)) + #'self)) + +;;;###autoload +(defmacro anaphoric-block (name &rest body) + "Like `block', but the result of the previous expression is bound to `it'. + +The variable `it' is available within all expressions of BODY +except the initial one. + +NAME and BODY are otherwise as documented for `block'." + (declare (debug block) + (indent 1)) + `(cl-block ,name + ,(funcall (anaphoric-lambda (body) + (cl-case (length body) + (0 nil) + (1 (car body)) + (t `(let ((it ,(car body))) + ,(self (cdr body)))))) + body))) + +;;;###autoload +(defmacro anaphoric-case (expr &rest clauses) + "Like `case', but the result of evaluating EXPR is bound to `it'. + +The variable `it' is available within CLAUSES. + +EXPR and CLAUSES are otherwise as documented for `case'." + (declare (debug case) + (indent 1)) + `(let ((it ,expr)) + (cl-case it ,@clauses))) + +;;;###autoload +(defmacro anaphoric-ecase (expr &rest clauses) + "Like `ecase', but the result of evaluating EXPR is bound to `it'. + +The variable `it' is available within CLAUSES. + +EXPR and CLAUSES are otherwise as documented for `ecase'." + (declare (debug ecase) + (indent 1)) + `(let ((it ,expr)) + (cl-ecase it ,@clauses))) + +;;;###autoload +(defmacro anaphoric-typecase (expr &rest clauses) + "Like `typecase', but the result of evaluating EXPR is bound to `it'. + +The variable `it' is available within CLAUSES. + +EXPR and CLAUSES are otherwise as documented for `typecase'." + (declare (debug typecase) + (indent 1)) + `(let ((it ,expr)) + (cl-typecase it ,@clauses))) + +;;;###autoload +(defmacro anaphoric-etypecase (expr &rest clauses) + "Like `etypecase', but result of evaluating EXPR is bound to `it'. + +The variable `it' is available within CLAUSES. + +EXPR and CLAUSES are otherwise as documented for `etypecase'." + (declare (debug etypecase) + (indent 1)) + `(let ((it ,expr)) + (cl-etypecase it ,@clauses))) + +;;;###autoload +(defmacro anaphoric-let (form &rest body) + "Like `let', but the result of evaluating FORM is bound to `it'. + +FORM and BODY are otherwise as documented for `let'." + (declare (debug let) + (indent 1)) + `(let ((it ,form)) + (progn ,@body))) + +;;;###autoload +(defmacro anaphoric-+ (&rest numbers-or-markers) + "Like `+', but the result of evaluating the previous expression is bound to `it'. + +The variable `it' is available within all expressions after the +initial one. + +NUMBERS-OR-MARKERS are otherwise as documented for `+'." + (declare (debug t)) + (cond + ((null numbers-or-markers) + 0) + (t + `(let ((it ,(car numbers-or-markers))) + (+ it (anaphoric-+ ,@(cdr numbers-or-markers))))))) + +;;;###autoload +(defmacro anaphoric-- (&optional number-or-marker &rest numbers-or-markers) + "Like `-', but the result of evaluating the previous expression is bound to `it'. + +The variable `it' is available within all expressions after the +initial one. + +NUMBER-OR-MARKER and NUMBERS-OR-MARKERS are otherwise as +documented for `-'." + (declare (debug t)) + (cond + ((null number-or-marker) + 0) + ((null numbers-or-markers) + `(- ,number-or-marker)) + (t + `(let ((it ,(car numbers-or-markers))) + (- ,number-or-marker (+ it (anaphoric-+ ,@(cdr numbers-or-markers)))))))) + +;;;###autoload +(defmacro anaphoric-* (&rest numbers-or-markers) + "Like `*', but the result of evaluating the previous expression is bound to `it'. + +The variable `it' is available within all expressions after the +initial one. + +NUMBERS-OR-MARKERS are otherwise as documented for `*'." + (declare (debug t)) + (cond + ((null numbers-or-markers) + 1) + (t + `(let ((it ,(car numbers-or-markers))) + (* it (anaphoric-* ,@(cdr numbers-or-markers))))))) + +;;;###autoload +(defmacro anaphoric-/ (dividend divisor &rest divisors) + "Like `/', but the result of evaluating the previous divisor is bound to `it'. + +The variable `it' is available within all expressions after the +first divisor. + +DIVIDEND, DIVISOR, and DIVISORS are otherwise as documented for `/'." + (declare (debug t)) + (cond + ((null divisors) + `(/ ,dividend ,divisor)) + (t + `(let ((it ,divisor)) + (/ ,dividend (* it (anaphoric-* ,@divisors))))))) + +(provide 'anaphora) + +;; +;; Emacs +;; +;; Local Variables: +;; indent-tabs-mode: nil +;; mangle-whitespace: t +;; require-final-newline: t +;; coding: utf-8 +;; byte-compile-warnings: (not cl-functions redefine) +;; End: +;; +;; LocalWords: Anaphora EXPR awhen COND ARGS alambda ecase typecase +;; LocalWords: etypecase aprog aand acond ablock acase aecase alet +;; LocalWords: atypecase aetypecase +;; + +;;; anaphora.el ends here diff --git a/elpa/anaphora-20180618.2200/anaphora.elc b/elpa/anaphora-20180618.2200/anaphora.elc new file mode 100644 index 0000000000000000000000000000000000000000..52398f355f310d3690732be62fa2667f8e5bf07d GIT binary patch literal 10810 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 literal 0 HcmV?d00001 diff --git a/elpa/archives/gnu/archive-contents b/elpa/archives/gnu/archive-contents index 853ae68b..24b25837 100644 --- a/elpa/archives/gnu/archive-contents +++ b/elpa/archives/gnu/archive-contents @@ -18,11 +18,11 @@ ("Leo Liu" . "sdl.web@gmail.com")) (:keywords "tools" "processes" "convenience"))]) (ada-mode . - [(6 2 1) + [(7 0 1) ((uniquify-files (1 0 1)) (wisi - (2 2 1)) + (3 0 1)) (emacs (25 0))) "major-mode for editing Ada sources" tar @@ -397,7 +397,7 @@ ("Gary D. Foster" . "Gary.Foster@Corp.Sun.COM")) (:maintainer "Luke Lee" . "luke.yx.lee@gmail.com"))]) (csv-mode . - [(1 10) + [(1 11) ((emacs (24 1)) (cl-lib @@ -1414,7 +1414,7 @@ [(9 3 2) nil "Outline-based notes management and organizer" tar ((:url . "https://orgmode.org") - (:maintainer "Bastien Guerry ") + (:maintainer "Bastien Guerry" . "bzg@gnu.org") (:authors ("Carsten Dominik ")) (:keywords "outlines" "hypermedia" "calendar" "wp"))]) @@ -1735,15 +1735,17 @@ ("Bastien Guerry" . "bzg@gnu.org")) (:maintainer "Bastien Guerry" . "bzg@gnu.org"))]) (relint . - [(1 12) + [(1 13) ((xr - (1 14))) + (1 15)) + (emacs + (26 1))) "Elisp regexp mistake finder" tar ((:url . "https://github.com/mattiase/relint") (:maintainer "Mattias Engdegård" . "mattiase@acm.org") (:authors ("Mattias Engdegård" . "mattiase@acm.org")) - (:keywords "lisp" "maint" "regexps"))]) + (:keywords "lisp" "regexps"))]) (rich-minority . [(1 0 1) ((cl-lib @@ -2236,7 +2238,7 @@ ("Bastien" . "bzg@gnu.org")) (:maintainer "Bastien" . "bzg@gnu.org"))]) (wisi . - [(2 2 1) + [(3 0 1) ((emacs (25 0)) (seq @@ -2297,13 +2299,15 @@ ("Thien-Thi Nguyen" . "ttn@gnu.org")) (:keywords "multimedia" "xpm"))]) (xr . - [(1 14) - nil "Convert string regexp to rx notation" tar + [(1 15) + ((emacs + (26 1))) + "Convert string regexp to rx notation" tar ((:url . "https://github.com/mattiase/xr") (:maintainer "Mattias Engdegård" . "mattiase@acm.org") (:authors ("Mattias Engdegård" . "mattiase@acm.org")) - (:keywords "lisp" "maint" "regexps"))]) + (:keywords "lisp" "regexps"))]) (yasnippet . [(0 14 0) ((cl-lib diff --git a/elpa/auto-complete-20170125.245/auto-complete-autoloads.el b/elpa/auto-complete-20170125.245/auto-complete-autoloads.el deleted file mode 100644 index ef58518c..00000000 --- a/elpa/auto-complete-20170125.245/auto-complete-autoloads.el +++ /dev/null @@ -1,71 +0,0 @@ -;;; 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 diff --git a/elpa/auto-complete-20170125.245/auto-complete-config.el b/elpa/auto-complete-20170125.245/auto-complete-config.el deleted file mode 100644 index c04fddf9..00000000 --- a/elpa/auto-complete-20170125.245/auto-complete-config.el +++ /dev/null @@ -1,551 +0,0 @@ -;;; auto-complete-config.el --- auto-complete additional configuations - -;; Copyright (C) 2009, 2010 Tomohiro Matsuyama - -;; Author: Tomohiro Matsuyama -;; 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 . - -;;; Commentary: - -;; - -;;; Code: - -(require 'cl-lib) -(require 'auto-complete) - -(declare-function semantic-analyze-current-context "semantic/analyze") -(declare-function semantic-tag-class "semantic/tag") -(declare-function semantic-tag-function-arguments "semantic/tag") -(declare-function semantic-format-tag-type "semantic/format") -(declare-function semantic-format-tag-name "semantic/format") -(declare-function yas-expand-snippet "yasnippet") -(declare-function oref "eieio" (obj slot)) - - - -;;;; Additional sources - -;; imenu - -(defvar ac-imenu-index nil) - -(ac-clear-variable-every-10-minutes 'ac-imenu-index) - -(defun ac-imenu-candidates () - (cl-loop with i = 0 - with stack = (progn - (unless (local-variable-p 'ac-imenu-index) - (make-local-variable 'ac-imenu-index)) - (or ac-imenu-index - (setq ac-imenu-index - (ignore-errors - (with-no-warnings - (imenu--make-index-alist)))))) - with result - while (and stack (or (not (integerp ac-limit)) - (< i ac-limit))) - for node = (pop stack) - if (consp node) - do - (let ((car (car node)) - (cdr (cdr node))) - (if (consp cdr) - (mapc (lambda (child) - (push child stack)) - cdr) - (when (and (stringp car) - (string-match (concat "^" (regexp-quote ac-prefix)) car)) - ;; Remove extra characters - (if (string-match "^.*\\(()\\|=\\|<>\\)$" car) - (setq car (substring car 0 (match-beginning 1)))) - (push car result) - (cl-incf i)))) - finally return (nreverse result))) - -(ac-define-source imenu - '((depends imenu) - (candidates . ac-imenu-candidates) - (symbol . "s"))) - -;; gtags - -(defface ac-gtags-candidate-face - '((t (:inherit ac-candidate-face :foreground "navy"))) - "Face for gtags candidate" - :group 'auto-complete) - -(defface ac-gtags-selection-face - '((t (:inherit ac-selection-face :background "navy"))) - "Face for the gtags selected candidate." - :group 'auto-complete) - -(defun ac-gtags-candidate () - (ignore-errors - (split-string (shell-command-to-string (format "global -ciq %s" ac-prefix)) "\n"))) - -(ac-define-source gtags - '((candidates . ac-gtags-candidate) - (candidate-face . ac-gtags-candidate-face) - (selection-face . ac-gtags-selection-face) - (requires . 3) - (symbol . "s"))) - -;; yasnippet - -(defface ac-yasnippet-candidate-face - '((t (:inherit ac-candidate-face - :background "sandybrown" :foreground "black"))) - "Face for yasnippet candidate." - :group 'auto-complete) - -(defface ac-yasnippet-selection-face - '((t (:inherit ac-selection-face :background "coral3"))) - "Face for the yasnippet selected candidate." - :group 'auto-complete) - -(defun ac-yasnippet-table-hash (table) - (cond - ((fboundp 'yas/snippet-table-hash) - (yas/snippet-table-hash table)) - ((fboundp 'yas/table-hash) - (yas/table-hash table)))) - -(defun ac-yasnippet-table-parent (table) - (cond - ((fboundp 'yas/snippet-table-parent) - (yas/snippet-table-parent table)) - ((fboundp 'yas/table-parent) - (yas/table-parent table)))) - -(defun ac-yasnippet-candidate-1 (table) - (with-no-warnings - (let ((hashtab (ac-yasnippet-table-hash table)) - (parent (ac-yasnippet-table-parent table)) - candidates) - (maphash (lambda (key value) - (push key candidates)) - hashtab) - (setq candidates (all-completions ac-prefix (nreverse candidates))) - (if parent - (setq candidates - (append candidates (ac-yasnippet-candidate-1 parent)))) - candidates))) - -(defun ac-yasnippet-candidates () - (with-no-warnings - (cond (;; 0.8 onwards - (fboundp 'yas-active-keys) - (all-completions ac-prefix (yas-active-keys))) - (;; >0.6.0 - (fboundp 'yas/get-snippet-tables) - (apply 'append (mapcar 'ac-yasnippet-candidate-1 - (condition-case nil - (yas/get-snippet-tables major-mode) - (wrong-number-of-arguments - (yas/get-snippet-tables))))) - ) - (t - (let ((table - (if (fboundp 'yas/snippet-table) - ;; <0.6.0 - (yas/snippet-table major-mode) - ;; 0.6.0 - (yas/current-snippet-table)))) - (if table - (ac-yasnippet-candidate-1 table))))))) - -(ac-define-source yasnippet - '((depends yasnippet) - (candidates . ac-yasnippet-candidates) - (action . yas/expand) - (candidate-face . ac-yasnippet-candidate-face) - (selection-face . ac-yasnippet-selection-face) - (symbol . "a"))) - -;; semantic - -(defun ac-semantic-candidates (prefix) - (with-no-warnings - (delete "" ; semantic sometimes returns an empty string - (mapcar (lambda (elem) - (cons (semantic-tag-name elem) - (semantic-tag-clone elem))) - (ignore-errors - (or (semantic-analyze-possible-completions - (semantic-analyze-current-context)) - (senator-find-tag-for-completion prefix))))))) - -(defun ac-semantic-doc (symbol) - (with-no-warnings - (let* ((proto (semantic-format-tag-summarize-with-file symbol nil t)) - (doc (semantic-documentation-for-tag symbol)) - (res proto)) - (when doc - (setq res (concat res "\n\n" doc))) - res))) - -(defun ac-semantic-action () - (when (and (boundp 'yas-minor-mode) yas-minor-mode) - (let* ((tag (car (last (oref (semantic-analyze-current-context) prefix)))) - (class (semantic-tag-class tag)) - (args)) - (when (eq class 'function) - (setq args (semantic-tag-function-arguments tag)) - (yas-expand-snippet - (concat "(" - (mapconcat - (lambda (arg) - (let ((arg-type (semantic-format-tag-type arg nil)) - (arg-name (semantic-format-tag-name arg nil))) - (concat "${" - (if (string= arg-name "") - arg-type - (concat arg-type " " arg-name)) - "}"))) - args - ", ") - ")$0")))))) - -(ac-define-source semantic - '((available . (or (require 'semantic-ia nil t) - (require 'semantic/ia nil t))) - (candidates . (ac-semantic-candidates ac-prefix)) - (document . ac-semantic-doc) - (action . ac-semantic-action) - (prefix . cc-member) - (requires . 0) - (symbol . "m"))) - -(ac-define-source semantic-raw - '((available . (or (require 'semantic-ia nil t) - (require 'semantic/ia nil t))) - (candidates . (ac-semantic-candidates ac-prefix)) - (document . ac-semantic-doc) - (action . ac-semantic-action) - (symbol . "s"))) - -;; eclim - -(defun ac-eclim-candidates () - (with-no-warnings - (cl-loop for c in (eclim/java-complete) - collect (nth 1 c)))) - -(ac-define-source eclim - '((candidates . ac-eclim-candidates) - (prefix . c-dot) - (requires . 0) - (symbol . "f"))) - -;; css - -;; Copied from company-css.el -(defconst ac-css-property-alist - ;; see http://www.w3.org/TR/CSS21/propidx.html - '(("azimuth" angle "left-side" "far-left" "left" "center-left" "center" - "center-right" "right" "far-right" "right-side" "behind" "leftwards" - "rightwards") - ("background" background-color background-image background-repeat - background-attachment background-position) - ("background-attachment" "scroll" "fixed") - ("background-color" color "transparent") - ("background-image" uri "none") - ("background-position" percentage length "left" "center" "right" percentage - length "top" "center" "bottom" "left" "center" "right" "top" "center" - "bottom") - ("background-repeat" "repeat" "repeat-x" "repeat-y" "no-repeat") - ("border" border-width border-style border-color) - ("border-bottom" border) - ("border-bottom-color" border-color) - ("border-bottom-style" border-style) - ("border-bottom-width" border-width) - ("border-collapse" "collapse" "separate") - ("border-color" color "transparent") - ("border-left" border) - ("border-left-color" border-color) - ("border-left-style" border-style) - ("border-left-width" border-width) - ("border-right" border) - ("border-right-color" border-color) - ("border-right-style" border-style) - ("border-right-width" border-width) - ("border-spacing" length length) - ("border-style" border-style) - ("border-top" border) - ("border-top-color" border-color) - ("border-top-style" border-style) - ("border-top-width" border-width) - ("border-width" border-width) - ("bottom" length percentage "auto") - ("caption-side" "top" "bottom") - ("clear" "none" "left" "right" "both") - ("clip" shape "auto") - ("color" color) - ("content" "normal" "none" string uri counter "attr()" "open-quote" - "close-quote" "no-open-quote" "no-close-quote") - ("counter-increment" identifier integer "none") - ("counter-reset" identifier integer "none") - ("cue" cue-before cue-after) - ("cue-after" uri "none") - ("cue-before" uri "none") - ("cursor" uri "*" "auto" "crosshair" "default" "pointer" "move" "e-resize" - "ne-resize" "nw-resize" "n-resize" "se-resize" "sw-resize" "s-resize" - "w-resize" "text" "wait" "help" "progress") - ("direction" "ltr" "rtl") - ("display" "inline" "block" "list-item" "run-in" "inline-block" "table" - "inline-table" "table-row-group" "table-header-group" "table-footer-group" - "table-row" "table-column-group" "table-column" "table-cell" - "table-caption" "none") - ("elevation" angle "below" "level" "above" "higher" "lower") - ("empty-cells" "show" "hide") - ("float" "left" "right" "none") - ("font" font-style font-variant font-weight font-size "/" line-height - font-family "caption" "icon" "menu" "message-box" "small-caption" - "status-bar") - ("font-family" family-name generic-family) - ("font-size" absolute-size relative-size length percentage) - ("font-style" "normal" "italic" "oblique") - ("font-variant" "normal" "small-caps") - ("font-weight" "normal" "bold" "bolder" "lighter" "100" "200" "300" "400" - "500" "600" "700" "800" "900") - ("height" length percentage "auto") - ("left" length percentage "auto") - ("letter-spacing" "normal" length) - ("line-height" "normal" number length percentage) - ("list-style" list-style-type list-style-position list-style-image) - ("list-style-image" uri "none") - ("list-style-position" "inside" "outside") - ("list-style-type" "disc" "circle" "square" "decimal" "decimal-leading-zero" - "lower-roman" "upper-roman" "lower-greek" "lower-latin" "upper-latin" - "armenian" "georgian" "lower-alpha" "upper-alpha" "none") - ("margin" margin-width) - ("margin-bottom" margin-width) - ("margin-left" margin-width) - ("margin-right" margin-width) - ("margin-top" margin-width) - ("max-height" length percentage "none") - ("max-width" length percentage "none") - ("min-height" length percentage) - ("min-width" length percentage) - ("orphans" integer) - ("outline" outline-color outline-style outline-width) - ("outline-color" color "invert") - ("outline-style" border-style) - ("outline-width" border-width) - ("overflow" "visible" "hidden" "scroll" "auto") - ("padding" padding-width) - ("padding-bottom" padding-width) - ("padding-left" padding-width) - ("padding-right" padding-width) - ("padding-top" padding-width) - ("page-break-after" "auto" "always" "avoid" "left" "right") - ("page-break-before" "auto" "always" "avoid" "left" "right") - ("page-break-inside" "avoid" "auto") - ("pause" time percentage) - ("pause-after" time percentage) - ("pause-before" time percentage) - ("pitch" frequency "x-low" "low" "medium" "high" "x-high") - ("pitch-range" number) - ("play-during" uri "mix" "repeat" "auto" "none") - ("position" "static" "relative" "absolute" "fixed") - ("quotes" string string "none") - ("richness" number) - ("right" length percentage "auto") - ("speak" "normal" "none" "spell-out") - ("speak-header" "once" "always") - ("speak-numeral" "digits" "continuous") - ("speak-punctuation" "code" "none") - ("speech-rate" number "x-slow" "slow" "medium" "fast" "x-fast" "faster" - "slower") - ("stress" number) - ("table-layout" "auto" "fixed") - ("text-align" "left" "right" "center" "justify") - ("text-decoration" "none" "underline" "overline" "line-through" "blink") - ("text-indent" length percentage) - ("text-transform" "capitalize" "uppercase" "lowercase" "none") - ("top" length percentage "auto") - ("unicode-bidi" "normal" "embed" "bidi-override") - ("vertical-align" "baseline" "sub" "super" "top" "text-top" "middle" - "bottom" "text-bottom" percentage length) - ("visibility" "visible" "hidden" "collapse") - ("voice-family" specific-voice generic-voice "*" specific-voice - generic-voice) - ("volume" number percentage "silent" "x-soft" "soft" "medium" "loud" - "x-loud") - ("white-space" "normal" "pre" "nowrap" "pre-wrap" "pre-line") - ("widows" integer) - ("width" length percentage "auto") - ("word-spacing" "normal" length) - ("z-index" "auto" integer)) - "A list of CSS properties and their possible values.") - -(defconst ac-css-value-classes - '((absolute-size "xx-small" "x-small" "small" "medium" "large" "x-large" - "xx-large") - (border-style "none" "hidden" "dotted" "dashed" "solid" "double" "groove" - "ridge" "inset" "outset") - (color "aqua" "black" "blue" "fuchsia" "gray" "green" "lime" "maroon" "navy" - "olive" "orange" "purple" "red" "silver" "teal" "white" "yellow" - "rgb") - (counter "counter") - (family-name "Courier" "Helvetica" "Times") - (generic-family "serif" "sans-serif" "cursive" "fantasy" "monospace") - (generic-voice "male" "female" "child") - (margin-width "auto") ;; length percentage - (relative-size "larger" "smaller") - (shape "rect") - (uri "url")) - "A list of CSS property value classes and their contents.") - -(defconst ac-css-pseudo-classes - '("active" "after" "before" "first" "first-child" "first-letter" "first-line" - "focus" "hover" "lang" "left" "link" "right" "visited") - "Identifiers for CSS pseudo-elements and pseudo-classes.") - -(defvar ac-css-property nil - "Current editing property.") - -(defun ac-css-prefix () - (when (save-excursion (re-search-backward "\\_<\\(.+?\\)\\_>\\s *:[^;]*\\=" nil t)) - (setq ac-css-property (match-string 1)) - (or (ac-prefix-symbol) (point)))) - -(defun ac-css-property-candidates () - (let ((list (assoc-default ac-css-property ac-css-property-alist))) - (if list - (cl-loop with seen - with value - while (setq value (pop list)) - if (symbolp value) - do (unless (memq value seen) - (push value seen) - (setq list - (append list - (or (assoc-default value ac-css-value-classes) - (assoc-default (symbol-name value) ac-css-property-alist))))) - else collect value) - ac-css-pseudo-classes))) - -(ac-define-source css-property - '((candidates . ac-css-property-candidates) - (prefix . ac-css-prefix) - (requires . 0))) - -;; slime -(ac-define-source slime - '((depends slime) - (candidates . (car (slime-simple-completions ac-prefix))) - (symbol . "s") - (cache))) - -;; ghc-mod -(ac-define-source ghc-mod - '((depends ghc) - (candidates . (ghc-select-completion-symbol)) - (symbol . "s") - (cache))) - - - -;;;; Not maintained sources - -;; ropemacs - -(defvar ac-ropemacs-loaded nil) -(defun ac-ropemacs-require () - (with-no-warnings - (unless ac-ropemacs-loaded - (pymacs-load "ropemacs" "rope-") - (if (boundp 'ropemacs-enable-autoimport) - (setq ropemacs-enable-autoimport t)) - (setq ac-ropemacs-loaded t)))) - -(defun ac-ropemacs-setup () - (ac-ropemacs-require) - ;(setq ac-sources (append (list 'ac-source-ropemacs) ac-sources)) - (setq ac-omni-completion-sources '(("\\." ac-source-ropemacs)))) - -(defun ac-ropemacs-initialize () - (autoload 'pymacs-apply "pymacs") - (autoload 'pymacs-call "pymacs") - (autoload 'pymacs-eval "pymacs" nil t) - (autoload 'pymacs-exec "pymacs" nil t) - (autoload 'pymacs-load "pymacs" nil t) - (add-hook 'python-mode-hook 'ac-ropemacs-setup) - t) - -(defvar ac-ropemacs-completions-cache nil) -(defvar ac-source-ropemacs - '((init - . (lambda () - (setq ac-ropemacs-completions-cache - (mapcar - (lambda (completion) - (concat ac-prefix completion)) - (ignore-errors - (rope-completions)))))) - (candidates . ac-ropemacs-completions-cache))) - -;; rcodetools - -(defvar ac-source-rcodetools - '((init . (lambda () - (require 'rcodetools) - (condition-case x - (save-excursion - (rct-exec-and-eval rct-complete-command-name "--completion-emacs-icicles")) - (error) (setq rct-method-completion-table nil)))) - (candidates . (lambda () - (all-completions - ac-prefix - (mapcar - (lambda (completion) - (replace-regexp-in-string "\t.*$" "" (car completion))) - rct-method-completion-table)))))) - - - -;;;; Default settings - -(defun ac-common-setup () - ;(add-to-list 'ac-sources 'ac-source-filename) - ) - -(defun ac-emacs-lisp-mode-setup () - (setq ac-sources (append '(ac-source-features ac-source-functions ac-source-yasnippet ac-source-variables ac-source-symbols) ac-sources))) - -(defun ac-cc-mode-setup () - (setq ac-sources (append '(ac-source-yasnippet ac-source-gtags) ac-sources))) - -(defun ac-ruby-mode-setup ()) - -(defun ac-css-mode-setup () - (setq ac-sources (append '(ac-source-css-property) ac-sources))) - -;;;###autoload -(defun ac-config-default () - (setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers)) - (add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup) - (add-hook 'c-mode-common-hook 'ac-cc-mode-setup) - (add-hook 'ruby-mode-hook 'ac-ruby-mode-setup) - (add-hook 'css-mode-hook 'ac-css-mode-setup) - (add-hook 'auto-complete-mode-hook 'ac-common-setup) - (global-auto-complete-mode t)) - -(provide 'auto-complete-config) -;;; auto-complete-config.el ends here diff --git a/elpa/auto-complete-20170125.245/auto-complete-config.elc b/elpa/auto-complete-20170125.245/auto-complete-config.elc deleted file mode 100644 index b82a1bcb85a1d3dc7d47be0bc5f005370cfe617c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16537 zcmdU0`;!}0cAg){cHsqVHj5$TPTN~(Sb7*q^8kBcF)mV}HmQVys{DXV(rR5vja%Jv zcWWLbsr}dUedj*q~I2xOI0fN8k9~bb~ z{=0qq_F#J1=r}EBT1Aub;UWHpdy~=NCc;}7D=$Ng?qn+J1{?!+=#c=ra?aAn9#MJ%A zta`XJnSVK%KmFj|2lwyZlcMiA;Sv6h@7|k4G9jk^%g){VPuSxxtUkdXmOnbY`_A6K z+`Z3cZOv%tO3u*7-goSY(SDf9(**J z3dV!%%+-O4>S%wTJAST)eOh&VVJB)S)v=c#sKY{v zED|nnAK(#ya*C~u$w0EVF$i@Gq8}d~|6a(;@GYo>EFo;*DrMGmQ#a)*p6N7CDjm<0 zROn#QB#S!sTQ%i_L8Atbvtp?$5D6C8tA9K%fv&3DKn_Mla&`%j0OfzrF;S&tP>M&x zvypnt#_O)|;J9Y?TIV{Yc)w=$Uj5@K==p}(o29lZFdd-){8A30=jx=7wjK-u2{Ro2 z28;?y3ZT6^iT02`nM9Nirxy138sw(2p-ay+^*Ya**wDMGmpacWKUV-w3{h&!0X49K ziWYe}O>z~d*-Q2NI)a!hB13GiPvr*sgDtA=Z8M~M19+kRUMr~~{daK`H0{=)snr-Y zm}UHnImayimvWBu`akBJ%cL%{^;$Q5?sz5lg!Eg34lbuvc@8{x*lL=C%6oj}rwj@D zTITYt<1UII0DJ7+tM4#aT2@Iu?k$8Y=7(3N`zzVZcZeIY1eQs?q{fgO#0QvaNM@tu zF`g8{c)MbT*qSjj$M;w<<>Jx{SU=|j)St_8u4CpUz4Ix=H|NG0c z^Rx>z1vf9zi?evxTj4R_0@)h=0}qSb{%PdV3;|O#Fo&-jvW40D4N8sNT?@olQ0i=4Tb;CovDV7z#*Eg zaF_v9wCN)`BY>tb6^d4NB9T?2-8~!^#DZcKREk|8%+nZ$d)+Nb^RmF{bNsxuvRsFx zNb<{{b-XU?I^%)U8s#D={IIT-qe-6p^+khOilhNk&2hYenp(s#%z_b&DR#0YP5ij< zKyZ5o-DZPF6dlKu1`ppQ^mg|i+?@RM0;Oihr{8mJ)WsY+$2Qd=WHI6SRmo<;R9H-M_&M7Gpd{Y>)(5ZK&t#G5z zh>g&2f=opNL)vAL!iER>u}*{gv8WBOgwr6C=v}}Dih)pr8WtDBJ3B%Sqj&iQJ>2>h zzr$~NxaWZ$qjBek4VY*y*8x8SBq0^tjo(C2DO?mi`VSl`@IU|iFChXIeay`MqeGsJ zURxNuDIklJvn0!D(kYz%ocXUlbS>g6F@y;@=)6h3@)KVf%3z=xr(#FOUhPP+lTrgm z-A35^)+okMUdV?7nL^ZBS~yT?8m}}pSi3eVk3(czk-d5ik?p1j`iX$hr)H2C`pv>a zzw6i+*stZ#aGm2SIsbo&h!)7N<5uZx_tyfNu<8T5qaEQP$yTk#@0f*(F2^GpXYW4P z6-VFuJG);p|JKtlC&gE9?>=SbO|b50SJ--d>crZ^;pYz@$B;R6x5cr7rWkcgWadwP z0zWyOBO;xOZp#yNjg2HjfD{6r5nHIgsSXpwv$DB~0p_p40A}J}iWKS9!^XoekH_k% z63=2eSI@rtPC*;4b=720g|OD(P}f5wYIp*7E3mEU-oxt`MQCp zdI^KV4tt(dGrD%9g~y<1A8 zfK~#NTgr8@z@1MQ^bSr}wrt8Z>J2iGn3fG(oJjQ1<#2L!``#uEI61Gt)hFVMHhGC; zQO34~3{X}xT>*3Qg-JHUR&1tjEXqvNTD>5f}hB$GK-FB7{= zU$V9xwri@I024|45q2wR!lo-6kC#b?s))u9t_G1>ms~x|R^=Iyqq%4tF_A37^m$O; zCILp@ybhYwZE;Y_^ESpkPcnXRFG5)kg}uNSFa|*>Gu%7Np$rvy!(~-XZfkI>l28g~ zMV<*AO>t-Wf(>yY8E1{A9;h}2u;g3Cu8nxh+G3ZLZwz02EZ0?NU`m!67yMPPa9-k~ zvR{b4z87T7W>xfhnZmXWZiCv4VI1T=>A)9qCWm)#u1s|9BT=umu9%2x@P__^IdMtO&Pxbl8dhlB8VY!>o|Zxu*SN z+ki?`^a*4g&=JEv^EGpXX27i&S-F5IGuUYOFjzo7bq)0oMMwo(gNfnX^`O9wakHu8 zX=3&y^O_N{I2qZTix;}UWn~KI9cPmb%F=~+lW7fPAl`wr42Mb%n8G(Ixh+xF_BBei zl`L5U7g~x%meV|Y2~PD*Em%cy0ybyrAl9_VC-P@Z z3T#`tTvCB2G8tl_%W7egrhk&Jmx&+S6}aGt=4-S&H)-?E%Dkr95X3c=RyAK! zEBbxA?!wA|D+w`J^@TG;uAs)YSyo&>oa_<}tjV%94(rPbz$+jIt#+2OO=DCCXhLXN zj6&sdM(DYm3?B4yCYb31`a)DwBmC!jTw{T`>T3)v2=fY(nOfv56aO_*klC;=knpE7 zZ)~j*;3g)fO|*!21rGBr?|0$~4DMZStJ-4!+IqqN6}6P;l}=t5^975ymPeAGCzn)6 z$yu4XBQdgO9)fr++CcgmE9h5t_Dt_)3ZRCt!AK#lPzMK4GdF77lCQ0I%etyThJYrh zCOSHGkwWiXAexH!G`}l7%Qm!4sIc(?pD-bFvn#w)#R6+Ha#V_8=)^M^a6Czf9kb*&i&1747gODixqtt>Q#8=W%O5(+_J8UQ33u?VP|Ws9sK4e{CrVT9$z zC|T2PO;`TLnoVdTt{o2@w9x`)9BS=mh=tmq$9_DP=D20RJQuJlB*Bj?k`0lN)iq+V z29PmkBk;x@T5yEWrs+$U)PhXiGr+tz<0k}cWpjj90RYkgst2(cJX@ic1tfwVG=faU z0;cS+Ns(vG5#FDsy7`jK}ZVPk1g}8QjcYv8-i;3YQrvTAxX(Da{fq+eW z@QOIt8aN<{O#$<72H}v+GTDbcw$TeOrVz?wZl!XTDn)C?C`AXcDdx8utv6E)Qg5Jd z@ik{n0hURwAUQ>oJ1J-&>2j@kVqrl5h}_K(v&G}Z6+##y-#AL7ahV~m&>5tltrVxg zG=^wHD4erNO)kRm>!t=~IGh<;x(wDA)wti2gDz;b6c?racv{WN4FO1bg9L{=U*aGn zMjRQ+Ga+t2Bzs;Z=FEjF#5O6AmEPH`JO`HrI@4;coA7%M|Idwf8SfWeJg&+FB6YS)mIR-=* zfGf`)0zsE@-xkI&vj{u@*`-_(>$m&n%_1YUw_C`p2hWHst;8Y?ia8_=nLZ&!( zn&TXZU*>@hqt76MAYlS?Sc@ZpX^L_aCB`ou2hn_!F6)dHi%O2iv^qt|K-HlXc3Nq~ z2ZJ^-Y>smfzgFu+>rI8oZj@AJfmsgjL$=W(c!i*ly@dD{rB*GbW>MC~VtpMf3r}a! zGX&tmJA$tNpfM!*8R_q_Dv{idQ%oN)G|qB!G(dD*je9_o!CifAmODrELQ-=BtFkD0 zNRhLc8^!V)uqiOXHKHUW1eq%ft<_dCITdN?LGa533k?`iZ@p3UN^l%e#+wQ*31ozJ zhr>_DV?(^B>KpGA!dnG6%;h4Z)|*)wGsXejY;H5)bY+>`Me8eRx7z~58}TMnFelC- ztkRhz(CK*hfCBl(X3s8XPIbQ0%FsEY1gK1xl)Culut4~+7a>#~&O9>$kyPw=JUSj9 z$&N>->Y0h~QLu5KmKW~Y=F;*bPRad?8Mzp?up6D8o?s-tCul=e%q5v$-1!2jBSb9E z@j8Hk1PmuYpz{1K5{x=K`ILk5*}-r!-{WjDA6_#Yj^0GKH@z|2jgs!3*~G-_1)H^u{Hyor=KZBRwf*||1-Dq?$qQ{hn1higug(x` z(ifS&i3_%|i`e}WNbDHFM&W}73IHO3VpC{v%(%Y8lehRofx}P+i9$-@(CW_Z^9Y)Q z{Swoj1J#sOqt=&xkjqDTD!544IPQ^S_3H!-i)*m973MUTIJl+z=-4K`&Q@KqIdpWPm9c(I=jDDqN+6yX35kxHMtK?Cm24LWd$%3T^4 z3%QLKw6*#|r><7Uf^R8amgNf+HcQ;-G1Ax+0D2xUf+qV4>k2vz1PEj*gajuwBx_09 zzJ788(l#fsRi3P-GZQ+7aNFi3apoEY=;rGs4hyqRB9;fXA1q}jy2$V*IM0hP1Tpwp zRO2X)>$X_lxz!NsB-6GNMt?BEc(5?DAzFa7)jOVvP`h*`~5WM%BBWz~_-%%ipT)=5q=3}~pc5>kanH#n<8o7oTlW?()P-UDWx%aPL z^Hqy+udlYJtv1ukt0#U1tZD50&n&oSHf^sFl3|`Lyg_=CaF?@&h;gSjSz?}C1|<~U zkkw&{JPPTQKqVj&+O{$A(9Q$|lKgVOH;#Y;%1Ng1t)B(-Fw5kkJgM-0!}W;iim9Qv z;u-<;2AtE)e2!=A`+OL0M0ua8Mc`wMez~C>OGcJ~T-z>nwMcjMZHXPlVb?Y2p__(; llQ?$azGcX|=C!2Q9o^>2Sr&*VID;P%kIXwm8l3On{% -;; URL: https://github.com/auto-complete/auto-complete -;; Keywords: completion, convenience -;; Version: 1.5.1 - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see . - -;;; Commentary: -;; -;; This extension provides a way to complete with popup menu like: -;; -;; def-!- -;; +-----------------+ -;; |defun::::::::::::| -;; |defvar | -;; |defmacro | -;; | ... | -;; +-----------------+ -;; -;; You can complete by typing and selecting menu. -;; -;; Entire documents are located in doc/ directory. -;; Take a look for information. -;; -;; Enjoy! - -;;; Code: - - - -(defconst ac-version "1.5.1" - "Version of auto-complete in string format. -Use `version-to-list' to get version component.") - -(defconst ac-version-major (car (version-to-list ac-version)) - "Major version number of auto-complete") - -(defconst ac-version-minor (cadr (version-to-list ac-version)) - "Minor version number of auto-complete") - -(require 'cl-lib) -(require 'popup) - -;;;; Global stuff - -(defun ac-error (&optional var) - "Report an error and disable `auto-complete-mode'." - (ignore-errors - (message "auto-complete error: %s" var) - (auto-complete-mode -1) - var)) - - - -;;;; Customization - -(defgroup auto-complete nil - "Auto completion." - :group 'completion - :prefix "ac-") - -(defcustom ac-delay 0.1 - "Delay to completions will be available." - :type 'float - :group 'auto-complete) - -(defcustom ac-auto-show-menu 0.8 - "Non-nil means completion menu will be automatically shown." - :type '(choice (const :tag "Yes" t) - (const :tag "Never" nil) - (float :tag "Timer")) - :group 'auto-complete) - -(defcustom ac-show-menu-immediately-on-auto-complete t - "Non-nil means menu will be showed immediately on `auto-complete'." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-expand-on-auto-complete t - "Non-nil means expand whole common part on first time `auto-complete'." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-disable-faces '(font-lock-comment-face font-lock-string-face font-lock-doc-face) - "Non-nil means disable automatic completion on specified faces." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-stop-flymake-on-completing t - "Non-nil means disble flymake temporarily on completing." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-flycheck-poll-completion-end-interval 0.5 - "Polling interval to restart automatically flycheck's checking after completion is end." - :type 'float - :group 'auto-complete) - -(defcustom ac-use-fuzzy (and (locate-library "fuzzy") t) - "Non-nil means use fuzzy matching." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-fuzzy-cursor-color "red" - "Cursor color in fuzzy mode." - :type 'string - :group 'auto-complete) - -(defcustom ac-use-comphist t - "Non-nil means use intelligent completion history." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-comphist-threshold 0.7 - "Percentage of ignoring low scored candidates." - :type 'float - :group 'auto-complete) - -(defcustom ac-comphist-file - (expand-file-name (concat (if (boundp 'user-emacs-directory) - user-emacs-directory - "~/.emacs.d/") - "/ac-comphist.dat")) - "Completion history file name." - :type 'string - :group 'auto-complete) - -(defcustom ac-user-dictionary nil - "User defined dictionary" - :type '(repeat string) - :group 'auto-complete) - -(defcustom ac-dictionary-files '("~/.dict") - "Dictionary files." - :type '(repeat string) - :group 'auto-complete) -(defvaralias 'ac-user-dictionary-files 'ac-dictionary-files) - -(defcustom ac-dictionary-directories - (ignore-errors - (when load-file-name - (let ((installed-dir (file-name-directory load-file-name))) - (cl-loop for name in '("ac-dict" "dict") - for dir = (concat installed-dir name) - if (file-directory-p dir) - collect dir)))) - "Dictionary directories." - :type '(repeat string) - :group 'auto-complete) - -(defcustom ac-use-quick-help t - "Non-nil means use quick help." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-quick-help-delay 1.5 - "Delay to show quick help." - :type 'float - :group 'auto-complete) - -(defcustom ac-menu-height 10 - "Max height of candidate menu." - :type 'integer - :group 'auto-complete) -(defvaralias 'ac-candidate-menu-height 'ac-menu-height) - -(defcustom ac-quick-help-height 20 - "Max height of quick help." - :type 'integer - :group 'auto-complete) - -(defcustom ac-quick-help-prefer-pos-tip t - "Prefer native tooltip with pos-tip than overlay popup for displaying quick help." - :type 'boolean - :group 'auto-complete) -(defvaralias 'ac-quick-help-prefer-x 'ac-quick-help-prefer-pos-tip) - -(defcustom ac-candidate-limit nil - "Limit number of candidates. Non-integer means no limit." - :type 'integer - :group 'auto-complete) -(defvaralias 'ac-candidate-max 'ac-candidate-limit) - -(defcustom ac-modes - '(emacs-lisp-mode lisp-mode lisp-interaction-mode - slime-repl-mode - nim-mode c-mode cc-mode c++-mode objc-mode swift-mode go-mode - java-mode malabar-mode clojure-mode clojurescript-mode scala-mode - scheme-mode - ocaml-mode tuareg-mode coq-mode haskell-mode agda-mode agda2-mode - perl-mode cperl-mode python-mode ruby-mode lua-mode tcl-mode - ecmascript-mode javascript-mode js-mode js-jsx-mode js2-mode js2-jsx-mode - coffee-mode php-mode css-mode scss-mode less-css-mode - elixir-mode - makefile-mode sh-mode fortran-mode f90-mode ada-mode - xml-mode sgml-mode web-mode - ts-mode - sclang-mode - verilog-mode - qml-mode - apples-mode) - "Major modes `auto-complete-mode' can run on." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-compatible-packages-regexp - "^ac-" - "Regexp to indicate what packages can work with auto-complete." - :type 'string - :group 'auto-complete) - -(defcustom ac-non-trigger-commands - '(*table--cell-self-insert-command - electric-buffer-list) - "Commands that can't be used as triggers of `auto-complete'." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-trigger-commands - '(self-insert-command) - "Trigger commands that specify whether `auto-complete' should start or not." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-trigger-commands-on-completing - '(delete-backward-char - backward-delete-char - backward-delete-char-untabify - ;; autopair - autopair-backspace - ;; paredit - paredit-backward-delete - paredit-backward-delete-word) - "Trigger commands that specify whether `auto-complete' should continue or not." - :type '(repeat symbol) - :group 'auto-complete) - -(defcustom ac-trigger-key nil - "Non-nil means `auto-complete' will start by typing this key. -If you specify this TAB, for example, `auto-complete' will start by typing TAB, -and if there is no completions, an original command will be fallbacked." - :type '(choice (const :tag "None" nil) - (string :tag "Key")) - :group 'auto-complete - :set (lambda (symbol value) - (set-default symbol value) - (when (and value - (fboundp 'ac-set-trigger-key)) - (ac-set-trigger-key value)))) - -(defcustom ac-auto-start 2 - "Non-nil means completion will be started automatically. -Positive integer means if a length of a word you entered is larger than the value, -completion will be started automatically. -If you specify `nil', never be started automatically." - :type '(choice (const :tag "Yes" t) - (const :tag "Never" nil) - (integer :tag "Require")) - :group 'auto-complete) - -(defcustom ac-stop-words nil - "List of string to stop completion." - :type '(repeat string) - :group 'auto-complete) -(defvaralias 'ac-ignores 'ac-stop-words) - -(defcustom ac-use-dictionary-as-stop-words t - "Non-nil means a buffer related dictionary will be thought of as stop words." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-ignore-case 'smart - "Non-nil means auto-complete ignores case. -If this value is `smart', auto-complete ignores case only when -a prefix doesn't contain any upper case letters." - :type '(choice (const :tag "Yes" t) - (const :tag "Smart" smart) - (const :tag "No" nil)) - :group 'auto-complete) - -(defcustom ac-dwim t - "Non-nil means `auto-complete' works based on Do What I Mean." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-use-menu-map nil - "Non-nil means a special keymap `ac-menu-map' on completing menu will be used." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-use-overriding-local-map nil - "Non-nil means `overriding-local-map' will be used to hack for overriding key events on auto-completion." - :type 'boolean - :group 'auto-complete) - -(defcustom ac-disable-inline nil - "Non-nil disable inline completion visibility" - :type 'boolean - :group 'auto-complete) - -(defcustom ac-candidate-menu-min 1 - "Number of candidates required to display menu" - :type 'integer - :group 'auto-complete) - -(defcustom ac-max-width nil - "Maximum width for auto-complete menu to have" - :type '(choice (const :tag "No limit" nil) - (const :tag "Character Limit" 25) - (const :tag "Window Ratio Limit" 0.5)) - :group 'auto-complete) - -(defface ac-completion-face - '((t (:foreground "darkgray" :underline t))) - "Face for inline completion" - :group 'auto-complete) - -(defface ac-candidate-face - '((t (:inherit popup-face))) - "Face for candidate." - :group 'auto-complete) - -(defface ac-candidate-mouse-face - '((t (:inherit popup-menu-mouse-face))) - "Mouse face for candidate." - :group 'auto-complete) - -(defface ac-selection-face - '((t (:inherit popup-menu-selection-face))) - "Face for selected candidate." - :group 'auto-complete) - -(defvar auto-complete-mode-hook nil - "Hook for `auto-complete-mode'.") - - - -;;;; Internal variables - -(defvar auto-complete-mode nil - "Dummy variable to suppress compiler warnings.") - -(defvar ac-cursor-color nil - "Old cursor color.") - -(defvar ac-inline nil - "Inline completion instance.") - -(defvar ac-menu nil - "Menu instance.") - -(defvar ac-show-menu nil - "Flag to show menu on timer tick.") - -(defvar ac-last-completion nil - "Cons of prefix marker and selected item of last completion.") - -(defvar ac-quick-help nil - "Quick help instance") - -(defvar ac-completing nil - "Non-nil means `auto-complete-mode' is now working on completion.") - -(defvar ac-buffer nil - "Buffer where auto-complete is started.") - -(defvar ac-point nil - "Start point of prefix.") - -(defvar ac-last-point nil - "Last point of updating pattern.") - -(defvar ac-prefix nil - "Prefix string.") -(defvaralias 'ac-target 'ac-prefix) - -(defvar ac-selected-candidate nil - "Last selected candidate.") - -(defvar ac-common-part nil - "Common part string of meaningful candidates. -If there is no common part, this will be nil.") - -(defvar ac-whole-common-part nil - "Common part string of whole candidates. -If there is no common part, this will be nil.") - -(defvar ac-prefix-overlay nil - "Overlay for prefix string.") - -(defvar ac-timer nil - "Completion idle timer.") - -(defvar ac-show-menu-timer nil - "Show menu idle timer.") - -(defvar ac-quick-help-timer nil - "Quick help idle timer.") - -(defvar ac-triggered nil - "Flag to update.") - -(defvar ac-limit nil - "Limit number of candidates for each sources.") - -(defvar ac-candidates nil - "Current candidates.") - -(defvar ac-candidates-cache nil - "Candidates cache for individual sources.") - -(defvar ac-fuzzy-enable nil - "Non-nil means fuzzy matching is enabled.") - -(defvar ac-dwim-enable nil - "Non-nil means DWIM completion will be allowed.") - -(defvar ac-mode-map (make-sparse-keymap) - "Auto-complete mode map. It is also used for trigger key command. See also `ac-trigger-key'.") - -(defvar ac-completing-map - (let ((map (make-sparse-keymap))) - (define-key map "\t" 'ac-expand) - (define-key map [tab] 'ac-expand) - (define-key map "\r" 'ac-complete) - (define-key map (kbd "M-TAB") 'auto-complete) - - (define-key map "\M-n" 'ac-next) - (define-key map "\M-p" 'ac-previous) - (define-key map [down] 'ac-next) - (define-key map [up] 'ac-previous) - - (define-key map [f1] 'ac-help) - (define-key map [M-f1] 'ac-persist-help) - (define-key map (kbd "C-?") 'ac-help) - (define-key map (kbd "C-M-?") 'ac-persist-help) - - (define-key map [C-down] 'ac-quick-help-scroll-down) - (define-key map [C-up] 'ac-quick-help-scroll-up) - (define-key map "\C-\M-n" 'ac-quick-help-scroll-down) - (define-key map "\C-\M-p" 'ac-quick-help-scroll-up) - - (dotimes (i 9) - (let ((symbol (intern (format "ac-complete-select-%d" (1+ i))))) - (fset symbol - `(lambda () - (interactive) - (when (and (ac-menu-live-p) (popup-select ac-menu ,i)) - (ac-complete)))) - (define-key map (read-kbd-macro (format "M-%s" (1+ i))) symbol))) - - map) - "Keymap for completion.") -(defvaralias 'ac-complete-mode-map 'ac-completing-map) - -(defvar ac-menu-map - (let ((map (make-sparse-keymap))) - (set-keymap-parent map ac-completing-map) - (define-key map (kbd "RET") 'ac-complete) - (define-key map "\C-n" 'ac-next) - (define-key map "\C-p" 'ac-previous) - (define-key map "\C-s" 'ac-isearch) - (define-key map [mouse-1] 'ac-mouse-1) - (define-key map [down-mouse-1] 'ac-ignore) - (define-key map [mouse-4] 'ac-mouse-4) - (define-key map [mouse-5] 'ac-mouse-5) - map) - "Keymap for completion on completing menu.") - -(defvar ac-current-map - (let ((map (make-sparse-keymap))) - (set-keymap-parent map ac-completing-map) - map)) - -(defvar ac-match-function 'all-completions - "Default match function.") - -(defvar ac-prefix-definitions - '((symbol . ac-prefix-symbol) - (file . ac-prefix-file) - (valid-file . ac-prefix-valid-file) - (c-dot . ac-prefix-c-dot) - (c-dot-ref . ac-prefix-c-dot-ref) - (cc-member . ac-prefix-cc-member)) - "Prefix definitions for common use.") - -(defvar ac-sources '(ac-source-words-in-same-mode-buffers) - "Sources for completion.") -(make-variable-buffer-local 'ac-sources) - -(defvar ac-compiled-sources nil - "Compiled source of `ac-sources'.") - -(defvar ac-current-sources nil - "Current working sources. This is sublist of `ac-compiled-sources'.") - -(defvar ac-omni-completion-sources nil - "Do not use this anymore.") - -(defvar ac-current-prefix-def nil) - -(defvar ac-ignoring-prefix-def nil) - - - -;;;; Intelligent completion history - -(defvar ac-comphist nil - "Database of completion history.") - -(defsubst ac-comphist-make-tab () - (make-hash-table :test 'equal)) - -(defsubst ac-comphist-tab (db) - (nth 0 db)) - -(defsubst ac-comphist-cache (db) - (nth 1 db)) - -(defun ac-comphist-make (&optional tab) - (list (or tab (ac-comphist-make-tab)) (make-hash-table :test 'equal :weakness t))) - -(defun ac-comphist-get (db string &optional create) - (let* ((tab (ac-comphist-tab db)) - (index (gethash string tab))) - (when (and create (null index)) - (setq index (make-vector (length string) 0)) - (puthash string index tab)) - index)) - -(defun ac-comphist-add (db string prefix) - (setq prefix (min prefix (1- (length string)))) - (when (<= 0 prefix) - (setq string (substring-no-properties string)) - (let ((stat (ac-comphist-get db string t))) - (cl-incf (aref stat prefix)) - (remhash string (ac-comphist-cache db))))) - -(defun ac-comphist-score (db string prefix) - (setq prefix (min prefix (1- (length string)))) - (if (<= 0 prefix) - (let ((cache (gethash string (ac-comphist-cache db)))) - (or (and cache (aref cache prefix)) - (let ((stat (ac-comphist-get db string)) - (score 0.0)) - (when stat - (cl-loop for p from 0 below (length string) - ;; sigmoid function - with a = 5 - with b = (/ 700.0 a) ; bounds for avoiding range error in `exp' - with d = (/ 6.0 a) - for x = (max (- b) (min b (- d (abs (- prefix p))))) - for r = (/ 1.0 (1+ (exp (* (- a) x)))) - do - (cl-incf score (* (aref stat p) r)))) - ;; Weight by distance - (cl-incf score (max 0.0 (- 0.3 (/ (- (length string) prefix) 100.0)))) - (unless cache - (setq cache (make-vector (length string) nil)) - (puthash string cache (ac-comphist-cache db))) - (aset cache prefix score) - score))) - 0.0)) - -(defun ac-comphist-sort (db collection prefix &optional threshold) - (let (result - (n 0) - (total 0) - (cur 0)) - (setq result (mapcar (lambda (a) - (when (and cur threshold) - (if (>= cur (* total threshold)) - (setq cur nil) - (cl-incf n) - (cl-incf cur (cdr a)))) - (car a)) - (sort (mapcar (lambda (string) - (let ((score (ac-comphist-score db string prefix))) - (cl-incf total score) - (cons string score))) - collection) - (lambda (a b) (< (cdr b) (cdr a)))))) - (if threshold - (cons n result) - result))) - -(defun ac-comphist-serialize (db) - (let (alist) - (maphash (lambda (k v) - (push (cons k v) alist)) - (ac-comphist-tab db)) - (list alist))) - -(defun ac-comphist-deserialize (sexp) - (condition-case nil - (ac-comphist-make (let ((tab (ac-comphist-make-tab))) - (mapc (lambda (cons) - (puthash (car cons) (cdr cons) tab)) - (nth 0 sexp)) - tab)) - (error (message "Invalid comphist db.") nil))) - -(defun ac-comphist-init () - (ac-comphist-load) - (add-hook 'kill-emacs-hook 'ac-comphist-save)) - -(defun ac-comphist-load () - (interactive) - (let ((db (if (file-exists-p ac-comphist-file) - (ignore-errors - (with-temp-buffer - (insert-file-contents ac-comphist-file) - (goto-char (point-min)) - (ac-comphist-deserialize (read (current-buffer)))))))) - (setq ac-comphist (or db (ac-comphist-make))))) - -(defun ac-comphist-save () - (interactive) - (require 'pp) - (ignore-errors - (with-temp-buffer - (pp (ac-comphist-serialize ac-comphist) (current-buffer)) - (write-region (point-min) (point-max) ac-comphist-file)))) - - - -;;;; Dictionary -(defvar ac-buffer-dictionary nil) -(defvar ac-file-dictionary (make-hash-table :test 'equal)) - -(defun ac-clear-dictionary-cache () - (interactive) - (dolist (buffer (buffer-list)) - (with-current-buffer buffer - (if (local-variable-p 'ac-buffer-dictionary) - (kill-local-variable 'ac-buffer-dictionary)))) - (clrhash ac-file-dictionary)) - -(defun ac-file-dictionary (filename) - (let ((cache (gethash filename ac-file-dictionary 'none))) - (if (and cache (not (eq cache 'none))) - cache - (let (result) - (ignore-errors - (with-temp-buffer - (insert-file-contents filename) - (setq result (split-string (buffer-string) "\n" t)))) - (puthash filename result ac-file-dictionary) - result)))) - -(defun ac-mode-dictionary (mode) - (cl-loop for name in (cons (symbol-name mode) - (ignore-errors (list (file-name-extension (buffer-file-name))))) - append (cl-loop for dir in ac-dictionary-directories - for file = (concat dir "/" name) - if (file-exists-p file) - append (ac-file-dictionary file)))) - -(defun ac-buffer-dictionary (&optional buffer) - (with-current-buffer (or buffer (current-buffer)) - (if (local-variable-p 'ac-buffer-dictionary) - ac-buffer-dictionary - (make-local-variable 'ac-buffer-dictionary) - (setq ac-buffer-dictionary - (apply 'append - ac-user-dictionary - (ac-mode-dictionary major-mode) - (mapcar 'ac-file-dictionary ac-dictionary-files)))))) - - - -;;;; Auto completion internals - -(defun ac-menu-at-wrapper-line-p () - "Return non-nil if current line is long and wrapped to next visual line." - (and (not truncate-lines) - (eq (line-beginning-position) - (save-excursion - (vertical-motion 1) - (line-beginning-position))))) - -(defun ac-stop-word-p (word) - (or (member word ac-stop-words) - (if ac-use-dictionary-as-stop-words - (member word (ac-buffer-dictionary))))) - -(defun ac-prefix-default () - "Same as `ac-prefix-symbol' but ignore a number prefix." - (let ((start (ac-prefix-symbol)) - (case-fold-search t)) - (when (and start - (not (string-match-p "\\`\\(?:0[xbo][0-9a-f]+\\|[0-9]+\\)" - (buffer-substring-no-properties start (point))))) - start))) - -(defun ac-prefix-symbol () - "Default prefix definition function." - (require 'thingatpt) - (car-safe (bounds-of-thing-at-point 'symbol))) - -(defun ac-prefix-file () - "File prefix." - (let ((point (re-search-backward "[\"<>' \t\r\n]" nil t))) - (if point (1+ point)))) - -(defsubst ac-windows-remote-file-p (file) - (and (memq system-type '(ms-dos windows-nt cygwin)) - (string-match-p "\\`\\(?://\\|\\\\\\\\\\)" file))) - -(defun ac-prefix-valid-file () - "Existed (or to be existed) file prefix." - (let* ((line-beg (line-beginning-position)) - (end (point)) - (start (or (let ((point (re-search-backward "[\"<>'= \t\r\n]" line-beg t))) - (if point (1+ point))) - line-beg)) - (file (buffer-substring start end))) - (if (and file (or (string-match "^/" file) - (and (setq file (and (string-match "^[^/]*/" file) - (match-string 0 file))) - (file-directory-p file)))) - (unless (ac-windows-remote-file-p file) - start)))) - -(defun ac-prefix-c-dot () - "C-like languages dot(.) prefix." - (if (re-search-backward "\\.\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t) - (match-beginning 1))) - -(defun ac-prefix-c-dot-ref () - "C-like languages dot(.) and reference(->) prefix." - (if (re-search-backward "\\(?:\\.\\|->\\)\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t) - (match-beginning 1))) - -(defun ac-prefix-cc-member () - "C-like languages member(.)(->)(::) prefix." - (when (re-search-backward "\\(?:\\.\\|->\\|::\\)\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t) - (match-beginning 1))) - -(defun ac-define-prefix (name prefix) - "Define new prefix definition. -You can not use it in source definition like (prefix . `NAME')." - (push (cons name prefix) ac-prefix-definitions)) - -(defun ac-match-substring (prefix candidates) - (cl-loop with regexp = (regexp-quote prefix) - for candidate in candidates - if (string-match regexp candidate) - collect candidate)) - -(defsubst ac-source-entity (source) - (if (symbolp source) - (symbol-value source) - source)) - -(defun ac-source-available-p (source) - (if (and (symbolp source) - (get source 'available)) - (eq (get source 'available) t) - (let* ((src (ac-source-entity source)) - (avail-pair (assq 'available src)) - (avail-cond (cdr avail-pair)) - (available (and (if avail-pair - (cond - ((symbolp avail-cond) - (funcall avail-cond)) - ((listp avail-cond) - (eval avail-cond))) - t) - (cl-loop for feature in (assoc-default 'depends src) - unless (require feature nil t) return nil - finally return t)))) - (if (symbolp source) - (put source 'available (if available t 'no))) - available))) - -(defun ac-compile-sources (sources) - "Compiled `SOURCES' into expanded sources style." - (cl-loop for source in sources - if (ac-source-available-p source) - do - (setq source (ac-source-entity source)) - ;; prefix - (let* ((prefix (assoc 'prefix source)) - (real (assoc-default (cdr prefix) ac-prefix-definitions))) - (cond - (real - (add-to-list 'source (cons 'prefix real))) - ((null prefix) - (add-to-list 'source (cons 'prefix 'ac-prefix-default))))) - ;; match - (let ((match (assq 'match source))) - (cond - ((eq (cdr match) 'substring) - (setcdr match 'ac-match-substring)))) - and collect source)) - -(defun ac-compiled-sources () - (or ac-compiled-sources - (setq ac-compiled-sources - (ac-compile-sources ac-sources)))) - -(defsubst ac-menu-live-p () - (popup-live-p ac-menu)) - -(defun ac-menu-create (point width height) - (setq ac-menu - (popup-create point width height - :around t - :face 'ac-candidate-face - :max-width ac-max-width - :mouse-face 'ac-candidate-mouse-face - :selection-face 'ac-selection-face - :symbol t - :scroll-bar t - :margin-left 1 - :keymap ac-menu-map - ))) - -(defun ac-menu-delete () - (when ac-menu - (popup-delete ac-menu) - (setq ac-menu nil))) - -(defsubst ac-inline-overlay () - (nth 0 ac-inline)) - -(defsubst ac-inline-live-p () - (and ac-inline (ac-inline-overlay) t)) - -(defun ac-inline-show (point string) - (unless ac-inline - (setq ac-inline (list nil))) - (save-excursion - (let ((overlay (ac-inline-overlay)) - (width 0) - (string-width (string-width string)) - (length 0) - (original-string string)) - ;; Calculate string space to show completion - (goto-char point) - (let (c) - (while (and (not (eolp)) - (< width string-width) - (setq c (char-after)) - (not (eq c ?\t))) ; special case for tab - (cl-incf width (char-width c)) - (cl-incf length) - (forward-char))) - - ;; Show completion - (goto-char point) - (cond - ((= width 0) - ;; End-of-line - ;; Do nothing - ) - ((<= width string-width) - ;; No space to show - ;; Do nothing - ) - ((> width string-width) - ;; Need to fill space - (setq string (concat string (make-string (- width string-width) ? ))))) - (setq string (propertize string 'face 'ac-completion-face)) - (if overlay - (progn - (move-overlay overlay point (+ point length)) - (overlay-put overlay 'invisible nil)) - (setq overlay (make-overlay point (+ point length))) - (setf (nth 0 ac-inline) overlay) - (overlay-put overlay 'priority 9999) - ;; Help prefix-overlay in some cases - (overlay-put overlay 'keymap ac-current-map)) - ;; TODO no width but char - (if (eq length 0) - ;; Case: End-of-line - (progn - (put-text-property 0 1 'cursor t string) - (overlay-put overlay 'after-string string)) - (let ((display (substring string 0 1)) - (after-string (substring string 1))) - (overlay-put overlay 'display display) - (overlay-put overlay 'after-string after-string))) - (overlay-put overlay 'string original-string)))) - -(defun ac-inline-delete () - (when (ac-inline-live-p) - (ac-inline-hide) - (delete-overlay (ac-inline-overlay)) - (setq ac-inline nil))) - -(defun ac-inline-hide () - (when (ac-inline-live-p) - (let ((overlay (ac-inline-overlay)) - (buffer-undo-list t)) - (when overlay - (move-overlay overlay (point-min) (point-min)) - (overlay-put overlay 'invisible t) - (overlay-put overlay 'display nil) - (overlay-put overlay 'after-string nil))))) - -(defun ac-inline-update () - (if (and ac-completing ac-prefix (stringp ac-common-part)) - (let ((common-part-length (length ac-common-part)) - (prefix-length (length ac-prefix))) - (if (> common-part-length prefix-length) - (progn - (ac-inline-hide) - (ac-inline-show (point) (substring ac-common-part prefix-length))) - (ac-inline-delete))) - (ac-inline-delete))) - -(defun ac-put-prefix-overlay () - (unless ac-prefix-overlay - (let (newline) - ;; Insert newline to make sure that cursor always on the overlay - (when (eobp) - (popup-save-buffer-state - (insert "\n")) - (setq newline t)) - (setq ac-prefix-overlay (make-overlay ac-point (1+ (point)) nil t t)) - (overlay-put ac-prefix-overlay 'priority 9999) - (overlay-put ac-prefix-overlay 'keymap (make-sparse-keymap)) - (overlay-put ac-prefix-overlay 'newline newline)))) - -(defun ac-remove-prefix-overlay () - (when ac-prefix-overlay - (when (overlay-get ac-prefix-overlay 'newline) - ;; Remove inserted newline - (popup-save-buffer-state - (goto-char (point-max)) - (if (eq (char-before) ?\n) - (delete-char -1)))) - (delete-overlay ac-prefix-overlay))) - -(defun ac-activate-completing-map () - (if (and ac-show-menu ac-use-menu-map) - (set-keymap-parent ac-current-map ac-menu-map)) - (when (and ac-use-overriding-local-map - (null overriding-terminal-local-map)) - (setq overriding-terminal-local-map ac-current-map)) - (when ac-prefix-overlay - (set-keymap-parent (overlay-get ac-prefix-overlay 'keymap) ac-current-map))) - -(defun ac-deactivate-completing-map () - (set-keymap-parent ac-current-map ac-completing-map) - (when (and ac-use-overriding-local-map - (eq overriding-terminal-local-map ac-current-map)) - (setq overriding-terminal-local-map nil)) - (when ac-prefix-overlay - (set-keymap-parent (overlay-get ac-prefix-overlay 'keymap) nil))) - -(defsubst ac-selected-candidate () - (if ac-menu - (popup-selected-item ac-menu))) - -(defun ac-prefix (requires ignore-list) - (cl-loop with current = (point) - with point - with point-def - with prefix-def - with sources - for source in (ac-compiled-sources) - for prefix = (assoc-default 'prefix source) - for req = (or (assoc-default 'requires source) requires 1) - - do - (unless (member prefix ignore-list) - (save-excursion - (setq point (cond - ((symbolp prefix) - (funcall prefix)) - ((stringp prefix) - (and (re-search-backward (concat prefix "\\=") nil t) - (or (match-beginning 1) (match-beginning 0)))) - ((stringp (car-safe prefix)) - (let ((regexp (nth 0 prefix)) - (end (nth 1 prefix)) - (group (nth 2 prefix))) - (and (re-search-backward (concat regexp "\\=") nil t) - (funcall (if end 'match-end 'match-beginning) - (or group 0))))) - (t - (eval prefix)))) - (if (and point - (integerp req) - (< (- current point) req)) - (setq point nil)) - (when point - (if (null prefix-def) - (setq prefix-def prefix - point-def point)) - (if (equal point point-def) - (push source sources))))) - - finally return - (and point-def (list prefix-def point-def (nreverse sources))))) - -(defun ac-init () - "Initialize current sources to start completion." - (setq ac-candidates-cache nil) - (cl-loop for source in ac-current-sources - for function = (assoc-default 'init source) - if function do - (save-excursion - (cond - ((functionp function) - (funcall function)) - (t - (eval function)))))) - -(defun ac-candidates-1 (source) - (let* ((do-cache (assq 'cache source)) - (function (assoc-default 'candidates source)) - (action (assoc-default 'action source)) - (document (assoc-default 'document source)) - (symbol (assoc-default 'symbol source)) - (ac-limit (or (assoc-default 'limit source) ac-limit)) - (face (or (assoc-default 'face source) (assoc-default 'candidate-face source))) - (selection-face (assoc-default 'selection-face source)) - (cache (and do-cache (assq source ac-candidates-cache))) - (candidates (cdr cache))) - (unless cache - (setq candidates (save-excursion - (cond - ((functionp function) - (funcall function)) - (t - (eval function))))) - ;; Convert (name value) format candidates into name with text properties. - (setq candidates (mapcar (lambda (candidate) - (if (consp candidate) - (propertize (car candidate) 'value (cdr candidate)) - candidate)) - candidates)) - (when do-cache - (push (cons source candidates) ac-candidates-cache))) - (setq candidates (funcall (or (assoc-default 'match source) - ac-match-function) - ac-prefix candidates)) - ;; Remove extra items regarding to ac-limit - (if (and (integerp ac-limit) (> ac-limit 1) (> (length candidates) ac-limit)) - (setcdr (nthcdr (1- ac-limit) candidates) nil)) - ;; Put candidate properties - (setq candidates (mapcar (lambda (candidate) - (popup-item-propertize candidate - 'action action - 'symbol symbol - 'document document - 'popup-face face - 'selection-face selection-face)) - candidates)) - candidates)) - -(defun ac-delete-duplicated-candidates (candidates) - (cl-delete-duplicates - candidates - :test (lambda (x y) - ;; We assume two candidates are same if their titles are - ;; equal and their actions are equal. - (and (equal x y) - (eq (popup-item-property x 'action) - (popup-item-property y 'action)))) - :from-end t)) - -(defun ac-reduce-candidates (candidates) - ;; Call `ac-delete-duplicated-candidates' on first portion of - ;; candidate list for speed. - (let ((size 20)) - (if (< (length candidates) size) - (ac-delete-duplicated-candidates candidates) - (cl-loop for c on candidates by 'cdr - repeat (1- size) - finally return - (let ((rest (cdr c))) - (setcdr c nil) - (append (ac-delete-duplicated-candidates candidates) (copy-sequence rest))))))) - -(defun ac-candidates () - "Produce candidates for current sources." - (cl-loop with completion-ignore-case = (or (eq ac-ignore-case t) - (and (eq ac-ignore-case 'smart) - (let ((case-fold-search nil)) (not (string-match "[[:upper:]]" ac-prefix))))) - with case-fold-search = completion-ignore-case - with prefix-len = (length ac-prefix) - for source in ac-current-sources - append (ac-candidates-1 source) into candidates - finally return - (progn - (if (and ac-use-comphist ac-comphist) - (if ac-show-menu - (let* ((pair (ac-comphist-sort ac-comphist candidates prefix-len ac-comphist-threshold)) - (n (car pair)) - (result (ac-reduce-candidates (cdr pair))) - (cons (if (> n 0) (nthcdr (1- n) result))) - (cdr (cdr cons))) - ;; XXX ugly - (if cons (setcdr cons nil)) - (setq ac-common-part (try-completion ac-prefix result)) - (setq ac-whole-common-part (try-completion ac-prefix candidates)) - (if cons (setcdr cons cdr)) - result) - (setq candidates (ac-comphist-sort ac-comphist candidates prefix-len)) - (setq ac-common-part (if candidates (popup-x-to-string (car candidates)))) - (setq ac-whole-common-part (try-completion ac-prefix candidates)) - candidates) - (when ac-show-menu - (setq candidates (ac-reduce-candidates candidates))) - (setq ac-common-part (try-completion ac-prefix candidates)) - (setq ac-whole-common-part ac-common-part) - candidates)))) - -(defun ac-update-candidates (cursor scroll-top) - "Update candidates of menu to `ac-candidates' and redraw it." - (setf (popup-cursor ac-menu) cursor - (popup-scroll-top ac-menu) scroll-top) - (setq ac-dwim-enable (= (length ac-candidates) 1)) - (if ac-candidates - (progn - (setq ac-completing t) - (ac-activate-completing-map)) - (setq ac-completing nil) - (ac-deactivate-completing-map)) - (unless ac-disable-inline - (ac-inline-update)) - (popup-set-list ac-menu ac-candidates) - (if (and (not ac-fuzzy-enable) - (<= (length ac-candidates) ac-candidate-menu-min)) - (popup-hide ac-menu) - (if ac-show-menu - (popup-draw ac-menu)))) - -(defun ac-reposition () - "Force to redraw candidate menu with current `ac-candidates'." - (let ((cursor (popup-cursor ac-menu)) - (scroll-top (popup-scroll-top ac-menu)) - (height (popup-height ac-menu))) - (ac-menu-delete) - (ac-menu-create ac-point (popup-preferred-width ac-candidates) height) - (ac-update-candidates cursor scroll-top))) - -(defun ac-cleanup () - "Cleanup auto completion." - (if ac-cursor-color - (set-cursor-color ac-cursor-color)) - (when (and ac-use-comphist ac-comphist) - (when (and (null ac-selected-candidate) - (member ac-prefix ac-candidates)) - ;; Assume candidate is selected by just typing - (setq ac-selected-candidate ac-prefix) - (setq ac-last-point ac-point)) - (when ac-selected-candidate - (ac-comphist-add ac-comphist - ac-selected-candidate - (if ac-last-point - (- ac-last-point ac-point) - (length ac-prefix))))) - (ac-deactivate-completing-map) - (ac-remove-prefix-overlay) - (ac-remove-quick-help) - (ac-inline-delete) - (ac-menu-delete) - (ac-cancel-timer) - (ac-cancel-show-menu-timer) - (ac-cancel-quick-help-timer) - (setq ac-cursor-color nil - ac-inline nil - ac-show-menu nil - ac-menu nil - ac-completing nil - ac-point nil - ac-last-point nil - ac-prefix nil - ac-prefix-overlay nil - ac-selected-candidate nil - ac-common-part nil - ac-whole-common-part nil - ac-triggered nil - ac-limit nil - ac-candidates nil - ac-candidates-cache nil - ac-fuzzy-enable nil - ac-dwim-enable nil - ac-compiled-sources nil - ac-current-sources nil - ac-current-prefix-def nil - ac-ignoring-prefix-def nil)) - -(defsubst ac-abort () - "Abort completion." - (ac-cleanup)) - -(defun ac-extend-region-to-delete (string) - "Determine the boundary of the region to delete before -inserting the completed string. This will be either the position -of current point, or the end of the symbol at point, if the text -from point to end of symbol is the right part of the completed -string." - (let* ((end-of-symbol (or (cdr-safe (bounds-of-thing-at-point 'symbol)) - (point))) - (remaindar (buffer-substring-no-properties (point) end-of-symbol)) - (remaindar-length (length remaindar))) - (if (and (>= (length string) remaindar-length) - (string= (substring-no-properties string (- remaindar-length)) - remaindar)) - end-of-symbol - (point)))) - -(defun ac-expand-string (string &optional remove-undo-boundary) - "Expand `STRING' into the buffer and update `ac-prefix' to `STRING'. -This function records deletion and insertion sequences by `undo-boundary'. -If `remove-undo-boundary' is non-nil, this function also removes `undo-boundary' -that have been made before in this function. When `buffer-undo-list' is -`t', `remove-undo-boundary' has no effect." - (when (eq buffer-undo-list t) - (setq remove-undo-boundary nil)) - (when (not (equal string (buffer-substring ac-point (point)))) - (undo-boundary) - ;; We can't use primitive-undo since it undoes by - ;; groups, divided by boundaries. - ;; We don't want boundary between deletion and insertion. - ;; So do it manually. - ;; Delete region silently for undo: - (if remove-undo-boundary - (progn - (let (buffer-undo-list) - (save-excursion - (delete-region ac-point (ac-extend-region-to-delete string)))) - (setq buffer-undo-list - (nthcdr 2 buffer-undo-list))) - (delete-region ac-point (ac-extend-region-to-delete string))) - (insert (substring-no-properties string)) - ;; Sometimes, possible when omni-completion used, (insert) added - ;; to buffer-undo-list strange record about position changes. - ;; Delete it here: - (when (and remove-undo-boundary - (integerp (cadr buffer-undo-list))) - (setcdr buffer-undo-list (nthcdr 2 buffer-undo-list))) - (undo-boundary) - (setq ac-selected-candidate string) - (setq ac-prefix string))) - -(defun ac-set-trigger-key (key) - "Set `ac-trigger-key' to `KEY'. It is recommemded to use this function instead of calling `setq'." - ;; Remove old mapping - (when ac-trigger-key - (define-key ac-mode-map (read-kbd-macro ac-trigger-key) nil)) - - ;; Make new mapping - (setq ac-trigger-key key) - (when key - (define-key ac-mode-map (read-kbd-macro key) 'ac-trigger-key-command))) - -(defun ac-set-timer () - (unless ac-timer - (setq ac-timer (run-with-idle-timer ac-delay ac-delay 'ac-update-greedy)))) - -(defun ac-cancel-timer () - (when (timerp ac-timer) - (cancel-timer ac-timer) - (setq ac-timer nil))) - -(defun ac-update (&optional force) - (when (and auto-complete-mode - ac-prefix - (or ac-triggered - force) - (not isearch-mode)) - (ac-put-prefix-overlay) - (setq ac-candidates (ac-candidates)) - (let ((preferred-width (popup-preferred-width ac-candidates))) - ;; Reposition if needed - (when (or (null ac-menu) - (>= (popup-width ac-menu) preferred-width) - (<= (popup-width ac-menu) (- preferred-width 10)) - (and (> (popup-direction ac-menu) 0) - (ac-menu-at-wrapper-line-p))) - (ac-inline-hide) ; Hide overlay to calculate correct column - (ac-remove-quick-help) - (ac-menu-delete) - (ac-menu-create ac-point preferred-width ac-menu-height))) - (ac-update-candidates 0 0) - t)) - -(defun ac-update-greedy (&optional force) - (let (result) - (while (when (and (setq result (ac-update force)) - (null ac-candidates)) - (add-to-list 'ac-ignoring-prefix-def ac-current-prefix-def) - (ac-start :force-init t) - ac-current-prefix-def)) - result)) - -(defun ac-set-show-menu-timer () - (when (and (or (integerp ac-auto-show-menu) (floatp ac-auto-show-menu)) - (null ac-show-menu-timer)) - (setq ac-show-menu-timer (run-with-idle-timer ac-auto-show-menu ac-auto-show-menu 'ac-show-menu)))) - -(defun ac-cancel-show-menu-timer () - (when (timerp ac-show-menu-timer) - (cancel-timer ac-show-menu-timer) - (setq ac-show-menu-timer nil))) - -(defun ac-show-menu () - (when (not (eq ac-show-menu t)) - (setq ac-show-menu t) - (ac-inline-hide) - (ac-remove-quick-help) - (ac-update t))) - -(defun ac-help (&optional persist) - (interactive "P") - (when ac-menu - (popup-menu-show-help ac-menu persist))) - -(defun ac-persist-help () - (interactive) - (ac-help t)) - -(defun ac-last-help (&optional persist) - (interactive "P") - (when ac-last-completion - (popup-item-show-help (cdr ac-last-completion) persist))) - -(defun ac-last-persist-help () - (interactive) - (ac-last-help t)) - -(defun ac-set-quick-help-timer () - (when (and ac-use-quick-help - (null ac-quick-help-timer)) - (setq ac-quick-help-timer (run-with-idle-timer ac-quick-help-delay ac-quick-help-delay 'ac-quick-help)))) - -(defun ac-cancel-quick-help-timer () - (when (timerp ac-quick-help-timer) - (cancel-timer ac-quick-help-timer) - (setq ac-quick-help-timer nil))) - -(defun ac-pos-tip-show-quick-help (menu &optional item &rest args) - (let* ((point (plist-get args :point)) - (around nil) - (parent-offset (popup-offset menu)) - (doc (popup-menu-documentation menu item))) - (when (stringp doc) - (if (popup-hidden-p menu) - (setq around t) - (setq point nil)) - (with-no-warnings - (pos-tip-show doc - 'popup-tip-face - (or point - (and menu - (popup-child-point menu parent-offset)) - (point)) - nil 300 - popup-tip-max-width - nil nil - (and (not around) 0)) - (unless (plist-get args :nowait) - (clear-this-command-keys) - (unwind-protect - (push (read-event (plist-get args :prompt)) unread-command-events) - (pos-tip-hide)) - t))))) - -(defun ac-quick-help-use-pos-tip-p () - (and ac-quick-help-prefer-pos-tip - window-system - (featurep 'pos-tip))) - -(defun ac-quick-help (&optional force) - (interactive) - ;; TODO don't use FORCE - (when (and (or force - (with-no-warnings - ;; called-interactively-p can take no args - (called-interactively-p)) - ;; ac-isearch'ing - (null this-command)) - (ac-menu-live-p) - (null ac-quick-help)) - (setq ac-quick-help - (funcall (if (ac-quick-help-use-pos-tip-p) - 'ac-pos-tip-show-quick-help - 'popup-menu-show-quick-help) - ac-menu nil - :point ac-point - :height ac-quick-help-height - :nowait t)))) - -(defun ac-remove-quick-help () - (when (ac-quick-help-use-pos-tip-p) - (with-no-warnings - (pos-tip-hide))) - (when ac-quick-help - (popup-delete ac-quick-help) - (setq ac-quick-help nil))) - -(defun ac-last-quick-help () - (interactive) - (when (and ac-last-completion - (eq (marker-buffer (car ac-last-completion)) - (current-buffer))) - (let ((doc (popup-item-documentation (cdr ac-last-completion))) - (point (marker-position (car ac-last-completion)))) - (when (stringp doc) - (if (ac-quick-help-use-pos-tip-p) - (with-no-warnings (pos-tip-show doc nil point nil 300)) - (popup-tip doc - :point point - :around t - :scroll-bar t - :margin t)))))) - -(defmacro ac-define-quick-help-command (name arglist &rest body) - (declare (indent 2)) - `(progn - (defun ,name ,arglist ,@body) - (put ',name 'ac-quick-help-command t))) - -(ac-define-quick-help-command ac-quick-help-scroll-down () - (interactive) - (when ac-quick-help - (popup-scroll-down ac-quick-help))) - -(ac-define-quick-help-command ac-quick-help-scroll-up () - (interactive) - (when ac-quick-help - (popup-scroll-up ac-quick-help))) - - - -;;;; Auto completion isearch - -(defun ac-isearch-callback (list) - (setq ac-dwim-enable (eq (length list) 1))) - -(defun ac-isearch () - (interactive) - (when (ac-menu-live-p) - (ac-cancel-show-menu-timer) - (ac-show-menu) - (if ac-use-quick-help - (let ((popup-menu-show-quick-help-function - (if (ac-quick-help-use-pos-tip-p) - 'ac-pos-tip-show-quick-help - 'popup-menu-show-quick-help))) - (popup-isearch ac-menu - :callback 'ac-isearch-callback - :help-delay ac-quick-help-delay)) - (popup-isearch ac-menu :callback 'ac-isearch-callback)))) - - - -;;;; Auto completion commands - -(cl-defun auto-complete-1 (&key sources (triggered 'command)) - (let ((menu-live (ac-menu-live-p)) - (inline-live (ac-inline-live-p)) - started) - (ac-abort) - (let ((ac-sources (or sources ac-sources))) - (if (or ac-show-menu-immediately-on-auto-complete - inline-live) - (setq ac-show-menu t)) - (setq started (ac-start :triggered triggered))) - (when (ac-update-greedy t) - ;; TODO Not to cause inline completion to be disrupted. - (if (ac-inline-live-p) - (ac-inline-hide)) - ;; Not to expand when it is first time to complete - (when (and (or (and (not ac-expand-on-auto-complete) - (> (length ac-candidates) 1) - (not menu-live)) - (not (let ((ac-common-part ac-whole-common-part)) - (ac-expand-common)))) - ac-use-fuzzy - (null ac-candidates)) - (ac-fuzzy-complete))) - started)) - -;;;###autoload -(defun auto-complete (&optional sources) - "Start auto-completion at current point." - (interactive) - (auto-complete-1 :sources sources)) - -(defun ac-fuzzy-complete () - "Start fuzzy completion at current point." - (interactive) - (if (not (require 'fuzzy nil t)) - (message "Please install fuzzy.el if you use fuzzy completion") - (unless (ac-menu-live-p) - (ac-start)) - (let ((ac-match-function 'fuzzy-all-completions)) - (when ac-fuzzy-cursor-color - (unless ac-cursor-color - (setq ac-cursor-color (frame-parameter (selected-frame) 'cursor-color))) - (set-cursor-color ac-fuzzy-cursor-color)) - (setq ac-show-menu t) - (setq ac-fuzzy-enable t) - (setq ac-triggered nil) - (ac-update t))) - t) - -(defun ac-next () - "Select next candidate." - (interactive) - (when (ac-menu-live-p) - (when (popup-hidden-p ac-menu) - (ac-show-menu)) - (popup-next ac-menu) - (if (eq this-command 'ac-next) - (setq ac-dwim-enable t)))) - -(defun ac-previous () - "Select previous candidate." - (interactive) - (when (ac-menu-live-p) - (when (popup-hidden-p ac-menu) - (ac-show-menu)) - (popup-previous ac-menu) - (if (eq this-command 'ac-previous) - (setq ac-dwim-enable t)))) - -(defun ac-expand (arg) - "Try expand, and if expanded twice, select next candidate. -If given a prefix argument, select the previous candidate." - (interactive "P") - (unless (ac-expand-common) - (let ((string (ac-selected-candidate))) - (when string - (when (equal ac-prefix string) - (if (not arg) - (ac-next) - (ac-previous)) - (setq string (ac-selected-candidate))) - (ac-expand-string string - (or (eq last-command 'ac-expand) - (eq last-command 'ac-expand-previous))) - ;; Do reposition if menu at long line - (if (and (> (popup-direction ac-menu) 0) - (ac-menu-at-wrapper-line-p)) - (ac-reposition)) - (setq ac-show-menu t) - string)))) - -(defun ac-expand-previous (arg) - "Like `ac-expand', but select previous candidate." - (interactive "P") - (ac-expand (not arg))) - -(defun ac-expand-common () - "Try to expand meaningful common part." - (interactive) - (if (and ac-dwim ac-dwim-enable) - (ac-complete) - (when (and (ac-inline-live-p) - ac-common-part) - (ac-inline-hide) - (ac-expand-string ac-common-part (eq last-command this-command)) - (setq ac-common-part nil) - t))) - -(defun ac-complete-1 (candidate) - (let ((action (popup-item-property candidate 'action)) - (fallback nil)) - (when candidate - (unless (ac-expand-string candidate) - (setq fallback t)) - ;; Remember to show help later - (when (and ac-point candidate) - (unless ac-last-completion - (setq ac-last-completion (cons (make-marker) nil))) - (set-marker (car ac-last-completion) ac-point ac-buffer) - (setcdr ac-last-completion candidate))) - (ac-abort) - (cond - (action - (funcall action)) - (fallback - (ac-fallback-command))) - candidate)) - -(defun ac-complete () - "Try complete." - (interactive) - (ac-complete-1 (ac-selected-candidate))) - -(cl-defun ac-start (&key - requires - force-init - (triggered (or ac-triggered t))) - "Start completion." - (interactive) - (if (not auto-complete-mode) - (message "auto-complete-mode is not enabled") - (let* ((info (ac-prefix requires ac-ignoring-prefix-def)) - (prefix-def (nth 0 info)) - (point (nth 1 info)) - (sources (nth 2 info)) - prefix - (init (or force-init (not (eq ac-point point))))) - (if (or (null point) - (progn - (setq prefix (buffer-substring-no-properties point (point))) - (and (not (eq triggered 'command)) - (ac-stop-word-p prefix)))) - (prog1 nil - (ac-abort)) - (when (and ac-use-fuzzy ac-fuzzy-cursor-color) - (unless ac-cursor-color - (setq ac-cursor-color (frame-parameter (selected-frame) 'cursor-color)))) - (setq ac-show-menu (or ac-show-menu (if (eq ac-auto-show-menu t) t)) - ac-current-sources sources - ac-buffer (current-buffer) - ac-point point - ac-prefix prefix - ac-limit ac-candidate-limit - ac-triggered triggered - ac-current-prefix-def prefix-def) - (when (or init (null ac-prefix-overlay)) - (ac-init)) - (ac-set-timer) - (ac-set-show-menu-timer) - (ac-set-quick-help-timer) - (ac-put-prefix-overlay) - t)))) - -(defun ac-stop () - "Stop completing." - (interactive) - (setq ac-selected-candidate nil) - (ac-abort)) - -(defun ac-ignore (&rest ignore) - "Same as `ignore'." - (interactive)) - -(defun ac-mouse-1 (event) - (interactive "e") - (popup-awhen (popup-menu-item-of-mouse-event event) - (ac-complete-1 it))) - -(defun ac-mouse-4 (event) - (interactive "e") - (ac-previous)) - -(defun ac-mouse-5 (event) - (interactive "e") - (ac-next)) - -(defun ac-trigger-key-command (&optional force) - (interactive "P") - (let (started) - (when (or force (ac-trigger-command-p last-command)) - (setq started (auto-complete-1 :triggered 'trigger-key))) - (unless started - (ac-fallback-command 'ac-trigger-key-command)))) - - - -;;;; Basic cache facility - -(defvar ac-clear-variables-every-minute-timer nil) -(defvar ac-clear-variables-after-save nil) -(defvar ac-clear-variables-every-minute nil) -(defvar ac-minutes-counter 0) - -(defun ac-clear-variable-after-save (variable &optional pred) - (add-to-list 'ac-clear-variables-after-save (cons variable pred))) - -(defun ac-clear-variables-after-save () - (dolist (pair ac-clear-variables-after-save) - (if (or (null (cdr pair)) - (funcall (cdr pair))) - (set (car pair) nil)))) - -(defun ac-clear-variable-every-minutes (variable minutes) - (add-to-list 'ac-clear-variables-every-minute (cons variable minutes))) - -(defun ac-clear-variable-every-minute (variable) - (ac-clear-variable-every-minutes variable 1)) - -(defun ac-clear-variable-every-10-minutes (variable) - (ac-clear-variable-every-minutes variable 10)) - -(defun ac-clear-variables-every-minute () - (cl-incf ac-minutes-counter) - (dolist (pair ac-clear-variables-every-minute) - (if (eq (% ac-minutes-counter (cdr pair)) 0) - (set (car pair) nil)))) - - - -;;;; Auto complete mode - -(defun ac-cursor-on-diable-face-p (&optional point) - (memq (get-text-property (or point (point)) 'face) ac-disable-faces)) - -(defun ac-trigger-command-p (command) - "Return non-nil if `COMMAND' is a trigger command." - (and (symbolp command) - (not (memq command ac-non-trigger-commands)) - (or (memq command ac-trigger-commands) - (string-match "self-insert-command" (symbol-name command)) - (string-match "electric" (symbol-name command))))) - -(defun ac-fallback-key-sequence () - (setq unread-command-events - (append (this-single-command-raw-keys) - unread-command-events)) - (read-key-sequence-vector "")) - -(defun ac-fallback-command (&optional except-command) - (let* ((auto-complete-mode nil) - (keys (ac-fallback-key-sequence)) - (command (and keys (key-binding keys)))) - (when (and (commandp command) - (not (eq command except-command))) - (setq this-command command) - (call-interactively command)))) - -(defun ac-compatible-package-command-p (command) - "Return non-nil if `COMMAND' is compatible with auto-complete." - (and (symbolp command) - (string-match ac-compatible-packages-regexp (symbol-name command)))) - -(defun ac-handle-pre-command () - (condition-case var - (if (or (setq ac-triggered (and (not ac-fuzzy-enable) ; ignore key storkes in fuzzy mode - (or (eq this-command 'auto-complete) ; special case - (ac-trigger-command-p this-command) - (and ac-completing - (memq this-command ac-trigger-commands-on-completing))) - (not (ac-cursor-on-diable-face-p)) - (or ac-triggered t))) - (ac-compatible-package-command-p this-command)) - (progn - (if (or (not (symbolp this-command)) - (not (get this-command 'ac-quick-help-command))) - (ac-remove-quick-help)) - ;; Not to cause inline completion to be disrupted. - (ac-inline-hide)) - (ac-abort)) - (error (ac-error var)))) - -(defun ac-handle-post-command () - (condition-case var - (when (and ac-triggered - (or ac-auto-start - ac-completing) - (not isearch-mode)) - (setq ac-last-point (point)) - (ac-start :requires (unless ac-completing ac-auto-start)) - (unless ac-disable-inline - (ac-inline-update))) - (error (ac-error var)))) - -(defvar ac-flycheck-poll-completion-end-timer nil - "Timer to poll end of completion.") - -(defun ac-syntax-checker-workaround () - (if ac-stop-flymake-on-completing - (progn - (make-local-variable 'ac-flycheck-poll-completion-end-timer) - (when (require 'flymake nil t) - (defadvice flymake-on-timer-event (around ac-flymake-stop-advice activate) - (unless ac-completing - ad-do-it))) - (when (require 'flycheck nil t) - (defadvice flycheck-handle-idle-change (around ac-flycheck-stop-advice activate) - (if ac-completing - (setq ac-flycheck-poll-completion-end-timer - (run-at-time ac-flycheck-poll-completion-end-interval - nil - #'flycheck-handle-idle-change)) - ad-do-it)))) - (when (featurep 'flymake) - (ad-disable-advice 'flymake-on-timer-event 'around 'ac-flymake-stop-advice)) - (when (featurep 'flycheck) - (ad-disable-advice 'flycheck-handle-idle-change 'around 'ac-flycheck-stop-advice)))) - -(defun ac-setup () - (if ac-trigger-key - (ac-set-trigger-key ac-trigger-key)) - (if ac-use-comphist - (ac-comphist-init)) - (unless ac-clear-variables-every-minute-timer - (setq ac-clear-variables-every-minute-timer (run-with-timer 60 60 'ac-clear-variables-every-minute))) - (ac-syntax-checker-workaround)) - -;;;###autoload -(define-minor-mode auto-complete-mode - "AutoComplete mode" - :lighter " AC" - :keymap ac-mode-map - :group 'auto-complete - (if auto-complete-mode - (progn - (ac-setup) - (add-hook 'pre-command-hook 'ac-handle-pre-command nil t) - (add-hook 'post-command-hook 'ac-handle-post-command nil t) - (add-hook 'after-save-hook 'ac-clear-variables-after-save nil t) - (run-hooks 'auto-complete-mode-hook)) - (remove-hook 'pre-command-hook 'ac-handle-pre-command t) - (remove-hook 'post-command-hook 'ac-handle-post-command t) - (remove-hook 'after-save-hook 'ac-clear-variables-after-save t) - (ac-abort))) - -(defun auto-complete-mode-maybe () - "What buffer `auto-complete-mode' prefers." - (if (and (not (minibufferp (current-buffer))) - (memq major-mode ac-modes)) - (auto-complete-mode 1))) - -;;;###autoload -(define-global-minor-mode global-auto-complete-mode - auto-complete-mode auto-complete-mode-maybe - :group 'auto-complete) - - - -;;;; Compatibilities with other extensions - -(defun ac-flyspell-workaround () - "Flyspell uses `sit-for' for delaying its process. Unfortunatelly, -it stops auto completion which is trigger with `run-with-idle-timer'. -This workaround avoid flyspell processes when auto completion is being started." - (interactive) - (defadvice flyspell-post-command-hook (around ac-flyspell-workaround activate) - (unless ac-triggered - ad-do-it))) - -(defun ac-linum-workaround () - "linum-mode tries to display the line numbers even for the -completion menu. This workaround stops that annoying behavior." - (interactive) - (defadvice linum-update (around ac-linum-update-workaround activate) - (unless ac-completing - ad-do-it))) - - - -;;;; Standard sources - -(defmacro ac-define-source (name source) - "Source definition macro. It defines a complete command also." - (declare (indent 1)) - `(progn - (defvar ,(intern (format "ac-source-%s" name))) - ;; Use `setq' to reset ac-source-NAME every time - ;; `ac-define-source' is called. This is useful, for example - ;; when evaluating `ac-define-source' using C-M-x (`eval-defun'). - (setq ,(intern (format "ac-source-%s" name)) ,source) - (defun ,(intern (format "ac-complete-%s" name)) () - (interactive) - (auto-complete '(,(intern (format "ac-source-%s" name))))))) - -;; Words in buffer source -(defvar ac-word-index nil) - -(defun ac-candidate-words-in-buffer (point prefix limit) - (let ((i 0) - candidate - candidates - (regexp (concat "\\_<" (regexp-quote prefix) "\\(\\sw\\|\\s_\\)+\\_>"))) - (save-excursion - ;; Search backward - (goto-char point) - (while (and (or (not (integerp limit)) (< i limit)) - (re-search-backward regexp nil t)) - (setq candidate (match-string-no-properties 0)) - (unless (member candidate candidates) - (push candidate candidates) - (cl-incf i))) - ;; Search backward - (goto-char (+ point (length prefix))) - (while (and (or (not (integerp limit)) (< i limit)) - (re-search-forward regexp nil t)) - (setq candidate (match-string-no-properties 0)) - (unless (member candidate candidates) - (push candidate candidates) - (cl-incf i))) - (nreverse candidates)))) - -(defun ac-incremental-update-word-index () - (unless (local-variable-p 'ac-word-index) - (make-local-variable 'ac-word-index)) - (if (null ac-word-index) - (setq ac-word-index (cons nil nil))) - ;; Mark incomplete - (if (car ac-word-index) - (setcar ac-word-index nil)) - (let ((index (cdr ac-word-index)) - (words (ac-candidate-words-in-buffer ac-point ac-prefix (or (and (integerp ac-limit) ac-limit) 10)))) - (dolist (word words) - (unless (member word index) - (push word index) - (setcdr ac-word-index index))))) - -(defun ac-update-word-index-1 () - (unless (local-variable-p 'ac-word-index) - (make-local-variable 'ac-word-index)) - (when (and (not (car ac-word-index)) - (< (buffer-size) 1048576)) - ;; Complete index - (setq ac-word-index - (cons t - (split-string (buffer-substring-no-properties (point-min) (point-max)) - "\\(?:^\\|\\_>\\).*?\\(?:\\_<\\|$\\)"))))) - -(defun ac-update-word-index () - (dolist (buffer (buffer-list)) - (when (or ac-fuzzy-enable - (not (eq buffer (current-buffer)))) - (with-current-buffer buffer - (ac-update-word-index-1))))) - -(defun ac-word-candidates (&optional buffer-pred) - (cl-loop initially (unless ac-fuzzy-enable (ac-incremental-update-word-index)) - for buffer in (buffer-list) - if (and (or (not (integerp ac-limit)) (< (length candidates) ac-limit)) - (if buffer-pred (funcall buffer-pred buffer) t)) - append (funcall ac-match-function - ac-prefix - (and (local-variable-p 'ac-word-index buffer) - (cdr (buffer-local-value 'ac-word-index buffer)))) - into candidates - finally return (delete-dups candidates))) - -(ac-define-source words-in-buffer - '((candidates . ac-word-candidates))) - -(ac-define-source words-in-all-buffer - '((init . ac-update-word-index) - (candidates . ac-word-candidates))) - -(ac-define-source words-in-same-mode-buffers - '((init . ac-update-word-index) - (candidates . (ac-word-candidates - (lambda (buffer) - (derived-mode-p (buffer-local-value 'major-mode buffer))))))) - -;; Lisp symbols source -(defvar ac-symbols-cache nil) -(ac-clear-variable-every-10-minutes 'ac-symbols-cache) - -(defun ac-symbol-file (symbol type) - (if (fboundp 'find-lisp-object-file-name) - (find-lisp-object-file-name symbol type) - (let ((file-name (with-no-warnings - (describe-simplify-lib-file-name - (symbol-file symbol type))))) - (when (equal file-name "loaddefs.el") - ;; Find the real def site of the preloaded object. - (let ((location (condition-case nil - (if (eq type 'defun) - (find-function-search-for-symbol symbol nil - "loaddefs.el") - (find-variable-noselect symbol file-name)) - (error nil)))) - (when location - (with-current-buffer (car location) - (when (cdr location) - (goto-char (cdr location))) - (when (re-search-backward - "^;;; Generated autoloads from \\(.*\\)" nil t) - (setq file-name (match-string 1))))))) - (if (and (null file-name) - (or (eq type 'defun) - (integerp (get symbol 'variable-documentation)))) - ;; It's a object not defined in Elisp but in C. - (if (get-buffer " *DOC*") - (if (eq type 'defun) - (help-C-file-name (symbol-function symbol) 'subr) - (help-C-file-name symbol 'var)) - 'C-source) - file-name)))) - -(defun ac-symbol-documentation (symbol) - (if (stringp symbol) - (setq symbol (intern-soft symbol))) - (ignore-errors - (with-temp-buffer - (let ((standard-output (current-buffer))) - (prin1 symbol) - (princ " is ") - (cond - ((fboundp symbol) - ;; import help-xref-following - (require 'help-mode) - (let ((help-xref-following t) - (major-mode 'help-mode)) ; avoid error in Emacs 24 - (describe-function-1 symbol)) - (buffer-string)) - ((boundp symbol) - (let ((file-name (ac-symbol-file symbol 'defvar))) - (princ "a variable") - (when file-name - (princ " defined in `") - (princ (if (eq file-name 'C-source) - "C source code" - (file-name-nondirectory file-name)))) - (princ "'.\n\n") - (princ (or (documentation-property symbol 'variable-documentation t) - "Not documented.")) - (buffer-string))) - ((facep symbol) - (let ((file-name (ac-symbol-file symbol 'defface))) - (princ "a face") - (when file-name - (princ " defined in `") - (princ (if (eq file-name 'C-source) - "C source code" - (file-name-nondirectory file-name)))) - (princ "'.\n\n") - (princ (or (documentation-property symbol 'face-documentation t) - "Not documented.")) - (buffer-string))) - (t - (let ((doc (documentation-property symbol 'group-documentation t))) - (when doc - (princ "a group.\n\n") - (princ doc) - (buffer-string))))))))) - -(defun ac-symbol-candidates () - (or ac-symbols-cache - (setq ac-symbols-cache - (cl-loop for x being the symbols - if (or (fboundp x) - (boundp x) - (symbol-plist x)) - collect (symbol-name x))))) - -(ac-define-source symbols - '((candidates . ac-symbol-candidates) - (document . ac-symbol-documentation) - (symbol . "s") - (cache))) - -;; Lisp functions source -(defvar ac-functions-cache nil) -(ac-clear-variable-every-10-minutes 'ac-functions-cache) - -(defun ac-function-candidates () - (or ac-functions-cache - (setq ac-functions-cache - (cl-loop for x being the symbols - if (fboundp x) - collect (symbol-name x))))) - -(ac-define-source functions - '((candidates . ac-function-candidates) - (document . ac-symbol-documentation) - (symbol . "f") - (prefix . "(\\(\\(?:\\sw\\|\\s_\\)+\\)") - (cache))) - -;; Lisp variables source -(defvar ac-variables-cache nil) -(ac-clear-variable-every-10-minutes 'ac-variables-cache) - -(defun ac-variable-candidates () - (or ac-variables-cache - (setq ac-variables-cache - (cl-loop for x being the symbols - if (boundp x) - collect (symbol-name x))))) - -(ac-define-source variables - '((candidates . ac-variable-candidates) - (document . ac-symbol-documentation) - (symbol . "v") - (cache))) - -;; Lisp features source -(defvar ac-emacs-lisp-features nil) -(ac-clear-variable-every-10-minutes 'ac-emacs-lisp-features) - -(defun ac-emacs-lisp-feature-candidates () - (or ac-emacs-lisp-features - (if (fboundp 'find-library-suffixes) - (let ((suffix (concat (regexp-opt (find-library-suffixes) t) "\\'"))) - (setq ac-emacs-lisp-features - (append (mapcar 'prin1-to-string features) - (cl-loop for dir in load-path - if (file-directory-p dir) - append (cl-loop for file in (directory-files dir) - if (string-match suffix file) - collect (substring file 0 (match-beginning 0)))))))))) - -(ac-define-source features - '((depends find-func) - (candidates . ac-emacs-lisp-feature-candidates) - (prefix . "require +'\\(\\(?:\\sw\\|\\s_\\)*\\)") - (requires . 0))) - -(defvaralias 'ac-source-emacs-lisp-features 'ac-source-features) - -;; Abbrev source -(ac-define-source abbrev - '((candidates . (mapcar 'popup-x-to-string (append (vconcat local-abbrev-table global-abbrev-table) nil))) - (action . expand-abbrev) - (symbol . "a") - (cache))) - -;; Files in current directory source -(ac-define-source files-in-current-dir - '((candidates . (directory-files default-directory)) - (cache))) - -;; Filename source -(defvar ac-filename-cache nil) - -(defun ac-filename-candidate () - (let (file-name-handler-alist) - (unless (or (and comment-start-skip - (string-match comment-start-skip ac-prefix)) - (file-regular-p ac-prefix)) - (ignore-errors - (cl-loop with dir = (file-name-directory ac-prefix) - with files = (or (assoc-default dir ac-filename-cache) - (let ((files (directory-files dir nil "^[^.]"))) - (push (cons dir files) ac-filename-cache) - files)) - for file in files - for path = (concat dir file) - collect (if (file-directory-p path) - (concat path "/") - path)))))) - -(ac-define-source filename - '((init . (setq ac-filename-cache nil)) - (candidates . ac-filename-candidate) - (prefix . valid-file) - (requires . 0) - (action . ac-start) - (limit . nil))) - -;; Dictionary source -(ac-define-source dictionary - '((candidates . ac-buffer-dictionary) - (symbol . "d"))) - -(provide 'auto-complete) -;;; auto-complete.el ends here diff --git a/elpa/auto-complete-20170125.245/auto-complete.elc b/elpa/auto-complete-20170125.245/auto-complete.elc deleted file mode 100644 index 5ec3c21b86a9ef211906a2e92098db42257b1323..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65927 zcmd7533pq^vG2?E&U!hdxP-`(P0!30WSgXI(3mO8CyprDk$n;mvFzj|q8x!FD8V8D z8UQ6RC->g3et-X}?mb}8VCTMfy)0ty-aS@VSJ%|lAAk18o3Ab`ES&rJNprsM}II* z_6PlOhs>wr!^%}s`jwsAH^2BI*?-U(cJ{|~@k49A(?3W?gJi$cPxiXW(V$akBn)Mg zbUVYNUU!&`ACR%$@OA;gFZxd%_@)1yJ9qBN_3e7{=K%DCsl+!=44`+n3-?uC(6$a>Tpjn|U#Ai3Wir<14hgMPO^-u%tE^@Hvq@YEdaSK{oJ zYn!djS~*$2@=mguG^N4?G{Sp#@p?8=?>_p}rT{mxPHs59JfFxM_Ds4M(yEbf*=@0z@} ztgDMv^)V#3Lw_lqtXr)c$#Hiy>fC3}3O(_zUQ6B`m5Z2ZT}&#qq~ANbn>51YUEOYM z+?@@u*g1Z!SNyj5xAoq?d#41=T8)1Uq1NCZxoWMDyH?0Wx!TrlqplLWr2%SChjPvCSBtVOT5AP(&2F(x zi$cYAXtB-nbidlP)~2O)fLEJ(i@DmgvPE6w3>Yme*`n4hYTOF2*`khOIm<<@8ueCy z&FoQcu_UUs>kIn3!vdN+a=zcNTsQ6Sr=FM8&$R5+gB1JdHR->%e3Z$0PUB@?lysN3_U&q;zZLIL+Ii z%IlLcusSJGn2Zy0J39R2HOxQOYqXrmpl@andD}yz7-$Z z@nI`1@vfmku|SRfSW1mH{Xy+{6Eh3Y1J4)RtkLGv3dEk&=!uoA3kGQm#)Isij>d!I z%0YMks59(V?hgm2C&jH>TXs_3fzO1`Ha-(xVzZoF^SoJFa_wZ;J?uS!C)lr)lZl#P z9(u;R@bRE~)HzG4o3*6;sXZ3z9wm=^$PaMnokyMCkqW7~@!3f?IfQ99&eYhB(SyO` z%5k@UN?liz@>eka>g;j1(;wwJO9ENaN*M{Pac>_XgF=VydeR2YyINi_$Y&=`?_yGk4sAK9q>A-FB>jD_E z+a#N*rZjoZgH{eZ`-op_>xT$mm7~G_Lx~~ue{5e6Kw`2>B$KJge3k@1TAa7Y;|fwX zPx+aof1{J`e($gcV5|q4yJ7dF3tEiMj`s%4ir_yUoKy~v&W<||yMji<(mt~~)tor$ zkT)535ru}}D!4&oSvem(+4diF8SBa5=qRm~2D(7K*GJTR1e;ymY$fGy$bm?UOcqi> z@?m#07MRnq84kuu*FaiTu2P*tN~O)y69i}4@LnK1R}N4A@sG1)T~fh1&2Nd{GOQ!yjqEsdTi4f!&ZM&h7k z5HA82S9QQNOp(&l#{rDXxY1u zm?sb&4IU?>{Q=#SM1Rmb00yIpnoQTQ9#(~3Drg*hl>@S5y?2O(#7Zd%<3 zy?v9;G;!b4Sb_lF>ochALk`7FO=2jXeXeL=T8iqHlGUY8vuf=#EvD-vR6;{gWfvHI z3Wtn5_9oQIhg@0&Opo@~Z6>-dXY%^^LAP&86)PD4janjEU+_(!gwua*v&MGG=wjta; zV!G``4d-DOGc({B5OkY)H7S4Dc|wi$%92RY-*!4$(Q3O7D$&36n{AY_4nE|%5o)SWRXo{^Tp8{4tc;Vv zs50&`?r-d!c^dZ~bx|-4j+AWLz?jGMX#;jo?f$0iu&IUMpOB&@{p|Lh6vuRgiV=GA zNBhatPwAjXn~BJMgokqm{Xt^od^*y+D5R`*X;ZYCoD`riJ8|vB#FNo=w2N><{(VHH z-3oirk-ztQ$NsP%e&X*3A9%uG@5hiddfYo4d*c0p|NaQ`<4?yOc%aVEU-pj%Kc2#< zsgo#<>}9k+?45+-BiNcyZp3Cnhb$)>#Bu1>_!LI(eyCvZlRrG@j2=Rt{iSpNAXK5J zx+k76ZJ|*1cycy=5QjfJ-8=IPN2j6qm=$czclVDw`Ce*ph4+!?`*BqHar7iUhn9aF z)w9(7!Qo*y4C>@Tn3?@iC_hS{Ac&(%`qn+_J?RAqiX|{QU_Bc>@YbLq<6$Svt-r#0^w=TACBXDSAY*=O z938&>9Z3aBdA<7bUQxmaH~qH1OBvQZyjsODEI_ zKXKSOJsKy6fv1HCC^;f0phWq8S6is9bcc6+a&AOdKvp)kbi|fZOEd~)5?q*;Zw8~D zZTQ6<7Ql9rqi+8`wm?~f5}}+;AbdOk2lS%^g@bq$;|iDt2Ldzm0?kig#XW@bwGWfN zBy>@g*}a}KWzQD&;~0G=zjfg{2EIUDn0nkho*eWPiDH`^L9(?~u{1s%B!AH! z_C@j~$`^;E=FM33;|_c9iaz=I%ZxgDjSL#D{YQh{bHbpy#ugDT9*zS z)^uCrt9GC#(IHTq! zr03T0qu!{u*E{Ns&&oyq-N(;dqYC^gwH~J|`3R&&CJ@1(yFpMe;8;B{?3Ks81Bi?S zqTcc8F+JdhxAJ$0 zna~44>n9YU(pni1QY!1JvGsK%d~`J+~&G!!(ce?@PU!g3fxG*5y^h zp}`zVaC&;B#eBtq`!^6HSNC0HV{=TXC!Y@nj@rdl?3{HlmCK%8z!Ljfd7z@wBfGc5 z)vMbzb1`UcC7+%iAD_vJ?y782b_f*8Dpxn7))*#mcYPM;=&6n5>)+nmvifV=$=C3j zu7raKqHxRCfheC>&t)Clu5LA~g8Fvyg)hn6(lb>^f4^I-DxgiSl3K%^I%;j`8S3)c zs}loHJ=o{}MSm?Bj9 zikgius%C*c%;`u@Gdf*WtJ<_N)wWV9Y0G4SCJVBs)3I8TM1^S{U`sm zl@cc2cyFzDz`2>+?n2y^O>#m`f{%`VVQ*5+CIYORtrLyV5N6Fq3|Lfi*sRs6ZQrZv z&EyX*eW+d93W9!dcrjhtOoWRGhsI{|8VZTlB7fw9wRI)92`U9gipdl?b=3=b%n_@Q zBA2dqAq7{idNrRSx4mK>bJ;8Aq2_wCP)crHg_`TCxsXThdc{2MyqB*>E_{t*DQa#M z#?=5CX&(34d;N{2-Tq(D+~AefkOxWTsJHapZdtCDwKqw{uOvF=$wf{scyhmUC%dK3 zKI5@@+J^5RQVDu)*mdqzqrAJTxm6ny`)k(7>GEHoE}sv z!D0?#VkIwNPB20WkCO6|$rQn7;0}7oyGi-H%NdS9-Q-S<&eXQH8e3?W3Yd>htJSv5 z{q7SK3%KW1?Un7}Q4cX8xr5x)znk2V^Xr|%nyIJEmUidMN_a&FFhZ%~Cbm26ty=Z! zcAci~;MT(2wOcKoZ!$bp#B#||W6TUP)$5b8sF9f&aC?#W6kX+~P8YY6D%_x07?Cr~ z<>uECmImN58K&|sHu9s+@!mnl$&8hdRp=4=JhOV$!TSTU&NO1QZP1TU?PDZmJK3MQbELG|sy1~>^CHp{aoFuC@)+j-cRf^&Q~X$zpUF+~a& zgGJOpWL?{bj~UClN$+a4*RF58PLEoB+N0!3-F~VfWj@GCf574&zyy!wcLxzo7m~m}hEY6z z<_OJG^7+Pyu+qYJT*J)w-Ug}ZN*0zEKj(pSVJ&>oZI)!T1`=;6)7#3Ve>R`1uP)tM zMPjVgSDE-)qxAZ2z1doQgXd;=Mg-#g5G7aNT7A3pYU#BgGU1M2dgD&%jgm677fY}H z?egD#xV!QeZ^rkPUcXa%>+hG5d77;i0l)O>=cTv*zPtN!=~WYiR$iqW^)D7S{~bgN ztl`qF#lP`P2b-g(MBZ!=s?F?4bctDDuNm26e@+vcCBZD((k)OeOZkJ77~4eT3wvIQIPJ7BlvIB^`p zE9a=f27`cyaX2|ho+QJ&$<}=A$LTk&-rx%<+kY5Owvbb|T$Y6vgfK+2rhl)!{)Q%r z-61`dr{@N67h*K|TfTH&Nb&XpYx;)fWp!csLw+TovJYZAz(+LcgUuuPFywlYHf(Uw z_)qq+-9T?Tf#^}|l2^V6Vfp)C_56y^uXRB!y}hvf-6f`OXLt9)?qS>`tkKlfI5uyB zoViIvu=pzULAMZX`d6S^%V5sZ@`eVY0oWoox8#Th@=Ok6%Fni;18n+T>waQXduM4! z7_WNvk`6~e?>?2*;%C)kAN+@H0k-=v(7Kc|NIKOffT-187ro)3y0~#OR80}~WjZS4 z0)$2?f#JjCkhiElmdh+Ph`- z)a1XV>#>iQbLUMRf$SKnVUPpHXug)hdN_fa2deFdPus?XF#@=3x}j@}*B5uRwK)Ds zcu*7RX2ArdXI#JN8*6V2mN8HVdl)hSqvmn$mMAHMHdDqa(R48MY%^wpto8g*bShoP z-`x!PkdrXMC*91F`JAK9qi$fZX79;XRn~##qWKW5*|Mm;Ys6VIaryP((ofzu`iBZc zYgl<})$U$MN6}PkoLs*Af##`B6*d%>HTd!dN$pLltF<)5+9e~5;BvmRlAN46>4Zg) z9fXXzOy(XBw+G6N@Xd}B&6$Dj5Duc!?>>$N%gOty=lyaHz}Dw#Ye@sE+gP=ruGFps z2O0NBH;B4`BfOTuPi~9m5h}+M^L)s43VAU@ZfRtkHs|(W;T?!z>B5P*2%!nf_19KK zK=W#=b~&4n*M^G|6QV;~wc66<6JIdA)Vl`|BAX8pVJEhZPR2;&!JHdT9^Nj&##87g z|6f5o*Bi8Gk(52gH9_9f_qFx-(wcy15Se`La_&*e<}eRAY%a4y3yI6EB6kG|Wz9sC zpdrc06`Z9ioP&sreq6|n1O#ioCRB%&5r@67bp1j)WlrU^)EaMSN}+VswoUWK(vAvA zJKJ1Z5PJxFtBgkY-KZ-at!OSi?Hy?Y=advnCqLW(0HfyWlY0R%c5_N#;ZSB8NQU>t ztoV-)oo{SRfI5T5WaH3KCHavGaRJ&88KAMiq6CeX+257&TMg4*pcou%1`@_0)Wl~6 z8voXC_b_5Q44IK0BU6UYrtJgR&g@wWmz)4?I{~8NYk?HiYl~4(*ogEec61gHeNqFf zF|}Z#AkoK-(?Ik8BQ4@^1irmN+zIm<-padu&L?Jj*0g|Q)}h=|VEUBgTVNX^$*fo? z2m^R6xqQQtCIvvvY(OGXLh%HO=on*nW{jSi865x7A;-UeNREOXn@mcMIpQ ztIW!;Np0@-|FojdtTrRO5n$4A$&fDU6g(m8i1tm7NKD-QX-fUjV z)=m9&iHeP_56GrfV|F#0z8uqQXN63R$|bTWGC1()2fQRtU1=b2<#M|EFPvWr%!Vxk z)yww87GWW8!d#@E3{fy@V5`6>?xXU=b~a-r(+fWmcBNV9!YomBdPOsr8E@{Nnb)D| z0DiS_64sTGBgG%7HZB^ET)(2VDCRwlN@C2IR&A}e3`&HU8gTCKXcAwF>&e@gOajfCgvBH_j42dVBnNy!4EJAiUd)j#+huTGta80>Q2mbOffY zBvMT`OA9j6u&;T#`lP%9cv{7?{gTN&g`{G!qz`VjliREwc^}^+pUX%UUukRbXBfqG ztdk5$IK|~zrl1~5YM2rdGwya`S8lBe^d@jD-GgcJeYh#DL-pVO?cc6|(*zJoySx6o zYt=hX_6B$FR4dz^%HiD)c6a}&XFY6iaNCc@%v1Dea}OFIYwd1wH7fqMs~G+avJJcv z12DW3ZlH3MiRP4fU&F~J9w-)q{E9~votr+p&ztt{fLtGa1U~Ji z|AA3L84kkZE)r2RD1M>}K2}#8)eGsQF&o#C&m^TmDc9w`GSFcQliRuw7@N7LPi|%@ z%S~}RdF`H5!?qilML1*m0+!2nAi=Y9{-i; zv1}87cI&Ku@QHN#VL-_vK+HKw<>#aCZzKK|Cz!K-@EYYG?)>o4-S>HN!W1~fsxu*x z-O-WfpO08iLDxKK+TOO+Wag=xY>SvGbTIN%=MxF_H(uYw|H0fm=aD71ola0CFvAEE zNWr=fp>XQN>x#5#dfD&pZbF2O4&Uii{;^Z}n`rNyzh}?yLx+FIzun#6#>K<7+6}iba*RDNtoY7vLTjRFB{H&QQjPsw@7&Mdiiw3)Wb=&85+dLG+3!-6)YHv7< z;3lwn?ysCY#9c8p0;AXC$V#wlXBpw#!1eX84R0p*zS{Znv$c&WEVmMDCbk9u&bkRK z{%ZW$q$W1^J;!Wh4Ue*Y7ETktOi;FHrwc?OT9njiXg+hp)W(8fuz30P-9C~!bXWxT z?PZhb-dR|_{xbBhx)dm?^!SJ8Z@jX+qimO0h4tkH6#PhSVMT@p!inUpohc(l`pIoy zIZ@2Z;?BhmYNeeKEG{hmr@AL0No=lvo-h>`D|w;4 zu?Y20Q5wd``G<)vy=2UH`zv)XeFpj_9oSy?nsxnc?>bhKMYEu`#m2+J%DDKZ@$rr8 z3(J#va1WM`DrZVsQ-rs9_IO7qC}`ul4QK)DSew7b^7T_{aTn< z@Ut`Xp}Ufnex(XXvlv{Ko0qzpao4fZuOenS1e4Kl-$O*xyyWZ1AKyVM1x(5<7HrJB^c@+`Ikt z_ut<9?DiVO0v5^rCsThI9n?4@vXy&iWMXCXeef}&orpLryTzjTBcJo2jR9sYSI7Wh zQzkZ;ZMQiaE+o7Olb5}al_jWNTJ{hWu(DEsHY|^gXcbBVmI>_} zXA7leUJz1on5E4PnGEx4pnor_fl^?}gr1`x0Z}F=FHojTZp)EUn|!`_(Mo>p8nR5F zOrZ`#A|th#@m>UblKNssIC8bqlf+a%PjWm*9lP^10S{=AIYhwq_> ztktB9)G()8^I46jPXidtud)b|(Bo?zKhil)uGxu4GNqfIpMkuVon^h|zMRt;bLqqn zC>)`r!ikh?LAJjZ9H5CHlhDWz)Si zG{ZTR%V9$(4ARWPtl-)ePXNUx&>BbV^&Ash^F*;VYi^Q!GJywVC zsF1*~l~^T6}JH2s8d8i50L(&v9gm#dstQ1qB^9^Q26 zK?l&NBh$F|7%n3zS@EMA=^^Z6mSTD!FD%Q7hz?tE{=!QqWw{i#5@ z>+5_ax}A;Ao=6O9L%fX6g33@6)$N8Qx#O|U*0H-;+!;#5gR?Oy1y{x9D|SwNOxkjSt| zu(p*c;GphzgGH>t|kBrSiuan|HWudO3i zrdvrDZ=4@s(-M-!Q%SKB9WWrO=f4=lifxu@pYbi-uGfH~`8egIVh>y~uWnWgE|PGnClz+``$fxm*?GcbT2^sBCS=O=TUPHc;JSTcrDzE{pHVPIqW~W% zgz`N(tQv86UA8@Y5)p?`NMmO2t1qvLC2X(0;vO(!BXNRRF`X%MSS!5@yXyE3_0Su$ z*={bB3=w!BQ)7iCQd$Wb7sOTR!k|s1B~#`6VWG6d)@iJ8ooCx*xoZIWV=JlkjrGR$ zW#CV}Y1%XC)MO>0pPs;8WC>!aRgZqGE-4gwzg}A6G>f>@rK_v2uD)h|`|{O?gP&}o zK?SnJsu8t@Fl`;I%lRK({Z((cVfMGJ%ktatX8GDExys@tFTYh?C?Rok_}QxCb#du$ zrB_UDflasA_3f8LLd4lu{mcj>ZqemSOBd~|0#~lY&w%*w#>*Qyw<6IXKC`fzHA?rj z*cw}(ZK_JGtLPTuJD&ZOYA{#?>~Wr=Dew-{8kd58F<@GXW;L{ov#eIwqQ-Fa^W9hA!+nR)5s394xoO!hYzMcxi=m;Gd6(I|;ir(f-?E}DY9sk=gqdqL_D)6)2!`7)|v zW^}gi%Nr}Qz8ia4qQ(_D3{@KgDqOr#TDh^Z;?3c5>AiWfpffw3HNS#IOz3&N{%4hU z;<9+F^h)mamD>~}G=iuBWJp{wf`PT&RE5HUl|_OKQiGOgm_>vfci@cE#U^MzQQRtU z3QrL40tn$qidz13(~zr`;-Z*HoTj=yZbF+D+i|pDHO2!dX)!5i4F8P_s+n%4zPN+* zmRXz9%z1$vGsLO<$2o5xmm(x)5fgAJ&7GnX;;c5Ax=pxLn$93pTj$@yE7ECLM92t{ zpax6j}&TrZz zTEEsBVnInCAo&F=m_3Re6RMFvfFKVToDmJvY{IS`4!Ju;gcgpX|~5%huRk0wZ6Tu^v2?C%zB1W8w<;~wGu>CxBg218YmI^8G(F7Z_r;> z4x}_)Me>7v1NXQ6cQ`U=qGG@=-^X6X{(S>dz6bj5a^ca0kn zufat?BBk+BERBejF;}h9iWrU3YvwAu`ucS{*w`+;zH@o?%@PE^wk2}c8gY{GHs=^c z>zK*aw{|$`81c(HzVM4E8o~Y6cwN})4HHPaB`t8!om&Lut)~&Wx`tWi=WocfUpg1ni zQ=XG41<0LDujGTx29XMdjSy{e2Zx9&Y^#yOyxkvnzB|_}F6_0tc=Kh>!P!DXvQ>ph zMRttc4)T#Oy&$W^UgF-9AU^5Pqb^~rJkeE|L47)hk;ocTQxdmgbNQzAT##pDrraGT zX1vZFd(_=U2bi;M08xdd*QqFM5S{3$v|VonuPdS_eyC##= zzh?k5>^x3-@dD6n5xSZ$SHNhPt8{~9iP*+*hq}BZ&$*^iGVv?g%WI3D+CE-2RlQb3 zefbNp38OBnc`+0*#o+8BS{jY>UZnJjj^{SNUs(~OQElAR+HY~p7ojKRB)?GNmJ*?0 zYRM#&=ATF=*rO77s4r53N#Z($Ty6GP?zc*B$e7XSDQClVI$E>U)=x?)XnCZ0(2fI^ zobJo(Rd~Z4HEdsgjvI8A-a8!U&S0hB<|rx%56x1*4*YnC_qjQRRwru3b-lKTzlpur^?5intzO)UFqag3P^qGiiX443)W= zBf8Ru{Unco^Kce){XCz~j_J)nRB*JA&kn!O%-8(fRlrdVUTe$hwpDuRGWMW=ok&PX zPVtlr1DlU-;qsOof(6W@luNQNh;S{oE_9BGMQu{bRahY{;j6A5!25-e z48em%FPBO$ty~ndOb(_MpPA*7wtH=<7fUbwjmJ6$!NXf&CQzCBl++^SsMTXiBR(|a zLpG%`Wh*?ejj|nI5Yyq0D=)7|HnQZEl@*l#;rXI(y4t*7&2qoC0)rEBys=_tMpgKV zf+2+Dx5Lh^lD}C=(sTi*wjx?*e68lhNE2&VcY0~!p0<0Lqd}fQSBap>D9o>^3MZ>h z_d7+{Ap2A4)NJKFrNW0StedI|RL%KQB~0Kfn8)oTA+jf*!+W|NPkqU%&xHe}psykx za?xvf%ZOcCW$cB1ixe`jIzew5zCU$ySDp~|5vMV=Zo;Z+PIqq}6*-f%NqRejT;uDL zxeuwDiQq@Mq|jR_zet@Cfhf0@iO&4I4N}K4Wb{|dD@99R;7FTs zFQ~&In9?PB6M69$QuY%1m(xd|a`}o>|BB$$^T&-`ee)JnHNlI#o{EK!Q?aE6o}o3X{>Uvd*5SS_$pa5raBbaJZFK(QY8qdOzln(gRf4utNwshyhUM| zYbDN-duDdE6IGz*+NOd=-wTwl_(^9L!*RwCK00mCBF1_lj@lKAowGZa9w-XIUKg3` zxPzO6W4ip=EwovzXfxq<3-a8XGzkNh(YbqLZugkeH%^qxVYbVyPy5sIgnPlJvQ@;l zBsQD{Sf{F29r3rX5^8vCVqw^B z6x-6V`VXJ|buET07AhZe2IK(x2PuMQC}NDzdaU>uqIpDb6xF$Efk7GUTKbI^uc<< z?L>KQ33$wM+6=Uh>B^QX`{aHI?j}VOR!=P-f3o>%UNBZXq#QbQlut7kxMN&`%*1j2 z@+y`D$~U;S8}&iywacZ~O{K7iix=@wQ>tuhIV(?{X? z5_t6JZWU-@#%QOd0|OE(3!)~k(?TV@&a~_~Up}Uel*U>|U0|NInhMKJRB0N`L0Uq; zK$F~bt*xYiyM_o;)7&=9bt`(n1PvIIY~eCFgQI-^4<~rSEQbIjK85tOIBStZ&#~iy zQiYYMI8ktKrpKZ53`Si5cC)Uo7Qz}~R!+DNmgjC`4$_HX?01`B7TOz`nXw zq-|#M;DO25&+Pw_Ad7j`oT=gftZ0yZ#A_GFVphE88jFkh`H=JT2b6X9siP8?kWsxN zmP$w>Qiw063$~b?rDTXxt4XSwtRk)M>@8GVOnWMSk(GVQ;>t1=`>m-p9eL{+e8yA- zFR;9jq-piUX+~C&h_m5qMxiyo$$MtFM2{YFlH(DWHrQUi^45Jo}Iu0*Twr^^=9yN)Qt>rqbODZfI zK2PP#rPUiNtKulC@sOl|5Httj^pOE<8h2lblooLcnH%^1M- zIBQ|VBl;caTD)jogBv*La-|VcO@4YqG0nC)DR?dW4|>F6@qQq*z;Ima4<2`L+mJqZ zsJJ8eAULxw)?V%dMx=m_v1OvKu^I6pI=q8W#?=aT%^_n%#X=|(!ymev>qd4a>$Gnr zVmp38A~o4Lpu#Si;i#!qW6N1!AfeK-Gs(W2(ouO5M=F-9!1){o?{}<+Xi3L}z) zGp#2PhO_p8tghMIj7U$DC_v7M>(QyuM@kCkNn1$DhJ{KrbvT@ES@DmNISGAmZ)y5--tZ=I+`!Qe+E9m~f)2 zNCibUv#GG!XVaA&>e^nBHEugrSP<8O(IuiHw10cL$(wtkD-Vjp@-$mx*|PFAd7XFsC+m)0=3$ z`sIKzGN@0WZT3al6S4snkB#&^pc4w%yo#21&5)-^7IUXMrw>_*ILt+fpoz#}9Vr+$ zGx%jMn_93I_W?R?{Jn2&dxHZhN`xQ$Yr?_xZ``=SBT!>E_>{j}H*S0u)?1+h6_w-J z{k}9I+$%4ox`$R+*Yz+ndNbZIHy(I2i_^caTddT!v330FWDBYdB{=O(umL7npl z%9u`A!E6KsUyZkZ;APgFWC(NJ3Q)GYeDcUS?MR*#3e%P=I>CKL(?V9HlFMutTjV~4 z9e`_CCl1W!@`U1;G=E+vbw^QwL7v}5+L$|a6CI2S0ufJLUM>U^Vo4-W#Qi!8+k=y8 z$264F1m$@e$!MCpN%%RpXb=sW9-_Gz;F z+qHns8yiInQ9<`)j?GSeGG8e1*_Db@qR3?LT$i)6-k4LFo7-}#Ky7~gjm0<3=Kcv$ zWHgmxz#D4|%TlO^;4%0xGVP0>Na+&vebm0tro3y)NPT$$h8OkO;bk2$ zYW>lIj_Oxzu*&P`g8cD<*N-vgySodeH*w9A?_Kl3f;s;*9$FEu5Wp{pf;ya2UU^OI zG*q@;6?cYquhp`%OgvSa-j+X-#XSHxO3f#ff;c|^hBZ}h1y^S!yy2BJIpvUWz#8s8 z5o(j2dP@c`Z=>{^G?`q^_Lp9hi=P&z;#o%@_e=+vMYs?P>~Vu5b_P4ObM@g~p=+^< zYgrxZLY{~aTtz)2%Qa{R7xxaZi4Bd}-bkjB3+DM{J{W(w`w@@4H4(5UA!aZx(cNnp(;h<*o zH9g0@sm2)%^BMZkeTLTc5zj4Y^>v=ft^$#9&}uTVhvUn2*SI&dDc)f$Ej>wSAWn64C+^k&^{;IHJm58NAlP8+I2Bws!Jd;yEv`MlXwjkro z^1NOOs_0c@`(ef-HHi$AQkA0fMywLXg}F#6Kv?4lGH5uY@7Q|%4TF%*U2>(8CaNhV z9rCitHJe5U8ho}$cpf1lQNbG=4!Vy1zpnF*Ec`?2NnMD7G0>Qgj{$N@8*X?&1>KrK zv}_ezj3HmrPI7E92=d|VBXCG{rV)@~&(;J4A2wf@rXLGYfzCv5GlYv!grm^ykFGY; z=NuCrn~p@m&B<4;!&8Z1N3c%eUi^^Ts5#jON(Fo5<#Y*T+*2&W9L*pqIX)AlO{e+F z^{bK34CUc4H*@0fx1as#`!Bxz>~`||uZhuE`QocDzRQco3Tw@fGvR2wF)1TQ9tp&G zap4$|80;`n83q#ww2l41SB*!4#z6Z&-MP+m!4#0q(%G`=_ zvtbOY&;8NDSKA<{Ar+i26Uqy$sy6>ZVTsChv(X~@wxyV@*OyA1hf^)9yXEVvSCCG3 zuCKnsmj;hlSKp<{`s#Z|9oqlBP+BX!^V{F8u9r9iCpj5um#odwI|SZec~6^Hy``ND zQP%|fdb{+VCYr1+=+khJb4gV%5Qw!gk)h4mIH7)c{D4QQAyokuWCTn2!#GzyD9P|8 zNdN&`F|soyZ{4y?pr?d!%^ zu22UsZ1Una>d$iOWjz}oLXq@x3XDIzMgsLB@(IPvBSy8!E73gp!b{2%6q9q>zBD@; z+Ax4L=Fp5$t1%szRB(PDt`y`*YKMcsquRSu@hD*jxKP&9V|P<+fQJ4v1WM~)Iz)rt z^nrlr_zZC2{Ve7}b`BvskPr&y#-#2RVld_Q<3??JJICcC>u`iHZW_R5YTM8}=eLXt ztZJFdB9D=>nQ15EmKIPVJ5tbWwwpO^1VAb%?j}Yx165P^b z3(e*hH&zERrpR!32v6fS%!cf>xQnKX4#s^omM%xe+>O+jyM6PMPN8DEH-7Y9o96)F z*-n{y>U5_)b-Ykha)HI@6snarsXiMEvI*3x=PEfR5`RzuiZrACZwguz&sK@W5= z(&(lGsPP)o6lB>vgNdDIyT?mVXg7QDi;u?zzjG(p6r_`hFf?UG>M0p{BcmdL^@*Jc z#6|REQn8ie1)Ol3BeB+A;KR~UkQVF94KAIN)O#viS0@}D>b_RHzilM91kNNM_xh(q z-Es;;FWufWr$~s|C(r(8WzE+3*4o6R8M%aH9^;LIbzvjJM@mey$OmG>sZ<`5TKnAa&N73$$`+sU5;>(i-$p`rZ`aJcFiqV*wi#^TIQphy4;DjnM0<@Wj6)6 ziH^*}uw?d_T+NIP0<#6|mU&k};Q(dkJ!iZ{z%EH-?O(}P4Ys>%NBT9fsc=cO(6pYB zuC$(r`6}-%2QFHZ+Kl_x?%n+Q%P)7n`c!9$P|pQoDGoq1d20KQ#55z$bUnP#WxGtE zb(v^kpO{jPr`^6pC1NMp5SRi@3SzrST4}0HRY=tULzQBMbh>JyS&NxImF8M2q-2He zDZ_{yR{VHZ+zrZ!pLX;61k0w&9`^RjIew_!ZqEoUm2NBAL*hZPh=YvB3^EC4@x%?8 zGl+IYjbo;>T8xunT9px87Kji5O6&)Bo%3Tcx%MjImhm$Eo%R?{yBHx?K&kGN{q9Ms zH+0-;Stvb8OwR52j=r^YS(bmyt{Ot?H&Ewg_n_9}%Y4%Lttea-cV?aNQTSnkW(2{Y z*sdK?iX%04hUrZ^UVyD$_Haqj$)!-4&c$H;D0rGh)NaqZTCjlHRC0pjBWsRpyv7fT zJjE26XSuPh>_5bo6T9t;HFPP(c;gg3YSC;Yo~}^0ncYVL7|x#sw9O%C4lB1B+YLK= zi-?jP65#qfols)Wj-AV)WV`mq1!uw(3K*u$q<-d*xwW`PP0gpKnD5J4qC9AJU7OCc z)Msr=GbP5$ydsp71&)~K#^(zj3h}z?uQk8Y_nZ12<#G!HQmy}|(oh2PeM?sT>iLuz z)bz_FRtdJWIci2B0a+&(yiC4=YZi+*3}Q^9x~K*MqO< z`ocYyEnK;+Y9q_PA*X4e&fBY5S!+H+tMa<8mzMK$l!2B0yQ~^5|2g zYNHCu=6H!O`P{sjX-qO0WyVR@gfOXb!J`HG&h!K5+)oCWR>N`Z*q`*cyAXjI50B0` zoxlGO!M$KX1@kzzV>O964ch&yO#%!~^4p`c{IJE^C5C79X+2FwTk@aZ>4fApCX=Q)wXSuXFFiolCjBV)EseU z)u7hW8gzS$Wd{kWOKr`6$QZwA_1naWl_kpHy3ewQrbbB-vuj%Q)e9eW zj`t3@*i>_U+UM@u^!k-ZMGm;?5vd*>Gxj!JscFrJh(BuF5FmZ1gvDuxMeRmXt{uxG zoWUuyKEE$G1W+hqFZ6C571&SDiMi`KvdWo1f#aD)Z2#1KOX|#(wK$*|;}8UL&`6!! zl^EF0Fs?bEp92Q-W1aAbWVA&eO%Ep%9Ir*!+-D#tf30*v%@g0Uiz8N4SX$Gj{Sr~;)-8Cldb#7dy%sDsiI!%j%rb`Y~DPEJS-s&yVY zaUl=`4h|Auf#jMe&|^nRkej~US>SlPE;(pzH_v@D+ry*rK<)?Av+I|KN4GW{t=#o#Jh+co6IJP4B;7^QLbFDIRX?cg zD_(T{!C>%E86y|#2`rJw_hg^KhQPsrRG68{o%Ic<^Fu{y(^Fonck zK5%r_V>*~JZ`0XXxSngqr^7@4Hs|b2r+=1|u|!0e1}jX?ile18K?~kBJ;1@cBkrH= za-l;R63w;ucFtI<2~z>_7UD7082ziceYJ%O-ki_v{@~!97!3xR@-?5zjVOT3CKEm) zXa(eT!2qRnJR$-t1{I8ksfE!O5z-UB}>o%iSc-Z1#zT1&Y{Bv${CGk7EFX9 z_aZ(M%aOjKiXf!!(a~8VS(aG#V`90ie<#|@|3oWGH(zlhS){HQZ#E=wjeo9J0bB-!}Yjx#zoSZlu2{b* zPRTNV1zpE+=f||OK53(b0rb2(lWKe;@jAv3nC@1s-mv&T(#p=kv0MwYFil*udw=o( zE%xs5YpgfFE(4`JceWFxF`J*Vv(2Chx&G{*!ss1iGu%JwK(8W3Cijm9d)#p`UD!xj zIk&;zvYgM@=Xd+JyB;^|-rSnkqQ+zwV} zPZ78MrfQJ)V8CtB@)aNBg%Y9(eax*%9%Rc$t}w>1La?pgJu{^Cr4YLJS!Z;X+%)*~ z{$Ynt*SJKIo@r^Yp5z1D_n6^N8PsMOhi1;f20)7`%dL)UV#LyD`Zg6=iY&QyALKO; z$6uHXqEZtCl<-yqN#a<^>RL*;awp&U7Pd1@Y!xw+t~+9nHqZS<8YOlx8O?XTz4c)* zrYBFCQW&~#Z;1-{A-G4~kI$Ja|6|1H50k)OJHfzv(sv5HeThK!M^0;{EeLwHl6r^d zLWKk3sOvg-0L&u6(Pq{FM$z7{eI_@SSgtg@H;PmJKlu+N!2^nYP zT{E(FOxQLvs1HR4ar@{0>An;x(Ojf1s>oArkc;YlU0cj>zdNsS5z=G=LEUIp{Z+l! zE&6uj&w+_DZs;R@FpiI3yVS)bV5LARVA2A^r98Tt66VZP;Gax@mSpZCc*vn7*J5yA;t7DbiQH!0!kRx=N390JPucH=Ac z>U?F)y(QlxF8U){TcN?=Nz|0%A^*5}fGmyDyD6v1h34Lcte5i{&iM$z>Psd~dxe$l z`)1^5B4aAT5$Qo-Qp0QDPJJC$rdZa( z>)Kb_{O1>S%~dS+!Y%I~KX?#BpIJ*@lZUF2bTck3P|A#;oh^mMp^EGYjh2 zha5SIa+`6}+7bAdUWUo0VcfKP%8G0YC1wziiM~N%jUSUfi=#^O(a*#lL%|u9DjoG$ zHWhQ{E+w))4WjTzJ)&W*%`f4qv^;^1dVM=eYmNr(%+cV691Va*yz2eh!f?0mJGeQX zw-?Trmd)tKfm7LMxT)5cY&fCDiyY@9?OL4c_*za_V8VmOCkIqIXUF1H@2n6&cc1Z>K+GQP! zSs-0fZ;VJc9PFb8-Aulh06sqL>xA;r*@x#4kYx^X{i3AwcqZiWgC0IBrV}zpboWuX zml_tbP^82nHvLh~{MdOk=n;A{_Aaze7m?)lb_Ehrd{9gx?GRJuJA6X&3e<~W z#mg~wt+tpuzT3I78UeG=lb#;C=s=x75%3|7pC~k}q;0#mmn?f|(YTln2usPrmvg!K zlxuJdNuJq>eeNytbEn@QoM{&Jx&(pd`tGS|@P6c=FtP4{eX8Pm(K+zCgLz$0&nM*P z{dpiChs|K}=E7%!zFlkQT+g{+GQkd;2=z0DS zHDE?0ANS}FPIiFO6q)>*rVvN2%ND&y_?=H&`YbTrA=PdMBz{C{_#s{TfMThepMFYU ziLL+l_hCI41LPeLsqh#;(s-I_*6<01Nm6EBJXb|peHf~rLa-ox2~h9aH%-%e&M^wZ zZGKz!$U>;LV#w(hcDyb0`Oo6{wA_6SM-AOXFrhGtnE`~*?dCW&x(qHWP}o8DNnnmM zu1o_;4>c&?DC5JV`EfUrpkcGK4nB3#Sa{4{6NZ=%n~gtlX*8OZTK)W<7_8E-L(J61 zDw>wkum8fJ8rQ^)S!8Q-c#vm?w9 zPSj4|^H_UNwYSajiU*lF{3;{Ej`n2j*Ne4ZHxHi1R*W+e#vS~{Qb6Hm7h#t4*fc=^ zOl!i0^6u{6|D%k|F9$Q6lLkcCAZ>kjcl3C7_n-XyeRp@`19E+$T=0OM;r@e)LJ>Xg z42dc3_aBDihj?IO4;m1{b1Zt8<%jTDcAJp9$<~xJc&|_JU}z!14`Pgv91>&%P19&{ zELKVYCq2ErbJh~THBFyqMxh%Q7OxAGZ%W)1=ZyY|30~acjr$n6?m9$?=bAq91^2Zp zZ@sOPZ?!7UO-w7-a`LV9J&|4xsf`O+bSTv4nR|Vg&);}uk%VxeThOtsSfS>Y@$hL} z#{yD=#HqVem@<<5WRBr93tY%w^o+s#%!I^Zs!iilR|R%$RXWMyBdJbJgA@AP`m-~( zjwsIE=7FzWMel(1x|w|JTw|5rWHZz zJ0#&h+j=&Pa(u22T^AU*r|f$iP4EEtP4q4ng|E4~FkE!$56GBUx3RRN5-$Oc=8^!G zx|#bhCuhz)ck2SEwYq2*y)ALy*yM4hKA!HQHQSKy`g1e zVJL&&gkPkJFX{D{v;xA7&>%qn*6yJZ($8Es{o%rS^9!w4v_!=FH9pf5(OOEsE?wYB zs_~{r32xcpSTM*EcEF$VMHX?up8Bsrc(aj2#^c8@Ex-rIU!e$yMQE zQT4(a5_gxbqre6j5y@?g>)A2+5$-v$OBqz~-~w^j_zRLS`BLs-vdWAm8>0^y@U>iE zC&V$%?h-Ky3(@jkY*^T#;?ekZ*cqfH8`Koiqm9kR_)7<#YxHLiKC9!G0bqn`%tVh= zef0uxn4W%=*6!}O?)VAZ4sd>WM0g-`sW?f(he||mdFQNUI-0Ox@P&KU_>WOg{KAs)#4UXa!$Y4DvFGMeR_=QtXxid_P*jOk!xl)2dzRWaYME%twFgpio zl7NiA(pA1Q{%gZ;qrCcc%(C|HVAgTV{EBWP_spv_0lSA+@@VOWM00A z)0a$*R8?(d{b(MFwW>ETLj+o{&!jNWdNdbSYgvKDKlHV|_y_))hnf*C8U0AasOaGb zMa+~&q-@6FFa7jPsLh=L6{8sTFq4pklV&zPbRE3g%S_Z5?EOfTE4Q6lUiWa=gOlx{ zQ|TR^LF4yw-}AFrJ{q8D>K={=#8plY36Ow~kelR!H$r5KVRHkH7*}R_Qu|1M5Ms_` zY;np)mw)*9Ie(PL|0th#ZZ{bcy?MGWO^9mIV18bLG zA1)c*k-&u3+9x_UltxN+v$`-}_-fZeRvX(YZI<=$!EmvPtcGbF(T&U)u{}T%Y$)r4 zw-7Q+*6TWJK^~E1MQj&Bx*gmCbI3NXw1)GpdLi<4qh^ci4j~{;t*+6I*sogXR8vda0a98Ej~eZVqC1kXnMKZ1 zIyVrApfP2HKR<~$iAGUZ$Z@aS=~#OG+(u$p`UDRdRHlksDb-iD)Lrobx*nqDv$Gx> zoMrT7LwvT!u>p`??Sb{#mJ;qgFiiE^P~4f|O62y8Ks@ZFyoHQi=v{h!g4pnPU%r+j z{zNhp&mdTr&9`P8JgA^Ak%2>k3OrwwOLSDgLSN)*P1v8xopeRxndurX=mD-b_sU6J zrb+o`h$f1T>!3@AA}Q1nNO#5>5YeYB6Y4H5o`uC5CG@kjr3uq5u4arQSaZ7vxKrtD z=!rUGA^z#3em!}jthr51q>#5=SeJ<{>fnNt4Nm`! zEw+e)MCoL|$XG_6 z&9%jjWb28Ap1USy9^W6z&F9DBLWxuLLLAvd;Ypq>e$I4;=}i+q1EpeZv8OMDR32}T zUGHhg6J|_==tU7F?c5AhiQjTycyVMo6tVh5KyxN7DIlmrb`bKE;(^eEjpvhchae#GC0XIoK62NXKqmGSr^b z(yMqY#c-6?Op4U{H@YIpv}OFZB>gSJA)^puFMNBID2CT4+BlKd=qsdeomW*2nH>CF z5mz@V-SV%laE;?DR^aaorB|-6tdNVKaw{^^RvUj_;0eA~RTC|)`E}{l8!HspQ3AK3 z!;M~BD7~t!_=C$OY#+@gftC;LvsprZv!GPIsy?>rDAOTVPXlF?j8Na=B%Mx##37DU z<32sPIAD0v-Pc4eB)TD&@m9PFGenqqgCIo+P?$H?I5XkeI(UG6)B?uj$pInoXkrhH zsY;nC^w0$L#gf~_#>=g$V;C$GrRXWvUt)uq-VU=$78eebLj!rG5#z-9yXsA@Gz*Er zB=TGwK?;#|bTlWNN=8UD|4@Wc+s;GCub}9ghHVbv3KTuEvmdO@ChaDHQX&l^w@Ij> zXX*{p?!GAF5DQMO*9jo8BHX$ytkU{uUf_?E2f?%u^pBmrJtk00EYsjFUef58C3z+S zW?y4ZiUcsA&YFk#dXmGQ^?+RKkM;+BR1?9D<2|U16^12sYqMT?nt>94qKz_b#%72S zTk(Q?$T+u7j%LD6PEwgvYa2%WqOcDw{u~{x(A#XX(Vbe$v%tMht{pPVvMU#m%vA*0A;PG;5`1nl*^E{GF+L7PLZb>(f$kh_OBUOsOU(A%p* ze<$cKtzOjg>ZQ^JBkRWtr3=?rURo}_^vw!iYVFcR+Yjz8l=Qmwjfgn3|6=LVjTH(x zX}_S<>kFkzBHo+7GW8-o^u^YWR9s*&ZCp5uIjjH>&Q61gGV6NmhRWz67cl{%z(xu+ ziU1QxZ9YtaR-mlb0*2~Sj!i+0qx7FOoZ?T?8I1;Zjgg(@Nz((pF8^@nht0b|YR*2M zB;}7#7t{)b**cT>wv)#DG&&x1WfRm$z?WvGNPE;rQ!WH0y?JO%4_v&)w80`4&d4^I zQa+q>vOPZ=Kx%<9=jaGcnGY9P+$G}KR6F+g=PV`-b#ehc7n}}yM)}ygixk6*J3)(* r -= -== -> ->= -@ -FP_infinite -FP_nan -FP_normal -FP_subnormal -FP_zero -LargeFile -Open_append -Open_binary -Open_creat -Open_nonblock -Open_rdonly -Open_text -Open_trunc -Open_wronly -Oupen_excl -^ -^^ -abs -abs_float -acos -asin -asr -at_exit -atan -atan2 -bool_of_string -ceil -char_of_int -classify_float -close_in -close_in_noerr -close_out -close_out_noerr -compare -cos -cosh -decr -do_at_exit -epsilon_float -exit -exp -expm1 -failwith -float -float_of_int -float_of_string -floor -flush -flush_all -format -format4 -format_of_string -fpclass -frexp -fst -ignore -in_channel -in_channel_length -incr -infinity -input -input_binary_int -input_byte -input_char -input_line -input_value -int_of_char -int_of_float -int_of_string -invalid_arg -land -ldexp -lnot -log -log10 -log1p -lor -lsl -lsr -lxor -max -max_float -max_int -min -min_float -min_int -mod -mod_float -modf -nan -neg_infinity -not -open_flag -open_in -open_in_bin -open_in_gen -open_out -open_out_bin -open_out_gen -or -out_channel -out_channel_length -output -output_binary_int -output_byte -output_char -output_string -output_value -pos_in -pos_out -pred -prerr_char -prerr_endline -prerr_float -prerr_int -prerr_newline -prerr_string -print_char -print_endline -print_float -print_int -print_newline -print_string -raise -read_float -read_int -read_line -really_input -ref -seek_in -seek_out -set_binary_mode_in -set_binary_mode_out -sin -sinh -snd -sqrt -stderr -stdin -stdout -string_of_bool -string_of_float -string_of_format -string_of_int -succ -tan -tanh -truncate -unsafe_really_input -valid_float_lexem -|| -~ -~+ -~+. -~- -~-. diff --git a/elpa/auto-complete-20170125.245/dict/clojure-mode b/elpa/auto-complete-20170125.245/dict/clojure-mode deleted file mode 100644 index 9dc2c730..00000000 --- a/elpa/auto-complete-20170125.245/dict/clojure-mode +++ /dev/null @@ -1,580 +0,0 @@ -*agent* -*allow-unresolved-vars* -*assert* -*clojure-version* -*command-line-args* -*compile-files* -*compile-path* -*compiler-options* -*data-readers* -*default-data-reader-fn* -*err* -*file* -*flush-on-newline* -*fn-loader* -*in* -*math-context* -*ns* -*out* -*print-dup* -*print-length* -*print-level* -*print-meta* -*print-readably* -*read-eval* -*source-path* -*unchecked-math* -*use-context-classloader* -*verbose-defrecords* -*warn-on-reflection* -->ArrayChunk -->Vec -->VecNode -->VecSeq --cache-protocol-fn --reset-methods -accessor -aclone -add-classpath -add-watch -agent -agent-error -agent-errors -aget -alength -alias -all-ns -alter -alter-meta! -alter-var-root -amap -ancestors -and -apply -areduce -array-map -as-> -aset -aset-boolean -aset-byte -aset-char -aset-double -aset-float -aset-int -aset-long -aset-short -assert -assoc -assoc! -assoc-in -associative? -atom -await -await-for -await1 -bases -bean -bigdec -bigint -biginteger -binding -bit-and -bit-and-not -bit-clear -bit-flip -bit-not -bit-or -bit-set -bit-shift-left -bit-shift-right -bit-test -bit-xor -boolean -boolean-array -booleans -bound-fn -bound-fn* -bound? -butlast -byte -byte-array -bytes -case -cast -char -char-array -char-escape-string -char-name-string -char? -chars -chunk -chunk-append -chunk-buffer -chunk-cons -chunk-first -chunk-next -chunk-rest -chunked-seq? -class -class? -clear-agent-errors -clojure-version -coll? -comment -commute -comp -comparator -compare -compare-and-set! -compile -complement -concat -cond -cond-> -cond->> -condp -conj -conj! -cons -constantly -construct-proxy -contains? -count -counted? -create-ns -create-struct -cycle -dec -dec' -decimal? -declare -default-data-readers -definline -definterface -defmacro -defmethod -defmulti -defn -defn- -defonce -defprotocol -defrecord -defstruct -deftype -delay -delay? -deliver -denominator -deref -derive -descendants -destructure -disj -disj! -dissoc -dissoc! -distinct -distinct? -doall -doc -dorun -doseq -dosync -dotimes -doto -double -double-array -doubles -drop -drop-last -drop-while -dtype -empty -empty? -ensure -enumeration-seq -error-handler -error-mode -eval -even? -every-pred -every? -ex-data -ex-info -extend -extend-class -extend-protocol -extend-type -extenders -extends? -false? -ffirst -file-seq -filter -filterv -find -find-doc -find-keyword -find-ns -find-protocol-impl -find-protocol-method -find-var -first -flatten -float -float-array -float? -floats -flush -fn -fn? -fnext -fnil -for -force -format -frequencies -future -future-call -future-cancel -future-cancelled? -future-done? -future? -gen-class -gen-interface -gensym -get -get-in -get-method -get-proxy-class -get-thread-bindings -get-validator -group-by -hash -hash-combine -hash-map -hash-set -identical? -identity -if-let -if-not -ifn? -import -in-ns -inc -inc' -init-proxy -instance? -int -int-array -integer? -interleave -intern -interpose -into -into-array -ints -io! -isa? -iterate -iterator-seq -juxt -keep -keep-indexed -key -keys -keyword -keyword? -last -lazy-cat -lazy-seq -let -letfn -line-seq -list -list* -list? -load -load-file -load-reader -load-string -loaded-libs -locking -long -long-array -longs -loop -macroexpand -macroexpand-1 -make-array -make-hierarchy -map -map-indexed -map? -mapcat -mapv -max -max-key -memfn -memoize -merge -merge-with -meta -method-sig -methods -min -min-key -mod -munge -name -namespace -namespace-munge -neg? -newline -next -nfirst -nil? -nnext -not -not-any? -not-empty -not-every? -not= -ns -ns-aliases -ns-imports -ns-interns -ns-map -ns-name -ns-publics -ns-refers -ns-resolve -ns-unalias -ns-unmap -nth -nthnext -nthrest -num -number? -numerator -object-array -odd? -or -parents -partial -partition -partition-all -partition-by -pcalls -peek -persistent! -pmap -pop -pop! -pop-thread-bindings -pos? -pr -pr-str -prefer-method -prefers -primitives-classnames -print -print-ctor -print-dup -print-method -print-namespace-doc -print-simple -print-str -printf -println -println-str -prn -prn-str -promise -proxy -proxy-call-with-super -proxy-mappings -proxy-name -proxy-super -push-thread-bindings -pvalues -quot -rand -rand-int -rand-nth -range -ratio? -rational? -rationalize -re-find -re-groups -re-matcher -re-matches -re-pattern -re-seq -read -read-line -read-string -realized? -reduce -reduce-kv -reduced -reduced? -reductions -ref -ref-history-count -ref-max-history -ref-min-history -ref-set -refer -refer-clojure -reify -release-pending-sends -rem -remove -remove-all-methods -remove-method -remove-ns -remove-watch -repeat -repeatedly -replace -replicate -require -reset! -reset-meta! -resolve -rest -restart-agent -resultset-seq -reverse -reversible? -rseq -rsubseq -satisfies? -second -select-keys -send -send-off -send-via -seq -seq? -seque -sequence -sequential? -set -set-agent-send-executor! -set-agent-send-off-executor! -set-error-handler! -set-error-mode! -set-validator! -set? -short -short-array -shorts -shuffle -shutdown-agents -slurp -some -some-> -some->> -some-fn -sort -sort-by -sorted-map -sorted-map-by -sorted-set -sorted-set-by -sorted? -special-form-anchor -special-symbol? -spit -split-at -split-with -str -stream? -string? -struct -struct-map -subs -subseq -subvec -supers -swap! -symbol -symbol? -sync -syntax-symbol-anchor -take -take-last -take-nth -take-while -test -the-ns -thread-bound? -time -to-array -to-array-2d -trampoline -transient -tree-seq -true? -type -unchecked-add -unchecked-add-int -unchecked-byte -unchecked-char -unchecked-dec -unchecked-dec-int -unchecked-divide -unchecked-divide-int -unchecked-double -unchecked-float -unchecked-inc -unchecked-inc-int -unchecked-int -unchecked-long -unchecked-multiply -unchecked-multiply-int -unchecked-negate -unchecked-negate-int -unchecked-remainder -unchecked-remainder-int -unchecked-short -unchecked-subtract -unchecked-subtract-int -underive -unquote -unquote-splicing -update-in -update-proxy -use -val -vals -var-get -var-set -var? -vary-meta -vec -vector -vector-of -vector? -when -when-first -when-let -when-not -while -with-bindings -with-bindings* -with-in-str -with-loading-context -with-local-vars -with-meta -with-open -with-out-str -with-precision -with-redefs -with-redefs-fn -xml-seq -zero? -zipmap diff --git a/elpa/auto-complete-20170125.245/dict/clojurescript-mode b/elpa/auto-complete-20170125.245/dict/clojurescript-mode deleted file mode 100644 index add64b38..00000000 --- a/elpa/auto-complete-20170125.245/dict/clojurescript-mode +++ /dev/null @@ -1,475 +0,0 @@ -*agent* -*clojure-version* -*command-line-args* -*compile-files* -*compile-path* -*err* -*file* -*flush-on-newline* -*in* -*ns* -*out* -*print-dup* -*print-length* -*print-level* -*print-meta* -*print-readably* -*read-eval* -*warn-on-reflection* -accessor -aclone -add-classpath -add-watch -agent -agent-error -agent-errors -aget -alength -alias -all-ns -alter -alter-meta! -alter-var-root -amap -ancestors -and -apply -areduce -array-map -aset -aset-boolean -aset-byte -aset-char -aset-double -aset-float -aset-int -aset-long -aset-short -assert -assoc -assoc! -assoc-in -associative? -atom -await -await-for -bases -bean -bigdec -bigint -binding -bit-and -bit-and-not -bit-clear -bit-flip -bit-not -bit-or -bit-set -bit-shift-left -bit-shift-right -bit-test -bit-xor -boolean -boolean-array -booleans -bound-fn -bound-fn* -butlast -byte -byte-array -bytes -case -cast -char -char-array -char-escape-string -char-name-string -char? -chars -class -class? -clear-agent-errors -clojure-version -coll? -comment -commute -comp -comparator -compare -compare-and-set! -compile -complement -concat -cond -condp -conj -conj! -cons -constantly -construct-proxy -contains? -count -counted? -create-ns -create-struct -cycle -dec -decimal? -declare -definline -defmacro -defmethod -defmulti -defn -defn- -defonce -defprotocol -defstruct -deftype -delay -delay? -deliver -deref -derive -descendants -disj -disj! -dissoc -dissoc! -distinct -distinct? -doall -doc -dorun -doseq -dosync -dotimes -doto -double -double-array -doubles -drop -drop-last -drop-while -dtype -empty -empty? -ensure -enumeration-seq -error-handler -error-mode -eval -even? -every? -extend -extend-class -extend-protocol -extend-type -extenders -extends? -false? -ffirst -file-seq -filter -find -find-doc -find-ns -find-var -first -float -float-array -float? -floats -flush -fn -fn? -fnext -for -force -format -future -future-call -future-cancel -future-cancelled? -future-done? -future? -gen-class -gen-interface -gensym -get -get-in -get-method -get-proxy-class -get-thread-bindings -get-validator -hash -hash-map -hash-set -identical? -identity -if-let -if-not -ifn? -import -in-ns -inc -init-proxy -instance? -int -int-array -integer? -interleave -intern -interpose -into -into-array -ints -io! -isa? -iterate -iterator-seq -juxt -key -keys -keyword -keyword? -last -lazy-cat -lazy-seq -let -letfn -line-seq -list -list* -list? -load -load-file -load-reader -load-string -loaded-libs -locking -long -long-array -longs -loop -macroexpand -macroexpand-1 -make-array -make-hierarchy -map -map? -mapcat -max -max-key -memfn -memoize -merge -merge-with -meta -methods -min -min-key -mod -name -namespace -neg? -newline -next -nfirst -nil? -nnext -not -not-any? -not-empty -not-every? -not= -ns -ns-aliases -ns-imports -ns-interns -ns-map -ns-name -ns-publics -ns-refers -ns-resolve -ns-unalias -ns-unmap -nth -nthnext -num -number? -object-array -odd? -or -parents -partial -partition -pcalls -peek -persistent! -pmap -pop -pop! -pop-thread-bindings -pos? -pr -pr-str -prefer-method -prefers -print -print-namespace-doc -print-str -printf -println -println-str -prn -prn-str -promise -proxy -proxy-mappings -proxy-super -push-thread-bindings -pvalues -quot -rand -rand-int -range -ratio? -rationalize -re-find -re-groups -re-matcher -re-matches -re-pattern -re-seq -read -read-line -read-string -reduce -ref -ref-history-count -ref-max-history -ref-min-history -ref-set -refer -refer-clojure -reify -release-pending-sends -rem -remove -remove-method -remove-ns -remove-watch -repeat -repeatedly -replace -replicate -require -reset! -reset-meta! -resolve -rest -restart-agent -resultset-seq -reverse -reversible? -rseq -rsubseq -satisfies? -second -select-keys -send -send-off -seq -seq? -seque -sequence -sequential? -set -set-error-handler! -set-error-mode! -set-validator! -set? -short -short-array -shorts -shutdown-agents -slurp -some -sort -sort-by -sorted-map -sorted-map-by -sorted-set -sorted-set-by -sorted? -special-form-anchor -special-symbol? -split-at -split-with -str -stream? -string? -struct -struct-map -subs -subseq -subvec -supers -swap! -symbol -symbol? -sync -syntax-symbol-anchor -take -take-last -take-nth -take-while -test -the-ns -time -to-array -to-array-2d -trampoline -transient -tree-seq -true? -type -unchecked-add -unchecked-dec -unchecked-divide -unchecked-inc -unchecked-multiply -unchecked-negate -unchecked-remainder -unchecked-subtract -underive -update-in -update-proxy -use -val -vals -var-get -var-set -var? -vary-meta -vec -vector -vector-of -vector? -when -when-first -when-let -when-not -while -with-bindings -with-bindings* -with-in-str -with-local-vars -with-meta -with-open -with-out-str -with-precision -xml-seq -zero? -zipmap diff --git a/elpa/auto-complete-20170125.245/dict/coq-mode b/elpa/auto-complete-20170125.245/dict/coq-mode deleted file mode 100644 index 219448fa..00000000 --- a/elpa/auto-complete-20170125.245/dict/coq-mode +++ /dev/null @@ -1,278 +0,0 @@ -# Generated by the following form. -# (loop for regexp in (append -# coq-solve-tactics -# coq-keywords -# coq-reserved -# coq-tactics -# coq-tacticals -# (list "Set" "Type" "Prop")) -# append (split-string regexp (regexp-quote "\\s-+")) into words -# finally (loop initially (goto-char (point-max)) -# for word in (delete-dups (sort words 'string<)) -# do (insert word) (newline))) - -Abort -About -Abstract -Add -Admit -Admitted -All -Arguments -AutoInline -Axiom -Bind -Canonical -Cd -Chapter -Check -Close -CoFixpoint -CoInductive -Coercion -Coercions -Comments -Conjecture -Constant -Constructors -Corollary -Declare -Defined -Definition -Delimit -Dependent -Depth -Derive -End -Eval -Export -Extern -Extract -Extraction -Fact -False -Field -File -Fixpoint -Focus -Function -Functional -Goal -Hint -Hypotheses -Hypothesis -Hyps -Identity -If -Immediate -Implicit -Import -Inductive -Infix -Inline -Inlined -Inspect -Inversion -Language -Lemma -Let -Library -Limit -LoadPath -Local -Locate -Ltac -ML -Module -Morphism -Next Obligation -NoInline -Notation -Notations -Obligation -Obligations -Off -On -Opaque -Open -Optimize -Parameter -Parameters -Path -Print -Printing -Program -Proof -Prop -Pwd -Qed -Rec -Record -Recursive -Remark -Remove -Require -Reserved -Reset -Resolve -Rewrite -Ring -Save -Scheme -Scope -Search -SearchAbout -SearchPattern -SearchRewrite -Section -Semi -Set -Setoid -Show -Solve -Sort -Strict -Structure -Synth -Tactic -Test -Theorem -Time -Transparent -True -Type -Undo -Unfocus -Unfold -Unset -Variable -Variables -Width -Wildcard -abstract -absurd -after -apply -as -assert -assumption -at -auto -autorewrite -beta -by -case -cbv -change -clear -clearbody -cofix -coinduction -compare -compute -congruence -constructor -contradiction -cut -cutrewrite -decide -decompose -delta -dependent -dest -destruct -discrR -discriminate -do -double -eapply -eauto -econstructor -eexists -eleft -elim -else -end -equality -esplit -exact -exists -fail -field -first -firstorder -fix -fold -forall -fourier -fun -functional -generalize -hnf -idtac -if -in -induction -info -injection -instantiate -into -intro -intros -intuition -inversion -inversion_clear -iota -lapply -lazy -left -let -linear -load -match -move -omega -pattern -pose -progress -prolog -quote -record -red -refine -reflexivity -rename -repeat -replace -return -rewrite -right -ring -set -setoid -setoid_replace -setoid_rewrite -simpl -simple -simplify_eq -solve -specialize -split -split_Rabs -split_Rmult -stepl -stepr -struct -subst -sum -symmetry -tauto -then -transitivity -trivial -try -unfold -until -using -with -zeta diff --git a/elpa/auto-complete-20170125.245/dict/css-mode b/elpa/auto-complete-20170125.245/dict/css-mode deleted file mode 100644 index f25e400d..00000000 --- a/elpa/auto-complete-20170125.245/dict/css-mode +++ /dev/null @@ -1,874 +0,0 @@ -!important -@font-face -@font-feature-values -@keyframes -ActiveBorder -ActiveCaption -Alpha -AppWorkspace -Background -Barn -BasicImage -Blinds -Blur -ButtonFace -ButtonHighlight -ButtonShadow -ButtonText -CaptionText -CheckerBoard -Chroma -Compositor -CradientWipe -DXImageTransform -DropShadow -Emboss -Engrave -Fade -FlipH -FlipV -Glow -Gray -GrayText -Highlight -HighlightText -Hz -ICMFilter -InactiveBorder -InactiveCaption -InactiveCaptionText -InfoBackground -InfoText -Inset -Invert -Iris -Light -MaskFilter -Matrix -Menu -MenuText -Microsoft -MotionBlur -Pixelate -RadialWipe -RandomBars -RandomDissolve -RevealTrans -Scrollbar -Shadow -Slide -Spiral -Stretch -Strips -ThreeDDarkShadow -ThreeDFace -ThreeDHighlight -ThreeDLightShadow -ThreeDShadow -Wave -Wheel -Window -WindowFrame -WindowText -Xray -Zigzag -_azimuth -_background -_background-position-x -_background-position-y -_border -_bottom -_caption -_clear -_clip -_color -_content -_counter -_cue -_cursor -_direction -_display -_elevation -_empty -_filter -_filter:progid:DXImageTransform.Microsoft -_float -_font -_height -_ime -_ime-mode -_layout -_layout-flow -_layout-grid -_layout-grid-char -_layout-grid-line -_layout-grid-mode -_layout-grid-type -_left -_letter -_line -_line-break -_list -_margin -_orphans -_outline -_overflow -_overflow-x -_overflow-y -_padding -_page -_pause -_pitch -_play -_position -_quotes -_richness -_right -_ruby -_ruby-align -_ruby-overhang -_ruby-position -_scrollbar -_scrollbar-3dlight-color -_scrollbar-arrow-color -_scrollbar-base-color -_scrollbar-darkshadow-color -_scrollbar-face-color -_scrollbar-highlight-color -_scrollbar-track-color -_speak -_speech -_stress -_table -_text -_text-align-last -_text-autospace -_text-justify -_text-kashida-space -_text-overflow -_text-underline-position -_top -_unicode -_vertical -_visibility -_voice -_volume -_white -_widows -_width -_word -_word-break -_word-wrap -_writing -_writing-mode -_z -_zoom -above -active -adjust -after -aliceblue -align -align-content -align-items -align-self -always -animation -animation-delay -animation-direction -animation-duration -animation-fill-mode -animation-iteration-count -animation-name -animation-play-state -animation-timing-function -antiquewhite -aqua -aquamarine -armenian -arrow -attachment -auto -autospace -avoid -azimuth -azure -backface-visibility -background -background-attachment -background-clip -background-color -background-image -background-origin -background-position -background-repeat -background-size -bar -base -baseline -before -behind -beige -below -bidi -bidi-override -bisque -black -blanchedalmond -blink -block -blue -blueviolet -bold -bolder -border -border-bottom -border-bottom-color -border-bottom-left-radius -border-bottom-right-radius -border-bottom-style -border-bottom-width -border-collapse -border-color -border-image -border-image-outset -border-image-repeat -border-image-slice -border-image-source -border-image-width -border-left -border-left-color -border-left-style -border-left-width -border-radius -border-right -border-right-color -border-right-style -border-right-width -border-spacing -border-style -border-top -border-top-color -border-top-left-radius -border-top-right-radius -border-top-style -border-top-width -border-width -both -bottom -box -box-decoration-break -box-shadow -box-sizing -break -break-after -break-before -break-inside -brown -burlwood -cadetblue -capitalize -caps -caption -caption-side -cell -cells -center -center-left -center-right -char -chartreuse -chocolate -circle -cjk -cjk-ideographic -clear -clip -close -close-quote -cm -code -collapse -color -column -column-count -column-fill -column-gap -column-rule -column-rule-color -column-rule-style -column-rule-width -column-span -column-width -columns -compact -condensed -content -continuous -coral -cornflowerblue -cornsilk -counter -counter-increment -counter-reset -crimson -crop -cross -crosshair -cue -cue-after -cue-before -cursive -cursor -cyan -darkblue -darkcyan -darkgoldenrod -darkgray -darkgreen -darkkhaki -darkmagenta -darkolivegreen -darkorange -darkorchid -darkred -darksalmon -darkseagreen -darkshadow -darkslateblue -darkslategray -darkturquoise -darkviolet -dashed -decimal -decimal-leading-zero -decoration -deeppink -deepskyblue -default -deg -digits -dimgray -direction -disc -display -dodgerblue -dotted -double -during -e -e-resize -elevation -em -embed -empty -empty-cells -ex -expanded -extra -extra-condensed -extra-expanded -face -family -fantasy -far -far-left -far-right -fast -faster -filter -firebrick -first -first-child -first-letter -first-line -fixed -flex -flex-basis -flex-direction -flex-flow -flex-grow -flex-shrink -flex-wrap -float -floralwhite -flow -focus -font -font-family -font-feature-setting -font-kerning -font-language-override -font-size -font-size-adjust -font-stretch -font-style -font-synthesis -font-variant -font-variant-alternates -font-variant-caps -font-variant-east-asian -font-variant-ligatures -font-variant-numeric -font-variant-position -font-weight -footer -forestgreen -fuchsia -gainsboro -georgian -ghostwhite -gold -goldenrod -gray -greek -green -greenyellow -grid -groove -group -hanging-punctuation -header -hebrew -height -help -hidden -hide -high -higher -hiragana -hiragana-iroha -honeydew -hotpink -hover -hyphens -icon -ideographic -image -image-orientation -image-rendering -image-resolution -ime-mode -in -increment -indent -index -indianred -indigo -inherit -inline -inline-block -inline-table -inset -inside -iroha -italic -item -ivory -justify -justify-content -kHz -kashida -katakana -katakana-iroha -khaki -landscape -lang() -large -larger -last -latin -lavender -lavenderblush -lawngreen -layout -leading -left -left-side -leftwards -lenonchiffon -letter -letter-spacing -level -lightblue -lightcoral -lightcyan -lighter -lightgoldenrodyellow -lightgray -lightgreen -lightgrey -lightpink -lightsalmon -lightseagreen -lightskyblue -lightslategray -lightsteelblue -lightyellow -lime -limegreen -line -line-break -line-height -line-through -linen -link -list -list-item -list-style -list-style-image -list-style-position -list-style-type -loud -low -lower -lower-alpha -lower-greek -lower-latin -lower-roman -lowercase -ltr -magenta -margin -margin-bottom -margin-left -margin-right -margin-top -mark -mark-after -mark-before -marker -marker-offset -marks -maroon -marquee-direction -marquee-play-count -marquee-speed -marquee-style -mask -mask-type -max -max-height -max-width -medium -mediumaquamarine -mediumblue -mediumorchid -mediumpurple -mediumseagreen -mediumslateblue -mediumspringgreen -mediumturquoise -mediumvioletred -menu -message -message-box -middle -midnightblue -min -min-height -min-width -mintcream -mistyrose -mix -mm -moccasin -mode -monospace -move -ms -n -n-resize -naby -narrower -nav-down -nav-index -nav-left -nav-right -nav-up -navajowhite -ne -ne-resize -no -no-close-quote -no-open-quote -no-repeat -none -normal -nowrap -number -numeral -nw -nw-resize -object-fit -object-position -oblique -offset -oldlace -olive -olivedrab -once -opacity -open -open-quote -orange -orangered -orchid -order -orphans -out -outline -outline-color -outline-offset -outline-style -outline-width -outset -outside -overflow -overflow-wrap -overflow-x -overflow-y -overhang -overline -override -padding -padding-bottom -padding-left -padding-right -padding-top -page -page-break-after -page-break-before -page-break-inside -palegoldenrod -palegreen -paleturquoise -palevioletred -papayawhip -pause -pause-after -pause-before -pc -peachpuff -perspective -perspective-origin -peru -phonemes -pink -pitch -pitch-range -play -play-during -plum -pointer -portrait -position -powderblue -pre -pre-line -pre-wrap -progid -progress -pt -punctuation -purple -px -quote -quotes -rad -range -rate -red -relative -repeat -repeat-x -repeat-y -reset -resize -rest -rest-after -rest-before -richness -ridge -right -right-side -rightwards -roman -rosybrown -row -royalblue -rtl -run -run-in -s -s-resize -saddlebrown -salmon -sandybrown -sans-serif -scroll -se -se-resize -seagreen -seashell -semi -semi-condensed -semi-expanded -separate -serif -shadow -show -side -sienna -silent -silever -silver -size -skyblue -slateblue -slategray -slow -slower -small -small-caps -small-caption -smaller -snow -soft -solid -space -spacing -speak -speak-header -speak-numeral -speak-punctuation -specific -specific-voice -speech -speech-rate -spell -spell-out -springgreen -square -static -status -status-bar -steelblue -stress -stretch -style -sub -super -sw -sw-resize -tab-size -table -table-caption -table-cell -table-column -table-column-group -table-footer-group -table-header-group -table-layout -table-row -table-row-group -tan -teal -text -text-align -text-align-last -text-bottom -text-combine-horizontal -text-decoration -text-decoration-color -text-decoration-line -text-decoration-style -text-indent -text-justify -text-orientation -text-overflow -text-shadow -text-top -text-transform -text-underline-position -thick -thin -thistle -through -tomato -top -track -transform -transform-origin -transform-style -transition -transition-delay -transition-duration -transition-property -transition-timing-function -transparent -turquoise -type -ultra -ultra-condensed -ultra-expanded -underline -unicode -unicode-bidi -upper -upper-alpha -upper-latin -upper-roman -uppercase -variant -vertical -vertical-align -violet -visibility -visible -visited -voice -voice-balance -voice-duration -voice-family -voice-pitch -voice-pitch-range -voice-rate -voice-stress -voice-volume -volume -w -w-resize -wait -weight -wheat -white -white-space -whitesmoke -wider -widows -width -word -word-break -word-spacing -word-wrap -wrap -writing-mode -x -x-fast -x-high -x-large -x-loud -x-low -x-slow -x-small -x-soft -xx -xx-large -xx-small -y -yellow -yellowgreen -z -z-index -zero diff --git a/elpa/auto-complete-20170125.245/dict/erlang-mode b/elpa/auto-complete-20170125.245/dict/erlang-mode deleted file mode 100644 index 960f2b83..00000000 --- a/elpa/auto-complete-20170125.245/dict/erlang-mode +++ /dev/null @@ -1,216 +0,0 @@ -after -begin -catch -case -cond -end -fun -if -let -of -query -receive -try -when -and -andalso -band -bnot -bor -bsl -bsr -bxor -div -not -or -orelse -rem -xor -is_atom -is_binary -is_bitstring -is_boolean -is_float -is_function -is_integer -is_list -is_number -is_pid -is_port -is_record -is_reference -is_tuple -atom -binary -bitstring -boolean -function -integer -list -number -pid -port -record -reference -tuple -abs -adler32 -adler32_combine -alive -apply -atom_to_binary -atom_to_list -binary_to_atom -binary_to_existing_atom -binary_to_list -binary_to_term -bit_size -bitstring_to_list -byte_size -check_process_code -contact_binary -crc32 -crc32_combine -date -decode_packet -delete_module -disconnect_node -element -erase -exit -float -float_to_list -garbage_collect -get -get_keys -group_leader -halt -hd -integer_to_list -internal_bif -iolist_size -iolist_to_binary -is_alive -is_atom -is_binary -is_bitstring -is_boolean -is_float -is_function -is_integer -is_list -is_number -is_pid -is_port -is_process_alive -is_record -is_reference -is_tuple -length -link -list_to_atom -list_to_binary -list_to_bitstring -list_to_existing_atom -list_to_float -list_to_integer -list_to_pid -list_to_tuple -load_module -make_ref -module_loaded -monitor_node -node -node_link -node_unlink -nodes -notalive -now -open_port -pid_to_list -port_close -port_command -port_connect -port_control -pre_loaded -process_flag -process_info -processes -purge_module -put -register -registered -round -self -setelement -size -spawn -spawn_link -spawn_monitor -spawn_opt -split_binary -statistics -term_to_binary -time -throw -tl -trunc -tuple_size -tuple_to_list -unlink -unregister -whereis -append_element -bump_reductions -cancel_timer -demonitor -display -fun_info -fun_to_list -function_exported -get_cookie -get_stacktrace -hash -integer_to_list -is_builtin -list_to_integer -loaded -localtime -localtime_to_universaltime -make_tuple -max -md5 -md5_final -md5_init -md5_update -memory -min -monitor -monitor_node -phash -phash2 -port_call -port_info -port_to_list -ports -process_display -read_timer -ref_to_list -resume_process -send -send_after -send_nosuspend -set_cookie -start_timer -suspend_process -system_flag -system_info -system_monitor -system_profile -trace -trace_delivered -trace_info -trace_pattern -universaltime -universaltime_to_localtime -yield diff --git a/elpa/auto-complete-20170125.245/dict/ess-julia-mode b/elpa/auto-complete-20170125.245/dict/ess-julia-mode deleted file mode 100644 index 3a4ad7d5..00000000 --- a/elpa/auto-complete-20170125.245/dict/ess-julia-mode +++ /dev/null @@ -1,37 +0,0 @@ -abstract -break -case -catch -const -continue -do -else -elseif -end -eval -export -false -finally -for -function -global -if -ifelse -immutable -import -importall -in -let -macro -module -otherwise -quote -return -switch -throw -true -try -type -typealias -using -while diff --git a/elpa/auto-complete-20170125.245/dict/go-mode b/elpa/auto-complete-20170125.245/dict/go-mode deleted file mode 100644 index b943a164..00000000 --- a/elpa/auto-complete-20170125.245/dict/go-mode +++ /dev/null @@ -1,25 +0,0 @@ -break -case -chan -const -continue -default -defer -else -fallthrough -for -func -go -goto -if -import -interface -map -package -range -return -select -struct -switch -type -var diff --git a/elpa/auto-complete-20170125.245/dict/haskell-mode b/elpa/auto-complete-20170125.245/dict/haskell-mode deleted file mode 100644 index ac1bd2a6..00000000 --- a/elpa/auto-complete-20170125.245/dict/haskell-mode +++ /dev/null @@ -1,679 +0,0 @@ -Arrows -BangPatterns -Bool -Bounded -CPP -Char -Complex -ConstrainedClassMethods -Control.Applicative -Control.Arrow -Control.Category -Control.Concurrent -Control.Concurrent.MVar -Control.Concurrent.QSem -Control.Concurrent.QSemN -Control.Concurrent.STM -Control.Concurrent.STM.TArray -Control.Concurrent.STM.TChan -Control.Concurrent.STM.TMVar -Control.Concurrent.STM.TVar -Control.Concurrent.SampleVar -Control.Exception -Control.Exception.Base -Control.Monad -Control.Monad.Cont -Control.Monad.Cont.Class -Control.Monad.Error -Control.Monad.Error.Class -Control.Monad.Fix -Control.Monad.Identity -Control.Monad.Instances -Control.Monad.List -Control.Monad.RWS -Control.Monad.RWS.Class -Control.Monad.RWS.Lazy -Control.Monad.RWS.Strict -Control.Monad.Reader -Control.Monad.Reader.Class -Control.Monad.ST -Control.Monad.ST.Lazy -Control.Monad.ST.Strict -Control.Monad.STM -Control.Monad.State -Control.Monad.State.Class -Control.Monad.State.Lazy -Control.Monad.State.Strict -Control.Monad.Trans -Control.Monad.Writer -Control.Monad.Writer.Class -Control.Monad.Writer.Lazy -Control.Monad.Writer.Strict -Control.OldException -Control.Parallel -Control.Parallel.Strategies -DEPRECATED -Data.Array -Data.Array.Diff -Data.Array.IArray -Data.Array.IO -Data.Array.IO.Internals -Data.Array.MArray -Data.Array.Paralell -Data.Array.Paralell.Arr -Data.Array.Paralell.Base -Data.Array.Paralell.Int -Data.Array.Paralell.Lifted -Data.Array.Paralell.PArray -Data.Array.Paralell.Prelude -Data.Array.Paralell.Prelude.Double -Data.Array.Paralell.Stream -Data.Array.Paralell.Unlifted -Data.Array.Paralell.Unlifted.Distributed -Data.Array.Paralell.Unlifted.Paralell -Data.Array.Paralell.Unlifted.Sqeuential -Data.Array.Paralell.Word8 -Data.Array.ST -Data.Array.Storable -Data.Array.Unboxed -Data.Bits -Data.Bool -Data.ByteString -Data.ByteString.Char8 -Data.ByteString.Fusion -Data.ByteString.Internal -Data.ByteString.Lazy -Data.ByteString.Lazy.Char8 -Data.ByteString.Lazy.Fusion -Data.ByteString.Lazy.Internal -Data.ByteString.Unsafe -Data.Char -Data.Complex -Data.Data -Data.Dynamic -Data.Either -Data.Eq -Data.Fixed -Data.Foldable -Data.Function -Data.Generics -Data.Generics.Aliases -Data.Generics.Basics -Data.Generics.Instances -Data.Generics.Schemes -Data.Generics.Text -Data.Generics.Twins -Data.Graph -Data.HashTable -Data.IORef -Data.Int -Data.IntMap -Data.IntSet -Data.Ix -Data.List -Data.Map -Data.Maybe -Data.Monoid -Data.Ord -Data.Ratio -Data.STRef -Data.STRef.Lazy -Data.STRef.Strict -Data.Sequence -Data.Set -Data.String -Data.Time -Data.Time.Calendar -Data.Time.Calendar.Easter -Data.Time.Calendar.Julian -Data.Time.Calendar.MonthDay -Data.Time.Calendar.OrdinalDate -Data.Time.Calendar.WeekDate -Data.Time.Clock -Data.Time.Clock.POSIX -Data.Time.Clock.TAI -Data.Time.Format -Data.Time.LocalTime -Data.Traversable -Data.Tree -Data.Tuple -Data.Typeable -Data.Unique -Data.Version -Data.Word -Debug.Trace -DeriveDataTypeable -DisambiguateRecordFields -Distribution.Compat.ReadP -Distribution.Compiler -Distribution.InstalledPackageInfo -Distribution.License -Distribution.Make -Distribution.ModuleName -Distribution.Package -Distribution.PackageDescription -Distribution.PackageDescription.Check -Distribution.PackageDescription.Configuration -Distribution.PackageDescription.Parse -Distribution.ParseUtils -Distribution.ReadE -Distribution.Simple -Distribution.Simple.Build -Distribution.Simple.Build.Macros -Distribution.Simple.Build.PathsModule -Distribution.Simple.BuildPaths -Distribution.Simple.Command -Distribution.Simple.Compiler -Distribution.Simple.Configure -Distribution.Simple.GHC -Distribution.Simple.Haddock -Distribution.Simple.Hugs -Distribution.Simple.Install -Distribution.Simple.InstallDirs -Distribution.Simple.JHC -Distribution.Simple.LocalBuildInfo -Distribution.Simple.NHC -Distribution.Simple.PackageIndex -Distribution.Simple.PreProcess -Distribution.Simple.PreProcess.Unlit -Distribution.Simple.Program -Distribution.Simple.Register -Distribution.Simple.Setup -Distribution.Simple.SrcDist -Distribution.Simple.UserHooks -Distribution.Simple.Utils -Distribution.System -Distribution.Text -Distribution.Verbosity -Distribution.Version -Double -EQ -Either -EmptyDataDecls -Enum -Eq -ExistentialQuantification -ExtendedDefaultRules -False -FilePath -FlexibleContexts -FlexibleInstances -Float -Floating -Foreign -Foreign.C -Foreign.C.Error -Foreign.C.String -Foreign.C.Types -Foreign.Concurrent -Foreign.ForeignPtr -Foreign.Marshal -Foreign.Marshal.Alloc -Foreign.Marshal.Array -Foreign.Marshal.Error -Foreign.Marshal.Pool -Foreign.Marshal.Utils -Foreign.Ptr -Foreign.StablePtr -Foreign.Storable -ForeignFunctionInterface -Fractional -FunctionnalDependencies -Functor -GADTs -GHC.Arr -GHC.Bool -GHC.Conc -GHC.ConsoleHandler -GHC.Desugar -GHC.Environment -GHC.Err -GHC.Exts -GHC.Generics -GHC.Handle -GHC.Ordering -GHC.PArr -GHC.Prim -GHC.PrimopWrappers -GHC.Tuple -GHC.Types -GHC.Unicode -GHC.Unit -GT -GeneralizedNewtypeDeriving -Generics -INCLUDE -INLINE -IO -IOError -IOException -ImplicitParams -ImplicitPrelude -ImpredicativeTypes -IncoherentInstances -Int -Integer -Integral -Just -KindSignatures -LANGUAGE -LINE -LT -Language.Haskell.Extension -Language.Haskell.Lexer -Language.Haskell.ParseMonad -Language.Haskell.ParseUtils -Language.Haskell.Parser -Language.Haskell.Pretty -Language.Haskell.Syntax -Language.Haskell.TH -Language.Haskell.TH.Lib -Language.Haskell.TH.Ppr -Language.Haskell.TH.PprLib -Language.Haskell.TH.Quote -Language.Haskell.TH.Syntax -Left -LiberalTypeSynonyms -MagicHash -Maybe -Monad -MonoPatBinds -MonomorphismRestriction -MultiParamTypeClasses -NOINLINE -NamedFieldPuns -Network -Network.BSD -Network.Socket -Network.URI -NewQualifiedOperators -NoArrows -NoBangPatterns -NoCPP -NoConstrainedClassMethods -NoDeriveDataTypeable -NoDisambiguateRecordFields -NoEmptyDataDecls -NoExistentialQuantification -NoExtendedDefaultRules -NoFlexibleContexts -NoFlexibleInstances -NoForeignFunctionInterface -NoFunctionnalDependencies -NoGADTs -NoGeneralizedNewtypeDeriving -NoGenerics -NoImplicitParams -NoImplicitPrelude -NoImpredicativeTypes -NoIncoherentInstances -NoKindSignatures -NoLiberalTypeSynonyms -NoMagicHash -NoMonoPatBinds -NoMonomorphismRestriction -NoMultiParamTypeClasses -NoNamedFieldPuns -NoNewQualifiedOperators -NoOverlappingInstances -NoOverloadedStrings -NoPArr -NoPackageImports -NoParallelListComp -NoPatternGuards -NoPolymorphicComponents -NoQuasiQuotes -NoRank2Types -NoRankNTypes -NoRecordWildCards -NoRecursiveDo -NoRelaxedPolyRec -NoScopedTypeVariables -NoStandaloneDeriving -NoTemplateHaskell -NoTransformListComp -NoTypeFamilies -NoTypeOperators -NoTypeSynonymInstances -NoUnboxedTuples -NoUndecidableInstances -NoUnicodeSyntax -NoUnliftedFFITypes -NoViewPatterns -Nothing -Num -Numeric -OPTIONS_GHC -Ord -Ordering -OverlappingInstances -OverloadedStrings -PArr -PackageImports -ParallelListComp -PatternGuards -PolymorphicComponents -Prelude -QuasiQuotes -RULES -Rank2Types -RankNTypes -Ratio -Read -ReadS -Real -RealFloat -RealFrac -RecordWildCards -RecursiveDo -RelaxedPolyRec -Right -SOURCE -SPECIALIZE -ScopedTypeVariables -ShowS -StandaloneDeriving -String -System.CPUTime -System.Cmd -System.Console.Editline -System.Console.GetOpt -System.Console.Readline -System.Directory -System.Environment -System.Exit -System.FilePath -System.FilePath.Posix -System.FilePath.Windows -System.IO -System.IO.Error -System.IO.Unsafe -System.Info -System.Locale -System.Mem -System.Mem.StableName -System.Mem.Weak -System.Posix -System.Posix.Directory -System.Posix.DynamicLinker -System.Posix.DynamicLinker.Module -System.Posix.DynamicLinker.Prim -System.Posix.Env -System.Posix.Error -System.Posix.Files -System.Posix.IO -System.Posix.Process -System.Posix.Process.Internals -System.Posix.Resource -System.Posix.Semaphore -System.Posix.SharedMem -System.Posix.Signals -System.Posix.Signals.Exts -System.Posix.Temp -System.Posix.Terminal -System.Posix.Time -System.Posix.Types -System.Posix.Unistd -System.Posix.User -System.Process -System.Random -System.Time -System.Timeout -TemplateHaskell -Test.HUnit -Test.HUnit.Base -Test.HUnit.Lang -Test.HUnit.Terminal -Test.HUnit.Text -Test.QuickCheck -Test.QuickCheck.Batch -Test.QuickCheck.Poly -Test.QuickCheck.Utils -Text.Html -Text.Html.BlockTable -Text.ParserCombinators.Parsec -Text.ParserCombinators.Parsec.Char -Text.ParserCombinators.Parsec.Combinator -Text.ParserCombinators.Parsec.Error -Text.ParserCombinators.Parsec.Expr -Text.ParserCombinators.Parsec.Language -Text.ParserCombinators.Parsec.Perm -Text.ParserCombinators.Parsec.Pos -Text.ParserCombinators.Parsec.Prim -Text.ParserCombinators.Parsec.Token -Text.ParserCombinators.ReadP -Text.ParserCombinators.ReadPrec -Text.PrettyPrint -Text.PrettyPrint.HughesPJ -Text.Printf -Text.Read -Text.Read.Lex -Text.Regex.Base -Text.Regex.Base.Context -Text.Regex.Base.Impl -Text.Regex.Base.RegexLike -Text.Regex.Posix -Text.Regex.Posix.ByteString -Text.Regex.Posix.String -Text.Regex.Posix.Wrap -Text.Show -Text.Show.Functions -Text.XHtml -Text.XHtml.Debug -Text.XHtml.Frameset -Text.XHtml.Strict -Text.XHtml.Table -Text.XHtml.Transitional -Trace.Hpc.Mix -Trace.Hpc.Reflect -Trace.Hpc.Tix -Trace.Hpc.Util -TransformListComp -True -TypeFamilies -TypeOperators -TypeSynonymInstances -UNPACK -UnboxedTuples -UndecidableInstances -UnicodeSyntax -UnliftedFFITypes -Unsafe.Coerce -ViewPatterns -WARNING -abs -acos -acosh -all -and -any -appendFile -as -asTypeOf -asin -asinh -atan -atan2 -atanh -break -case -catch -ceiling -class -compare -concat -concatMap -const -cos -cosh -curry -cycle -data -decodeFloat -default -deriving -div -divMod -do -drop -dropWhile -either -elem -else -encodeFloat -enumFrom -enumFromThen -enumFromThenTo -enumFromTo -error -exp -exponent -fail -filter -flip -floatDigits -floatRadix -floatRange -floor -fmap -fold -fold1 -foldr -foldr1 -fromEnum -fromInteger -fromIntegral -fromRational -fst -gcd -getChar -getContents -getLine -head -hiding -id -if -import -in -infix -infixl -infixr -init -instance -intract -ioError -isDenormalized -isIEEE -isInfinite -isNan -isNegativeZero -iterate -last -lcm -length -let -lex -lines -log -logBase -lookup -map -mapM -mapM_ -max -maxBound -maximum -maybe -min -minBound -minimum -mod -module -negate -newtype -not -notElem -null -odd -of -or -otherwise -pi -pred -print -product -properFraction -putChar -putStr -putStrLn -qualified -quot -quotRem -read -readFile -readIO -readList -readLn -readParen -reads -readsPrec -realtoFrac -recip -rem -repeat -replicate -return -reverse -round -scaleFloat -scanl -scanl1 -scanr -scanr1 -seq -sequence -sequence_ -show -showChar -showList -showParen -showString -shows -showsPrec -significand -signum -sin -sinh -snd -span -splitAt -sqrt -subtract -succ -sum -tail -take -takeWhile -tan -tanh -then -toEnum -toInteger -toRational -truncate -type -uncurry -undefined -unlines -until -unwords -unzip -unzip3 -userError -where -words -writeFile -zip -zip3 -zipWith -zipWith3 diff --git a/elpa/auto-complete-20170125.245/dict/java-mode b/elpa/auto-complete-20170125.245/dict/java-mode deleted file mode 100644 index 4a29d4cf..00000000 --- a/elpa/auto-complete-20170125.245/dict/java-mode +++ /dev/null @@ -1,53 +0,0 @@ -abstract -assert -boolean -break -byte -case -catch -char -class -const -continue -default -do -double -else -enum -extends -final -finally -float -for -goto -if -implements -import -instanceof -int -interface -long -native -new -package -private -protected -public -return -short -static -strictfp -super -switch -synchronized -this -throw -throws -transient -try -void -volatile -while -@Override -@Deprecated -@SuppressWarnings diff --git a/elpa/auto-complete-20170125.245/dict/js-mode b/elpa/auto-complete-20170125.245/dict/js-mode deleted file mode 100644 index 3d83f843..00000000 --- a/elpa/auto-complete-20170125.245/dict/js-mode +++ /dev/null @@ -1,148 +0,0 @@ -Anchor -Area -Array -Boolean -Button -Checkbox -Date -Document -Element -FileUpload -Form -Frame -Function -Hidden -History -Image -Infinity -JavaArray -JavaClass -JavaObject -JavaPackage -Link -Location -Math -MimeType -NaN -Navigator -Number -Object -Option -Packages -Password -Plugin -Radio -RegExp -Reset -Select -String -Submit -Text -Textarea -Window -alert -arguments -assign -blur -break -callee -caller -captureEvents -case -clearInterval -clearTimeout -close -closed -comment -confirm -constructor -continue -default -defaultStatus -delete -do -document -else -escape -eval -export -find -focus -for -frames -function -getClass -history -home -if -import -in -innerHeight -innerWidth -isFinite -isNan -java -label -length -location -locationbar -menubar -moveBy -moveTo -name -navigate -navigator -netscape -new -onBlur -onError -onFocus -onLoad -onUnload -open -opener -outerHeight -outerWidth -pageXoffset -pageYoffset -parent -parseFloat -parseInt -personalbar -print -prompt -prototype -ref -releaseEvents -resizeBy -resizeTo -return -routeEvent -scroll -scrollBy -scrollTo -scrollbars -self -setInterval -setTimeout -status -statusbar -stop -sun -switch -taint -this -toString -toolbar -top -typeof -unescape -untaint -unwatch -valueOf -var -void -watch -while -window -with diff --git a/elpa/auto-complete-20170125.245/dict/julia-mode b/elpa/auto-complete-20170125.245/dict/julia-mode deleted file mode 100644 index 3a4ad7d5..00000000 --- a/elpa/auto-complete-20170125.245/dict/julia-mode +++ /dev/null @@ -1,37 +0,0 @@ -abstract -break -case -catch -const -continue -do -else -elseif -end -eval -export -false -finally -for -function -global -if -ifelse -immutable -import -importall -in -let -macro -module -otherwise -quote -return -switch -throw -true -try -type -typealias -using -while diff --git a/elpa/auto-complete-20170125.245/dict/lua-mode b/elpa/auto-complete-20170125.245/dict/lua-mode deleted file mode 100644 index d0de6a4d..00000000 --- a/elpa/auto-complete-20170125.245/dict/lua-mode +++ /dev/null @@ -1,21 +0,0 @@ -and -break -do -else -elseif -end -false -for -function -if -in -local -nil -not -or -repeat -return -then -true -until -while diff --git a/elpa/auto-complete-20170125.245/dict/nim-mode b/elpa/auto-complete-20170125.245/dict/nim-mode deleted file mode 100644 index 393bf1ad..00000000 --- a/elpa/auto-complete-20170125.245/dict/nim-mode +++ /dev/null @@ -1,70 +0,0 @@ -addr -and -as -asm -atomic -bind -block -break -case -cast -concept -const -continue -converter -defer -discard -distinct -div -do -elif -else -end -enum -except -export -finally -for -from -func -generic -if -import -in -include -interface -is -isnot -iterator -let -macro -method -mixin -mod -nil -not -notin -object -of -or -out -proc -ptr -raise -ref -return -shl -shr -static -template -try -tuple -type -using -var -when -while -with -without -xor -yield diff --git a/elpa/auto-complete-20170125.245/dict/objc-mode b/elpa/auto-complete-20170125.245/dict/objc-mode deleted file mode 100644 index b504d8b9..00000000 --- a/elpa/auto-complete-20170125.245/dict/objc-mode +++ /dev/null @@ -1,161 +0,0 @@ -auto -break -case -char -const -continue -default -do -double -else -enum -extern -float -for -goto -if -inline -int -long -register -restrict -return -short -signed -sizeof -static -struct -switch -typedef -union -unsigned -void -volatile -while -_Alignas -_Alignof -_Atomic -_Bool -_Complex -_Generic -_Imaginary -_Noreturn -_Static_assert -_Thread_local -alignas -alignof -atomic_ -bool -complex -imaginary -noreturn -static_assert -thread_local -#if -#elif -#else -#endif -defined -#ifdef -#ifndef -#define -#undef -#include -#line -#error -#pragma -_Pragma -asm -fortran -#import -self -_cmd -instancetype -__bridge -__bridge_transfer -__bridge_retained -__bridge_retain -@not_keyword -@class -@compatibility_alias -@defs -@encode -@end -@implementation -@interface -@private -@protected -@protocol -@public -@selector -@throw -@try -@catch -@finally -@synchronized -@autoreleasepool -@property -@package -@required -@optional -@synthesize -@dynamic -@import -@available -__attribute__((visibility("default"))) -__attribute__((visibility("hidden"))) -__attribute__((deprecated)) -__attribute__((unavailable)) -__attribute__((objc_exception)) -__attribute__((objc_root_class)) -__covariant -__contravariant -__kindof -getter= -setter= -readonly -readwrite -assign -retain -copy -nonatomic -atomic -strong -weak -unsafe_unretained -nonnull -nullable -null_unspecified -null_resettable -class -__attribute__((deprecated)) -in -out -inout -oneway -bycopy -byref -nonnull -nullable -null_unspecified -__attribute__((unused)) -super -true -false -__objc_yes -__objc_no -Class -id -SEL -IMP -BOOL -STR -NSInteger -NSUInteger -YES -NO -Nil -nil -__strong -__unsafe_unretained -__autoreleasing diff --git a/elpa/auto-complete-20170125.245/dict/octave-mode b/elpa/auto-complete-20170125.245/dict/octave-mode deleted file mode 100644 index 77c4ea16..00000000 --- a/elpa/auto-complete-20170125.245/dict/octave-mode +++ /dev/null @@ -1,46 +0,0 @@ -# GNU Octave, and probably proprietary MATLAB -# https://www.gnu.org/software/octave/doc/interpreter/Keywords.html - -__FILE__ -__LINE__ -break -case -catch -classdef -continue -do -else -elseif -end -end_try_catch -end_unwind_protect -endclassdef -endenumeration -endevents -endfor -endfunction -endif -endmethods -endparfor -endproperties -endswitch -endwhile -enumeration -events -for -function -global -if -methods -otherwise -parfor -persistent -properties -return -static -switch -try -unitl -unwind_protect -unwind_protect_cleanup -while diff --git a/elpa/auto-complete-20170125.245/dict/php-mode b/elpa/auto-complete-20170125.245/dict/php-mode deleted file mode 100644 index 07f2e898..00000000 --- a/elpa/auto-complete-20170125.245/dict/php-mode +++ /dev/null @@ -1,6144 +0,0 @@ -abs -acos -acosh -addcslashes -addslashes -aggregate -aggregate_info -aggregate_methods -aggregate_methods_by_list -aggregate_methods_by_regexp -aggregate_properties -aggregate_properties_by_list -aggregate_properties_by_regexp -aggregation_info -amqpconnection -amqpexchange -amqpqueue -and -apache_child_terminate -apache_getenv -apache_get_modules -apache_get_version -apache_lookup_uri -apache_note -apache_request_headers -apache_reset_timeout -apache_response_headers -apache_setenv -apc_add -apc_bin_dump -apc_bin_dumpfile -apc_bin_load -apc_bin_loadfile -apc_cache_info -apc_cas -apc_clear_cache -apc_compile_file -apc_dec -apc_define_constants -apc_delete -apc_delete_file -apc_exists -apc_fetch -apc_inc -apciterator -apc_load_constants -apc_sma_info -apc_store -apd_breakpoint -apd_callstack -apd_clunk -apd_continue -apd_croak -apd_dump_function_table -apd_dump_persistent_resources -apd_dump_regular_resources -apd_echo -apd_get_active_symbols -apd_set_pprof_trace -apd_set_session -apd_set_session_trace -apd_set_session_trace_socket -appenditerator -array -arrayaccess -array_change_key_case -array_chunk -array_combine -array_count_values -array_diff -array_diff_assoc -array_diff_key -array_diff_uassoc -array_diff_ukey -array_fill -array_fill_keys -array_filter -array_flip -array_intersect -array_intersect_assoc -array_intersect_key -array_intersect_uassoc -array_intersect_ukey -arrayiterator -array_key_exists -array_keys -array_map -array_merge -array_merge_recursive -array_multisort -arrayobject -array_pad -array_pop -array_product -array_push -array_rand -array_reduce -array_replace -array_replace_recursive -array_reverse -array_search -array_shift -array_slice -array_splice -array_sum -array_udiff -array_udiff_assoc -array_udiff_uassoc -array_uintersect -array_uintersect_assoc -array_uintersect_uassoc -array_unique -array_unshift -array_values -array_walk -array_walk_recursive -arsort -as -asin -asinh -asort -assert -assert_options -atan -atan2 -atanh -badfunctioncallexception -badmethodcallexception -base64_decode -base64_encode -base_convert -basename -bbcode_add_element -bbcode_add_smiley -bbcode_create -bbcode_destroy -bbcode_parse -bbcode_set_arg_parser -bbcode_set_flags -bcadd -bccomp -bcdiv -bcmod -bcmul -bcompiler_load -bcompiler_load_exe -bcompiler_parse_class -bcompiler_read -bcompiler_write_class -bcompiler_write_constant -bcompiler_write_exe_footer -bcompiler_write_file -bcompiler_write_footer -bcompiler_write_function -bcompiler_write_functions_from_file -bcompiler_write_header -bcompiler_write_included_filename -bcpow -bcpowmod -bcscale -bcsqrt -bcsub -bin2hex -bindec -bindtextdomain -bind_textdomain_codeset -break -bson_decode -bson_encode -bumpValue -bzclose -bzcompress -bzdecompress -bzerrno -bzerror -bzerrstr -bzflush -bzopen -bzread -bzwrite -cachingiterator -cairo -cairoantialias -cairocontent -cairocontext -cairo_create -cairoexception -cairoextend -cairofillrule -cairofilter -cairofontface -cairo_font_face_get_type -cairo_font_face_status -cairofontoptions -cairo_font_options_create -cairo_font_options_equal -cairo_font_options_get_antialias -cairo_font_options_get_hint_metrics -cairo_font_options_get_hint_style -cairo_font_options_get_subpixel_order -cairo_font_options_hash -cairo_font_options_merge -cairo_font_options_set_antialias -cairo_font_options_set_hint_metrics -cairo_font_options_set_hint_style -cairo_font_options_set_subpixel_order -cairo_font_options_status -cairofontslant -cairofonttype -cairofontweight -cairoformat -cairo_format_stride_for_width -cairogradientpattern -cairohintmetrics -cairohintstyle -cairoimagesurface -cairo_image_surface_create -cairo_image_surface_create_for_data -cairo_image_surface_create_from_png -cairo_image_surface_get_data -cairo_image_surface_get_format -cairo_image_surface_get_height -cairo_image_surface_get_stride -cairo_image_surface_get_width -cairolineargradient -cairolinecap -cairolinejoin -cairomatrix -cairo_matrix_create_scale -cairo_matrix_create_translate -cairo_matrix_invert -cairo_matrix_multiply -cairo_matrix_rotate -cairo_matrix_transform_distance -cairo_matrix_transform_point -cairo_matrix_translate -cairooperator -cairopath -cairopattern -cairo_pattern_add_color_stop_rgb -cairo_pattern_add_color_stop_rgba -cairo_pattern_create_for_surface -cairo_pattern_create_linear -cairo_pattern_create_radial -cairo_pattern_create_rgb -cairo_pattern_create_rgba -cairo_pattern_get_color_stop_count -cairo_pattern_get_color_stop_rgba -cairo_pattern_get_extend -cairo_pattern_get_filter -cairo_pattern_get_linear_points -cairo_pattern_get_matrix -cairo_pattern_get_radial_circles -cairo_pattern_get_rgba -cairo_pattern_get_surface -cairo_pattern_get_type -cairo_pattern_set_extend -cairo_pattern_set_filter -cairo_pattern_set_matrix -cairo_pattern_status -cairopatterntype -cairopdfsurface -cairo_pdf_surface_create -cairo_pdf_surface_set_size -cairo_ps_get_levels -cairopslevel -cairo_ps_level_to_string -cairopssurface -cairo_ps_surface_create -cairo_ps_surface_dsc_begin_page_setup -cairo_ps_surface_dsc_begin_setup -cairo_ps_surface_dsc_comment -cairo_ps_surface_get_eps -cairo_ps_surface_restrict_to_level -cairo_ps_surface_set_eps -cairo_ps_surface_set_size -cairoradialgradient -cairoscaledfont -cairo_scaled_font_create -cairo_scaled_font_extents -cairo_scaled_font_get_ctm -cairo_scaled_font_get_font_face -cairo_scaled_font_get_font_matrix -cairo_scaled_font_get_font_options -cairo_scaled_font_get_scale_matrix -cairo_scaled_font_get_type -cairo_scaled_font_glyph_extents -cairo_scaled_font_status -cairo_scaled_font_text_extents -cairosolidpattern -cairostatus -cairosubpixelorder -cairosurface -cairo_surface_copy_page -cairo_surface_create_similar -cairo_surface_finish -cairo_surface_flush -cairo_surface_get_content -cairo_surface_get_device_offset -cairo_surface_get_font_options -cairo_surface_get_type -cairo_surface_mark_dirty -cairo_surface_mark_dirty_rectangle -cairosurfacepattern -cairo_surface_set_device_offset -cairo_surface_set_fallback_resolution -cairo_surface_show_page -cairo_surface_status -cairosurfacetype -cairo_surface_write_to_png -cairosvgsurface -cairo_svg_surface_create -cairo_svg_surface_restrict_to_version -cairosvgversion -cairo_svg_version_to_string -cairotoyfontface -calculhmac -calcul_hmac -cal_days_in_month -cal_from_jd -cal_info -__call() -callbackfilteriterator -__callStatic() -call_user_func -call_user_func_array -call_user_method -call_user_method_array -cal_to_jd -case -catch -ceil -cfunction -chdb -chdb_create -chdir -checkdate -checkdnsrr -chgrp -chmod -chop -chown -chr -chroot -chunk_split -class -__CLASS__ -class_alias -class_exists -class_implements -classkit_import -classkit_method_add -classkit_method_copy -classkit_method_redefine -classkit_method_remove -classkit_method_rename -class_parents -clearstatcache -clone -__clone() -closedir -closelog -collator -com -com_addref -com_create_guid -com_event_sink -com_get -com_get_active_object -com_invoke -com_isenum -com_load -com_load_typelib -com_message_pump -compact -com_print_typeinfo -com_propget -com_propput -com_propset -com_release -com_set -connection_aborted -connection_status -connection_timeout -const -constant -construct -__construct() -continue -convert_cyr_string -convert_uudecode -convert_uuencode -copy -cos -cosh -count -countable -count_chars -counter_bump -counter_bump_value -counter_create -counter_get -counter_get_meta -counter_get_named -counter_get_value -counter_reset -counter_reset_value -crack_check -crack_closedict -crack_getlastmessage -crack_opendict -crc32 -create_function -crypt -ctype_alnum -ctype_alpha -ctype_cntrl -ctype_digit -ctype_graph -ctype_lower -ctype_print -ctype_punct -ctype_space -ctype_upper -ctype_xdigit -cubrid_affected_rows -cubrid_bind -cubrid_client_encoding -cubrid_close -cubrid_close_prepare -cubrid_close_request -cubrid_col_get -cubrid_col_size -cubrid_column_names -cubrid_column_types -cubrid_commit -cubrid_connect -cubrid_connect_with_url -cubrid_current_oid -cubrid_data_seek -cubrid_db_name -cubrid_disconnect -cubrid_drop -cubrid_errno -cubrid_error -cubrid_error_code -cubrid_error_code_facility -cubrid_error_msg -cubrid_execute -cubrid_fetch -cubrid_fetch_array -cubrid_fetch_assoc -cubrid_fetch_field -cubrid_fetch_lengths -cubrid_fetch_object -cubrid_fetch_row -cubrid_field_flags -cubrid_field_len -cubrid_field_name -cubrid_field_seek -cubrid_field_table -cubrid_field_type -cubrid_free_result -cubrid_get -cubrid_get_autocommit -cubrid_get_charset -cubrid_get_class_name -cubrid_get_client_info -cubrid_get_db_parameter -cubrid_get_server_info -cubrid_insert_id -cubrid_is_instance -cubrid_list_dbs -cubrid_load_from_glo -cubrid_lob_close -cubrid_lob_export -cubrid_lob_get -cubrid_lob_send -cubrid_lob_size -cubrid_lock_read -cubrid_lock_write -cubrid_move_cursor -cubrid_new_glo -cubrid_next_result -cubrid_num_cols -cubrid_num_fields -cubrid_num_rows -cubrid_ping -cubrid_prepare -cubrid_put -cubrid_query -cubrid_real_escape_string -cubrid_result -cubrid_rollback -cubrid_save_to_glo -cubrid_schema -cubrid_send_glo -cubrid_seq_drop -cubrid_seq_insert -cubrid_seq_put -cubrid_set_add -cubrid_set_autocommit -cubrid_set_db_parameter -cubrid_set_drop -cubrid_unbuffered_query -cubrid_version -curl_close -curl_copy_handle -curl_errno -curl_error -curl_exec -curl_getinfo -curl_init -curl_multi_add_handle -curl_multi_close -curl_multi_exec -curl_multi_getcontent -curl_multi_info_read -curl_multi_init -curl_multi_remove_handle -curl_multi_select -curl_setopt -curl_setopt_array -curl_version -current -cyrus_authenticate -cyrus_bind -cyrus_close -cyrus_connect -cyrus_query -cyrus_unbind -date -date_add -date_create -date_create_from_format -date_date_set -date_default_timezone_get -date_default_timezone_set -date_diff -date_format -date_get_last_errors -dateinterval -date_interval_create_from_date_string -date_interval_format -date_isodate_set -date_modify -date_offset_get -date_parse -date_parse_from_format -dateperiod -date_sub -date_sun_info -date_sunrise -date_sunset -datetime -date_time_set -date_timestamp_get -date_timestamp_set -datetimezone -date_timezone_get -date_timezone_set -db2_autocommit -db2_bind_param -db2_client_info -db2_close -db2_column_privileges -db2_columns -db2_commit -db2_connect -db2_conn_error -db2_conn_errormsg -db2_cursor_type -db2_escape_string -db2_exec -db2_execute -db2_fetch_array -db2_fetch_assoc -db2_fetch_both -db2_fetch_object -db2_fetch_row -db2_field_display_size -db2_field_name -db2_field_num -db2_field_precision -db2_field_scale -db2_field_type -db2_field_width -db2_foreign_keys -db2_free_result -db2_free_stmt -db2_get_option -db2_last_insert_id -db2_lob_read -db2_next_result -db2_num_fields -db2_num_rows -db2_pclose -db2_pconnect -db2_prepare -db2_primary_keys -db2_procedure_columns -db2_procedures -db2_result -db2_rollback -db2_server_info -db2_set_option -db2_special_columns -db2_statistics -db2_stmt_error -db2_stmt_errormsg -db2_table_privileges -db2_tables -dba_close -dba_delete -dba_exists -dba_fetch -dba_firstkey -dba_handlers -dba_insert -dba_key_split -dba_list -dba_nextkey -dba_open -dba_optimize -dba_popen -dba_replace -dbase_add_record -dbase_close -dbase_create -dbase_delete_record -dbase_get_header_info -dbase_get_record -dbase_get_record_with_names -dbase_numfields -dbase_numrecords -dbase_open -dbase_pack -dbase_replace_record -dba_sync -dbplus_add -dbplus_aql -dbplus_chdir -dbplus_close -dbplus_curr -dbplus_errcode -dbplus_errno -dbplus_find -dbplus_first -dbplus_flush -dbplus_freealllocks -dbplus_freelock -dbplus_freerlocks -dbplus_getlock -dbplus_getunique -dbplus_info -dbplus_last -dbplus_lockrel -dbplus_next -dbplus_open -dbplus_prev -dbplus_rchperm -dbplus_rcreate -dbplus_rcrtexact -dbplus_rcrtlike -dbplus_resolve -dbplus_restorepos -dbplus_rkeys -dbplus_ropen -dbplus_rquery -dbplus_rrename -dbplus_rsecindex -dbplus_runlink -dbplus_rzap -dbplus_savepos -dbplus_setindex -dbplus_setindexbynumber -dbplus_sql -dbplus_tcl -dbplus_tremove -dbplus_undo -dbplus_undoprepare -dbplus_unlockrel -dbplus_unselect -dbplus_update -dbplus_xlockrel -dbplus_xunlockrel -dbx_close -dbx_compare -dbx_connect -dbx_error -dbx_escape_string -dbx_fetch_row -dbx_query -dbx_sort -dcgettext -dcngettext -deaggregate -debug_backtrace -debug_print_backtrace -debug_zval_dump -decbin -dechex -declare -decoct -default -define -defined -define_syslog_variables -deg2rad -delete -__destruct() -dgettext -die -dio_close -dio_fcntl -dio_open -dio_read -dio_seek -dio_stat -dio_tcsetattr -dio_truncate -dio_write -dir -__DIR__ -directoryiterator -dirname -diskfreespace -disk_free_space -disk_total_space -dl -dngettext -dns_check_record -dns_get_mx -dns_get_record -do -domainexception -domattr -domattribute_name -domattribute_set_value -domattribute_specified -domattribute_value -domcharacterdata -domcomment -domdocument -domdocument_add_root -domdocument_create_attribute -domdocument_create_cdata_section -domdocument_create_comment -domdocument_create_element -domdocument_create_element_ns -domdocument_create_entity_reference -domdocument_create_processing_instruction -domdocument_create_text_node -domdocument_doctype -domdocument_document_element -domdocument_dump_file -domdocument_dump_mem -domdocumentfragment -domdocument_get_element_by_id -domdocument_get_elements_by_tagname -domdocument_html_dump_mem -domdocumenttype -domdocumenttype_entities -domdocumenttype_internal_subset -domdocumenttype_name -domdocumenttype_notations -domdocumenttype_public_id -domdocumenttype_system_id -domdocument_xinclude -domelement -domelement_get_attribute -domelement_get_attribute_node -domelement_get_elements_by_tagname -domelement_has_attribute -domelement_remove_attribute -domelement_set_attribute -domelement_set_attribute_node -domelement_tagname -domentity -domentityreference -domexception -domimplementation -dom_import_simplexml -domnamednodemap -domnode -domnode_add_namespace -domnode_append_child -domnode_append_sibling -domnode_attributes -domnode_child_nodes -domnode_clone_node -domnode_dump_node -domnode_first_child -domnode_get_content -domnode_has_attributes -domnode_has_child_nodes -domnode_insert_before -domnode_is_blank_node -domnode_last_child -domnodelist -domnode_next_sibling -domnode_node_name -domnode_node_type -domnode_node_value -domnode_owner_document -domnode_parent_node -domnode_prefix -domnode_previous_sibling -domnode_remove_child -domnode_replace_child -domnode_replace_node -domnode_set_content -domnode_set_name -domnode_set_namespace -domnode_unlink_node -domnotation -domprocessinginstruction -domprocessinginstruction_data -domprocessinginstruction_target -domtext -domxml_new_doc -domxml_open_file -domxml_open_mem -domxml_version -domxml_xmltree -domxml_xslt_stylesheet -domxml_xslt_stylesheet_doc -domxml_xslt_stylesheet_file -domxml_xslt_version -domxpath -domxsltstylesheet_process -domxsltstylesheet_result_dump_file -domxsltstylesheet_result_dump_mem -dotnet -dotnet_load -doubleval -each -easter_date -easter_days -echo -else -elseif -empty -emptyiterator -enchant_broker_describe -enchant_broker_dict_exists -enchant_broker_free -enchant_broker_free_dict -enchant_broker_get_error -enchant_broker_init -enchant_broker_list_dicts -enchant_broker_request_dict -enchant_broker_request_pwl_dict -enchant_broker_set_ordering -enchant_dict_add_to_personal -enchant_dict_add_to_session -enchant_dict_check -enchant_dict_describe -enchant_dict_get_error -enchant_dict_is_in_session -enchant_dict_quick_check -enchant_dict_store_replacement -enchant_dict_suggest -end -enddeclare -endfor -endforeach -endif -endswitch -endwhile -ereg -eregi -eregi_replace -ereg_replace -errorexception -error_get_last -error_log -error_reporting -escapeshellarg -escapeshellcmd -eval -event_add -event_base_free -event_base_loop -event_base_loopbreak -event_base_loopexit -event_base_new -event_base_priority_init -event_base_set -event_buffer_base_set -event_buffer_disable -event_buffer_enable -event_buffer_fd_set -event_buffer_free -event_buffer_new -event_buffer_priority_set -event_buffer_read -event_buffer_set_callback -event_buffer_timeout_set -event_buffer_watermark_set -event_buffer_write -event_del -event_free -event_new -event_set -exception -exec -exif_imagetype -exif_read_data -exif_tagname -exif_thumbnail -exit -exp -expect_expectl -expect_popen -explode -expm1 -export -extends -extension_loaded -extract -ezmlm_hash -fam_cancel_monitor -fam_close -fam_monitor_collection -fam_monitor_directory -fam_monitor_file -fam_next_event -fam_open -fam_pending -fam_resume_monitor -fam_suspend_monitor -fbsql_affected_rows -fbsql_autocommit -fbsql_blob_size -fbsql_change_user -fbsql_clob_size -fbsql_close -fbsql_commit -fbsql_connect -fbsql_create_blob -fbsql_create_clob -fbsql_create_db -fbsql_database -fbsql_database_password -fbsql_data_seek -fbsql_db_query -fbsql_db_status -fbsql_drop_db -fbsql_errno -fbsql_error -fbsql_fetch_array -fbsql_fetch_assoc -fbsql_fetch_field -fbsql_fetch_lengths -fbsql_fetch_object -fbsql_fetch_row -fbsql_field_flags -fbsql_field_len -fbsql_field_name -fbsql_field_seek -fbsql_field_table -fbsql_field_type -fbsql_free_result -fbsql_get_autostart_info -fbsql_hostname -fbsql_insert_id -fbsql_list_dbs -fbsql_list_fields -fbsql_list_tables -fbsql_next_result -fbsql_num_fields -fbsql_num_rows -fbsql_password -fbsql_pconnect -fbsql_query -fbsql_read_blob -fbsql_read_clob -fbsql_result -fbsql_rollback -fbsql_rows_fetched -fbsql_select_db -fbsql_set_characterset -fbsql_set_lob_mode -fbsql_set_password -fbsql_set_transaction -fbsql_start_db -fbsql_stop_db -fbsql_tablename -fbsql_table_name -fbsql_username -fbsql_warnings -fclose -fdf_add_doc_javascript -fdf_add_template -fdf_close -fdf_create -fdf_enum_values -fdf_errno -fdf_error -fdf_get_ap -fdf_get_attachment -fdf_get_encoding -fdf_get_file -fdf_get_flags -fdf_get_opt -fdf_get_status -fdf_get_value -fdf_get_version -fdf_header -fdf_next_field_name -fdf_open -fdf_open_string -fdf_remove_item -fdf_save -fdf_save_string -fdf_set_ap -fdf_set_encoding -fdf_set_file -fdf_set_flags -fdf_set_javascript_action -fdf_set_on_import_javascript -fdf_set_opt -fdf_set_status -fdf_set_submit_form_action -fdf_set_target_frame -fdf_set_value -fdf_set_version -feof -fflush -fgetc -fgetcsv -fgets -fgetss -file -__FILE__ -fileatime -filectime -file_exists -file_get_contents -filegroup -fileinode -filemtime -fileowner -fileperms -filepro -filepro_fieldcount -filepro_fieldname -filepro_fieldtype -filepro_fieldwidth -filepro_retrieve -filepro_rowcount -file_put_contents -filesize -filesystemiterator -filetype -filter_has_var -filter_id -filter_input -filter_input_array -filteriterator -filter_list -filter_var -filter_var_array -final -finfo_buffer -finfo_close -finfo_file -finfo_open -finfo_set_flags -floatval -flock -floor -flush -fmod -fnmatch -fopen -for -foreach -forward_static_call -forward_static_call_array -fpassthru -fprintf -fputcsv -fputs -fread -frenchtojd -fribidi_log2vis -fscanf -fseek -fsockopen -fstat -ftell -ftok -ftp_alloc -ftp_cdup -ftp_chdir -ftp_chmod -ftp_close -ftp_connect -ftp_delete -ftp_exec -ftp_fget -ftp_fput -ftp_get -ftp_get_option -ftp_login -ftp_mdtm -ftp_mkdir -ftp_nb_continue -ftp_nb_fget -ftp_nb_fput -ftp_nb_get -ftp_nb_put -ftp_nlist -ftp_pasv -ftp_put -ftp_pwd -ftp_quit -ftp_raw -ftp_rawlist -ftp_rename -ftp_rmdir -ftp_set_option -ftp_site -ftp_size -ftp_ssl_connect -ftp_systype -ftruncate -func_get_arg -func_get_args -func_num_args -function -__FUNCTION__ -function_exists -fwrite -gc_collect_cycles -gc_disable -gc_enable -gc_enabled -gd_info -gearmanclient -gearmanjob -gearmantask -gearmanworker -geoip_continent_code_by_name -geoip_country_code3_by_name -geoip_country_code_by_name -geoip_country_name_by_name -geoip_database_info -geoip_db_avail -geoip_db_filename -geoip_db_get_all_info -geoip_id_by_name -geoip_isp_by_name -geoip_org_by_name -geoip_record_by_name -geoip_region_by_name -geoip_region_name_by_code -geoip_time_zone_by_country_and_region -__get() -getallheaders -get_browser -get_called_class -get_cfg_var -get_class -get_class_methods -get_class_vars -getclosure -getconstant -getconstants -getconstructor -get_current_user -getcwd -getdate -get_declared_classes -get_declared_interfaces -getdefaultproperties -get_defined_constants -get_defined_functions -get_defined_vars -getdoccomment -getendline -getenv -getextension -get_extension_funcs -getextensionname -getfilename -get_headers -gethostbyaddr -gethostbyname -gethostbynamel -gethostname -get_html_translation_table -getimagesize -get_included_files -get_include_path -getinterfacenames -getinterfaces -getlastmod -get_loaded_extensions -get_magic_quotes_gpc -get_magic_quotes_runtime -getMeta -get_meta_tags -getmethod -getmethods -getmodifiers -getmxrr -getmygid -getmyinode -getmypid -getmyuid -getname -getNamed -getnamespacename -get_object_vars -getopt -getparentclass -get_parent_class -getproperties -getproperty -getprotobyname -getprotobynumber -getrandmax -get_required_files -get_resource_type -getrusage -getservbyname -getservbyport -getshortname -getstartline -getstaticproperties -getstaticpropertyvalue -gettext -gettimeofday -gettraitaliases -gettraitnames -gettraits -gettype -getValue -glob -global -globiterator -gmagick -gmagickdraw -gmagickpixel -gmdate -gmmktime -gmp_abs -gmp_add -gmp_and -gmp_clrbit -gmp_cmp -gmp_com -gmp_div -gmp_divexact -gmp_div_q -gmp_div_qr -gmp_div_r -gmp_fact -gmp_gcd -gmp_gcdext -gmp_hamdist -gmp_init -gmp_intval -gmp_invert -gmp_jacobi -gmp_legendre -gmp_mod -gmp_mul -gmp_neg -gmp_nextprime -gmp_or -gmp_perfect_square -gmp_popcount -gmp_pow -gmp_powm -gmp_prob_prime -gmp_random -gmp_scan0 -gmp_scan1 -gmp_setbit -gmp_sign -gmp_sqrt -gmp_sqrtrem -gmp_strval -gmp_sub -gmp_testbit -gmp_xor -gmstrftime -gnupg_adddecryptkey -gnupg_addencryptkey -gnupg_addsignkey -gnupg_cleardecryptkeys -gnupg_clearencryptkeys -gnupg_clearsignkeys -gnupg_decrypt -gnupg_decryptverify -gnupg_encrypt -gnupg_encryptsign -gnupg_export -gnupg_geterror -gnupg_getprotocol -gnupg_import -gnupg_init -gnupg_keyinfo -gnupg_setarmor -gnupg_seterrormode -gnupg_setsignmode -gnupg_sign -gnupg_verify -gopher_parsedir -goto -grapheme_extract -grapheme_stripos -grapheme_stristr -grapheme_strlen -grapheme_strpos -grapheme_strripos -grapheme_strrpos -grapheme_strstr -grapheme_substr -gregoriantojd -gupnp_context_get_host_ip -gupnp_context_get_port -gupnp_context_get_subscription_timeout -gupnp_context_host_path -gupnp_context_new -gupnp_context_set_subscription_timeout -gupnp_context_timeout_add -gupnp_context_unhost_path -gupnp_control_point_browse_start -gupnp_control_point_browse_stop -gupnp_control_point_callback_set -gupnp_control_point_new -gupnp_device_action_callback_set -gupnp_device_info_get -gupnp_device_info_get_service -gupnp_root_device_get_available -gupnp_root_device_get_relative_location -gupnp_root_device_new -gupnp_root_device_set_available -gupnp_root_device_start -gupnp_root_device_stop -gupnp_service_action_get -gupnp_service_action_return -gupnp_service_action_return_error -gupnp_service_action_set -gupnp_service_freeze_notify -gupnp_service_info_get -gupnp_service_info_get_introspection -gupnp_service_introspection_get_state_variable -gupnp_service_notify -gupnp_service_proxy_action_get -gupnp_service_proxy_action_set -gupnp_service_proxy_add_notify -gupnp_service_proxy_callback_set -gupnp_service_proxy_get_subscribed -gupnp_service_proxy_remove_notify -gupnp_service_proxy_set_subscribed -gupnp_service_thaw_notify -gzclose -gzcompress -gzdecode -gzdeflate -gzencode -gzeof -gzfile -gzgetc -gzgets -gzgetss -gzinflate -gzopen -gzpassthru -gzputs -gzread -gzrewind -gzseek -gztell -gzuncompress -gzwrite -halt_compiler -haruannotation -haruannotation_setborderstyle -haruannotation_sethighlightmode -haruannotation_seticon -haruannotation_setopened -harudestination -harudestination_setfit -harudestination_setfitb -harudestination_setfitbh -harudestination_setfitbv -harudestination_setfith -harudestination_setfitr -harudestination_setfitv -harudestination_setxyz -harudoc -harudoc_addpage -harudoc_addpagelabel -harudoc_construct -harudoc_createoutline -harudoc_getcurrentencoder -harudoc_getcurrentpage -harudoc_getencoder -harudoc_getfont -harudoc_getinfoattr -harudoc_getpagelayout -harudoc_getpagemode -harudoc_getstreamsize -harudoc_insertpage -harudoc_loadjpeg -harudoc_loadpng -harudoc_loadraw -harudoc_loadttc -harudoc_loadttf -harudoc_loadtype1 -harudoc_output -harudoc_readfromstream -harudoc_reseterror -harudoc_resetstream -harudoc_save -harudoc_savetostream -harudoc_setcompressionmode -harudoc_setcurrentencoder -harudoc_setencryptionmode -harudoc_setinfoattr -harudoc_setinfodateattr -harudoc_setopenaction -harudoc_setpagelayout -harudoc_setpagemode -harudoc_setpagesconfiguration -harudoc_setpassword -harudoc_setpermission -harudoc_usecnsencodings -harudoc_usecnsfonts -harudoc_usecntencodings -harudoc_usecntfonts -harudoc_usejpencodings -harudoc_usejpfonts -harudoc_usekrencodings -harudoc_usekrfonts -haruencoder -haruencoder_getbytetype -haruencoder_gettype -haruencoder_getunicode -haruencoder_getwritingmode -haruexception -harufont -harufont_getascent -harufont_getcapheight -harufont_getdescent -harufont_getencodingname -harufont_getfontname -harufont_gettextwidth -harufont_getunicodewidth -harufont_getxheight -harufont_measuretext -haruimage -haruimage_getbitspercomponent -haruimage_getcolorspace -haruimage_getheight -haruimage_getsize -haruimage_getwidth -haruimage_setcolormask -haruimage_setmaskimage -haruoutline -haruoutline_setdestination -haruoutline_setopened -harupage -harupage_arc -harupage_begintext -harupage_circle -harupage_closepath -harupage_concat -harupage_createdestination -harupage_createlinkannotation -harupage_createtextannotation -harupage_createurlannotation -harupage_curveto -harupage_curveto2 -harupage_curveto3 -harupage_drawimage -harupage_ellipse -harupage_endpath -harupage_endtext -harupage_eofill -harupage_eofillstroke -harupage_fill -harupage_fillstroke -harupage_getcharspace -harupage_getcmykfill -harupage_getcmykstroke -harupage_getcurrentfont -harupage_getcurrentfontsize -harupage_getcurrentpos -harupage_getcurrenttextpos -harupage_getdash -harupage_getfillingcolorspace -harupage_getflatness -harupage_getgmode -harupage_getgrayfill -harupage_getgraystroke -harupage_getheight -harupage_gethorizontalscaling -harupage_getlinecap -harupage_getlinejoin -harupage_getlinewidth -harupage_getmiterlimit -harupage_getrgbfill -harupage_getrgbstroke -harupage_getstrokingcolorspace -harupage_gettextleading -harupage_gettextmatrix -harupage_gettextrenderingmode -harupage_gettextrise -harupage_gettextwidth -harupage_gettransmatrix -harupage_getwidth -harupage_getwordspace -harupage_lineto -harupage_measuretext -harupage_movetextpos -harupage_moveto -harupage_movetonextline -harupage_rectangle -harupage_setcharspace -harupage_setcmykfill -harupage_setcmykstroke -harupage_setdash -harupage_setflatness -harupage_setfontandsize -harupage_setgrayfill -harupage_setgraystroke -harupage_setheight -harupage_sethorizontalscaling -harupage_setlinecap -harupage_setlinejoin -harupage_setlinewidth -harupage_setmiterlimit -harupage_setrgbfill -harupage_setrgbstroke -harupage_setrotate -harupage_setsize -harupage_setslideshow -harupage_settextleading -harupage_settextmatrix -harupage_settextrenderingmode -harupage_settextrise -harupage_setwidth -harupage_setwordspace -harupage_showtext -harupage_showtextnextline -harupage_stroke -harupage_textout -harupage_textrect -hasconstant -hash -hash_algos -hash_copy -hash_file -hash_final -hash_hmac -hash_hmac_file -hash_init -hash_update -hash_update_file -hash_update_stream -hasmethod -hasproperty -header -header_register_callback -header_remove -headers_list -headers_sent -hebrev -hebrevc -hex2bin -hexdec -highlight_file -highlight_string -htmlentities -html_entity_decode -htmlspecialchars -htmlspecialchars_decode -http_build_cookie -http_build_query -http_build_str -http_build_url -http_cache_etag -http_cache_last_modified -http_chunked_decode -http_date -http_deflate -httpdeflatestream -httpdeflatestream_construct -httpdeflatestream_factory -httpdeflatestream_finish -httpdeflatestream_flush -httpdeflatestream_update -http_get -http_get_request_body -http_get_request_body_stream -http_get_request_headers -http_head -http_inflate -httpinflatestream -httpinflatestream_construct -httpinflatestream_factory -httpinflatestream_finish -httpinflatestream_flush -httpinflatestream_update -http_match_etag -http_match_modified -http_match_request_header -httpmessage -httpmessage_addheaders -httpmessage_construct -httpmessage_detach -httpmessage_factory -httpmessage_fromenv -httpmessage_fromstring -httpmessage_getbody -httpmessage_getheader -httpmessage_getheaders -httpmessage_gethttpversion -httpmessage_getparentmessage -httpmessage_getrequestmethod -httpmessage_getrequesturl -httpmessage_getresponsecode -httpmessage_getresponsestatus -httpmessage_gettype -httpmessage_guesscontenttype -httpmessage_prepend -httpmessage_reverse -httpmessage_send -httpmessage_setbody -httpmessage_setheaders -httpmessage_sethttpversion -httpmessage_setrequestmethod -httpmessage_setrequesturl -httpmessage_setresponsecode -httpmessage_setresponsestatus -httpmessage_settype -httpmessage_tomessagetypeobject -httpmessage_tostring -http_negotiate_charset -http_negotiate_content_type -http_negotiate_language -http_parse_cookie -http_parse_headers -http_parse_message -http_parse_params -http_persistent_handles_clean -http_persistent_handles_count -http_persistent_handles_ident -http_post_data -http_post_fields -http_put_data -http_put_file -http_put_stream -httpquerystring -httpquerystring_construct -httpquerystring_get -httpquerystring_mod -httpquerystring_set -httpquerystring_singleton -httpquerystring_toarray -httpquerystring_tostring -httpquerystring_xlate -http_redirect -httprequest -http_request -httprequest_addcookies -httprequest_addheaders -httprequest_addpostfields -httprequest_addpostfile -httprequest_addputdata -httprequest_addquerydata -httprequest_addrawpostdata -httprequest_addssloptions -http_request_body_encode -httprequest_clearhistory -httprequest_construct -httprequest_enablecookies -httprequest_getcontenttype -httprequest_getcookies -httprequest_getheaders -httprequest_gethistory -httprequest_getmethod -httprequest_getoptions -httprequest_getpostfields -httprequest_getpostfiles -httprequest_getputdata -httprequest_getputfile -httprequest_getquerydata -httprequest_getrawpostdata -httprequest_getrawrequestmessage -httprequest_getrawresponsemessage -httprequest_getrequestmessage -httprequest_getresponsebody -httprequest_getresponsecode -httprequest_getresponsecookies -httprequest_getresponsedata -httprequest_getresponseheader -httprequest_getresponseinfo -httprequest_getresponsemessage -httprequest_getresponsestatus -httprequest_getssloptions -httprequest_geturl -http_request_method_exists -http_request_method_name -http_request_method_register -http_request_method_unregister -httprequestpool -httprequestpool_attach -httprequestpool_construct -httprequestpool_destruct -httprequestpool_detach -httprequestpool_getattachedrequests -httprequestpool_getfinishedrequests -httprequestpool_reset -httprequestpool_send -httprequestpool_socketperform -httprequestpool_socketselect -httprequest_resetcookies -httprequest_send -httprequest_setcontenttype -httprequest_setcookies -httprequest_setheaders -httprequest_setmethod -httprequest_setoptions -httprequest_setpostfields -httprequest_setpostfiles -httprequest_setputdata -httprequest_setputfile -httprequest_setquerydata -httprequest_setrawpostdata -httprequest_setssloptions -httprequest_seturl -httpresponse -httpresponse_capture -http_response_code -httpresponse_getbuffersize -httpresponse_getcache -httpresponse_getcachecontrol -httpresponse_getcontentdisposition -httpresponse_getcontenttype -httpresponse_getdata -httpresponse_getetag -httpresponse_getfile -httpresponse_getgzip -httpresponse_getheader -httpresponse_getlastmodified -httpresponse_getrequestbody -httpresponse_getrequestbodystream -httpresponse_getrequestheaders -httpresponse_getstream -httpresponse_getthrottledelay -httpresponse_guesscontenttype -httpresponse_redirect -httpresponse_send -httpresponse_setbuffersize -httpresponse_setcache -httpresponse_setcachecontrol -httpresponse_setcontentdisposition -httpresponse_setcontenttype -httpresponse_setdata -httpresponse_setetag -httpresponse_setfile -httpresponse_setgzip -httpresponse_setheader -httpresponse_setlastmodified -httpresponse_setstream -httpresponse_setthrottledelay -httpresponse_status -http_send_content_disposition -http_send_content_type -http_send_data -http_send_file -http_send_last_modified -http_send_status -http_send_stream -http_support -http_throttle -hwapi_attribute -hwapi_attribute_key -hwapi_attribute_langdepvalue -hwapi_attribute_value -hwapi_attribute_values -hwapi_checkin -hwapi_checkout -hwapi_children -hwapi_content -hwapi_content_mimetype -hwapi_content_read -hwapi_copy -hwapi_dbstat -hwapi_dcstat -hwapi_dstanchors -hwapi_dstofsrcanchor -hwapi_error_count -hwapi_error_reason -hwapi_find -hwapi_ftstat -hwapi_hgcsp -hwapi_hwstat -hwapi_identify -hwapi_info -hwapi_insert -hwapi_insertanchor -hwapi_insertcollection -hwapi_insertdocument -hwapi_link -hwapi_lock -hwapi_move -hwapi_new_content -hwapi_object -hwapi_object_assign -hwapi_object_attreditable -hwapi_objectbyanchor -hwapi_object_count -hwapi_object_insert -hwapi_object_new -hwapi_object_remove -hwapi_object_title -hwapi_object_value -hwapi_parents -hwapi_reason_description -hwapi_reason_type -hwapi_remove -hwapi_replace -hwapi_setcommittedversion -hwapi_srcanchors -hwapi_srcsofdst -hwapi_unlock -hwapi_user -hwapi_userlist -hw_array2objrec -hw_changeobject -hw_children -hw_childrenobj -hw_close -hw_connect -hw_connection_info -hw_cp -hw_deleteobject -hw_docbyanchor -hw_docbyanchorobj -hw_document_attributes -hw_document_bodytag -hw_document_content -hw_document_setcontent -hw_document_size -hw_dummy -hw_edittext -hw_error -hw_errormsg -hw_free_document -hw_getanchors -hw_getanchorsobj -hw_getandlock -hw_getchildcoll -hw_getchildcollobj -hw_getchilddoccoll -hw_getchilddoccollobj -hw_getobject -hw_getobjectbyquery -hw_getobjectbyquerycoll -hw_getobjectbyquerycollobj -hw_getobjectbyqueryobj -hw_getparents -hw_getparentsobj -hw_getrellink -hw_getremote -hw_getremotechildren -hw_getsrcbydestobj -hw_gettext -hw_getusername -hw_identify -hw_incollections -hw_info -hw_inscoll -hw_insdoc -hw_insertanchors -hw_insertdocument -hw_insertobject -hw_mapid -hw_modifyobject -hw_mv -hw_new_document -hw_objrec2array -hw_output_document -hw_pconnect -hw_pipedocument -hw_root -hw_setlinkroot -hw_stat -hw_unlock -hw_who -hypot -ibase_add_user -ibase_affected_rows -ibase_backup -ibase_blob_add -ibase_blob_cancel -ibase_blob_close -ibase_blob_create -ibase_blob_echo -ibase_blob_get -ibase_blob_import -ibase_blob_info -ibase_blob_open -ibase_close -ibase_commit -ibase_commit_ret -ibase_connect -ibase_db_info -ibase_delete_user -ibase_drop_db -ibase_errcode -ibase_errmsg -ibase_execute -ibase_fetch_assoc -ibase_fetch_object -ibase_fetch_row -ibase_field_info -ibase_free_event_handler -ibase_free_query -ibase_free_result -ibase_gen_id -ibase_maintain_db -ibase_modify_user -ibase_name_result -ibase_num_fields -ibase_num_params -ibase_param_info -ibase_pconnect -ibase_prepare -ibase_query -ibase_restore -ibase_rollback -ibase_rollback_ret -ibase_server_info -ibase_service_attach -ibase_service_detach -ibase_set_event_handler -ibase_timefmt -ibase_trans -ibase_wait_event -iconv -iconv_get_encoding -iconv_mime_decode -iconv_mime_decode_headers -iconv_mime_encode -iconv_set_encoding -iconv_strlen -iconv_strpos -iconv_strrpos -iconv_substr -id3_get_frame_long_name -id3_get_frame_short_name -id3_get_genre_id -id3_get_genre_list -id3_get_genre_name -id3_get_tag -id3_get_version -id3_remove_tag -id3_set_tag -idate -idn_to_ascii -idn_to_unicode -idn_to_utf8 -if -ifx_affected_rows -ifx_blobinfile_mode -ifx_byteasvarchar -ifx_close -ifx_connect -ifx_copy_blob -ifx_create_blob -ifx_create_char -ifx_do -ifx_error -ifx_errormsg -ifx_fetch_row -ifx_fieldproperties -ifx_fieldtypes -ifx_free_blob -ifx_free_char -ifx_free_result -ifx_get_blob -ifx_get_char -ifx_getsqlca -ifx_htmltbl_result -ifx_nullformat -ifx_num_fields -ifx_num_rows -ifx_pconnect -ifx_prepare -ifx_query -ifx_textasvarchar -ifx_update_blob -ifx_update_char -ifxus_close_slob -ifxus_create_slob -ifxus_free_slob -ifxus_open_slob -ifxus_read_slob -ifxus_seek_slob -ifxus_tell_slob -ifxus_write_slob -ignore_user_abort -iis_add_server -iis_get_dir_security -iis_get_script_map -iis_get_server_by_comment -iis_get_server_by_path -iis_get_server_rights -iis_get_service_state -iis_remove_server -iis_set_app_settings -iis_set_dir_security -iis_set_script_map -iis_set_server_rights -iis_start_server -iis_start_service -iis_stop_server -iis_stop_service -image2wbmp -imagealphablending -imageantialias -imagearc -imagechar -imagecharup -imagecolorallocate -imagecolorallocatealpha -imagecolorat -imagecolorclosest -imagecolorclosestalpha -imagecolorclosesthwb -imagecolordeallocate -imagecolorexact -imagecolorexactalpha -imagecolormatch -imagecolorresolve -imagecolorresolvealpha -imagecolorset -imagecolorsforindex -imagecolorstotal -imagecolortransparent -imageconvolution -imagecopy -imagecopymerge -imagecopymergegray -imagecopyresampled -imagecopyresized -imagecreate -imagecreatefromgd -imagecreatefromgd2 -imagecreatefromgd2part -imagecreatefromgif -imagecreatefromjpeg -imagecreatefrompng -imagecreatefromstring -imagecreatefromwbmp -imagecreatefromxbm -imagecreatefromxpm -imagecreatetruecolor -imagedashedline -imagedestroy -imageellipse -imagefill -imagefilledarc -imagefilledellipse -imagefilledpolygon -imagefilledrectangle -imagefilltoborder -imagefilter -imagefontheight -imagefontwidth -imageftbbox -imagefttext -imagegammacorrect -imagegd -imagegd2 -imagegif -imagegrabscreen -imagegrabwindow -imageinterlace -imageistruecolor -imagejpeg -imagelayereffect -imageline -imageloadfont -imagepalettecopy -imagepng -imagepolygon -imagepsbbox -imagepsencodefont -imagepsextendfont -imagepsfreefont -imagepsloadfont -imagepsslantfont -imagepstext -imagerectangle -imagerotate -imagesavealpha -imagesetbrush -imagesetpixel -imagesetstyle -imagesetthickness -imagesettile -imagestring -imagestringup -imagesx -imagesy -imagetruecolortopalette -imagettfbbox -imagettftext -imagetypes -image_type_to_extension -image_type_to_mime_type -imagewbmp -imagexbm -imagick -imagick_adaptiveblurimage -imagick_adaptiveresizeimage -imagick_adaptivesharpenimage -imagick_adaptivethresholdimage -imagick_addimage -imagick_addnoiseimage -imagick_affinetransformimage -imagick_animateimages -imagick_annotateimage -imagick_appendimages -imagick_averageimages -imagick_blackthresholdimage -imagick_blurimage -imagick_borderimage -imagick_charcoalimage -imagick_chopimage -imagick_clear -imagick_clipimage -imagick_clippathimage -imagick_clone -imagick_clutimage -imagick_coalesceimages -imagick_colorfloodfillimage -imagick_colorizeimage -imagick_combineimages -imagick_commentimage -imagick_compareimagechannels -imagick_compareimagelayers -imagick_compareimages -imagick_compositeimage -imagick_construct -imagick_contrastimage -imagick_contraststretchimage -imagick_convolveimage -imagick_cropimage -imagick_cropthumbnailimage -imagick_current -imagick_cyclecolormapimage -imagick_decipherimage -imagick_deconstructimages -imagick_deleteimageartifact -imagick_despeckleimage -imagick_destroy -imagick_displayimage -imagick_displayimages -imagick_distortimage -imagickdraw -imagickdraw_affine -imagickdraw_annotation -imagickdraw_arc -imagickdraw_bezier -imagickdraw_circle -imagickdraw_clear -imagickdraw_clone -imagickdraw_color -imagickdraw_comment -imagickdraw_composite -imagickdraw_construct -imagickdraw_destroy -imagickdraw_ellipse -imagickdraw_getclippath -imagickdraw_getcliprule -imagickdraw_getclipunits -imagickdraw_getfillcolor -imagickdraw_getfillopacity -imagickdraw_getfillrule -imagickdraw_getfont -imagickdraw_getfontfamily -imagickdraw_getfontsize -imagickdraw_getfontstyle -imagickdraw_getfontweight -imagickdraw_getgravity -imagickdraw_getstrokeantialias -imagickdraw_getstrokecolor -imagickdraw_getstrokedasharray -imagickdraw_getstrokedashoffset -imagickdraw_getstrokelinecap -imagickdraw_getstrokelinejoin -imagickdraw_getstrokemiterlimit -imagickdraw_getstrokeopacity -imagickdraw_getstrokewidth -imagickdraw_gettextalignment -imagickdraw_gettextantialias -imagickdraw_gettextdecoration -imagickdraw_gettextencoding -imagickdraw_gettextundercolor -imagickdraw_getvectorgraphics -imagick_drawimage -imagickdraw_line -imagickdraw_matte -imagickdraw_pathclose -imagickdraw_pathcurvetoabsolute -imagickdraw_pathcurvetoquadraticbezierabsolute -imagickdraw_pathcurvetoquadraticbezierrelative -imagickdraw_pathcurvetoquadraticbeziersmoothabsolute -imagickdraw_pathcurvetoquadraticbeziersmoothrelative -imagickdraw_pathcurvetorelative -imagickdraw_pathcurvetosmoothabsolute -imagickdraw_pathcurvetosmoothrelative -imagickdraw_pathellipticarcabsolute -imagickdraw_pathellipticarcrelative -imagickdraw_pathfinish -imagickdraw_pathlinetoabsolute -imagickdraw_pathlinetohorizontalabsolute -imagickdraw_pathlinetohorizontalrelative -imagickdraw_pathlinetorelative -imagickdraw_pathlinetoverticalabsolute -imagickdraw_pathlinetoverticalrelative -imagickdraw_pathmovetoabsolute -imagickdraw_pathmovetorelative -imagickdraw_pathstart -imagickdraw_point -imagickdraw_polygon -imagickdraw_polyline -imagickdraw_pop -imagickdraw_popclippath -imagickdraw_popdefs -imagickdraw_poppattern -imagickdraw_push -imagickdraw_pushclippath -imagickdraw_pushdefs -imagickdraw_pushpattern -imagickdraw_rectangle -imagickdraw_render -imagickdraw_rotate -imagickdraw_roundrectangle -imagickdraw_scale -imagickdraw_setclippath -imagickdraw_setcliprule -imagickdraw_setclipunits -imagickdraw_setfillalpha -imagickdraw_setfillcolor -imagickdraw_setfillopacity -imagickdraw_setfillpatternurl -imagickdraw_setfillrule -imagickdraw_setfont -imagickdraw_setfontfamily -imagickdraw_setfontsize -imagickdraw_setfontstretch -imagickdraw_setfontstyle -imagickdraw_setfontweight -imagickdraw_setgravity -imagickdraw_setstrokealpha -imagickdraw_setstrokeantialias -imagickdraw_setstrokecolor -imagickdraw_setstrokedasharray -imagickdraw_setstrokedashoffset -imagickdraw_setstrokelinecap -imagickdraw_setstrokelinejoin -imagickdraw_setstrokemiterlimit -imagickdraw_setstrokeopacity -imagickdraw_setstrokepatternurl -imagickdraw_setstrokewidth -imagickdraw_settextalignment -imagickdraw_settextantialias -imagickdraw_settextdecoration -imagickdraw_settextencoding -imagickdraw_settextundercolor -imagickdraw_setvectorgraphics -imagickdraw_setviewbox -imagickdraw_skewx -imagickdraw_skewy -imagickdraw_translate -imagick_edgeimage -imagick_embossimage -imagick_encipherimage -imagick_enhanceimage -imagick_equalizeimage -imagick_evaluateimage -imagick_extentimage -imagick_flattenimages -imagick_flipimage -imagick_floodfillpaintimage -imagick_flopimage -imagick_frameimage -imagick_fximage -imagick_gammaimage -imagick_gaussianblurimage -imagick_getcolorspace -imagick_getcompression -imagick_getcompressionquality -imagick_getcopyright -imagick_getfilename -imagick_getfont -imagick_getformat -imagick_getgravity -imagick_gethomeurl -imagick_getimage -imagick_getimagealphachannel -imagick_getimageartifact -imagick_getimagebackgroundcolor -imagick_getimageblob -imagick_getimageblueprimary -imagick_getimagebordercolor -imagick_getimagechanneldepth -imagick_getimagechanneldistortion -imagick_getimagechanneldistortions -imagick_getimagechannelextrema -imagick_getimagechannelmean -imagick_getimagechannelrange -imagick_getimagechannelstatistics -imagick_getimageclipmask -imagick_getimagecolormapcolor -imagick_getimagecolors -imagick_getimagecolorspace -imagick_getimagecompose -imagick_getimagecompression -imagick_getimagecompressionquality -imagick_getimagedelay -imagick_getimagedepth -imagick_getimagedispose -imagick_getimagedistortion -imagick_getimageextrema -imagick_getimagefilename -imagick_getimageformat -imagick_getimagegamma -imagick_getimagegeometry -imagick_getimagegravity -imagick_getimagegreenprimary -imagick_getimageheight -imagick_getimagehistogram -imagick_getimageindex -imagick_getimageinterlacescheme -imagick_getimageinterpolatemethod -imagick_getimageiterations -imagick_getimagelength -imagick_getimagemagicklicense -imagick_getimagematte -imagick_getimagemattecolor -imagick_getimageorientation -imagick_getimagepage -imagick_getimagepixelcolor -imagick_getimageprofile -imagick_getimageprofiles -imagick_getimageproperties -imagick_getimageproperty -imagick_getimageredprimary -imagick_getimageregion -imagick_getimagerenderingintent -imagick_getimageresolution -imagick_getimagesblob -imagick_getimagescene -imagick_getimagesignature -imagick_getimagesize -imagick_getimagetickspersecond -imagick_getimagetotalinkdensity -imagick_getimagetype -imagick_getimageunits -imagick_getimagevirtualpixelmethod -imagick_getimagewhitepoint -imagick_getimagewidth -imagick_getinterlacescheme -imagick_getiteratorindex -imagick_getnumberimages -imagick_getoption -imagick_getpackagename -imagick_getpage -imagick_getpixeliterator -imagick_getpixelregioniterator -imagick_getpointsize -imagick_getquantumdepth -imagick_getquantumrange -imagick_getreleasedate -imagick_getresource -imagick_getresourcelimit -imagick_getsamplingfactors -imagick_getsize -imagick_getsizeoffset -imagick_getversion -imagick_hasnextimage -imagick_haspreviousimage -imagick_identifyimage -imagick_implodeimage -imagick_labelimage -imagick_levelimage -imagick_linearstretchimage -imagick_liquidrescaleimage -imagick_magnifyimage -imagick_mapimage -imagick_mattefloodfillimage -imagick_medianfilterimage -imagick_mergeimagelayers -imagick_minifyimage -imagick_modulateimage -imagick_montageimage -imagick_morphimages -imagick_mosaicimages -imagick_motionblurimage -imagick_negateimage -imagick_newimage -imagick_newpseudoimage -imagick_nextimage -imagick_normalizeimage -imagick_oilpaintimage -imagick_opaquepaintimage -imagick_optimizeimagelayers -imagick_orderedposterizeimage -imagick_paintfloodfillimage -imagick_paintopaqueimage -imagick_painttransparentimage -imagick_pingimage -imagick_pingimageblob -imagick_pingimagefile -imagickpixel -imagickpixel_clear -imagickpixel_construct -imagickpixel_destroy -imagickpixel_getcolor -imagickpixel_getcolorasstring -imagickpixel_getcolorcount -imagickpixel_getcolorvalue -imagickpixel_gethsl -imagickpixel_issimilar -imagickpixeliterator -imagickpixeliterator_clear -imagickpixeliterator_construct -imagickpixeliterator_destroy -imagickpixeliterator_getcurrentiteratorrow -imagickpixeliterator_getiteratorrow -imagickpixeliterator_getnextiteratorrow -imagickpixeliterator_getpreviousiteratorrow -imagickpixeliterator_newpixeliterator -imagickpixeliterator_newpixelregioniterator -imagickpixeliterator_resetiterator -imagickpixeliterator_setiteratorfirstrow -imagickpixeliterator_setiteratorlastrow -imagickpixeliterator_setiteratorrow -imagickpixeliterator_synciterator -imagickpixel_setcolor -imagickpixel_setcolorvalue -imagickpixel_sethsl -imagick_polaroidimage -imagick_posterizeimage -imagick_previewimages -imagick_previousimage -imagick_profileimage -imagick_quantizeimage -imagick_quantizeimages -imagick_queryfontmetrics -imagick_queryfonts -imagick_queryformats -imagick_radialblurimage -imagick_raiseimage -imagick_randomthresholdimage -imagick_readimage -imagick_readimageblob -imagick_readimagefile -imagick_recolorimage -imagick_reducenoiseimage -imagick_removeimage -imagick_removeimageprofile -imagick_render -imagick_resampleimage -imagick_resetimagepage -imagick_resizeimage -imagick_rollimage -imagick_rotateimage -imagick_roundcorners -imagick_sampleimage -imagick_scaleimage -imagick_separateimagechannel -imagick_sepiatoneimage -imagick_setbackgroundcolor -imagick_setcolorspace -imagick_setcompression -imagick_setcompressionquality -imagick_setfilename -imagick_setfirstiterator -imagick_setfont -imagick_setformat -imagick_setgravity -imagick_setimage -imagick_setimagealphachannel -imagick_setimageartifact -imagick_setimagebackgroundcolor -imagick_setimagebias -imagick_setimageblueprimary -imagick_setimagebordercolor -imagick_setimagechanneldepth -imagick_setimageclipmask -imagick_setimagecolormapcolor -imagick_setimagecolorspace -imagick_setimagecompose -imagick_setimagecompression -imagick_setimagecompressionquality -imagick_setimagedelay -imagick_setimagedepth -imagick_setimagedispose -imagick_setimageextent -imagick_setimagefilename -imagick_setimageformat -imagick_setimagegamma -imagick_setimagegravity -imagick_setimagegreenprimary -imagick_setimageindex -imagick_setimageinterlacescheme -imagick_setimageinterpolatemethod -imagick_setimageiterations -imagick_setimagematte -imagick_setimagemattecolor -imagick_setimageopacity -imagick_setimageorientation -imagick_setimagepage -imagick_setimageprofile -imagick_setimageproperty -imagick_setimageredprimary -imagick_setimagerenderingintent -imagick_setimageresolution -imagick_setimagescene -imagick_setimagetickspersecond -imagick_setimagetype -imagick_setimageunits -imagick_setimagevirtualpixelmethod -imagick_setimagewhitepoint -imagick_setinterlacescheme -imagick_setiteratorindex -imagick_setlastiterator -imagick_setoption -imagick_setpage -imagick_setpointsize -imagick_setresolution -imagick_setresourcelimit -imagick_setsamplingfactors -imagick_setsize -imagick_setsizeoffset -imagick_settype -imagick_shadeimage -imagick_shadowimage -imagick_sharpenimage -imagick_shaveimage -imagick_shearimage -imagick_sigmoidalcontrastimage -imagick_sketchimage -imagick_solarizeimage -imagick_spliceimage -imagick_spreadimage -imagick_steganoimage -imagick_stereoimage -imagick_stripimage -imagick_swirlimage -imagick_textureimage -imagick_thresholdimage -imagick_thumbnailimage -imagick_tintimage -imagick_transformimage -imagick_transparentpaintimage -imagick_transposeimage -imagick_transverseimage -imagick_trimimage -imagick_uniqueimagecolors -imagick_unsharpmaskimage -imagick_valid -imagick_vignetteimage -imagick_waveimage -imagick_whitethresholdimage -imagick_writeimage -imagick_writeimagefile -imagick_writeimages -imagick_writeimagesfile -imap_8bit -imap_alerts -imap_append -imap_base64 -imap_binary -imap_body -imap_bodystruct -imap_check -imap_clearflag_full -imap_close -imap_create -imap_createmailbox -imap_delete -imap_deletemailbox -imap_errors -imap_expunge -imap_fetchbody -imap_fetchheader -imap_fetchmime -imap_fetch_overview -imap_fetchstructure -imap_fetchtext -imap_gc -imap_getacl -imap_getmailboxes -imap_get_quota -imap_get_quotaroot -imap_getsubscribed -imap_header -imap_headerinfo -imap_headers -imap_last_error -imap_list -imap_listmailbox -imap_listscan -imap_listsubscribed -imap_lsub -imap_mail -imap_mailboxmsginfo -imap_mail_compose -imap_mail_copy -imap_mail_move -imap_mime_header_decode -imap_msgno -imap_num_msg -imap_num_recent -imap_open -imap_ping -imap_qprint -imap_rename -imap_renamemailbox -imap_reopen -imap_rfc822_parse_adrlist -imap_rfc822_parse_headers -imap_rfc822_write_address -imap_savebody -imap_scan -imap_scanmailbox -imap_search -imap_setacl -imap_setflag_full -imap_set_quota -imap_sort -imap_status -imap_subscribe -imap_thread -imap_timeout -imap_uid -imap_undelete -imap_unsubscribe -imap_utf7_decode -imap_utf7_encode -imap_utf8 -implements -implementsinterface -implode -import_request_variables -in_array -include -include_once -inclued_get_data -inet_ntop -inet_pton -infiniteiterator -ingres_autocommit -ingres_autocommit_state -ingres_charset -ingres_close -ingres_commit -ingres_connect -ingres_cursor -ingres_errno -ingres_error -ingres_errsqlstate -ingres_escape_string -ingres_execute -ingres_fetch_array -ingres_fetch_assoc -ingres_fetch_object -ingres_fetch_proc_return -ingres_fetch_row -ingres_field_length -ingres_field_name -ingres_field_nullable -ingres_field_precision -ingres_field_scale -ingres_field_type -ingres_free_result -ingres_next_error -ingres_num_fields -ingres_num_rows -ingres_pconnect -ingres_prepare -ingres_query -ingres_result_seek -ingres_rollback -ingres_set_environment -ingres_unbuffered_query -ini_alter -ini_get -ini_get_all -ini_restore -ini_set -innamespace -inotify_add_watch -inotify_init -inotify_queue_len -inotify_read -inotify_rm_watch -instanceof -interface -interface_exists -intldateformatter -intl_error_name -intl_get_error_code -intl_get_error_message -intl_is_failure -intval -invalidargumentexception -invoke -__invoke() -invokeargs -ip2long -iptcembed -iptcparse -is_a -isabstract -is_array -is_bool -is_callable -iscloneable -is_dir -isdisabled -is_double -is_executable -is_file -isfinal -is_finite -is_float -is_infinite -isinstance -isinstantiable -is_int -is_integer -isinterface -isinternal -isiterateable -is_link -is_long -is_nan -is_null -is_numeric -is_object -is_readable -is_real -is_resource -is_scalar -isset -__isset() -is_soap_fault -is_string -issubclassof -is_subclass_of -istrait -is_uploaded_file -isuserdefined -is_writable -is_writeable -iterator -iteratoraggregate -iterator_apply -iterator_count -iteratoriterator -iterator_to_array -java_last_exception_clear -java_last_exception_get -jddayofweek -jdmonthname -jdtofrench -jdtogregorian -jdtojewish -jdtojulian -jdtounix -jewishtojd -join -jpeg2wbmp -json_decode -json_encode -json_last_error -jsonserializable -judy -judy_type -judy_version -juliantojd -kadm5_chpass_principal -kadm5_create_principal -kadm5_delete_principal -kadm5_destroy -kadm5_flush -kadm5_get_policies -kadm5_get_principal -kadm5_get_principals -kadm5_init_with_password -kadm5_modify_principal -key -krsort -ksort -ktaglib_id3v2_attachedpictureframe -ktaglib_id3v2_frame -ktaglib_id3v2_tag -ktaglib_mpeg_audioproperties -ktaglib_mpeg_file -ktaglib_tag -lcfirst -lcg_value -lchgrp -lchown -ldap_8859_to_t61 -ldap_add -ldap_bind -ldap_close -ldap_compare -ldap_connect -ldap_count_entries -ldap_delete -ldap_dn2ufn -ldap_err2str -ldap_errno -ldap_error -ldap_explode_dn -ldap_first_attribute -ldap_first_entry -ldap_first_reference -ldap_free_result -ldap_get_attributes -ldap_get_dn -ldap_get_entries -ldap_get_option -ldap_get_values -ldap_get_values_len -ldap_list -ldap_mod_add -ldap_mod_del -ldap_modify -ldap_mod_replace -ldap_next_attribute -ldap_next_entry -ldap_next_reference -ldap_parse_reference -ldap_parse_result -ldap_read -ldap_rename -ldap_sasl_bind -ldap_search -ldap_set_option -ldap_set_rebind_proc -ldap_sort -ldap_start_tls -ldap_t61_to_8859 -ldap_unbind -lengthexception -levenshtein -libxml_clear_errors -libxml_disable_entity_loader -libxmlerror -libxml_get_errors -libxml_get_last_error -libxml_set_streams_context -libxml_use_internal_errors -limititerator -__LINE__ -link -linkinfo -list -locale -localeconv -localtime -log -log10 -log1p -logicexception -long2ip -lstat -ltrim -lua -luaclosure -lzf_compress -lzf_decompress -lzf_optimized_for -magic_quotes_runtime -mail -mailparse_determine_best_xfer_encoding -mailparse_msg_create -mailparse_msg_extract_part -mailparse_msg_extract_part_file -mailparse_msg_extract_whole_part_file -mailparse_msg_free -mailparse_msg_get_part -mailparse_msg_get_part_data -mailparse_msg_get_structure -mailparse_msg_parse -mailparse_msg_parse_file -mailparse_rfc822_parse_addresses -mailparse_stream_encode -mailparse_uudecode_all -main -max -maxdb_affected_rows -maxdb_autocommit -maxdb_bind_param -maxdb_bind_result -maxdb_change_user -maxdb_character_set_name -maxdb_client_encoding -maxdb_close -maxdb_close_long_data -maxdb_commit -maxdb_connect -maxdb_connect_errno -maxdb_connect_error -maxdb_data_seek -maxdb_debug -maxdb_disable_reads_from_master -maxdb_disable_rpl_parse -maxdb_dump_debug_info -maxdb_embedded_connect -maxdb_enable_reads_from_master -maxdb_enable_rpl_parse -maxdb_errno -maxdb_error -maxdb_escape_string -maxdb_execute -maxdb_fetch -maxdb_fetch_array -maxdb_fetch_assoc -maxdb_fetch_field -maxdb_fetch_field_direct -maxdb_fetch_fields -maxdb_fetch_lengths -maxdb_fetch_object -maxdb_fetch_row -maxdb_field_count -maxdb_field_seek -maxdb_field_tell -maxdb_free_result -maxdb_get_client_info -maxdb_get_client_version -maxdb_get_host_info -maxdb_get_metadata -maxdb_get_proto_info -maxdb_get_server_info -maxdb_get_server_version -maxdb_info -maxdb_init -maxdb_insert_id -maxdb_kill -maxdb_master_query -maxdb_more_results -maxdb_multi_query -maxdb_next_result -maxdb_num_fields -maxdb_num_rows -maxdb_options -maxdb_param_count -maxdb_ping -maxdb_prepare -maxdb_query -maxdb_real_connect -maxdb_real_escape_string -maxdb_real_query -maxdb_report -maxdb_rollback -maxdb_rpl_parse_enabled -maxdb_rpl_probe -maxdb_rpl_query_type -maxdb_select_db -maxdb_send_long_data -maxdb_send_query -maxdb_server_end -maxdb_server_init -maxdb_set_opt -maxdb_sqlstate -maxdb_ssl_set -maxdb_stat -maxdb_stmt_affected_rows -maxdb_stmt_bind_param -maxdb_stmt_bind_result -maxdb_stmt_close -maxdb_stmt_close_long_data -maxdb_stmt_data_seek -maxdb_stmt_errno -maxdb_stmt_error -maxdb_stmt_execute -maxdb_stmt_fetch -maxdb_stmt_free_result -maxdb_stmt_init -maxdb_stmt_num_rows -maxdb_stmt_param_count -maxdb_stmt_prepare -maxdb_stmt_reset -maxdb_stmt_result_metadata -maxdb_stmt_send_long_data -maxdb_stmt_sqlstate -maxdb_stmt_store_result -maxdb_store_result -maxdb_thread_id -maxdb_thread_safe -maxdb_use_result -maxdb_warning_count -mb_check_encoding -mb_convert_case -mb_convert_encoding -mb_convert_kana -mb_convert_variables -mb_decode_mimeheader -mb_decode_numericentity -mb_detect_encoding -mb_detect_order -mb_encode_mimeheader -mb_encode_numericentity -mb_encoding_aliases -mb_ereg -mb_eregi -mb_eregi_replace -mb_ereg_match -mb_ereg_replace -mb_ereg_search -mb_ereg_search_getpos -mb_ereg_search_getregs -mb_ereg_search_init -mb_ereg_search_pos -mb_ereg_search_regs -mb_ereg_search_setpos -mb_get_info -mb_http_input -mb_http_output -mb_internal_encoding -mb_language -mb_list_encodings -mb_output_handler -mb_parse_str -mb_preferred_mime_name -mb_regex_encoding -mb_regex_set_options -mb_send_mail -mb_split -mb_strcut -mb_strimwidth -mb_stripos -mb_stristr -mb_strlen -mb_strpos -mb_strrchr -mb_strrichr -mb_strripos -mb_strrpos -mb_strstr -mb_strtolower -mb_strtoupper -mb_strwidth -mb_substitute_character -mb_substr -mb_substr_count -m_checkstatus -m_completeauthorizations -m_connect -m_connectionerror -mcrypt_cbc -mcrypt_cfb -mcrypt_create_iv -mcrypt_decrypt -mcrypt_ecb -mcrypt_enc_get_algorithms_name -mcrypt_enc_get_block_size -mcrypt_enc_get_iv_size -mcrypt_enc_get_key_size -mcrypt_enc_get_modes_name -mcrypt_enc_get_supported_key_sizes -mcrypt_enc_is_block_algorithm -mcrypt_enc_is_block_algorithm_mode -mcrypt_enc_is_block_mode -mcrypt_encrypt -mcrypt_enc_self_test -mcrypt_generic -mcrypt_generic_deinit -mcrypt_generic_end -mcrypt_generic_init -mcrypt_get_block_size -mcrypt_get_cipher_name -mcrypt_get_iv_size -mcrypt_get_key_size -mcrypt_list_algorithms -mcrypt_list_modes -mcrypt_module_close -mcrypt_module_get_algo_block_size -mcrypt_module_get_algo_key_size -mcrypt_module_get_supported_key_sizes -mcrypt_module_is_block_algorithm -mcrypt_module_is_block_algorithm_mode -mcrypt_module_is_block_mode -mcrypt_module_open -mcrypt_module_self_test -mcrypt_ofb -md5 -md5_file -mdecrypt_generic -m_deletetrans -m_destroyconn -m_destroyengine -memcache -memcached -memcache_debug -memory_get_peak_usage -memory_get_usage -messageformatter -metaphone -__METHOD__ -method_exists -m_getcell -m_getcellbynum -m_getcommadelimited -m_getheader -mhash -mhash_count -mhash_get_block_size -mhash_get_hash_name -mhash_keygen_s2k -microtime -mime_content_type -min -ming_keypress -ming_setcubicthreshold -ming_setscale -ming_setswfcompression -ming_useconstants -ming_useswfversion -m_initconn -m_initengine -m_iscommadelimited -mkdir -mktime -m_maxconntimeout -m_monitor -m_numcolumns -m_numrows -money_format -mongo -mongobindata -mongocode -mongocollection -mongoconnectionexception -mongocursor -mongocursorexception -mongocursortimeoutexception -mongodate -mongodb -mongodbref -mongoexception -mongogridfs -mongogridfscursor -mongogridfsexception -mongogridfsfile -mongoid -mongoint32 -mongoint64 -mongolog -mongomaxkey -mongominkey -mongopool -mongoregex -mongotimestamp -move_uploaded_file -m_parsecommadelimited -mqseries_back -mqseries_begin -mqseries_close -mqseries_cmit -mqseries_conn -mqseries_connx -mqseries_disc -mqseries_get -mqseries_inq -mqseries_open -mqseries_put -mqseries_put1 -mqseries_set -mqseries_strerror -m_responsekeys -m_responseparam -m_returnstatus -msession_connect -msession_count -msession_create -msession_destroy -msession_disconnect -msession_find -msession_get -msession_get_array -msession_get_data -msession_inc -msession_list -msession_listvar -msession_lock -msession_plugin -msession_randstr -msession_set -msession_set_array -msession_set_data -msession_timeout -msession_uniq -msession_unlock -m_setblocking -m_setdropfile -m_setip -m_setssl -m_setssl_cafile -m_setssl_files -m_settimeout -msg_get_queue -msg_queue_exists -msg_receive -msg_remove_queue -msg_send -msg_set_queue -msg_stat_queue -msql -msql_affected_rows -msql_close -msql_connect -msql_createdb -msql_create_db -msql_data_seek -msql_dbname -msql_db_query -msql_drop_db -msql_error -msql_fetch_array -msql_fetch_field -msql_fetch_object -msql_fetch_row -msql_fieldflags -msql_field_flags -msql_fieldlen -msql_field_len -msql_fieldname -msql_field_name -msql_field_seek -msql_fieldtable -msql_field_table -msql_fieldtype -msql_field_type -msql_free_result -msql_list_dbs -msql_list_fields -msql_list_tables -msql_numfields -msql_num_fields -msql_numrows -msql_num_rows -msql_pconnect -msql_query -msql_regcase -msql_result -msql_select_db -msql_tablename -m_sslcert_gen_hash -mssql_bind -mssql_close -mssql_connect -mssql_data_seek -mssql_execute -mssql_fetch_array -mssql_fetch_assoc -mssql_fetch_batch -mssql_fetch_field -mssql_fetch_object -mssql_fetch_row -mssql_field_length -mssql_field_name -mssql_field_seek -mssql_field_type -mssql_free_result -mssql_free_statement -mssql_get_last_message -mssql_guid_string -mssql_init -mssql_min_error_severity -mssql_min_message_severity -mssql_next_result -mssql_num_fields -mssql_num_rows -mssql_pconnect -mssql_query -mssql_result -mssql_rows_affected -mssql_select_db -mt_getrandmax -mt_rand -m_transactionssent -m_transinqueue -m_transkeyval -m_transnew -m_transsend -mt_srand -multipleiterator -m_uwait -m_validateidentifier -m_verifyconnection -m_verifysslcert -mysql_affected_rows -mysql_client_encoding -mysql_close -mysql_connect -mysql_create_db -mysql_data_seek -mysql_db_name -mysql_db_query -mysql_drop_db -mysql_errno -mysql_error -mysql_escape_string -mysql_fetch_array -mysql_fetch_assoc -mysql_fetch_field -mysql_fetch_lengths -mysql_fetch_object -mysql_fetch_row -mysql_field_flags -mysql_field_len -mysql_field_name -mysql_field_seek -mysql_field_table -mysql_field_type -mysql_free_result -mysql_get_client_info -mysql_get_host_info -mysql_get_proto_info -mysql_get_server_info -mysqli -mysqli_bind_param -mysqli_bind_result -mysqli_client_encoding -mysqli_connect -mysqli_disable_reads_from_master -mysqli_disable_rpl_parse -mysqli_driver -mysqli_enable_reads_from_master -mysqli_enable_rpl_parse -mysqli_escape_string -mysqli_execute -mysqli_fetch -mysqli_get_metadata -mysqli_master_query -mysql_info -mysql_insert_id -mysqli_param_count -mysqli_report -mysqli_result -mysqli_rpl_parse_enabled -mysqli_rpl_probe -mysqli_rpl_query_type -mysqli_send_long_data -mysqli_send_query -mysqli_set_opt -mysqli_slave_query -mysqli_stmt -mysqli_warning -mysql_list_dbs -mysql_list_fields -mysql_list_processes -mysql_list_tables -mysqlnd_ms_get_stats -mysqlnd_ms_query_is_select -mysqlnd_ms_set_user_pick_server -mysqlnd_qc_change_handler -mysqlnd_qc_clear_cache -mysqlnd_qc_get_cache_info -mysqlnd_qc_get_core_stats -mysqlnd_qc_get_handler -mysqlnd_qc_get_query_trace_log -mysqlnd_qc_set_user_handlers -mysql_num_fields -mysql_num_rows -mysql_pconnect -mysql_ping -mysql_query -mysql_real_escape_string -mysql_result -mysql_select_db -mysql_set_charset -mysql_stat -mysql_tablename -mysql_thread_id -mysql_unbuffered_query -namespace -__NAMESPACE__ -natcasesort -natsort -ncurses_addch -ncurses_addchnstr -ncurses_addchstr -ncurses_addnstr -ncurses_addstr -ncurses_assume_default_colors -ncurses_attroff -ncurses_attron -ncurses_attrset -ncurses_baudrate -ncurses_beep -ncurses_bkgd -ncurses_bkgdset -ncurses_border -ncurses_bottom_panel -ncurses_can_change_color -ncurses_cbreak -ncurses_clear -ncurses_clrtobot -ncurses_clrtoeol -ncurses_color_content -ncurses_color_set -ncurses_curs_set -ncurses_define_key -ncurses_def_prog_mode -ncurses_def_shell_mode -ncurses_delay_output -ncurses_delch -ncurses_deleteln -ncurses_del_panel -ncurses_delwin -ncurses_doupdate -ncurses_echo -ncurses_echochar -ncurses_end -ncurses_erase -ncurses_erasechar -ncurses_filter -ncurses_flash -ncurses_flushinp -ncurses_getch -ncurses_getmaxyx -ncurses_getmouse -ncurses_getyx -ncurses_halfdelay -ncurses_has_colors -ncurses_has_ic -ncurses_has_il -ncurses_has_key -ncurses_hide_panel -ncurses_hline -ncurses_inch -ncurses_init -ncurses_init_color -ncurses_init_pair -ncurses_insch -ncurses_insdelln -ncurses_insertln -ncurses_insstr -ncurses_instr -ncurses_isendwin -ncurses_keyok -ncurses_keypad -ncurses_killchar -ncurses_longname -ncurses_meta -ncurses_mouseinterval -ncurses_mousemask -ncurses_mouse_trafo -ncurses_move -ncurses_move_panel -ncurses_mvaddch -ncurses_mvaddchnstr -ncurses_mvaddchstr -ncurses_mvaddnstr -ncurses_mvaddstr -ncurses_mvcur -ncurses_mvdelch -ncurses_mvgetch -ncurses_mvhline -ncurses_mvinch -ncurses_mvvline -ncurses_mvwaddstr -ncurses_napms -ncurses_newpad -ncurses_new_panel -ncurses_newwin -ncurses_nl -ncurses_nocbreak -ncurses_noecho -ncurses_nonl -ncurses_noqiflush -ncurses_noraw -ncurses_pair_content -ncurses_panel_above -ncurses_panel_below -ncurses_panel_window -ncurses_pnoutrefresh -ncurses_prefresh -ncurses_putp -ncurses_qiflush -ncurses_raw -ncurses_refresh -ncurses_replace_panel -ncurses_reset_prog_mode -ncurses_reset_shell_mode -ncurses_resetty -ncurses_savetty -ncurses_scr_dump -ncurses_scr_init -ncurses_scrl -ncurses_scr_restore -ncurses_scr_set -ncurses_show_panel -ncurses_slk_attr -ncurses_slk_attroff -ncurses_slk_attron -ncurses_slk_attrset -ncurses_slk_clear -ncurses_slk_color -ncurses_slk_init -ncurses_slk_noutrefresh -ncurses_slk_refresh -ncurses_slk_restore -ncurses_slk_set -ncurses_slk_touch -ncurses_standend -ncurses_standout -ncurses_start_color -ncurses_termattrs -ncurses_termname -ncurses_timeout -ncurses_top_panel -ncurses_typeahead -ncurses_ungetch -ncurses_ungetmouse -ncurses_update_panels -ncurses_use_default_colors -ncurses_use_env -ncurses_use_extended_names -ncurses_vidattr -ncurses_vline -ncurses_waddch -ncurses_waddstr -ncurses_wattroff -ncurses_wattron -ncurses_wattrset -ncurses_wborder -ncurses_wclear -ncurses_wcolor_set -ncurses_werase -ncurses_wgetch -ncurses_whline -ncurses_wmouse_trafo -ncurses_wmove -ncurses_wnoutrefresh -ncurses_wrefresh -ncurses_wstandend -ncurses_wstandout -ncurses_wvline -new -newinstance -newinstanceargs -newinstancewithoutconstructor -newt_bell -newt_button -newt_button_bar -newt_centered_window -newt_checkbox -newt_checkbox_get_value -newt_checkbox_set_flags -newt_checkbox_set_value -newt_checkbox_tree -newt_checkbox_tree_add_item -newt_checkbox_tree_find_item -newt_checkbox_tree_get_current -newt_checkbox_tree_get_entry_value -newt_checkbox_tree_get_multi_selection -newt_checkbox_tree_get_selection -newt_checkbox_tree_multi -newt_checkbox_tree_set_current -newt_checkbox_tree_set_entry -newt_checkbox_tree_set_entry_value -newt_checkbox_tree_set_width -newt_clear_key_buffer -newt_cls -newt_compact_button -newt_component_add_callback -newt_component_takes_focus -newt_create_grid -newt_cursor_off -newt_cursor_on -newt_delay -newt_draw_form -newt_draw_root_text -newt_entry -newt_entry_get_value -newt_entry_set -newt_entry_set_filter -newt_entry_set_flags -newt_finished -newt_form -newt_form_add_component -newt_form_add_components -newt_form_add_hot_key -newt_form_destroy -newt_form_get_current -newt_form_run -newt_form_set_background -newt_form_set_height -newt_form_set_size -newt_form_set_timer -newt_form_set_width -newt_form_watch_fd -newt_get_screen_size -newt_grid_add_components_to_form -newt_grid_basic_window -newt_grid_free -newt_grid_get_size -newt_grid_h_close_stacked -newt_grid_h_stacked -newt_grid_place -newt_grid_set_field -newt_grid_simple_window -newt_grid_v_close_stacked -newt_grid_v_stacked -newt_grid_wrapped_window -newt_grid_wrapped_window_at -newt_init -newt_label -newt_label_set_text -newt_listbox -newt_listbox_append_entry -newt_listbox_clear -newt_listbox_clear_selection -newt_listbox_delete_entry -newt_listbox_get_current -newt_listbox_get_selection -newt_listbox_insert_entry -newt_listbox_item_count -newt_listbox_select_item -newt_listbox_set_current -newt_listbox_set_current_by_key -newt_listbox_set_data -newt_listbox_set_entry -newt_listbox_set_width -newt_listitem -newt_listitem_get_data -newt_listitem_set -newt_open_window -newt_pop_help_line -newt_pop_window -newt_push_help_line -newt_radiobutton -newt_radio_get_current -newt_redraw_help_line -newt_reflow_text -newt_refresh -newt_resize_screen -newt_resume -newt_run_form -newt_scale -newt_scale_set -newt_scrollbar_set -newt_set_help_callback -newt_set_suspend_callback -newt_suspend -newt_textbox -newt_textbox_get_num_lines -newt_textbox_reflowed -newt_textbox_set_height -newt_textbox_set_text -newt_vertical_scrollbar -newt_wait_for_key -newt_win_choice -newt_win_entries -newt_win_menu -newt_win_message -newt_win_messagev -newt_win_ternary -next -ngettext -nl2br -nl_langinfo -norewinditerator -normalizer -notes_body -notes_copy_db -notes_create_db -notes_create_note -notes_drop_db -notes_find_note -notes_header_info -notes_list_msgs -notes_mark_read -notes_mark_unread -notes_nav_create -notes_search -notes_unread -notes_version -nsapi_request_headers -nsapi_response_headers -nsapi_virtual -nthmac -number_format -numberformatter -oauth -oauthexception -oauth_get_sbs -oauthprovider -oauth_urlencode -ob_clean -ob_deflatehandler -ob_end_clean -ob_end_flush -ob_etaghandler -ob_flush -ob_get_clean -ob_get_contents -ob_get_flush -ob_get_length -ob_get_level -ob_get_status -ob_gzhandler -ob_iconv_handler -ob_implicit_flush -ob_inflatehandler -ob_list_handlers -ob_start -ob_tidyhandler -oci_bind_array_by_name -ocibindbyname -oci_bind_by_name -ocicancel -oci_cancel -oci_client_version -oci_close -ocicloselob -ocicollappend -ocicollassign -ocicollassignelem -oci_collection_append -oci_collection_assign -oci_collection_element_assign -oci_collection_element_get -oci_collection_free -oci_collection_max -oci_collection_size -oci_collection_trim -ocicollgetelem -ocicollmax -ocicollsize -ocicolltrim -ocicolumnisnull -ocicolumnname -ocicolumnprecision -ocicolumnscale -ocicolumnsize -ocicolumntype -ocicolumntyperaw -ocicommit -oci_commit -oci_connect -ocidefinebyname -oci_define_by_name -ocierror -oci_error -ociexecute -oci_execute -ocifetch -oci_fetch -oci_fetch_all -oci_fetch_array -oci_fetch_assoc -ocifetchinto -oci_fetch_object -oci_fetch_row -ocifetchstatement -oci_field_is_null -oci_field_name -oci_field_precision -oci_field_scale -oci_field_size -oci_field_type -oci_field_type_raw -ocifreecollection -ocifreecursor -ocifreedesc -ocifreestatement -oci_free_statement -ociinternaldebug -oci_internal_debug -ociloadlob -oci_lob_append -oci_lob_close -oci_lob_copy -oci_lob_eof -oci_lob_erase -oci_lob_export -oci_lob_flush -oci_lob_free -oci_lob_getbuffering -oci_lob_import -oci_lob_is_equal -oci_lob_load -oci_lob_read -oci_lob_rewind -oci_lob_save -oci_lob_savefile -oci_lob_seek -oci_lob_setbuffering -oci_lob_size -oci_lob_tell -oci_lob_truncate -oci_lob_write -oci_lob_writetemporary -oci_lob_writetofile -ocilogoff -ocilogon -ocinewcollection -oci_new_collection -oci_new_connect -ocinewcursor -oci_new_cursor -ocinewdescriptor -oci_new_descriptor -ocinlogon -ocinumcols -oci_num_fields -oci_num_rows -ociparse -oci_parse -oci_password_change -oci_pconnect -ociplogon -ociresult -oci_result -ocirollback -oci_rollback -ocirowcount -ocisavelob -ocisavelobfile -ociserverversion -oci_server_version -oci_set_action -oci_set_client_identifier -oci_set_client_info -oci_set_edition -oci_set_module_name -ocisetprefetch -oci_set_prefetch -ocistatementtype -oci_statement_type -ociwritelobtofile -ociwritetemporarylob -octdec -odbc_autocommit -odbc_binmode -odbc_close -odbc_close_all -odbc_columnprivileges -odbc_columns -odbc_commit -odbc_connect -odbc_cursor -odbc_data_source -odbc_do -odbc_error -odbc_errormsg -odbc_exec -odbc_execute -odbc_fetch_array -odbc_fetch_into -odbc_fetch_object -odbc_fetch_row -odbc_field_len -odbc_field_name -odbc_field_num -odbc_field_precision -odbc_field_scale -odbc_field_type -odbc_foreignkeys -odbc_free_result -odbc_gettypeinfo -odbc_longreadlen -odbc_next_result -odbc_num_fields -odbc_num_rows -odbc_pconnect -odbc_prepare -odbc_primarykeys -odbc_procedurecolumns -odbc_procedures -odbc_result -odbc_result_all -odbc_rollback -odbc_setoption -odbc_specialcolumns -odbc_statistics -odbc_tableprivileges -odbc_tables -old_function -openal_buffer_create -openal_buffer_data -openal_buffer_destroy -openal_buffer_get -openal_buffer_loadwav -openal_context_create -openal_context_current -openal_context_destroy -openal_context_process -openal_context_suspend -openal_device_close -openal_device_open -openal_listener_get -openal_listener_set -openal_source_create -openal_source_destroy -openal_source_get -openal_source_pause -openal_source_play -openal_source_rewind -openal_source_set -openal_source_stop -openal_stream -opendir -openlog -openssl_cipher_iv_length -openssl_csr_export -openssl_csr_export_to_file -openssl_csr_get_public_key -openssl_csr_get_subject -openssl_csr_new -openssl_csr_sign -openssl_decrypt -openssl_dh_compute_key -openssl_digest -openssl_encrypt -openssl_error_string -openssl_free_key -openssl_get_cipher_methods -openssl_get_md_methods -openssl_get_privatekey -openssl_get_publickey -openssl_open -openssl_pkcs12_export -openssl_pkcs12_export_to_file -openssl_pkcs12_read -openssl_pkcs7_decrypt -openssl_pkcs7_encrypt -openssl_pkcs7_sign -openssl_pkcs7_verify -openssl_pkey_export -openssl_pkey_export_to_file -openssl_pkey_free -openssl_pkey_get_details -openssl_pkey_get_private -openssl_pkey_get_public -openssl_pkey_new -openssl_private_decrypt -openssl_private_encrypt -openssl_public_decrypt -openssl_public_encrypt -openssl_random_pseudo_bytes -openssl_seal -openssl_sign -openssl_verify -openssl_x509_check_private_key -openssl_x509_checkpurpose -openssl_x509_export -openssl_x509_export_to_file -openssl_x509_free -openssl_x509_parse -openssl_x509_read -or -ord -outeriterator -outofboundsexception -outofrangeexception -output_add_rewrite_var -output_reset_rewrite_vars -overflowexception -overload -override_function -ovrimos_close -ovrimos_commit -ovrimos_connect -ovrimos_cursor -ovrimos_exec -ovrimos_execute -ovrimos_fetch_into -ovrimos_fetch_row -ovrimos_field_len -ovrimos_field_name -ovrimos_field_num -ovrimos_field_type -ovrimos_free_result -ovrimos_longreadlen -ovrimos_num_fields -ovrimos_num_rows -ovrimos_prepare -ovrimos_result -ovrimos_result_all -ovrimos_rollback -pack -parentiterator -parse_ini_file -parse_ini_string -parsekit_compile_file -parsekit_compile_string -parsekit_func_arginfo -parse_str -parse_url -passthru -pathinfo -pclose -pcntl_alarm -pcntl_exec -pcntl_fork -pcntl_getpriority -pcntl_setpriority -pcntl_signal -pcntl_signal_dispatch -pcntl_sigprocmask -pcntl_sigtimedwait -pcntl_sigwaitinfo -pcntl_wait -pcntl_waitpid -pcntl_wexitstatus -pcntl_wifexited -pcntl_wifsignaled -pcntl_wifstopped -pcntl_wstopsig -pcntl_wtermsig -pdf_activate_item -pdf_add_annotation -pdf_add_bookmark -pdf_add_launchlink -pdf_add_locallink -pdf_add_nameddest -pdf_add_note -pdf_add_outline -pdf_add_pdflink -pdf_add_table_cell -pdf_add_textflow -pdf_add_thumbnail -pdf_add_weblink -pdf_arc -pdf_arcn -pdf_attach_file -pdf_begin_document -pdf_begin_font -pdf_begin_glyph -pdf_begin_item -pdf_begin_layer -pdf_begin_page -pdf_begin_page_ext -pdf_begin_pattern -pdf_begin_template -pdf_begin_template_ext -pdf_circle -pdf_clip -pdf_close -pdf_close_image -pdf_closepath -pdf_closepath_fill_stroke -pdf_closepath_stroke -pdf_close_pdi -pdf_close_pdi_page -pdf_concat -pdf_continue_text -pdf_create_3dview -pdf_create_action -pdf_create_annotation -pdf_create_bookmark -pdf_create_field -pdf_create_fieldgroup -pdf_create_gstate -pdf_create_pvf -pdf_create_textflow -pdf_curveto -pdf_define_layer -pdf_delete -pdf_delete_pvf -pdf_delete_table -pdf_delete_textflow -pdf_encoding_set_char -pdf_end_document -pdf_end_font -pdf_end_glyph -pdf_end_item -pdf_end_layer -pdf_end_page -pdf_end_page_ext -pdf_endpath -pdf_end_pattern -pdf_end_template -pdf_fill -pdf_fill_imageblock -pdf_fill_pdfblock -pdf_fill_stroke -pdf_fill_textblock -pdf_findfont -pdf_fit_image -pdf_fit_pdi_page -pdf_fit_table -pdf_fit_textflow -pdf_fit_textline -pdf_get_apiname -pdf_get_buffer -pdf_get_errmsg -pdf_get_errnum -pdf_get_font -pdf_get_fontname -pdf_get_fontsize -pdf_get_image_height -pdf_get_image_width -pdf_get_majorversion -pdf_get_minorversion -pdf_get_parameter -pdf_get_pdi_parameter -pdf_get_pdi_value -pdf_get_value -pdf_info_font -pdf_info_matchbox -pdf_info_table -pdf_info_textflow -pdf_info_textline -pdf_initgraphics -pdf_lineto -pdf_load_3ddata -pdf_load_font -pdf_load_iccprofile -pdf_load_image -pdf_makespotcolor -pdf_moveto -pdf_new -pdf_open_ccitt -pdf_open_file -pdf_open_gif -pdf_open_image -pdf_open_image_file -pdf_open_jpeg -pdf_open_memory_image -pdf_open_pdi -pdf_open_pdi_document -pdf_open_pdi_page -pdf_open_tiff -pdf_pcos_get_number -pdf_pcos_get_stream -pdf_pcos_get_string -pdf_place_image -pdf_place_pdi_page -pdf_process_pdi -pdf_rect -pdf_restore -pdf_resume_page -pdf_rotate -pdf_save -pdf_scale -pdf_set_border_color -pdf_set_border_dash -pdf_set_border_style -pdf_set_char_spacing -pdf_setcolor -pdf_setdash -pdf_setdashpattern -pdf_set_duration -pdf_setflat -pdf_setfont -pdf_setgray -pdf_setgray_fill -pdf_setgray_stroke -pdf_set_gstate -pdf_set_horiz_scaling -pdf_set_info -pdf_set_info_author -pdf_set_info_creator -pdf_set_info_keywords -pdf_set_info_subject -pdf_set_info_title -pdf_set_layer_dependency -pdf_set_leading -pdf_setlinecap -pdf_setlinejoin -pdf_setlinewidth -pdf_setmatrix -pdf_setmiterlimit -pdf_set_parameter -pdf_setpolydash -pdf_setrgbcolor -pdf_setrgbcolor_fill -pdf_setrgbcolor_stroke -pdf_set_text_matrix -pdf_set_text_pos -pdf_set_text_rendering -pdf_set_text_rise -pdf_set_value -pdf_set_word_spacing -pdf_shading -pdf_shading_pattern -pdf_shfill -pdf_show -pdf_show_boxed -pdf_show_xy -pdf_skew -pdf_stringwidth -pdf_stroke -pdf_suspend_page -pdf_translate -pdf_utf16_to_utf8 -pdf_utf32_to_utf16 -pdf_utf8_to_utf16 -pdo -pdo_cubrid_schema -pdoexception -pdo_pgsqllobcreate -pdo_pgsqllobopen -pdo_pgsqllobunlink -pdo_sqlitecreateaggregate -pdo_sqlitecreatefunction -pdostatement -pfsockopen -pg_affected_rows -pg_cancel_query -pg_client_encoding -pg_close -pg_connect -pg_connection_busy -pg_connection_reset -pg_connection_status -pg_convert -pg_copy_from -pg_copy_to -pg_dbname -pg_delete -pg_end_copy -pg_escape_bytea -pg_escape_string -pg_execute -pg_fetch_all -pg_fetch_all_columns -pg_fetch_array -pg_fetch_assoc -pg_fetch_object -pg_fetch_result -pg_fetch_row -pg_field_is_null -pg_field_name -pg_field_num -pg_field_prtlen -pg_field_size -pg_field_table -pg_field_type -pg_field_type_oid -pg_free_result -pg_get_notify -pg_get_pid -pg_get_result -pg_host -pg_insert -pg_last_error -pg_last_notice -pg_last_oid -pg_lo_close -pg_lo_create -pg_lo_export -pg_lo_import -pg_lo_open -pg_lo_read -pg_lo_read_all -pg_lo_seek -pg_lo_tell -pg_lo_unlink -pg_lo_write -pg_meta_data -pg_num_fields -pg_num_rows -pg_options -pg_parameter_status -pg_pconnect -pg_ping -pg_port -pg_prepare -pg_put_line -pg_query -pg_query_params -pg_result_error -pg_result_error_field -pg_result_seek -pg_result_status -pg_select -pg_send_execute -pg_send_prepare -pg_send_query -pg_send_query_params -pg_set_client_encoding -pg_set_error_verbosity -pg_trace -pg_transaction_status -pg_tty -pg_unescape_bytea -pg_untrace -pg_update -pg_version -Phar -PharData -PharException -PharFileInfo -php_check_syntax -phpcredits -phpinfo -php_ini_loaded_file -php_ini_scanned_files -php_logo_guid -php_sapi_name -php_strip_whitespace -php_uname -phpversion -pi -png2wbmp -popen -pos -posix_access -posix_ctermid -posix_errno -posix_getcwd -posix_getegid -posix_geteuid -posix_getgid -posix_getgrgid -posix_getgrnam -posix_getgroups -posix_get_last_error -posix_getlogin -posix_getpgid -posix_getpgrp -posix_getpid -posix_getppid -posix_getpwnam -posix_getpwuid -posix_getrlimit -posix_getsid -posix_getuid -posix_initgroups -posix_isatty -posix_kill -posix_mkfifo -posix_mknod -posix_setegid -posix_seteuid -posix_setgid -posix_setpgid -posix_setsid -posix_setuid -posix_strerror -posix_times -posix_ttyname -posix_uname -pow -preg_filter -preg_grep -preg_last_error -preg_match -preg_match_all -preg_quote -preg_replace -preg_replace_callback -preg_split -prev -print -printer_abort -printer_close -printer_create_brush -printer_create_dc -printer_create_font -printer_create_pen -printer_delete_brush -printer_delete_dc -printer_delete_font -printer_delete_pen -printer_draw_bmp -printer_draw_chord -printer_draw_elipse -printer_draw_line -printer_draw_pie -printer_draw_rectangle -printer_draw_roundrect -printer_draw_text -printer_end_doc -printer_end_page -printer_get_option -printer_list -printer_logical_fontheight -printer_open -printer_select_brush -printer_select_font -printer_select_pen -printer_set_option -printer_start_doc -printer_start_page -printer_write -printf -print_r -private -proc_close -proc_get_status -proc_nice -proc_open -proc_terminate -property_exists -protected -ps_add_bookmark -ps_add_launchlink -ps_add_locallink -ps_add_note -ps_add_pdflink -ps_add_weblink -ps_arc -ps_arcn -ps_begin_page -ps_begin_pattern -ps_begin_template -ps_circle -ps_clip -ps_close -ps_close_image -ps_closepath -ps_closepath_stroke -ps_continue_text -ps_curveto -ps_delete -ps_end_page -ps_end_pattern -ps_end_template -ps_fill -ps_fill_stroke -ps_findfont -ps_get_buffer -ps_get_parameter -ps_get_value -ps_hyphenate -ps_include_file -ps_lineto -ps_makespotcolor -ps_moveto -ps_new -ps_open_file -ps_open_image -ps_open_image_file -ps_open_memory_image -pspell_add_to_personal -pspell_add_to_session -pspell_check -pspell_clear_session -pspell_config_create -pspell_config_data_dir -pspell_config_dict_dir -pspell_config_ignore -pspell_config_mode -pspell_config_personal -pspell_config_repl -pspell_config_runtogether -pspell_config_save_repl -pspell_new -pspell_new_config -pspell_new_personal -pspell_save_wordlist -pspell_store_replacement -pspell_suggest -ps_place_image -ps_rect -ps_restore -ps_rotate -ps_save -ps_scale -ps_set_border_color -ps_set_border_dash -ps_set_border_style -ps_setcolor -ps_setdash -ps_setflat -ps_setfont -ps_setgray -ps_set_info -ps_setlinecap -ps_setlinejoin -ps_setlinewidth -ps_setmiterlimit -ps_setoverprintmode -ps_set_parameter -ps_setpolydash -ps_set_text_pos -ps_set_value -ps_shading -ps_shading_pattern -ps_shfill -ps_show -ps_show2 -ps_show_boxed -ps_show_xy -ps_show_xy2 -ps_string_geometry -ps_stringwidth -ps_stroke -ps_symbol -ps_symbol_name -ps_symbol_width -ps_translate -public -putenv -px_close -px_create_fp -px_date2string -px_delete -px_delete_record -px_get_field -px_get_info -px_get_parameter -px_get_record -px_get_schema -px_get_value -px_insert_record -px_new -px_numfields -px_numrecords -px_open_fp -px_put_record -px_retrieve_record -px_set_blob_file -px_set_parameter -px_set_tablename -px_set_targetencoding -px_set_value -px_timestamp2string -px_update_record -qdom_error -qdom_tree -quickhashinthash -quickhashintset -quickhashintstringhash -quickhashstringinthash -quoted_printable_decode -quoted_printable_encode -quotemeta -rad2deg -radius_acct_open -radius_add_server -radius_auth_open -radius_close -radius_config -radius_create_request -radius_cvt_addr -radius_cvt_int -radius_cvt_string -radius_demangle -radius_demangle_mppe_key -radius_get_attr -radius_get_vendor_attr -radius_put_addr -radius_put_attr -radius_put_int -radius_put_string -radius_put_vendor_addr -radius_put_vendor_attr -radius_put_vendor_int -radius_put_vendor_string -radius_request_authenticator -radius_send_request -radius_server_secret -radius_strerror -rand -range -rangeexception -rararchive -rarentry -rarexception -rar_wrapper_cache_stats -rawurldecode -rawurlencode -readdir -read_exif_data -readfile -readgzfile -readline -readline_add_history -readline_callback_handler_install -readline_callback_handler_remove -readline_callback_read_char -readline_clear_history -readline_completion_function -readline_info -readline_list_history -readline_on_new_line -readline_read_history -readline_redisplay -readline_write_history -readlink -realpath -realpath_cache_get -realpath_cache_size -recode -recode_file -recode_string -recursivearrayiterator -recursivecachingiterator -recursivecallbackfilteriterator -recursivedirectoryiterator -recursivefilteriterator -recursiveiterator -recursiveiteratoriterator -recursiveregexiterator -recursivetreeiterator -reflection -reflectionclass -reflectionexception -reflectionextension -reflectionfunction -reflectionfunctionabstract -reflectionmethod -reflectionobject -reflectionparameter -reflectionproperty -reflector -regexiterator -register_shutdown_function -register_tick_function -rename -rename_function -require -require_once -reset -resetValue -resourcebundle -restore_error_handler -restore_exception_handler -restore_include_path -return -rewind -rewinddir -rmdir -round -rpm_close -rpm_get_tag -rpm_is_valid -rpm_open -rpm_version -rrd_create -rrdcreator -rrd_error -rrd_fetch -rrd_first -rrdgraph -rrd_graph -rrd_info -rrd_last -rrd_lastupdate -rrd_restore -rrd_tune -rrd_update -rrdupdater -rrd_version -rrd_xport -rsort -rtrim -runkit_class_adopt -runkit_class_emancipate -runkit_constant_add -runkit_constant_redefine -runkit_constant_remove -runkit_function_add -runkit_function_copy -runkit_function_redefine -runkit_function_remove -runkit_function_rename -runkit_import -runkit_lint -runkit_lint_file -runkit_method_add -runkit_method_copy -runkit_method_redefine -runkit_method_remove -runkit_method_rename -runkit_return_value_used -runkit_sandbox_output_handler -runkit_superglobals -runtimeexception -samconnection_commit -samconnection_connect -samconnection_constructor -samconnection_disconnect -samconnection_errno -samconnection_error -samconnection_isconnected -samconnection_peek -samconnection_peekall -samconnection_receive -samconnection_remove -samconnection_rollback -samconnection_send -samconnection_setDebug -samconnection_subscribe -samconnection_unsubscribe -sammessage_body -sammessage_constructor -sammessage_header -sca_createdataobject -sca_getservice -sca_localproxy_createdataobject -scandir -sca_soapproxy_createdataobject -sdo_das_changesummary_beginlogging -sdo_das_changesummary_endlogging -sdo_das_changesummary_getchangeddataobjects -sdo_das_changesummary_getchangetype -sdo_das_changesummary_getoldcontainer -sdo_das_changesummary_getoldvalues -sdo_das_changesummary_islogging -sdo_das_datafactory_addpropertytotype -sdo_das_datafactory_addtype -sdo_das_datafactory_getdatafactory -sdo_das_dataobject_getchangesummary -sdo_das_relational_applychanges -sdo_das_relational_construct -sdo_das_relational_createrootdataobject -sdo_das_relational_executepreparedquery -sdo_das_relational_executequery -sdo_das_setting_getlistindex -sdo_das_setting_getpropertyindex -sdo_das_setting_getpropertyname -sdo_das_setting_getvalue -sdo_das_setting_isset -sdo_das_xml_addtypes -sdo_das_xml_create -sdo_das_xml_createdataobject -sdo_das_xml_createdocument -sdo_das_xml_document_getrootdataobject -sdo_das_xml_document_getrootelementname -sdo_das_xml_document_getrootelementuri -sdo_das_xml_document_setencoding -sdo_das_xml_document_setxmldeclaration -sdo_das_xml_document_setxmlversion -sdo_das_xml_loadfile -sdo_das_xml_loadstring -sdo_das_xml_savefile -sdo_das_xml_savestring -sdo_datafactory_create -sdo_dataobject_clear -sdo_dataobject_createdataobject -sdo_dataobject_getcontainer -sdo_dataobject_getsequence -sdo_dataobject_gettypename -sdo_dataobject_gettypenamespaceuri -sdo_exception_getcause -sdo_list_insert -sdo_model_property_getcontainingtype -sdo_model_property_getdefault -sdo_model_property_getname -sdo_model_property_gettype -sdo_model_property_iscontainment -sdo_model_property_ismany -sdo_model_reflectiondataobject_construct -sdo_model_reflectiondataobject_export -sdo_model_reflectiondataobject_getcontainmentproperty -sdo_model_reflectiondataobject_getinstanceproperties -sdo_model_reflectiondataobject_gettype -sdo_model_type_getbasetype -sdo_model_type_getname -sdo_model_type_getnamespaceuri -sdo_model_type_getproperties -sdo_model_type_getproperty -sdo_model_type_isabstracttype -sdo_model_type_isdatatype -sdo_model_type_isinstance -sdo_model_type_isopentype -sdo_model_type_issequencedtype -sdo_sequence_getproperty -sdo_sequence_insert -sdo_sequence_move -seekableiterator -sem_acquire -sem_get -sem_release -sem_remove -serializable -serialize -session_cache_expire -session_cache_limiter -session_commit -session_decode -session_destroy -session_encode -session_get_cookie_params -session_id -session_is_registered -session_module_name -session_name -session_pgsql_add_error -session_pgsql_get_error -session_pgsql_get_field -session_pgsql_reset -session_pgsql_set_field -session_pgsql_status -session_regenerate_id -session_register -session_save_path -session_set_cookie_params -session_set_save_handler -session_start -session_unregister -session_unset -session_write_close -__set() -setcookie -setCounterClass -set_error_handler -set_exception_handler -set_file_buffer -set_include_path -setlocale -set_magic_quotes_runtime -setproctitle -setrawcookie -set_socket_blocking -__set_state() -setstaticpropertyvalue -setthreadtitle -set_time_limit -settype -sha1 -sha1_file -shell_exec -shm_attach -shm_detach -shm_get_var -shm_has_var -shmop_close -shmop_delete -shmop_open -shmop_read -shmop_size -shmop_write -shm_put_var -shm_remove -shm_remove_var -show_source -shuffle -signeurlpaiement -similar_text -simplexmlelement -simplexml_import_dom -simplexmliterator -simplexml_load_file -simplexml_load_string -sin -sinh -sizeof -sleep -__sleep() -snmp -snmp2_get -snmp2_getnext -snmp2_real_walk -snmp2_set -snmp2_walk -snmp3_get -snmp3_getnext -snmp3_real_walk -snmp3_set -snmp3_walk -snmpexception -snmpget -snmpgetnext -snmp_get_quick_print -snmp_get_valueretrieval -snmp_read_mib -snmprealwalk -snmpset -snmp_set_enum_print -snmp_set_oid_numeric_print -snmp_set_oid_output_format -snmp_set_quick_print -snmp_set_valueretrieval -snmpwalk -snmpwalkoid -soapclient -soapfault -soapheader -soapparam -soapserver -soapvar -socket_accept -socket_bind -socket_clear_error -socket_close -socket_connect -socket_create -socket_create_listen -socket_create_pair -socket_get_option -socket_getpeername -socket_getsockname -socket_get_status -socket_last_error -socket_listen -socket_read -socket_recv -socket_recvfrom -socket_select -socket_send -socket_sendto -socket_set_block -socket_set_blocking -socket_set_nonblock -socket_set_option -socket_set_timeout -socket_shutdown -socket_strerror -socket_write -solrclient -solrclientexception -solrdocument -solrdocumentfield -solrexception -solrgenericresponse -solr_get_version -solrillegalargumentexception -solrillegaloperationexception -solrinputdocument -solrmodifiableparams -solrobject -solrparams -solrpingresponse -solrquery -solrqueryresponse -solrresponse -solrupdateresponse -solrutils -sort -soundex -sphinxclient -spl_autoload -spl_autoload_call -spl_autoload_extensions -spl_autoload_functions -spl_autoload_register -spl_autoload_unregister -splbool -spl_classes -spldoublylinkedlist -splenum -splfileinfo -splfileobject -splfixedarray -splfloat -splheap -splint -split -spliti -splmaxheap -splminheap -spl_object_hash -splobjectstorage -splobserver -splpriorityqueue -splqueue -splstack -splstring -splsubject -spltempfileobject -spltype -spoofchecker -sprintf -sqlite3 -sqlite3result -sqlite3stmt -sqlite_array_query -sqlite_busy_timeout -sqlite_changes -sqlite_close -sqlite_column -sqlite_create_aggregate -sqlite_create_function -sqlite_current -sqlite_error_string -sqlite_escape_string -sqlite_exec -sqlite_factory -sqlite_fetch_all -sqlite_fetch_array -sqlite_fetch_column_types -sqlite_fetch_object -sqlite_fetch_single -sqlite_fetch_string -sqlite_field_name -sqlite_has_more -sqlite_has_prev -sqlite_key -sqlite_last_error -sqlite_last_insert_rowid -sqlite_libencoding -sqlite_libversion -sqlite_next -sqlite_num_fields -sqlite_num_rows -sqlite_open -sqlite_popen -sqlite_prev -sqlite_query -sqlite_rewind -sqlite_seek -sqlite_single_query -sqlite_udf_decode_binary -sqlite_udf_encode_binary -sqlite_unbuffered_query -sqlite_valid -sql_regcase -sqlsrv_begin_transaction -sqlsrv_cancel -sqlsrv_client_info -sqlsrv_close -sqlsrv_commit -sqlsrv_configure -sqlsrv_connect -sqlsrv_errors -sqlsrv_execute -sqlsrv_fetch -sqlsrv_fetch_array -sqlsrv_fetch_object -sqlsrv_field_metadata -sqlsrv_free_stmt -sqlsrv_get_config -sqlsrv_get_field -sqlsrv_has_rows -sqlsrv_next_result -sqlsrv_num_fields -sqlsrv_num_rows -sqlsrv_prepare -sqlsrv_query -sqlsrv_rollback -sqlsrv_rows_affected -sqlsrv_send_stream_data -sqlsrv_server_info -sqrt -srand -sscanf -ssdeep_fuzzy_compare -ssdeep_fuzzy_hash -ssdeep_fuzzy_hash_filename -ssh2_auth_hostbased_file -ssh2_auth_none -ssh2_auth_password -ssh2_auth_pubkey_file -ssh2_connect -ssh2_exec -ssh2_fetch_stream -ssh2_fingerprint -ssh2_methods_negotiated -ssh2_publickey_add -ssh2_publickey_init -ssh2_publickey_list -ssh2_publickey_remove -ssh2_scp_recv -ssh2_scp_send -ssh2_sftp -ssh2_sftp_lstat -ssh2_sftp_mkdir -ssh2_sftp_readlink -ssh2_sftp_realpath -ssh2_sftp_rename -ssh2_sftp_rmdir -ssh2_sftp_stat -ssh2_sftp_symlink -ssh2_sftp_unlink -ssh2_shell -ssh2_tunnel -stat -static -stats_absolute_deviation -stats_cdf_beta -stats_cdf_binomial -stats_cdf_cauchy -stats_cdf_chisquare -stats_cdf_exponential -stats_cdf_f -stats_cdf_gamma -stats_cdf_laplace -stats_cdf_logistic -stats_cdf_negative_binomial -stats_cdf_noncentral_chisquare -stats_cdf_noncentral_f -stats_cdf_poisson -stats_cdf_t -stats_cdf_uniform -stats_cdf_weibull -stats_covariance -stats_dens_beta -stats_dens_cauchy -stats_dens_chisquare -stats_dens_exponential -stats_dens_f -stats_dens_gamma -stats_dens_laplace -stats_dens_logistic -stats_dens_negative_binomial -stats_dens_normal -stats_dens_pmf_binomial -stats_dens_pmf_hypergeometric -stats_dens_pmf_poisson -stats_dens_t -stats_dens_weibull -stats_den_uniform -stats_harmonic_mean -stats_kurtosis -stats_rand_gen_beta -stats_rand_gen_chisquare -stats_rand_gen_exponential -stats_rand_gen_f -stats_rand_gen_funiform -stats_rand_gen_gamma -stats_rand_gen_ibinomial -stats_rand_gen_ibinomial_negative -stats_rand_gen_int -stats_rand_gen_ipoisson -stats_rand_gen_iuniform -stats_rand_gen_noncenral_chisquare -stats_rand_gen_noncentral_f -stats_rand_gen_noncentral_t -stats_rand_gen_normal -stats_rand_gen_t -stats_rand_get_seeds -stats_rand_phrase_to_seeds -stats_rand_ranf -stats_rand_setall -stats_skew -stats_standard_deviation -stats_stat_binomial_coef -stats_stat_correlation -stats_stat_gennch -stats_stat_independent_t -stats_stat_innerproduct -stats_stat_noncentral_t -stats_stat_paired_t -stats_stat_percentile -stats_stat_powersum -stats_variance -stomp -stomp_connect_error -stompexception -stompframe -stomp_version -strcasecmp -strchr -strcmp -strcoll -strcspn -stream_bucket_append -stream_bucket_make_writeable -stream_bucket_new -stream_bucket_prepend -stream_context_create -stream_context_get_default -stream_context_get_options -stream_context_get_params -stream_context_set_default -stream_context_set_option -stream_context_set_params -stream_copy_to_stream -stream_encoding -stream_filter_append -stream_filter_prepend -stream_filter_register -stream_filter_remove -stream_get_contents -stream_get_filters -stream_get_line -stream_get_meta_data -stream_get_transports -stream_get_wrappers -stream_is_local -stream_notification_callback -stream_register_wrapper -stream_resolve_include_path -stream_select -stream_set_blocking -stream_set_read_buffer -stream_set_timeout -stream_set_write_buffer -stream_socket_accept -stream_socket_client -stream_socket_enable_crypto -stream_socket_get_name -stream_socket_pair -stream_socket_recvfrom -stream_socket_sendto -stream_socket_server -stream_socket_shutdown -stream_supports_lock -streamwrapper -stream_wrapper_register -stream_wrapper_restore -stream_wrapper_unregister -strftime -str_getcsv -stripcslashes -stripos -stripslashes -strip_tags -str_ireplace -stristr -strlen -strnatcasecmp -strnatcmp -strncasecmp -strncmp -str_pad -strpbrk -strpos -strptime -strrchr -str_repeat -str_replace -strrev -strripos -str_rot13 -strrpos -str_shuffle -str_split -strspn -strstr -strtok -strtolower -strtotime -strtoupper -strtr -strval -str_word_count -substr -substr_compare -substr_count -substr_replace -svm -svmmodel -svn_add -svn_auth_get_parameter -svn_auth_set_parameter -svn_blame -svn_cat -svn_checkout -svn_cleanup -svn_client_version -svn_commit -svn_delete -svn_diff -svn_export -svn_fs_abort_txn -svn_fs_apply_text -svn_fs_begin_txn2 -svn_fs_change_node_prop -svn_fs_check_path -svn_fs_contents_changed -svn_fs_copy -svn_fs_delete -svn_fs_dir_entries -svn_fs_file_contents -svn_fs_file_length -svn_fs_is_dir -svn_fs_is_file -svn_fs_make_dir -svn_fs_make_file -svn_fs_node_created_rev -svn_fs_node_prop -svn_fs_props_changed -svn_fs_revision_prop -svn_fs_revision_root -svn_fs_txn_root -svn_fs_youngest_rev -svn_import -svn_log -svn_ls -svn_mkdir -svn_repos_create -svn_repos_fs -svn_repos_fs_begin_txn_for_commit -svn_repos_fs_commit_txn -svn_repos_hotcopy -svn_repos_open -svn_repos_recover -svn_revert -svn_status -svn_update -swfaction -swfaction.construct -swf_actiongeturl -swf_actiongotoframe -swf_actiongotolabel -swf_actionnextframe -swf_actionplay -swf_actionprevframe -swf_actionsettarget -swf_actionstop -swf_actiontogglequality -swf_actionwaitforframe -swf_addbuttonrecord -swf_addcolor -swfbitmap -swfbitmap.construct -swfbitmap.getheight -swfbitmap.getwidth -swfbutton -swfbutton.addaction -swfbutton.addasound -swfbutton.addshape -swfbutton.construct -swfbutton.setaction -swfbutton.setdown -swfbutton.sethit -swfbutton.setmenu -swfbutton.setover -swfbutton.setup -swf_closefile -swf_definebitmap -swf_definefont -swf_defineline -swf_definepoly -swf_definerect -swf_definetext -swfdisplayitem -swfdisplayitem.addaction -swfdisplayitem.addcolor -swfdisplayitem.endmask -swfdisplayitem.getrot -swfdisplayitem.getx -swfdisplayitem.getxscale -swfdisplayitem.getxskew -swfdisplayitem.gety -swfdisplayitem.getyscale -swfdisplayitem.getyskew -swfdisplayitem.move -swfdisplayitem.moveto -swfdisplayitem.multcolor -swfdisplayitem.remove -swfdisplayitem.rotate -swfdisplayitem.rotateto -swfdisplayitem.scale -swfdisplayitem.scaleto -swfdisplayitem.setdepth -swfdisplayitem.setmasklevel -swfdisplayitem.setmatrix -swfdisplayitem.setname -swfdisplayitem.setratio -swfdisplayitem.skewx -swfdisplayitem.skewxto -swfdisplayitem.skewy -swfdisplayitem.skewyto -swf_endbutton -swf_enddoaction -swf_endshape -swf_endsymbol -swffill -swffill.moveto -swffill.rotateto -swffill.scaleto -swffill.skewxto -swffill.skewyto -swffont -swffontchar -swffontchar.addchars -swffontchar.addutf8chars -swffont.construct -swffont.getascent -swffont.getdescent -swffont.getleading -swffont.getshape -swffont.getutf8width -swffont.getwidth -swf_fontsize -swf_fontslant -swf_fonttracking -swf_getbitmapinfo -swf_getfontinfo -swf_getframe -swfgradient -swfgradient.addentry -swfgradient.construct -swf_labelframe -swf_lookat -swf_modifyobject -swfmorph -swfmorph.construct -swfmorph.getshape1 -swfmorph.getshape2 -swfmovie -swfmovie.add -swfmovie.addexport -swfmovie.addfont -swfmovie.construct -swfmovie.importchar -swfmovie.importfont -swfmovie.labelframe -swfmovie.nextframe -swfmovie.output -swfmovie.remove -swfmovie.save -swfmovie.savetofile -swfmovie.setbackground -swfmovie.setdimension -swfmovie.setframes -swfmovie.setrate -swfmovie.startsound -swfmovie.stopsound -swfmovie.streammp3 -swfmovie.writeexports -swf_mulcolor -swf_nextid -swf_oncondition -swf_openfile -swf_ortho -swf_ortho2 -swf_perspective -swf_placeobject -swf_polarview -swf_popmatrix -swf_posround -swfprebuiltclip -swfprebuiltclip.construct -swf_pushmatrix -swf_removeobject -swf_rotate -swf_scale -swf_setfont -swf_setframe -swfshape -swfshape.addfill -swf_shapearc -swfshape.construct -swf_shapecurveto -swf_shapecurveto3 -swfshape.drawarc -swfshape.drawcircle -swfshape.drawcubic -swfshape.drawcubicto -swfshape.drawcurve -swfshape.drawcurveto -swfshape.drawglyph -swfshape.drawline -swfshape.drawlineto -swf_shapefillbitmapclip -swf_shapefillbitmaptile -swf_shapefilloff -swf_shapefillsolid -swf_shapelinesolid -swf_shapelineto -swfshape.movepen -swfshape.movepento -swf_shapemoveto -swfshape.setleftfill -swfshape.setline -swfshape.setrightfill -swf_showframe -swfsound -swfsound.construct -swfsoundinstance -swfsoundinstance.loopcount -swfsoundinstance.loopinpoint -swfsoundinstance.loopoutpoint -swfsoundinstance.nomultiple -swfsprite -swfsprite.add -swfsprite.construct -swfsprite.labelframe -swfsprite.nextframe -swfsprite.remove -swfsprite.setframes -swfsprite.startsound -swfsprite.stopsound -swf_startbutton -swf_startdoaction -swf_startshape -swf_startsymbol -swftext -swftext.addstring -swftext.addutf8string -swftext.construct -swftextfield -swftextfield.addchars -swftextfield.addstring -swftextfield.align -swftextfield.construct -swftextfield.setbounds -swftextfield.setcolor -swftextfield.setfont -swftextfield.setheight -swftextfield.setindentation -swftextfield.setleftmargin -swftextfield.setlinespacing -swftextfield.setmargins -swftextfield.setname -swftextfield.setpadding -swftextfield.setrightmargin -swftext.getascent -swftext.getdescent -swftext.getleading -swftext.getutf8width -swftext.getwidth -swftext.moveto -swftext.setcolor -swftext.setfont -swftext.setheight -swftext.setspacing -swf_textwidth -swf_translate -swfvideostream -swfvideostream.construct -swfvideostream.getnumframes -swfvideostream.setdimension -swf_viewport -swish_construct -swish_getmetalist -swish_getpropertylist -swish_prepare -swish_query -swishresult_getmetalist -swishresults_getparsedwords -swishresults_getremovedstopwords -swishresults_nextresult -swishresults_seekresult -swishresult_stem -swishsearch_execute -swishsearch_resetlimit -swishsearch_setlimit -swishsearch_setphrasedelimiter -swishsearch_setsort -swishsearch_setstructure -switch -sybase_affected_rows -sybase_close -sybase_connect -sybase_data_seek -sybase_deadlock_retry_count -sybase_fetch_array -sybase_fetch_assoc -sybase_fetch_field -sybase_fetch_object -sybase_fetch_row -sybase_field_seek -sybase_free_result -sybase_get_last_message -sybase_min_client_severity -sybase_min_error_severity -sybase_min_message_severity -sybase_min_server_severity -sybase_num_fields -sybase_num_rows -sybase_pconnect -sybase_query -sybase_result -sybase_select_db -sybase_set_message_handler -sybase_unbuffered_query -symlink -sys_getloadavg -sys_get_temp_dir -syslog -system -tan -tanh -tcpwrap_check -tempnam -textdomain -throw -tidy -tidy_access_count -tidy_config_count -tidy_diagnose -tidy_error_count -tidy_get_error_buffer -tidy_get_output -tidy_load_config -tidynode -tidy_reset_config -tidy_save_config -tidy_set_encoding -tidy_setopt -tidy_warning_count -time -time_nanosleep -time_sleep_until -timezone_abbreviations_list -timezone_identifiers_list -timezone_location_get -timezone_name_from_abbr -timezone_name_get -timezone_offset_get -timezone_open -timezone_transitions_get -timezone_version_get -tmpfile -token_get_all -token_name -tokyotyrant -tokyotyrantquery -tokyotyranttable -tostring -__toString() -touch -transliterator -traversable -trigger_error -trim -try -uasort -ucfirst -ucwords -udm_add_search_limit -udm_alloc_agent -udm_alloc_agent_array -udm_api_version -udm_cat_list -udm_cat_path -udm_check_charset -udm_check_stored -udm_clear_search_limits -udm_close_stored -udm_crc32 -udm_errno -udm_error -udm_find -udm_free_agent -udm_free_ispell_data -udm_free_res -udm_get_doc_count -udm_get_res_field -udm_get_res_param -udm_hash32 -udm_load_ispell_data -udm_open_stored -udm_set_agent_param -uksort -umask -underflowexception -unexpectedvalueexception -uniqid -unixtojd -unlink -unpack -unregister_tick_function -unserialize -unset -__unset() -urldecode -urlencode -use -user_error -use_soap_error_handler -usleep -usort -utf8_decode -utf8_encode -v8js -v8jsexception -var -var_dump -var_export -variant -variant_abs -variant_add -variant_and -variant_cast -variant_cat -variant_cmp -variant_date_from_timestamp -variant_date_to_timestamp -variant_div -variant_eqv -variant_fix -variant_get_type -variant_idiv -variant_imp -variant_int -variant_mod -variant_mul -variant_neg -variant_not -variant_or -variant_pow -variant_round -variant_set -variant_set_type -variant_sub -variant_xor -version_compare -vfprintf -virtual -vpopmail_add_alias_domain -vpopmail_add_alias_domain_ex -vpopmail_add_domain -vpopmail_add_domain_ex -vpopmail_add_user -vpopmail_alias_add -vpopmail_alias_del -vpopmail_alias_del_domain -vpopmail_alias_get -vpopmail_alias_get_all -vpopmail_auth_user -vpopmail_del_domain -vpopmail_del_domain_ex -vpopmail_del_user -vpopmail_error -vpopmail_passwd -vpopmail_set_user_quota -vprintf -vsprintf -w32api_deftype -w32api_init_dtype -w32api_invoke_function -w32api_register_function -w32api_set_call_method -__wakeup() -wddx_add_vars -wddx_deserialize -wddx_packet_end -wddx_packet_start -wddx_serialize_value -wddx_serialize_vars -weakref -while -win32_continue_service -win32_create_service -win32_delete_service -win32_get_last_control_message -win32_pause_service -win32_ps_list_procs -win32_ps_stat_mem -win32_ps_stat_proc -win32_query_service_status -win32_set_service_status -win32_start_service -win32_start_service_ctrl_dispatcher -win32_stop_service -wincache_fcache_fileinfo -wincache_fcache_meminfo -wincache_lock -wincache_ocache_fileinfo -wincache_ocache_meminfo -wincache_refresh_if_changed -wincache_rplist_fileinfo -wincache_rplist_meminfo -wincache_scache_info -wincache_scache_meminfo -wincache_ucache_add -wincache_ucache_cas -wincache_ucache_clear -wincache_ucache_dec -wincache_ucache_delete -wincache_ucache_exists -wincache_ucache_get -wincache_ucache_inc -wincache_ucache_info -wincache_ucache_meminfo -wincache_ucache_set -wincache_unlock -wordwrap -xattr_get -xattr_list -xattr_remove -xattr_set -xattr_supported -xdiff_file_bdiff -xdiff_file_bdiff_size -xdiff_file_bpatch -xdiff_file_diff -xdiff_file_diff_binary -xdiff_file_merge3 -xdiff_file_patch -xdiff_file_patch_binary -xdiff_file_rabdiff -xdiff_string_bdiff -xdiff_string_bdiff_size -xdiff_string_bpatch -xdiff_string_diff -xdiff_string_diff_binary -xdiff_string_merge3 -xdiff_string_patch -xdiff_string_patch_binary -xdiff_string_rabdiff -xhprof_disable -xhprof_enable -xhprof_sample_disable -xhprof_sample_enable -xml_error_string -xml_get_current_byte_index -xml_get_current_column_number -xml_get_current_line_number -xml_get_error_code -xml_parse -xml_parse_into_struct -xml_parser_create -xml_parser_create_ns -xml_parser_free -xml_parser_get_option -xml_parser_set_option -xmlreader -xmlrpc_decode -xmlrpc_decode_request -xmlrpc_encode -xmlrpc_encode_request -xmlrpc_get_type -xmlrpc_is_fault -xmlrpc_parse_method_descriptions -xmlrpc_server_add_introspection_data -xmlrpc_server_call_method -xmlrpc_server_create -xmlrpc_server_destroy -xmlrpc_server_register_introspection_callback -xmlrpc_server_register_method -xmlrpc_set_type -xml_set_character_data_handler -xml_set_default_handler -xml_set_element_handler -xml_set_end_namespace_decl_handler -xml_set_external_entity_ref_handler -xml_set_notation_decl_handler -xml_set_object -xml_set_processing_instruction_handler -xml_set_start_namespace_decl_handler -xml_set_unparsed_entity_decl_handler -xmlwriter_end_attribute -xmlwriter_end_cdata -xmlwriter_end_comment -xmlwriter_end_document -xmlwriter_end_dtd -xmlwriter_end_dtd_attlist -xmlwriter_end_dtd_element -xmlwriter_end_dtd_entity -xmlwriter_end_element -xmlwriter_end_pi -xmlwriter_flush -xmlwriter_full_end_element -xmlwriter_open_memory -xmlwriter_open_uri -xmlwriter_output_memory -xmlwriter_set_indent -xmlwriter_set_indent_string -xmlwriter_start_attribute -xmlwriter_start_attribute_ns -xmlwriter_start_cdata -xmlwriter_start_comment -xmlwriter_start_document -xmlwriter_start_dtd -xmlwriter_start_dtd_attlist -xmlwriter_start_dtd_element -xmlwriter_start_dtd_entity -xmlwriter_start_element -xmlwriter_start_element_ns -xmlwriter_start_pi -xmlwriter_text -xmlwriter_write_attribute -xmlwriter_write_attribute_ns -xmlwriter_write_cdata -xmlwriter_write_comment -xmlwriter_write_dtd -xmlwriter_write_dtd_attlist -xmlwriter_write_dtd_element -xmlwriter_write_dtd_entity -xmlwriter_write_element -xmlwriter_write_element_ns -xmlwriter_write_pi -xmlwriter_write_raw -xor -xpath_eval -xpath_eval_expression -xpath_new_context -xpath_register_ns -xpath_register_ns_auto -xptr_eval -xptr_new_context -xslt_backend_info -xslt_backend_name -xslt_backend_version -xslt_create -xslt_errno -xslt_error -xslt_free -xslt_getopt -xslt_process -xsltprocessor -xslt_set_base -xslt_set_encoding -xslt_set_error_handler -xslt_set_log -xslt_set_object -xslt_setopt -xslt_set_sax_handler -xslt_set_sax_handlers -xslt_set_scheme_handler -xslt_set_scheme_handlers -yaml_emit -yaml_emit_file -yaml_parse -yaml_parse_file -yaml_parse_url -yaz_addinfo -yaz_ccl_conf -yaz_ccl_parse -yaz_close -yaz_connect -yaz_database -yaz_element -yaz_errno -yaz_error -yaz_es -yaz_es_result -yaz_get_option -yaz_hits -yaz_itemorder -yaz_present -yaz_range -yaz_record -yaz_scan -yaz_scan_result -yaz_schema -yaz_search -yaz_set_option -yaz_sort -yaz_syntax -yaz_wait -yp_all -yp_cat -yp_errno -yp_err_string -yp_first -yp_get_default_domain -yp_master -yp_match -yp_next -yp_order -zend_logo_guid -zend_thread_id -zend_version -ziparchive -ziparchive_addemptydir -ziparchive_addfile -ziparchive_addfromstring -ziparchive_close -ziparchive_deleteindex -ziparchive_deletename -ziparchive_extractto -ziparchive_getarchivecomment -ziparchive_getcommentindex -ziparchive_getcommentname -ziparchive_getfromindex -ziparchive_getfromname -ziparchive_getnameindex -ziparchive_getstatusstring -ziparchive_getstream -ziparchive_locatename -ziparchive_open -ziparchive_renameindex -ziparchive_renamename -ziparchive_setarchivecomment -ziparchive_setcommentindex -ziparchive_setCommentName -ziparchive_statindex -ziparchive_statname -ziparchive_unchangeall -ziparchive_unchangearchive -ziparchive_unchangeindex -ziparchive_unchangename -zip_close -zip_entry_close -zip_entry_compressedsize -zip_entry_compressionmethod -zip_entry_filesize -zip_entry_name -zip_entry_open -zip_entry_read -zip_open -zip_read -zlib_get_coding_type -amqpchannel -amqpenvelope -autoload -bumpvalue -class_uses -closure -cubrid_get_query_timeout -cubrid_pconnect -cubrid_pconnect_with_url -cubrid_set_query_timeout -directory -domcdatasection -eio_busy -eio_cancel -eio_chmod -eio_chown -eio_close -eio_custom -eio_dup2 -eio_event_loop -eio_fallocate -eio_fchmod -eio_fchown -eio_fdatasync -eio_fstat -eio_fstatvfs -eio_fsync -eio_ftruncate -eio_futime -eio_get_event_stream -eio_grp -eio_grp_add -eio_grp_cancel -eio_grp_limit -eio_link -eio_lstat -eio_mkdir -eio_mknod -eio_nop -eio_npending -eio_nready -eio_nreqs -eio_nthreads -eio_open -eio_poll -eio_read -eio_readahead -eio_readdir -eio_readlink -eio_realpath -eio_rename -eio_rmdir -eio_sendfile -eio_set_max_idle -eio_set_max_parallel -eio_set_max_poll_reqs -eio_set_max_poll_time -eio_set_min_parallel -eio_stat -eio_statvfs -eio_symlink -eio_sync -eio_sync_file_range -eio_syncfs -eio_truncate -eio_unlink -eio_utime -eio_write -get_declared_traits -getimagesizefromstring -getmeta -getnamed -getvalue -hwapi_attribute_new -hwapi_content_new -is_tainted -lapack -lapackexception -ldap_control_paged_result -ldap_control_paged_result_response -libxml_set_external_entity_loader -mysqli_get_cache_stats -mysqli_sql_exception -mysqlnd_ms_get_last_gtid -mysqlnd_ms_get_last_used_connection -mysqlnd_ms_match_wild -mysqlnd_ms_set_qos -mysqlnd_qc_get_available_handlers -mysqlnd_qc_get_normalized_query_trace_log -mysqlnd_qc_set_cache_condition -mysqlnd_qc_set_is_select -mysqlnd_qc_set_storage_handler -mysqlnd_uh_convert_to_mysqlnd -mysqlnd_uh_set_connection_proxy -mysqlnd_uh_set_statement_proxy -mysqlnduhconnection -mysqlnduhpreparedstatement -pg_escape_identifier -pg_escape_literal -phar -phardata -pharexception -pharfileinfo -php_user_filter -reflectionzendextension -resetvalue -session_register_shutdown -session_status -sessionhandler -sessionhandlerinterface -setcounterclass -socket_import_stream -stream_set_chunk_size -taint -tokyotyrantexception -tokyotyrantiterator -trait_exists -untaint -varnishadmin -varnishlog -varnishstat -yaf_action_abstract -yaf_application -yaf_bootstrap_abstract -yaf_config_abstract -yaf_config_ini -yaf_config_simple -yaf_controller_abstract -yaf_dispatcher -yaf_exception -yaf_exception_dispatchfailed -yaf_exception_loadfailed -yaf_exception_loadfailed_action -yaf_exception_loadfailed_controller -yaf_exception_loadfailed_module -yaf_exception_loadfailed_view -yaf_exception_routerfailed -yaf_exception_startuperror -yaf_exception_typeerror -yaf_loader -yaf_plugin_abstract -yaf_registry -yaf_request_abstract -yaf_request_http -yaf_request_simple -yaf_response_abstract -yaf_route_interface -yaf_route_map -yaf_route_regex -yaf_route_rewrite -yaf_route_simple -yaf_route_static -yaf_route_supervar -yaf_router -yaf_session -yaf_view_interface -yaf_view_simple -zlib_decode -zlib_encode -trait -insteadof diff --git a/elpa/auto-complete-20170125.245/dict/python-mode b/elpa/auto-complete-20170125.245/dict/python-mode deleted file mode 100644 index 09e936c1..00000000 --- a/elpa/auto-complete-20170125.245/dict/python-mode +++ /dev/null @@ -1,379 +0,0 @@ -ArithmeticError -AssertionError -AttributeError -BaseException -BufferError -BytesWarning -DeprecationWarning -EOFError -Ellipsis -EnvironmentError -Exception -False -FloatingPointError -FutureWarning -GeneratorExit -IOError -ImportError -ImportWarning -IndentationError -IndexError -KeyError -KeyboardInterrupt -LookupError -MemoryError -NameError -None -NotImplemented -NotImplementedError -OSError -OverflowError -PendingDeprecationWarning -ReferenceError -RuntimeError -RuntimeWarning -StandardError -StopIteration -SyntaxError -SyntaxWarning -SystemError -SystemExit -TabError -True -TypeError -UnboundLocalError -UnicodeDecodeError -UnicodeEncodeError -UnicodeError -UnicodeTranslateError -UnicodeWarning -UserWarning -ValueError -Warning -ZeroDivisionError -__builtins__ -__debug__ -__doc__ -__file__ -__future__ -__import__ -__init__ -__main__ -__name__ -__package__ -_dummy_thread -_thread -abc -abs -aifc -all -and -any -apply -argparse -array -as -assert -ast -asynchat -asyncio -asyncore -atexit -audioop -base64 -basestring -bdb -bin -binascii -binhex -bisect -bool -break -buffer -builtins -bytearray -bytes -bz2 -calendar -callable -cgi -cgitb -chr -chuck -class -classmethod -cmath -cmd -cmp -code -codecs -codeop -coerce -collections -colorsys -compile -compileall -complex -concurrent -configparser -contextlib -continue -copy -copyreg -copyright -credits -crypt -csv -ctypes -curses -datetime -dbm -decimal -def -del -delattr -dict -difflib -dir -dis -distutils -divmod -doctest -dummy_threading -elif -else -email -enumerate -ensurepip -enum -errno -eval -except -exec -execfile -exit -faulthandler -fcntl -file -filecmp -fileinput -filter -finally -float -fnmatch -for -format -formatter -fpectl -fractions -from -frozenset -ftplib -functools -gc -getattr -getopt -getpass -gettext -glob -global -globals -grp -gzip -hasattr -hash -hashlib -heapq -help -hex -hmac -html -http -id -if -imghdr -imp -impalib -import -importlib -in -input -inspect -int -intern -io -ipaddress -is -isinstance -issubclass -iter -itertools -json -keyword -lambda -len -license -linecache -list -locale -locals -logging -long -lzma -macpath -mailbox -mailcap -map -marshal -math -max -memoryview -mimetypes -min -mmap -modulefinder -msilib -msvcrt -multiprocessing -netrc -next -nis -nntplib -not -numbers -object -oct -open -operator -optparse -or -ord -os -ossaudiodev -parser -pass -pathlib -pdb -pickle -pickletools -pipes -pkgutil -platform -plistlib -poplib -posix -pow -pprint -print -profile -property -pty -pwd -py_compiler -pyclbr -pydoc -queue -quit -quopri -raise -random -range -raw_input -re -readline -reduce -reload -repr -reprlib -resource -return -reversed -rlcompleter -round -runpy -sched -select -selectors -self -set -setattr -shelve -shlex -shutil -signal -site -slice -smtpd -smtplib -sndhdr -socket -socketserver -sorted -spwd -sqlite3 -ssl -stat -staticmethod -statistics -str -string -stringprep -struct -subprocess -sum -sunau -super -symbol -symtable -sys -sysconfig -syslog -tabnanny -tarfile -telnetlib -tempfile -termios -test -textwrap -threading -time -timeit -tkinter -token -tokenize -trace -traceback -tracemalloc -try -tty -tuple -turtle -type -types -unichr -unicode -unicodedata -unittest -urllib -uu -uuid -vars -venv -warnings -wave -weakref -webbrowser -while -winsound -winreg -with -wsgiref -xdrlib -xml -xmlrpc -xrange -yield -zip -zipfile -zipimport -zlib diff --git a/elpa/auto-complete-20170125.245/dict/qml-mode b/elpa/auto-complete-20170125.245/dict/qml-mode deleted file mode 100644 index 7d9976e6..00000000 --- a/elpa/auto-complete-20170125.245/dict/qml-mode +++ /dev/null @@ -1,183 +0,0 @@ -AlignBottom -AlignCenter -AlignHCenter -AlignLeft -AlignRight -AlignTop -AlignVCenter -AnchorAnimation -AnchorChanges -Audio -Behavior -Binding -BorderImage -ColorAnimation -Column -Component -Connections -Easing -Flickable -Flipable -Flow -FocusScope -GestureArea -Grid -GridView -Horizontal -Image -InBack -InBounce -InCirc -InCubic -InElastic -InExpo -InOutBack -InOutBounce -InOutCirc -InOutCubic -InOutElastic -InOutExpo -InOutQuad -InOutQuart -InOutQuint -InQuad -InQuart -InQuint -InQuint -InSine -Item -LayoutItem -LeftButton -Linear -ListElement -ListModel -ListView -Loader -MidButton -MiddleButton -MouseArea -NoButton -NumberAnimation -OutBack -OutBounce -OutCirc -OutCubic -OutElastic -OutExpo -OutInBack -OutInBounce -OutInCirc -OutInCubic -OutInElastic -OutInExpo -OutInQuad -OutInQuart -OutInQuint -OutQuad -OutQuart -OutQuint -OutSine -Package -ParallelAnimation -ParentAnimation -ParentChange -ParticleMotionGravity -ParticleMotionLinear -ParticleMotionWander -Particles -Path -PathAttribute -PathCubic -PathLine -PathPercent -PathQuad -PathView -PauseAnimation -PropertyAction -PropertyAnimation -PropertyChanges -Qt -QtObject -Rectangle -Repeater -RightButton -Rotation -RotationAnimation -Row -Scale -ScriptAction -SequentialAnimation -SmoothedAnimation -SoundEffect -SpringFollow -State -StateChangeScript -StateGroup -SystemPalette -Text -TextEdit -TextInput -Timer -Transition -Translate -Vertical -Video -ViewsPositionersMediaEffects -VisualDataModel -VisualItemModel -WebView -WorkerScript -XmlListModel -XmlRole -alias -as -bool -break -case -catch -color -const -continue -date -debugger -default -delete -do -double -else -enum -false -false -finally -for -function -if -import -import -in -instanceof -int -let -new -null -on -parent -property -real -return -signal -string -switch -this -throw -true -try -typeof -undefined -url -var -variant -void -while -with -yield diff --git a/elpa/auto-complete-20170125.245/dict/ruby-mode b/elpa/auto-complete-20170125.245/dict/ruby-mode deleted file mode 100644 index 1a854178..00000000 --- a/elpa/auto-complete-20170125.245/dict/ruby-mode +++ /dev/null @@ -1,181 +0,0 @@ -$! -$" -$$ -$& -$' -$* -$+ -$, -$-0 -$-F -$-I -$-K -$-a -$-d -$-i -$-l -$-p -$-v -$-w -$. -$/ -$0 -$1 -$10 -$11 -$2 -$3 -$4 -$5 -$6 -$7 -$8 -$9 -$: -$; -$< -$= -$> -$? -$@ -$DEBUG -$FILENAME -$KCODE -$LOADED_FEATURES -$LOAD_PATH -$PROGRAM_NAME -$SAFE -$VERBOSE -$\ -$_ -$` -$deferr -$defout -$stderr -$stdin -$stdout -$~ -ARGF -ARGV -Array -BEGIN -DATA -END -ENV -FALSE -Float -Integer -NIL -PLATFORM -RELEASE_DATE -RUBY_COPYRIGHT -RUBY_DESCRIPTION -RUBY_PATCHLEVEL -RUBY_PLATFORM -RUBY_RELEASE_DATE -RUBY_VERSION -SCRIPT_LINES__ -STDERR -STDIN -STDOUT -String -TOPLEVEL_BINDING -TRUE -VERSION -__method__ -` -abort -alias -and -at_exit -autoload -autoload? -begin -binding -block_given -break -callcc -caller -case -catch -chomp -chomp! -chop -chop -class -def -defined? -do -else -elsif -end -ensure -eval -exec -exit -exit! -fail -false -for -fork -format -getc -gets -global_variables -gsub -gsub! -if -in -iterator? -lambda -load -local_variables -loop -module -next -nil -not -open -or -p -printf -proc -putc -puts -raise -rand -readline -readlines -redo -require -require_relative -rescue -retry -return -scan -select -self -set_trace_func -sleep -split -sprintf -srand -sub -sub! -super -syscall -system -test -then -throw -trace_var -trap -true -undef -unless -until -untrace_var -warn -when -while -yield diff --git a/elpa/auto-complete-20170125.245/dict/scala-mode b/elpa/auto-complete-20170125.245/dict/scala-mode deleted file mode 100644 index b1ed3a47..00000000 --- a/elpa/auto-complete-20170125.245/dict/scala-mode +++ /dev/null @@ -1,1347 +0,0 @@ -_ -: -= -=> -<<: -<% ->: -# -@ -abstract -case -catch -class -def -do -else -extends -false -final -finally -for -forSome -if -implicit -import -lazy -match -new -null -object -override -package -private -protected -requires -return -sealed -super -this -throw -trait -true -try -type -val -var -while -with -yield - -scala -scala.actors -scala.actors.remote -scala.annotation.unchecked -scala.collection -scala.collection.immutable -scala.collection.jcl -scala.collection.mutable -scala.compat -scala.concurrent -scala.io -scala.mobile -scala.ref -scala.reflect -scala.runtime -scala.swing -scala.swing.event -scala.swing.test -scala.testing -scala.text -scala.util -scala.util.automata -scala.util.grammar -scala.util.logging -scala.util.matching -scala.util.parsing -scala.util.parsing.ast -scala.util.parsing.combinator -scala.util.parsing.combinator.lexical -scala.util.parsing.combinator.syntactical -scala.util.parsing.combinator.testing -scala.util.parsing.combinatorold -scala.util.parsing.combinatorold.lexical -scala.util.parsing.combinatorold.syntactical -scala.util.parsing.combinatorold.testing -scala.util.parsing.input -scala.util.parsing.json -scala.util.parsing.syntax -scala.util.regexp -scala.xml -scala.xml.dtd -scala.xml.factory -scala.xml.include -scala.xml.include.sax -scala.xml.parsing -scala.xml.path -scala.xml.persistent -scala.xml.pull -scala.xml.transform - -! -:: -AbstractActor -AbstractButton -AbstractSyntax -AbstractSyntax.Element -AbstractSyntax.NameElement -Action -Action.Trigger -Action.Trigger.Wrapper -ActionEvent -Actor -AdjustingEvent -Annotation -Any -AnyRef -AnyVal -Applet -Applet.UI -Application -Apply0 -Array -Array.Array0 -Array.ArrayLike -Array.Projection -ArrayBuffer -ArrayList -ArrayStack -Atom -AttListDecl -AttrDecl -Attribute -BackgroundChanged -Base -Base.Alt -Base.Meta -Base.RegExp -Base.Sequ -Base.Star -BaseBerrySethi -BasicTransformer -BasicTransformer.NeedsCopy -BeanDescription -BeanDisplayName -BeanInfo -BeanInfoSkip -BeanProperty -Benchmark -BigDecimal -BigInt -Binder -Binders -Binders.BinderEnv -Binders.BindingSensitive -Binders.BoundElement -Binders.ReturnAndDo -Binders.Scope -Binders.UnboundElement -Binders.UnderBinder -BindingParsers -BitSet -Boolean -BorderPanel -BoxPanel -Buffer -Buffer.DefaultBufferIterator -Buffer.Projection -Buffer.Projection0 -Buffer.Projection0.MapProjection -Buffer.Range -Buffer.Range.RangeIterator -BufferIterator -BufferProxy -BufferWrapper -BufferWrapper.IteratorWrapper -BufferWrapper.Range -BufferedIterator -BufferedIterator.Advanced -BufferedIterator.Default -BufferedIterator.PutBack -BufferedSource -Button -ButtonClicked -ButtonGroup -ByNameFunction -Byte -BytePickle.Def -BytePickle.PU -BytePickle.PicklerEnv -BytePickle.PicklerState -BytePickle.Ref -BytePickle.RefDef -BytePickle.SPU -BytePickle.UnPicklerEnv -BytePickle.UnPicklerState -CachedFileStorage -CaretUpdate -Cell -Channel -Channel.LinkedList -Char -CharArrayPosition -CharArrayReader -CharInputStreamIterator -CharSequenceReader -CheckBox -CheckMenuItem -CircularIncludeException -ClassfileAnnotation -ClassfileAttribute -CloneableCollection -Code -Collection -Collection.Projection -CollectionProxy -CollectionWrapper -ComboBox -ComboBox.BuiltInEditor -ComboBox.BuiltInEditor.DelegatedEditor -ComboBox.Editor -Comment -Component -Component.SuperMixin -ComponentAdded -ComponentEvent -ComponentHidden -ComponentMoved -ComponentRemoved -ComponentResized -ComponentShown -ConsRHS -ConsoleLogger -ConstructingHandler -ConstructingParser -Container -Container.Wrapper -Container.Wrapper.Content -ContainerEvent -ContentModel -ContentModel.ElemName -CountedIterator -CustomObjectInputStream -DEFAULT -DFAContentModel -DTD -Debug -Decl -DefaultDecl -DefaultEntry -DefaultMapModel -DefaultMarkupHandler -DetWordAutom -DocCons -DocGroup -DocNest -DocText -DocType -Document -Double -DoubleLinkedList -DtdTypeSymbol -DynamicVariable -ELEMENTS -EditDone -Either -Either.LeftProjection -Either.RightProjection -Elem -ElemDecl -ElementValidator -EmptyMap -EmptySet -EntityDecl -EntityDef -EntityRef -Enumeration -Enumeration.Set32 -Enumeration.Set64 -Enumeration.SetXX -Enumeration.Val -Enumeration.Value -Equiv -EvComment -EvElemEnd -EvElemStart -EvEntityRef -EvProcInstr -EvText -Event -Exit -ExitFun -Expression.Attrib -Expression.Child -Expression.Cond -Expression.DescOrSelf -Expression.Equals -Expression.Exists -Expression.Expr -Expression.FExp -Expression.GenExp -Expression.NameTest -Expression.Test -ExtDef -ExternalID -ExternalSources -FJTaskScheduler2 -FactoryAdapter -FatalError -FileChooser -FlatHashTable -Float -FlowPanel -FocusEvent -FocusGained -FocusLost -FontChanged -ForegroundChanged -FormattedTextField -Frame -Function0 -Function1 -Function10 -Function11 -Function12 -Function13 -Function14 -Function15 -Function16 -Function17 -Function18 -Function19 -Function2 -Function20 -Function21 -Function22 -Function3 -Function4 -Function5 -Function6 -Function7 -Function8 -Function9 -Future -GBTree -GUIApplication -GridBagPanel -GridBagPanel.Constraints -GridPanel -Group -HasKeyValue -HashEntry -HashMap -HashSet -HashTable -Hashtable -HedgeRHS -History -IScheduler -Ident -IdentityHashMap -ImmutableIterator -ImmutableMapAdaptor -ImmutableSetAdaptor -ImplicitConversions -Include -Inclusion -Index -IndexedStorage -InputChannel -InputEvent -InsertTree -Int -IntDef -IntMap -Iterable -Iterable.Projection -IterableProxy -IterableWrapper -Iterator -Iterator.PredicatedIterator -Iterator.TakeWhileIterator -JavaMapAdaptor -JavaSerializer -JavaSetAdaptor -JavaTokenParsers -Label -LabelledRHS -LayoutContainer -Left -Lexer -Lexical -LinkToFun -LinkedHashMap -LinkedHashSet -LinkedList -LinkedListQueueCreator -List -ListBuffer -ListChange -ListChanged -ListElementsAdded -ListElementsRemoved -ListEvent -ListMap -ListMap.Node -ListQueueCreator -ListSelectionChanged -ListSelectionEvent -ListSet -ListSet.Node -ListView -ListView.AbstractRenderer -ListView.ModelWrapper -ListView.Renderer -ListView.Renderer.Wrapped -ListView.selection.Indices -LocalApply0 -Location -Locator -Lock -Logged -LoggedNodeFactory -Long -LongMap -MIXED -MailBox -MainFrame -MalformedAttributeException -Map -Map.Filter -Map.KeySet -Map.Lense -Map.MapTo -Map.MutableIterableProjection -Map.Projection -Map1 -Map2 -Map3 -Map4 -MapProxy -MapWrapper -MapWrapper.IteratorWrapper -MapWrapper.KeySet -MapWrapper.ValueSet -Mappable -Mappable.Mappable -Mappable.Mapper -MarkupDecl -MarkupHandler -MarkupParser -MatchError -Menu -MenuBar -MenuItem -Message -MessageQueue -MessageQueueElement -MetaData -MouseButtonEvent -MouseClicked -MouseDragged -MouseEntered -MouseEvent -MouseExited -MouseMotionEvent -MouseMoved -MousePressed -MouseReleased -MouseWheelMoved -MultiMap -MutableIterable -MutableIterable.Filter -MutableIterable.Map -MutableIterable.Projection -MutableIterator -MutableIterator.Map -MutableIterator.Wrapper -MutableList -MutableSeq -MutableSeq.DefaultSeqIterator -MutableSeq.Filter -MutableSeq.Filter.FilterIterator -MutableSeq.Map -MutableSeq.Projection -NamedSend -NamespaceBinding -NetKernel -NoBindingFactoryAdapter -Node -NodeBuffer -NodeFactory -NodeSeq -NodeTraverser -NonLocalReturnException -NondetWordAutom -NotDefinedError -NotNull -NotationDecl -Nothing -Null -Number -ObservableBuffer -ObservableMap -ObservableSet -OffsetPosition -OpenHashMap -Option -Ordered -Ordering -Orientable -Oriented -OutputChannel -PCData -PCDataMarkupParser -PEReference -PagedSeq -PagedSeqReader -Panel -ParameterEntityDecl -ParsedEntityDecl -Parser -Parsers -Parsers.Error -Parsers.Failure -Parsers.NoSuccess -Parsers.OnceParser -Parsers.ParseResult -Parsers.Parser -Parsers.Success -Parsers.UnitOnceParser -Parsers.UnitParser -Parsers.~ -PartialFunction -PartialOrdering -PartiallyOrdered -PasswordField -PhantomReference -PointedHedgeExp -PointedHedgeExp.Node -PointedHedgeExp.TopIter -Position -Positional -Predef.ArrowAssoc -Predef.Ensuring -PrefixedAttribute -PrettyPrinter -PrettyPrinter.Box -PrettyPrinter.BrokenException -PrettyPrinter.Item -PrettyPrinter.Para -PriorityQueue -PriorityQueueProxy -ProcInstr -Product -Product1 -Product10 -Product11 -Product12 -Product13 -Product14 -Product15 -Product16 -Product17 -Product18 -Product19 -Product2 -Product20 -Product21 -Product22 -Product3 -Product4 -Product5 -Product6 -Product7 -Product8 -Product9 -ProgressBar -Proxy -PublicID -Publisher -Queue -QueueModule -QueueProxy -RadioButton -RadioMenuItem -Random -RandomAccessSeq -RandomAccessSeq.Mutable -RandomAccessSeq.MutableProjection -RandomAccessSeq.Projection -RandomAccessSeq.Projection.MapProjection -RandomAccessSeqProxy -Range -Range.Inclusive -Ranged -Ranged.Comparator -Reaction -Reactions -Reactions.Impl -Reactions.StronglyReferenced -Reactions.Wrapper -Reactor -Reader -RedBlack -RedBlack.BlackTree -RedBlack.NonEmpty -RedBlack.RedTree -RedBlack.Tree -RefBuffer -Reference -ReferenceQueue -ReferenceQueue.Wrapper -ReferenceWrapper -Regex -Regex.Match -Regex.MatchData -Regex.MatchIterator -RegexParsers -RemoteApply0 -Remove -Reset -ResizableArray -Responder -RevertableHistory -RewriteRule -RichBoolean -RichByte -RichChar -RichDouble -RichException -RichFloat -RichInt -RichLong -RichShort -RichSorting -RichString -RichStringBuilder -Right -RollbackIterator -RootPanel -RuleTransformer -SUnit.Assert -SUnit.AssertFailed -SUnit.Test -SUnit.TestCase -SUnit.TestConsoleMain -SUnit.TestFailure -SUnit.TestResult -SUnit.TestSuite -ScalaBeanInfo -ScalaObject -Scanner -Scanners -Scanners.Scanner -SchedulerAdapter -Script -Scriptable -ScrollPane -Scrollable -SelectionChanged -SelectionEvent -SendTo -Separator -Seq -Seq.Projection -Seq.Projection.ComputeSize -Seq.Projection.MapProjection -Seq.singleton -SeqIterator -SeqIterator.Map -SeqProxy -SequentialContainer -SequentialContainer.Wrapper -SerialVersionUID -Serializer -Service -Set -Set.Filter -Set.Projection -Set1 -Set2 -Set3 -Set4 -SetProxy -SetStorage -SetWrapper -Short -Show -Show.SymApply -SimpleApplet -SimpleGUIApplication -SimpleTokenizer -SingleLinkedList -SingleThreadedScheduler -Slider -SoftReference -Some -Sorted -SortedMap -SortedMap.DefaultKeySet -SortedMap.Filter -SortedMap.KeySet -SortedMap.Lense -SortedMap.Projection -SortedMap.Range -SortedMap.Range.Filter -SortedMapWrapper -SortedMapWrapper.KeySet -SortedMapWrapper.Range -SortedSet -SortedSet.Filter -SortedSet.Projection -SortedSet.Range -SortedSetWrapper -SortedSetWrapper.Range -Source -SpecialNode -SplitPane -Stack -Stack.Node -StackProxy -StandardTokenParsers -StaticAnnotation -StaticAttribute -StdLexical -StdTokenParsers -StdTokens -StdTokens.Identifier -StdTokens.Keyword -StdTokens.NumericLit -StdTokens.StringLit -Str -Stream -Stream.Definite -StreamReader -StringBuilder -Subscriber -SubsetConstruction -Swing.Embossing -Symbol -SyncChannel -SyncVar -SynchronizedBuffer -SynchronizedMap -SynchronizedPriorityQueue -SynchronizedQueue -SynchronizedSet -SynchronizedStack -SyntaxError -SystemID -TabbedPane -TabbedPane.Page -Table -Table.AbstractRenderer -Table.LabelRenderer -Table.Renderer -Table.selection.SelectionSet -TableChange -TableChanged -TableColumnsSelected -TableEvent -TableResized -TableRowsAdded -TableRowsRemoved -TableRowsSelected -TableStructureChanged -TableUpdated -TcpService -TcpServiceWorker -Tester -Text -TextArea -TextBuffer -TextComponent -TextComponent.Caret -TextComponent.HasColumns -TextComponent.HasRows -TextField -TickedScheduler -ToggleButton -TokenParsers -TokenTests -Tokens -Tokens.ErrorToken -Tokens.Token -Tree -TreeHashMap -TreeMap -TreeRHS -TreeSet -Tuple1 -Tuple10 -Tuple11 -Tuple12 -Tuple13 -Tuple14 -Tuple15 -Tuple16 -Tuple17 -Tuple18 -Tuple19 -Tuple2 -Tuple20 -Tuple21 -Tuple22 -Tuple3 -Tuple4 -Tuple5 -Tuple6 -Tuple7 -Tuple8 -Tuple9 -TypeConstraint -TypeSymbol -UIElement -UIEvent -UnavailableResourceException -UnbalancedTreeMap -UnbalancedTreeMap.Node -Undoable -UninitializedError -UninitializedFieldError -Unit -UnlinkFromFun -Unparsed -UnparsedEntityDecl -UnprefixedAttribute -Update -ValidatingMarkupHandler -ValidationException -ValueChanged -WeakHashMap -WeakReference -WindowActivated -WindowClosed -WindowClosing -WindowDeactivated -WindowDeiconified -WindowEvent -WindowIconified -WindowOpened -WordBerrySethi -WordExp -WordExp.Label -WordExp.Letter -WordExp.Wildcard -WorkerThread -WorkerThreadScheduler -XIncludeException -XIncludeFilter -XIncluder -XMLEvent -XMLEventReader -XMLEventReader.Parser -XhtmlParser -cloneable -deprecated -inline -jolib.Asynchr -jolib.Join -jolib.Signal -jolib.Synchr -native -noinline -pilib.Chan -pilib.GP -pilib.Product -pilib.Spawn -pilib.Sum -pilib.UChan -pilib.UGP -remote -serializable -throws -transient -unchecked -uncheckedStable -uncheckedVariance -unsealed -volatile -~ - -! -:: -ANY -Action -Action.NoAction -Action.Trigger -ActionEvent -Actor -ActorGC -Alignment -AnyHedgeRHS -AnyTreeRHS -Apply0 -Array -AttListDecl -AttrDecl -BackgroundChanged -Base.Eps -BigDecimal -BigDecimal.RoundingMode -BigInt -Binders.EmptyBinderEnv -Binders.UnderBinder -BorderPanel -BorderPanel.Position -Buffer -BufferedIterator -BufferedSource -ButtonApp -ButtonClicked -BytePickle -CaretUpdate -Cell -CelsiusConverter -CelsiusConverter2 -CharArrayReader -CharSequenceReader -Collection -ComboBox -ComboBox.selection -ComboBoxes -Comment -Component -Component.Mouse -ComponentAdded -ComponentHidden -ComponentMoved -ComponentRemoved -ComponentResized -ComponentShown -ConsRHS -Console -ConstructingParser -Container -ContentModel -ContentModel.Translator -ContentModelParser -Conversions -CountButton -DEFAULT -Debug -Dialog -Dialog.Message -Dialog.Options -Dialog.Result -Dialogs -DocBreak -DocCons -DocGroup -DocNest -DocNil -DocText -DocType -Document -ELEMENTS -EMPTY -EditDone -Either -Elem -ElemDecl -EmptyHedgeRHS -EncodingHeuristics -End -EntityRef -EvComment -EvElemEnd -EvElemStart -EvEntityRef -EvProcInstr -EvText -Exit -Expression -Expression.Root -Expression.WildcardTest -ExtDef -FatalError -FileChooser -FileChooser.Result -FileChooser.SelectionMode -FlowPanel -FlowPanel.Alignment -FocusGained -FocusLost -FontChanged -ForegroundChanged -FormattedTextField -FormattedTextField.FocusLostBehavior -FreshNameCreator -Function -Futures -GridBagDemo -GridBagPanel -GridBagPanel.Anchor -GridBagPanel.Fill -GridPanel -Group -HashMap -HashSet -HelloWorld -IMPLIED -Ident -ImmutableIterator -ImmutableIterator.Empty -Include -Index -IntDef -IntMap -Iterable -Iterator -JSON -Key -LabelledRHS -Left -LinkedHashMap -LinkedHashSet -List -ListChanged -ListElementsAdded -ListElementsRemoved -ListMap -ListSelectionChanged -ListSet -ListView -ListView.GenericRenderer -ListView.IntervalMode -ListView.Renderer -ListView.selection -ListView.selection.indices -ListView.selection.items -LocalApply0 -Location -Locator -LongMap -MIXED -Main -MakeValidationException -MalformedAttributeException -Map -Marshal -Math -MetaData -MouseClicked -MouseDragged -MouseEntered -MouseExited -MouseMoved -MousePressed -MouseReleased -MouseWheelMoved -MutableIterable -MutableIterator -MutableSeq -NA -NamedSend -Nil -NoPosition -Node -NodeSeq -None -NotationDecl -Null -Number -OffsetPosition -OpenHashMap -Option -Orientation -PCDATA -PCData -PEReference -PagedSeq -PagedSeqReader -ParameterEntityDecl -ParsedEntityDecl -Parsing -Platform -PointedHedgeExp.Point -Position -Predef -Predef.Pair -Predef.Triple -PrettyPrinter.Break -ProcInstr -Product1 -Product10 -Product11 -Product12 -Product13 -Product14 -Product15 -Product16 -Product17 -Product18 -Product19 -Product2 -Product20 -Product21 -Product22 -Product3 -Product4 -Product5 -Product6 -Product7 -Product8 -Product9 -Properties -PublicID -QNode -Queue -REQUIRED -RandomAccessSeq -Range -Reactions -RedBlack.Empty -Regex -Regex.Match -RegexTest -RemoteActor -RemoteApply0 -Remove -Reset -Responder -RichString -Right -SUnit -Scheduler -SelectionChanged -SendTo -Seq -SequentialContainer -Set -SimpleApplet.ui -Some -SortedMap -SortedSet -Sorting -Source -Stack -Start -Str -Stream -Stream.cons -Stream.lazy_:: -StreamReader -StringBuilder -Swing -Swing.EmptyIcon -Swing.Lowered -Swing.Raised -SwingApp -Symbol -SystemID -TIMEOUT -TabbedPane -TabbedPane.Layout -TabbedPane.pages -TabbedPane.selection -Table -Table.AutoResizeMode -Table.ElementMode -Table.IntervalMode -Table.selection -Table.selection.columns -Table.selection.rows -TableChanged -TableColumnsSelected -TableResized -TableRowsAdded -TableRowsRemoved -TableRowsSelected -TableSelection -TableStructureChanged -TableUpdated -TcpService -Terminate -Text -TextBuffer -TextComponent -TextComponent.caret -Tokens.EOF -TopScope -TreeHashMap -TreeMap -TreeSet -Tuple1 -Tuple10 -Tuple11 -Tuple12 -Tuple13 -Tuple14 -Tuple15 -Tuple16 -Tuple17 -Tuple18 -Tuple19 -Tuple2 -Tuple20 -Tuple21 -Tuple22 -Tuple3 -Tuple4 -Tuple5 -Tuple6 -Tuple7 -Tuple8 -Tuple9 -UIDemo -UTF8Codec -UnbalancedTreeMap -UninitializedFieldError -Unparsed -UnparsedEntityDecl -Update -Utility -ValidationException -ValueChanged -WindowActivated -WindowClosed -WindowClosing -WindowDeactivated -WindowDeiconified -WindowIconified -WindowOpened -XML -Xhtml -XhtmlEntities -XhtmlParser -jolib -mkTilde -ops -pilib -~ - -ArrayIndexOutOfBoundsException -Character -Class -ClassCastException -Error -Exception -Function -IllegalArgumentException -IndexOutOfBoundsException -Integer -Map -NoSuchElementException -NullPointerException -NumberFormatException -Pair -Runnable -RuntimeException -Set -String -StringIndexOutOfBoundsException -Throwable -Triple -Tuple -UnsupportedOperationException -any2ArrowAssoc -any2Ensuring -any2stringadd -assert -assume -boolean -boolean2Boolean -booleanWrapper -byte -byte2Byte -byte2double -byte2float -byte2int -byte2long -byte2short -byteWrapper -char -char2Character -char2double -char2float -char2int -char2long -charWrapper -classOf -currentThread -double -double2Double -doubleWrapper -error -exceptionWrapper -exit -float -float2Float -float2double -floatWrapper -forceArrayProjection -forceRandomAccessCharSeq -format -identity -int -int2Integer -int2double -int2float -int2long -intWrapper -iterable2ordered -lazyStreamToConsable -long -long2Long -long2double -long2float -longWrapper -print -printf -println -readBoolean -readByte -readChar -readDouble -readFloat -readInt -readLine -readLong -readShort -readf -readf1 -readf2 -readf3 -require -seqToCharSequence -short -short2Short -short2double -short2float -short2int -short2long -shortWrapper -stringBuilderWrapper -stringWrapper -tuple22ordered -tuple32ordered -tuple42ordered -tuple52ordered -tuple62ordered -tuple72ordered -tuple82ordered -tuple92ordered -unit -unit2ordered diff --git a/elpa/auto-complete-20170125.245/dict/scheme-mode b/elpa/auto-complete-20170125.245/dict/scheme-mode deleted file mode 100644 index e5cca615..00000000 --- a/elpa/auto-complete-20170125.245/dict/scheme-mode +++ /dev/null @@ -1,216 +0,0 @@ -case-lambda -call/cc -class -define-class -exit-handler -field -import -inherit -init-field -interface -let*-values -let-values -let/ec -mixin -opt-lambda -override -protect -provide -public -rename -require -require-for-syntax -syntax -syntax-case -syntax-error -unit/sig -unless -when -with-syntax -and -begin -call-with-current-continuation -call-with-input-file -call-with-output-file -case -cond -define -define-syntax -delay -do -dynamic-wind -else -for-each -if -lambda -let -let* -let-syntax -letrec -letrec-syntax -map -or -syntax-rules -abs -acos -angle -append -apply -asin -assoc -assq -assv -atan -boolean? -caar -cadr -call-with-input-file -call-with-output-file -call-with-values -car -cdddar -cddddr -cdr -ceiling -char->integer -char-alphabetic? -char-ci<=? -char-ci=? -char-ci>? -char-downcase -char-lower-case? -char-numeric? -char-ready? -char-upcase -char-upper-case? -char-whitespace? -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-copy -string-fill! -string-length -string-ref -string-set! -string<=? -string=? -string>? -string? -substring -symbol->string -symbol? -#t -tan -transcript-off -transcript-on -truncate -values -vector -vector->list -vector-fill! -vector-length -vector-ref -vector-set! diff --git a/elpa/auto-complete-20170125.245/dict/sclang-mode b/elpa/auto-complete-20170125.245/dict/sclang-mode deleted file mode 100644 index 2b92135b..00000000 --- a/elpa/auto-complete-20170125.245/dict/sclang-mode +++ /dev/null @@ -1,1481 +0,0 @@ -A2K -A2K -abs -absdif -AbstractFunction -AbstractIn -AbstractOut -AbstractServerAction -acos -addition -Adverbs -AllpassC -AllpassL -AllpassN -amclip -AmpComp -AmpComp -AmpCompA -AmpCompA -ampdb -Amplitude -Amplitude -APF -AppClock -Archive -Array -Array2D -ArrayedCollection -asin -Assignment -Association -asTarget -atan -atan2 -AudioControl -AudioIn -audio_rate_mapping -AutoClassHelper -Bag -Balance2 -Balance2 -Ball -Ball -BAllPass -BAllPass -BasicOpUGen -basic_live_coding_techniques -BBandPass -BBandPass -BBandStop -BBandStop -BeatTrack -BeatTrack -BeatTrack -BeatTrack2 -BeatTrack2 -BeatTrack2 -BEQSuite -BEQSuite -BHiPass -BHiPass -BHiPass4 -BHiShelf -BHiShelf -BinaryOpFunction -BinaryOpStream -BinaryOpUGen -BiPanB2 -BiPanB2 -Blip -Blip -BLowPass -BLowPass -BLowPass4 -BLowShelf -BLowShelf -Boolean -BPeakEQ -BPeakEQ -BPF -BPF -BPZ2 -BPZ2 -BRF -BRF -BrownNoise -BrownNoise -BRZ2 -BRZ2 -BufAllpassC -BufAllpassL -BufAllpassN -BufChannels -BufChannels -BufCombC -BufCombL -BufCombN -BufDelayC -BufDelayL -BufDelayN -BufDur -BufDur -Buffer -Buffers -BufFrames -BufFrames -BufRateScale -BufRateScale -BufRd -BufRd -BufSampleRate -BufSampleRate -BufSamples -BufSamples -BufWr -BufWr -bundledCommands -Bus -BusPlug -Busses -Button -CCResponder -ceil -Changed -Changed -ChaosGen -Char -CheckBadValues -Class -Classes -ClassHelpTemplate -ClearBuf -ClientVsServer -Clip -Clip -clip2 -ClipNoise -ClipNoise -Clock -CmdPeriod -cmds -CocoaMenuItem -CoinGate -CoinGate -Collection -Collections -Color -CombC -CombL -CombN -Comments -Compander -Compander -CompanderD -Complex -CompositeView -Condition -ContiguousBlockAllocator -Control -Control-Structures -ControlDur -ControlName -ControlRate -ControlSpec -convertRhythm -Convolution -Convolution2 -Convolution2L -Convolution3 -cos -COsc -COsc -cosh -cpsmidi -cpsoct -Crackle -Crackle -Creating-Standalone-Applications -Crossplatform -CSVFileReader -cubed -CuspL -CuspL -CuspN -CuspN -Date -dbamp -Dbrown -Dbrown -Dbufrd -Dbufrd -Dbufwr -Dbufwr -DC -DC -Debugging-tips -DebugNodeWatcher -Decay -Decay -Decay2 -Decay2 -DecodeB2 -DecodeB2 -default_group -DegreeToKey -DegreeToKey -Delay1 -Delay2 -DelayC -DelayL -DelayN -DelTapRd -DelTapRd -DelTapWr -DelTapWr -Demand -Demand -DemandEnvGen -DemandEnvGen -DemandEnvGen -DetectIndex -DetectIndex -DetectSilence -DetectSilence -DetectSilence -Dgeom -Dgeom -Dialog -Dibrown -Dictionary -difsqr -DiskIn -DiskIn -DiskIn -DiskOut -DiskOut -DiskOut -distort -division -Diwhite -Document -DocumentAutoCompletion -Donce -Done -Done -DoubleArray -Dpoll -Dpoll -DragBoth -DragSink -DragSource -Drand -Drand -Dreset -Dreset -Dseq -Dseq -Dser -Dser -Dseries -Dseries -Dshuf -Dshuf -Dstutter -Dstutter -Dswitch -Dswitch -Dswitch1 -Dswitch1 -DUGen -Dunique -Dust -Dust -Dust2 -Dust2 -Duty -Duty -Dwhite -Dwhite -Dwrand -Dwrand -Dxrand -DynKlang -DynKlang -DynKlank -DynKlank -DynKlank -EmacsEditor -EmacsGUI -Env -EnvelopeView -EnvGate -EnvGen -EnvGen -EnvirGui -Environment -EnvironmentRedirect -Error -Event -EventPatternProxy -EventPatternProxy -EventStream -EventStreamPlayer -Event_types -Exception -excess -exp -exponentiation -ExpRand -ExpRand -ExpRand -Expression-Sequence -EZGui -EZKnob -EZLists -EZListView -EZNumber -EZPopUpMenu -EZRanger -EZScroller -EZSlider -EZText -False -FBSineC -FBSineC -FBSineL -FBSineL -FBSineN -FBSineN -Fdef -FFT -FFTTrigger -File -FileReader -Filter -FilterPattern -FilterPattern -Float -FloatArray -floor -FlowLayout -FlowView -Fold -Fold -fold2 -Font -Formant -Formant -Formlet -Formlet -FOS -FOS -frac -Frame -Free -Free -FreeSelf -FreeSelf -FreeSelfWhenDone -FreeSelfWhenDone -FreeVerb -FreeVerb2 -FreqScope -FreqScopeView -FreqShift -FreqShift -FreqShift -FSinOsc -FSinOsc -FuncFilterPattern -Function -FunctionDef -FunctionList -Functions -Gate -GbmanL -GbmanL -GbmanN -GbmanN -Gendy1 -Gendy1 -Gendy2 -Gendy2 -Gendy3 -Gendy3 -GeneralHID -GeneralHIDDevice -GeneralHIDSlot -GeneralHIDSpec -Glossary -Gradient -GrainBuf -GrainBuf -GrainFM -GrainIn -GrainSin -GrayNoise -GrayNoise -greaterorequalthan -greaterthan -Group -Groups -GUI -gui -GUI-Classes -GUI-Overview -GVerb -Harmonics -Hasher -Hasher -Help -HelpDocsLicensing -Helper -HelpSearchResult -HenonC -HenonC -HenonL -HenonL -HenonN -HenonN -HIDDeviceService -Hilbert -HilbertFIR -HiliteGradient -History -HistoryGui -HLayoutView -How-to-Use-the-Interpreter -HPF -HPF -HPZ1 -HPZ1 -HPZ2 -HPZ2 -hypot -hypotApx -IdentityBag -IdentityDictionary -IdentitySet -IEnvGen -IEnvGen -if -IFFT -Impulse -Impulse -In -Index -Index -IndexInBetween -IndexInBetween -IndexL -IndexL -InFeedback -Infinitum -initClass -InRange -InRange -InRect -InRect -Int16Array -Int32Array -Int8Array -Integer -Integrator -Integrator -Integrator -Internal-Snooping -InterplEnv -InterplPairs -InterplXYC -Interpreter -Interval -InTrig -Intro-to-Objects -Introductory_tutorial -IRand -IRand -IRand -isKindOf -isNegative -isPositive -isStrictlyPositive -JITGui -JITLib -jitlib_asCompileString -jitlib_basic_concepts_01 -jitlib_basic_concepts_02 -jitlib_basic_concepts_03 -jitlib_basic_concepts_04 -jitlib_efficiency -jitlib_fading -jitlib_networking -J_concepts_in_SC -K2A -K2A -KeyState -KeyState -KeyTrack -KeyTrack -Klang -Klang -Klang -Klank -Klank -Klank -Knob -Lag -Lag -Lag2 -Lag2 -Lag2UD -Lag2UD -Lag3 -Lag3 -Lag3UD -Lag3UD -LagControl -LagIn -LagUD -LagUD -LastValue -Latch -Latch -LatoocarfianC -LatoocarfianC -LatoocarfianL -LatoocarfianL -LatoocarfianN -LatoocarfianN -LazyEnvir -LeakDC -LeakDC -LeastChange -LeastChange -lessorequalthan -lessthan -LFClipNoise -LFClipNoise -LFCub -LFCub -LFDClipNoise -LFDClipNoise -LFDNoise0 -LFDNoise0 -LFDNoise1 -LFDNoise1 -LFDNoise3 -LFDNoise3 -LFGauss -LFGauss -LFNoise0 -LFNoise0 -LFNoise1 -LFNoise1 -LFNoise2 -LFNoise2 -LFPar -LFPar -LFPulse -LFPulse -LFSaw -LFSaw -LFTri -LFTri -Library -LibraryBase -Licensing -LID -Limiter -Limiter -LinCongC -LinCongC -LinCongL -LinCongL -LinCongN -LinCongN -Line -Line -Linen -Linen -LinExp -LinExp -LinkedList -LinkedListNode -LinLin -LinLin -LinPan2 -LinPan2 -LinRand -LinRand -LinRand -LinSelectX -Linux_udev_setup -LinXFade2 -LinXFade2 -List -ListComprehensions -ListDUGen -ListPattern -ListPattern -ListView -Literals -LocalBuf -LocalBuf -LocalIn -LocalOut -log -log10 -log2 -Logistic -Logistic -loop -LorenzL -LorenzL -Loudness -Loudness -LPF -LPF -LPZ1 -LPZ1 -LPZ2 -LPZ2 -Magnitude -Main -MantissaMask -MantissaMask -matchItem -max -MaxLocalBufs -MaxLocalBufs -Maybe -Median -Median -Method -Method-Calls -MFCC -MFCC -MidEQ -MidEQ -MIDI -midicps -MIDIIn -MIDIOut -MIDIResponder -min -Mix -modifiers -Modifying_Standalones -modulo -Monitor -MonitorGui -MoogFF -MoogFF -More-On-Getting-Help -MostChange -MostChange -MouseButton -MouseButton -MouseX -MouseX -MouseY -MouseY -MovieView -MulAdd -MultiChannel -MultiLevelIdentityDictionary -MultiOutUGen -multiplication -MultiSliderView -MultiTap -NamedControl -NAryOpFunction -NAryOpStream -Ndef -NdefGui -NdefMixer -NdefMixerOld -NdefParamGui -neg -NetAddr -Nil -Node -NodeControl -NodeEvent -NodeMap -NodeMessaging -NodeProxy -NodeProxyEditor -NodeProxy_roles -NodeWatcher -Non-Realtime-Synthesis -Normalizer -Normalizer -NoteOnResponder -Notes-on-the-HTML-Help-System -NotificationCenter -NRand -NRand -NRand -NumAudioBuses -Number -NumberBox -NumBuffers -NumControlBuses -NumInputBuses -NumOutputBuses -NumRunningSynths -Object -ObjectGui -ObjectTable -octcps -OffsetOut -OnePole -OnePole -OneZero -OneZero -Onsets -Onsets -Operators -Order -Order-of-execution -OrderedIdentitySet -Osc -Osc -OSCBundle -OscN -OscN -OSCpathResponder -OSCresponder -OSCresponderNode -OSC_communication -Out -OutputProxy -PAbstractGroup -PackFFT -Padd -Padd -Paddp -Paddp -Paddpre -Paddpre -Pair -Pan2 -Pan2 -Pan4 -Pan4 -PanAz -PanAz -PanB -PanB -PanB2 -PanB2 -Panner -PartConv -Partial-Application -PathName -Pattern -PatternConductor -PatternProxy -PatternProxy -PatternsDocumentedAndNot -Pause -Pause -PauseSelf -PauseSelf -PauseSelfWhenDone -Pavaroh -Pavaroh -Pbeta -Pbeta -Pbind -Pbind -Pbindef -Pbindef -Pbindf -Pbindf -PbindProxy -PbindProxy -Pbinop -Pbinop -Pbrown -Pbrown -Pbus -Pbus -Pcauchy -Pcauchy -Pchain -Pchain -Pclump -Pclutch -Pclutch -Pcollect -Pcollect -Pconst -Pconst -Pdef -Pdef -PdefAllGui -PdefEditor -PdefGui -Pdefn -Pdefn -PdegreeToKey -PdegreeToKey -Pdfsm -Pdfsm -Pdict -Pdict -Pdiff -Pdrop -PdurStutter -PdurStutter -Peak -Peak -PeakFollower -PeakFollower -Pen -Penvir -Penvir -Pevent -Peventmod -Pexprand -Pexprand -PfadeIn -PfadeOut -Pfin -Pfin -Pfindur -Pfindur -PfinQuant -Pfinval -Pfinval -Pflatten -Pflow -Pflow -Pfpar -Pfset -Pfset -Pfsm -Pfsm -Pfunc -Pfunc -Pfuncn -Pfuncn -Pfx -Pfx -Pfxb -Pfxb -Pgate -Pgate -Pgauss -Pgauss -Pgbrown -Pgbrown -Pgeom -Pgeom -Pget -Pgpar -Pgpar -Pgroup -Pgroup -Pgtpar -PG_01_Introduction -PG_02_Basic_Vocabulary -PG_03_What_Is_Pbind -PG_04_Words_to_Phrases -PG_05_Math_on_Patterns -PG_060_Filter_Patterns -PG_06a_Repetition_Contraint_Patterns -PG_06b_Time_Based_Patterns -PG_06c_Composition_of_Patterns -PG_06d_Parallel_Patterns -PG_06e_Language_Control -PG_06f_Server_Control -PG_06g_Data_Sharing -PG_07_Value_Conversions -PG_08_Event_Types_and_Parameters -PG_Cookbook01_Basic_Sequencing -PG_Cookbook02_Manipulating_Patterns -PG_Cookbook03_External_Control -PG_Cookbook04_Sending_MIDI -PG_Cookbook05_Using_Samples -PG_Cookbook06_Phrase_Network -PG_Cookbook07_Rhythmic_Variations -PG_Ref01_Pattern_Internals -Phasor -Phasor -Phid -Phid -PhidKey -PhidKey -PhidSlot -PhidSlot -Phprand -Phprand -Pif -Pif -Pindex -Pindex -PingPong -PinkerNoise -PinkNoise -PinkNoise -Pipe -Pitch -Pitch -Pitch -PitchShift -PitchShift -Pkey -Pkey -Place -Place -Plag -Plambda -Plambda -Platform -play -PlayBuf -PlayBuf -playN -Plazy -Plazy -PlazyEnvir -PlazyEnvir -PlazyEnvirN -PlazyEnvirN -Plet -plot -Plotter -Plprand -Plprand -Pluck -Pluck -Pmeanrand -Pmeanrand -Pmono -Pmono -PmonoArtic -PmonoArtic -PMOsc -PMOsc -Pmul -Pmul -Pmulp -Pmulp -Pmulpre -Pmulpre -Pn -Pn -Pnaryop -Pnaryop -Pnsym -Pnsym -Pnsym1 -Point -Polar -Poll -Poll -Polymorphism -PopUpMenu -Post -pow -Ppar -Ppar -PparGroup -Ppatlace -Ppatlace -Ppatmod -Ppatmod -Pplayer -Ppoisson -Ppoisson -Pprob -Pprob -Pprotect -Pprotect -Pproto -Pproto -Prand -Prand -Preject -Preject -Prewrite -Prewrite -PriorityQueue -Process -Prorate -Prorate -Prout -Prout -Proutine -Proutine -ProxyMixer -ProxyMixerOld -ProxyMonitorGui -ProxySpace -proxyspace_examples -ProxySynthDef -Pseed -Pseed -Pseg -Pseg -Pselect -Pselect -Pseq -Pseq -Pser -Pser -Pseries -Pseries -Pset -Pset -Psetp -Psetp -Psetpre -Psetpre -Pshuf -Pshuf -PSinGrain -Pslide -Pslide -Pspawn -Pspawn -Pspawner -Pspawner -Pstep -Pstep -Pstep2add -Pstep3add -PstepNadd -PstepNadd -PstepNfunc -PstepNfunc -Pstretch -Pstretchp -Pstutter -Pstutter -Pswitch -Pswitch -Pswitch1 -Pswitch1 -Psym -Psym -Psym1 -Psync -Psync -Ptime -Ptime -Ptpar -Ptpar -Ptrace -Ptsym -Ptuple -Ptuple -publishing_code -Pulse -Pulse -PulseCount -PulseDivider -Punop -Punop -pvcalc -pvcalc2 -pvcollect -PV_Add -PV_BinScramble -PV_BinShift -PV_BinWipe -PV_BrickWall -PV_ChainUGen -PV_ChainUGen -PV_ConformalMap -PV_Conj -PV_Copy -PV_CopyPhase -PV_Diffuser -PV_Div -PV_HainsworthFoote -PV_JensenAndersen -PV_LocalMax -PV_MagAbove -PV_MagBelow -PV_MagClip -PV_MagDiv -PV_MagFreeze -PV_MagMul -PV_MagNoise -PV_MagShift -PV_MagSmear -PV_MagSquared -PV_Max -PV_Min -PV_Mul -PV_PhaseShift -PV_PhaseShift270 -PV_PhaseShift90 -PV_RandComb -PV_RandWipe -PV_RectComb -PV_RectComb2 -Pwalk -Pwalk -Pwhile -Pwhile -Pwhite -Pwhite -Pwrand -Pwrand -Pwrap -Pwrap -Pxrand -Pxrand -QuadC -QuadC -QuadL -QuadL -QuadN -QuadN -Quant -Quark -Quarks -RadiansPerSample -Ramp -Ramp -Rand -Rand -Rand -RandID -RandID -Randomness -randomSeed -RandSeed -RandSeed -RangeSlider -RawArray -RawPointer -reciprocal -RecNodeProxy -RecordBuf -RecordBuf -Rect -recursive_phrasing -Ref -RefCopy -Regenerate-GUI-Help -ReplaceOut -resize -Resonz -Resonz -RHPF -RHPF -ring1 -ring2 -ring3 -ring4 -Ringz -Ringz -RLPF -RLPF -RootNode -Rossler -Rotate2 -Rotate2 -round -Routine -runMe -runMe2 -RunningMax -RunningMax -RunningMin -RunningMin -RunningSum -RunningSum -SampleDur -SampleRate -Saw -Saw -SC2DSlider -SC2DTabletSlider -Scale -scaleneg -SCButton -SCCompositeView -SCContainerView -SCControlView -SCDragBoth -SCDragSink -SCDragSource -SCDragView -SCEnvelopeEdit -SCEnvelopeView -SCFont -SCFreqScope -SCFreqScopeWindow -Scheduler -SCHLayoutView -Schmidt -Schmidt -SCImage -SCImageFilter -SCImageKernel -SCKnob -SCLayoutView -SCLevelIndicator -SCListView -SCMenuGroup -SCMenuItem -SCMenuSeparator -SCModalSheet -SCModalWindow -SCMovieView -SCMultiSliderView -SCNumberBox -Scope -ScopeOut -ScopeOut2 -ScopeView -Score -SCPen -SCPopUpMenu -SCQuartzComposerView -SCRangeSlider -ScrollView -SCScope -SCScrollTopView -SCScrollView -SCSlider -SCSliderBase -SCSoundFileView -SCStaticText -SCStaticTextBase -SCStethoscope -SCTabletView -SCTextField -SCTextView -SCTopView -SCUserView -SCUserView-Subclassing -SCView -SCVLayoutView -SCWindow -Select -Select -SelectX -SelectX -SelectXFocus -SelectXFocus -Semaphore -SendPeakRMS -SendReply -SendTrig -SequenceableCollection -SerialPort -Server -Server-Architecture -Server-Command-Reference -ServerBoot -ServerOptions -ServerQuit -ServerTiming -ServerTree -Set -SetBuf -SetResetFF -Shaper -Shaper -SharedIn -SharedOut -Shortcuts -sign -Signal -Silent -Silent -SimpleController -SimpleNumber -sin -sinh -SinOsc -SinOsc -SinOscFB -SkipJack -Slew -Slew -Slider -Slider2D -Slope -Slope -Slope -softclip -softPut -softSet -softVol_ -somepage -SortedList -SOS -SOS -SoundFile -SoundFileView -SoundFileViewProgressWindow -SoundIn -SparseArray -Spawner -Spec -SpecCentroid -SpecCentroid -SpecFlatness -SpecFlatness -SpecPcile -SpecPcile -Splay -SplayAz -SplayZ -Spring -Spring -sqrdif -sqrsum -sqrt -squared -StandardL -StandardL -StandardN -StandardN -StartUp -StaticText -Stepper -StereoConvolution2L -Stethoscope -Stream -StreamClutch -Streams -Streams-Patterns-Events1 -Streams-Patterns-Events2 -Streams-Patterns-Events3 -Streams-Patterns-Events4 -Streams-Patterns-Events5 -Streams-Patterns-Events6 -Streams-Patterns-Events7 -String -StubTemplate -SubsampleOffset -subtraction -sumsqr -Sweep -switch -Symbol -SymbolArray -SymbolicNotations -SyncSaw -SyncSaw -Syntax-Shortcuts -Synth -Synth-Controlling-UGens -Synth-Definition-File-Format -SynthDef -SynthDesc -SynthDescLib -SystemClock -T2A -T2A -T2K -T2K -TabFileReader -TabletSlider2D -TabletView -tan -tanh -Tap -Tap -Task -TaskProxy -TaskProxy -TaskProxyGui -TBall -TBall -TChoose -Tdef -Tdef -TdefAllGui -TdefEditor -TdefGui -TDelay -TDelay -TDuty -TDuty -TempoBusClock -TempoClock -TExpRand -TExpRand -TextField -TextView -TGrains -TGrains -TGrains -the_lazy_proxy -Thread -thresh -Thunk -Timer -TIRand -TIRand -ToggleFF -TopicHelpTemplate -Tour_of_UGens -TRand -TRand -Trig -Trig1 -TrigControl -True -trunc -Tuning -Tutorial -TWChoose -TWChoose -TWindex -TWindex -TwoPole -TwoPole -TwoWayIdentityDictionary -TwoZero -TwoZero -UGen -UGen-doneActions -UGenHelpTemplate -UGens -UGens-and-Synths -UnaryOpFunction -UnaryOpStream -UnaryOpUGen -Understanding-Errors -Undocumented-Classes -UniqueID -UnixFILE -Unpack1FFT -UnpackFFT -UserView -Using-Extensions -Using-the-Startup-File -UsingMIDI -VarLag -VarSaw -VarSaw -VDiskIn -VDiskIn -VDiskIn -Vibrato -View -ViewRedirect -VLayoutView -Volume -VOsc -VOsc -VOsc3 -VOsc3 -Warp -Warp1 -Warp1 -Warp1 -Wavetable -WhiteNoise -WhiteNoise -WidthFirstUGen -WiiMote -WikiUsage -Window -Wrap -Wrap -wrap2 -WrapIndex -WrapIndex -Writing-Classes -Writing_Unit_Generators -XFade -XFade2 -XFade2 -XLine -XLine -XOut -ZeroCrossing -ZeroCrossing diff --git a/elpa/auto-complete-20170125.245/dict/sh-mode b/elpa/auto-complete-20170125.245/dict/sh-mode deleted file mode 100644 index df66ae35..00000000 --- a/elpa/auto-complete-20170125.245/dict/sh-mode +++ /dev/null @@ -1,182 +0,0 @@ -# Bash Family Shell Dictionary -# http://www.gnu.org/software/bash/manual/bash.html - -. -: -[ -alias -bg -bind -break -builtin -caller -cd -command -compgen -complete -compopt -continue -declare -dirs -disown -echo -enable -eval -exec -exit -export -fc -fg -getopts -hash -help -history -jobs -kill -let -local -logout -mapfile -popd -printf -pushd -pwd -read -readarray -readonly -return -set -shift -shopt -source -suspend -test -times -trap -type -typeset -ulimit -umask -unalias -unset -wait -! -[[ -]] -case -do -done -elif -else -esac -fi -for -function -if -in -select -then -time -until -while -{ -} -! -# -$ -* -- -0 -? -@ -_ -BASH -BASH_ALIASES -BASH_ARGC -BASH_ARGV -BASH_CMDS -BASH_COMMAND -BASH_ENV -BASH_EXECUTION_STRING -BASH_LINENO -BASH_REMATCH -BASH_SOURCE -BASH_SUBSHELL -BASH_VERSINFO -BASH_VERSION -BASH_XTRACEFD -BASHOPTS -BASHPID -CDPATH -COLUMNS -COMP_CWORD -COMP_KEY -COMP_LINE -COMP_POINT -COMP_TYPE -COMP_WORDBREAKS -COMP_WORDS -COMPREPLY -DIRSTACK -EMACS -EUID -FCEDIT -FIGNORE -FUNCNAME -GLOBIGNORE -GROUPS -HISTCMD -HISTCONTROL -HISTFILE -HISTFILESIZE -HISTIGNORE -HISTSIZE -HISTTIMEFORMAT -HOME -HOSTFILE -HOSTNAME -HOSTTYPE -IFS -IGNOREEOF -INPUTRC -LANG -LC_ALL -LC_COLLATE -LC_CTYPE -LC_MESSAGES -LC_MESSAGES -LC_NUMERIC -LINENO -LINES -MACHTYPE -MAIL -MAILCHECK -MAILPATH -OLDPWD -OPTARG -OPTERR -OPTIND -OSTYPE -PATH -PIPESTATUS -POSIXLY_CORRECT -PPID -PROMPT_COMMAND -PROMPT_DIRTRIM -PS1 -PS2 -PS3 -PS4 -PWD -RANDOM -REPLY -SECONDS -SHELL -SHELLOPTS -SHLVL -TEXTDOMAIN -TEXTDOMAINDIR -TIMEFORMAT -TMOUT -TMPDIR -UID diff --git a/elpa/auto-complete-20170125.245/dict/swift-mode b/elpa/auto-complete-20170125.245/dict/swift-mode deleted file mode 100644 index ab121e0d..00000000 --- a/elpa/auto-complete-20170125.245/dict/swift-mode +++ /dev/null @@ -1,87 +0,0 @@ -associatedtype -class -deinit -enum -extension -func -import -init -inout -let -operator -precedencegroup -protocol -struct -subscript -typealias -var -fileprivate -internal -private -public -static -undef -sil -sil_stage -sil_vtable -sil_global -sil_witness_table -sil_default_witness_table -sil_coverage_map -sil_scope -defer -if -guard -do -repeat -else -for -in -while -return -break -continue -fallthrough -switch -case -default -where -catch -as -Any -false -is -nil -rethrows -super -self -Self -throw -true -try -throws -__FILE__ -__LINE__ -__COLUMN__ -__FUNCTION__ -__DSO_HANDLE__ -_ -#if -#else -#elseif -#endif -#keyPath -#line -#sourceLocation -#selector -#available -#fileLiteral -#imageLiteral -#colorLiteral -#FileReference -#Image -#Color -#file -#column -#function -#dsohandle diff --git a/elpa/auto-complete-20170125.245/dict/tcl-mode b/elpa/auto-complete-20170125.245/dict/tcl-mode deleted file mode 100644 index 58c0255d..00000000 --- a/elpa/auto-complete-20170125.245/dict/tcl-mode +++ /dev/null @@ -1,172 +0,0 @@ -after -append -apply -array -auto_execok -auto_import -auto_load -auto_load_index -auto_mkindex -auto_mkindex_old -auto_qualify -auto_reset -bell -binary -bind -bindtags -break -button -canvas -case -catch -cd -chan -checkbutton -clipboard -clock -close -concat -continue -destroy -dict -encoding -entry -eof -error -eval -event -exec -exit -expr -fblocked -fconfigure -fcopy -file -fileevent -flush -focus -font -for -foreach -format -frame -gets -glob -global -grab -grid -if -image -incr -info -interp -join -label -labelframe -lappend -lassign -lindex -linsert -list -listbox -llength -load -lower -lrange -lrepeat -lreplace -lreverse -lsearch -lset -lsort -menu -menubutton -message -namespace -open -option -pack -package -panedwindow -pid -pkg_mkIndex -place -proc -puts -pwd -radiobutton -raise -read -regexp -registry -regsub -rename -return -scale -scan -scrollbar -seek -selection -set -socket -source -spinbox -split -string -subst -switch -tclLog -tclPkgSetup -tclPkgUnknown -tcl_findLibrary -tell -text -time -tk -tk_chooseColor -tk_chooseDirectory -tk_getOpenFile -tk_getSaveFile -tk_menuSetFocus -tk_messageBox -tk_popup -tk_textCopy -tk_textCut -tk_textPaste -tkwait -toplevel -ttk::button -ttk::checkbutton -ttk::combobox -ttk::entry -ttk::focusFirst -ttk::frame -ttk::label -ttk::labelframe -ttk::menubutton -ttk::notebook -ttk::paned -ttk::panedwindow -ttk::progressbar -ttk::radiobutton -ttk::scale -ttk::scrollbar -ttk::separator -ttk::setTheme -ttk::sizegrip -ttk::style -ttk::takefocus -ttk::themes -ttk::treeview -trace -unknown -unload -unset -update -uplevel -upvar -variable -vwait -while -winfo -wm diff --git a/elpa/auto-complete-20170125.245/dict/ts-mode b/elpa/auto-complete-20170125.245/dict/ts-mode deleted file mode 100644 index ffe377f9..00000000 --- a/elpa/auto-complete-20170125.245/dict/ts-mode +++ /dev/null @@ -1,797 +0,0 @@ -absRefPrefix -accessibility -accessibilityWrap -accessKey -ACT -ACTIFSUB -ACTIVSUBRO -ACTRO -addAttributes -addExtUrlsAndShortCuts -additionalHeaders -additionalParams -addParams -addQueryString -addQueryString -adjustItemsH -adjustSubItemsH -adminPanelStyles -after -age -align -align.field -all -allowedAttribs -allowedGroups -allowEdit -allowNew -allowTags -allStdWrap -allWrap -alternativeSortingField -alternativeTempPath -altImgResource -altTarget -altText -alwaysActivePIDlist -alwaysLink -andWhere -angle -antiAlias -append -applyTotalH -applyTotalW -arrayReturnMode -arrowACT -arrowImgParams -arrowNO -ATagBeforeWrap -ATagParams -ATagTitle -atLeast -atMost -authcodeFields -autoInsertPID -autostart -backColor -badMess -base64 -baseURL -beforeImg -beforeImgLink -beforeImgTagParams -beforeROImg -beforeWrap -begin -begin -beginAtLevel -beLoginLinkIPList -beLoginLinkIPList_login -beLoginLinkIPList_logout -beUserLogin -bgImg -blankStrEqFalse -blur -bm -bodyTag -bodyTag -bodyTagAdd -bodyTagCObject -bodyTagMargins -border -border -borderCol -bordersWithin -borderThick -bottomContent -bottomHeight -br -breakSpace -breakWidth -brTag -bytes -c -cache_clearAtMidnight -cached -cache_period -caption -captionAlign -captionSplit -case -case -CASE -casesensitiveComp -cellpadding -cellspacing -char -charcoal -clearCacheOfPages -cMargins -COA -COA_INT -cObject -cObjNum -code -collapse -color -color1 -color2 -color3 -color.default -color.field -colRelations -cols -cols -colSpace -COLUMNS -COMMENT -commentWrap -compensateFieldWidth -compX -compY -concatenateJsAndCss -conf -config -config -CONFIG -constants -CONTENT -content_fallback -content_from_pid_allowOutsideDomain -controllerActionName -controllerExtensionName -controllerName -crop -cropHTML -csConv -cssInline -CSS_inlineStyle -CTABLE -CUR -CURIFSUB -CURIFSUBRO -current -CURRO -cWidth -data -dataArray -dataWrap -date -debug -debugData -debugFunc -debugItemConf -debugRenumberedObject -decimals -dec_point -default -defaultAlign -defaultCmd -defaultCode -defaultGetVars -delete -denyTags -depth -dimensions -directImageLink -directionLeft -directionUp -directReturn -disableAllHeaderCode -disableAltText -disableCharsetHeader -disableImgBorderAttr -disablePageExternalUrl -disablePrefixComment -disablePreviewNotification -displayActiveOnLoad -displayActiveOnLoad -displayrecord -distributeX -distributeY -doctype -doctypeSwitch -doNotLinkIt -doNotShowLink -doNotStripHTML -dontCheckPid -dontFollowMouse -dontHideOnMouseUp -dontLinkIfSubmenu -dontMd5FieldNames -dontWrapInTable -doubleBrTag -doublePostCheck -dWorkArea -edge -edit -editIcons -editIcons -editPanel -EDITPANEL -EDITPANEL -effects -email -emailMess -emboss -emptyTitleHandling -emptyTitleHandling -emptyTitleHandling -enable -enableContentLengthHeader -encapsLines -encapsLinesStdWrap -encapsTagList -entryLevel -equalH -equals -evalErrors -evalFunc -excludeDoktypes -excludeNoSearchPages -excludeUidList -expAll -explode -ext -extbase -externalBlocks -extOnReady -extTarget -face.default -face.field -FEData -fe_userEditSelf -fe_userOwnSelf -field -fieldPrefix -fieldRequired -fieldWrap -file -FILE -filelink -fileList -fileTarget -firstLabel -firstLabelGeneral -flip -flop -foldSpeed -foldTimer -fontFile -fontSize -fontSizeMultiplicator -fontTag -footerData -forceAbsoluteUrl -forceTypeValue -FORM -format -formName -formurl -frame -frameReloadIfNotInFrameset -frameSet -freezeMouseover -ftu -gamma -gapBgCol -gapLineCol -gapLineThickness -gapWidth -gif -GIFBUILDER -globalNesting -GMENU -goodMess -gray -gr_list -groupBy -headerComment -headerData -headTag -height -hiddenFields -hide -hideButCreateMap -hideMenuTimer -hideMenuWhenNotOver -hideNonTranslated -highColor -HMENU -hover -hoverStyle -HRULER -HTML -html5 -htmlmail -HTMLparser -htmlSpecialChars -htmlTag_dir -htmlTag_langKey -htmlTag_setParams -http -icon -iconCObject -icon_image_ext_list -icon_link -icon_thumbSize -if -ifBlank -ifEmpty -IFSUB -IFSUBRO -ignore -IMAGE -image_compression -image_effects -image_frames -imgList -imgMap -imgMapExtras -imgMax -imgNameNotRandom -imgNamePrefix -imgObjNum -imgParams -imgPath -imgStart -IMGTEXT -import -inBranch -includeCSS -includeJS -includeJSFooter -includeJSFooterlibs -includeJSlibs -includeLibrary -includeLibs -includeNotInMenu -incT3Lib_htmlmail -index_descrLgd -index_enable -index_externals -index_metatags -infomail -inlineJS -inlineLanguageLabel -inlineSettings -inlineStyle2TempFile -innerStdWrap_all -innerWrap -innerWrap2 -inputLevels -insertClassesFromRTE -insertData -intensity -intTarget -intval -invert -IProcFunc -isFalse -isGreaterThan -isInList -isLessThan -isPositive -isTrue -itemArrayProcFunc -items -iterations -javascriptLibs -join -jpg -jsFooterInline -jsInline -JSMENU -JSwindow -JSwindow.altUrl -JSwindow.altUrl_noDefaultParams -JSwindow.expand -JSwindow.newWindow -JSwindow_params -jumpurl -jumpurl_enable -jumpurl_mailto_disable -keep -keepNonMatchedTags -keywords -keywordsField -labelStdWrap -labelWrap -lang -language -language_alt -languageField -layer_menu_id -layerStyle -layout -layoutRootPath -leftjoin -leftOffset -levels -limit -lineColor -lineThickness -linkAccessRestrictedPages -linkParams -linkVars -linkWrap -list -listNum -lm -LOAD_REGISTER -locale_all -localNesting -locationData -lockFilePath -lockPosition -lockPosition_addSelf -lockPosition_adjust -loginUser -longdescURL -loop -lowColor -lower -mailto -main -mainScript -makelinks -markers -markerWrap -mask -max -maxAge -maxH -maxHeight -maxItems -maxW -maxWidth -maxWInText -m.bgImg -m.bottomImg -m.bottomImg_mask -md5 -meaningfulTempFilePrefix -menuBackColor -menuHeight -menuOffset -menuWidth -message_page_is_being_generated -message_preview -message_preview_workspace -meta -metaCharset -method -minH -minifyCSS -minifyJS -minItems -minItems -minW -m.mask -moveJsFromHeaderToFooter -MP_defaults -MP_disableTypolinkClosestMPvalue -MP_mapRootPoints -MULTIMEDIA -name -namespaces -negate -newRecordFromTable -newRecordInPid -next -niceText -NO -noAttrib -noBlur -no_cache -noCols -noLink -noLinkUnderline -nonCachedSubst -none -nonTypoTagStdWrap -nonTypoTagUserFunc -nonWrappedTag -noOrderBy -noPageTitle -noResultObj -normalWhenNoLanguage -noRows -noScale -noScaleUp -noscript -noStretchAndMarginCells -notification_email_charset -notification_email_encoding -notification_email_urlmode -noTrimWrap -noValueInsert -noWrapAttr -numberFormat -numRows -obj -offset -offset -_offset -offsetWrap -onlyCurrentPid -opacity -options -orderBy -OTABLE -outerWrap -outline -output -outputLevels -override -overrideAttribs -overrideEdit -overrideId -PAGE -pageGenScript -pageRendererTemplateFile -pageTitleFirst -parameter -params -parseFunc -parseFunc -parseValues -partialRootPath -path -pidInList -pixelSpaceFontSizeRef -plainTextStdWrap -pluginNames -png -postCObject -postUserFunc -postUserFunkInt -preCObject -prefixComment -prefixLocalAnchors -prefixLocalAnchors -prefixRelPathWith -preIfEmptyListNum -prepend -preUserFunc -prev -previewBorder -printBeforeContent -prioriCalc -processScript -properties -protect -protectLvar -quality -quality -radioInputWrap -radioWrap -range -range -rawUrlEncode -recipient -RECORDS -recursive -redirect -reduceColors -relativeToParentLayer -relativeToTriggerItem -relPathPrefix -remap -remapTag -removeBadHTML -removeDefaultJS -removeIfEquals -removeIfFalse -removeObjectsOfDummy -removePrependedNumbers -removeTags -removeWrapping -renderCharset -renderObj -renderWrap -REQ -required -required -resources -resultObj -returnKey -returnLast -reverseOrder -rightjoin -rm -rmTagIfNoAttrib -RO_chBgColor -rootline -rotate -rows -rowSpace -sample -sample -section -sectionIndex -select -sendCacheHeaders -sendCacheHeaders_onlyWhenLoginDeniedInBranch -separator -setContentToCurrent -setCurrent -setfixed -setFixedHeight -setFixedWidth -setJS_mouseOver -setJS_openPic -setKeywords -shadow -sharpen -shear -short -shortcutIcon -showAccessRestrictedPages -showActive -showFirst -simulateStaticDocuments -simulateStaticDocuments_addTitle -simulateStaticDocuments_dontRedirectPathInfoError -simulateStaticDocuments_noTypeIfNoTitle -simulateStaticDocuments_pEnc -simulateStaticDocuments_pEnc_onlyP -simulateStaticDocuments_replacementChar -sitetitle -size -size.default -size.field -slide -smallFormFields -solarize -source -space -spaceAfter -spaceBefore -spaceBelowAbove -spaceLeft -spaceRight -spacing -spamProtectEmailAddresses -spamProtectEmailAddresses_atSubst -spamProtectEmailAddresses_lastDotSubst -SPC -special -split -splitRendering -src -stat -stat_apache -stat_apache_logfile -stat_apache_niceTitle -stat_apache_noHost -stat_apache_noRoot -stat_apache_notExtended -stat_apache_pagenames -stat_excludeBEuserHits -stat_excludeIPList -stat_mysql -stat_pageLen -stat_titleLen -stat_typeNumList -stayFolded -stdWrap -stdWrap2 -strftime -stripHtml -stripProfile -stylesheet -submenuObjSuffixes -subMenuOffset -subparts -subst_elementUid -subst_elementUid -substMarksSeparately -substring -swirl -sword -sword_noMixedCase -sword_standAlone -sys_language_mode -sys_language_overlay -sys_language_softExclude -sys_language_softMergeIfNotBlank -sys_language_uid -sys_page -table -tableParams -tables -tableStdWrap -tableStyle -tags -target -TCAselectItem -TDparams -template -TEMPLATE -templateFile -text -TEXT -textMargin -textMargin_outOfText -textMaxLength -textObjNum -textPos -textStyle -thickness -thousands_sep -title -titleTagFunction -titleText -titleText -tm -TMENU -token -topOffset -totalWidth -transparentBackground -transparentColor -trim -twice -typeNum -types -typolink -typolinkCheckRootline -typolinkEnableLinksAcrossDomains -typolinkLinkAccessRestrictedPages -typolinkLinkAccessRestrictedPages_addParams -uid -uidInList -uniqueGlobal -uniqueLinkVars -uniqueLocal -unset -unsetEmpty -upper -url -useCacheHash -useLargestItemX -useLargestItemY -USER -USERDEF1 -USERDEF1RO -USERDEF2RO -USERFEF2 -userFunc -userFunc_updateArray -userIdColumn -USER_INT -USERNAME_substToken -USERUID_substToken -USR -USRRO -value -variables -wave -where -width -wordSpacing -workArea -workOnSubpart -wrap -wrap2 -wrap3 -wrapAlign -wrapFieldName -wrapItemAndSub -wrapNoWrappedLines -wraps -xhtml_11 -xhtml_2 -xhtml_basic -xhtml_cleaning -xhtmlDoctype -xhtml_frames -xhtml+rdfa_10 -xhtml_strict -xhtml_trans -xml_10 -xml_11 -xmlprologue -xPosOffset -yPosOffset diff --git a/elpa/auto-complete-20170125.245/dict/tuareg-mode b/elpa/auto-complete-20170125.245/dict/tuareg-mode deleted file mode 100644 index e709f9f6..00000000 --- a/elpa/auto-complete-20170125.245/dict/tuareg-mode +++ /dev/null @@ -1,231 +0,0 @@ -# OCaml 3.12.1 - -# Keywords -and -as -assert -begin -class -constraint -do -done -downto -else -end -exception -external -false -for -fun -function -functor -if -in -include -inherit -initializer -lazy -let -match -method -module -mutable -new -object -of -open -or -private -rec -sig -struct -then -to -true -try -type -val -virtual -when -while -with - -# Pervasives -! -!= -& -&& -* -** -*. -+ -+. -- --. -/ -/. -:= -< -<= -<> -= -== -> ->= -@ -FP_infinite -FP_nan -FP_normal -FP_subnormal -FP_zero -LargeFile -Open_append -Open_binary -Open_creat -Open_nonblock -Open_rdonly -Open_text -Open_trunc -Open_wronly -Oupen_excl -^ -^^ -abs -abs_float -acos -asin -asr -at_exit -atan -atan2 -bool_of_string -ceil -char_of_int -classify_float -close_in -close_in_noerr -close_out -close_out_noerr -compare -cos -cosh -decr -do_at_exit -epsilon_float -exit -exp -expm1 -failwith -float -float_of_int -float_of_string -floor -flush -flush_all -format -format4 -format_of_string -fpclass -frexp -fst -ignore -in_channel -in_channel_length -incr -infinity -input -input_binary_int -input_byte -input_char -input_line -input_value -int_of_char -int_of_float -int_of_string -invalid_arg -land -ldexp -lnot -log -log10 -log1p -lor -lsl -lsr -lxor -max -max_float -max_int -min -min_float -min_int -mod -mod_float -modf -nan -neg_infinity -not -open_flag -open_in -open_in_bin -open_in_gen -open_out -open_out_bin -open_out_gen -or -out_channel -out_channel_length -output -output_binary_int -output_byte -output_char -output_string -output_value -pos_in -pos_out -pred -prerr_char -prerr_endline -prerr_float -prerr_int -prerr_newline -prerr_string -print_char -print_endline -print_float -print_int -print_newline -print_string -raise -read_float -read_int -read_line -really_input -ref -seek_in -seek_out -set_binary_mode_in -set_binary_mode_out -sin -sinh -snd -sqrt -stderr -stdin -stdout -string_of_bool -string_of_float -string_of_format -string_of_int -succ -tan -tanh -truncate -unsafe_really_input -valid_float_lexem -|| -~ -~+ -~+. -~- -~-. diff --git a/elpa/auto-complete-20170125.245/dict/verilog-mode b/elpa/auto-complete-20170125.245/dict/verilog-mode deleted file mode 100644 index acc2f322..00000000 --- a/elpa/auto-complete-20170125.245/dict/verilog-mode +++ /dev/null @@ -1,313 +0,0 @@ -`define -`else -`endif -`ifdef -`ifndef -`macromodule -`module -`primitive -`timescale -above -abs -absdelay -ac_stim -acos -acosh -alias -aliasparam -always -always_comb -always_ff -always_latch -analog -analysis -and -asin -asinh -assert -assign -assume -atan -atan2 -atanh -automatic -before -begin -bind -bins -binsof -bit -branch -break -buf -bufif0 -bufif1 -byte -case -casex -casez -cell -chandle -class -clocking -cmos -config -connectmodule -connectrules -const -constraint -context -continue -cos -cosh -cover -covergroup -coverpoint -cross -ddt -ddx -deassign -default -define -defparam -design -disable -discipline -dist -do -driver_update -edge -else -end -endcase -endclass -endclocking -endconfig -endconnectrules -enddiscipline -endfunction -endgenerate -endgroup -endif -endinterface -endmodule -endnature -endpackage -endparamset -endprimitive -endprogram -endproperty -endsequence -endspecify -endtable -endtask -enum -event -exclude -exp -expect -export -extends -extern -final -final_step -first_match -flicker_noise -floor -flow -for -force -foreach -forever -fork -forkjoin -from -function -generate -genvar -ground -highz0 -highz1 -hypot -idt -idtmod -if -ifdef -iff -ifndef -ifnone -ignore_bins -illegal_bins -import -incdir -include -inf -initial -initial_step -inout -input -inside -instance -int -integer -interface -intersect -join -join_any -join_none -laplace_nd -laplace_np -laplace_zd -laplace_zp -large -last_crossing -liblist -library -limexp -ln -local -localparam -log -logic -longint -macromodule -mailbox -matches -max -medium -min -modport -module -nand -nand -nature -negedge -net_resolution -new -nmos -nmos -noise_table -nor -noshowcancelled -not -notif0 -notif1 -null -or -output -package -packed -parameter -paramset -pmos -pmos -posedge -potential -pow -primitive -priority -program -property -protected -pull0 -pull1 -pullup -pulsestyle_ondetect -pulsestyle_onevent -pure -rand -randc -randcase -randcase -randsequence -rcmos -real -realtime -ref -reg -release -repeat -return -rnmos -rpmos -rtran -rtranif0 -rtranif1 -scalared -semaphore -sequence -shortint -shortreal -showcancelled -signed -sin -sinh -slew -small -solve -specify -specparam -sqrt -static -string -strong0 -strong1 -struct -super -supply -supply0 -supply1 -table -tagged -tan -tanh -task -then -this -throughout -time -timeprecision -timer -timescale -timeunit -tran -tran -tranif0 -tranif1 -transition -tri -tri -tri0 -tri1 -triand -trior -trireg -type -typedef -union -unique -unsigned -use -uwire -var -vectored -virtual -void -wait -wait_order -wand -weak0 -weak1 -while -white_noise -wildcard -wire -with -within -wor -wreal -xnor -xor -zi_nd -zi_np -zi_zd diff --git a/elpa/ein-20200127.249/ein-ac.el b/elpa/ein-20200127.249/ein-ac.el deleted file mode 100644 index 5bc10d23..00000000 --- a/elpa/ein-20200127.249/ein-ac.el +++ /dev/null @@ -1,256 +0,0 @@ -;;; ein-ac.el --- Auto-complete extension - -;; Copyright (C) 2012- Takafumi Arakaki - -;; Author: Takafumi Arakaki - -;; This file is NOT part of GNU Emacs. - -;; ein-ac.el 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. - -;; ein-ac.el 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 ein-ac.el. If not, see . - -;;; Commentary: - -;; - -;;; Code: - -(require 'auto-complete) - -(require 'ein-core) -(eval-when-compile (require 'ein-notebook) - (defvar ein:mumamo-codecell-mode)) - - -;;; Configuration -(defcustom ein:use-auto-complete-superpack nil - "Set to `t' to use preset a little bit hacky auto-complete configuration. -When this option is enabled, cached omni completion is available." - :type 'boolean - :group 'ein) - -(defvar ein:ac-sources (and (boundp 'ac-sources) - (default-value 'ac-sources)) - "Extra `ac-sources' used in notebook.") - - -;;; Chunk (adapted from auto-complete-chunk.el) - -(defvar ein:ac-chunk-regex - (rx (group (| (syntax whitespace) - (syntax open-parenthesis) - (syntax close-parenthesis) - (syntax string-quote) ; Complete files for `open("path/..` - bol)) - (? (syntax punctuation)) ; to complete ``~/PATH/...`` - (* (+ (| (syntax word) (syntax symbol))) - (syntax punctuation)) - (+ (| (syntax word) (syntax symbol))) - (? (syntax punctuation)) - point) - "A regexp that matches to a \"chunk\" containing words and dots.") - -(defun ein:ac-chunk-beginning () - "Return the position where the chunk begins." - (ignore-errors - (save-excursion - (+ (re-search-backward ein:ac-chunk-regex) (length (match-string 1)))))) - -(defun ein:ac-chunk-candidates-from-list (chunk-list) - "Return matched candidates in CHUNK-LIST." - (let* ((start (ein:ac-chunk-beginning))) - (when start - (cl-loop with prefix = (buffer-substring start (point)) - for cc in chunk-list - when (string-prefix-p prefix cc) - collect cc)))) - - -;;; AC Source - -(defvar ein:ac-direct-matches nil - "Variable to store completion candidates for `auto-completion'.") -;; FIXME: Maybe this should be buffer-local? - -(defun ein:ac-direct-get-matches () - (ein:ac-chunk-candidates-from-list ein:ac-direct-matches)) - - - -(define-obsolete-function-alias 'ac-complete-ein-cached 'ac-complete-ein-async - "0.2.1") -(define-obsolete-variable-alias 'ac-source-ein-cached 'ac-source-ein-async - "0.2.1") - -(defun ein:ac-request-in-background () - (cl-case ein:completion-backend - (ein:use-ac-backend (ein:aif (ein:get-kernel) - (ein:completer-complete - it - (list :complete_reply - (cons (lambda (_ content __) - (ein:ac-prepare-completion (plist-get content :matches))) - nil)) - #'ignore))))) - - -;;; Completer interface - -(defun ein:ac-dot-complete (callback) - "Insert a dot and request completion via CALLBACK of 0-arity" - (interactive (list (lambda () (call-interactively #'ein:completer-complete)))) - (insert ".") - (if (not (ac-cursor-on-diable-face-p)) - (funcall callback))) - -(defun ein:ac-prepare-completion (matches) - "Prepare `ac-source-ein-direct' using MATCHES from kernel. -Call this function before calling `auto-complete'." - (when matches - (setq ein:ac-direct-matches matches))) ; let-binding won't work - -(cl-defun ein:completer-finish-completing-ac - (matched-text - matches - &key (expand ac-expand-on-auto-complete) - &allow-other-keys) - "Invoke completion using `auto-complete'. -Only the argument MATCHES is used. MATCHED-TEXT is for -compatibility with `ein:completer-finish-completing-default'." - ;; I don't need to check if the point is at right position, as in - ;; `ein:completer-finish-completing-default' because `auto-complete' - ;; checks it anyway. - - (ein:log 'debug "COMPLETER-FINISH-COMPLETING-AC: matched-text=%S matches=%S" - matched-text matches) - (ein:ac-prepare-completion matches) - (when matches ; No auto-complete drop-down list when no matches - (let ((ac-expand-on-auto-complete expand)) - (ac-start)))) - - -;;; Async document request hack - -(defun ein:ac-request-document-for-selected-candidate () - "Request object information for the candidate at point. -This is called via `ac-next'/`ac-previous'/`ac-update' and set -`document' property of the current candidate string. If server -replied within `ac-quick-help-delay' seconds, auto-complete will -popup help string." - (ein:aif (ein:get-kernel) - (let* ((candidate (ac-selected-candidate)) - (kernel it) - (api-version (ein:$kernel-api-version kernel)) - (callbacks (list (if (< api-version 3) - :object_info_reply - :inspect_request) - (cons #'ein:ac-set-document candidate)))) - (when (and candidate - (ein:kernel-live-p kernel) - (not (get-text-property 0 'document candidate))) - (ein:log 'debug "Requesting object info for AC candidate %S" - candidate) - (ein:kernel-object-info-request kernel candidate callbacks))))) - -(defun ein:ac-set-document (candidate content -metadata-not-used-) - (ein:log 'debug "EIN:AC-SET-DOCUMENT candidate=%S content=%S" - candidate content) - (put-text-property 0 (length candidate) - 'document (ein:kernel-construct-help-string content) - candidate)) - -(defadvice ac-next (after ein:ac-next-request) - "Monkey patch `auto-complete' internal function to request -help documentation asynchronously." - (ein:ac-request-document-for-selected-candidate)) - -(defadvice ac-previous (after ein:ac-previous-request) - "Monkey patch `auto-complete' internal function to request -help documentation asynchronously." - (ein:ac-request-document-for-selected-candidate)) - -(defadvice ac-update (after ein:ac-update-request) - "Monkey patch `auto-complete' internal function to request help -documentation asynchronously. This will request info for the -first candidate when the `ac-menu' pops up." - (ein:ac-request-document-for-selected-candidate)) - - -;;; Setup - -(defun ein:ac-superpack () - "Enable richer auto-completion. - -* Enable auto-completion help by monkey patching `ac-next'/`ac-previous'" - (interactive) - (ad-enable-advice 'ac-next 'after 'ein:ac-next-request) - (ad-enable-advice 'ac-previous 'after 'ein:ac-previous-request) - (ad-enable-advice 'ac-update 'after 'ein:ac-update-request) - (ad-activate 'ac-next) - (ad-activate 'ac-previous) - (ad-activate 'ac-update)) - -(defun ein:ac-setup () - "Call this function from mode hook (see `ein:ac-config')." - (setq ac-sources (append '(ac-source-ein-async) ein:ac-sources))) - -(defun ein:ac-setup-maybe () - "Setup `ac-sources' for mumamo. - -.. note:: Setting `ein:notebook-mumamo-mode-hook' does not work - because `ac-sources' in `ein:notebook-mumamo-mode'-enabled - buffer is *chunk local*, rather than buffer local. - - Making `ac-sources' permanent-local also addresses issue of - MuMaMo discarding `ac-sources'. However, it effects to entire - Emacs setting. So this is not the right way to do it. - - Using `mumamo-make-variable-buffer-permanent' (i.e., adding - `ac-sources' to `mumamo-per-buffer-local-vars' or - `mumamo-per-main-major-local-vars') is also not appropriate. - Adding `ac-sources' to them makes it impossible to different - `ac-sources' between chunks, which is good for EIN but may not - for other package." - (and (ein:eval-if-bound 'ein:notebook-mode) - (ein:eval-if-bound 'ein:notebook-mumamo-mode) - (eql major-mode ein:mumamo-codecell-mode) - (ein:ac-setup))) - -(defun ein:ac-config (&optional superpack) - "Install auto-complete-mode for notebook modes. -Specifying non-`nil' to SUPERPACK enables richer auto-completion -\(see `ein:ac-superpack')." - (add-hook 'after-change-major-mode-hook 'ein:ac-setup-maybe) - (add-hook 'ein:notebook-mode-hook 'ein:ac-setup) - (when superpack - (ein:ac-superpack))) - -(defun ein:ac-install-backend () - (ac-define-source ein-direct - '((candidates . ein:ac-direct-get-matches) - (requires . 0) - (prefix . ein:ac-chunk-beginning) - (symbol . "s"))) - - (ac-define-source ein-async - '((candidates . ein:ac-direct-get-matches) - (requires . 0) - (prefix . ein:ac-chunk-beginning) - (init . ein:ac-request-in-background) - (symbol . "c"))) - - (ein:ac-config ein:use-auto-complete-superpack)) - -(provide 'ein-ac) - -;;; ein-ac.el ends here diff --git a/elpa/ein-20200127.249/ein-ac.elc b/elpa/ein-20200127.249/ein-ac.elc deleted file mode 100644 index 680c9c37defa930367210f576b682a326fc63171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8506 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 S&Z0o#ix5CUg - -;; This file is NOT part of GNU Emacs. - -;; ein-cell-edit.el 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. - -;; ein-cell-edit.el 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 ein-worksheet.el. If not, see . - -;;; Commentary: - -;; This code inspired by borrowing from org-src.el. - -;;; Code: -(require 'ein-cell) - -(autoload 'julia-mode "julia-mode") -(autoload 'markdown-mode "markdown-mode") -(autoload 'R-mode "ess-r-mode") -(autoload 'org-src--remove-overlay "org-src") -(autoload 'org-src-switch-to-buffer "org-src") - -(defvar ein:src--cell nil) -(defvar ein:src--ws nil) -(defvar ein:src--allow-write-back t) -(defvar ein:src--overlay nil) -(defvar ein:src--saved-window-config nil) - -(declare-function ein:notebook--get-nb-or-error "ein-notebook" ()) - -(defvar ein:edit-cell-mode-map - (let ((map (make-sparse-keymap))) - (define-key map "\C-c'" 'ein:edit-cell-exit) - (define-key map "\C-c\C-k" 'ein:edit-cell-abort) - (define-key map "\C-c\C-c" 'ein:edit-cell-save-and-execute) - (define-key map "\C-x\C-s" 'ein:edit-cell-save) - (define-key map "\C-c\C-x" 'ein:edit-cell-view-traceback) - map)) - -(define-minor-mode ein:edit-cell-mode - "Minor mode for language major mode buffers generated by EIN. -This minor mode is turned on when editing a source code snippet with \\[ein:edit-cell-contents] - -\\{ein:edit-cell-mode-map} - -." - nil " EinCell" nil - (set (make-local-variable 'header-line-format) - (substitute-command-keys - "Edit, execute with \\[ein:edit-cell-execute] then exit with \\[ein:edit-cell-exit] \ -or abort with \\[ein:edit-cell-abort]")) - ;; Possibly activate various auto-save features (for the edit buffer - ;; or the source buffer). - ;; (when org-edit-src-turn-on-auto-save - ;; (setq buffer-auto-save-file-name - ;; (concat (make-temp-name "org-src-") - ;; (format-time-string "-%Y-%d-%m") - ;; ".txt"))) - ;; (unless (or org-src--auto-save-timer (zerop org-edit-src-auto-save-idle-delay)) - ;; (setq org-src--auto-save-timer - ;; (run-with-idle-timer - ;; org-edit-src-auto-save-idle-delay t - ;; (lambda () - ;; (save-excursion - ;; (let (edit-flag) - ;; (dolist (b (buffer-list)) - ;; (with-current-buffer b - ;; (when (org-src-edit-buffer-p) - ;; (unless edit-flag (setq edit-flag t)) - ;; (when (buffer-modified-p) (org-edit-src-save))))) - ;; (unless edit-flag - ;; (cancel-timer org-src--auto-save-timer) - ;; (setq org-src--auto-save-timer nil)))))))) - ) - -(defun ein:cell-configure-edit-buffer () - (when (and (bound-and-true-p org-src--from-org-mode) (boundp 'org-src--beg-marker)) - (add-hook 'kill-buffer-hook #'org-src--remove-overlay nil 'local) - (if (bound-and-true-p org-src--allow-write-back) - (progn - (setq buffer-offer-save t) - (setq buffer-file-name - (concat (buffer-file-name (marker-buffer org-src--beg-marker)) - "[" (buffer-name) "]")) - (setq write-contents-functions '(ein:edit-cell-save))) - (setq buffer-read-only t)))) - -(defun ein:edit-cell-view-traceback () - "Jump to traceback, if there is one, for current edit." - (interactive) - (let ((buf (current-buffer)) - (cell ein:src--cell)) - (with-current-buffer (ein:worksheet--get-buffer ein:src--ws) - (ein:cell-goto cell) - (ein:tb-show)))) - -(defun ein:edit-cell-save-and-execute () - "Save, then execute the countents of the EIN source edit buffer -and place results (if any) in output of original notebook cell." - (interactive) - (ein:edit-cell-save) - (when (and (slot-exists-p ein:src--cell 'kernel) - (slot-boundp ein:src--cell 'kernel)) - (ein:cell-execute-internal ein:src--cell - (slot-value ein:src--cell 'kernel) - (buffer-string) - :silent nil))) - -(defun ein:edit-cell-save () - "Save contents of EIN source edit buffer back to original notebook -cell." - (interactive) - (set-buffer-modified-p nil) - (let* ((edited-code (buffer-string)) - (cell ein:src--cell) - (overlay ein:src--overlay) - (read-only (overlay-get overlay 'modification-hooks))) - (overlay-put overlay 'modification-hooks nil) - (overlay-put overlay 'insert-in-front-hooks nil) - (overlay-put overlay 'insert-behind-hooks nil) - (with-current-buffer (ein:worksheet--get-buffer ein:src--ws) - (ein:cell-set-text cell edited-code)) - ;;(setf (slot-value ein:src--cell 'input) edited-code) - (overlay-put overlay 'modification-hooks read-only) - (overlay-put overlay 'insert-in-front-hooks read-only) - (overlay-put overlay 'insert-behind-hooks read-only))) - - -(defun ein:edit-cell-exit () - "Close the EIN source edit buffer, saving contents back to the -original notebook cell, unless being called via -`ein:edit-cell-abort'." - (interactive) - (let ((edit-buffer (current-buffer)) - (ws ein:src--ws) - (cell ein:src--cell)) - (ein:remove-overlay) - (when ein:src--allow-write-back - (ein:edit-cell-save)) - (kill-buffer edit-buffer) - (switch-to-buffer-other-window (ein:worksheet--get-buffer ws)) - (ein:cell-goto cell) - (when ein:src--saved-window-config - (set-window-configuration ein:src--saved-window-config) - (setq ein:src--saved-window-config nil)))) - -(defun ein:edit-cell-abort () - "Abort editing the current cell, contents will revert to -previous value." - (interactive) - (let (ein:src--allow-write-back) (ein:edit-cell-exit))) - -(defun ein:construct-cell-edit-buffer-name (bufname cid cell-type) - (concat "*EIN Src " bufname "[ " cid "/" cell-type " ]*" )) - -(defun ein:get-mode-for-kernel (kernelspec) - (if (null kernelspec) - 'python ;; FIXME - (intern (ein:$kernelspec-language kernelspec)))) - ;; (ein:case-equal (ein:$kernelspec-language kernelspec) - ;; (("julia" "python" "R") ) - ;; (t 'python)))) - -(defun ein:edit-src-continue (e) - (interactive "e") - (mouse-set-point e) - (let ((buf (get-char-property (point) 'edit-buffer))) - (if buf (org-src-switch-to-buffer buf 'continue) - (user-error "No sub-editing buffer for area at point")))) - -(defun ein:make-source-overlay (beg end edit-buffer) - "Create overlay between BEG and END positions and return it. -EDIT-BUFFER is the buffer currently editing area between BEG and -END." - (let ((overlay (make-overlay beg end))) - (overlay-put overlay 'face 'secondary-selection) - (overlay-put overlay 'edit-buffer edit-buffer) - (overlay-put overlay 'help-echo - "Click with mouse-1 to switch to buffer editing this segment") - (overlay-put overlay 'face 'secondary-selection) - (overlay-put overlay 'keymap - (let ((map (make-sparse-keymap))) - (define-key map [mouse-1] 'ein:edit-src-continue) - map)) - (let ((read-only - (list - (lambda (&rest _) - (user-error - "Cannot modify an area being edited in a dedicated buffer"))))) - (overlay-put overlay 'modification-hooks read-only) - (overlay-put overlay 'insert-in-front-hooks read-only) - (overlay-put overlay 'insert-behind-hooks read-only)) - overlay)) - -(defun ein:remove-overlay () - "Remove overlay from current source buffer." - (when (overlayp ein:src--overlay) (delete-overlay ein:src--overlay))) - -(defcustom ein:raw-cell-default-edit-mode 'LaTeX-mode - "The major mode to use when editing a cell of type 'Raw' in the - dedicated edit buffer. By default we use LaTeX-mode." - :type 'symbol - :group 'ein) - -(defun ein:edit-cell-contents () - "Edit the contents of the current cell in a buffer using an -appropriate language major mode. Functionality is very similar to -`org-edit-special'." - (interactive) - (setq ein:src--saved-window-config (current-window-configuration)) - (let* ((cell (or (ein:worksheet-get-current-cell) - (error "Must be called from inside an EIN worksheet cell."))) - (nb (ein:notebook--get-nb-or-error)) - (ws (ein:worksheet--get-ws-or-error)) - (type (slot-value cell 'cell-type)) - (name (ein:construct-cell-edit-buffer-name (buffer-name) (ein:cell-id cell) type))) - (ein:aif (get-buffer name) - (switch-to-buffer-other-window it) - (ein:create-edit-cell-buffer name cell nb ws)))) - -(defun ein:edit-cell-detect-type (contents notebook &optional raw-cell-p) - (if (string-match "^%%\\(.*\\)" contents) - (ein:case-equal (match-string 1 contents) - (("html" "HTML") (html-mode)) - (("latex" "LATEX") (LaTeX-mode)) - (("ruby") (ruby-mode)) - (("sh" "bash") (sh-mode)) - (("javascript" "js") (javascript-mode)) - (t (funcall ein:raw-cell-default-edit-mode))) - (if raw-cell-p - (funcall ein:raw-cell-default-edit-mode) - (cl-case (ein:get-mode-for-kernel (ein:$notebook-kernelspec notebook)) - (julia (julia-mode)) - (python (python-mode)) - (R (R-mode)))))) - -(defun ein:create-edit-cell-buffer (name cell notebook worksheet) - (let* ((contents (ein:cell-get-text cell)) - (type (slot-value cell 'cell-type)) - (buffer (generate-new-buffer-name name)) - (overlay (ein:make-source-overlay (ein:cell-input-pos-min cell) - (ein:cell-input-pos-max cell) - buffer))) - (switch-to-buffer-other-window buffer) - (insert contents) - (remove-text-properties (point-min) (point-max) - '(display nil invisible nil intangible nil)) - (set-buffer-modified-p nil) - (setq buffer-file-name buffer) ;; Breaks anaconda-mode without this special fix. - - (condition-case e - (ein:case-equal type - (("markdown") (markdown-mode)) - (("raw") (ein:edit-cell-detect-type contents notebook t)) - (("code") (ein:edit-cell-detect-type contents notebook))) - (error (message "Language mode `%s' fails with: %S" - type (nth 1 e)))) - (set (make-local-variable 'ein:src--overlay) overlay) - (set (make-local-variable 'ein:src--cell) cell) - (set (make-local-variable 'ein:src--ws) worksheet) - (set (make-local-variable 'ein:src--allow-write-back) t) - (ein:edit-cell-mode))) - -(provide 'ein-cell-edit) diff --git a/elpa/ein-20200127.249/ein-cell-edit.elc b/elpa/ein-20200127.249/ein-cell-edit.elc deleted file mode 100644 index 234384feb43c24920404bdd168fc2bf762e2588a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9730 zcmbta3vb)j6*f?yvt`66+Ae*ry{41e>P$~0B{>gtYwNmAhBO1xbSMyc3ng7iOej(% zDJ$Br|Gw`#_mX-xEl>lN#rxvD=kcBIoa_6Sk1pQZ+1aVxzkgp{q~l2x>%KfhiMkwz zy>>A{yYiCQBU>L zUS4ETGR#lWo8^TH`+eP4)myx~Xa3!dHTo&mNYX;}(xeD6cv=kHJ7`JVuYS0A_)zsm zVHWlZZ1GfHA0~a3r>Ykws;gC;hAS_zN6D2AvpCY3Dn=OS2j;yH!SDLv27d2PtyVkf z&I|4K(!N$sCulVA>m7D{k6(QJ2Ka4uoTZi)TG}fu=bZrKm&SM=TKtt3tYcal=Z<=o z>7S=jrj?Eox2K`pa9X64pL#KkqtG48eiq*yH4d|v{dAVtu9ZheJ+aL?&)rPEJ1WhF zZl3jAH`C+vTD$no;&84U+p!pt!^V0ew@BUYbTH7_l?v*$lfE8YhZ(ncPnMB=CQ-bl zYX-B~+5x*wXYMSEAmeV>d#Q>ov&)TbUm_2$b>E#u2~H0^C4*?V`7+&)3K687-5rM$ zwWe54y-$tqmMT3eHOdxI=}L>Jbh*W-bftwVZA!~-z2l2s`QmZ-QoH#i%yR9%)N?jL zlu;s2%6a415t%NwtY1Y1+V|Jn!)}_fv+)7G#Ms9)#8$@Pi?ZFAdai~#(OFmk9lLXN`S9^sO+aw$jlhB%z$oy7!*^)I_-%C(&ixEiyf!Bv^V@j|VLsr{CoVREM_jd~`1Ssd zI1j!De%a;wA7dz7!*7};zr%RH#U&r`Te~w5m#NqBaE_@!PQIF`c;tO?bT1C`!W{$1 zs4tvw%~`}4M;ehPb7MLc^g9j<1Rt72Z<=M0ay7q5heHI%Nd^aeQEC0c^y)>BPBm=nto=^f;sAbtT*0D|!d4gns=?1Eb;!2(65d zZyzLmSB}c2i91Tum+-(1Ka-Aa?Qmw!+1fQ2m_A4h{_IAuOosL7TE}yDqQV40f?UB$ zQyEu546<5rE;sSvb}ry>J9m_$6MXa|e1&p)ux%Q+C~G?D!_|N~rI!bHT6J|2N1!Mt z5J#y$t1znn*yylczgi6)tH@yvWFp9FM5odFk6~fW&VZ&1(`-l^{u=bg7ZcOrEiigU z{sv9Gb(8iDukk(awl&c$8X&-LX%^|1X61sB!T7+c=(=h$1+G7!dZ1es4j_M^D?SM- z#48S6jodQh9xyp1tjSGVI3d|~i7MWZ(ohE%uc@6?7GCCHj0gs8O z{kiHQu;wZ%&XhV4;3L{)a1Y`pY3Is0^0T@_F6jz98q%@3M_A8glrVNUW&;xf`;}@N z4KAS@IfV`C(@eXfQ)6vFItBxBvUa7AHWUKAw5dn763pzQ)tqHsfVNvUz;m2IE`Mha z!vi0)y(aJw76IVfKO{h6lm|2l{Kk`a@hLk0BX!QPG=Q6L^9dkT(W*g~j$J+pBvs8D zl*gRMP06fWhVBJ3>uSsfv4i^UC~|ohBwi~+n#!=@4yFk_6wJSrXsJ;3GJ*{4bWv8d zl{Ml=c^a53gic~RR@TllC`zcGdA9@9Ia$>!H(oCXWx!uIP2%~LYQZg!zHGJB->2gV zgMP&=PK{A&&|KJ5nrP%A3m2Cd`nqtpN>oa7nCyP=VMf*MAO36=+(Lvie7&vyY?Z{l zFG#B}SDa7WRGL9pIb@b*FY}Ssh3gLSVWq(yG0b6#^YE$Yy7?%bT`AwtfWx zIQ%>62gv8N#C^lc3`LrnxUW)rs3yZGNdv9jO0-5AHHpE>tV8GO1TGCEt`msUX+g-q z5@{9x9$=_xYO6kaf2)_9LqD|x1zdED>0C|2lNSvwHnhuD0402dNV$rP z3z1W53xpP{&*QWJV+GXb2r{twM8`@R1*8m!irj4&HGzqTl~E>YTQfE3t-6=PUy{PY zOR1bz^L(M4^FVYXIW30562Wh`DnXGE(}XvKT>C9TE=`nz!tc4YO0NNO_TfHQ5wK~1 zPvnJv!k@rCV5H3|Y!gsvy@}z;jDqcZ?Sr>U;|D`ab`41bpDNe9v9{pabL+;@Y3V00 zK`;QJuTHW(WUj0R-d)?U9C6Q6HBDl0ClpC!rqC{R9fh^$t9~Mk@A!4zES%DM z@ML%I!;fHBjkfsl4d^s@i{5K#H63(NTA@@V80!QoVJV4xJvgAxpJJBRJUA$OLDv!S z4mQx#!seQluoZT+44*P$BNFnkYcXl{{DKop@l35(CfpQK&TKV6RQfCG7YL^ftP~KY zNchOZ7!kPx*)CtcR%k#W#9~Ub<$w$AAf_%Ih>A6m@S!RZH5Uf}!^-YH~R_sg(vpM$mMrg^S+lF~HFGnLX` zIvWy(31n?)zp0#*!AF&?D(G zw#9E&X{D+pug&$4>9YggC>7P$7g?X#b+5$TtkP^G0U2|D;rxK#T+b5r45mC}8*tUPQjpzJkZUgu$;rg!cv-olJWwWWC zNG-qe59Xj{(WFc(%nmjUc`foT1r`EIqqRq@5O5I;tm4a>npw?`HOgbQeUTKk&&!Q^ z-d*(+?zdEKg=chBrD zpO3p~tnLl7bUKmZtmJ;pwz}m0gaX(iZ<*|s1vEJ(4hF~(^MEL5L19u0Cj?y79szn= zs?=xdTbuVI2m+J=YakMH1ekGzCL<^m)vaT(xOK62kx(dWnL~rHi8$GZLxuQu(>v9ez4XNl=lfNMR-jbrcf9>cxEc{6S;9{ zo~=y<<1|+h9y`RQSEu44!;bg@BYajs))x1xef?u~aa?NHsZTg{%f5KcVfNKun_BH_ z$f;&ud*N>;1Dtk(WWE@mC9+1m5w(twCX|ypsG); z66mts&}X^vDKsjFrc8ipC~l&a^RL^tJDroW&pRE|o288`oS5k;XH<+)Sau#f{r-`o z_+ToqP7Dxzg^ovGJ-z(NSqclv$)?>oFH*X5J2oF-U^nESd}P~Rgx6u-%c2QrhVufq z7mEfnf~Vh>fzUI43+*q@4)@bP$L6Yk`NH2O6XuV3|Tk`^N0{9+21>OPtrjoGNvjv26i|I~Dq?h-s?S9|Y(xZrcmh8+TLFdo&ylyZoJ#)jY9`Q!+ujk*S$ zBRM$w>dPaTD}$GD6iJe9+{A(8xh2oLH|a2Rq_#XC+`9RRZ7Az?{`t*M#evEinM9Dv z0~P_v!f8p5Dx9W;NX2O@{Fm3wZi0LGb)4UpYgFq-35sJ#*K%II2(cA(UTO|s{Yt^a zQb6vmO!OlB%g+h!>QH>1OEwlI*HIqfa>+gwxH~T&>#r&Iok;cv+baJxW#fNVfDY^b zjj$YAa3#h%. - -;;; Commentary: - -;; Because wiriting cell outputs to nbformat v4.0 json is complicated -;; enought that it warrants a file all to its own. - -;;; Code: - -(require 'ein-cell) - -(defvar ein:output-type-map - '((:svg . :image/svg+xml) (:png . :image/png) (:jpeg . :image/jpeg) - (:text . :text/plain) - (:html . :text/html) (:latex . :text/latex) (:javascript . :text/javascript))) - -(defun ein:output-property (maybe-property) - (cdr (assoc maybe-property ein:output-type-map))) - -;;; Dealing with Code cell outputs -(defun ein:cell-stream-output-to-json (output) - `((output_type . "stream") - (name . ,(plist-get output :stream)) - (text . ,(plist-get output :text)))) - -(defun ein:cell-error-output-to-json (output) - `((output_type . "error") - (ename . ,(plist-get output :ename)) - (evalue . ,(plist-get output :evalue)) - (traceback . ,(plist-get output :traceback)))) - -(defun ein:cell-execute-result-output-to-json (output) - (let ((data (ein:aif (plist-get output :text) - `("text/plain" . ,it) - (plist-get output :data)))) - `((output_type . "execute_result") - (metadata . ,(make-hash-table)) - (execution_count . ,(or (plist-get output :prompt_number) - (plist-get output :execution_count))) - (data . (,data))))) - -(defun ein:maybe-get-output-mime-data (output) - (cl-loop for type in '(:svg :png :jpeg :html :latex :javascript :text) - if (plist-get output type) - collecting (cons (ein:output-property type) (plist-get output type)))) - -(defun ein:cell-display-data-output-to-json (output) - (let ((data (or (ein:maybe-get-output-mime-data output) - (plist-get output :data)))) - `((output_type . "display_data") - (data . ,data) - (metadata . ,(make-hash-table))))) - -(defun ein:find-and-make-outputs (output-plist) - (cl-loop for prop in ein:output-type-map - when (plist-get output-plist (cdr prop)) - collect (list (cdr prop) (plist-get output-plist (cdr prop))))) - -(provide 'ein-cell-output) diff --git a/elpa/ein-20200127.249/ein-cell-output.elc b/elpa/ein-20200127.249/ein-cell-output.elc deleted file mode 100644 index 9fa8807c3bcb3ae00d7e615755afc609bc537122..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2204 zcmbtV!EW0)5cO?s=g@6?Xq#Rp3b3)zGL59vZWS!hI8A{9z3tvA!=NQPW-3uyk#ggH zeTSsv$c~deM1U>vam1NRKScu zn$ry@bt)1VEmO`)PzyBl1M3$lc+{l>c{2LBi%sS^^?r zUa6u|M6C)&GFrgVU=YgX6&ypzGkV3|;o{9rmbx$q3(>-Hp|R_NwLrbnsA4xtAEEE> ziWIrl=t5=b8r2I8rWB3Vs9BkF>5|I0h%vu>58eY`y-uAl( zn9MK|O;zXye`S~oPCTqIq(_qipN?u4s@zFAE=ZGoZiiJ&P77- z1BX)|%gVAWZ$}p~zHxwcZ8oUk{_CF6ebDKBdS()vN8;Q{e}K}Sx3JH9df5!Z(dfbN&o-= diff --git a/elpa/ein-20200127.249/ein-cell.elc b/elpa/ein-20200127.249/ein-cell.elc deleted file mode 100644 index 90a24816a4f996c34bc8bc6b904c7cdcd179d5e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46057 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 diff --git a/elpa/ein-20200127.249/ein-company.el b/elpa/ein-20200127.249/ein-company.el deleted file mode 100644 index 41504f05..00000000 --- a/elpa/ein-20200127.249/ein-company.el +++ /dev/null @@ -1,123 +0,0 @@ -;;; -*- mode: emacs-lisp; lexical-binding: t; -*- -;;; ein-company.el --- Support for completion using company back-end. - -;; Copyright (C) 2017 - John Miller - -;; Author: John Miller - -;; This file is NOT part of GNU Emacs. - -;; ein-company.el 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. - -;; ein-company.el 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 ein-company.el. If not, see . - -;;; Commentary: - -;; - -;;; Code: - -(require 'deferred) -(require 'ein-completer) -(require 'company nil t) - -(autoload 'company-begin-backend "company") -(autoload 'company-doc-buffer "company") - -(defun ein:company--deferred-complete () - (let ((d (deferred:new #'identity))) - (ein:completer-complete - (ein:get-kernel) - (list :complete_reply - (cons (lambda (d* &rest args) (deferred:callback-post d* args)) - d)) - (apply-partially (lambda (d* err) (deferred:callback-post d* err)) d)) - d)) - -(defun ein:company--complete (prefix fetcher) - (deferred:$ - (deferred:next - (lambda () - (ein:company--deferred-complete))) - (deferred:nextc it - (lambda (replies) - (unless (stringp replies) ;; if not an error - (ein:completions--prepare-matches prefix fetcher replies)))))) - -(defun ein:completions--prepare-matches (prefix fetcher replies) - (cl-destructuring-bind - ((&key matches cursor_start cursor_end &allow-other-keys) ; :complete_reply - _metadata) - replies - (let ((nix (- cursor_end cursor_start)) - prefixed-matches) - (dolist (match matches) - (setq prefixed-matches - (nconc prefixed-matches (list (concat prefix (substring match nix)))))) - (ein:completions--build-oinfo-cache prefixed-matches) - (funcall fetcher prefixed-matches)))) - -;;;###autoload -(defun ein:company-backend (command &optional arg &rest _) - (interactive (list 'interactive)) - (cl-case command - (interactive (company-begin-backend 'ein:company-backend)) - (prefix (and (eq ein:completion-backend 'ein:use-company-backend) - (or (ein:worksheet-at-codecell-p) ein:connect-mode) - (ein:get-kernel) - (ein:object-prefix-at-point))) - (annotation (let ((kernel (ein:get-kernel))) - (ein:aif (gethash arg (ein:$kernel-oinfo-cache kernel)) - (plist-get it :definition)))) - (doc-buffer (cons :async - (lambda (cb) - (ein:company-handle-doc-buffer arg cb)))) - (location (cons :async - (lambda (cb) - (ein:pytools-find-source (ein:get-kernel-or-error) - arg - cb)))) - (candidates - (let* ((kernel (ein:get-kernel-or-error)) - (cached (ein:completions-get-cached arg (ein:$kernel-oinfo-cache kernel)))) - (ein:aif cached it - (unless (ein:company--punctuation-check (thing-at-point 'line) - (current-column)) - (cl-case ein:completion-backend - (t - (cons :async - (lambda (cb) - (ein:company--complete arg cb))))))))))) - -(defun ein:company--punctuation-check (thing col) - (or (string-match "[[:nonascii:]]" thing) - (let ((query (ein:trim-right (cl-subseq thing 0 col) "[\n]"))) - (string-match "[]()\",[{}'=: ]$" query (- col 2))))) - - -(defun ein:company-handle-doc-buffer-finish (packed content _metadata-not-used_) - (when (plist-get content :found) - (funcall (plist-get packed :callback) (company-doc-buffer - (ansi-color-apply (cadr (plist-get content :data))))))) - -(defun ein:company-handle-doc-buffer (object cb) - (ein:kernel-object-info-request (ein:get-kernel-or-error) - object - (list :inspect_reply - (cons #'ein:company-handle-doc-buffer-finish - (list :object object - :callback cb))))) - -(when (boundp 'company-backends) - (add-to-list 'company-backends 'ein:company-backend)) - -(provide 'ein-company) diff --git a/elpa/ein-20200127.249/ein-company.elc b/elpa/ein-20200127.249/ein-company.elc deleted file mode 100644 index 08457a5753bd84f3bafd27c2cd3a5c4fe012a353..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3956 zcmbtX-*4MS5_arFZG5xZDA{&TYQgUSUF0!m7z9x3yD8QkT5K!dG+A~Em zB$d>6=>OhtmZT&rb`NL;kmByn&g}g9X7;H6s`t&-*4FOP(Gm6Hd7?uVn1PO{Kll8M zKB_d+aYT0Oi8L#pbUq_53@J`>J=g#Bax7<0cFp2orZbv?3oSC0QE(l3bL~?Q`&pjq z=rVhZ)ile=3j!6;Qi}ETiT(659zhHqQJj+>N4W>$MLrdWn2AL9ZSVAy{F#?}evTtP zHsZY~pe!cei)f-KjJ+E|N>wsaUK(nZQa%HrEep9Y!Jqo^0sic7cX#(-a-A#T$AO~y zNH&{zti6$K@drQl`aojB!Q<|i6fF$eBMIvIYR0mvnP$6A!&H4(=u}alrYcS01*Ibh zoF}1zC1LA%;zidK>5$;3MIN&qt7$P&mmr^b{*{8U>m_x4xeiy0$zlrDV{#h12aw{0 z+RNyBi0PE%LR7++f@y!)T-O+yLKjJuhWC$8@M-jWFsc{&+R)54I#ujCk@`eBP*JY) zYgWuiG>WYx@${w2#g$4U71EOAeX5f18V8YwZgG_DZMNf02|i+<)fY*eOcN)BM@cJQOP=tmFsg`{YUy@%YpzyzprP{;VL)byW+WdxJEcq=P zhBvKzzyY)7hhOrQOQ|$s)_YkZS~Pjl}|iB(G2ZX5Q4%%gvTrTdpHK0Y3k zCOe1<_SHwgh41BnEtm}4|!Q;==-}frGmEoVas9fu(9!SIN+PoM4XFp3szvLEmmP? zUTtiB$(H&N-%R7cWtPRk@9b?oT%WXga!CS|Tk*0=Nf*2sbkcGm-)imbjiP@rs~#^v zvJJ1;)&q_McnGey?U&}8LD4-2mCgBV8-6BLm*=$+F(8tfiIC?u*h#RHh%bqJlCt*2 z9{zZ%lsKnseS5riMp^2MspbX?huN%HI0iEi!J8}`X^v3Yz;S3KoefP#wzR?i|0!## zfJFSZIaXPF0}0saKsN`vxy?O2svF3FTQ-lpru8U-+O9eCN^N7i8xemqG?&$|n2sXg zj+k==_d|icXMrIvJt_*0$h}MSARj`sKPb59U-UdQJ5&COyz( znX=KyN>Pv`2y?^*Bq(8gX*k1 z`nVueV#OJ~2U54J%e~`99nBz00*mL2HZY2SYc{KzVTwd@oyT#Q2^=*LS-ePnwP7+5 zrvgn=jONDWHZ#zHm!nB#ORfyNq%!km;X$*9&;LX&+WD)uK!W>Wl*!(N>rf8Q} z{s?uXR+Y@`sVX{}0!vmf*mkW3ZT67BcGJVG#T)h%a0vu0I*Gx{)3X=UJAZXIG>XrU zxz^IKU3ZMPTBcTU5*E;Te;=O=IYpsvZQsXN`)8Ev5|&Uziu*xPlBqr%cF^T}nXh$c zJgyr%;sP-jslJ@yK7hPhOfvO>&@&E45h&`z@j+u$e?0u(uiyXJq4A?S*<-581H>H` z`Z{)1!n?hn`X^BMY|uX&(Chx7d(s_r#o75lynEX}`JEE+S-5e;XrxG0(V-{s7-7b- z>wXO+LZsnk8yi$zd-DONOzqy=Gt~rUD2k*>nQ6R073@^~<`N-RQI0IlH1az{RGMBB zdFJKbn4Xs506;I*Ub^}G_+S0rfRGcnHY>Mg(`L^|g)VR}6mV)^uo|^5pC6x;4VX!$ z66{KRF-4ni9^4<_l`S0|WeL!zY{Z$Yg2g*cUIN(4PKa!)Qr~U4?DfrjzHbikEIChUe}Y5fv~Grqx!JQm#4EYqB=w}R>TBW@zRR$=s*WMlU?PUVMa diff --git a/elpa/ein-20200127.249/ein-completer.el b/elpa/ein-20200127.249/ein-completer.el deleted file mode 100644 index c1945fd2..00000000 --- a/elpa/ein-20200127.249/ein-completer.el +++ /dev/null @@ -1,186 +0,0 @@ -;;; -*- mode: emacs-lisp; lexical-binding: t -*- -;;; ein-completer.el --- Completion module - -;; Copyright (C) 2018- Takafumi Arakaki / John Miller - -;; Author: Takafumi Arakaki / John Miller - -;; This file is NOT part of GNU Emacs. - -;; ein-completer.el 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. - -;; ein-completer.el 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 ein-completer.el. If not, see . - -;;; Commentary: - -;; - -;;; Code: - -(declare-function ac-cursor-on-diable-face-p "auto-complete") - -(require 'ein-core) -(require 'ein-log) -(require 'ein-subpackages) -(require 'ein-kernel) -(require 'ein-pytools) -(require 'ein-ac) -(require 'dash) - -(make-obsolete-variable 'ein:complete-on-dot nil "0.15.0") - -(defun ein:completer-choose () - (cond - ((eq ein:completion-backend 'ein:use-none-backend) #'ignore) - ((ein:eval-if-bound 'auto-complete-mode) #'ein:completer-finish-completing-ac) - (t #'ein:completer-finish-completing-default))) - -(defun ein:completer-beginning (matched-text) - (save-excursion - (re-search-backward (concat matched-text "\\=")))) - -(defun ein:completer-finish-completing (args content _metadata) - (ein:log 'debug "COMPLETER-FINISH-COMPLETING: content=%S" content) - (let* ((beg (point)) - (delta (- (plist-get content :cursor_end) - (plist-get content :cursor_start))) - (matched-text (buffer-substring beg (- beg delta))) - (matches (plist-get content :matches)) - (completer (ein:completer-choose))) - (ein:log 'debug "COMPLETER-FINISH-COMPLETING: completer=%s" completer) - (apply completer matched-text matches args))) - -(defun ein:completer-finish-completing-default (matched-text matches - &rest _ignore) - (let* ((end (point)) - (beg (ein:completer-beginning matched-text)) - (word (if (and beg matches) - (ein:completing-read "Complete: " matches - nil nil matched-text)))) - (when word - (delete-region beg end) - (insert word)))) - -(defun ein:completer-complete (kernel callbacks errback) - "Start completion for the code at point. - - EXPAND keyword argument is supported by - `ein:completer-finish-completing-ac'. When it is specified, - it overrides `ac-expand-on-auto-complete' when calling - `auto-complete'." - (interactive (list (ein:get-kernel) - (list :complete_reply - (cons #'ein:completer-finish-completing '(:expand nil))) - #'ignore)) - (multiple-value-bind (code pos) (ein:get-completion-context (ein:$kernel-api-version kernel)) - (ein:log 'debug (format "EIN:COMPLETER-COMPLETE Code block: %s at position :%s" code pos)) - (ein:kernel-complete kernel - code ;; (thing-at-point 'line) - pos ;; (current-column) - callbacks errback))) - -(defun ein:get-completion-context (api-version) - (cond ((< api-version 5) - (values (thing-at-point 'line) (current-column))) - ((and (ein:get-kernel) (ein:get-cell-at-point)) - (let* ((cell (ein:get-cell-at-point)) - (code (ein:cell-get-text cell)) - (beg (ein:cell-input-pos-min cell))) - (values code (- (point) beg)))) - ((ein:get-kernel) - (values (buffer-string) (1- (point)))))) - -;;; Retrieving Python Object Info -(defun ein:completions--reset-oinfo-cache (kernel) - (setf (ein:$kernel-oinfo-cache kernel) (make-hash-table :test #'equal))) - -(defun ein:dev-clear-oinfo-cache (kernel) - (interactive (list (ein:get-kernel))) - (ein:completions--reset-oinfo-cache kernel)) - -(defun ein:completions-get-cached (partial oinfo-cache) - (cl-loop for candidate being the hash-keys of oinfo-cache - when (string-prefix-p partial candidate) - collect candidate)) - -(defun ein:completions--get-oinfo (objs) - (let ((d (deferred:new #'identity)) - (kernel (ein:get-kernel))) - (ein:case-equal (ein:kernel-language kernel) - (("python") - (if (ein:kernel-live-p kernel) - (ein:kernel-execute - kernel - (format "__ein_generate_oinfo_data(%s, locals())" objs) - (list - :output `(,(lambda (d* &rest args) (deferred:callback-post d* args)) . ,d))) - (deferred:callback-post d "kernel not live")))) - d)) - -(defvar ein:oinfo-chunk-size 50) - -(defun ein:completions--build-oinfo-cache (objects) - (cl-labels ((object-string (o) - (format "'%s'" (ein:trim o "\\s-\\|\n\\|\\."))) - (to-ostrings (objs) - (s-join ", " (-map #'(lambda (x) (object-string x)) - objs))) - (do-completions (ostrings kernel) - (deferred:$ - (deferred:next - (lambda () - (ein:completions--get-oinfo ostrings))) - (deferred:nextc it - (lambda (output) - (if (stringp output) - (ein:display-warning output :error) - (ein:completions--prepare-oinfo output objects kernel))))))) - (if (< (length objects) ein:oinfo-chunk-size) - (do-completions (format "[%s]" (to-ostrings (-non-nil objects))) (ein:get-kernel)) - (dolist (chunk (-partition-all ein:oinfo-chunk-size (-non-nil objects))) - (do-completions (format "[%s]" (to-ostrings chunk)) (ein:get-kernel)))))) - - -(defun ein:completions--prepare-oinfo (output objs kernel) - (condition-case err - (cl-destructuring-bind (msg-type content _) output - (ein:case-equal msg-type - (("stream" "display_data" "pyout" "execute_result") - (ein:aif (plist-get content :text) - (let ((all-oinfo (ein:json-read-from-string it))) - (cl-loop for oinfo in all-oinfo - for obj in objs - doing (unless (string= (plist-get oinfo :string_form) "None") - (setf (gethash obj (ein:$kernel-oinfo-cache kernel)) - oinfo)))))) - (("error" "pyerr") - (ein:log 'verbose "ein:completions--prepare-oinfo: %s" - (plist-get content :traceback))))) - (error - (ein:log 'verbose "ein:completions--prepare-oinfo: [%s]" - (error-message-string err)) - (let (eval-expression-print-length eval-expression-print-level) - (prin1 output #'external-debugging-output))))) - -;;; Support for Eldoc - -(defun ein:completer--get-eldoc-signature () - (ein:and-let* ((func (ein:function-at-point)) - (kernel (ein:get-kernel))) - (ein:aif (gethash func (ein:$kernel-oinfo-cache kernel)) - (ein:kernel-construct-defstring it) - (ein:completions--build-oinfo-cache (list func)) - nil))) - -(provide 'ein-completer) - -;;; ein-completer.el ends here diff --git a/elpa/ein-20200127.249/ein-completer.elc b/elpa/ein-20200127.249/ein-completer.elc deleted file mode 100644 index 17831733585e08f9f8f791a24e73f301dc814ed8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6968 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 diff --git a/elpa/ein-20200127.249/ein-connect.el b/elpa/ein-20200127.249/ein-connect.el deleted file mode 100644 index 3120a1c7..00000000 --- a/elpa/ein-20200127.249/ein-connect.el +++ /dev/null @@ -1,414 +0,0 @@ -;;; ein-connect.el --- Connect external buffers to IPython -*- lexical-binding: t -*- - -;; Copyright (C) 2012- Takafumi Arakaki - -;; Author: Takafumi Arakaki - -;; This file is NOT part of GNU Emacs. - -;; ein-connect.el 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. - -;; ein-connect.el 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 ein-connect.el. If not, see . - -;;; Commentary: - -;; FIXME: There is a problem when connected notebook is closed. -;; This can be fixed in some ways: -;; * Turn off ein:connect when the command that uses kernel is invoked -;; but corresponding notebook was closed already. -;; * Connect directly to ein:kernel and make its destructor to care -;; about connecting buffers. - -;;; Code: - -(require 'eieio) -(require 'company nil t) -(require 'ein-notebook) -(eval-when-compile (require 'auto-complete)) - -(autoload 'company-mode "company") - -;;; Utils - -(defun ein:maybe-save-buffer (option) - "Conditionally save current buffer. -Return `t' if the buffer is unmodified or `nil' otherwise. -If the buffer is modified, buffer is saved depending on the value -of OPTION: - ask : Ask whether the buffer should be saved. - yes : Save buffer always. - no : Do not save buffer." - (if (not (buffer-modified-p)) - t - (cl-case option - (ask (when (y-or-n-p "Save buffer? ") - (save-buffer) - t)) - (yes (save-buffer) - t) - (t nil)))) - - -;;; Configuration - -(defcustom ein:connect-run-command "%run" - "``%run`` magic command used for `ein:connect-run-buffer'. -Types same as `ein:console-security-dir' are valid." - :type '(choice - (string :tag "command" "%run") - (alist :tag "command mapping" - :key-type (choice :tag "URL or PORT" - (string :tag "URL" "http://127.0.0.1:8888") - (integer :tag "PORT" 8888) - (const default)) - :value-type (string :tag "command" "%run")) - (function :tag "command getter" - (lambda (url-or-port) (format "%%run -n -i -t -d")))) - :group 'ein) - -(defcustom ein:connect-reload-command "%run -n" - "Setting for `ein:connect-reload-buffer'. -Same as `ein:connect-run-command'." - :type '(choice - (string :tag "command" "%run") - (alist :tag "command mapping" - :key-type (choice :tag "URL or PORT" - (string :tag "URL" "http://127.0.0.1:8888") - (integer :tag "PORT" 8888) - (const default)) - :value-type (string :tag "command" "%run")) - (function :tag "command getter" - (lambda (url-or-port) (format "%%run -n -i -t -d")))) - :group 'ein) - -(defun ein:connect-run-command-get () - (ein:choose-setting 'ein:connect-run-command - (ein:$notebook-url-or-port (ein:connect-get-notebook)))) - -(defcustom ein:connect-save-before-run 'yes - "Whether the buffer should be saved before `ein:connect-run-buffer'." - :type '(choice (const :tag "Always save buffer" yes) - (const :tag "Always do not save buffer" no) - (const :tag "Ask" ask)) - :group 'ein) - -(defcustom ein:connect-aotoexec-lighter nil - "String appended to the lighter of `ein:connect-mode' (`ein:c') -when auto-execution mode is on. When `nil', use the same string -as `ein:cell-autoexec-prompt'." - :type '(choice (string :tag "String appended to ein:c" "@") - (const :tag "Use `ein:cell-autoexec-prompt'." nil)) - :group 'ein) - -(defcustom ein:connect-default-notebook nil - "Notebook to be connect when `ein:connect-to-default-notebook' is called. - -Example setting to connect to \"My_Notebook\" in the server at -port 8888 when opening any buffer in `python-mode':: - - (setq ein:connect-default-notebook \"8888/My_Notebook\") - (add-hook 'python-mode-hook 'ein:connect-to-default-notebook) - -`ein:connect-default-notebook' can also be a function without any -argument. This function must return a string (notebook path of -the form \"URL-OR-PORT/NOTEBOOK-NAME\"). - -As `ein:connect-to-default-notebook' requires notebook list to be -loaded, consider using `ein:notebooklist-load' to load notebook -list if you want to connect to notebook without manually opening -notebook list." - :type '(choice (string :tag "URL-OR-PORT/NOTEBOOK-NAME") - (function :tag "Notebook path getter")) - :group 'ein) - - -;;; Class - -(ein:deflocal ein:%connect% nil - "Buffer local variable to store an instance of `ein:connect'") -(define-obsolete-variable-alias 'ein:@connect 'ein:%connect% "0.1.2") - -(defclass ein:connect () - ((notebook :initarg :notebook :type ein:$notebook) - (buffer :initarg :buffer :type buffer) - (autoexec :initarg :autoexec :initform nil :type boolean - :document "Auto-execution mode flag. - -See also the document of the `autoexec' slot of `ein:codecell' -class."))) - -(defun ein:connect-setup (notebook buffer) - (with-current-buffer buffer - (setq ein:%connect% - (ein:connect :notebook notebook :buffer buffer)) - ein:%connect%)) - - -;;; Methods - -;; FIXME: Clarify names of these `connect-to-*' functions: - -;;;###autoload -(defun ein:connect-to-notebook-command (&optional not-yet-opened) - "Connect to notebook. When the prefix argument is given, -you can choose any notebook on your server including the ones -not yet opened. Otherwise, already chose from already opened -notebooks." - (interactive "P") - (call-interactively (if not-yet-opened - #'ein:connect-to-notebook - #'ein:connect-to-notebook-buffer))) - -;;;###autoload -(defun ein:connect-to-notebook (nbpath &optional buffer no-reconnection) - "Connect any buffer to notebook and its kernel." - (interactive (list (ein:notebooklist-ask-path "notebook"))) - (cl-multiple-value-bind (url-or-port path) (ein:notebooklist-parse-nbpath nbpath) - (ein:notebook-open url-or-port path nil - (apply-partially - (lambda (buffer* no-reconnection* notebook _created) - (ein:connect-buffer-to-notebook notebook buffer* no-reconnection*)) - (or buffer (current-buffer)) no-reconnection)))) - -;;;###autoload -(defun ein:connect-to-notebook-buffer (buffer-or-name) - "Connect any buffer to opened notebook and its kernel." - (interactive (list (ein:completing-read "Notebook buffer to connect: " - (ein:notebook-opened-buffer-names)))) - (ein:aif (get-buffer buffer-or-name) - (let ((notebook (buffer-local-value 'ein:%notebook% it))) - (ein:connect-buffer-to-notebook notebook)) - (error "No buffer %s" buffer-or-name))) - -;;;###autoload -(defun ein:connect-buffer-to-notebook (notebook &optional buffer - no-reconnection) - "Connect BUFFER to NOTEBOOK." - (unless buffer - (setq buffer (current-buffer))) - (with-current-buffer buffer - (if (or (not no-reconnection) - (not ein:%connect%)) - (let ((connection (ein:connect-setup notebook buffer))) - (when (ein:eval-if-bound 'ac-sources) - (push 'ac-source-ein-async ac-sources)) - (ein:connect-mode) - (ein:log 'info "Connected to %s" - (ein:$notebook-notebook-name notebook)) - connection) - (ein:log 'info "Buffer is already connected to notebook.")))) - -(defun ein:connect-get-notebook () - (slot-value ein:%connect% 'notebook)) - -(defun ein:connect-get-kernel () - (ein:$notebook-kernel (ein:connect-get-notebook))) - -(defun ein:connect-eval-buffer () - "Evaluate the whole buffer. Note that this will run the code -inside the ``if __name__ == \"__main__\":`` block." - (interactive) - (let ((b (current-buffer))) - (deferred:$ - (deferred:next - (lambda () - (with-current-buffer b - (ein:shared-output-eval-string (ein:connect-get-kernel) (buffer-string) nil :silent t)))) - (deferred:nextc it - (lambda () - (with-current-buffer b - (ein:connect-execute-autoexec-cells)))))) - (ein:log 'info "Whole buffer is sent to the kernel.")) - -(defun ein:connect-run-buffer (&optional ask-command) - "Run buffer using ``%run``. Ask for command if the prefix ``C-u`` is given. -Variable `ein:connect-run-command' sets the default command." - (interactive "P") - (ein:aif (ein:aand (ein:get-url-or-port) - (ein:filename-to-python it (buffer-file-name))) - (let* ((default-command (ein:connect-run-command-get)) - (command (if ask-command - (read-from-minibuffer "Command: " default-command) - default-command)) - (cmd (format "%s \"%s\"" command it))) - (if (ein:maybe-save-buffer ein:connect-save-before-run) - (progn - (ein:shared-output-eval-string (ein:connect-get-kernel) cmd nil :silent t) - (ein:connect-execute-autoexec-cells) - (ein:log 'info "Command sent to the kernel: %s" cmd)) - (ein:log 'info "Buffer must be saved before %%run."))) - (error (concat "This buffer has no associated file. " - "Use `ein:connect-eval-buffer' instead.")))) - -(defun ein:connect-run-or-eval-buffer (&optional eval) - "Run buffer using the ``%run`` magic command or eval whole -buffer if the prefix ``C-u`` is given. -Variable `ein:connect-run-command' sets the command to run. -You can change the command and/or set the options. -See also: `ein:connect-run-buffer', `ein:connect-eval-buffer'." - (interactive "P") - (if eval - (ein:connect-eval-buffer) - (ein:connect-run-buffer))) - -(defun ein:connect-reload-buffer () - "Reload buffer using the command set by `ein:connect-reload-command'." - (interactive) - (let ((ein:connect-run-command ein:connect-reload-command)) - (call-interactively #'ein:connect-run-buffer))) - -(defun ein:connect-eval-region (start end) - (interactive "r") - (ein:shared-output-eval-string (ein:connect-get-kernel) (buffer-substring start end) nil) - (ein:log 'info "Selected region is sent to the kernel.")) - -(define-obsolete-function-alias - 'ein:connect-eval-string-internal - 'ein:shared-output-eval-string "0.1.2") - -(define-obsolete-function-alias - 'ein:connect-request-tool-tip-or-help-command - 'ein:pytools-request-tooltip-or-help "0.1.2") - -(defun ein:connect-pop-to-notebook () - (interactive) - (ein:connect-assert-connected) - (pop-to-buffer (ein:notebook-buffer (ein:connect-get-notebook)))) - - -;;; Generic getter - -(defun ein:get-url-or-port--connect () - (ein:aand (ein:get-notebook--connect) (ein:$notebook-url-or-port it))) - -(defun ein:get-notebook--connect () - (when (ein:connect-p ein:%connect%) - (slot-value ein:%connect% 'notebook))) - -(defun ein:get-kernel--connect () - (ein:aand (ein:get-notebook--connect) (ein:$notebook-kernel it))) - -(defun ein:get-traceback-data--connect () - ;; FIXME: Check if the TB in shared-output buffer is originated from - ;; the current buffer. - (ein:aand (ein:shared-output-get-cell) (ein:cell-get-tb-data it))) -(autoload 'ein:shared-output-get-cell "ein-shared-output") ; FIXME: Remove! - - -;;; Auto-execution - -(defun ein:connect-assert-connected () - (cl-assert (ein:connect-p ein:%connect%) nil - "Current buffer (%s) is not connected to IPython notebook." - (buffer-name)) - (cl-assert (ein:notebook-live-p (slot-value ein:%connect% 'notebook)) nil - "Connected notebook is not live (probably already closed).")) - -(defun ein:connect-execute-autoexec-cells () - "Call `ein:notebook-execute-autoexec-cells' via `after-save-hook'." - (ein:connect-assert-connected) - (when (slot-value ein:%connect% 'autoexec) - (ein:notebook-execute-autoexec-cells (ein:connect-get-notebook)))) - -(defun ein:connect-toggle-autoexec () - "Toggle auto-execution mode of the current connected buffer. - -When auto-execution mode is on, cells in connected notebook will -be automatically executed whenever run, eval or reload command [#]_ -is called in this buffer. - -.. [#] Namely, one of - - * `ein:connect-run-buffer' - * `ein:connect-eval-buffer' - * `ein:connect-run-or-eval-buffer' - * `ein:connect-reload-buffer' - -Note that you need to set cells to run in the connecting buffer -or no cell will be executed. -Use the `ein:worksheet-turn-on-autoexec' command in notebook to -change the cells to run." - (interactive) - (ein:connect-assert-connected) - (let ((autoexec-p (not (slot-value ein:%connect% 'autoexec)))) - (setf (slot-value ein:%connect% 'autoexec) autoexec-p) - (ein:log 'info "Auto-execution mode is %s." - (if autoexec-p "enabled" "disabled")))) - - -;;; Auto-connect - -;;;###autoload -(defun ein:connect-to-default-notebook () - "Connect to the default notebook specified by -`ein:connect-default-notebook'. Set this to `python-mode-hook' -to automatically connect any python-mode buffer to the -notebook." - (ein:log 'verbose "CONNECT-TO-DEFAULT-NOTEBOOK") - (ein:and-let* ((nbpath ein:connect-default-notebook) - ((not (ein:worksheet-buffer-p)))) - (when (functionp nbpath) - (setq nbpath (funcall nbpath))) - (ein:connect-to-notebook nbpath nil t))) - - - -;;; ein:connect-mode - -(defvar ein:connect-mode-map (make-sparse-keymap)) - -(let ((map ein:connect-mode-map)) - (define-key map "\C-c\C-c" 'ein:connect-run-or-eval-buffer) - (define-key map "\C-c\C-l" 'ein:connect-reload-buffer) - (define-key map "\C-c\C-r" 'ein:connect-eval-region) - (define-key map (kbd "C-:") 'ein:shared-output-eval-string) - (define-key map "\C-c\C-h" 'ein:pytools-request-tooltip-or-help) - (define-key map "\C-c\C-i" 'ein:completer-complete) - (define-key map "\C-c\C-z" 'ein:connect-pop-to-notebook) - (define-key map "\C-c\C-a" 'ein:connect-toggle-autoexec) - (define-key map "\C-c\C-o" 'ein:console-open) - (define-key map "\C-c\C-x" 'ein:tb-show) - (define-key map "\M-." 'ein:pytools-jump-to-source-command) - (define-key map (kbd "C-c C-.") 'ein:pytools-jump-to-source-command) - (define-key map "\M-," 'ein:pytools-jump-back-command) - (define-key map (kbd "C-c C-,") 'ein:pytools-jump-back-command) - (define-key map (kbd "C-c C-/") 'ein:notebook-scratchsheet-open) - - map) - -(defun ein:connect-mode-get-lighter () - (if (slot-value ein:%connect% 'autoexec) - (format " ein:c%s" (or ein:connect-aotoexec-lighter - ein:cell-autoexec-prompt)) - " ein:c")) - -(define-minor-mode ein:connect-mode - "Minor mode for communicating with IPython notebook. - -\\{ein:connect-mode-map}" - :lighter (:eval (ein:connect-mode-get-lighter)) - :keymap ein:connect-mode-map - :group 'ein - (cl-case ein:completion-backend - (ein:use-ac-backend - (define-key ein:connect-mode-map "." 'ein:ac-dot-complete) - (auto-complete-mode)) - (ein:use-company-backend - (add-to-list 'company-backends #'ein:company-backend) - (company-mode)))) - -(put 'ein:connect-mode 'permanent-local t) - - -(provide 'ein-connect) - -;;; ein-connect.el ends here diff --git a/elpa/ein-20200127.249/ein-connect.elc b/elpa/ein-20200127.249/ein-connect.elc deleted file mode 100644 index 1cb96476b7d24f74087ed8a753490ed9901fc574..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17249 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 AJpcdz diff --git a/elpa/ein-20200127.249/ein-console.el b/elpa/ein-20200127.249/ein-console.el deleted file mode 100644 index 66a03712..00000000 --- a/elpa/ein-20200127.249/ein-console.el +++ /dev/null @@ -1,235 +0,0 @@ -;;; ein-console.el --- IPython console integration - -;; Copyright (C) 2012 Takafumi Arakaki - -;; Author: Takafumi Arakaki - -;; This file is NOT part of GNU Emacs. - -;; ein-console.el 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. - -;; ein-console.el 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 ein-console.el. If not, see . - -;;; Commentary: - -;; - -;;; Code: - - -(require 'ein-core) - -;; Functions from `Fabian Gallina's python.el`_ -;; NOTE: Do *not* load python.el here, since user may be using the other -;; version of python-mode. -(declare-function python-shell-make-comint "python") -(declare-function python-shell-get-process-name "python") -(declare-function python-shell-switch-to-shell "python") - - - -;;; Define aliases to old variables and functions. - -(define-obsolete-variable-alias - 'ein:notebook-console-security-dir 'ein:console-security-dir "0.1.2") -(define-obsolete-variable-alias - 'ein:notebook-console-executable 'ein:console-executable "0.1.2") -(define-obsolete-variable-alias - 'ein:notebook-console-args 'ein:console-args "0.1.2") -(define-obsolete-function-alias - 'ein:notebook-console-open 'ein:console-open "0.1.2") - - -;;; Configuration - -(defcustom ein:console-security-dir "" - "Security directory setting. - -Following types are valid: - -string - Use this value as a path to security directory. - Handy when you have only one IPython server. -alist - An alist whose element is \"(URL-OR-PORT . DIR)\". - Key (URL-OR-PORT) can be string (URL), integer (port), or - `default' (symbol). The value of `default' is used when - other key does not much. Normally you should have this - entry. -function - Called with an argument URL-OR-PORT (integer or string). - You can have complex setting using this." - :type '(choice - (string :tag "Security directory" - "~/.config/ipython/profile_nbserver/security/") - (alist :tag "Security directory mapping" - :key-type (choice :tag "URL or PORT" - (string :tag "URL" "http://127.0.0.1:8888") - (integer :tag "PORT" 8888) - (const default)) - :value-type (string :tag "Security directory")) - (function :tag "Security directory getter" - (lambda (url-or-port) - (format "~/.config/ipython/profile_%s/security/" - url-or-port)))) - :group 'ein) - -(defcustom ein:console-executable (executable-find "jupyter") - "IPython executable used for console. - -Example: ``\"/user/bin/ipython\"``. -Types same as `ein:console-security-dir' are valid." - :type '(choice - (string :tag "IPython executable" "/user/bin/ipython") - (alist :tag "IPython executable mapping" - :key-type (choice :tag "URL or PORT" - (string :tag "URL" "http://127.0.0.1:8888") - (integer :tag "PORT" 8888) - (const default)) - :value-type (string :tag "IPython executable" - "/user/bin/ipython")) - (function :tag "IPython executable getter" - (lambda (url-or-port) (executable-find "ipython")))) - :group 'ein) - -(defcustom ein:console-args '() - "Additional argument when using console. - -.. warning:: Space-separated string is obsolete now. Use a list - of string as value now. - -Setting to use IPython profile named \"YOUR-IPYTHON-PROFILE\":: - - (setq ein:console-args '(\"--profile\" \"YOUR-IPYTHON-PROFILE\")) - -Together with `ein:console-security-dir', you can open IPython -console connecting to a remote kernel.:: - - (setq ein:console-args '(\"--ssh\" \"HOSTNAME\")) - (setq ein:console-security-dir \"PATH/TO/SECURITY/DIR\") - -You can setup `ein:console-args' per server basis using alist form:: - - (setq ein:console-args - '((8888 . '(\"--profile\" \"PROFILE\")) - (8889 . '(\"--ssh\" \"HOSTNAME\")) - (default . '(\"--profile\" \"default\")))) - -If you want to use more complex setting, you can set a function to it:: - - (setq ein:console-args - (lambda (url-or-port) '(\"--ssh\" \"HOSTNAME\"))) - -See also: `ein:console-security-dir'." - :type '(choice - (repeat (string :tag "Arguments to IPython" "--profile")) - (alist :tag "Arguments mapping" - :key-type (choice :tag "URL or PORT" - (string :tag "URL" "http://127.0.0.1:8888") - (integer :tag "PORT" 8888) - (const default)) - :value-type - (repeat (string :tag "Arguments to IPython" "--profile"))) - (function :tag "Additional arguments getter" - (lambda (url-or-port) - (list "--ssh" (format "%s" url-or-port))))) - :group 'ein) - -(defun ein:console-security-dir-get (url-or-port) - (let ((dir (ein:choose-setting 'ein:console-security-dir url-or-port))) - (if (equal dir "") - dir - (file-name-as-directory (expand-file-name dir))))) - -(defun ein:console-executable-get (url-or-port) - (or (ein:choose-setting 'ein:console-executable url-or-port) - (error "Cannot find console executable!"))) - -(defun ein:console-args-get (url-or-port) - (ein:choose-setting 'ein:console-args url-or-port - (lambda (x) - (or (stringp x) - (and (listp x) - (stringp (car x))))))) - -(defun ein:ensure-url-or-port () - (or (ein:get-url-or-port) - (error "Cannot find notebook to connect!"))) - -(defun ein:console-make-command () - ;; FIXME: use %connect_info to get connection file, then I can get - ;; rid of `ein:console-security-dir'. - (let* ((url-or-port (ein:ensure-url-or-port)) - (dir (ein:console-security-dir-get url-or-port)) - (kid (ein:kernel-id (ein:get-kernel))) - (ipy (ein:console-executable-get url-or-port)) - (args (ein:console-args-get url-or-port))) - ;; FIMXE: do I need "python" here? - (append (list ipy "console" "--existing" - (format "%skernel-%s.json" dir kid)) - (if (listp args) - args - (ein:display-warning-once - "String value for `ein:console-args' is obsolete. -Use list of string instead of space separated string.") - (split-string-and-unquote args))))) - -(defun ein:console-get-buffer () - (let ((url-or-port (ein:get-url-or-port)) - (notebook (ein:get-notebook))) - (format "*ein:console %s/%s*" url-or-port (ein:notebook-name notebook)))) - -;;;###autoload -(defun ein:console-open () - "Open IPython console. -To use this function, `ein:console-security-dir' and -`ein:console-args' must be set properly. -This function works best with the new python.el_ which is shipped -with Emacs 24.2 or later. If you don't have it, this function -opens a \"plain\" command line interpreter (comint) buffer where -you cannot use fancy stuff such as TAB completion. -It should be possible to support python-mode.el. Patches are welcome! - -.. _python.el: https://github.com/fgallina/python.el" - (interactive) - ;; FIXME: Workaround for running current version of Jupyter console on windows - (when (eql system-type 'windows-nt) - (if (string-match-p "jupyter" (ein:console-executable-get (ein:ensure-url-or-port))) - (setenv "JUPYTER_CONSOLE_TEST" "1") - (setenv "IPY_TEST_SIMPLE_PROMPT" "1"))) - (if (fboundp 'python-shell-switch-to-shell) - (let ((cmd (mapconcat #'shell-quote-argument - (ein:console-make-command) " ")) - ;; python.el settings: - (python-shell-setup-codes nil) - ;; python.el makes dedicated process when - ;; `buffer-file-name' has some value. - (buffer-file-name (buffer-name))) - ;; The following line does what `run-python' does. - ;; But as `run-python' changed the call signature in the new - ;; version, let's do this manually. - ;; See also: https://github.com/tkf/emacs-ipython-notebook/pull/50 - (run-python cmd) - ;(python-shell-make-comint cmd (python-shell-get-process-name t)) - ;; Pop to inferior Python process buffer - (python-shell-switch-to-shell)) - (let* ((command (ein:console-make-command)) - (program (car command)) - (args (cdr command)) - (buffer (ein:console-get-buffer))) - (apply #'make-comint-in-buffer - "ein:console" buffer program nil args) - (pop-to-buffer buffer)))) - -(provide 'ein-console) - -;;; ein-console.el ends here diff --git a/elpa/ein-20200127.249/ein-console.elc b/elpa/ein-20200127.249/ein-console.elc deleted file mode 100644 index 7af263d1a01038b2eaca9e3773aa8f8846433480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7183 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 diff --git a/elpa/ein-20200127.249/ein-contents-api.elc b/elpa/ein-20200127.249/ein-contents-api.elc deleted file mode 100644 index 484fa04f46a61562cadcaafbcf959d1168559bd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25400 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ν_WmMRgdU>m zZPE>uCpc1GUIJxBHJf5EbB}8-qQX@Torr& zleZk}_MI@95;rcWWZdWgw#G?FSL9HJzpTwA9!|3f! za@@u`IUk_}q~KmNI{nNLT+!PohWFZ7R?*wW>5v>d>XMD3s`Yi$##EshM^?SHdYt2E z-yEv*ex6!$oD|&}m|0KVEzVpqbdsM@My<%V-?UvZ(RwRbEK}?;t0r%n4deOS^3>O! zq?p>wA;~T`YYFpZ=}v$70XzygdeWUM5=AZ#6ky1$-QsA^zQ;xi{AHxAm)NKBU_pj!?7HpneJZb{aO^JRKJ6 z%`=d37%+FDA&H*{0?6#^BZ6^?@vy6p6Gv{Dw8YE`9O2n^%jG@Bs$|%H4mbC4)+U*u zB+g#aV^d{y4|%EGd*#uT`~0B1fD2N^`7wGyYXKI5{y&pTv+}Jb${q{%Gq_<;y2ew{&V;uJ(CW|2VxG%CG2|r)CfN1XST+J0!w~ zmnF9-np?rM_$oieYDdlx%#2@f@@fhn*cuEf46us}MqTOFH~15kt|K}Rd{S%(7pMpY z5a+Q0NN^OB_q0~JKK>9*jy;4SSQ>vA&f8}ue}p+tpmOj8$$TU)4r9_A&q}xOJrd$R z#V1PXU1!+h1(Hv2Mh!j%V0n~XlHgoC`iFUX9k+t(!L93j0UovBA_y)-{}Y}7$(cM1uR3Ly(l z8sN6z$F63Y!-hs!&c5Ogz2(49>T>~)5y@mX&48o?Nv9rmX|hXm_|b~p(U7OI=1>Fi zle@f&dulGC{ON{VQlLFTIZDE+IqA)%e&q4qV#bGaVZViD;dcwReT%?vsWdN#E0SC< zt}q-n``uQ0R^h2644vjupJ&k%)eU(dGgy78^Ms4i9!TaUryA&E@RscVCV+=)+ceC6 K1xGP2-~2yO*z83B diff --git a/elpa/ein-20200127.249/ein-core.elc b/elpa/ein-20200127.249/ein-core.elc deleted file mode 100644 index c7d2a23e2a9b28a75de616e96b682cab95d9977e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13845 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 VG}U3^=%bJSYecmefRx&o{sC{`zzhHY diff --git a/elpa/ein-20200127.249/ein-dev.elc b/elpa/ein-20200127.249/ein-dev.elc deleted file mode 100644 index c8e556fb26db93e8751e5aab4a656c10587af51a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13529 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 - -;; This file is NOT part of GNU Emacs. - -;; ein-hy.el 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. - -;; ein-hy.el 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 ein-hy.el. If not, see . - -;;; Commentary: - -;;; Code: - -(require 'ein-classes) - -(cl-defmethod ein:cell-insert-prompt ((cell ein:hy-codecell)) - "Insert prompt of the CELL in the buffer. -Called from ewoc pretty printer via `ein:cell-pp'." - ;; Newline is inserted in `ein:cell-insert-input'. - (ein:insert-read-only - (concat - (format "In (hy) [%s]" (or (ein:oref-safe cell 'input-prompt-number) " ")) - (ein:maybe-show-slideshow-data cell) - (when (slot-value cell 'autoexec) " %s" ein:cell-autoexec-prompt)) - 'font-lock-face 'ein:cell-input-prompt)) - -(cl-defmethod ein:cell-execute-internal ((cell ein:hy-codecell) - kernel code &rest args) - (ein:cell-clear-output cell t t t) - (ein:cell-set-input-prompt cell "*") - (ein:cell-running-set cell t) - (setf (slot-value cell 'dynamic) t) - (apply #'ein:kernel-execute kernel (ein:pytools-wrap-hy-code code) (ein:cell-make-callbacks cell) args)) - -(cl-defmethod ein:cell-to-nb4-json :before ((cell ein:hy-codecell) _ &optional _ignore) - (let ((metadata (slot-value cell 'metadata))) - (setf metadata (plist-put metadata :ein.hycell t)))) - -(provide 'ein-hy) diff --git a/elpa/ein-20200127.249/ein-hy.elc b/elpa/ein-20200127.249/ein-hy.elc deleted file mode 100644 index e2971173dc8068556a70698316d1e8fe7a596d5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1654 zcmbtUU5^?!6s7s7BHo&pzEyYGCV?tO7y|6aQ$$dNx=Ped-xidb8PDRbv8T3YxAfQd z*bE+ZiUrw(kKQtrSJqH})Ey+` zL4_3wt;v=_t<^sw0QTKx0)JmAPX%tF%1clA#)!4bD7TppPMKT(8mRMuM4ro>_FnjT zw}1Y>J93LVj181o69kN_P_Q%X820wlWHzI0C7j3tLVTUv3zL(#lnFyiN!p4poYbj! zlEP^v9fcJP`-81tQ1DH^7{Iswn$2c=xe1bGHkZ_z4|+WeelqX#IO$^yFy3Gc>+k5r z5jfs%CSw?Jegtxy<~Ysc=?D&MkdLq!!$)u2q8lgws+5x?m0_6{K9(`l>{c4-RK{{y zC?nZghLz2u(M2Y;X3BW!0xKOf6v!w|?REr`#cGrCiR(^>PH+0damtM&kbO!|uo%u; zh+^Dow-$j~Gehmwrb9O`{Gvr(+rXB#GI&1@AwB85XfUIyfHV3u0HY%7&S>ndaL zCNWsyh*Xx@INd#3qAVef=wq8LtJz6gw9o3+ zB;(VY@i= -;; John M. Miller - -;; This file is NOT part of GNU Emacs. - -;; ein-inspector.el 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. - -;; ein-inspector.el 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 ein-inspector.el. If not, see . - -;;; Commentary: - -;;; Code: - -(require 'ein-pytools) - -;;;###autoload -(defun ein:inspect-object (kernel object) - (interactive (list (ein:get-kernel-or-error) - (ein:object-at-point-or-error))) - (ein:kernel-execute kernel - (format "__import__('ein_inspector').generate_inspector_data('%s', globals(), locals())" - object) - (list - :output - (cons #'ein:prepare-inspector - (list kernel object))))) - -(defun ein:prepare-inspector (packed _msg-type content _metadata) - (cl-destructuring-bind (_kernel oname) - packed - (ein:aif (or (plist-get content :text) (plist-get content :data)) - (let ((oinfo (ein:json-read-from-string it))) - (if (not (plist-get oinfo :type)) - (ein:log 'warn "[EIN:INSPECTOR]: %s" (plist-get oinfo :error)) - (ein:render-inspector oinfo))) - (ein:log 'warn "[EIN:INSPECTOR]: Could not find inspect data for object %s." oname)))) - -(defclass ein:iobject () - ((name :accessor ein:iobject-name :documentation "String representation can be evaluated in python to generate the object being inspected.") - (type :accessor ein:iobject-type :documentation "Python type of object, as returned by `type()`.") - (repr :accessor ein:iobject-repr :documentation "Value of object, as returned by its `__str__` method.") - (source-file :accessor ein:iobject-sfile :documentation "If availabe, the filename where the source for this object is to be found.") - (source-lines :accessor ein:iobject-slines :documentation "If available, the line in the file where the source for this object is found.") - (doc :accessor ein:iobject-doc :documentation "If available, the documentation string for this object.")) - :documentation "Class to hold information returned by Python `inspect` module for a Python object identified in the `name` slot.") - -(defun ein:new-inspector-object (object-info) - (make-instance 'ein:iobject - :name (plist-get object-info :name) - :type (plist-get object-info :type) - :repr (plist-get object-info :repr) - :source-file (plist-get object-info :source_file) - :source-lines (plist-get object-info :source_lines) - :doc (plist-get object-info :doc))) - -(defvar ein:inspector-visit-source-map (make-sparse-keymap)) - -(defvar ein:inspector-mode-map - (let ((map (make-sparse-keymap))) - (set-keymap-parent map (make-composed-keymap widget-keymap - special-mode-map)) - map) - "Keymap for ein:inspector-mode.") - -(define-derived-mode ein:inspector-mode special-mode "EIN:INSPECTOR-MODE" - "Major mode for inspector Python objects from the emacs-ipython-notebook." - ) - - - -(defun ein:render-inspector (oinfo) - (let ((name (plist-get oinfo :name))) - (switch-to-buffer (format "*EIN Inspector: %s*" name)) - (kill-all-local-variables) - (let ((inhibit-read-only t)) - (erase-buffer)) - (remove-overlays) - (let* ((type (plist-get oinfo :type)) - (repr (plist-get oinfo :repr)) - (sfile (plist-get oinfo :source_file)) - (slines (last (plist-get oinfo :source_lines))) - (info-str (format "%s = {%s} %s" name type repr))) - (if sfile - (widget-create 'link - :notify - (lambda (&rest _ignore) - (ein:goto-file sfile (car slines))) - info-str) - (widget-insert (propertize info-str 'face 'bold))) - (widget-insert (format "\n\n%s\n\n" (make-string 80 ?\u2501))) - (widget-insert (format "%s\n\n%s\n\n" (plist-get oinfo :doc) (make-string 80 ?\u2501))) - (widget-insert (propertize (format "%s: %s\n" type name) - 'face 'bold)))) - (ein:inspector-mode) - (widget-setup)) - - - -(defun ein:inspector-visit-source () - (message "Visit source!")) - -(defun ein:inspector-visit-thing ()) - -(defun ein:inspector-section-toggle (_section)) - -(defun ein:inspector-section-show (_section)) - -(defun ein:inspector-section-hide (_section) - ) - -(provide 'ein-inspector) diff --git a/elpa/ein-20200127.249/ein-inspector.elc b/elpa/ein-20200127.249/ein-inspector.elc deleted file mode 100644 index f9a89c8dfd0a61bdb6c1b0b9cc756cd5485824ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9797 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 - -;; This file is NOT part of GNU Emacs. - -;; ein-jupyter.el 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. - -;; ein-jupyter.el 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 ein-jupyter.el. If not, see . - -;;; Commentary: - -;;; Code: - -(require 'ein-core) -(require 'ein-notebooklist) -(require 'ein-dev) - -(defcustom ein:jupyter-server-buffer-name "*ein:jupyter-server*" - "The name of the buffer for the jupyter notebook server -session." - :group 'ein - :type 'string) - -(defcustom ein:jupyter-server-run-timeout 60000 - "Time, in milliseconds, to wait for the jupyter server to start before declaring timeout and cancelling the operation." - :group 'ein - :type 'integer) - -(defcustom ein:jupyter-server-args '("--no-browser") - "Add any additional command line options you wish to include -with the call to the jupyter notebook." - :group 'ein - :type '(repeat string)) - -(defcustom ein:jupyter-default-notebook-directory nil - "If you are tired of always being queried for the location of -the notebook directory, you can set it here for future calls to -`ein:jupyter-server-start'" - :group 'ein - :type '(directory)) - -(defvar *ein:jupyter-server-accept-timeout* 60) -(defvar *ein:jupyter-server-process-name* "EIN: Jupyter notebook server") - -(defvar *ein:last-jupyter-command* nil) -(defvar *ein:last-jupyter-directory* nil) - -(defcustom ein:jupyter-default-server-command "jupyter" - "The default command to start a jupyter notebook server. - -Changing this to `jupyter-notebook' requires customizing `ein:jupyter-server-use-subcommand' to nil. -" - :group 'ein - :type '(file) - :set (lambda (symbol value) - (set-default symbol value) - (setq *ein:last-jupyter-command* nil))) - -(defcustom ein:jupyter-server-use-subcommand "notebook" - "Users of \"jupyter-notebook\" (as opposed to \"jupyter notebook\") need to `Omit'." - :group 'ein - :type '(choice (string :tag "Subcommand" "notebook") - (const :tag "Omit" nil))) - -(defcustom ein:jupyter-default-kernel 'first-alphabetically - "With which of ${XDG_DATA_HOME}/jupyter/kernels to create new notebooks." - :group 'ein - :type (append - '(choice (other :tag "First alphabetically" first-alphabetically)) - (condition-case err - (mapcar - (lambda (x) `(const :tag ,(cdr x) ,(car x))) - (cl-loop - for (k . spec) in - (alist-get - 'kernelspecs - (let ((json-object-type 'alist)) - (json-read-from-string - (shell-command-to-string - (format "%s kernelspec list --json" - ein:jupyter-default-server-command))))) - collect `(,k . ,(alist-get 'display_name (alist-get 'spec spec))))) - (error (ein:log 'warn "ein:jupyter-default-kernel: %s" err) - '((string :tag "Ask")))))) - -(defsubst ein:jupyter-server-process () - "Return the emacs process object of our session" - (get-buffer-process (get-buffer ein:jupyter-server-buffer-name))) - -(defun ein:jupyter-server--run (buf cmd dir &optional args) - (when ein:debug - (add-to-list 'ein:jupyter-server-args "--debug")) - (unless (stringp dir) - (error "ein:jupyter-server--run: notebook directory required")) - (let* ((vargs (append (ein:aif ein:jupyter-server-use-subcommand (list it)) - (list (format "--notebook-dir=%s" (convert-standard-filename dir))) - args - ein:jupyter-server-args)) - (proc (apply #'start-process - *ein:jupyter-server-process-name* buf cmd vargs))) - (ein:log 'info "ein:jupyter-server--run: %s %s" cmd (ein:join-str " " vargs)) - (set-process-query-on-exit-flag proc nil) - proc)) - -(defun ein:jupyter-server-conn-info (&optional buffer-name) - "Return the url-or-port and password for BUFFER or the global session." - (unless buffer-name - (setq buffer-name ein:jupyter-server-buffer-name)) - (let ((buffer (get-buffer buffer-name)) - (result '(nil nil))) - (if buffer - (with-current-buffer buffer - (save-excursion - (goto-char (point-max)) - (re-search-backward (format "Process %s" *ein:jupyter-server-process-name*) - nil "") ;; important if we start-stop-start - (when (re-search-forward "\\([[:alnum:]]+\\) is\\( now\\)? running" nil t) - (let ((hub-p (cl-search "jupyterhub" (downcase (match-string 1))))) - (when (re-search-forward "\\(https?://[^:]*:[0-9]+\\)\\(?:/\\?token=\\([[:alnum:]]+\\)\\)?" nil t) - (let ((raw-url (match-string 1)) - (token (or (match-string 2) (and (not hub-p) "")))) - (setq result (list (ein:url raw-url) token))))))))) - result)) - -(defun ein:jupyter-server-login-and-open (&optional callback) - "Log in and open a notebooklist buffer for a running jupyter notebook server. - -Determine if there is a running jupyter server (started via a -call to `ein:jupyter-server-start') and then try to guess if -token authentication is enabled. If a token is found use it to generate a -call to `ein:notebooklist-login' and once authenticated open the notebooklist buffer -via a call to `ein:notebooklist-open'." - (interactive) - (when (ein:jupyter-server-process) - (cl-multiple-value-bind (url-or-port _password) (ein:jupyter-server-conn-info) - (ein:notebooklist-login url-or-port callback)))) - -(defsubst ein:set-process-sentinel (proc url-or-port) - "URL-OR-PORT might get redirected from (ein:jupyter-server-conn-info). -This is currently only the case for jupyterhub. -Once login handshake provides the new URL-OR-PORT, we set various state as pertains -our singleton jupyter server process here." - - ;; Would have used `add-function' if it didn't produce gv-ref warnings. - (set-process-sentinel - proc - (apply-partially (lambda (url-or-port* sentinel proc* event) - (ein:aif sentinel (funcall it proc* event)) - (funcall #'ein:notebooklist-sentinel url-or-port* proc* event)) - url-or-port (process-sentinel proc)))) - -;;;###autoload -(defun ein:jupyter-server-start (server-cmd-path notebook-directory - &optional no-login-p login-callback port) - "Start SERVER-CMD_PATH with `--notebook-dir' NOTEBOOK-DIRECTORY. Login after connection established unless NO-LOGIN-P is set. LOGIN-CALLBACK takes two arguments, the buffer created by ein:notebooklist-open--finish, and the url-or-port argument of ein:notebooklist-open*. - -This command opens an asynchronous process running the jupyter -notebook server and then tries to detect the url and password to -generate automatic calls to `ein:notebooklist-login' and -`ein:notebooklist-open'. - -With \\[universal-argument] prefix arg, it will prompt the user for the path to -the jupyter executable first. Else, it will try to use the -value of `*ein:last-jupyter-command*' or the value of the -customizable variable `ein:jupyter-default-server-command'. - -Then it prompts the user for the path of the root directory -containing the notebooks the user wants to access. - -The buffer named by `ein:jupyter-server-buffer-name' will contain -the log of the running jupyter server." - (interactive - (let* ((default-command (or *ein:last-jupyter-command* - ein:jupyter-default-server-command)) - (server-cmd-path - (executable-find (if current-prefix-arg - (read-file-name "Server command: " default-directory nil nil - default-command) - default-command))) - (notebook-directory - (read-directory-name "Notebook directory: " - (or *ein:last-jupyter-directory* - ein:jupyter-default-notebook-directory)))) - (list server-cmd-path notebook-directory nil #'(lambda (buffer _url-or-port) - (pop-to-buffer buffer))))) - (unless (and (stringp server-cmd-path) - (file-exists-p server-cmd-path) - (file-executable-p server-cmd-path)) - (error "Command %s not found or not executable" - (or *ein:last-jupyter-command* - ein:jupyter-default-server-command))) - (setf *ein:last-jupyter-command* server-cmd-path - *ein:last-jupyter-directory* notebook-directory) - (if (ein:jupyter-server-process) - (error "Please first M-x ein:stop")) - (add-hook 'kill-emacs-hook #'(lambda () - (ignore-errors (ein:jupyter-server-stop t)))) - (let ((proc (ein:jupyter-server--run ein:jupyter-server-buffer-name - *ein:last-jupyter-command* - *ein:last-jupyter-directory* - (if (numberp port) - `("--port" ,(format "%s" port) - "--port-retries" "0"))))) - (when (eql system-type 'windows-nt) - (accept-process-output proc (/ ein:jupyter-server-run-timeout 1000))) - (cl-loop repeat 30 - until (car (ein:jupyter-server-conn-info ein:jupyter-server-buffer-name)) - do (sleep-for 0 500) - finally do - (unless (car (ein:jupyter-server-conn-info ein:jupyter-server-buffer-name)) - (ein:log 'warn "Jupyter server failed to start, cancelling operation") - (ein:jupyter-server-stop t))) - (when (and (not no-login-p) (ein:jupyter-server-process)) - (unless login-callback - (setq login-callback #'ignore)) - (add-function :after (var login-callback) - (apply-partially (lambda (proc* _buffer url-or-port) - (ein:set-process-sentinel proc* url-or-port)) - proc)) - (ein:jupyter-server-login-and-open login-callback)))) - -;;;###autoload -(defalias 'ein:run 'ein:jupyter-server-start) - -;;;###autoload -(defalias 'ein:stop 'ein:jupyter-server-stop) - -(defun ein:undocumented-shutdown (url-or-port) - (ein:query-singleton-ajax - (list 'shutdown-server url-or-port) - (ein:url url-or-port "api/shutdown") - :type "POST" - :timeout 3 ;; content-query-timeout and query-timeout default nil - :sync t)) - -;;;###autoload -(defun ein:jupyter-server-stop (&optional force log) - (interactive) - (ein:and-let* ((url-or-port (car (ein:jupyter-server-conn-info))) - (ok (or force (y-or-n-p "Stop server and close notebooks?")))) - (ein:notebook-close-notebooks t) - (cl-loop repeat 10 - do (ein:query-running-process-table) - until (zerop (hash-table-count ein:query-running-process-table)) - do (sleep-for 0 500)) - (if (eq system-type 'windows-nt) - (progn - (ein:undocumented-shutdown url-or-port) - (ein:aif (ein:jupyter-server-process) - (delete-process it))) - (let* ((proc (ein:jupyter-server-process)) - (pid (process-id proc))) - (ein:log 'info "Signaled %s with pid %s" proc pid) - (signal-process pid 15) - (run-at-time 2 nil - (lambda () - (ein:log 'info "Resignaled %s with pid %s" proc pid) - (signal-process pid 15))))) - - ;; `ein:notebooklist-sentinel' frequently does not trigger - (ein:notebooklist-list-remove url-or-port) - (kill-buffer (ein:notebooklist-get-buffer url-or-port)) - (when log - (with-current-buffer ein:jupyter-server-buffer-name - (write-region (point-min) (point-max) log))))) - -(provide 'ein-jupyter) diff --git a/elpa/ein-20200127.249/ein-jupyter.elc b/elpa/ein-20200127.249/ein-jupyter.elc deleted file mode 100644 index ba019ab79a79917f3678b7f075c6974b997949b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11133 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 K9(> - -;; This file is NOT part of GNU Emacs. - -;; ein-kernelinfo.el 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. - -;; ein-kernelinfo.el 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 ein-kernelinfo.el. If not, see . - -;;; Commentary: - -;; - -;;; Code: - -(require 'ein-kernel) -(require 'eieio) - -(defclass ein:kernelinfo () - ((kernel - :initarg :kernel :type ein:$kernel - :documentation "Kernel instance.") - (get-buffers - :initarg :get-buffers - :documentation "A packed function to get buffers associated -with the kernel. The buffer local `default-directory' variable -in these buffer will be synced with the kernel's cwd.") - (hostname - :initarg :hostname :type string - :documentation "Host name of the machine where the kernel is running on.") - (language - :initarg :language :type string - :accessor ein:kernelinfo-language - :documentation "Language for the running kernel.") - (ccwd - :initarg :ccwd :type string - :documentation "cached CWD (last time checked CWD).")) - :documentation "Info related (but unimportant) to kernel") - -(defun ein:kernelinfo-new (kernel get-buffers kernel-language) - "Make a new `ein:kernelinfo' instance based on KERNEL and GET-BUFFERS." - (let ((kerinfo (make-instance 'ein:kernelinfo))) - (setf (slot-value kerinfo 'kernel) kernel) - (setf (slot-value kerinfo 'get-buffers) get-buffers) - (setf (slot-value kerinfo 'language) kernel-language) - (ein:case-equal kernel-language - ("python" (ein:kernelinfo-setup-hooks kerinfo))) - kerinfo)) - -(defun ein:kernelinfo-setup-hooks (kerinfo) - "Add `ein:kernelinfo-update-*' to `ein:$kernel-after-*-hook'." - (with-slots (kernel) kerinfo - (push (cons #'ein:kernelinfo-update-all kerinfo) - (ein:$kernel-after-start-hook kernel)) - (push (cons #'ein:kernelinfo-update-ccwd kerinfo) - (ein:$kernel-after-execute-hook kernel)))) - -(defun ein:kernelinfo-update-all (kerinfo) - "Update KERINFO slots by triggering all update functions." - (ein:log 'debug "(ein:kernel-live-p kernel) = %S" - (ein:kernel-live-p (slot-value kerinfo 'kernel))) - (ein:kernelinfo-update-ccwd kerinfo) - (ein:kernelinfo-update-hostname kerinfo)) - -(defun ein:kernelinfo-update-ccwd (kerinfo) - "Update cached current working directory (CCWD) and change -`default-directory' of kernel related buffers." - (let ((ccwd-string (ein:case-equal (ein:kernelinfo-language kerinfo) - (("python") "__import__('sys').stdout.write(__import__('os').getcwd())") - ((t) nil)))) - (when ccwd-string - (ein:kernel-request-stream - (slot-value kerinfo 'kernel) - ccwd-string - (lambda (cwd kerinfo) - (with-slots (kernel get-buffers) kerinfo - (setq cwd (ein:kernel-filename-from-python kernel cwd)) - (oset kerinfo :ccwd cwd) - ;; sync buffer's `default-directory' with CWD - (when (file-accessible-directory-p cwd) - (dolist (buffer (ein:funcall-packed get-buffers)) - (when (buffer-live-p buffer) - (with-current-buffer buffer - (setq default-directory (file-name-as-directory cwd)))))))) - (list kerinfo))))) - -(defun ein:kernelinfo-update-hostname (kerinfo) - "Get hostname in which kernel is running and store it in KERINFO." - (let ((hostname-string (ein:case-equal (ein:kernelinfo-language kerinfo) - (("python") "__import__('sys').stdout.write(__import__('socket').gethostname())") - ((t) nil)))) - (when hostname-string - (ein:kernel-request-stream - (slot-value kerinfo 'kernel) - hostname-string ; "__import__('sys').stdout.write(__import__('socket').gethostname())" ; uname() not available in windows - (lambda (hostname kerinfo) - (oset kerinfo :hostname hostname)) - (list kerinfo))))) - - -(provide 'ein-kernelinfo) - -;;; ein-kernelinfo.el ends here diff --git a/elpa/ein-20200127.249/ein-kernelinfo.elc b/elpa/ein-20200127.249/ein-kernelinfo.elc deleted file mode 100644 index af2154583b41d78c6141099fe015068e419f09c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5178 zcmc&&`)?b^5!R2igak#~piSM!m{cm#$r8NdLzV;wdRR_`xCvl8=npx;KHlw-R~>ih zdx&NK`hK%}$Hz%B(gsBZP`umOo%eh*%ahAj7r)!t+1WigIiU+Zo5zU^%}cE4a^?pa z-O4nJwIX-a?HkG>&Zp!j3F&zr&*FdiImlUe*AU-MWYG?pZY-#6~8j# zeHBusDex7IB_-P55>lFyk@V9fmMP^^Y;^lpE?n@7{#b!u`nS8g+a51-DFPizYI^-% z41^AmSu1_W2}#J0SKBoAgsEKNN8)NybXt z$W+M$k22O2%E(V*AMuIRv8BW+(qeAuV&>n#Gl`#NVxGz{4*cA3+1Oh@Dhy{4OyeZn zX2UBFvatss*of5QOeYeunn-GD2Z_j+b2+DOw@aS){9s$%4zfDSr5`q_=?=S2lkJL? z6xnh%)(K?lIe`aOnT^O$Kv@(c)2*&pw>HKKiLLyERGd(|UApQxR&nm96DqByW9DM) z-mkWx+=`h*$#7{>^E>NgR?Am`>^3{pp2%E`izq_r(3<7eYK_Yo&Hdm8MH>|=FpP6e zI6xH}#6<@&ViJ1FfJ8o(WL4@Cy~T^&iMkA6)q4(ik>nyoG6cC!mj`s~r?Edyq^D5q zI1YE0XBIIK2Q{57VL?bW{s$Qai_jQ0)maYEksDU6myD|{647zZzHf1m%t;-wY{VXE zqa-b+64|;oh5&JCp`hY~v@${yUrh>svMF@Ev?bIJ0tr8*^+a87uc`H_VjbZSD^ZCq zJZdDM!jL#>|-p=03CX#kI0 z2D{#HZwJr)^#WsyVUZ;o$*l{8l3)4N7MD(CbWMF~zLw}m^47+c577H+>j6cno)KDu z9{&TGNyrCNk@S9Bxr1)=n!I)<^T?~|Eh=Unym;#;1#sg*^DLdo)<~Ca>OTS|8@x2< z?4HsHNL(3qO@r%eI_&JWPKSNENF{@!Pf9NCsBbdjjtzg=ZF40W;H^O!`~I(~M1HV` zO6|Cdpm)IYm4b#y{(PP+EnrqiQ*#PbrFLtdy5#nHPUpIFZ?mh|qx+!YSr=50Bj!lC z?I2(_Fk?%K_7J4HMis*6X(2E)$cM;>jNRJGmM^A2ecHCaae4xk292FZtXZWhz6Xud zN2jevr+6GTPG2<6&d*Jja#C9VSawDc`Omo!3qMuRE)=QEi&PQnd*6^>9;{3;#FE3xe>3$?11ZNdIV~d=@f7L_m(kkt3BAY3K=N0GopJSHjJu(hc zX4vR79`n*3`_7BXr9bh~C-~=lx@VX0>^98E)994R08u;^P|JDVI=(FthgzPZ&p-2g+MFjVyg8`Rtj603Ex*4J#MV<4rO z_spz^XO0BZUsPk`YK4RKM-Yde@*@8J_WX*6x~F)C00ihh0T=(7fIt5V+zvna)O6(;naEi@;W=xO zYBe#loj}={3CiR`HCH*$>Zwr%)ihk^h+0Ed0ccz$#Zj-%Fb8OUMn9Sa;Hta&{^buA zQE9v+^r6XwQ+i@w9AqGTMSBD`#nch;>5_>Jt6R}7E z zxqIKZiexG?sG5n&S@`D!%_L1dYK(Pgt)AO=5uv^p@r*OTqx%^@S@N(X56#+$OZIbY z8Se8IQ~rn$mp50r+ql@TBPWaIa$=ineyrveYR;D!*Ay->@7~!F@7=rhLAJ~eI^8S} zb&+=$X`IXUCRsBT5Dfn9PNzv2sF6Tx5$JUv3d|EMT>7(nN)Zm>VYbYu6|}KoY)ub2 zr@ZE`**-SX^=vo6W8YJp)x)nDi}+$}4wyUzbUn7f2Kw_IFFO4V_8ji<{{C<$-TS~0 zXYQ%$$!8reI^*5H1$EG3ZlkAl51QUnA{6Ue-cp1JbrQoq{92I+!8gC{E6%1b_-7LC z@q))qVcmU?M>aatvB?=eC+s~U#$9QBe=-+kb{(SA|9-QW#=*2IgN>V!`6&joiljK_eI@SwoXS|S|Nm4+ zCH{X>A-E#n$lO**CFs8|m5Regy%?0hzxDm0Lg&@y&5WuR?KPr`_+T_VGV?ipthmLX PNqjLVf2=Vh$L_xY1LA9g diff --git a/elpa/ein-20200127.249/ein-multilang-fontify.el b/elpa/ein-20200127.249/ein-multilang-fontify.el deleted file mode 100644 index 08d00d7e..00000000 --- a/elpa/ein-20200127.249/ein-multilang-fontify.el +++ /dev/null @@ -1,78 +0,0 @@ -;;; ein-multilang-fontify.el --- Syntax highlighting for multiple-languages - -;; Copyright (C) 2012 Takafumi Arakaki - -;; Author: Takafumi Arakaki - -;; This file is NOT part of GNU Emacs. - -;; ein-multilang-fontify.el 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. - -;; ein-multilang-fontify.el 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 ein-multilang-fontify.el. -;; If not, see . - -;;; Commentary: - -;; - -;;; Code: - -;; It would be nice if org-src is available, but this module should -;; work without org-src. Data on `org-src-lang-modes' is used -;; if this variable is bound. -(require 'org-src nil t) - -(defun ein:mlf-get-lang-mode (lang) - "Return major mode for LANG. -Modified version of `org-src-get-lang-mode'." - (when (symbolp lang) - (setq lang (symbol-name lang))) - (intern - (format "%s-mode" - (or (and (bound-and-true-p org-src-lang-modes) - (cdr (assoc lang org-src-lang-modes))) - lang)))) - -(defun ein:mlf-font-lock-fontify-block (lang start end) - "Patched version of `org-src-font-lock-fontify-block'." - (let ((lang-mode (ein:mlf-get-lang-mode lang))) - (if (fboundp lang-mode) - (let ((string (buffer-substring-no-properties start end)) - (modified (buffer-modified-p)) - (orig-buffer (current-buffer)) - pos - next) - (remove-text-properties start end '(face nil)) - (with-current-buffer - (get-buffer-create - (concat " ein:mlf-fontification:" (symbol-name lang-mode))) - (delete-region (point-min) (point-max)) - (insert string) - (unless (eq major-mode lang-mode) (funcall lang-mode)) - (font-lock-fontify-buffer) - (setq pos (point-min)) - (cl-loop for next = (next-single-property-change pos 'face nil (point-max)) - do (put-text-property - ;; `font-lock-face' property is used instead of `font'. - ;; This is the only difference from org-src. - (+ start (1- pos)) (+ start next) 'font-lock-face - (get-text-property pos 'face) orig-buffer) - do (setq pos next) - until (eq pos (point-max)))) - (add-text-properties - start end - '(font-lock-fontified t fontified t font-lock-multiline t)) - (set-buffer-modified-p modified))))) - -(provide 'ein-multilang-fontify) - -;;; ein-multilang-fontify.el ends here diff --git a/elpa/ein-20200127.249/ein-multilang-fontify.elc b/elpa/ein-20200127.249/ein-multilang-fontify.elc deleted file mode 100644 index 5fd6e3e750784f1ef2e670f0bbf8b9c4569497e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1577 zcmbtU>u=LA5bwt}h=~s%vei@v4ialiumI> zJ6&nT_GytE`+Vnn{O)ml_Wty7qtWn=kB{M07A4PF>Ig32te}a8E2cD;0>V)*a-5&s z%z)-O$kOnF|E31ny5~9Oml@ZPp%$n#(~!;uEqDT{Otev4O!Xmhl{P@rl%=q=5*+oy zqyKcI5_Je^Ad$jQ6s}B0Uf_)&C+DZ{-a#^>iY5kKJap!%NI^?TsDKHBT+%foi%>K$ zs&dX0m>CL&QEe9?xYK7Hxa;S6UPrMX6;})nq?!_~5)eEG)AjaWj|cFXnMw&L=r^gL zkST)<5ARPtzU_G*WXdy+s9vW`X7F{PgiM(sITcf4A071eyiUq8nsch*fN}A%$g_1B z*uUu52VL-+M{(GXT8%jBht2i_+#*~9Tti$VTtVAP>^55UhBxD8EA~&29PKrlv2Xcf zA1_|*PkZ&~`sZX4T) z+jd&7Q2F3hqXm|Zqp=C{ScaRS5<1e&S`t%_l(Z>DrIF3b};Xev7W8tut@i#V~ zIV~CfgGZ@V9ldEhM~RX1EF3$};wb8GY_&;uHGj*z{euAn`(>b%*jqOiQ?^Lnq{=d; zh^{8}JRm}nQpu7j!?D*FY^+gN$)t3}uUH|k7%^yKRk)MUgjs)qO%$VsfxmR5 zPB%~7oOp5hUb(Wg{cD`Ax|i#7UARS+8=iB)a2$aC7xD^RQt{~m2|FHY9W~VT&~UwU2`?7i cGY*by_jE7^R~)B_odu+}V~0hJ-Ms7l1>S?`kpKVy diff --git a/elpa/ein-20200127.249/ein-multilang.el b/elpa/ein-20200127.249/ein-multilang.el deleted file mode 100644 index 277e50e4..00000000 --- a/elpa/ein-20200127.249/ein-multilang.el +++ /dev/null @@ -1,434 +0,0 @@ -;;; ein-multilang.el --- Notebook mode with multiple language fontification - -;; Copyright (C) 2012 Takafumi Arakaki - -;; Author: Takafumi Arakaki - -;; This file is NOT part of GNU Emacs. - -;; ein-multilang.el 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. - -;; ein-multilang.el 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 ein-multilang.el. -;; If not, see . - -;;; Commentary: - -;; - -;;; Code: - -(eval-when-compile (defvar markdown-mode-map)) - -(require 'ein-worksheet) -(require 'ein-multilang-fontify) -(require 'python) -(require 'ess-r-mode nil t) -(require 'ess-custom nil t) -(require 'clojure-mode nil t) -(require 'julia-mode nil t) -(require 'haskell-mode nil t) -(require 'hy-mode nil t) -(require 'cc-mode) - -(declare-function ess-indent-line "ess") -(declare-function ess-r-eldoc-function "ess-r-completion") -(declare-function ess-setq-vars-local "ess-utils") -(declare-function haskell-indentation-indent-line "haskell-indentation") - -(defun ein:ml-fontify (limit) - "Fontify next input area comes after the current point then -return `t' or `nil' if not found. -See info node `(elisp) Search-based Fontification'." - (ein:log-ignore-errors - (ein:ml-fontify-1 limit))) - -(defun ein:ml-current-or-next-input-cell (ewoc-node) - "Almost identical to `ein:worksheet-next-input-cell' but return -the current cell if EWOC-NODE is the input area node." - (let* ((ewoc-data (ewoc-data ewoc-node)) - (cell (ein:$node-data ewoc-data)) - (path (ein:$node-path ewoc-data)) - (element (nth 1 path))) - (if (memql element '(prompt input)) - cell - (ein:cell-next cell)))) - -(defun ein:ml-fontify-1 (limit) - "Actual implementation of `ein:ml-fontify'. -This function may raise an error." - (ein:and-let* ((pos (point)) - (node (ein:worksheet-get-nearest-cell-ewoc-node pos limit)) - (cell (ein:ml-current-or-next-input-cell node)) - (start (ein:cell-input-pos-min cell)) - (end (ein:cell-input-pos-max cell)) - ((<= end limit)) - ((< start end)) - (lang (ein:cell-language cell))) - (let ((inhibit-read-only t)) - (ein:mlf-font-lock-fontify-block lang start end) - ;; Emacs fontification mechanism requires the function to move - ;; the point. Do *not* use `(goto-char end)'. As END is in the - ;; input area, fontification falls into an infinite loop. - (ewoc-goto-node (slot-value cell 'ewoc) (ein:cell-element-get cell :footer))) - t)) - -(defun ein:ml-back-to-prev-node () - (ein:aand (ein:worksheet-get-ewoc) (ewoc-goto-prev it 1))) - -(defvar ein:ml-font-lock-keywords - '((ein:ml-fontify)) - "Default `font-lock-keywords' for `ein:notebook-multilang-mode'.") - -(defun ein:ml-set-font-lock-defaults () - (setq-local font-lock-defaults - '(ein:ml-font-lock-keywords - ;; The following are adapted from org-mode but I am not sure - ;; if I need them: - t nil nil - ein:ml-back-to-prev-node))) - -;;;###autoload -(define-derived-mode ein:notebook-multilang-mode prog-mode "EIN" - "A mode for fontifying multiple languages. - -\\{ein:notebook-multilang-mode-map} -" - (setq-local beginning-of-defun-function - 'ein:worksheet-beginning-of-cell-input) - (setq-local end-of-defun-function - 'ein:worksheet-end-of-cell-input) - (ein:ml-set-font-lock-defaults)) - -(eval-after-load "auto-complete" - '(add-to-list 'ac-modes 'ein:notebook-multilang-mode)) - - -;;; Language setup functions - -(defun ein:ml-narrow-to-cell () - "Narrow to the current cell." - (ein:and-let* ((pos (point)) - (node (ein:worksheet-get-nearest-cell-ewoc-node pos)) - (cell (ein:ml-current-or-next-input-cell node)) - (start (ein:cell-input-pos-min cell)) - (end (ein:cell-input-pos-max cell)) - ((< start end))) - (narrow-to-region start end))) - -(defun ein:ml-indent-line-function (lang-func) - (save-restriction - (ein:ml-narrow-to-cell) - (funcall lang-func))) - -(defun ein:ml-indent-region (lang-func start end) - (save-restriction - (ein:ml-narrow-to-cell) - (funcall lang-func start end))) - -(defun ein:ml-lang-setup-python () - "Presumably tkf had good reasons to choose only these forms from `python-mode'." - (setq-local mode-name "EIN[Py]") - (setq-local comment-start "# ") - (setq-local comment-start-skip "#+\\s-*") - (setq-local parse-sexp-lookup-properties t) - (setq-local indent-line-function - (apply-partially #'ein:ml-indent-line-function #'python-indent-line-function)) - (setq-local indent-region-function - (apply-partially #'ein:ml-indent-region #'python-indent-region)) - (set-syntax-table python-mode-syntax-table) - (set-keymap-parent ein:notebook-multilang-mode-map python-mode-map)) - -(defun ein:ml-lang-setup-clojure () - "Minimally different than the the python setup" - (when (featurep 'clojure-mode) - (setq-local mode-name "EIN[Clj]") - (setq-local comment-start "; ") - (setq-local comment-start-skip ";+\\s-*") - (setq-local parse-sexp-lookup-properties t) - (setq-local indent-line-function - (apply-partially #'ein:ml-indent-line-function #'clojure-indent-line)) - (setq-local indent-region-function - (apply-partially #'ein:ml-indent-region #'clojure-indent-region)) - (set-syntax-table clojure-mode-syntax-table) - (set-keymap-parent ein:notebook-multilang-mode-map clojure-mode-map))) - -(defun ein:ml-lang-setup-julia () - (when (featurep 'julia-mode) - (setq-local mode-name "EIN[julia]") - (setq-local comment-start "# ") - (setq-local comment-start-skip "#+\\s-*") - (setq-local indent-line-function - (apply-partially #'ein:ml-indent-line-function #'julia-indent-line)) - (when (boundp 'julia-mode-syntax-table) - (set-syntax-table julia-mode-syntax-table)) - (when (boundp 'julia-mode-map) - (set-keymap-parent ein:notebook-multilang-mode-map julia-mode-map)))) - -(defun ein:ml-lang-setup-R () - (when (and (featurep 'ess-r-mode) (featurep 'ess-custom)) - (setq-local mode-name "EIN[R]") - (when (boundp 'ess-r-customize-alist) - (ess-setq-vars-local ess-r-customize-alist)) - (setq-local paragraph-start (concat "\\s-*$\\|" page-delimiter)) - (setq-local paragraph-separate (concat "\\s-*$\\|" page-delimiter)) - (setq-local paragraph-ignore-fill-prefix t) - (setq-local indent-line-function - (apply-partially #'ein:ml-indent-line-function #'ess-indent-line)) - (when (and (boundp 'ess-style) (boundp 'ess-default-style)) - (setq-local ess-style ess-default-style)) - (when (and (boundp 'prettify-symbols-alist) (boundp 'ess-r-prettify-symbols)) - (setq-local prettify-symbols-alist ess-r-prettify-symbols)) - (when (boundp 'ess-r-mode-syntax-table) - (set-syntax-table ess-r-mode-syntax-table)) - (when (boundp 'ess-r-mode-map) - (set-keymap-parent ein:notebook-multilang-mode-map ess-r-mode-map)))) - -(defun ein:ml-lang-setup-haskell () - (when (featurep 'haskell-mode) - (setq-local mode-name "EIN[haskell]") - (setq-local comment-start "-- ") - ;; (setq-local comment-start-skip "--\\s-*") - (when (boundp 'haskell-indentation-indent-line) - (setq-local indent-line-function - (apply-partially #'ein:ml-indent-line-function #'haskell-indentation-indent-line))) - (when (boundp 'haskell-mode-syntax-table) - (set-syntax-table haskell-mode-syntax-table)) - (when (boundp 'haskell-mode-map) - (set-keymap-parent ein:notebook-multilang-mode-map haskell-mode-map)))) - -(defun ein:ml-lang-setup-hy () - (when (featurep 'hy-mode) - (setq-local mode-name "EIN[hy]") - (hy-mode--setup-font-lock) - (hy-mode--setup-syntax) - (hy-mode--support-smartparens) - (set-keymap-parent ein:notebook-multilang-mode-map hy-mode-map))) - -(defun ein:ml-lang-setup-c++ () - (when (featurep 'c++-mode) - (setq-local mode-name "EIN[c++]") - (setq-local comment-start "// ") - (setq-local indent-line-function - (apply-partially #'ein:ml-indent-line-function #'c-indent-line)) - (set-syntax-table c++-mode-syntax-table) - (set-keymap-parent ein:notebook-multilang-mode-map c++-mode-map))) - -(defun ein:ml-lang-setup-c () - (when (featurep 'c-mode) - (setq-local mode-name "EIN[c]") - (setq-local comment-start "/* ") - (setq-local comment-end " */") - (setq-local indent-line-function - (apply-partially #'ein:ml-indent-line-function #'c-indent-line)) - (set-syntax-table c-mode-syntax-table) - (set-keymap-parent ein:notebook-multilang-mode-map c-mode-map))) - -(defun ein:ml-lang-setup-C++11 () - (ein:ml-lang-setup-c++)) - -(defun ein:ml-lang-setup-C++14 () - (ein:ml-lang-setup-c++)) - -(defun ein:ml-lang-setup-C++17 () - (ein:ml-lang-setup-c++)) - -(defun ein:ml-lang-setup-generic () - (setq-local mode-name "EIN[unknown]") - (setq-local indent-line-function - (apply-partially #'ein:ml-indent-line-function #'indent-relative)) - (set-syntax-table prog-mode-syntax-table) - (set-keymap-parent ein:notebook-multilang-mode-map prog-mode-map)) - -(defun ein:ml-lang-setup (kernelspec) - (let ((setup-func (intern (concat "ein:ml-lang-setup-" (ein:$kernelspec-language kernelspec))))) - (if (fboundp setup-func) - (funcall setup-func) - (warn "ein:ml-lang-setup: unknown kernelspec language '%s', multilang support disabled." - (ein:$kernelspec-language kernelspec)) - (ein:ml-lang-setup-generic)))) - -;; (defun ein:ml-lang-setup-markdown () -;; "Use `markdown-mode-map'. NOTE: This function is not used now." -;; (when (featurep 'markdown-mode) -;; (set-keymap-parent ein:notebook-multilang-mode-map markdown-mode-map))) - -;;; yasnippet - -(defvar ein:ml-yasnippet-parents '(python-mode markdown-mode) - "Parent modes for `ein:notebook-multilang-mode' to register in yasnippet.") - -(defun ein:ml-setup-yasnippet () - (cl-loop for define-parents in '(yas/define-parents - yas--define-parents) - when (fboundp define-parents) - do (ignore-errors - ;; `let' is for workaround the bug in yasnippet - (let ((mode-sym 'ein:notebook-multilang-mode)) - (funcall define-parents - mode-sym - ein:ml-yasnippet-parents))))) - -(eval-after-load "yasnippet" '(ein:ml-setup-yasnippet)) - -;;; Imenu Support - -;; Most of this is borrowed from python.el -;; Just replace python with ein in most cases. - -(defvar ein:imenu-format-item-label-function - 'ein:imenu-format-item-label - "Imenu function used to format an item label. -It must be a function with two arguments: TYPE and NAME.") - -(defvar ein:imenu-format-parent-item-label-function - 'ein:imenu-format-parent-item-label - "Imenu function used to format a parent item label. -It must be a function with two arguments: TYPE and NAME.") - -(defvar ein:imenu-format-parent-item-jump-label-function - 'ein:imenu-format-parent-item-jump-label - "Imenu function used to format a parent jump item label. -It must be a function with two arguments: TYPE and NAME.") - -(defun ein:imenu-format-item-label (type name) - "Return Imenu label for single node using TYPE and NAME." - (format "%s (%s)" name type)) - -(defun ein:imenu-format-parent-item-label (type name) - "Return Imenu label for parent node using TYPE and NAME." - (format "%s..." (ein:imenu-format-item-label type name))) - -(defun python-imenu-format-parent-item-jump-label (type _name) - "Return Imenu label for parent node jump using TYPE and NAME." - (if (string= type "class") - "*class definition*" - "*function definition*")) - -(defun ein:imenu--put-parent (type name pos tree) - "Add the parent with TYPE, NAME and POS to TREE." - (let ((label - (funcall ein:imenu-format-item-label-function type name)) - (jump-label - (funcall ein:imenu-format-parent-item-jump-label-function type name))) - (if (not tree) - (cons label pos) - (cons label (cons (cons jump-label pos) tree))))) - -(defun ein:imenu--build-tree (&optional min-indent prev-indent tree) - "Recursively build the tree of nested definitions of a node. -Arguments MIN-INDENT, PREV-INDENT and TREE are internal and should -not be passed explicitly unless you know what you are doing." - (setq min-indent (or min-indent 0) - prev-indent (or prev-indent python-indent-offset)) - (let* ((pos (python-nav-backward-defun)) - (type) - (name (when (and pos (looking-at python-nav-beginning-of-defun-regexp)) - (let ((split (split-string (match-string-no-properties 0)))) - (setq type (car split)) - (cadr split)))) - (label (when name - (funcall ein:imenu-format-item-label-function type name))) - (indent (current-indentation)) - (children-indent-limit (+ python-indent-offset min-indent))) - (cond ((not pos) - ;; Nothing found, probably near to bobp. - nil) - ((<= indent min-indent) - ;; The current indentation points that this is a parent - ;; node, add it to the tree and stop recursing. - (ein:imenu--put-parent type name pos tree)) - (t - (ein:imenu--build-tree - min-indent - indent - (if (<= indent children-indent-limit) - ;; This lies within the children indent offset range, - ;; so it's a normal child of its parent (i.e., not - ;; a child of a child). - (cons (cons label pos) tree) - ;; Oh no, a child of a child?! Fear not, we - ;; know how to roll. We recursively parse these by - ;; swapping prev-indent and min-indent plus adding this - ;; newly found item to a fresh subtree. This works, I - ;; promise. - (cons - (ein:imenu--build-tree - prev-indent indent (list (cons label pos))) - tree))))))) - -(defun ein:imenu-create-index () - "Return tree Imenu alist for the current Python buffer. -Change `ein:imenu-format-item-label-function', -`ein:imenu-format-parent-item-label-function', -`ein:imenu-format-parent-item-jump-label-function' to -customize how labels are formatted." - (goto-char (point-max)) - (let ((index) - (tree)) - (while (setq tree (ein:imenu--build-tree)) - (setq index (cons tree index))) - index)) - -(defun ein:imenu-create-flat-index (&optional alist prefix) - "Return flat outline of the current Python buffer for Imenu. -Optional argument ALIST is the tree to be flattened; when nil -`ein:imenu-build-index' is used with -`ein:imenu-format-parent-item-jump-label-function' -`ein:imenu-format-parent-item-label-function' -`ein:imenu-format-item-label-function' set to - (lambda (type name) name) -Optional argument PREFIX is used in recursive calls and should -not be passed explicitly. - -Converts this: - - ((\"Foo\" . 103) - (\"Bar\" . 138) - (\"decorator\" - (\"decorator\" . 173) - (\"wrap\" - (\"wrap\" . 353) - (\"wrapped_f\" . 393)))) - -To this: - - ((\"Foo\" . 103) - (\"Bar\" . 138) - (\"decorator\" . 173) - (\"decorator.wrap\" . 353) - (\"decorator.wrapped_f\" . 393))" - ;; Inspired by imenu--flatten-index-alist removed in revno 21853. - (apply - 'nconc - (mapcar - (lambda (item) - (let ((name (if prefix - (concat prefix "." (car item)) - (car item))) - (pos (cdr item))) - (cond ((or (numberp pos) (markerp pos)) - (list (cons name pos))) - ((listp pos) - (cons - (cons name (cdar pos)) - (python-imenu-create-flat-index (cddr item) name)))))) - (or alist - (let* ((fn (lambda (_type name) name)) - (ein:imenu-format-item-label-function fn) - (ein:imenu-format-parent-item-label-function fn) - (ein:imenu-format-parent-item-jump-label-function fn)) - (python-imenu-create-index)))))) - - -(provide 'ein-multilang) - -;;; ein-multilang.el ends here diff --git a/elpa/ein-20200127.249/ein-multilang.elc b/elpa/ein-20200127.249/ein-multilang.elc deleted file mode 100644 index e70f61dfab0019a45c621bdb0ad132baf50d69c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16169 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 GvGPBUZc&K< diff --git a/elpa/ein-20200127.249/ein-notebooklist.el b/elpa/ein-20200127.249/ein-notebooklist.el deleted file mode 100644 index 643d963c..00000000 --- a/elpa/ein-20200127.249/ein-notebooklist.el +++ /dev/null @@ -1,1016 +0,0 @@ -;;; ein-notebooklist.el --- Notebook list buffer -*- lexical-binding: t -*- - -;; Copyright (C) 2018- John M. Miller - -;; Authors: Takafumi Arakaki -;; John M. Miller - -;; This file is NOT part of GNU Emacs. - -;; ein-notebooklist.el 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. - -;; ein-notebooklist.el 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 ein-notebooklist.el. If not, see . - -;;; Commentary: - - -;;; Code: - -(require 'widget) -(require 'cus-edit) - -(require 'ein-core) -(require 'ein-notebook) -(require 'ein-connect) -(require 'ein-file) -(require 'ein-contents-api) -(require 'ein-subpackages) -(require 'ein-ac) -(require 'ein-company) -(require 'deferred) -(require 'dash) -(require 'ido) - -(autoload 'ein:jupyterhub-connect "ein-jupyterhub") - -(defcustom ein:notebooklist-login-timeout (truncate (* 6.3 1000)) - "Timeout in milliseconds for logging into server" - :group 'ein - :type 'integer -) - -(defcustom ein:notebooklist-render-order - '(render-header - render-opened-notebooks - render-directory) - "Order of notebook list sections. -Must contain render-header, render-opened-notebooks, and render-directory." - :group 'ein - :type 'list -) - -(defcustom ein:notebooklist-first-open-hook nil - "Hooks to run when the notebook list is opened at first time. - -Example to open a notebook named _scratch_ when the notebook list -is opened at first time.:: - - (add-hook - 'ein:notebooklist-first-open-hook - (lambda () (ein:notebook-open (ein:$notebooklist-url-or-port ein:%notebooklist%) \"main.ipynb\"))) - -" - :type 'hook - :group 'ein) - -(cl-defstruct ein:$notebooklist - "Hold notebooklist variables. - -`ein:$notebooklist-url-or-port' - URL or port of IPython server. - -`ein:$notebooklist-path' - The path for the notebooklist. - -`ein:$notebooklist-data' - JSON data sent from the server. -`ein:$notebooklist-api-version' - Major version of the IPython notebook server we are talking to." - url-or-port - path - data - api-version) - -(ein:deflocal ein:%notebooklist% nil - "Buffer local variable to store an instance of `ein:$notebooklist'.") - -(ein:deflocal ein:%notebooklist-new-kernel% nil - "Buffer local variable to store kernel type for newly created notebooks.") - -(defcustom ein:notebooklist-sort-field :name - "The notebook list sort field." - :type '(choice (const :tag "Name" :name) - (const :tag "Last modified" :last_modified)) - :group 'ein) -(make-variable-buffer-local 'ein:notebooklist-sort-field) -(put 'ein:notebooklist-sort-field 'permanent-local t) - -(defcustom ein:notebooklist-sort-order :ascending - "The notebook list sort order." - :type '(choice (const :tag "Ascending" :ascending) - (const :tag "Descending" :descending)) - :group 'ein) -(make-variable-buffer-local 'ein:notebooklist-sort-order) -(put 'ein:notebooklist-sort-order 'permanent-local t) - -(defmacro ein:make-sorting-widget (tag custom-var) - "Create the sorting widget." - ;; assume that custom-var has type `choice' of `const's. - `(widget-create - 'menu-choice :tag ,tag - :value ,custom-var - :notify (lambda (widget &rest _ignore) - (run-at-time 1 nil #'ein:notebooklist-reload) - (setq ,custom-var (widget-value widget))) - ,@(mapcar (lambda (const) - `'(item :tag ,(cl-third const) :value ,(cl-fourth const))) - (cl-rest (custom-variable-type custom-var))))) - -(define-obsolete-variable-alias 'ein:notebooklist 'ein:%notebooklist% "0.1.2") - -(defvar ein:notebooklist-buffer-name-template "*ein:notebooklist %s*") - -(defvar ein:notebooklist-map (make-hash-table :test 'equal) - "Data store for `ein:notebooklist-list'. -Mapping from URL-OR-PORT to an instance of `ein:$notebooklist'.") - -(defun ein:notebooklist-keys () - "Get a list of registered server urls." - (hash-table-keys ein:notebooklist-map)) - -(defun ein:notebooklist-list () - "Get a list of opened `ein:$notebooklist'." - (hash-table-values ein:notebooklist-map)) - -(defun ein:notebooklist-list-remove (url-or-port) - (remhash url-or-port ein:notebooklist-map)) - -(defun ein:notebooklist-list-add (nblist) - "Register notebook list instance NBLIST for global lookup. -This function adds NBLIST to `ein:notebooklist-map'." - (puthash (ein:$notebooklist-url-or-port nblist) - nblist - ein:notebooklist-map)) - -(defun ein:notebooklist-list-get (url-or-port) - "Get an instance of `ein:$notebooklist' by URL-OR-PORT as a key." - (gethash url-or-port ein:notebooklist-map)) - -(defun ein:notebooklist-url (url-or-port version &optional path) - (let ((base-path (cond ((= version 2) "api/notebooks") - ((>= version 3) "api/contents")))) - (ein:url url-or-port base-path path))) - -(defun ein:notebooklist-sentinel (url-or-port process event) - "Remove URL-OR-PORT from ein:notebooklist-map when PROCESS dies" - (when (not (string= "open" (substring event 0 4))) - (ein:log 'info "Process %s %s %s" - (car (process-command process)) - (replace-regexp-in-string "\n$" "" event) - url-or-port) - (ein:notebooklist-list-remove url-or-port))) - -(defun ein:notebooklist-get-buffer (url-or-port) - (get-buffer-create - (format ein:notebooklist-buffer-name-template url-or-port))) - -(defvar ein:jupyter-default-server-command) -(defun ein:jupyter-notebook-list (caller) - "Return list of local notebooks as JSON." - (condition-case err - (mapcar #'ein:json-read-from-string - (process-lines ein:jupyter-default-server-command - "notebook" "list" "--json")) - ;; often there is no local jupyter installation - (error (ein:log 'info "ein:jupyter-notebook-list(%s): %s" caller err) - nil))) - -(defun ein:crib-token (url-or-port) - "Shell out to jupyter for its credentials knowledge. Return list of (PASSWORD TOKEN)." - (ein:aif (cl-loop for json in (ein:jupyter-notebook-list 'ein:crib-token) - with token0 - with password0 - when (cl-destructuring-bind (&key password url token &allow-other-keys) json - (prog1 (equal (ein:url url) url-or-port) - (setq password0 password) ;; t or :json-false - (setq token0 token))) - return (list password0 token0)) - it (list nil nil))) - -(defun ein:crib-running-servers () - "Shell out to jupyter for running servers." - (cl-loop for json in (ein:jupyter-notebook-list 'ein:crib-running-servers) - collecting (cl-destructuring-bind (&key url &allow-other-keys) json - (ein:url url)))) - -(defun ein:notebooklist-token-or-password (url-or-port) - "Return token or password (jupyter requires one or the other but not both) for URL-OR-PORT. Empty string token means all authentication disabled. Nil means don't know." - (cl-multiple-value-bind (password-p token) (ein:crib-token url-or-port) - (autoload 'ein:jupyter-server-conn-info "ein-jupyter") - (cl-multiple-value-bind (my-url-or-port my-token) (ein:jupyter-server-conn-info) - (cond ((eq password-p t) (read-passwd (format "Password for %s: " url-or-port))) - ((and (stringp token) (eql password-p :json-false)) token) - ((equal url-or-port my-url-or-port) my-token) - (t nil))))) - -(defun ein:notebooklist-ask-url-or-port () - (let* ((default (ein:url (ein:aif (ein:get-notebook) - (ein:$notebook-url-or-port it) - (ein:aif ein:%notebooklist% - (ein:$notebooklist-url-or-port it) - (ein:default-url-or-port))))) - (url-or-port-list - (-distinct (mapcar #'ein:url - (append (list default) - ein:url-or-port - (ein:crib-running-servers))))) - (url-or-port (let ((ido-report-no-match nil) - (ido-use-faces nil)) - (ein:completing-read "URL or port: " - url-or-port-list - nil nil nil nil - default)))) - (ein:url url-or-port))) - -(defun ein:notebooklist-open* (url-or-port &optional path resync restore-point-p callback errback) - "The main entry to server at URL-OR-PORT. Users should not directly call this, but instead `ein:notebooklist-login'. - -A \"notebooklist\" can be opened from any PATH within the server root hierarchy. PATH is empty at the root. RESYNC is requery server attributes such as ipython version and kernelspecs. CALLBACK takes two arguments, the resulting buffer and URL-OR-PORT. ERRBACK takes one argument, the resulting buffer. - -TODO: going to maintain jupyterhub hooks here -" - (unless path (setq path "")) - (setq url-or-port (ein:url url-or-port)) ;; should work towards not needing this - (let* ((url-or-port url-or-port) - (path path) - (success (apply-partially #'ein:notebooklist-open--finish - url-or-port restore-point-p callback)) - (failure errback)) - (if (and (not resync) (ein:notebooklist-list-get url-or-port)) - (ein:content-query-contents url-or-port path success failure) - (ein:query-notebook-version - url-or-port - (lambda () - (ein:query-kernelspecs - url-or-port - (lambda () - (deferred:$ - (deferred:next - (lambda () - (ein:content-query-hierarchy url-or-port #'ignore)))) - (ein:content-query-contents url-or-port path success failure)))))))) - -(defcustom ein:notebooklist-keepalive-refresh-time 1 - "When the notebook keepalive is enabled, the frequency, IN -HOURS, with which to make calls to the jupyter content API to -refresh the notebook connection." - :type 'float - :group 'ein) - -(defcustom ein:enable-keepalive nil - "When non-nil, will cause EIN to automatically call - `ein:notebooklist-enable-keepalive' after any call to - `ein:notebooklist-open'." - :type 'boolean - :group 'ein) - -(defcustom ein:notebooklist-date-format "%x" - "The format spec for date in notebooklist mode. -See `ein:format-time-string'." - :type '(or string function) - :group 'ein) - -(defvar ein:notebooklist--keepalive-timer nil) - -;;;###autoload -(defun ein:notebooklist-enable-keepalive (&optional url-or-port) - "Enable periodic calls to the notebook server to keep long running sessions from expiring. -By long running we mean sessions to last days, or weeks. The -frequency of the refresh (which is very similar to a call to -`ein:notebooklist-open`) is controlled by -`ein:notebooklist-keepalive-refresh-time`, and is measured in -terms of hours. If `ein:enable-keepalive' is non-nil this will -automatically be called during calls to `ein:notebooklist-open`." - (interactive (list (ein:notebooklist-ask-url-or-port))) - (unless ein:notebooklist--keepalive-timer - (message "Enabling notebooklist keepalive...") - (let ((success - (lambda (_content) - (ein:log 'info "Refreshing notebooklist connection."))) - (refresh-time (* ein:notebooklist-keepalive-refresh-time 60 60))) - (setq ein:notebooklist--keepalive-timer - (run-at-time 0.1 refresh-time #'ein:content-query-contents url-or-port "" success nil))))) - -;;;###autoload -(defun ein:notebooklist-disable-keepalive () - "Disable the notebooklist keepalive calls to the jupyter notebook server." - (interactive) - (message "Disabling notebooklist keepalive...") - (cancel-timer ein:notebooklist--keepalive-timer) - (setq ein:notebooklist--keepalive-timer nil)) - -(defun ein:notebooklist-open--finish (url-or-port restore-point-p callback content) - "Called via `ein:notebooklist-open*'." - (let ((path (ein:$content-path content)) - (nb-version (ein:$content-notebook-version content)) - (data (ein:$content-raw-content content))) - (with-current-buffer (ein:notebooklist-get-buffer url-or-port) - (let ((already-opened-p (ein:notebooklist-list-get url-or-port)) - (orig-point (if restore-point-p - (point) - (point-min)))) - (setq ein:%notebooklist% - (make-ein:$notebooklist :url-or-port url-or-port - :path path - :data data - :api-version nb-version)) - (ein:notebooklist-list-add ein:%notebooklist%) - (ein:notebooklist-render nb-version orig-point) - (ein:log 'verbose "Opened notebooklist at %s" (ein:url url-or-port path)) - (unless already-opened-p - (run-hooks 'ein:notebooklist-first-open-hook)) - (when ein:enable-keepalive - (ein:notebooklist-enable-keepalive url-or-port)) - (when callback - (funcall callback (current-buffer) url-or-port))) - (current-buffer)))) - -(cl-defun ein:notebooklist-open-error (url-or-port path - &key error-thrown &allow-other-keys) - (ein:log 'error - "ein:notebooklist-open-error %s: ERROR %s DATA %s" (concat (file-name-as-directory url-or-port) path) (car error-thrown) (cdr error-thrown))) - -;;;###autoload -(defun ein:notebooklist-reload (&optional nblist resync callback) - "Reload current Notebook list." - (interactive) - (unless nblist - (setq nblist ein:%notebooklist%)) - (when nblist - (ein:notebooklist-open* (ein:$notebooklist-url-or-port nblist) - (ein:$notebooklist-path nblist) resync t - callback))) - -(defun ein:notebooklist-refresh-related () - "Reload notebook list in which current notebook locates. -This function is called via `ein:notebook-after-rename-hook'." - (ein:notebooklist-open* (ein:$notebook-url-or-port ein:%notebook%) - (ein:$notebook-notebook-path ein:%notebook%))) - -(add-hook 'ein:notebook-after-rename-hook 'ein:notebooklist-refresh-related) - -;;;###autoload -(defun ein:notebooklist-upload-file (upload-path) - (interactive "fSelect file to upload:") - (unless ein:%notebooklist% - (error "Only works when called from an ein:notebooklist buffer.")) - (let ((nb-path (ein:$notebooklist-path ein:%notebooklist%))) - (ein:content-upload nb-path upload-path))) - -;;;###autoload -(defun ein:notebooklist-new-notebook (url-or-port kernelspec &optional callback no-pop retry) - (interactive (list (ein:notebooklist-ask-url-or-port) - (ein:completing-read - "Select kernel: " - (ein:list-available-kernels - (ein:$notebooklist-url-or-port ein:%notebooklist%)) - nil t nil nil "default" nil))) - (let* ((notebooklist (ein:notebooklist-list-get url-or-port)) - (path (ein:$notebooklist-path notebooklist)) - (version (ein:$notebooklist-api-version notebooklist)) - (url (ein:notebooklist-url url-or-port version path))) - (ein:query-singleton-ajax - (list 'notebooklist-new-notebook url-or-port path) - url - :type "POST" - :data (json-encode '((:type . "notebook"))) - :headers (list (cons "Content-Type" "application/json")) - :parser #'ein:json-read - :error (apply-partially #'ein:notebooklist-new-notebook-error - url-or-port kernelspec path callback no-pop retry) - :success (apply-partially #'ein:notebooklist-new-notebook-success - url-or-port kernelspec path callback no-pop)))) - -(cl-defun ein:notebooklist-new-notebook-success (url-or-port - kernelspec - path - callback - no-pop - &key data &allow-other-keys) - (let ((nbname (plist-get data :name)) - (nbpath (plist-get data :path))) - (when (< (ein:notebook-version-numeric url-or-port) 3) - (if (string= nbpath "") - (setq nbpath nbname) - (setq nbpath (format "%s/%s" nbpath nbname)))) - (ein:notebook-open url-or-port nbpath kernelspec callback nil no-pop) - (ein:notebooklist-open* url-or-port path nil t))) - -(cl-defun ein:notebooklist-new-notebook-error - (url-or-port kernelspec _path callback no-pop retry - &key symbol-status error-thrown &allow-other-keys) - (let ((notice (format "ein:notebooklist-new-notebook-error: %s %s" - symbol-status error-thrown))) - (if retry - (ein:log 'error notice) - (ein:log 'info notice) - (sleep-for 0 1500) - (ein:notebooklist-new-notebook url-or-port kernelspec callback no-pop t)))) - -;;;###autoload -(defun ein:notebooklist-new-notebook-with-name - (url-or-port kernelspec name &optional callback no-pop) - "Upon notebook-open, rename the notebook, then funcall CALLBACK." - (interactive - (let* ((url-or-port (or (ein:get-url-or-port) - (ein:default-url-or-port))) - (kernelspec (ein:completing-read - "Select kernel: " - (ein:list-available-kernels url-or-port) - nil t nil nil "default" nil)) - (name (read-from-minibuffer - (format "Notebook name (at %s): " url-or-port)))) - (list url-or-port kernelspec name))) - (unless callback - (setq callback #'ignore)) - (add-function :before (var callback) - (apply-partially - (lambda (name* notebook _created) - (with-current-buffer (ein:notebook-buffer notebook) - (ein:notebook-rename-command name*))) - name)) - (ein:notebooklist-new-notebook url-or-port kernelspec callback no-pop)) - -(defun ein:notebooklist-delete-notebook-ask (path) - (when (y-or-n-p (format "Delete notebook %s?" path)) - (ein:notebooklist-delete-notebook path))) - -(defun ein:notebooklist-delete-notebook (path &optional callback) - "CALLBACK with no arguments, e.g., semaphore" - (let* ((path path) - (notebooklist ein:%notebooklist%) - (callback callback) - (url-or-port (ein:$notebooklist-url-or-port notebooklist))) - (unless callback (setq callback (lambda () (ein:notebooklist-reload notebooklist)))) - (ein:query-singleton-ajax - (list 'notebooklist-delete-notebook (ein:url url-or-port path)) - (ein:notebook-url-from-url-and-id - url-or-port (ein:$notebooklist-api-version notebooklist) path) - :type "DELETE" - :complete (apply-partially #'ein:notebooklist-delete-notebook--complete (ein:url url-or-port path) callback)))) - -(cl-defun ein:notebooklist-delete-notebook--complete (_url callback - &key data response _symbol-status &allow-other-keys - &aux (resp-string (format "STATUS: %s DATA: %s" (request-response-status-code response) data))) - (ein:log 'debug "ein:notebooklist-delete-notebook--complete %s" resp-string) - (when callback (funcall callback))) - -(defun generate-breadcrumbs (path) - "Given notebooklist path, generate alist of breadcrumps of form (name . path)." - (let* ((paths (split-string path "/" t)) - (current-path "/") - (pairs (list (cons "Home" "")))) - (dolist (p paths pairs) - (setf current-path (concat current-path "/" p) - pairs (append pairs (list (cons p current-path))))))) - -(cl-defun ein:nblist--sort-group (group by-param order) - (sort group #'(lambda (x y) - (cond ((eql order :ascending) - (string-lessp (plist-get x by-param) - (plist-get y by-param))) - ((eql order :descending) - (string-greaterp (plist-get x by-param) - (plist-get y by-param))))))) - -(defun ein:notebooklist--order-data (nblist-data sort-param sort-order) - "Try to sanely sort the notebooklist data for the current path." - (let* ((groups (-group-by #'(lambda (x) (plist-get x :type)) - nblist-data)) - (dirs (ein:nblist--sort-group (cdr (assoc "directory" groups)) - sort-param - sort-order)) - (nbs (ein:nblist--sort-group (cdr (assoc "notebook" groups)) - sort-param - sort-order)) - (files (ein:nblist--sort-group (-flatten-n 1 (-map #'cdr (-group-by - #'(lambda (x) (car (last (s-split "\\." (plist-get x :name))))) - (cdr (assoc "file" groups))))) - sort-param - sort-order))) - (-concat dirs nbs files))) - -(defun render-header-ipy2 (&rest _args) - "Render the header (for ipython2)." - ;; Create notebook list - (widget-insert (format "IPython %s Notebook list\n\n" (ein:$notebooklist-api-version ein:%notebooklist%))) - - (let ((breadcrumbs (generate-breadcrumbs (ein:$notebooklist-path ein:%notebooklist%)))) - (dolist (p breadcrumbs) - (let ((name (car p)) - (path (cdr p))) - (widget-insert " | ") - (widget-create - 'link - :notify (lambda (&rest _ignore) - (ein:notebooklist-login - (ein:$notebooklist-url-or-port ein:%notebooklist%) path)) - name))) - (widget-insert " |\n\n")) - - (widget-create - 'link - :notify (lambda (&rest _ignore) (ein:notebooklist-new-notebook - (ein:$notebooklist-url-or-port ein:%notebooklist%) - nil)) - "New Notebook") - (widget-insert " ") - (widget-create - 'link - :notify (lambda (&rest _ignore) (ein:notebooklist-reload nil t)) - "Reload List") - (widget-insert " ") - (widget-create - 'link - :notify (lambda (&rest _ignore) - (browse-url - (ein:url (ein:$notebooklist-url-or-port ein:%notebooklist%)))) - "Open In Browser") - (widget-insert "\n")) - -(defvar ein:jupyter-default-kernel) -(defun render-header* (url-or-port &rest _args) - "Render the header (for ipython>=3)." - (with-current-buffer (ein:notebooklist-get-buffer url-or-port) - (widget-insert - (format "Contents API %s (%s)\n\n" (ein:need-notebook-version url-or-port) url-or-port)) - - (let ((breadcrumbs (generate-breadcrumbs (ein:$notebooklist-path ein:%notebooklist%)))) - (dolist (p breadcrumbs) - (let ((url-or-port url-or-port) - (name (car p)) - (path (cdr p))) - (widget-insert " | ") - (widget-create - 'link - :notify (lambda (&rest _ignore) - (ein:notebooklist-open* url-or-port path nil nil - (lambda (buffer _url-or-port) - (pop-to-buffer buffer)))) - name))) - (widget-insert " |\n\n")) - - (let* ((url-or-port url-or-port) - (kernels (ein:list-available-kernels url-or-port))) - (if (null ein:%notebooklist-new-kernel%) - (setq ein:%notebooklist-new-kernel% (ein:get-kernelspec url-or-port (caar kernels)))) - (widget-create - 'link - :notify (lambda (&rest _ignore) - (ein:notebooklist-new-notebook url-or-port - ein:%notebooklist-new-kernel%)) - "New Notebook") - (widget-insert " ") - (widget-create - 'link - :notify (lambda (&rest _ignore) (ein:notebooklist-reload nil t)) - "Resync") - (widget-insert " ") - (widget-create - 'link - :notify (lambda (&rest _ignore) - (browse-url (ein:url url-or-port))) - "Open In Browser") - - (widget-insert "\n\nCreate New Notebooks Using Kernel:\n") - (let* ((radio-widget (widget-create 'radio-button-choice - :value (and ein:%notebooklist-new-kernel% (ein:$kernelspec-name ein:%notebooklist-new-kernel%)) - :notify (lambda (widget &rest _ignore) - (setq ein:%notebooklist-new-kernel% - (ein:get-kernelspec url-or-port (widget-value widget))) - (message "New notebooks will be started using the %s kernel." - (ein:$kernelspec-display-name ein:%notebooklist-new-kernel%)))))) - (if (null kernels) - (widget-insert "\n No kernels found.") - (dolist (k kernels) - (widget-radio-add-item radio-widget (list 'item - :value (car k) - :format (format "%s\n" (cdr k))))) - (unless (eq ein:jupyter-default-kernel 'first-alphabetically) - (widget-radio-value-set - radio-widget - (if (stringp ein:jupyter-default-kernel) - ein:jupyter-default-kernel - (symbol-name ein:jupyter-default-kernel)))) - (widget-insert "\n")))))) - -(defun render-opened-notebooks (url-or-port &rest _args) - "Render the opened notebooks section (for ipython>=3)." - ;; Opened Notebooks Section - (with-current-buffer (ein:notebooklist-get-buffer url-or-port) - (widget-insert "\n---------- All Opened Notebooks ----------\n\n") - (cl-loop for buffer in (ein:notebook-opened-buffers) - do (progn (widget-create - 'link - :notify (let ((buffer buffer)) - (lambda (&rest _ignore) - (condition-case err - (switch-to-buffer buffer) - (error - (message "%S" err) - (ein:notebooklist-reload))))) - "Open") - (widget-create - 'link - :notify (let ((buffer buffer)) - (lambda (&rest _ignore) - (if (buffer-live-p buffer) - (kill-buffer buffer)) - (run-at-time 1 nil #'ein:notebooklist-reload))) - "Close") - (widget-insert " : " (buffer-name buffer)) - (widget-insert "\n"))))) - -(defun ein:format-nbitem-data (name last-modified) - (let ((dt (date-to-time last-modified))) - (format "%-40s%+20s" name - (ein:format-time-string ein:notebooklist-date-format dt)))) - -(defun render-directory (url-or-port sessions) - ;; SESSIONS is a hashtable of path to (session-id . kernel-id) pairs - (with-current-buffer (ein:notebooklist-get-buffer url-or-port) - (widget-insert "\n------------------------------------------\n\n") - (ein:make-sorting-widget "Sort by" ein:notebooklist-sort-field) - (ein:make-sorting-widget "In Order" ein:notebooklist-sort-order) - (widget-insert "\n") - (cl-loop for note in (ein:notebooklist--order-data (ein:$notebooklist-data ein:%notebooklist%) - ein:notebooklist-sort-field - ein:notebooklist-sort-order) - for name = (plist-get note :name) - for path = (plist-get note :path) - for last-modified = (plist-get note :last_modified) - for type = (plist-get note :type) - ;; for opened-notebook-maybe = (ein:notebook-get-opened-notebook url-or-port path) - do (widget-insert " ") - if (string= type "directory") - do (progn (widget-create - 'link - :notify (let ((url-or-port url-or-port) - (name name)) - (lambda (&rest _ignore) - ;; each directory creates a whole new notebooklist - (ein:notebooklist-open* url-or-port - (concat (file-name-as-directory - (ein:$notebooklist-path ein:%notebooklist%)) - name) - nil nil - (lambda (buffer _url-or-port) (pop-to-buffer buffer))))) - "Dir") - (widget-insert " : " name) - (widget-insert "\n")) - if (and (string= type "file") (> (ein:notebook-version-numeric url-or-port) 2)) - do (progn (widget-create - 'link - :notify (let ((url-or-port url-or-port) - (path path)) - (lambda (&rest _ignore) - (ein:file-open url-or-port path))) - "Open") - (widget-insert " ------ ") - (widget-create - 'link - :notify (let ((_path path)) - (lambda (&rest _ignore) - (ein:file-delete url-or-port path))) - "Delete") - (widget-insert " : " (ein:format-nbitem-data name last-modified)) - (widget-insert "\n")) - if (string= type "notebook") - do (progn (widget-create - 'link - :notify (let ((url-or-port url-or-port) - (path path)) - (lambda (&rest _ignore) - (run-at-time 3 nil #'ein:notebooklist-reload) - (ein:notebook-open url-or-port path))) - "Open") - (widget-insert " ") - (if (gethash path sessions) - (widget-create - 'link - :notify (let ((url url-or-port) - (session (car (gethash path sessions)))) - (lambda (&rest _ignore) - (ein:kernel-delete--from-session-id url session #'ein:notebooklist-reload))) - "Stop") - (widget-insert "------")) - (widget-insert " ") - (widget-create - 'link - :notify (let ((path path)) - (lambda (&rest _ignore) - (ein:notebooklist-delete-notebook-ask - path))) - "Delete") - (widget-insert " : " (ein:format-nbitem-data name last-modified)) - (widget-insert "\n"))))) - -(defun ein:notebooklist-render (nb-version &optional restore-point) - "Render notebook list widget. -Notebook list data is passed via the buffer local variable -`ein:notebooklist-data'." - (kill-all-local-variables) - (let ((inhibit-read-only t)) - (erase-buffer)) - (remove-overlays) - - (let ((url-or-port (ein:$notebooklist-url-or-port ein:%notebooklist%))) - (ein:content-query-sessions url-or-port - (apply-partially #'ein:notebooklist-render--finish nb-version url-or-port restore-point) - nil))) - -(defun ein:notebooklist-render--finish (nb-version url-or-port restore-point sessions) - (cl-letf (((symbol-function 'render-header) (if (< nb-version 3) - #'render-header-ipy2 - #'render-header*))) - (mapc (lambda (x) (funcall (symbol-function x) url-or-port sessions)) - ein:notebooklist-render-order)) - (with-current-buffer (ein:notebooklist-get-buffer url-or-port) - (ein:notebooklist-mode) - (widget-setup) - (goto-char (or restore-point (point-min))))) - -;;;###autoload - -(defun ein:notebooklist-list-paths (&optional content-type) - "Return all files of CONTENT-TYPE for all sessions" - (apply #'append - (cl-loop for nblist in (ein:notebooklist-list) - for url-or-port = (ein:$notebooklist-url-or-port nblist) - collect - (cl-loop for content in (ein:content-need-hierarchy url-or-port) - when (or (null content-type) - (string= (ein:$content-type content) content-type)) - collect (ein:url url-or-port (ein:$content-path content)))))) - - -(defun ein:notebooklist-parse-nbpath (nbpath) - "Return `(,url-or-port ,path) from URL-OR-PORT/PATH" - (cl-loop for url-or-port in (ein:notebooklist-keys) - if (cl-search url-or-port nbpath :end2 (length url-or-port)) - return (list (substring nbpath 0 (length url-or-port)) - (substring nbpath (1+ (length url-or-port)))) - end - finally (ein:display-warning - (format "%s not among: %s" nbpath (ein:notebooklist-keys)) - :error))) - -(defsubst ein:notebooklist-ask-path (&optional content-type) - (ein:completing-read (format "Open %s: " content-type) - (ein:notebooklist-list-paths content-type) - nil t)) - -;;;###autoload - -(defun ein:notebooklist-load (&optional url-or-port) - "Load notebook list but do not pop-up the notebook list buffer. - -For example, if you want to load notebook list when Emacs starts, -add this in the Emacs initialization file:: - - (add-to-hook 'after-init-hook 'ein:notebooklist-load) - -or even this (if you want fast Emacs start-up):: - - ;; load notebook list if Emacs is idle for 3 sec after start-up - (run-with-idle-timer 3 nil #'ein:notebooklist-load) - -You should setup `ein:url-or-port' or `ein:default-url-or-port' -in order to make this code work. - -See also: -`ein:connect-to-default-notebook', `ein:connect-default-notebook'." - (ein:notebooklist-open* url-or-port)) - -;;; Login - -(defun ein:notebooklist-login--iteration (url-or-port callback errback token iteration response-status) - (ein:log 'debug "Login attempt #%d in response to %s from %s." - iteration response-status url-or-port) - (unless callback - (setq callback #'ignore)) - (unless errback - (setq errback #'ignore)) - (ein:query-singleton-ajax - (list 'notebooklist-login--iteration url-or-port) - (ein:url url-or-port "login") - ;; do not use :type "POST" here (see git history) - :timeout ein:notebooklist-login-timeout - :data (if token (concat "password=" (url-hexify-string token))) - :parser #'ein:notebooklist-login--parser - :complete (apply-partially #'ein:notebooklist-login--complete url-or-port) - :error (apply-partially #'ein:notebooklist-login--error url-or-port token - callback errback iteration) - :success (apply-partially #'ein:notebooklist-login--success url-or-port callback - errback token iteration))) - -;;;###autoload -(defun ein:notebooklist-open (url-or-port callback) - "This is now an alias for ein:notebooklist-login" - (interactive `(,(ein:notebooklist-ask-url-or-port) - ,(lambda (buffer _url-or-port) (pop-to-buffer buffer)))) - (ein:notebooklist-login url-or-port callback)) - -(make-obsolete 'ein:notebooklist-open 'ein:notebooklist-login "0.14.2") - -;;;###autoload -(defalias 'ein:login 'ein:notebooklist-login) - -(defun ein:notebooklist-ask-user-pw-pair (user-prompt pw-prompt) - "Currently used for cookie and jupyterhub additional inputs. If we need more than one cookie, we first need to ask for how many. Returns list of name and content." - (plist-put nil (intern (read-no-blanks-input (format "%s: " user-prompt))) - (read-no-blanks-input (format "%s: " pw-prompt)))) - -;;;###autoload -(defun ein:notebooklist-login (url-or-port callback &optional cookie-plist) - "Deal with security before main entry of ein:notebooklist-open*. - -CALLBACK takes two arguments, the buffer created by ein:notebooklist-open--success -and the url-or-port argument of ein:notebooklist-open*." - (interactive `(,(ein:notebooklist-ask-url-or-port) - ,(lambda (buffer _url-or-port) (pop-to-buffer buffer)) - ,(if current-prefix-arg (ein:notebooklist-ask-user-pw-pair "Cookie name" "Cookie content")))) - (unless callback (setq callback (lambda (_buffer _url-or-port)))) - - (when cookie-plist - (let* ((parsed-url (url-generic-parse-url (file-name-as-directory url-or-port))) - (domain (url-host parsed-url)) - (securep (string-match "^wss://" url-or-port))) - (cl-loop for (name content) on cookie-plist by (function cddr) - for line = (mapconcat #'identity (list domain "FALSE" (car (url-path-and-query parsed-url)) (if securep "TRUE" "FALSE") "0" (symbol-name name) (concat content "\n")) "\t") - do (write-region line nil (request--curl-cookie-jar) 'append)))) - - (let ((token (ein:notebooklist-token-or-password url-or-port))) - (cond ((null token) ;; don't know - (ein:notebooklist-login--iteration url-or-port callback nil nil -1 nil)) - ((string= token "") ;; all authentication disabled - (ein:log 'verbose "Skipping login %s" url-or-port) - (ein:notebooklist-open* url-or-port nil nil nil callback nil)) - (t (ein:notebooklist-login--iteration url-or-port callback nil token 0 nil))))) - -(defun ein:notebooklist-login--parser () - (goto-char (point-min)) - (list :bad-page (re-search-forward "= iteration 0) - (ein:notebooklist-login--error-1 url-or-port error-thrown response errback) - (setq token (read-passwd (format "Password for %s: " url-or-port))) - (ein:notebooklist-login--iteration url-or-port callback errback token (1+ iteration) response-status))) - ((request-response-header response "x-jupyterhub-version") - (let ((pam-plist (ein:notebooklist-ask-user-pw-pair "User" "Password"))) - (cl-destructuring-bind (user pw) - (cl-loop for (user pw) on pam-plist by (function cddr) - return (list (symbol-name user) pw)) - (ein:jupyterhub-connect url-or-port user pw callback)))) - (t (ein:notebooklist-login--success-1 url-or-port callback errback)))) - -(cl-defun ein:notebooklist-login--error - (url-or-port token callback errback iteration - &key - _data - symbol-status - response - error-thrown - &allow-other-keys - &aux (response-status (request-response-status-code response))) - (cond ((and response-status (< iteration 0)) - (setq token (read-passwd (format "Password for %s: " url-or-port))) - (ein:notebooklist-login--iteration url-or-port callback errback token (1+ iteration) response-status)) - ((and (eq response-status 403) (< iteration 1)) - (ein:notebooklist-login--iteration url-or-port callback errback token (1+ iteration) response-status)) - ((and (eq symbol-status 'timeout) ;; workaround for url-retrieve backend - (eq response-status 302) - (request-response-header response "set-cookie")) - (ein:notebooklist-login--success-1 url-or-port callback errback)) - (t (ein:notebooklist-login--error-1 url-or-port error-thrown response errback)))) - -;;;###autoload - -(defun ein:notebooklist-change-url-port (new-url-or-port) - "Update the ipython/jupyter notebook server URL for all the -notebooks currently opened from the current notebooklist buffer. - -This function works by calling `ein:notebook-update-url-or-port' -on all the notebooks opened from the current notebooklist." - (interactive (list (ein:notebooklist-ask-url-or-port))) - (unless (eql major-mode 'ein:notebooklist-mode) - (error "This command needs to be called from within a notebooklist buffer.")) - (let* ((current-nblist ein:%notebooklist%) - (old-url (ein:$notebooklist-url-or-port current-nblist)) - (new-url-or-port new-url-or-port) - (open-nb (ein:notebook-opened-notebooks #'(lambda (nb) - (equal (ein:$notebook-url-or-port nb) - (ein:$notebooklist-url-or-port current-nblist)))))) - (ein:notebooklist-open* new-url-or-port) - (cl-loop for x upfrom 0 by 1 - until (or (get-buffer (format ein:notebooklist-buffer-name-template new-url-or-port)) - (= x 100)) - do (sit-for 0.1)) - (dolist (nb open-nb) - (ein:notebook-update-url-or-port new-url-or-port nb)) - (kill-buffer (ein:notebooklist-get-buffer old-url)) - (ein:notebooklist-open* new-url-or-port nil nil nil (lambda (buffer _url-or-port) - (pop-to-buffer buffer))))) - -(defun ein:notebooklist-change-url-port--deferred (new-url-or-port) - (let* ((current-nblist ein:%notebooklist%) - (old-url (ein:$notebooklist-url-or-port current-nblist)) - (new-url-or-port new-url-or-port) - (open-nb (ein:notebook-opened-notebooks - (lambda (nb) - (equal (ein:$notebook-url-or-port nb) - (ein:$notebooklist-url-or-port current-nblist)))))) - (deferred:$ - (deferred:next - (lambda () - (ein:notebooklist-open* new-url-or-port) - (cl-loop until (get-buffer (format ein:notebooklist-buffer-name-template new-url-or-port)) - do (sit-for 0.1)))) - (deferred:nextc it - (lambda () - (dolist (nb open-nb) - (ein:notebook-update-url-or-port new-url-or-port nb)))) - (deferred:nextc it - (lambda () - (kill-buffer (ein:notebooklist-get-buffer old-url)) - (ein:notebooklist-open* new-url-or-port nil nil nil (lambda (buffer _url-or-port) - (pop-to-buffer buffer)))))))) - -;;; Generic getter - - - -(defun ein:get-url-or-port--notebooklist () - (when (ein:$notebooklist-p ein:%notebooklist%) - (ein:$notebooklist-url-or-port ein:%notebooklist%))) - - -;;; Notebook list mode - - -(defun ein:notebooklist-prev-item () (interactive) (move-beginning-of-line 0)) -(defun ein:notebooklist-next-item () (interactive) (move-beginning-of-line 2)) - -(defvar ein:notebooklist-mode-map - (let ((map (make-sparse-keymap))) - (set-keymap-parent map (make-composed-keymap widget-keymap - special-mode-map)) - (define-key map "\C-c\C-r" 'ein:notebooklist-reload) - (define-key map "\C-c\C-f" 'ein:file-open) - (define-key map "\C-c\C-o" 'ein:notebook-open) - (define-key map "p" 'ein:notebooklist-prev-item) - (define-key map "n" 'ein:notebooklist-next-item) - map) - "Keymap for ein:notebooklist-mode.") - -(easy-menu-define ein:notebooklist-menu ein:notebooklist-mode-map - "EIN Notebook List Mode Menu" - `("EIN Notebook List" - ,@(ein:generate-menu - '(("Reload" ein:notebooklist-reload) - ("New Notebook" ein:notebooklist-new-notebook) - ("New Notebook (with name)" - ein:notebooklist-new-notebook-with-name))))) - -(defun ein:notebooklist-revert-wrapper (&optional _ignore-auto _noconfirm _preserve-modes) - (ein:notebooklist-reload)) - -(define-derived-mode ein:notebooklist-mode special-mode "ein:notebooklist" - "IPython notebook list mode. -Commands: -\\{ein:notebooklist-mode-map}" - (set (make-local-variable 'revert-buffer-function) - 'ein:notebooklist-revert-wrapper)) - - -(provide 'ein-notebooklist) - -;;; ein-notebooklist.el ends here diff --git a/elpa/ein-20200127.249/ein-notebooklist.elc b/elpa/ein-20200127.249/ein-notebooklist.elc deleted file mode 100644 index 5cd25d75fb9737c00b4cf46095d9cab27c5d2d3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50742 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 - -;; This file is NOT part of GNU Emacs. - -;; ein-org.el 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. - -;; ein-org.el 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 ein-org.el. -;; If not, see . - -;;; Commentary: - -;; - -;;; Code: - -(require 'org) -(require 'ein-notebooklist) - -;; FIXME: Separate org-unrelated cores from the following code and -;; expose them as API in ein-link.el. - -(cl-defun ein:org-goto-link (notebook created - &key worksheet-index search &allow-other-keys) - (if created - (ein:log 'info "Linked notebook did not exist. Created a new one.") - (if worksheet-index - (ein:notebook-worksheet-open-ith notebook worksheet-index - #'pop-to-buffer) - (pop-to-buffer (ein:notebook-buffer notebook))) - (when search - (goto-char (point-min)) - (search-forward search nil t)))) - -;;;###autoload -(defun ein:org-open (link-path) - "Open IPython notebook specified by LINK-PATH. -This function is to be used for FOLLOW function of -`org-add-link-type'." - (let ((link (read link-path))) - (cl-destructuring-bind (&key url-or-port name &allow-other-keys) - link - (ein:notebook-open url-or-port name)))) - -;;;###autoload -(defun ein:org-store-link () - "Call `org-store-link-props' when in notebook buffer. -This function is to be used for `org-store-link-functions'. - -Examples:: - - ipynb:(:url-or-port 8888 :name \"My_Notebook\") - ipynb:(:url-or-port \"http://notebook-server\" :name \"My_Notebook\") - -Note that spaces will be escaped in org files. - -As how IPython development team supports multiple directory in -IPython notebook server is unclear, it is not easy to decide the -format for notebook links. Current approach is to use -S-expression based (rather verbose) serialization, so that -extending link spec without loosing backward compatibility is -easier. For the examples of link format in general, see Info -node `(org) External links' and Info node `(org) Search options'" - (ein:and-let* (((ein:worksheet-buffer-p)) - (notebook (ein:get-notebook)) - (name (ein:$notebook-notebook-path notebook)) - (link (list :url-or-port (ein:get-url-or-port) - :name name)) - (description name)) - (ein:aif (ein:notebook-worksheet-index notebook) - (unless (= it 0) - (plist-put link :worksheet-index it)) - (error "[ein] Cannot link to scratch sheet!")) - (when (region-active-p) - ;; FIXME: It does not work when selecting muli-line. - (plist-put link :search (buffer-substring-no-properties - (region-beginning) (region-end)))) - (org-store-link-props - :type "ipynb" - :link (let ((print-length nil) - (print-level nil)) - (format "ipynb:%S" link)) - :description description))) - -;;;###autoload -(eval-after-load "org" - '(if (fboundp 'org-link-set-parameters) - (org-link-set-parameters "ipynb" - :follow 'ein:org-open - :help-echo "Open ipython notebook." - :store 'ein:org-store-link) - (org-add-link-type "ipynb" :follow 'ein:org-open) - (add-hook 'org-store-link-functions 'ein:org-store-link))) - -;; The above expression is evaluated via loaddef file. At the moment, -;; org.el nor ein-org.el need not be loaded. When org-mode is used, -;; the above `progn' is executed but still ein-org.el is not loaded. -;; When `ein:org-open' or `ein:org-store-link' is called for opening -;; or storing ipynb link, ein-org.el is loaded finally. (When -;; ein-org.el is loaded the above expression is evaluated again, but -;; that's OK as the expression is idempotent.) - -(provide 'ein-org) - -;;; ein-org.el ends here diff --git a/elpa/ein-20200127.249/ein-org.elc b/elpa/ein-20200127.249/ein-org.elc deleted file mode 100644 index ed7c7f1d477bb198e37647ff02c720b413069442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3314 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 - -;; This file is NOT part of GNU Emacs. - -;; ein-python.el 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. - -;; ein-python.el 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 ein-python.el. -;; If not, see . - -;;; Commentary: - -;; - -;;; Code: - -(require 'python) - -(require 'ein-worksheet) - -(defvar ein:python-block-start - (rx line-start - symbol-start - (or "def" "class" "if" "elif" "else" "try" - "except" "finally" "for" "while" "with") - symbol-end)) - -(defun ein:python-indent-calculate-indentation--around (orig &rest args) - "False if there is no python block yet in this cell." - (condition-case _ - (ein:and-let* ((cell (ein:worksheet-get-current-cell)) - (beg (ein:cell-input-pos-min cell)) - (p (point)) - ((< beg (point)))) - (if (not (search-backward-regexp ein:python-block-start beg t)) - 0 - (goto-char p) - (apply orig args))) - (error (apply orig args)))) - -(advice-add 'python-indent--calculate-indentation :around #'ein:python-indent-calculate-indentation--around) - -;; (defadvice python-indent-calculate-indentation -;; (around ein:python-indent-calculate-levels activate) -;; "Hack `python-indent-calculate-levels' to reset indent per cell. - -;; Let's say you have a notebook something like this:: - -;; In [1]: -;; def func(): -;; pass - -;; In [2]: -;; something[] - -;; Here, ``[]`` is the cursor position. When you hit the tab here, -;; you don't expect it to indent. However, python.el tries to follow -;; the indent of ``func()`` then you get indentation. This advice -;; workaround this problem. - -;; Note that this workaround does not work with the MuMaMo based -;; notebook mode." -;; (if (ein:ein-block-start-p) -;; ad-do-it -;; 0)) - - -(provide 'ein-python) - -;;; ein-python.el ends here diff --git a/elpa/ein-20200127.249/ein-python.elc b/elpa/ein-20200127.249/ein-python.elc deleted file mode 100644 index c36fa793907ed04f31c35b8bb49ba0f55f833b58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1242 zcmbtTOK%e~5Z)tQ)H9C*3<-j)sH5y|9<)I`R28WbH;_1VL+f~*tX0QeY;V#aemrAu zT7f7B)K%=vd@~-;X3ded?3(3o%2n8oA$}Ft8u|g}z#{E24Ho{dv zr376&u@XP1L$mG2!T6;T78V!<8p|z|TSZrbL8+N_MyRDdK&!D1Xj$?SZf;2r``O`N zF-nawly<XGNBJ!LJOJ!K4FchJSB_;ZSc~ zh4bM;k&QN&w&L8)AWPz2$ro#Cyyd8MB6F$PC9#eg2c2(4asH+#dhd?H#w4}2D1PE8 z+LbXg=E;GMVl55?#_5<6Fe&911iXy;DAx^cmB4M#NGF! z96nNMIfw<0gJV5NAf>OX3JJrOJ5Lqo$;G&o{imTgDh0Lh^0)egD!FomQOO!fv5zef zC`t%5x_-MX0J}ma3ZXBt#B`a*C#RtGDGN - -;; This file is NOT part of GNU Emacs. - -;; ein-pytools.el 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. - -;; ein-pytools.el 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 ein-pytools.el. If not, see . - -;;; Commentary: - -;; - -;;; Code: - -;; for `ein:pytools-pandas-to-ses' -(declare-function ses-yank-tsf "ses") -(declare-function ses-command-hook "ses") - -(require 'ein-kernel) -(require 'ein-notebook) -(require 'ein-shared-output) - -(defun ein:goto-file (filename lineno &optional other-window) - "Jump to file FILEAME at line LINENO. -If OTHER-WINDOW is non-`nil', open the file in the other window." - (funcall (if other-window #'find-file-other-window #'find-file) filename) - (goto-char (point-min)) - (forward-line (1- lineno))) - -(defun ein:goto-marker (marker &optional other-window) - (funcall (if other-window #'pop-to-buffer #'switch-to-buffer) - (marker-buffer marker)) - (goto-char marker)) - -(defcustom ein:propagate-connect t - "Set to `t' to connect to the notebook after jumping to a buffer." - :type '(choice (const :tag "Yes" t) - (const :tag "No" nil)) - :group 'ein) - -(defun ein:pytools-setup-hooks (kernel notebook) - (push (cons #'ein:pytools-load-safely kernel) - (ein:$kernel-after-start-hook kernel))) - -(defun ein:pytools-wrap-hy-code (code) - (format "__import__('hy').eval(__import__('hy').read_str('''%s'''))" code)) - -(defun ein:pytools-load-safely (kernel) - (with-temp-buffer - (let ((pytools-file (format "%s/%s" ein:source-dir "ein_remote_safe.py"))) - (insert-file-contents pytools-file) - (ein:kernel-execute - kernel - (buffer-string))))) - -(defun ein:pytools-reinject () - "Re-send ein's pytools code to the current kernel. - -If the kernel is reset by the notebook server then it may become -necessary to call this command to ensure pytools continue -working." - (interactive) - (ein:pytools-load-safely (ein:get-kernel-or-error))) - -(defun ein:pytools-add-sys-path (kernel) - (ein:kernel-execute - kernel - (format "__import__('sys').path.append('%s')" ein:source-dir))) - -(defun ein:set-buffer-file-name (nb msg-type content -not-used-) - (let ((buf (ein:notebook-buffer nb))) - (ein:case-equal msg-type - (("stream" "output") - (with-current-buffer buf - (setq buffer-file-name - (expand-file-name - (format "%s" (ein:$notebook-notebook-name nb)) - (plist-get content :text)))))))) - -(defun ein:pytools-get-notebook-dir (packed) - (cl-multiple-value-bind (kernel notebook) packed - (ein:kernel-execute - kernel - (format "print(__import__('os').getcwd(),end='')") - (list - :output (cons - #'ein:set-buffer-file-name - notebook))))) - - -;;; Tooltip and help - -;; We can probably be more sophisticated than this, but -;; as a hack it will do. -(defun ein:pytools-magic-func-p (fstr) - (string-prefix-p "%" fstr)) - -(defun ein:pytools-request-tooltip (kernel func) - (interactive (list (ein:get-kernel-or-error) - (ein:object-at-point-or-error))) - (unless (ein:pytools-magic-func-p func) - (if (>= (ein:$kernel-api-version kernel) 3) - (ein:kernel-execute - kernel - (format "__ein_print_object_info_for(%s)" func) - (list - :output (cons - (lambda (name msg-type content -metadata-not-used-) - (ein:case-equal msg-type - (("stream" "display_data") - (ein:pytools-finish-tooltip name (ein:json-read-from-string (plist-get content :text)) nil)))) - func))) - (ein:kernel-object-info-request - kernel func (list :object_info_reply - (cons #'ein:pytools-finish-tooltip nil)))))) - -(declare-function pos-tip-show "pos-tip") -(declare-function popup-tip "popup") - -(defun ein:pytools-finish-tooltip (-ignore- content -metadata-not-used-) - ;; See: Tooltip.prototype._show (tooltip.js) - (let ((tooltip (ein:kernel-construct-help-string content)) - (defstring (ein:kernel-construct-defstring content)) - (name (plist-get content :name))) - (if tooltip - (cond - ((and window-system (featurep 'pos-tip)) - (pos-tip-show tooltip 'ein:pos-tip-face nil nil 0)) - ((featurep 'popup) - (popup-tip tooltip)) - (t (when (stringp defstring) - (message (ein:trim (ansi-color-apply defstring)))))) - (ein:log 'info "no info for %s" name)))) - -(defun ein:pytools-request-help (kernel func) - (interactive (list (ein:get-kernel-or-error) - (ein:object-at-point-or-error))) - (ein:kernel-execute kernel - (format "%s?" func) ; = code - nil ; = callbacks - ;; It looks like that magic command does - ;; not work in silent mode. - :silent nil)) - -(defun ein:pytools-request-tooltip-or-help (&optional pager) - "Show the help for the object at point using tooltip. -When the prefix argument ``C-u`` is given, open the help in the -pager buffer. You can explicitly specify the object by selecting it." - (interactive "P") - (call-interactively (if pager - #'ein:pytools-request-help - #'ein:pytools-request-tooltip))) - - -;;; Source jump - -(defvar ein:pytools-jump-stack nil) - -(defvar ein:pytools-jump-to-source-not-found-regexp - (ein:join-str "\\|" - (list "^WARNING: .*" - "^Traceback (most recent call last):\n" - "^.*\n]+>\n" - "^\n"))) - -(defun ein:pytools-jump-to-source-1 (packed msg-type content -metadata-not-used-) - (ein:log 'debug "msg-type[[%s]] content[[%s]]" msg-type content) - (cl-destructuring-bind (kernel object other-window notebook) packed - (ein:log 'debug "object[[%s]] other-window[[%s]]" object other-window) - (ein:case-equal msg-type - (("stream" "display_data") - (ein:aif (or (plist-get content :text) (plist-get content :data)) - (if (string-match ein:pytools-jump-to-source-not-found-regexp it) - (ein:log 'info - "Jumping to the source of %s...Not found" object) - (cl-destructuring-bind (filename &optional lineno &rest ignore) - (split-string it "\n") - (setq lineno (string-to-number lineno) - filename (ein:kernel-filename-from-python kernel filename)) - (ein:log 'debug "filename[[%s]] lineno[[%s]] ignore[[%s]]" - filename lineno ignore) - (if (not (file-exists-p filename)) - (ein:log 'info - "Jumping to the source of %s...Not found" object) - (let ((ein:connect-default-notebook nil)) - ;; Avoid auto connection to connect to the - ;; NOTEBOOK instead of the default one. - (ein:goto-file filename lineno other-window)) - ;; Connect current buffer to NOTEBOOK. No reconnection. - (ein:connect-buffer-to-notebook notebook nil t) - (push (point-marker) ein:pytools-jump-stack) - (ein:log 'info "Jumping to the source of %s...Done" object)))))) - (("pyerr" "error") - (ein:log 'info "Jumping to the source of %s...Not found" object))))) - -(defun ein:pytools-jump-to-source (kernel object &optional - other-window notebook) - (ein:log 'info "Jumping to the source of %s..." object) - (let ((last (car ein:pytools-jump-stack))) - (if (ein:aand last (eql (current-buffer) (marker-buffer it))) - (unless (equal (point) (marker-position last)) - (push (point-marker) ein:pytools-jump-stack)) - (setq ein:pytools-jump-stack (list (point-marker))))) - (ein:kernel-execute - kernel - (format "__ein_find_source('%s')" object) - (list - :output - (cons - #'ein:pytools-jump-to-source-1 - (list kernel object other-window notebook))))) - -(defun ein:pytools-find-source (kernel object &optional callback) - "Find the file and line where object is defined. -This function mostly exists to support company-mode, but might be -useful for other purposes. If the definition for object can be -found and when callback isort specified, the callback will be -called with a cons of the filename and line number where object -is defined." - (ein:kernel-execute - kernel - (format "__ein_find_source('%s')" object) - (list - :output - (cons - #'ein:pytools-finish-find-source - (list kernel object callback))))) - -(defun ein:pytools-finish-find-source (packed msg-type content -ignored-) - (cl-destructuring-bind (kernel object callback) packed - (if (or (string= msg-type "stream") - (string= msg-type "display_data")) - (ein:aif (or (plist-get content :text) (plist-get content :data)) - (if (string-match ein:pytools-jump-to-source-not-found-regexp it) - (ein:log 'info - "Source of %s not found" object) - (cl-destructuring-bind (filename &optional lineno &rest ignore) - (split-string it "\n") - (if callback - (funcall callback - (cons (ein:kernel-filename-from-python kernel filename) - (string-to-number lineno))) - (cons (ein:kernel-filename-from-python kernel filename) - (string-to-number lineno)))))) ;; FIXME Generator? - (ein:log 'info "Source of %s notebook found" object)))) - -(defun ein:pytools-jump-to-source-command (&optional other-window) - "Jump to the source code of the object at point. -When the prefix argument ``C-u`` is given, open the source code -in the other window. You can explicitly specify the object by -selecting it." - (interactive "P") - (if poly-ein-mode - (cl-letf (((symbol-function 'xref--prompt-p) #'ignore)) - (if other-window - (call-interactively #'xref-find-definitions-other-window) - (call-interactively #'xref-find-definitions))) - (let ((kernel (ein:get-kernel)) - (object (ein:object-at-point))) - (cl-assert (ein:kernel-live-p kernel) nil "Kernel is not ready.") - (cl-assert object nil "Object at point not found.") - (ein:pytools-jump-to-source kernel object other-window - (when ein:propagate-connect - (ein:get-notebook)))))) - -(defun ein:pytools-jump-back-command (&optional other-window) - "Go back to the point where `ein:pytools-jump-to-source-command' -is executed last time. When the prefix argument ``C-u`` is -given, open the last point in the other window." - (interactive "P") - (if poly-ein-mode - (call-interactively #'xref-pop-marker-stack) - (when (ein:aand (car ein:pytools-jump-stack) - (equal (point) (marker-position it))) - (setq ein:pytools-jump-stack (cdr ein:pytools-jump-stack))) - (ein:aif (car ein:pytools-jump-stack) - (ein:goto-marker it other-window) - (ein:log 'info "Nothing on stack.")))) - -(define-obsolete-function-alias - 'ein:pytools-eval-string-internal - 'ein:shared-output-eval-string "0.1.2") - -(defun ein:pytools-doctest () - "Do the doctest of the object at point." - (interactive) - (let ((object (ein:object-at-point))) - (ein:shared-output-eval-string (ein:get-kernel) - (format "__ein_run_docstring_examples(%s)" object) - t))) - -(defun ein:pytools-whos () - "Execute ``%whos`` magic command and popup the result." - (interactive) - (ein:shared-output-eval-string (ein:get-kernel) "%whos" t)) - -(defun ein:pytools-hierarchy (&optional ask) - "Draw inheritance graph of the class at point. -hierarchymagic_ extension is needed to be installed. -You can explicitly specify the object by selecting it. - -.. _hierarchymagic: https://github.com/tkf/ipython-hierarchymagic" - (interactive "P") - (let ((object (ein:object-at-point))) - (when ask - (setq object (read-from-minibuffer "class or object: " object))) - (cl-assert (and object (not (equal object ""))) - nil "Object at point not found.") - (ein:shared-output-eval-string (ein:get-kernel) (format "%%hierarchy %s" object) t))) - -(defun ein:pytools-pandas-to-ses (dataframe) - "View pandas_ DataFrame in SES_ (Simple Emacs Spreadsheet). -Open a `ses-mode' buffer and import DataFrame object into it. - -SES_ is distributed with Emacs since Emacs 22, so you don't need -to install it if you are using newer Emacs. - -.. _pandas: http://pandas.pydata.org -.. _SES: http://www.gnu.org/software/emacs/manual/html_node/ses/index.html" - (interactive (list (read-from-minibuffer "pandas DataFrame " - (ein:object-at-point)))) - (let ((buffer (get-buffer-create - (generate-new-buffer-name "*ein:ses pandas*")))) - ;; fetch TSV (tab separated values) via stdout - (ein:kernel-request-stream - (ein:get-kernel) - (concat dataframe ".to_csv(__import__('sys').stdout, sep='\\t')") - (lambda (tsv buffer) - (with-current-buffer buffer - (cl-flet ((y-or-n-p - (prompt) - (if (string-prefix-p "Yank will insert " prompt) - t - (error "Unexpected prompt: %s" prompt)))) - ;; Import DataFrame as TSV - (ses-yank-tsf tsv nil)) - ;; Force SES to update (equivalent to run `post-command-hook'). - (ses-command-hook))) - (list buffer)) - ;; Open `ses-mode' buffer - (with-current-buffer buffer - (ses-mode)) - (pop-to-buffer buffer))) - -(defun ein:pytools-export-buffer (buffer format) - "Export contents of notebook using nbconvert_ to user-specified format -\(options will depend on the version of nbconvert available\) to a new buffer. - -Currently EIN/IPython supports exporting to the following formats: - - - HTML - - JSON (this is basically the same as opening the ipynb file in a buffer). - - Latex - - Markdown - - Python - - RST - - Slides - -.. _nbconvert: http://ipython.org/ipython-doc/stable/notebook/nbconvert.html" - (interactive (list (read-buffer "Buffer: " (current-buffer) t) - (ein:completing-read "Export format: " - (list "html" - "json" - "latex" - "markdown" - "python" - "rst" - "slides")))) - (let* ((nb (car (ein:notebook-opened-notebooks - #'(lambda (nb) - (equal (buffer-name (ein:notebook-buffer nb)) - buffer))))) - (json (json-encode (ein:notebook-to-json nb))) - (name (format "*ein %s export: %s*" format (ein:$notebook-notebook-name nb))) - (buffer (get-buffer-create name))) - (if (equal format "json") - (with-current-buffer buffer - (erase-buffer) - (insert json) - (json-pretty-print (point-min) (point-max))) - (ein:kernel-request-stream - (ein:get-kernel) - (format "__ein_export_nb(r'%s', '%s')" - json - format) - (lambda (export buffer) - (with-current-buffer buffer - (erase-buffer) - (insert export))) - (list buffer))) - (switch-to-buffer buffer))) - - - -;;;; Helper functions for working with matplotlib - -(defun ein:pytools-set-figure-size (width height) - "Set the default figure size for matplotlib figures. Works by setting `rcParams['figure.figsize']`." - (interactive "nWidth: \nnHeight: ") - (ein:shared-output-eval-string (ein:get-kernel) - (format "__ein_set_figure_size('[%s, %s]')" width height) - nil)) - -(defun ein:pytools-set-figure-dpi (dpi) - "Set the default figure dpi for matplotlib figures. Works by setting `rcParams['figure.figsize']`." - (interactive "nFigure DPI: ") - (ein:shared-output-eval-string (ein:get-kernel) - (format "__ein_set_figure_dpi('%s')" dpi) - nil)) - -(defun ein:pytools-set-matplotlib-parameter (param value) - "Generically set any matplotlib parameter exposed in the matplotlib.pyplot.rcParams variable. Value is evaluated as a Python expression, so be careful of side effects." - (interactive - (list (completing-read "Parameter: " (ein:pytools--get-matplotlib-params) nil t) - (read-string "Value: " nil))) - (let* ((split (cl-position ?. param)) - (family (cl-subseq param 0 split)) - (setting (cl-subseq param (1+ split)))) - (ein:shared-output-eval-string (ein:get-kernel) - (format "__ein_set_matplotlib_param('%s', '%s', '%s')" family setting value) - nil))) - -(defun ein:pytools--get-matplotlib-params () - (ein:shared-output-eval-string (ein:get-kernel) - (format "__ein_get_matplotlib_params()") - nil) - (with-current-buffer (ein:shared-output-create-buffer) - (ein:wait-until #'(lambda () - (slot-value (slot-value *ein:shared-output* :cell) :outputs)) - nil - 5.0) - (let ((outputs (first (slot-value (slot-value *ein:shared-output* :cell) :outputs)))) - (ein:json-read-from-string (plist-get outputs :text))))) - -(defun ein:pytools--estimate-screen-dpi () - (let* ((pixel-width (display-pixel-width)) - (pixel-height (display-pixel-height)) - (in-width (/ (display-mm-width) 25.4)) - (in-height (/ (display-mm-height) 25.4))) - (values (/ pixel-width in-width) (/ pixel-height in-height)))) - -(defun ein:pytools-matplotlib-dpi-correction () - "Estimate the screen dpi and set the matplotlib rc parameter 'figure.dpi' to that value. Call this command *after* importing matplotlib into your notebook, else this setting will be overwritten after the first call to `import matplotlib' Further testing is needed to see how well this works on high resolution displays." - (interactive) - (multiple-value-bind (dpi-w dpi-h) (ein:pytools--estimate-screen-dpi) - (let ((dpi (floor (/ (+ dpi-w dpi-h) 2.0)))) - (ein:log 'info "Setting matplotlib scaling to: %s dpi" dpi) - (ein:pytools-set-figure-dpi dpi)))) - - - -(provide 'ein-pytools) - -;;; ein-pytools.el ends here diff --git a/elpa/ein-20200127.249/ein-pytools.elc b/elpa/ein-20200127.249/ein-pytools.elc deleted file mode 100644 index af9c4cbf42946b951b6afa76b1d1dab827b13a55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16850 zcmcgz{d3z!lGTqAT~Q@>b>28md?PAaeORCf@Jp628~HQwuH)pQ?7C8+LqQ}cAtnI^ z04;0l{`h;ZX9fT%N^#A>pBxx8&%4^pea^*bC&XhkIsd$ow?Gu4ly%tzyCHgxuJCUPDe zJ$m*`_0Rmo?`Ig|u5|B51C_?A??>t+P@~wN>BLMWRe_(3!XQ!E85(*G-7iG&UjI0N z_x)F?RJKkovcT!bgFscgjd~q_?poJ#`GbF6`JjP=dZ(&>N`hafVG^hyjGWg&5(Ojq z3E2fFar{~iQV1&;IPo-_OtV+Y+per1y7h+o>vTL(S*(}s>9glg9(?me`I#DpQJ|hb zd-3GOx3$W%q5AfRub+JHynOcJ@wYD(mYK_N9EGFJU8q73L7IVn1{R9HV|*m)Jd6hM zdF{U|TZ3Tek3v6Hn;7N6X`IE5Xv+FeTl|KmV9C&D6stc|x8lf$lJOyqe#o|}E@Qrp zGP`B*BSDDLT3^GAZ9G11tA1#IU4$XRet!4f&|8_0LsJwcO73tL=ru zANvV}tuO)e>mA1J<>PMXvCH6BFnC$WnbDZ1PU49JVVz8eL-dxy0Q+a96S|eT{7N-2 z*!9D9TO9=%m-RT?-nKf(E+%NY)jx~FexSB60vP^5=AWwSk3m{h z+4k(o7jacVpSE%9X%bH-(#<8wPcE`J9;HqiWYdXr2JKF{0!HiYyr3%-@AAW2_-ZY$ zb)&yP!p;Ar!nE<%={DT@^5brmN&~HO-P<_huH4|~*AJiVnDsD^U3b4&KX{}1BL_G( z?Pm^E_;Y>H!Hh5jPg?N29U<|@N&R6kx=@sb6Ax7yo>HyPlQ=qcaLlC$UY0k6Keq!R2ol{e&7tkMA=~on3(lC4Wb~SYDU4i zy{)Qt_>`S0)CFoL3gSXDyn0J;#FO7d({*><7=a_0@j4uha{KaLDJ#&8bZ-NCT*ZKT zNiYW3_PE@&$wd{eEe(=PLk!&)Rv3;4BR5JDybb!(EU^7(_xMUR#d_WSrusgBio>7b zp3T%w5@rm?04t>p_oqoh#nDfM7XwK1ypaJQItgGU>ICXnHhByTu8`*<6=rJeU%*@T z<8e>{LIi2*C%A!L6iz;)L&vo-T`NuoQ96a6F)|m&97fZiavmqI0U(!g-mXr9dHg~E zDuge-O>qGzbjrpyE^8Fep9Yz6YfhXvL6XEt0nqNf=KeN;<7#^W+i=p0)S39;E^{gh zYoRxxAA#9e!!a^s=OtC+;oSOJT_~Fox`K7FvzkAFYaDFRkZ47%%VWd}8Qs##A{vJ= zMki{VYK#yubEO@?n*(MwaI|@~m)CA}BaFS%^&0dn%@3D&47Q+;Ti#N#VrXTi}T zv4%%u0#@B=tJ=0G(!8m0aaCAD;E!Qhnyge+@OA$U!E$C3^^2%6kr1sf+1#z%C6TkmD7+@8|cicMsWaYsjJV?DM%K>@T+iS8eSc@AE zAFtmvLeuvt!8FH#KY>qm9BZ<+mqkEfXFLIq&Sp?MrnX^_{qw=r_Ab=z3t)Ct9cban zvlc1YwR0Z(r(xe2PNTjvp~VcbBnv$ZFDQ*(&Ljzj;al8L-MHRkkgf)hKRtOCN(aW^ z*rV>JvAp&rgw|?Wj;B5NO&*GTDc%+1!Rbk$uW%$c(t&RUgfiTdHy0diQ$hs3)u5i%$rly)YWa zJ?O*MMp{~DVg@<%Wz-l4nLqF|e+E7@>>1eT4wrb`w6LM23;`Olq%oxmm4?GMs+{*D zy;=h=Y07oAT3RYe|+=r%Q)MvqHV%MEwHh#8fP&~B+-qPPN@H4QIiJHWzLp(9xPI?xf z>!sHhoS~0MgewgX5KjGZYmYXOo%DF}-y&~cWv6o}a30+UXa@U$#%OFOMM z*+{>Xpi3R3jKSdu|5cWNN4~Lo; zo56r3r@;vD%AthWbxd}~dC~suG8OT^48b@|Nm}R-gC^FEU|RJ&b)yGMvJDVJERK8@ zrZxvzGx|`*GJC-oTEU8&oq8Mne^)iU20UX11R3$e+(2V!4?4aC|arRK1I0b?j{C6yKB(}-xO!a z;4z*%n>bItFR0&G-CEt06>9XUmFUr+J8$P;rCA$|8eYddfdN3{?b0f~F~6Jm(i6n# z`pg_xw>il>J2Nfs-0e0R_0_v;H~GWuMyosB>dl>Ex(H-Mpt#yt-J#b3Eon7M!)r8U z$Q+(@*u1lg#;w(z)w|sx=!sk3#&P=tT!#)eI&!MpXx7!L^YErq%(LmjgK;`|RHGvT z2{36!QI5$OT-?rcUCZa12Qw|y&1M&b}WP7WO`ciEEpZK zo-3D#msL><=2mxq`e`GDe=(Q!5e%Y<|Fa3GXgWSYdNm$87Gjasg?B7s^trAVO~dxC zubIBf6D<$mDtcIQ>5RwJ0a>GsE0DeFpZ$irH6ycwVN%;9H0ek*f+-~6Hqu(H_5ynf zf@I=};SEM%X1Pa|5TfY|ldM`qWfy9b)tael6e>wfkZ*aV8+~px!?w4{ZB6|0B$B;s z1gA6L=0G>i<<~;$iGg$Q7Bm&vj8d<2W`<_*%)GW7+8Co^EPuY$Vb`u@=U)bBi5xLh9FKZ9}>fF@dFV> zy>*-T?N0C^8CkZ`7d}B;Aeo=W-qJBHH@NAdagxZ4gzfUf5Ag)g96kCF5bU;?%SD%N z2QdnhNfK?}=ng+v{g0Ik3$Rq`4@-&Or+Hvz$e1+r{7~T3I=kjpwUPXho@)ABL@}a9*5HrvCC}lO{NJX5u`O`lF!namW;HLNZjnmRs?fppcrE$ zv`)xgn6h6@%EMr=E0ZGWldI=Qzq50mz^1X@fTppg1a!i?#n3_q2DZzhsFXx;X*<#i zp6g@y?sXPs$7WMi03%_$Od%WIMi=m;(D7L%w)dC)%6lmc#?6#UY51?yzS+U-wB6Qk z=O#+Ga^_dkVU2c@f!4WCP~Li5DDOw}l=owjCE02N2Dl3-@8PE;X{21pSl64iB_5J) z@sQsdPF6q0X<@L;tWc%k0-UmO<+J~@Z3q?y-1 zBXV8+gxhRBTw299DJ{MvijND zL&=+<+crltcg>JbPiSR6R1j^u`SotJGFPYEl{Mat=)DIWdoSoclI=Uq$B1p$v#}DY zT1%fHUzgb0yV8*PVd!Fs5;L?6`(MHcw0B2dWfh#|dv zZe>wT#=B=mD({vVnPn)*o#|~upvhux0`!#J$fvN3di!tOsz*30`@1)c$A$`Q z^G`HwW-wX*Qujbd^kHL7cIt72En{GWy8S7>+TEeVjeBec^UW;_=I^>7=Gc_MW10u% zI@1+Ma&nu?UdKVRJG{}2K0rgA4Q;8bIIKSgkLB0S!ccru1W0&+>8GpagbiJm08>Z&~^GzvxMWT zyRfRfNe*HBG{_eDDQe(?no=)+J7rm!Pg%R7Nc^1y+OVFw>h)!G+7+}0oRwpC1IfEA%3UdY^_0mZVA%KTG zO4Dl7y-wX~({-s&lWr15C}A)o>WL|{IX>PvKZ{fB9mrNKV;m`IVbG*^g6N5nvqO}Ab?TpwD1o$S5hWp6GP}ap zuiM--t1>LqFcfO$*6(#nlkhxGJx=^{mHL-An}s(&eGMa|(ACE)z?ug3u5qN(Zr$pK!YFRab~a)H zNl`SIde5`z8mkIFuXFNPMkb5hmMFA)NuklLSmeA?7kk!YgkZLSMK1}XWN~Q+3aKmi zi)!@>cS$WYhO=aKf?B%KSrq*UCvpz&^A2ZXnI60L@ z7*^im{QSIj8clg^FO7%UIi9{3u!?>USc3)KJIltSUIaeA2Py0!)eyX`@!XX*pgUzA zn&tFx^Xz;`nHw9hn!mP2XqLJd#j=ggcl653kA&;y<(ICj$bFfbL$#xYY@@XKqZLV@ zKI!zagzzm3>M3>kR&__T4ujJ}#V#IC8183xC$VIx=aMTWf?2I)aj&1gnJH${wR34U zK=l%qF_?U@+3jYmXTt2W^o`LPOh2Dhy}`)AR$ein=M3v@H8;Vc=<0%-wvjWz{tO?9 zCu<6>g<48oH)PwEwdRN-3WsMHj?i|yS5Oo`{pd%pk)=Y?N*95`_>oX%(W0vUJ;KH* za_P`s-Q|I;2f$oY=K{AnSvnN=&J)H@Nu4vR2BZ}ebM#u&3%yQdquuvfs8rFFEQ`@e zFICCfstYSy06LOtYY_+1xwDi`A{F0d~WykE0ssO{uMdQC(mB&J^N1fgKZX* zJe@->Z2}GB(I`eG%BdMndQhn-M}7UnH_!R~*Q0M=s4XdY1fYVC6JPO1^(Hxc_1C0^&Cd?mOs8h?ilYsMEtD>$Y0+d{lKrIQ8)-vjW+q5 zb2u^XQsBh8PH><-xNHby&x(I9zw>%1(c-XKY^c03d+i9c=F9HD+99)T;w6{YP+uza zhWi0Hi=sSTHY%Ih;xBQwT`C)OJ72FO1V_X@T>FgopoqwL;V+kx4@@m8I1SBorO!{a zX#@kw#KCY8-9LxB*4xnV$|P4_8_Cple0M(3h=z^W`Uh(^Nrq)${g~y9b2WQbP`VIR z%5u!qiB$PjE-eac?XjS3bW(y@2m^dW2nFLCUH-~9G7MD8lV=`jZ4+iI^=&~UIi8s| zFku!3EH0R*}HSlKvcXUe1 zO+(Z19LfwB&zUH`-29IbOsy;!Nl%ZY$B}GpqC{aAI{u2D9psgDXZqbCx9RS?7+Lg^ zBRx>vDEeAPi&YVKbno6(A{|V^f1^a%8w83kEk~gZl%owr@UsZ}(U^As2jkz8_|Tu- zITX3&v2U~GF+CAI)%x}LyJuEnZhK#S#W!M%N5j*=x-ZI_H=%MNi-00ASOVTKAg8BW zF0>QWmwH;Wny64NCa;6l)Ia>u6b=#Kg+#^_MlztY^o_^kBcaudK!uni@a%&cb0ZPX zK7|id0bXtEXX*8tTnq&-a@gTw1>^vu!5H*P2n|LYCkbV#m|fvpM)l6}$`9SDyy!&+ zjJ4AB;ml_MP=!Gu5&R> zgdiA&thPqi9AjnWb0}=?dz~B#FG1UPR#pOQ9GuIo?QZGtkDZCtM+AUslmkxf7}uwvR)xFy+Y}h2C)Ut)$x;cy6pGd zN3GE`%4W)}z>#EPAUjNLG)RUdH@RpQDXb9hjnL!{`T@cW^QK3N91;S7T3ub)LPjXA zzlaRX0?$=o@mW{aPddmahL8eYQNsj-$kAA6SGXy8!j_`_wYk#R)oHf)o?o3dhsicu zx0kuG(`@05OMLD=HuIf?Z-Wuu_ob84zqP9Z9GSEDVNRJB44m>kv*+d-j>qO1UaQt* zCV}rKI5=zC@w9z`7Rscam{|%C>X|Cel<68`=qx^}q>muj;*xdKXfN;I;$8DhV^mE& zLR^8HftMz{Q#QNq>fF#rRZc+J)I_Ki27`q!SbS4>J36%a5P<#Qh)?@^I#DlAKqGia7gHGApq!hsZUgwHNI+< zZ_De*0gC0_$U}l6*4Hmsv7>V?o^vKkI0J)=w0Ss+!Oc7v6PsSMl~BqSFf2e9HV&yC z8IMs+SfyA32_R!Kd=ACb8I@oeD{5IAu9p(SsN=wU)x>^SCejCQ=sNi>wqp=|yYm0! CjtI^G diff --git a/elpa/ein-20200127.249/ein-skewer.el b/elpa/ein-20200127.249/ein-skewer.el deleted file mode 100644 index ecc4976f..00000000 --- a/elpa/ein-20200127.249/ein-skewer.el +++ /dev/null @@ -1,98 +0,0 @@ -;;; -*- mode: emacs-lisp; lexical-binding: t; -*- -;;; ein-skewer.el --- Cell module - -;; (C) 2016 - John M Miller - -;; Author: John M Miller - -;; This file is NOT part of GNU Emacs. - -;; ein-skewer.el 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. - -;; ein-skewre.el 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 ein-cell.el. If not, see . - -;;; Commentary: - -;; This depends on the skewer package, so likely will get split into -;; its own package at some point. - -;;; Code: - -(require 'skewer-mode) -(require 'skewer-html) -(require 'simple-httpd) - -(defvar *ein:skewer-running-p* nil "True if the emacs httpd server has been started.") - -(defun ein:js-prepare-result (result type) - (list :output_type type :text result)) - -(defun ein:update-javascript-output (cell json result) - (let ((val (ein:js-prepare-result - (or (cdr (assoc 'value result)) "See browser for result.") - (plist-get json :output_type)))) - (setf (slot-value cell 'outputs) (list val)) - (ein:cell-append-output cell val (slot-value cell 'dynamic)))) - -(defservlet current-jupyter-cell-output text/html (path) - (let ((cell-id (file-name-nondirectory path))) - (insert (gethash cell-id *ein:skewer-cell-output-cache*)))) - -(defvar *ein:skewer-html-template* - " - - Emacs IPython Notebook - - - - %s - - ") - -(defvar *ein:skewer-cell-output-cache* (make-hash-table :test #'equal)) - -(defun ein:skewer--handle-html (cell string) - (setf (gethash (slot-value cell 'cell-id) *ein:skewer-cell-output-cache*) - (format *ein:skewer-html-template* string) )) - -;; Format of result is ((id . STR) (type . STR) (status . STR) (value . STR) (time . FLOAT)) -(defun ein:execute-javascript (cell json) - (unless (httpd-running-p) ;; *ein:skewer-running-p* - (run-skewer)) - (deferred:$ - (deferred:next - (lambda () - (let ((result nil)) - (ein:aif (plist-get json :html) - (progn - (let ((cell-id (slot-value cell 'cell-id))) - (ein:skewer--handle-html cell it) - (setq result (list '(id . nil) - '(type . str) - '(stats . nil) - (cons 'value (format "Open http://localhost:8080/current-jupyter-cell-output/%s" cell-id)) - '(time . nil))) - (browse-url (format "http://localhost:8080/current-jupyter-cell-output/%s" cell-id)))) - (skewer-eval (plist-get json :javascript) - (lambda (v) - (setq result v)) - :type (if (plist-get json :html) - "html" - "eval"))) - (cl-loop until result - do (accept-process-output nil 0.01) - finally (return result))))) - (deferred:nextc it - (lambda (result) - (ein:update-javascript-output cell json result))))) - -(provide 'ein-skewer) diff --git a/elpa/ein-20200127.249/ein-skewer.elc b/elpa/ein-20200127.249/ein-skewer.elc deleted file mode 100644 index dacb8ee1ea28729425b3ca198996e87618471837..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3119 zcmbtWTT|Oc6ebO!KwtXSX=|+pc)e>7D$cS^u$Z|tbo*9Y56Ek!-v68vZkM|A^C>qI9Mg}H6v+89Qlg=rU z8J#Igb2+D^c14qtWtymx%m@cXQ0WB(pY&q`KJ~Y{y1H?8ZIm13u_7l7JP(imI21k) z_z|;{028n8(3?`dn5lpHdOR}YlyovKQss_}DdJNSjn%auyB?jC6Gh1o zI4Dv!+V%ixRRSv-NeviPM%u{IsJQj*>PD=Fm$Ia$O0w-*K{?4Xgw`#ZlqD%`tUaL? zb$!3VT7*aNX_(RL{o~&cPw3>&qy0uDN2UoBJY`Ae+AT^|$Wpnb(v#HC+MBN5sStR; z5G?*&d%B%ZOffNknd?H)wo&iRDfMclJwIriTCLq$>)!t1A^m#%>Se9}L)DWamH_-* zUP>L6NnzYd0W9eE{o5EY^bbSlIn3yV*#f2kp3Wj(-Ovf0hZywO)c)e$S}1zG&%(g> z7WwTjeU7&X9jx1E-S4v0I*;g5rU;62tQ4J<`4vJz!@Q&lmXD)% zH`iFN>_?UZ*hrmI5Bv(jU>dih*RS^I==sSn^c`$4 z^uqUqKM$i#nsziPOO+Y-d{Q8TOV_Ht!Lrv89ZXbb`^<6!m-w!i%H<`9=o8e^Uu`L8gi> z5`?r`Kqc3<)Eb$2?I{-=8G{h`^J^FfrqiSPEbNVI+sWYqYBNPRBs>q9;MbYpdtF;h z_f2BYw4XjVQPUBw2x+kO?Hbjh)YvdXF z7pMi<{uI0_(|IPdoN|2f`rze@`8t^4L>HYUwuB4vz2!2&6%d5ZGX6TY8djE;z#UU! z_>a7s-M$lpnX0zlB{6{|ZPY;@V+oernnrdr*s6-$-@HqcA3CJot7tMukTd>xg!Jt! zbNc!i+9t($Y^f3dw%GA+D|~5rY1!7aZ{Okxa-Rzn1<$;8>>F#s zTgR}fYOqB`rd2WCG$F#st@6jVBQz`pVv4sjWcvMuDE6R|P3DSZ+5tB~c+g_M*c|S= z)(AGt^Uwy^SHy3gwx$k%?wy}7>4l=(e-w(2S3%>mTX0dZ1a=-hLU`hpGoEoeD0JdwN ABme*a diff --git a/elpa/ein-20200127.249/ein-smartrep.el b/elpa/ein-20200127.249/ein-smartrep.el deleted file mode 100644 index 977afca6..00000000 --- a/elpa/ein-20200127.249/ein-smartrep.el +++ /dev/null @@ -1,55 +0,0 @@ -;;; ein-smartrep.el --- smartrep integration - -;; Copyright (C) 2012- Takafumi Arakaki - -;; Author: Takafumi Arakaki - -;; This file is NOT part of GNU Emacs. - -;; ein-smartrep.el 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. - -;; ein-smartrep.el 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 ein-smartrep.el. If not, see . - -;;; Commentary: - -;; - -;;; Code: - -(require 'smartrep nil t) - -(defcustom ein:smartrep-notebook-mode-alist - '(("C-t" . ein:worksheet-toggle-cell-type) - ("C-l" . ein:worksheet-clear-output) - ("C-k" . ein:worksheet-kill-cell) - ("C-y" . ein:worksheet-yank-cell) - ("C-a" . ein:worksheet-insert-cell-above) - ("C-b" . ein:worksheet-insert-cell-below) - ("C-n" . ein:worksheet-goto-next-input) - ("C-p" . ein:worksheet-goto-prev-input) - ("C-m" . ein:worksheet-merge-cell) - ("" . ein:worksheet-move-cell-up) - ("" . ein:worksheet-move-cell-down)) - "alist passed to `smartrep-define-key'." - :type '(repeat (cons string function)) - :group 'ein) - -(when (fboundp 'smartrep-define-key) - (defmacro ein:smartrep-config (map) - `(smartrep-define-key - ,map - "C-c" - ein:smartrep-notebook-mode-alist))) - -(provide 'ein-smartrep) - -;;; ein-smartrep.el ends here diff --git a/elpa/ein-20200127.249/ein-smartrep.elc b/elpa/ein-20200127.249/ein-smartrep.elc deleted file mode 100644 index d65bf0b9b9c3b6275062b6b4268abd82faf29f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1310 zcmbu9O>f&U42E;tkUy~7z`4Mh098=i>t}`mZO}u3-L_j(V6w$HLS)gC%TJawx0}ln?IM@!-7?y_2@xut*mtkib@}xwv|8PUFQQxrBK1%OL{TME_xb@ zSi@3)l5CI+w_zd9dBuvWAG6zAD3{X7GH{4TJNMEm@C2o_P#_qR&zwA@;sK>I8Xbfs zgIV7BtHWy{#|gL#(5g)eL;Y^Q8z^E|Gl45bXE z`R8{Xl`@r{e41y+`Nsi2GMqA;F`T8>^Q5CP{wB*Kb(X-L!{4oT2)>psIBdXb1AP3g z4^#_E|#D+G;QdhRUcYumWf&&vF#IEX;)7O*(bF1=t38fENJ}@Qt>)j zprK9Y)%MAX0tt(Mg3xv!fAb%%akzfU)qSo;S9OOLU4CtwZ!a($dY47p>?lPW`zjZK z@feb>WR3KmCo>TI+Lu=0LR%Co+#XI6xQqpZ5w{1*03)7F58ZUbqP1oG9kASG<*039 z*W<7D|sfL_7ZC@bOrnaas&r=qgrw>V$I9h8SH;zC&rhE_Q - -;; This file is NOT part of GNU Emacs. - -;; ein-subpackages.el 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. - -;; ein-subpackages.el 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 ein-subpackages.el. If not, see . - -;;; Commentary: -;; This module was more important when packages came from git submodules. -;; It has been gutted since. - -;; - -;;; Code: - -(defcustom ein:completion-backend 'ein:use-none-backend - "EIN defaults to your individual company-mode or auto-complete-mode configuration. Change this setting to gather completions from the jupyter server:: - - * ein:use-none-backend: local completions only (configured outside EIN) - * ein:use-company-backend: company-style remote completions (elpy takes precedence) - * ein:use-ac-backend: deprecated auto-complete remote completions -" - :type '(choice - (const ein:use-none-backend) - (const ein:use-company-backend) - (const ein:use-ac-backend)) - :group 'ein) - -(provide 'ein-subpackages) - -;;; ein-subpackages.el ends here diff --git a/elpa/ein-20200127.249/ein-subpackages.elc b/elpa/ein-20200127.249/ein-subpackages.elc deleted file mode 100644 index acf3f01e26fdfaebc990779e0b496e58c640813a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1065 zcmbtT$!^;)5Y4TCf1uZ?53OB9hL<*rd@76_0tCIZx4MThIkwqIq(F{Rs9)bFc?s;~ z76Ai6oWbK;M)SLe#runki{5-br$s0$SBULCoTs~zO`<1>$puf-tI@3M{B^n|E(!{j zy3+k)MLUgpUGwMGC0YZ8>LiJ5u4iv41v2buB~%1HxnwUTk#H=WMA9t=r?cI? zu;5KkOW>_fuh$!_8kNihE7V`k#$(h3HAT%(Ur=9BSE%cc@0QaECc2t@SWd^+efnkU zq@m2Ln1Z8ZPaGYukcc>+8)RHan^?AD^CY2WzA^i|!%^X8e97yV~a!y)CH80xA8hKPV{yFJNLy{fPuypi;qZic=8KhRxh diff --git a/elpa/ein-20200127.249/ein-timestamp.el b/elpa/ein-20200127.249/ein-timestamp.el deleted file mode 100644 index 489b1eab..00000000 --- a/elpa/ein-20200127.249/ein-timestamp.el +++ /dev/null @@ -1,68 +0,0 @@ -;;; ein-timestamp.el --- Elisp implementation of the ExecuteTime nbextension - -;; Copyright (C) 2018- John M. Miller - -;; Author: John M. Miller - -;; This file is NOT part of GNU Emacs. - -;; ein-timestamp.el 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. - -;; ein-timestamp.el 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 ein-timestamp.el. If not, see . - -;;; Commentary: - -;; A rough approximation of the ExecuteTime (https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/nbextensions/execute_time/readme.html) nbextension - -;;; Code: - -(require 'ein-kernel) -(require 'ein-cell) - -(defcustom ein:timestamp-format "%FT%T" - "The format spec for timestamps. -See `ein:format-time-string'." - :type '(or string function) - :group 'ein) - -(defun ein:timestamp--shell-reply-hook (msg-type header content metadata) - (when (string-equal msg-type "execute_reply") - (let ((start-time (plist-get metadata :started)) - (end-time (plist-get header :date))) - (plist-put metadata :execute-time (list start-time end-time))))) - -(defun ein:timestamp--execute-reply-hook (cell content metadata) - (if-let ((etime (plist-get metadata :execute-time))) - (if (ein:cell-metadata cell) - (plist-put (ein:cell-metadata cell) - :execute-time - etime) - (setf (ein:cell-metadata cell) (list :execute-time etime)))) - (ein:cell-running-set cell nil) - (let ((buffer-undo-list t)) - (ewoc-invalidate (ein:basecell--ewoc cell) (ein:cell-element-get cell :footer)))) - -(cl-defmethod ein:cell-insert-footer :after ((cell ein:codecell)) - (if (slot-value cell 'running) - (ein:insert-read-only "Execution pending\n\n") - (if-let ((etime (plist-get (ein:cell-metadata cell) :execute-time))) - (let ((start-time (date-to-time (car etime))) - (end-time (date-to-time (cadr etime)))) - (ein:insert-read-only - (format "Last executed %s in %ss\n\n" - (ein:format-time-string ein:timestamp-format start-time) - (float-time (time-subtract end-time start-time)))))))) - -(add-hook 'ein:on-shell-reply-functions 'ein:timestamp--shell-reply-hook) -(add-hook 'ein:on-execute-reply-functions 'ein:timestamp--execute-reply-hook) - -(provide 'ein-timestamp) diff --git a/elpa/ein-20200127.249/ein-timestamp.elc b/elpa/ein-20200127.249/ein-timestamp.elc deleted file mode 100644 index c2eb8f11086a200763e1c9ca1c8290fe60a6a500..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2085 zcmbtV-*4MC5YF2g=MUJ{?%^UYt5uYNB_&Sdpg@Z>0}Ax5d8>?#mQFEInbb%sUHaGW zj+C8v>Go0sghldxe)rw+;_AcYk9&K2ql=3RxHRidwOEIZ(r~qwm4jQfP8kjP?6?Rw zUzA^gY+Ep$S8MfEdb)PUqi}h>QVtrj0=+{A^_`Y$RY7ek=dIE=?j_w?=Rwvr*0A-G zoge4tk8IS2Y-r=5GTKWL?tLR((TNssKVH6n57kOqS$PWaWpFQb4bDI%H7pTYBX^t( zsW?DsTZI<&F3n?{733O_p~aMP+J)q%5XWTG?TlXZ*n{-)sunoX|R@ zHKTP_7A%xywDRA6DD&xA0-r4Y)hmmDN{i2EHMZfiLMmX@J8#ya#;TPT#jUhTE~#`R zJEzj3^K#vZ#@My=kR1JfeRQ2ba=k(r&RmBTf5TSV9hdqeBK*lVqLkoE5zGJlIDxsp z>kuZS70;mQb;TS?VSZyx-?9G%yh=xt8XMUv>EQWpNW!fseqpg|@5IWO&oKTpS-Tq% zOs|m2ZUbjfdsw5Fwe&KD}=}&tM+~4dXImEAQR|X<-E8-5Az^JStPt)QlZ34x@0pl_boXe*<$?0c| z2LNc4*l!DKEQiY$f6B!C=1qp8B1G!1D} z(}Z0ZH23_N76*|U#E9U16W9~3X{>gj&}qi3IoW^1=O_Db-yA+AqJ%*dNx%$fm@rI& zBF{=qo5S(piwzrMWU;8Zn7h z-o!@zuoEBiXr~2%nIOE04Lx{IK1gEbK*t)69KT^l&PCg7@$uAyhF+p!F2rHjFFn6o z3pii!OBiPuE7QyNaJFqmBRyGk$+~eS?+AqfI4E!WB#wpuRNoZ~20CkQ6+Jp+C?p&l I5wFwHKizJVLjV8( diff --git a/elpa/ein-20200127.249/ein-utils.elc b/elpa/ein-20200127.249/ein-utils.elc deleted file mode 100644 index abc483b2181ba82acf9089bc9af8c74fcbf92d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27234 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 XSBjF|TcwA}Geh|Aqd2lgYfJwJQC{Vp diff --git a/elpa/ein-20200127.249/ein-websocket.elc b/elpa/ein-20200127.249/ein-websocket.elc deleted file mode 100644 index c9063eaf119536f0b14dabaa912f277cc4f6cc99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6104 zcmcIo|5Mx85$CH3^oO?7&a~5Zri+0DdJ&QIBpb-|2149}IRX?rO>QvP3j5jCMV5S$ z9OC=y``M>2mWVH*mnnC0q}6---tK<(v-|YCad!NNxw*Nu=g*(haWEXYp6sdz*QdtN z=|uEihLIciWY%_tdUNN-19Ci%f>G=a-JhHoucO^H^|Cc^BkDm5jUyRRcj7xkw?o~a z6UCwH_oJtH8%8lX-LC9XzKXHGYwmxfqZ>enAH>uN{Mf#Gc=s_5~b0zT%8O1kb?yPMb+I6~g!bsA&jH8Y-lFwcRKe?XgASh~hF9?TD3?FXy zd^&HuZE3F>t&@wFJAYlzVZwtm6Z18*& z5~FR_%tbtk?_ikta|~&AuwD2doB4^|{LGp;}%|KH}TOwrQDsvpPfeXohTMhO9C}wmd_&G_RIl ztURhb!hT@0FpKw))hny(N`xS;r2eR^9`O#_KKrO&^a3;(*u4U1_4{`F?^UW%wMsfL z-`>9dezoo2eARC6tX7p^_iwnblJ9yX08cGK0(S-)kay>VT~Zo0s}z$#bpjaiE}~1pj!qd7(S+xi)Kr^ytr!7>#H;EAE#%H z^P^V{YBr8vUo|evz(x`s&d{0M zO06$r?S}!F*Vn-1A*K1rM&L4$IY9dS`lGL5iuF5Wi*Dhvan%-IwyP@f5~$Zt7zUhL zdbXymzZ7G#$8 zr7uIblW+--qj)lsTF|4&?fZ^LcVXc7H6?Vy{&*<;m`RUu_Y5dw6RVVP86;Z~{||Zf z29QdSV%Wk+pkmZ(^d{$1I4U9+S3-#3(g>9f#RWxh%Bn|~r%$;y-AVE#N?(jJ6^ten zpen7A<4^MGs7k1h;O8OA7v7+xF{--M9dij)in$=df{36N<<9d^s9k4`B-iYWXj4v} z8RIErwNWU+z!_?zVxZ?a$R>UfrVfXgNm7M*F%A5mSgNQN0n?Y$z%SszIAOZBGlX!I zrvu9fF-#ytuifyFe8P)QO%Oc6<_SOvCM~4fd0U#alx~NihZ*2=#wDPrFg7kN7nWw; z+n>RcVWm-Df(ButoS4W06R0)e64R=zR4VEXuOLheHS1d#k3m8|E>$pLs0xN%n+YWf zVJ=}9^a$7@>`J@0-r$W|NDr=D0_sE^wFit3u?hg@3cMEHGfvUu;(WGiYQP~&V5P8_>klg{c%vt@CiE$-)oRQ0 zO#7)Ktbj5M1xb~SUK>H6%bc<}%2i6&N z26C7X+$ao2GK?pb>Q?Jz9-|pa< zwR%Bcy9=EW+>N%s7pSrb&?Q){!SO2eBPSkcpi~VlZa69Mb5ed$diOK7-?LM;x9ZbkN#8cE&KqZRagHvx z**yBD!MDd}7fp3@aoITkxSr-*3+EZ;o}HM!3|8f=)Xio52qsI=2!3sDvJ&h(US+s2 zk1X&j!`#G=$jELRIAi()t%04UWXIVHs#-kdGz4v^Hfx%7`F4_0`e`pu&kY(f#is-0 zVSY1|QRMWc5_Y@*hXj5t!w??dxUSa?WhvX31v<+W)h1L{`M(Xkt}{~^x?(D|+nI>D zmw((WPMZ$q8D52RPGA4kv@5BzW?cO8ULu+&o1e?Ud(O(B`KC!Yck;RTdMmmC^k{o4 zLSj82DRYfv=r^_LM+#^sD|LA3sGu4_9+k%(-5ciw;9;>dGVsem*&Ve2}Bd zI#Fh(q2gq@p^Q~5eLwZRDen88S~xs^Dgcp0FSv1S8&<*~#-G`l41AGA;P(ah-jBdS zyUP7`o(~I4X$2}&rUQK=Wc*br~j>^FKq~xdqJ-|_%tc&a1mzJITb!pE1r3{mM zY1{c|sehHG6_--y0IrV~m?f#48|k{G-c&jKoebfEBn=)Kq+|}7O;fS - -ein_inspector.py 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. - -ein_inspector.py 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 ein_inspector.py. If not, see . - -""" - -import json -import inspect - - -def generate_inspector_data(obj_str, globals, locals): - odata = {'name': obj_str} - try: - obj = eval(obj_str, globals, locals) - except NameError: - odata['error'] = 'Object {} not found.'.format(obj_str) - else: - odata['doc'] = inspect.getdoc(obj) - odata['type'] = str(type(obj)) - odata['repr'] = str(obj) - try: - odata['source_file'] = inspect.getsourcefile(obj) - odata['source_lines'] = inspect.getsourcelines(obj) - except: - odata['source_file'] = None - odata['source_lines'] = None - print(json.dumps(odata)) - return odata - - diff --git a/elpa/ein-20200127.249/ein_remote_safe.py b/elpa/ein-20200127.249/ein_remote_safe.py deleted file mode 100644 index 9b9b0186..00000000 --- a/elpa/ein-20200127.249/ein_remote_safe.py +++ /dev/null @@ -1,163 +0,0 @@ -""" -Python utilities to use it from ein.el - -Copyright (C) 2012- Takafumi Arakaki - -Author: Takafumi Arakaki - -ein.py 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. - -ein.py 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 ein.py. If not, see . - -""" - -__ein_pytools_version = "1.1.0" - -try: - from matplotlib import rc as __ein_rc - from matplotlib import rcParams as __ein_rcParams - __ein_matplotlib_available = True -except ImportError: - __ein_matplotlib_available = False - -def __ein_export_nb(nb_json, format): - import IPython.nbconvert as nbconvert - import IPython.nbformat as nbformat - nb = nbformat.reads(nb_json, nbformat.NO_CONVERT) - output = nbconvert.export_by_name(format, nb) - print(output[0]) - - -def __ein_find_edit_target_012(*args, **kwds): - from IPython.core.interactiveshell import InteractiveShell - inst = InteractiveShell.instance() - return inst._find_edit_target(*args, **kwds) - - -def __ein_find_edit_target_013(*args, **kwds): - from IPython.core.interactiveshell import InteractiveShell - inst = InteractiveShell.instance() - return CodeMagics._find_edit_target(inst, *args, **kwds) - - -def __ein_find_edit_target_python(name): - from inspect import getsourcefile, getsourcelines - try: - obj = eval(name) - except NameError: - return False - else: - sfile = getsourcefile(obj) - sline = getsourcelines(obj)[-1] - if sfile and sline: - return(sfile, sline, False) - else: - return False - -try: - from IPython.core.magics import CodeMagics - __ein_find_edit_target = __ein_find_edit_target_013 -except ImportError: - __ein_find_edit_target = __ein_find_edit_target_012 - - -def __ein_set_matplotlib_param(family, setting, value): - settings = {} - if __ein_matplotlib_available: - settings[setting] = eval(value) - __ein_rc(family, **settings) - else: - raise RuntimeError("Matplotlib not installed in this instance of python!") - - -def __ein_set_figure_size(dim): - __ein_set_matplotlib_param('figure', 'figsize', dim) - - -def __ein_set_figure_dpi(dpi): - __ein_set_matplotlib_param('figure', 'dpi', dpi) - - -def __ein_get_matplotlib_params(): - if __ein_matplotlib_available: - import json - print(json.dumps([k for k in __ein_rcParams.keys()])) - else: - raise RuntimeError("Matplotlib not installed in this instance of python!") - - -def __ein_find_source(name): - """Given an object as string, `name`, print its place in source code.""" - # FIXME: use JSON display object instead of stdout - ret = __ein_find_edit_target_python(name) or __ein_find_edit_target(name, {}, []) - if ret: - (filename, lineno, use_temp) = ret - if not use_temp: - print(filename) - print(lineno) - return - raise RuntimeError("Source code for {0} cannot be found".format(name)) - - -def __ein_run_docstring_examples(obj, verbose=True): - from IPython.core.interactiveshell import InteractiveShell - import doctest - inst = InteractiveShell.instance() - globs = inst.user_ns - return doctest.run_docstring_examples(obj, globs, verbose=verbose) - - -def __ein_generate_oinfo_data(ostrings, locals=None): - import json - - defined_objects = [__ein_maybe_undefined_object(obj, locals) for obj in ostrings - if __ein_maybe_undefined_object(obj, locals) is not None] - odata = [__ein_object_info_for(obj) for obj in defined_objects] - - print (json.dumps(odata)) - return odata - -def __ein_maybe_undefined_object(obj, locals=None): - try: - return eval(obj, None, locals) - except Exception: - return None - except SyntaxError: - return None - -def __ein_object_info_for(obj): - import IPython.core.oinspect - - inspector = IPython.core.oinspect.Inspector() - - try: - return inspector.info(obj) - except Exception: - return inspector.info(None) - - -def __ein_print_object_info_for(obj): - import json - - oinfo = __ein_object_info_for(obj) - print (json.dumps(oinfo)) - -def __ein_eval_hy_string(obj): - try: - import hy - except ImportError: - print("Hy not supported in this kernel. Execute `pip install hy` if you want this support.") - - expr = hy.read_str(obj) - ret = hy.eval(expr) - - return ret diff --git a/elpa/ein-20200127.249/ob-ein.elc b/elpa/ein-20200127.249/ob-ein.elc deleted file mode 100644 index 8128bd316c86c5848da7603ba8f0a7d033b23035..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18600 zcmeHP`*#z`mG%RKVGe9&lXEuv$Vpj-U<2*+Tj1Gbv5jXS7@K38&E{aT)0Wz{2B{^w zTX>wme!uTlRjVZnX0q8myFUyww$#;Cx2kU4_r2w>c6PV_VQy~j)>mJBrM3tCVYiod zR{F1qEpN_sst7?$0B_b*9_*TwoRd3ki+Ez~KXs8Nv? zs&kno{cc-z2JNEEyV+Us2ygSER7t0kc2qTs_hj9Fas@_b02tYzRP8}lCg?mWPo2kT z$(+r@?H4ap`#i~$c8MiElIfGIql$rQCz(1)Rd0|?Ok%cDs5HrY-85I_IXe1*o);+i zoBnYDf9t*IM>T70ww6MX=AswKM8g1M&pU@m`RE+2DEwP3EP7OdM3>$CfqYpMlv`K@}N0LYkX z!CZkq(Fc&HTClHR0%HLn2Ljn`HPzcZ{V?k0sT!Q9w3|7jvfC?EGAaioCN;>4xVgj_Xb5OP1t5TEeZ~D2DvjFROZu zRzVmXl(tLfWORB880BCJ1LnPkVms%f%nT411%wDtHyD+}Q7Oo5rx0&)7!&U_l!+!M z{h0I|E!zax`!vtep401oOr4>Ip_}yJ52G}{bP7nqURpwoCEq3AORo)i(|o6bwOcDs zqgcJ}CGGTl(Ca`>8TffRWMfAqr@)&^ip#96WUcA}h z3eaj7OM0N1Z`bkfT~n>D+*Rw!3xjBFZKk||3;~zAB4M6A6N#cFiGuuB|n2dZb3wW*uIPvwScbk{IkF zdr5XSO3py`)2mrsC6zUC8eoO4w+Yi`uV0+~gPv4Dt-GnXj#r8SBWYhVj zeQxuyZJ)LuKJ+|kdHAs27S3pcbi_#XThj>CC!o%gLcPxh7cd;oa4e@#swqUrDrs+b zbMG4r;)nBU|Jlx(8Ya;GK-ns2IZaBnieoD*eHWMglRYB4$~%5F(u_X;Ie zk{w4PS=CGoA$0s=ZLfto9Q5y!V`B6()0L*3CP7DXKEEv>{msVC5s5XT`u7V)$_2L~Z+Kn7? za?tztL&$6^0Gs!UrfRM~#INIH>>0oL`A$7CGRF`7Cu{FMFLYLnWYM-wP40+fp@hJ~ zVRwj>@uEr+(PE)w;Sc3hC0XkIeUV(UQ3(4Pgr>y&GNvsE$5>-x8DpnCh*AferlI)* zqRDjb_QCm12R22!9ORcjETKr&WF8q<)ad#U<1J+<{Z^f)c?v|=WR4a_tJQ=RH$g8X zqh9G~j&PFvtk|HCnr5r4+tUobH=x}9{H-BnlH@QuYl>eo zJ_)Gje)7J4G(%{ZtSsKCmLXS=SVVGNdFtCOzIgSGb9i*{0)p-97rUR>>_y&%4S$jp zX&mZv1ePP9iB>qbS<&|LGM*}}3aS;_zK&MtP}u)obQeS7oZ~*=7nLa$D~I6IcYpbh z|Mbs`ZT-gg(#~&W^pTJ@cy>5oN_t^7+VRiaxu*o11DPvE2$(b_duLH#gy9Q<| z30@iNO8Ubyf%W1PmqnTO?VB7@)){2IOGR7MbZ?^-!te}+DU@X@Mz49LtzGp1Ack@* z51RTg#?Fsc+eDU2LWpjX5U?Tr2xasUs-q1R@=+K|y{&_O-|h9xGTtd)fuz+5b_Dh- zl{pqz6!5Vq!)PYx6Vnf%e$Ns>(DF3_c#jQ@|KV_d?=wfAi%@s^uuB{<3(UbUVdWl= zLVom4yz3j-S@4&+>rapU*vBDhlMA0w+N@$sPtZTs;|%gEp2TO|W$h#?~+oEbdZeEXIpkJ;YQYK9CkAo=aP zVQL@wl}3?ospj!xD>ec{HT!RlUcWgygvvhHe04ZmL|Pw8ql3nx78xc8fOFdvT!KnS z6d@^TK`3ZtZb2xBVlrAF>CA5t)$w+MvIKbHOL9lOCDvv=43J-<&tMWWC@!7$2XSD7yWt6M00 z1Du(b%{+`X3?RveGh+k{B6Q)vrx%QGrE22@k|`5;YFNUA8{8V@pCs+~bb7m4$7*Sq zxV>%(2NW3zI)wXSA)YCC4;l-Bp%W#5QPyOIb(5gizgx?PEM2udhIpObt2T`#*5N8rEe*8wLRHbg3zV^8f|Uiw^6k8PK9Jl zKi_M7!G3gHF`bWQ1gioGT2UthJcCmK2{CSbxx>+opFKN<9S%_)_*?kL!9jpo*!ap2 z2AG0}Nx3E@0*;aWI(=v=1XIPa*OtB!h!T1d+`vP=YTh9lrGo&oUeflfjn^TBbfbxL z?w@oLwR$q>T*6_?lYX&g4FmOI1c#?0EP$sdUZsL9;XuNZ!LU)*8LIo{=rw6NXCnrY z%){XHv;hAi>T?4B3*+$g!MMP-&u0cuAi+yS1mywOhxk!_BQ`|fK&o}mGMcZ2D2&=O zU9Qzrvr-KLtFXa?Rqcp6RS?1Uu*jg&LL5%rH#<;pd^Qy9N1mfIAy|l^j zH7ymQ3Dc~aLxCS5zNaIIu3;ODSFK#UZR?KF`#0%1t|yZL5<-?D_VXsIO7NIzp?3GAPp&N zJzoq8-EUdi3 zAfkl~t`6eGWl;xMfQ$K|HG`0rD5Xs30XAd>pVsi`HyYQeE94!-K^USV#Y!9yApjR* zQ(=sig{}WwIQH=f%pUR=cLBW}xqs3_+z_)xUZY{=iu_9rI0C#VJkGGuC{hF`7+9FE zkHc0Y_nMK0Kpl=NoHIS}4R5XIAU&}{BdG)_03Fkk3}XMTfq^XmK6VgA7##yeF}4!N zSU{|!=6H;JylVkc)eiI$fVMNJ_y8epv6oSh8QQG<$Ivn&Zb|QaFkA9njb$1ZnhyU_ ziE43ZjVaBtY6J0SI=|-87(6ye)TG9Re`w50inK8#S{jtZ5)_1VLV$WhD=`L>###~f zDh!+EEas->l{{9`A3%K(em@zu5vApi9WiavjF+GT4k9Nu#GOJ)EzQJ#vF?~;*Gzs) z+}g1xW#d0MamgUz4BghX<=el<5rjX-nUHKX$2A(y^tpr4yx=)HQiwyldlOPMMq`PO8;UCFyj?nufjun~*{->B08`Qp8zeP(tDjVuV((REVG% zP0{0w=HcG{(azTX{>!zAQyMV#4}-8XJ}iZ`Q41hT10T;hO<>G-Acc`oG|{-BS{-Bg zY!(QDTw_SGqO5L4fN&g1P}L3*C@#D7axF~}8+aBCCQ)?+5~poTF)lDE$t5bH&fchDk1IIWk*t2FeUG9lVa(;@o{R-w1x z>m)-&uz}L?0ZZCWSkkh=^x;uM2_=*3u$@r}Ycf#H%F3|$9g|8yT(>tsG(g(}#K&an zg!C@i3+wPmcjQw>h;miv&eQ$?xfH!0IP-zAUSqcv8|yU+)i#3uG=>>~_CQ8mNb&^6#@%M1sT=^!U3n-ZUVT zKoL%GT0&4GiDIU3z)!dgg(2!1a2S%(x|z`{7{*weA52BB*6M*QV>AOM+*w-BUTnit zalF8`7@8}H#N2?+r26t((u57b{S}24VE^b;Z}G0Q&>WfU6I^Ktue3z97M~%NKrcwo zrCaLjk(RJp4-{ue(;=*{2QAS5RLruUkh(tS86ki zoL=|rTqoJaavqlle8xS6N<4hfTC~ zH=z`211EK}vGR;6G^QUl3j&M4MlZR9IVTw%olQY(q-JJl+5W%?_Xlc1x<3%{{y=T- z?C!2L-_@cjt;dhWM_Z-7u?e|J186Mr?@wi$^fR>#&e|?cTYt<#cu&A`g_@zItS-H; zkex)V%@!CuG6ss2L`i_&C?6e)D{e8=1lKfCRO(DHj&i8Y{E@myk^K>)b&xZIN@a=~ zg%LDAf<$5r7t0e`P+ZZMI|q9^yML2Lq;iWwf2;_hsKf-dDvXLti$Cq--9-a^5vZxV zkXTw{LFmdbdSBF5I;5xFKIv=nD_ZRsMJN845HTYfh?+LTjGQGU3=8`2uZTo3s zuCj1o?=yw@lQHv?G4qo#Lx%(&vN$IA{K=U4$(WIVLPZGwSH=uX@w7W|5ScG0RUqoP ztwxkmIS-Kw=Kt{Hk6%$)wv`P!QE}5kq*4l?Y(%+URU0)go2KzQMc>xMd;S9kmhx;( z#*^4)8NJxVzz=s2_}<@}?QFyBE5=b7ncaI|lK9xK zpb)E)B6rb*$F$P-yyw^u9Z^O$wV|>2^x7tzGBIW&(K@yCggQ;TSE5llvM5#uqv&yB%^h!&VJQmt975{-=Jj`uukp<-ms zzd>KUTD$wkQsV};FaB-d)6+GXX6^AJ8V0< zo#NC*NT~B^Dh@M&Q3gqH;Al}lBF@Nep*Bdw1LZS;7436Wc}p=c+)rKS?UBZ%gi4B_ zBM@a|f>ECLBsRHJA3g*s`|@u35lL-Z9mt{+Ns1a;Mc#_HC=i{~2J_+To$W`cvSWaU z#Ra-F8g&n7%G&8INipw>Gz5BJ;MMu0NV823~`ujy!C& z2;}a$tfXi2?3!Zs!^UF^SGm(;D4!gmxb%dnKIf*&C&%sp}XYM+QEWigCXYrf2`}l0lGcj)h zB>05rF&UvdSOrr;_>G8)--02o!zhS>KroqJKWp4<+yL()af_a~H-NlQy(iXTdVWd2 zW2vzO$3rd?Ad-S_t$T}H{?`2U#!b7It@*}nNh57x{bKQZ*OzaKWWlz{XvifYfrOu+ zal?oNgucS?`SNjQ`bCV>RQ(VO3f;zy3Q9=6uigfYn+6Jm3Bg#2g+bS=~kzDjJ0VM>LfSWh~wxJH1&+t9O-thr6#4;QiIO)s-^P>4fJV{aw zd+}mPs@(H4o%~3jp|HK~8RI`3pJMKLdh2wpIw}_S|k@HVEibOG6(p zt`$>VaUHG37sL+JvS0_Fkxkdznw$R>f!|)f^VAX-9bf|=J+|j=8~C?@>iGE@c?FB= zK}NgYvpN3Wk>AL{;`=vqTr<>4$SA1mJ(p+ig}nU3+#Lq}u;c3ufJ4aB>jVA}!RhEqOUd?g45@NNZ z8$UC{@9EmJ5{@W{^=oh z%NTHFzu!&_`|M`5nnhS$Z=Ey067YKX6qL_F7<2O3Vt~Or2qc z7dfuTt)WaGuf5XrBaEsEih+4GPC#N^atif`vd)`Np&omhi21ojb$wZ3936-f*KjMp z0!!|5;^D8}uT6Qrl-pY@1YpMAB#e?OEQbl&_i7UksTJvd0Q_(zpHv$v(T4|X<> zcAg=D%|oMm6fk@j-RAC4iYR-jVt6b`5l#)=aDs-V0QM7C3CoF;`J01XXaB%?y?=0| z4v#jE-W)pHypO{L&{x4P>!b;><2kYke<{(e$b&4S0Q||=KQl?t+8luUSCdIBTe~}! zC07V#oO*yF5dVa0Mm4Ko&^OY2vY-JS{4s@4mj__OQ_+#kCu%;$Cs<49$%0w0za&ns zfEj}&9oli*KR6DP(cg2ce931yaq8t5JzB0>!nL`wX=8jt6}XAiKBrSbibnp2pCD-# zq5KaV5}kinUGi#Z#tV{&UO&_Y8}bymd?aJgs&kYQJ^W(#0-^(DW6z8Mx}E)tiR>OjgEAjtUVzd zJJe2I-Mj7g>4-MX`zA_CaGRrAnz@?1XIyn#;BpwP#O3dFjAIKb;YaV102vN$0GYT$1d7w@Aihb2;ogK(6oMps;rsoPmU&KL{<#Y%<}w|sa# z2_@=?j^Ix~K+t__Wr%EJ0;l(p<~;A>vbuD)nNemsnRhq06;8lAXEJ5lnR(R?xB7c& zlG&S`-VDW572(y0#dS(^5l@1qOTb_7^EreNbakFNy=>VUbd`CjO`RbWiofs} zzu`p7^`1>piLfUSUl8R;hsBibKBRsUd$LxxYl}jv5)^oTkLSKve5!%^tSALgH~uq6 z!!1T}r=27?LYrLN7O1vn_xPC2P@H}MN8FV9U>JO5$p_V!stv5P6fEH0kG^qpimRNsy)&e)tK};BM^U7M{__S#o6xMR yT~Y#-U+TM%a@)Ve-%G$v)8-EU@Bs)4e-r?fGWs^3e9H$PDeUz^aP;2Vt^Wc8+!}BI diff --git a/elpa/ein-20200127.249/poly-ein.elc b/elpa/ein-20200127.249/poly-ein.elc deleted file mode 100644 index 47273f44961eb823b96ad20f558b43ed27f254dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19575 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 diff --git a/elpa/ein-20200127.249/ein-autoloads.el b/elpa/ein-20200202.218/ein-autoloads.el similarity index 58% rename from elpa/ein-20200127.249/ein-autoloads.el rename to elpa/ein-20200202.218/ein-autoloads.el index d2eed4cf..5bee4014 100644 --- a/elpa/ein-20200127.249/ein-autoloads.el +++ b/elpa/ein-20200202.218/ein-autoloads.el @@ -5,34 +5,12 @@ (add-to-list 'load-path (directory-file-name (or (file-name-directory #$) (car load-path)))) - -;;;### (autoloads nil "ein-ac" "ein-ac.el" (0 0 0 0)) -;;; Generated autoloads from ein-ac.el - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-ac" '("ein:"))) - -;;;*** ;;;### (autoloads nil "ein-cell" "ein-cell.el" (0 0 0 0)) ;;; Generated autoloads from ein-cell.el (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-cell" '("ein:"))) -;;;*** - -;;;### (autoloads nil "ein-cell-edit" "ein-cell-edit.el" (0 0 0 0)) -;;; Generated autoloads from ein-cell-edit.el - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-cell-edit" '("ein:"))) - -;;;*** - -;;;### (autoloads nil "ein-cell-output" "ein-cell-output.el" (0 0 -;;;;;; 0 0)) -;;; Generated autoloads from ein-cell-output.el - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-cell-output" '("ein:"))) - ;;;*** ;;;### (autoloads nil "ein-classes" "ein-classes.el" (0 0 0 0)) @@ -40,84 +18,6 @@ (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-classes" '("ein:"))) -;;;*** - -;;;### (autoloads nil "ein-company" "ein-company.el" (0 0 0 0)) -;;; Generated autoloads from ein-company.el - -(autoload 'ein:company-backend "ein-company" "\ - - -\(fn COMMAND &optional ARG &rest _)" t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-company" '("ein:comp"))) - -;;;*** - -;;;### (autoloads nil "ein-completer" "ein-completer.el" (0 0 0 0)) -;;; Generated autoloads from ein-completer.el - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-completer" '("ein:"))) - -;;;*** - -;;;### (autoloads nil "ein-connect" "ein-connect.el" (0 0 0 0)) -;;; Generated autoloads from ein-connect.el - -(autoload 'ein:connect-to-notebook-command "ein-connect" "\ -Connect to notebook. When the prefix argument is given, -you can choose any notebook on your server including the ones -not yet opened. Otherwise, already chose from already opened -notebooks. - -\(fn &optional NOT-YET-OPENED)" t nil) - -(autoload 'ein:connect-to-notebook "ein-connect" "\ -Connect any buffer to notebook and its kernel. - -\(fn NBPATH &optional BUFFER NO-RECONNECTION)" t nil) - -(autoload 'ein:connect-to-notebook-buffer "ein-connect" "\ -Connect any buffer to opened notebook and its kernel. - -\(fn BUFFER-OR-NAME)" t nil) - -(autoload 'ein:connect-buffer-to-notebook "ein-connect" "\ -Connect BUFFER to NOTEBOOK. - -\(fn NOTEBOOK &optional BUFFER NO-RECONNECTION)" nil nil) - -(autoload 'ein:connect-to-default-notebook "ein-connect" "\ -Connect to the default notebook specified by -`ein:connect-default-notebook'. Set this to `python-mode-hook' -to automatically connect any python-mode buffer to the -notebook. - -\(fn)" nil nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-connect" '("ein:"))) - -;;;*** - -;;;### (autoloads nil "ein-console" "ein-console.el" (0 0 0 0)) -;;; Generated autoloads from ein-console.el - -(autoload 'ein:console-open "ein-console" "\ -Open IPython console. -To use this function, `ein:console-security-dir' and -`ein:console-args' must be set properly. -This function works best with the new python.el_ which is shipped -with Emacs 24.2 or later. If you don't have it, this function -opens a \"plain\" command line interpreter (comint) buffer where -you cannot use fancy stuff such as TAB completion. -It should be possible to support python-mode.el. Patches are welcome! - -.. _python.el: https://github.com/fgallina/python.el - -\(fn)" t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-console" '("ein:"))) - ;;;*** ;;;### (autoloads nil "ein-contents-api" "ein-contents-api.el" (0 @@ -217,18 +117,6 @@ change in its input area. (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-iexec" '("ein:iexec-"))) -;;;*** - -;;;### (autoloads nil "ein-inspector" "ein-inspector.el" (0 0 0 0)) -;;; Generated autoloads from ein-inspector.el - -(autoload 'ein:inspect-object "ein-inspector" "\ - - -\(fn KERNEL OBJECT)" t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-inspector" '("ein:"))) - ;;;*** ;;;### (autoloads nil "ein-ipdb" "ein-ipdb.el" (0 0 0 0)) @@ -256,26 +144,28 @@ A simple mode for ipynb file. ;;;### (autoloads nil "ein-jupyter" "ein-jupyter.el" (0 0 0 0)) ;;; Generated autoloads from ein-jupyter.el +(autoload 'ein:jupyter-crib-token "ein-jupyter" "\ +Shell out to jupyter for its credentials knowledge. Return list of (PASSWORD TOKEN). + +\(fn URL-OR-PORT)" nil nil) + +(autoload 'ein:jupyter-crib-running-servers "ein-jupyter" "\ +Shell out to jupyter for running servers. + +\(fn)" nil nil) + (autoload 'ein:jupyter-server-start "ein-jupyter" "\ -Start SERVER-CMD_PATH with `--notebook-dir' NOTEBOOK-DIRECTORY. Login after connection established unless NO-LOGIN-P is set. LOGIN-CALLBACK takes two arguments, the buffer created by ein:notebooklist-open--finish, and the url-or-port argument of ein:notebooklist-open*. +Start SERVER-COMMAND with `--notebook-dir' NOTEBOOK-DIRECTORY. -This command opens an asynchronous process running the jupyter -notebook server and then tries to detect the url and password to -generate automatic calls to `ein:notebooklist-login' and -`ein:notebooklist-open'. +Login after connection established unless NO-LOGIN-P is set. +LOGIN-CALLBACK takes two arguments, the buffer created by +`ein:notebooklist-open--finish', and the url-or-port argument +of `ein:notebooklist-open*'. -With \\[universal-argument] prefix arg, it will prompt the user for the path to -the jupyter executable first. Else, it will try to use the -value of `*ein:last-jupyter-command*' or the value of the -customizable variable `ein:jupyter-default-server-command'. +With \\[universal-argument] prefix arg, prompt the user for the +server command. -Then it prompts the user for the path of the root directory -containing the notebooks the user wants to access. - -The buffer named by `ein:jupyter-server-buffer-name' will contain -the log of the running jupyter server. - -\(fn SERVER-CMD-PATH NOTEBOOK-DIRECTORY &optional NO-LOGIN-P LOGIN-CALLBACK PORT)" t nil) +\(fn SERVER-COMMAND NOTEBOOK-DIRECTORY &optional NO-LOGIN-P LOGIN-CALLBACK PORT)" t nil) (defalias 'ein:run 'ein:jupyter-server-start) @@ -286,7 +176,7 @@ the log of the running jupyter server. \(fn &optional FORCE LOG)" t nil) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-jupyter" '("ein:" "*ein:"))) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-jupyter" '("ein:" "*ein:jupyter-server-"))) ;;;*** @@ -299,7 +189,14 @@ Log on to a jupyterhub server using PAM authentication. Requires jupyterhub vers \(fn URL-OR-PORT USERNAME PASSWORD CALLBACK)" t nil) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-jupyterhub" '("ein:jupyterhub-" "*ein:jupyterhub-connections*"))) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-jupyterhub" '("ein:" "*ein:jupyterhub-connections*"))) + +;;;*** + +;;;### (autoloads nil "ein-k8s" "ein-k8s.el" (0 0 0 0)) +;;; Generated autoloads from ein-k8s.el + +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-k8s" '("ein:k8s-"))) ;;;*** @@ -336,32 +233,23 @@ Log on to a jupyterhub server using PAM authentication. Requires jupyterhub vers ;;;*** -;;;### (autoloads nil "ein-multilang" "ein-multilang.el" (0 0 0 0)) -;;; Generated autoloads from ein-multilang.el +;;;### (autoloads nil "ein-markdown-mode" "ein-markdown-mode.el" +;;;;;; (0 0 0 0)) +;;; Generated autoloads from ein-markdown-mode.el -(autoload 'ein:notebook-multilang-mode "ein-multilang" "\ -A mode for fontifying multiple languages. - -\\{ein:notebook-multilang-mode-map} +(autoload 'ein:markdown-mode "ein-markdown-mode" "\ +Major mode for editing ein:markdown files. \(fn)" t nil) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-multilang" '("ein:" "python-imenu-format-parent-item-jump-label"))) - -;;;*** - -;;;### (autoloads nil "ein-multilang-fontify" "ein-multilang-fontify.el" -;;;;;; (0 0 0 0)) -;;; Generated autoloads from ein-multilang-fontify.el - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-multilang-fontify" '("ein:mlf-"))) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-markdown-mode" '("ein:markdown" "defun-markdown-"))) ;;;*** ;;;### (autoloads nil "ein-node" "ein-node.el" (0 0 0 0)) ;;; Generated autoloads from ein-node.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-node" '("ein:node-"))) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-node" '("ein:"))) ;;;*** @@ -388,13 +276,6 @@ where `created' indicates a new notebook or an existing one. \(fn URL-OR-PORT PATH &optional KERNELSPEC CALLBACK ERRBACK NO-POP)" t nil) -(defalias 'ein:exit 'ein:quit) - -(autoload 'ein:quit "ein-notebook" "\ -Close all notebooks and servers. - -\(fn &optional FORCE)" t nil) - (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-notebook" '("ein:" "*ein:notebook--pending-query*"))) ;;;*** @@ -403,32 +284,11 @@ Close all notebooks and servers. ;;;;;; 0 0 0)) ;;; Generated autoloads from ein-notebooklist.el -(autoload 'ein:notebooklist-enable-keepalive "ein-notebooklist" "\ -Enable periodic calls to the notebook server to keep long running sessions from expiring. -By long running we mean sessions to last days, or weeks. The -frequency of the refresh (which is very similar to a call to -`ein:notebooklist-open`) is controlled by -`ein:notebooklist-keepalive-refresh-time`, and is measured in -terms of hours. If `ein:enable-keepalive' is non-nil this will -automatically be called during calls to `ein:notebooklist-open`. - -\(fn &optional URL-OR-PORT)" t nil) - -(autoload 'ein:notebooklist-disable-keepalive "ein-notebooklist" "\ -Disable the notebooklist keepalive calls to the jupyter notebook server. - -\(fn)" t nil) - (autoload 'ein:notebooklist-reload "ein-notebooklist" "\ Reload current Notebook list. \(fn &optional NBLIST RESYNC CALLBACK)" t nil) -(autoload 'ein:notebooklist-upload-file "ein-notebooklist" "\ - - -\(fn UPLOAD-PATH)" t nil) - (autoload 'ein:notebooklist-new-notebook "ein-notebooklist" "\ @@ -457,12 +317,6 @@ or even this (if you want fast Emacs start-up):: ;; load notebook list if Emacs is idle for 3 sec after start-up (run-with-idle-timer 3 nil #'ein:notebooklist-load) -You should setup `ein:url-or-port' or `ein:default-url-or-port' -in order to make this code work. - -See also: -`ein:connect-to-default-notebook', `ein:connect-default-notebook'. - \(fn &optional URL-OR-PORT)" nil nil) (autoload 'ein:notebooklist-open "ein-notebooklist" "\ @@ -480,15 +334,6 @@ and the url-or-port argument of ein:notebooklist-open*. \(fn URL-OR-PORT CALLBACK &optional COOKIE-PLIST)" t nil) -(autoload 'ein:notebooklist-change-url-port "ein-notebooklist" "\ -Update the ipython/jupyter notebook server URL for all the -notebooks currently opened from the current notebooklist buffer. - -This function works by calling `ein:notebook-update-url-or-port' -on all the notebooks opened from the current notebooklist. - -\(fn NEW-URL-OR-PORT)" t nil) - (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-notebooklist" '("ein:" "render-" "generate-breadcrumbs"))) ;;;*** @@ -499,41 +344,6 @@ on all the notebooks opened from the current notebooklist. (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-notification" '("ein:"))) -;;;*** - -;;;### (autoloads nil "ein-org" "ein-org.el" (0 0 0 0)) -;;; Generated autoloads from ein-org.el - -(autoload 'ein:org-open "ein-org" "\ -Open IPython notebook specified by LINK-PATH. -This function is to be used for FOLLOW function of -`org-add-link-type'. - -\(fn LINK-PATH)" nil nil) - -(autoload 'ein:org-store-link "ein-org" "\ -Call `org-store-link-props' when in notebook buffer. -This function is to be used for `org-store-link-functions'. - -Examples:: - - ipynb:(:url-or-port 8888 :name \"My_Notebook\") - ipynb:(:url-or-port \"http://notebook-server\" :name \"My_Notebook\") - -Note that spaces will be escaped in org files. - -As how IPython development team supports multiple directory in -IPython notebook server is unclear, it is not easy to decide the -format for notebook links. Current approach is to use -S-expression based (rather verbose) serialization, so that -extending link spec without loosing backward compatibility is -easier. For the examples of link format in general, see Info -node `(org) External links' and Info node `(org) Search options' - -\(fn)" nil nil) - -(eval-after-load "org" '(if (fboundp 'org-link-set-parameters) (org-link-set-parameters "ipynb" :follow 'ein:org-open :help-echo "Open ipython notebook." :store 'ein:org-store-link) (org-add-link-type "ipynb" :follow 'ein:org-open) (add-hook 'org-store-link-functions 'ein:org-store-link))) - ;;;*** ;;;### (autoloads nil "ein-output-area" "ein-output-area.el" (0 0 @@ -554,7 +364,7 @@ node `(org) External links' and Info node `(org) Search options' ;;;### (autoloads nil "ein-process" "ein-process.el" (0 0 0 0)) ;;; Generated autoloads from ein-process.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-process" '("ein:process-"))) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-process" '("ein:"))) ;;;*** @@ -569,13 +379,6 @@ Pseudo console mode. Hit RET to execute code. (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-pseudo-console" '("ein:pseudo-console-mode-map"))) -;;;*** - -;;;### (autoloads nil "ein-python" "ein-python.el" (0 0 0 0)) -;;; Generated autoloads from ein-python.el - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-python" '("ein:python-"))) - ;;;*** ;;;### (autoloads nil "ein-pytools" "ein-pytools.el" (0 0 0 0)) @@ -617,48 +420,12 @@ See also `ein:cell-max-num-outputs'. \(fn)" t nil) (autoload 'ein:shared-output-eval-string "ein-shared-output" "\ -Evaluate a piece of code. Prompt will appear asking the code to run. -This is handy when you want to execute something quickly without -making a cell. If the code outputs something, it will go to the -shared output buffer. You can open the buffer by the command -`ein:shared-output-pop-to-buffer'. +Entry to `ein:cell-execute-internal' from the shared output cell. -.. ARGS is passed to `ein:kernel-execute'. Unlike `ein:kernel-execute', - `:silent' is `nil' by default. - -\(fn KERNEL CODE POPUP &rest ARGS)" t nil) +\(fn KERNEL CODE &rest ARGS)" nil nil) (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-shared-output" '("ein:" "*ein:shared-output*"))) -;;;*** - -;;;### (autoloads nil "ein-skewer" "ein-skewer.el" (0 0 0 0)) -;;; Generated autoloads from ein-skewer.el - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-skewer" '("ein:" "*ein:skewer-" "current-jupyter-cell-output"))) - -;;;*** - -;;;### (autoloads nil "ein-smartrep" "ein-smartrep.el" (0 0 0 0)) -;;; Generated autoloads from ein-smartrep.el - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-smartrep" '("ein:smartrep-notebook-mode-alist"))) - -;;;*** - -;;;### (autoloads nil "ein-subpackages" "ein-subpackages.el" (0 0 -;;;;;; 0 0)) -;;; Generated autoloads from ein-subpackages.el - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-subpackages" '("ein:completion-backend"))) - -;;;*** - -;;;### (autoloads nil "ein-timestamp" "ein-timestamp.el" (0 0 0 0)) -;;; Generated autoloads from ein-timestamp.el - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ein-timestamp" '("ein:timestamp-"))) - ;;;*** ;;;### (autoloads nil "ein-traceback" "ein-traceback.el" (0 0 0 0)) @@ -699,7 +466,7 @@ Show full traceback in traceback viewer. (if (featurep 'org) (let* ((orig (get 'org-babel-load-languages 'custom-type)) (orig-cdr (cdr orig)) (choices (plist-get orig-cdr :key-type))) (push '(const :tag "Ein" ein) (nthcdr 1 choices)) (put 'org-babel-load-languages 'custom-type (cons (car orig) (plist-put orig-cdr :key-type choices))))) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ob-ein" '("ob-ein-" "org-babel-edit-prep:ein" "*ob-ein-sentinel*"))) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ob-ein" '("ob-ein-" "*ob-ein-sentinel*"))) ;;;*** @@ -707,12 +474,12 @@ Show full traceback in traceback viewer. ;;; Generated autoloads from poly-ein.el (autoload 'poly-ein-mode "poly-ein") -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "poly-ein" '("pm-" "poly-ein-" "ein:polymode"))) +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "poly-ein" '("pm-" "poly-ein-"))) ;;;*** -;;;### (autoloads nil nil ("ein-hy.el" "ein-pkg.el" "ein.el") (0 -;;;;;; 0 0 0)) +;;;### (autoloads nil nil ("ein-completer.el" "ein-pkg.el" "ein.el") +;;;;;; (0 0 0 0)) ;;;*** diff --git a/elpa/ein-20200127.249/ein-cell.el b/elpa/ein-20200202.218/ein-cell.el similarity index 60% rename from elpa/ein-20200127.249/ein-cell.el rename to elpa/ein-20200202.218/ein-cell.el index c5b1a0df..540da3dd 100644 --- a/elpa/ein-20200127.249/ein-cell.el +++ b/elpa/ein-20200202.218/ein-cell.el @@ -41,10 +41,54 @@ (require 'ein-node) (require 'ein-kernel) (require 'ein-output-area) -(require 'ein-skewer) -(require 'ein-hy) - +(declare-function mm-encode-buffer "mm-encode") +(declare-function mm-possibly-verify-or-decrypt "mm-decode") +(declare-function mm-dissect-singlepart "mm-decode") +(declare-function mm-display-external "mm-decode") +(declare-function mm-handle-media-type "mm-decode") + +(defun ein:cell--ewoc-delete (ewoc &rest nodes) + "Delete NODES from EWOC." + (ewoc--set-buffer-bind-dll-let* ewoc + ((L nil) (R nil) (last (ewoc--last-node ewoc))) + (dolist (node nodes) + (let ((inhibit-read-only t) + (buffer-undo-list t)) + ;; If we are about to delete the node pointed at by last-node, + ;; set last-node to nil. + (when (eq last node) + (setf last nil (ewoc--last-node ewoc) nil)) + (delete-region (ewoc--node-start-marker node) + (ewoc--node-start-marker (ewoc--node-next dll node))) + (set-marker (ewoc--node-start-marker node) nil) + (setf L (ewoc--node-left node) + R (ewoc--node-right node) + ;; Link neighbors to each other. + (ewoc--node-right L) R + (ewoc--node-left R) L + ;; Forget neighbors. + (ewoc--node-left node) nil + (ewoc--node-right node) nil))))) + +(defun ein:cell--ewoc-invalidate (ewoc &rest nodes) + "Call EWOC's pretty-printer for each element in NODES. +Delete current text first, thus effecting a \"refresh\"." + (ewoc--set-buffer-bind-dll-let* ewoc + ((pp (ewoc--pretty-printer ewoc))) + (save-excursion + (dolist (node nodes) + (let ((inhibit-read-only t) + (buffer-undo-list t) + (m (ewoc--node-start-marker node)) + (R (ewoc--node-right node))) + ;; First, remove the string from the buffer: + (delete-region m (ewoc--node-start-marker R)) + ;; Calculate and insert the string. + (goto-char m) + (funcall pp (ewoc--node-data node)) + (ewoc--adjust m (point) R dll)))))) + ;;; Faces (defface ein:cell-input-prompt @@ -70,36 +114,6 @@ "Face for cell output area errors" :group 'ein) -(defface ein:cell-heading-1 - '((t :height 1.1 :inherit ein:cell-heading-2)) - "Face for level 1 heading." - :group 'ein) - -(defface ein:cell-heading-2 - '((t :height 1.1 :inherit ein:cell-heading-3)) - "Face for level 2 heading." - :group 'ein) - -(defface ein:cell-heading-3 - '((t :height 1.1 :inherit ein:cell-heading-4)) - "Face for level 3 heading." - :group 'ein) - -(defface ein:cell-heading-4 - '((t :height 1.1 :inherit ein:cell-heading-5)) - "Face for level 4 heading." - :group 'ein) - -(defface ein:cell-heading-5 - '((t :height 1.1 :inherit ein:cell-heading-6)) - "Face for level 5 heading." - :group 'ein) - -(defface ein:cell-heading-6 - '((t :weight bold :inherit (variable-pitch ein:cell-input-area))) - "Face for level 6 heading." - :group 'ein) - (defface ein:cell-output-prompt '((t :inherit header-line)) "Face for cell output prompt" @@ -118,15 +132,9 @@ "Face for tooltip when using pos-tip backend." :group 'ein) - ;;; Customization -(defcustom ein:enable-dynamic-javascript nil - "[EXPERIMENTAL] When non-nil enable support in ein for -executing dynamic javascript. This feature requires installation -of the skewer package." - :type 'boolean - :group 'ein) +(make-obsolete-variable 'ein:enable-dynamic-javascript nil "0.17.0") (defcustom ein:cell-traceback-level 1 "Number of traceback stack to show. @@ -145,22 +153,10 @@ To view full output, use `ein:notebook-show-in-shared-output'." (defcustom ein:cell-autoexec-prompt "⚡" "String shown in the cell prompt when the auto-execution flag -is on. See also `ein:connect-aotoexec-lighter'." +is on." :type 'string :group 'ein) -(defcustom ein:slice-image nil - "[EXPERIMENTAL] When non-`nil', use `insert-sliced-image' when -drawing images. If it is of the form of ``(ROWS COLS)``, it is -passed to the corresponding arguments of `insert-sliced-image'. - -.. FIXME: ROWS and COLS must be determined dynamically by measuring - the size of iamge and Emacs window. - -See also: https://github.com/tkf/emacs-ipython-notebook/issues/94" - :type 'boolean - :group 'ein) - (defcustom ein:truncate-long-cell-output nil "When nil do not truncate cells with long outputs. When set to a number will limit the number of lines in a cell output." @@ -176,7 +172,6 @@ a number will limit the number of lines in a cell output." :type 'list :group 'ein) - ;;; EIEIO related utils (defmacro ein:oset-if-empty (obj slot value) @@ -187,89 +182,100 @@ a number will limit the number of lines in a cell output." `(when (slot-boundp ,obj ,slot) (slot-value ,obj ,slot))) - -;;; Utils -(defvar ein:mime-type-map - '((image/svg+xml . svg) (image/png . png) (image/jpeg . jpeg))) +(defun ein:make-mm-handle (image) + (let ((mime-type (mailcap-extension-to-mime + (symbol-name (plist-get (cdr image) :type))))) + (with-temp-buffer + (save-excursion (insert (plist-get (cdr image) :data))) + (let* ((encoding (mm-encode-buffer (list mime-type))) + (coded (decode-coding-string (buffer-string) 'us-ascii))) + (erase-buffer) + (insert "\n" coded) + (mm-possibly-verify-or-decrypt + (mm-dissect-singlepart (list mime-type) encoding) + (list mime-type)))))) -(defun ein:insert-image (&rest args) - ;; Try to insert the image, otherwise emit a warning message and proceed. +(defun ein:external-image-viewer (image-type) + (let (major ; Major encoding (text, etc) + minor ; Minor encoding (html, etc) + info ; Other info + major-info ; (assoc major mailcap-mime-data) + viewers ; Possible viewers + passed ; Viewers that passed the test + viewer ; The one and only viewer + (ctl (mail-header-parse-content-type (concat "image/" image-type)))) + (mailcap-parse-mailcaps nil t) + (setq major (split-string (car ctl) "/")) + (setq minor (cadr major) + major (car major)) + (when (setq major-info (cdr (assoc major mailcap-mime-data))) + (when (setq viewers (mailcap-possible-viewers major-info minor)) + (setq info (mapcar (lambda (a) + (cons (symbol-name (car a)) (cdr a))) + (cdr ctl))) + (dolist (entry viewers) + (when (mailcap-viewer-passes-test entry info) + (push entry passed))) + (setq passed (sort (nreverse passed) 'mailcap-viewer-lessp)) + ;; When we want to prefer entries from the user's + ;; ~/.mailcap file, then we filter out the system entries + ;; and see whether we have anything left. + (when (if (boundp 'mailcap-prefer-mailcap-viewers) + mailcap-prefer-mailcap-viewers + t) + (when-let ((user-entry + (seq-find (lambda (elem) + (eq (cdr (assq 'source elem)) 'user)) + passed))) + (setq passed (list user-entry)))) + (setq viewer (car passed)))) + (when (and (stringp (cdr (assq 'viewer viewer))) + passed) + (setq viewer (car passed))) + (mailcap-unescape-mime-test (cdr (assq 'viewer viewer)) info))) + +(defun ein:insert-image (image) (condition-case-unless-debug err - (let* ((img (apply #'create-image args))) - (if ein:slice-image - (cl-destructuring-bind (&optional rows cols) - (when (listp ein:slice-image) ein:slice-image) - (insert-sliced-image img "." nil (or rows 20) cols)) - (insert-image img "."))) - (error (ein:log 'warn "Could not insert image: %s" err) nil))) - -(defun ein:cell--markdown-heading-p (cell) - "Check if cell is behaving like a heading cell. - -Returns true if cell is a markdown cell, has at least one # character at the start of the line and is only one line long (i.e. does not contain any newline characters)." - (and (ein:markdowncell-p cell) - (string-match "^#+ " (ein:cell-get-text cell)) - (= 0 (seq-count #'(lambda (c) - (char-equal c ?\n)) - (ein:cell-get-text cell))))) - -(cl-defmethod ein:cell--markdown-heading-level ((cell ein:markdowncell)) - (progn - (string-match "^#+" (ein:cell-get-text cell)) - (match-end 0))) - - -;;; Cell factory + (let ((buffer-undo-list t)) + (insert-image image ".")) + (error (ein:log 'warn "Could not insert image: %s" (error-message-string err))))) (defun ein:cell-class-from-type (type) (ein:case-equal type (("code") 'ein:codecell) - (("hy-code") 'ein:hy-codecell) (("text") 'ein:textcell) (("html") 'ein:htmlcell) (("markdown") 'ein:markdowncell) (("raw") 'ein:rawcell) - (("heading") 'ein:headingcell) (("shared-output") 'ein:shared-output-cell) (t (error "No cell type called %S" type)))) -(defun ein:get-slide-show (cell) - (let ((slide-type (slot-value cell 'slidetype)) - (ss-table (make-hash-table))) - (setf (gethash 'slide_type ss-table) slide-type) - ss-table)) - (defun ein:cell-from-type (type &rest args) (apply (ein:cell-class-from-type type) args)) - (defun ein:cell--determine-cell-type (json-data) - (let ((base-type (plist-get json-data :cell_type)) - (metadata (plist-get json-data :metadata))) - (if (and (string-equal base-type "code") - (plist-get :metadata :ein.hycell) - (not (eql (plist-get metadata :ein.hycell) :json-false))) - "hy-code" - base-type))) + (plist-get json-data :cell_type)) (defun ein:cell-from-json (data &rest args) (let ((cell (ein:cell-init (apply #'ein:cell-from-type (ein:cell--determine-cell-type data) args) data))) - (when (plist-get data :metadata) - (ein:oset-if-empty cell 'metadata (plist-get data :metadata)) - (ein:aif (plist-get (slot-value cell 'metadata) :slideshow) - (let ((slide-type (nth 0 (cdr it)))) - (setf (slot-value cell 'slidetype) slide-type)))) + (aif (plist-get data :metadata) + (ein:oset-if-empty cell 'metadata it)) cell)) (cl-defmethod ein:cell-init ((cell ein:codecell) data) - (ein:oset-if-empty cell 'outputs (plist-get data :outputs)) + (ein:oset-if-empty cell 'outputs (mapcar (lambda (o) + (if (and (plist-member o :metadata) + (not (plist-get o :metadata))) + (plist-put o :metadata (make-hash-table)) + o)) + (plist-get data :outputs))) (ein:oset-if-empty cell 'input (or (plist-get data :input) (plist-get data :source))) - (ein:aif (plist-get data :prompt_number) + (aif (plist-get data :prompt_number) (ein:oset-if-empty cell 'input-prompt-number it) - (ein:aif (plist-get data :execution_count) + (aif (plist-get data :execution_count) (ein:oset-if-empty cell 'input-prompt-number it))) (ein:oset-if-empty cell 'collapsed (let ((v (or (plist-get data :collapsed) @@ -279,16 +285,10 @@ Returns true if cell is a markdown cell, has at least one # character at the sta cell) (cl-defmethod ein:cell-init ((cell ein:textcell) data) - (ein:aif (plist-get data :source) + (aif (plist-get data :source) (setf (slot-value cell 'input) it)) cell) -(cl-defmethod ein:cell-init ((cell ein:headingcell) data) ;; FIXME: Was :after method - (cl-call-next-method) - (ein:aif (plist-get data :level) - (setf (slot-value cell 'level) it)) - cell) - (cl-defmethod ein:cell-convert ((cell ein:basecell) type) (let ((new (ein:cell-from-type type))) ;; copy attributes @@ -298,8 +298,6 @@ Returns true if cell is a markdown cell, has at least one # character at the sta (setf (slot-value new 'input) (if (ein:cell-active-p cell) (ein:cell-get-text cell) (slot-value cell 'input))) - ;; copy slidetype - (setf (slot-value new 'slidetype) (slot-value cell 'slidetype)) ;; copy output when the new cell has it (when (memq :output (slot-value new 'element-names)) (setf (slot-value new 'outputs) (mapcar 'identity (slot-value cell 'outputs)))) @@ -312,12 +310,6 @@ Returns true if cell is a markdown cell, has at least one # character at the sta (setf (slot-value new 'kernel) (slot-value cell 'kernel))) new)) -(cl-defmethod ein:cell-convert ((cell ein:headingcell) type) - (let ((new (cl-call-next-method))) - (when (ein:headingcell-p new) - (setf (slot-value new 'level) (slot-value cell 'level))) - new)) - (cl-defmethod ein:cell-copy ((cell ein:basecell)) (ein:cell-convert cell (slot-value cell 'cell-type))) @@ -326,14 +318,15 @@ Returns true if cell is a markdown cell, has at least one # character at the sta (let ((new (ein:cell-convert cell type))) ;; copy element attribute (cl-loop for k in (slot-value new 'element-names) - with old-element = (slot-value cell 'element) - do (setf (slot-value new 'element) - (plist-put (slot-value new 'element) k - (plist-get old-element k)))) + with old-element = (slot-value cell 'element) + do (progn + (setf (slot-value new 'element) + (plist-put (slot-value new 'element) k + (plist-get old-element k))))) ;; setting ewoc nodes (cl-loop for en in (ein:cell-all-element cell) - for node = (ewoc-data en) - do (setf (ein:$node-data node) new)) + for node = (ewoc-data en) + do (setf (ein:$node-data node) new)) (let ((inhibit-read-only t) (buffer-undo-list t)) ; disable undo recording ;; delete ewoc nodes that is not copied @@ -342,26 +335,15 @@ Returns true if cell is a markdown cell, has at least one # character at the sta (apply #'append (cl-loop for name in (slot-value cell 'element-names) - unless (memq name (slot-value new 'element-names)) - collect (let ((ens (ein:cell-element-get cell name))) - (if (listp ens) ens (list ens)))))) + unless (memq name (slot-value new 'element-names)) + collect (let ((ens (ein:cell-element-get cell name))) + (if (listp ens) ens (list ens)))))) ;; draw ewoc node (cl-loop with ewoc = (slot-value new 'ewoc) - for en in (ein:cell-all-element new) - do (ewoc-invalidate ewoc en))) + for en in (ein:cell-all-element new) + do (ein:cell--ewoc-invalidate ewoc en))) new)) -(cl-defmethod ein:cell-change-level ((cell ein:headingcell) level) - (cl-assert (integerp level)) - (let ((inhibit-read-only t) - (buffer-undo-list t)) ; disable undo recording - (setf (slot-value cell 'level) level) - ;; draw ewoc node - (cl-loop with ewoc = (slot-value cell 'ewoc) - for en in (ein:cell-all-element cell) - do (ewoc-invalidate ewoc en)))) - - ;;; Getter/setter (cl-defmethod ein:cell-num-outputs ((cell ein:codecell)) @@ -382,25 +364,25 @@ Returns true if cell is a markdown cell, has at least one # character at the sta (let ((element (slot-value cell 'element))) (if index (progn - (cl-assert (eql prop :output)) + (assert (eql prop :output)) (nth index (plist-get element prop))) - (cl-case prop + (case prop (:after-input - (ein:aif (nth 0 (plist-get element :output)) + (aif (nth 0 (plist-get element :output)) it (plist-get element :footer))) (:after-output (plist-get element :footer)) (:before-input (plist-get element :prompt)) (:before-output (plist-get element :input)) (:last-output - (ein:aif (plist-get element :output) + (aif (plist-get element :output) (car (last it)) (plist-get element :input))) (t (cl-call-next-method)))))) (cl-defmethod ein:cell-element-get ((cell ein:textcell) prop &rest args) (let ((element (slot-value cell 'element))) - (cl-case prop + (case prop (:after-input (plist-get element :footer)) (:before-input (plist-get element :prompt)) (t (cl-call-next-method))))) @@ -420,23 +402,20 @@ Return language name as a string or `nil' when not defined. (fn cell)") (cl-defmethod ein:cell-language ((cell ein:codecell)) - (ein:and-let* ((kernel (slot-value cell 'kernel)) + (ein:and-let* ((kernel (ein:oref-safe cell 'kernel)) (kernelspec (ein:$kernel-kernelspec kernel))) (ein:$kernelspec-language kernelspec))) (cl-defmethod ein:cell-language ((cell ein:markdowncell)) nil "markdown") (cl-defmethod ein:cell-language ((cell ein:htmlcell)) nil "html") (cl-defmethod ein:cell-language ((cell ein:rawcell)) nil "rst") - -;; EWOC - (defun ein:cell-make-element (make-node num-outputs) (let ((buffer-undo-list t)) ; disable undo recording (list :prompt (funcall make-node 'prompt) :input (funcall make-node 'input) :output (cl-loop for i from 0 below num-outputs - collect (funcall make-node 'output i)) + collect (funcall make-node 'output i)) :footer (funcall make-node 'footer)))) (cl-defmethod ein:cell-enter-last ((cell ein:basecell)) @@ -481,16 +460,12 @@ Return language name as a string or `nil' when not defined. other-cell)) (defun ein:cell-pp (path data) - (cl-case (car path) + (case (car path) (prompt (ein:cell-insert-prompt data)) (input (ein:cell-insert-input data)) (output (ein:cell-insert-output (cadr path) data)) (footer (ein:cell-insert-footer data)))) -(defun ein:maybe-show-slideshow-data (cell) - (unless (equal (slot-value cell 'slidetype) "-") - (format " - Slide [%s]:" (slot-value cell 'slidetype)))) - (cl-defmethod ein:cell-insert-prompt ((cell ein:codecell)) "Insert prompt of the CELL in the buffer. Called from ewoc pretty printer via `ein:cell-pp'." @@ -498,22 +473,12 @@ Return language name as a string or `nil' when not defined. (ein:insert-read-only (concat (format "In [%s]:" (or (ein:oref-safe cell 'input-prompt-number) " ")) - (ein:maybe-show-slideshow-data cell) (when (slot-value cell 'autoexec) " %s" ein:cell-autoexec-prompt)) 'font-lock-face 'ein:cell-input-prompt)) (cl-defmethod ein:cell-insert-prompt ((cell ein:textcell)) (ein:insert-read-only - (concat - (format "%s:" (slot-value cell 'cell-type)) - (ein:maybe-show-slideshow-data cell)) - 'font-lock-face 'ein:cell-input-prompt)) - -(cl-defmethod ein:cell-insert-prompt ((cell ein:headingcell)) - (ein:insert-read-only - (concat - (format "h%s:" (slot-value cell 'level)) - (ein:maybe-show-slideshow-data cell)) + (format "%s:" (slot-value cell 'cell-type)) 'font-lock-face 'ein:cell-input-prompt)) (cl-defmethod ein:cell-insert-input ((cell ein:basecell)) @@ -534,9 +499,6 @@ Return language name as a string or `nil' when not defined. "Return the face (symbol) for input area." 'ein:cell-input-area) -(cl-defmethod ein:cell-get-input-area-face ((cell ein:headingcell)) - (intern (format "ein:cell-heading-%d" (slot-value cell 'level)))) - (cl-defmethod ein:cell-get-output-area-face-for-output-type (output-type) "Return the face (symbol) for output area." (ein:case-equal output-type @@ -557,7 +519,7 @@ Return language name as a string or `nil' when not defined. (when (and (not (slot-value cell 'collapsed)) (= index ein:cell-max-num-outputs) (> (point) (point-at-bol))) - ;; The first output which exceeds `ein:cell-max-num-outputs'. + ;; The first output which exceeds `ein:cell-max-num-outputs'. (ein:insert-read-only "\n")) (ein:insert-read-only ".")) (let ((out (nth index (slot-value cell 'outputs)))) @@ -665,7 +627,7 @@ Return language name as a string or `nil' when not defined. (slot-value cell 'element)) (cl-defmethod ein:cell-running-set ((cell ein:codecell) running) - ;; FIXME: change the appearance of the cell + "FIXME: change the appearance of the cell" (setf (slot-value cell 'running) running)) (cl-defmethod ein:cell-set-collapsed ((cell ein:codecell) collapsed) @@ -674,7 +636,7 @@ Return language name as a string or `nil' when not defined. (setf (slot-value cell 'collapsed) collapsed) (let ((inhibit-read-only t) (buffer-undo-list t)) - (apply #'ewoc-invalidate + (apply #'ein:cell--ewoc-invalidate (slot-value cell 'ewoc) (append (ein:cell-element-get cell :output) (list (ein:cell-element-get cell :footer))))))) @@ -692,7 +654,7 @@ Return language name as a string or `nil' when not defined. (cl-defmethod ein:cell-invalidate-prompt ((cell ein:codecell)) (let ((inhibit-read-only t) (buffer-undo-list t)) ; disable undo recording - (ewoc-invalidate (slot-value cell 'ewoc) + (ein:cell--ewoc-invalidate (slot-value cell 'ewoc) (ein:cell-element-get cell :prompt)))) (cl-defmethod ein:cell-set-input-prompt ((cell ein:codecell) &optional number) @@ -727,7 +689,7 @@ PROP is a name of cell element. Default is `:input'. (unless relpos (setq relpos 0)) (unless prop (setq prop :input)) (ewoc-goto-node (slot-value cell 'ewoc) (ein:cell-element-get cell prop)) - (let ((offset (cl-case prop + (let ((offset (case prop ((:input :before-output) 1) (:after-input -1) (t 0)))) @@ -743,7 +705,7 @@ PROP is a name of cell element. Default is `:input'. (unless prop (setq prop :input)) (let ((goal-column nil)) (ewoc-goto-node (slot-value cell 'ewoc) (ein:cell-element-get cell prop))) - (let ((offset (cl-case prop + (let ((offset (case prop ((:input :before-output) 1) (:after-input -1) (t 0)))) @@ -766,7 +728,7 @@ If END is non-`nil', return the location of next element." (unless elm (setq elm :prompt)) (let ((element (slot-value cell 'element))) (when end - (setq elm (cl-case elm + (setq elm (case elm (:prompt :input) (:input :after-input) (:output :after-output))) @@ -775,20 +737,17 @@ If END is non-`nil', return the location of next element." (setq elm :prompt))) (if cell (ewoc-location (ein:cell-element-get cell elm)) - (cl-assert end) + (assert end) (point-max)))) (cl-defmethod ein:cell-buffer ((cell ein:basecell)) "Return a buffer associated by CELL (if any)." (ein:aand (ein:oref-safe cell 'ewoc) (ewoc-buffer it))) - -;; Data manipulation - (cl-defmethod ein:cell-clear-output ((cell ein:codecell) stdout stderr other) - ;; codecell.js in IPython implements it using timeout and callback. - ;; As it is unclear why timeout is needed, just clear output - ;; instantaneously for now. + "codecell.js in IPython implements it using timeout and callback. + As it is unclear why timeout is needed, just clear output + instantaneously for now." (ein:log 'debug "cell-clear-output stdout=%s stderr=%s other=%s" stdout stderr other) (setf (slot-value cell 'traceback) nil) @@ -797,9 +756,7 @@ If END is non-`nil', return the location of next element." (if (and stdout stderr other) (progn ;; clear all - (let ((inhibit-read-only t) - (buffer-undo-list t)) ; disable undo recording - (apply #'ewoc-delete ewoc output-nodes)) + (apply #'ein:cell--ewoc-delete ewoc output-nodes) (plist-put (slot-value cell 'element) :output nil) (setf (slot-value cell 'outputs) nil)) (let* ((ewoc-node-list @@ -814,9 +771,7 @@ If END is non-`nil', return the location of next element." (mapcar (lambda (n) (last (ein:$node-path (ewoc-data n)))) ewoc-node-list))) ;; remove from buffer - (let ((inhibit-read-only t) - (buffer-undo-list t)) ; disable undo recording - (apply #'ewoc-delete ewoc ewoc-node-list)) + (apply #'ein:cell--ewoc-delete ewoc ewoc-node-list) ;; remove from `:element' (let* ((element (slot-value cell 'element)) (old-output (plist-get element :output)) @@ -828,8 +783,7 @@ If END is non-`nil', return the location of next element." ;; Footer may have extra (possibly colored) newline due to the ;; last output type. So invalidate it here. ;; See `ein:cell-insert-footer' (for codecell). - (let ((buffer-undo-list t)) ; disable undo recording - (ewoc-invalidate ewoc (ein:cell-element-get cell :footer))))) + (ein:cell--ewoc-invalidate ewoc (ein:cell-element-get cell :footer)))) (defun ein:cell-output-json-to-class (json) (ein:case-equal (plist-get json :output_type) @@ -847,28 +801,26 @@ If END is non-`nil', return the location of next element." (list 'output-stream 'output-subarea (intern (format "output-%s" (plist-get json :stream))))))) -(cl-defmethod ein:cell-append-output ((cell ein:codecell) json dynamic) - ;; When there is a python error, we actually get two identical tracebacks back - ;; from the kernel, one from the "shell" channel, and one from the "iopub" - ;; channel. As a workaround, we remember the cell's traceback and ignore - ;; traceback outputs that are identical to the one we already have. +(cl-defmethod ein:cell-append-output ((cell ein:codecell) json) + "When there is a python error, we actually get two identical tracebacks back + from the kernel, one from the \"shell\" channel, and one from the \"iopub\" + channel. As a workaround, we remember the cell's traceback and ignore + traceback outputs that are identical to the one we already have." (let ((new-tb (plist-get json :traceback)) (old-tb (slot-value cell 'traceback))) (when (or (null old-tb) (null new-tb) (not (cl-equalp new-tb old-tb))) - (ein:cell-actually-append-output cell json dynamic)) + (ein:cell-actually-append-output cell json)) (setf (slot-value cell 'traceback) new-tb))) -(cl-defmethod ein:cell-actually-append-output ((cell ein:codecell) json dynamic) +(cl-defmethod ein:cell-actually-append-output ((cell ein:codecell) json) (ein:cell-expand cell) - ;; (ein:flush-clear-timeout) (setf (slot-value cell 'outputs) (append (slot-value cell 'outputs) (list json))) - ;; enter last output element (let* ((inhibit-read-only t) - (buffer-undo-list t) ; disable undo recording + (buffer-undo-list t) (ewoc (slot-value cell 'ewoc)) (index (1- (ein:cell-num-outputs cell))) (path `(cell output ,index)) @@ -879,16 +831,18 @@ If END is non-`nil', return the location of next element." (element (slot-value cell 'element))) (plist-put element :output (append (plist-get element :output) (list ewoc-node))) - (ewoc-invalidate ewoc (ein:cell-element-get cell :footer)))) + (ein:cell--ewoc-invalidate ewoc (ein:cell-element-get cell :footer)))) (cl-defmethod ein:cell-append-pyout ((cell ein:codecell) json) "Insert pyout type output in the buffer. Called from ewoc pretty printer via `ein:cell-insert-output'." (ein:insert-read-only (format "Out [%s]:" - (or (plist-get json :prompt_number) " ")) + (or (plist-get json :prompt_number) + (plist-get json :execution_count) + " ")) 'font-lock-face 'ein:cell-output-prompt) (ein:insert-read-only "\n") - (ein:cell-append-mime-type json (slot-value cell 'dynamic)) + (ein:cell-append-mime-type json (not (ein:oref-safe cell 'kernel))) (ein:insert-read-only "\n")) (cl-defmethod ein:cell-append-pyerr ((cell ein:codecell) json) @@ -901,7 +855,7 @@ Called from ewoc pretty printer via `ein:cell-insert-output'." (level ein:cell-traceback-level)) (if (and level (> (- (length tb) 2) level)) (cons (substitute-command-keys - "\nTruncated Traceback (Use \\[ein:tb-show] to view full TB):") + "\nTruncated Traceback (Use \\[ein:tb-show-km] to view full TB):") (last tb (1+ level))) tb))) (ein:insert-read-only "\n")) @@ -935,94 +889,48 @@ Called from ewoc pretty printer via `ein:cell-insert-output'." (cl-defmethod ein:cell-append-display-data ((cell ein:codecell) json) "Insert display-data type output in the buffer. Called from ewoc pretty printer via `ein:cell-insert-output'." - (if (and (or (plist-get json :javascript) - (plist-get json :html)) - (slot-value cell 'dynamic) ein:enable-dynamic-javascript) - (ein:execute-javascript cell json) - (progn - (ein:cell-append-mime-type json (slot-value cell 'dynamic)) - (ein:insert-read-only "\n")))) + (ein:cell-append-mime-type json (not (ein:oref-safe cell 'kernel))) + (ein:insert-read-only "\n")) -(defcustom ein:output-type-preference - (if (and (fboundp 'shr-insert-document) - (fboundp 'libxml-parse-xml-region)) - #'ein:output-type-prefer-pretty-text-over-html - '(emacs-lisp svg image/svg+xml png image/png jpeg image/jpeg html text/html latex text/latex javascript text/javascript text text/plain)) - "Output types to be used in notebook. -First output-type found in this list will be used. -This variable can be a list or a function returning a list given -DATA plist. -See also `ein:output-type-prefer-pretty-text-over-html'. +(make-obsolete-variable 'ein:output-type-preference nil "0.17.0") -**Example**: -If you prefer HTML type over text type, you can set it as:: +(defun ein:cell-extract-image-format (mime-type) + "From :image/svg+xml to \"svg\"." + (let* ((mime-str (if (symbolp mime-type) (symbol-name mime-type) mime-type)) + (minor-kw (car (nreverse (split-string mime-str "/")))) + (minor (car (nreverse (split-string minor-kw ":"))))) + (cl-subseq minor 0 (cl-search "+" minor)))) - (setq ein:output-type-preference - '(emacs-lisp svg png jpeg html text latex javascript)) - -Note that ``html`` comes before ``text``." - :type '(choice function (repeat symbol)) - :group 'ein) - -(defvar ein:output-types-text-preferred - '(emacs-lisp svg image/svg+xml png image/png jpeg image/jpeg text text/plain html text/html latex text/latex javascript text/javascript)) - -(defvar ein:output-types-html-preferred - '(emacs-lisp svg image/svg+xml png image/png jpeg image/jpeg html text/html latex text/latex javascript text/javascript text text/plain)) - -(defun ein:output-type-prefer-pretty-text-over-html (data) - "Use text type if it is a \"prettified\" text instead of HTML. -This is mostly for *not* using HTML table for pandas but using -HTML for other object. - -If the text type output contains a newline, it is assumed be a -prettified text thus be used instead of HTML type." - (if (ein:aand (or (plist-get data :text) - (plist-get data :text/plain)) - (string-match-p "\n" it)) - ein:output-types-text-preferred - ein:output-types-html-preferred)) - -(defun ein:fix-mime-type (type) - (ein:aif (assoc type ein:mime-type-map) - (cdr it) - type)) - -(defun ein:cell-append-mime-type (json dynamic) - (when (plist-get json :data) - (setq json (plist-get json :data))) ;; For nbformat v4 support. - (cl-loop - for key in (cond - ((functionp ein:output-type-preference) - (funcall ein:output-type-preference json)) - (t ein:output-type-preference)) - for type = (intern (format ":%s" key)) ; something like `:text' - for value = (plist-get json type) ; FIXME: optimize - when (plist-member json type) - return - (cl-case key - ;; NOTE: Normally `javascript' and `html' will not be inserted as - ;; they come out after `text'. Maybe it is better to inform user - ;; when one of them is inserted. - ((javascript text/javascript) - (when dynamic - (ein:log 'info (concat "ein:cell-append-mime-type does not support " - "dynamic javascript. got: %s") value)) - (ein:insert-read-only (plist-get json type))) - (emacs-lisp - (when dynamic - (ein:cell-safe-read-eval-insert (plist-get json type)))) - ((html text/html) - (funcall (ein:output-area-get-html-renderer) (plist-get json type))) - ((latex text/latex text text/plain) - (ein:insert-read-only (ansi-color-apply (plist-get json type)))) - ((svg image/svg+xml) - (ein:insert-image value (ein:fix-mime-type key) t)) - ((png image/png jpeg image/jpeg) - (ein:insert-image (base64-decode-string value) (ein:fix-mime-type key) t))))) +(defun ein:cell-append-mime-type (json starting-p) + (ein:output-area-case-type + json + (cl-case type + ((:text/html) + (funcall (ein:output-area-get-html-renderer) value)) + ((:image/svg+xml :image/png :image/jpeg) + (let ((image (create-image (condition-case nil + (base64-decode-string value) + (error value)) + (intern-soft (ein:cell-extract-image-format type)) + t))) + (if ein:output-area-inlined-images + (ein:insert-image image) + (unless starting-p ;; don't display on ein:worksheet-render + (let* ((handle (ein:make-mm-handle image)) + (type (mm-handle-media-type handle)) + (method (seq-some (lambda (i) (cdr (assoc 'viewer i))) + (mailcap-mime-info type 'all)))) + (when (and (stringp method) (string-match "^[^% \t]+$" method)) + (setq method (concat method " %s"))) + (if (and (stringp method) (> (length method) 0)) + (mm-display-external handle method) + (ein:log 'warn "ein:cell-append-mime-type: %s" + "no viewer method found in mailcap"))))))) + (otherwise + (ein:insert-read-only value))))) (defun ein:cell-append-text (data &rest properties) - ;; escape ANSI in plaintext: + "escape ANSI in plaintext:" (apply #'ein:insert-read-only (ansi-color-apply data) properties)) (defun ein:cell-safe-read-eval-insert (text) @@ -1036,154 +944,54 @@ prettified text thus be used instead of HTML type." text) (format "Error: %S" err))))) -(cl-defmethod ein:cell-to-json ((cell ein:codecell) &optional discard-output) +(cl-defmethod ein:cell-to-json ((cell ein:codecell)) "Return json-ready alist." `((input . ,(ein:cell-get-text cell)) (cell_type . "code") - ,@(ein:aif (ein:oref-safe cell 'input-prompt-number) + ,@(aif (ein:oref-safe cell 'input-prompt-number) `((prompt_number . ,it))) - (outputs . ,(if discard-output [] (apply #'vector (slot-value cell 'outputs)))) - (language . "python") + (outputs . ,(apply #'vector (slot-value cell 'outputs))) + (language . ,(or (ein:cell-language cell) "python")) (collapsed . ,(if (slot-value cell 'collapsed) t json-false)))) - -(defvar ein:output-type-map - '((:svg . :image/svg+xml) (:png . :image/png) (:jpeg . :image/jpeg) - (:text . :text/plain) - (:html . :text/html) (:latex . :text/latex) (:javascript . :text/javascript))) - -(defun ein:output-property-p (maybe-property) - (assoc maybe-property ein:output-type-map)) - -(cl-defmethod ein:cell-to-nb4-json ((cell ein:codecell) wsidx &optional discard-output) - (let* ((ss-table (ein:get-slide-show cell)) - (metadata (slot-value cell 'metadata)) - (outputs (if discard-output [] - (slot-value cell 'outputs))) - (renamed-outputs '()) - (execute-count (ein:aif (ein:oref-safe cell 'input-prompt-number) - (and (numberp it) it)))) - (setq metadata (plist-put metadata :collapsed (if (slot-value cell 'collapsed) t json-false))) - (setq metadata (plist-put metadata :autoscroll json-false)) - (setq metadata (plist-put metadata :ein.tags (format "worksheet-%s" wsidx))) - (setq metadata (plist-put metadata :ein.hycell (if (ein:hy-codecell-p cell) - t - json-false))) - (setq metadata (plist-put metadata :slideshow ss-table)) - (unless discard-output - (dolist (output outputs) - (let ((otype (plist-get output :output_type))) - (ein:log 'debug "Saving output of type %S" otype) - (if (and (or (equal otype "display_data") - (equal otype "execute_result")) - (null (plist-get output :metadata))) - (plist-put output :metadata (make-hash-table))) - (setq renamed-outputs - (append renamed-outputs - (list (let ((ocopy (cl-copy-list output)) - (new-output '())) - (cl-loop while ocopy - do (let ((prop (pop ocopy)) - (value (pop ocopy))) - (ein:log 'debug "Checking property %s for output type '%s'" - prop otype) - (cond - ((equal prop :stream) (progn (push value new-output) - (push :name new-output))) - - ((and (or (equal otype "display_data") - (equal otype "execute_result")) - (ein:output-property-p prop)) - (let ((new-prop (cdr (ein:output-property-p prop)))) - (if (plist-member new-output :data) - (setq new-output (plist-put new-output :data - (append (plist-get new-output :data) - (list new-prop (list value)) - ))) - (push (list new-prop (list value)) new-output) - (push :data new-output)) - )) - - ((and (equal otype "display_data") - (equal prop :text)) - (ein:log 'debug "SAVE-NOTEBOOK: Skipping unnecessary :text data.")) - - ;; ((and (equal otype "execute_result") - ;; (ein:output-property-p prop) - ;; ;; (or (equal prop :text) - ;; ;; (equal prop :html) - ;; ;; (equal prop :latex)) - ;; ) - ;; (ein:log 'debug "Fixing execute_result (%s?)." otype) - ;; (let ((new-prop (cdr (ein:output-property-p prop)))) - ;; (push (list new-prop (list value)) new-output) - ;; (push :data new-output))) - - - ((and (equal otype "execute_result") - (equal prop :prompt_number)) - (ein:log 'debug "SAVE-NOTEBOOK: Fixing prompt_number property.") - (push value new-output) - (push :execution_count new-output)) - - (t (progn (push value new-output) (push prop new-output))))) - finally return new-output)))) - )))) +(cl-defmethod ein:cell-to-nb4-json ((cell ein:codecell) wsidx) + (let ((execute-count (aif (ein:oref-safe cell 'input-prompt-number) + (and (numberp it) it))) + (metadata (slot-value cell 'metadata))) `((source . ,(ein:cell-get-text cell)) (cell_type . "code") - ,@(if execute-count - `((execution_count . ,execute-count)) - `((execution_count))) - (outputs . ,(apply #'vector (or renamed-outputs outputs))) - (metadata . ,metadata)))) + (execution_count . ,execute-count) + (outputs . ,(apply #'vector (slot-value cell 'outputs))) + (metadata . ,(plist-put metadata :collapsed (if (slot-value cell 'collapsed) t + json-false)))))) -(cl-defmethod ein:cell-to-json ((cell ein:textcell) &optional discard-output) +(cl-defmethod ein:cell-to-json ((cell ein:textcell)) `((cell_type . ,(slot-value cell 'cell-type)) (source . ,(ein:cell-get-text cell)))) -(cl-defmethod ein:cell-to-nb4-json ((cell ein:textcell) wsidx &optional discard-output) - (let ((metadata (slot-value cell 'metadata)) - (ss-table (ein:get-slide-show cell))) - (setq metadata (plist-put metadata :ein.tags (format "worksheet-%s" wsidx))) - (setq metadata (plist-put metadata :slideshow ss-table)) +(cl-defmethod ein:cell-to-nb4-json ((cell ein:textcell) wsidx) + (let ((metadata (slot-value cell 'metadata))) `((cell_type . ,(slot-value cell 'cell-type)) (source . ,(ein:cell-get-text cell)) - (metadata . ,metadata)))) - -(cl-defmethod ein:cell-to-nb4-json ((cell ein:headingcell) wsidx &optional discard-output) - (let ((metadata (slot-value cell 'metadata)) - (ss-table (ein:get-slide-show cell)) - (header (make-string (slot-value cell 'level) ?#))) - (setq metadata (plist-put metadata :ein.tags (format "worksheet-%s" wsidx))) - (setq metadata (plist-put metadata :slideshow ss-table)) - `((cell_type . "markdown") - (source . ,(format "%s %s" header (ein:cell-get-text cell))) - (metadata . ,metadata)))) - -(cl-defmethod ein:cell-to-json ((cell ein:headingcell) &optional discard-output) - (let ((json (cl-call-next-method))) - (append json `((level . ,(slot-value cell 'level)))))) + (metadata . ,(plist-put metadata :collapsed json-false))))) (cl-defmethod ein:cell-next ((cell ein:basecell)) "Return next cell of the given CELL or nil if CELL is the last one." - (ein:aif (ewoc-next (slot-value cell 'ewoc) - (ein:cell-element-get cell :footer)) + (aif (ewoc-next (slot-value cell 'ewoc) + (ein:cell-element-get cell :footer)) (let ((cell (ein:$node-data (ewoc-data it)))) (when (cl-typep cell 'ein:basecell) cell)))) (cl-defmethod ein:cell-prev ((cell ein:basecell)) "Return previous cell of the given CELL or nil if CELL is the first one." - (ein:aif (ewoc-prev (slot-value cell 'ewoc) - (ein:cell-element-get cell :prompt)) + (aif (ewoc-prev (slot-value cell 'ewoc) + (ein:cell-element-get cell :prompt)) (let ((cell (ein:$node-data (ewoc-data it)))) (when (cl-typep cell 'ein:basecell) cell)))) - -;;; Kernel related calls. - (cl-defmethod ein:cell-set-kernel ((cell ein:codecell) kernel) (setf (slot-value cell 'kernel) kernel)) @@ -1199,7 +1007,6 @@ prettified text thus be used instead of HTML type." (ein:cell-running-set cell t) (ein:cell-clear-output cell t t t) (ein:cell-set-input-prompt cell "*") - (setf (slot-value cell 'dynamic) t) (apply #'ein:kernel-execute kernel code (ein:cell-make-callbacks cell) args)) (cl-defmethod ein:cell-make-callbacks ((cell ein:codecell)) @@ -1209,8 +1016,7 @@ prettified text thus be used instead of HTML type." :clear_output (cons #'ein:cell--handle-clear-output cell) :set_next_input (cons #'ein:cell--handle-set-next-input cell))) -(cl-defmethod ein:cell--handle-execute-reply ((cell ein:codecell) content - metadata) +(cl-defmethod ein:cell--handle-execute-reply ((cell ein:codecell) content metadata) (run-hook-with-args 'ein:on-execute-reply-functions cell content metadata) (ein:cell-set-input-prompt cell (plist-get content :execution_count)) (ein:cell-running-set cell nil) @@ -1224,58 +1030,38 @@ prettified text thus be used instead of HTML type." (let ((events (slot-value cell 'events))) (ein:events-trigger events 'set_next_input.Worksheet (list :cell cell :text text)) - (ein:events-trigger events 'maybe_reset_undo.Worksheet cell) - )) - - - -;;; Output area - -;; These function should go to ein-output-area.el. But as cell and -;; EWOC is connected in complicated way, I will leave them in -;; ein-cell.el. - -(cl-defmethod ein:cell--handle-output ((cell ein:codecell) msg-type content - _metadata) - (let* ((json (list :output_type msg-type))) - (ein:case-equal msg-type - (("stream") - (plist-put json :text (or (plist-get content :data) - (plist-get content :text))) ;; Horrible hack to deal with version 5.0 of messaging protocol. - (plist-put json :stream (plist-get content :name))) - (("display_data" "pyout" "execute_result") ;; in v4 nbformat execute_result == pyout - (when (or (equal msg-type "pyout") - (equal msg-type "execute_result")) - (plist-put json :prompt_number (plist-get content :execution_count))) - (setq json - (ein:output-area-convert-mime-types json (plist-get content :data)))) - (("pyerr" "error") - (plist-put json :ename (plist-get content :ename)) - (plist-put json :evalue (plist-get content :evalue)) - (plist-put json :traceback (plist-get content :traceback)))) - (ein:cell-append-output cell json t) - ;; (setf (slot-value cell 'dirty) t) - (ein:events-trigger (slot-value cell 'events) 'maybe_reset_undo.Worksheet cell))) - - -(defun ein:output-area-convert-mime-types (json data) - (cl-loop for (prop . mime) in '((:text . :text/plain) - (:html . :text/html) - (:svg . :image/svg+xml) - (:png . :image/png) - (:jpeg . :image/jpeg) - (:latex . :text/latex) - (:json . :application/json) - (:javascript . :application/javascript) - (:emacs-lisp . :application/emacs-lisp)) - when (plist-member data mime) - do (plist-put json prop (plist-get data mime))) - json) + (ein:events-trigger events 'maybe_reset_undo.Worksheet cell))) +(cl-defmethod ein:cell--handle-output ((cell ein:codecell) msg-type content _metadata) + (ein:log 'debug "ein:cell--handle-output (cell ein:codecell): %s" msg-type) + (let ((json `(:output_type ,msg-type))) + (cl-macrolet ((copy-props + (src tgt props) + `(mapc (lambda (kw) + (let ((val (plist-get ,src kw))) + (when (and (null val) (plist-member ,src kw)) + (setq val (make-hash-table))) + (setq ,tgt (plist-put ,tgt kw val)))) + ,props))) + (ein:case-equal msg-type + (("stream") + (copy-props content json '(:name :text))) + (("display_data") + (copy-props content json '(:data :metadata))) + (("execute_result" "pyout") + (copy-props content json '(:execution_count :data :metadata))) + (("error" "pyerr") + (copy-props content json '(:ename :evalue :traceback))) + (t + (ein:log 'error "ein:cell--handle-output: unhandled msg_type '%s'" msg-type) + (setq json nil)))) + (when json + (ein:cell-append-output cell json) + (ein:events-trigger (slot-value cell 'events) 'maybe_reset_undo.Worksheet cell)))) (cl-defmethod ein:cell--handle-clear-output ((cell ein:codecell) content _metadata) - ;; Jupyter messaging spec 5.0 no longer has stdout, stderr, or other fields for clear_output + "Jupyter messaging spec 5.0 no longer has stdout, stderr, or other fields for clear_output" (ein:cell-clear-output cell t ;;(plist-get content :stdout) t ;;(plist-get content :stderr) @@ -1283,28 +1069,22 @@ prettified text thus be used instead of HTML type." ) (ein:events-trigger (slot-value cell 'events) 'maybe_reset_undo.Worksheet cell)) - -;;; Misc. - -(cl-defmethod ein:cell-has-image-ouput-p ((cell ein:codecell)) +(cl-defmethod ein:cell-has-image-output-p ((cell ein:codecell)) "Return `t' if given cell has image output, `nil' otherwise." - (cl-loop for out in (slot-value cell 'outputs) - when (or (plist-member out :svg) - (plist-member out :image/svg+xml) - (plist-member out :png) - (plist-member out :image/png) - (plist-member out :jpeg) - (plist-member out :image/jpeg)) - return t)) + (seq-some (lambda (out) + (or (plist-member out :image/svg+xml) + (plist-member out :image/png) + (plist-member out :image/jpeg))) + (slot-value cell 'outputs))) -(cl-defmethod ein:cell-has-image-ouput-p ((cell ein:textcell)) +(cl-defmethod ein:cell-has-image-output-p ((cell ein:textcell)) nil) (cl-defmethod ein:cell-get-tb-data ((cell ein:codecell)) (cl-loop for out in (slot-value cell 'outputs) - when (and (plist-get out :traceback) - (member (plist-get out :output_type) '("pyerr" "error"))) - return (plist-get out :traceback))) + when (and (plist-get out :traceback) + (member (plist-get out :output_type) '("pyerr" "error"))) + return (plist-get out :traceback))) (provide 'ein-cell) diff --git a/elpa/ein-20200202.218/ein-cell.elc b/elpa/ein-20200202.218/ein-cell.elc new file mode 100644 index 0000000000000000000000000000000000000000..b737d66473cc71191ea502dbc4b1180cc5d21418 GIT binary patch literal 40761 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 A?*IS* literal 0 HcmV?d00001 diff --git a/elpa/ein-20200127.249/ein-classes.el b/elpa/ein-20200202.218/ein-classes.el similarity index 81% rename from elpa/ein-20200127.249/ein-classes.el rename to elpa/ein-20200202.218/ein-classes.el index 393899da..8b863bed 100644 --- a/elpa/ein-20200127.249/ein-classes.el +++ b/elpa/ein-20200202.218/ein-classes.el @@ -25,9 +25,7 @@ ;;; Content (require 'eieio) -(require 'ein-utils) - -(cl-defstruct ein:$content +(defstruct ein:$content "Content returned from the Jupyter notebook server: `ein:$content-url-or-port' URL or port of Jupyter server. @@ -65,9 +63,6 @@ :file : Either :text or :base64 :notebook : :json. -`ein:$content-checkpoints' - Names auto-saved checkpoints for content. Stored as a list - of ( . ) pairs. " url-or-port notebook-version @@ -80,14 +75,10 @@ mimetype raw-content format - session-p - checkpoints) - - - + session-p) ;;; Websockets -(cl-defstruct ein:$websocket +(defstruct ein:$websocket "A wrapper object of `websocket'. `ein:$websocket-ws' : an instance returned by `websocket-open' @@ -100,7 +91,7 @@ ;;; Notebook -(cl-defstruct ein:$notebook +(defstruct ein:$notebook "Hold notebook variables. `ein:$notebook-url-or-port' @@ -150,13 +141,6 @@ `ein:$notebook-api-version' : integer Major version of the IPython notebook server we are talking to. - -`ein:$notebook-checkpoints' - Names auto-saved checkpoints for content. Stored as a list - of ( . ) pairs. - -`ein:$notebook-q-checkpoints' - Whether to checkpoint on save. Overrides ein:notebook-create-checkpoint-on-save " url-or-port notebook-id ;; In IPython-2.0 this is "[:path]/[:name].ipynb" @@ -173,10 +157,7 @@ events worksheets scratchsheets - api-version - autosave-timer - checkpoints - q-checkpoints) + api-version) @@ -185,10 +166,6 @@ ((nbformat :initarg :nbformat :type integer) (get-notebook-name :initarg :get-notebook-name :type cons :accessor ein:worksheet--notebook-name) - ;; This slot introduces too much complexity so therefore must be - ;; removed later. This is here only for backward compatible - ;; reason. - (discard-output-p :initarg :discard-output-p :accessor ein:worksheet--discard-output-p) (saved-cells :initarg :saved-cells :initform nil :accessor ein:worksheet--saved-cells :documentation @@ -202,9 +179,8 @@ (metadata :initarg :metadata :initform nil :accessor ein:worksheet--metadata) (events :initarg :events :accessor ein:worksheet--events))) - ;;; Kernel -(cl-defstruct ein:$kernelspec +(defstruct ein:$kernelspec "Kernel specification as return by the Jupyter notebook server. `ein:$kernelspec-name' : string @@ -231,7 +207,7 @@ ;; FIXME: Rewrite `ein:$kernel' using `defclass'. It should ease ;; testing since I can mock I/O using method overriding. -(cl-defstruct ein:$kernel +(defstruct ein:$kernel "Should perhaps be named ein:$session. We glom session and kernel as defined by the server as just ein:$kernel in the client. " @@ -270,9 +246,8 @@ (input :initarg :input :type string :documentation "Place to hold data until it is rendered via `ewoc'.") (outputs :initarg :outputs :initform nil :type list) - (metadata :initarg :metadata :initform nil :type list :accessor ein:cell-metadata) ;; For nbformat >= 4 + (metadata :initarg :metadata :initform nil :type list :accessor ein:cell-metadata) (events :initarg :events :type ein:events) - (slidetype :initarg :slidetype :initform "-" :type string) (cell-id :initarg :cell-id :initform (ein:utils-uuid) :type string :accessor ein:cell-id)) "Notebook cell base class") @@ -281,7 +256,7 @@ ((traceback :initform nil :initarg :traceback :type list) (cell-type :initarg :cell-type :initform "code") (kernel :initarg :kernel :type ein:$kernel :accessor ein:cell-kernel) - (element-names :initform (:prompt :input :output :footer :slidetype)) + (element-names :initform (:prompt :input :output :footer)) (input-prompt-number :initarg :input-prompt-number :documentation "\ Integer or \"*\" (running state). @@ -290,17 +265,6 @@ Typed `:input-prompt-number' becomes a problem when reading a notebook that saved "*". So don't add `:type'!") (collapsed :initarg :collapsed :initform nil :type boolean) (running :initarg :running :initform nil :type boolean) - (dynamic :initarg :dynamic :initform nil :type boolean - :documentation "\ -Whether cell output is evaluated dynamically or not. - -Only Emacs lisp type output data will be affected by this -slot (Javascript will not be evaluated). This value must be set -to `t' when executing cell. See `ein:notebook-execute-cell'. -In the implantation of IPython web client it is passed around via -argument, but since it is difficult to pass argument to EWOC -pretty printer, `ein:codecell' instance holds this setting in a -slot.") (autoexec :initarg :autoexec :initform nil :type boolean :documentation "Auto-execution flag. @@ -308,14 +272,9 @@ This cell is executed when the connected buffer is saved, provided that (1) this flag is `t' and (2) corresponding auto-execution mode flag in the connected buffer is `t'."))) -;; Use this cell to execute hy code in notebook running a Python kernel. -(defclass ein:hy-codecell (ein:codecell) - ((cell-type :initarg :cell-type :initform "hy-code")) - "Codecell that supports executing hy code from within a Python kernel.") - (defclass ein:textcell (ein:basecell) ((cell-type :initarg :cell-type :initform "text") - (element-names :initform (:prompt :input :footer :slidetype)))) + (element-names :initform (:prompt :input :footer)))) (defclass ein:htmlcell (ein:textcell) ((cell-type :initarg :cell-type :initform "html"))) @@ -326,11 +285,6 @@ auto-execution mode flag in the connected buffer is `t'."))) (defclass ein:rawcell (ein:textcell) ((cell-type :initarg :cell-type :initform "raw"))) -(defclass ein:headingcell (ein:textcell) - ((cell-type :initarg :cell-type :initform "heading") - (level :initarg :level :initform 1))) - - ;;; Notifications (defclass ein:notification-status () @@ -367,11 +321,9 @@ auto-execution mode flag in the connected buffer is `t'."))) (ein:notification-status "NotebookStatus" :s2m - '((notebook_saving.Notebook . "Saving Notebook...") - (notebook_create_checkpoint.Notebook . "Creating Checkpoint...") - (notebook_saved.Notebook . "Notebook is saved") - (notebook_checkpoint_created.Notebook . "Checkpoint created.") - (notebook_save_failed.Notebook . "Failed to save Notebook!"))) + '((notebook_saving.Notebook . "Saving notebook...") + (notebook_saved.Notebook . "Notebook saved") + (notebook_save_failed.Notebook . "Failed saving notebook!"))) :type ein:notification-status) (kernel :initarg :kernel @@ -380,17 +332,16 @@ auto-execution mode flag in the connected buffer is `t'."))) "KernelStatus" :s2m '((status_idle.Kernel . nil) - (status_busy.Kernel . "Kernel is busy...") + (status_busy.Kernel . "Kernel busy...") (status_restarting.Kernel . "Kernel restarting...") (status_restarted.Kernel . "Kernel restarted") - (status_dead.Kernel . "Kernel requires restart \\\\[ein:notebook-restart-session-command]") + (status_dead.Kernel . "Kernel requires restart \\\\[ein:notebook-restart-session-command-km]") (status_reconnecting.Kernel . "Kernel reconnecting...") (status_reconnected.Kernel . "Kernel reconnected") - (status_disconnected.Kernel . "Kernel requires reconnect \\\\[ein:notebook-reconnect-session-command]"))) + (status_disconnected.Kernel . "Kernel requires reconnect \\\\[ein:notebook-reconnect-session-command-km]"))) :type ein:notification-status)) "Notification widget for Notebook.") - ;;; Events (defclass ein:events () diff --git a/elpa/ein-20200127.249/ein-classes.elc b/elpa/ein-20200202.218/ein-classes.elc similarity index 70% rename from elpa/ein-20200127.249/ein-classes.elc rename to elpa/ein-20200202.218/ein-classes.elc index b0854573cd9ee1c11ebeddd1f5c1516a54bc921c..9421b3ac29bf138778be999b922d5f6986ef4506 100644 GIT binary patch delta 3953 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 delta 6576 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 / John Miller + +;; This file is NOT part of GNU Emacs. + +;; ein-completer.el 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. + +;; ein-completer.el 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 ein-completer.el. If not, see . + +;;; Commentary: + +;; This needs to get re-written. + +;;; Code: + +(make-obsolete-variable 'ein:complete-on-dot nil "0.15.0") +(make-obsolete-variable 'ein:completion-backend nil "0.17.0") + +(provide 'ein-completer) + +;;; ein-completer.el ends here diff --git a/elpa/skewer-mode-20200103.2247/skewer-setup.elc b/elpa/ein-20200202.218/ein-completer.elc similarity index 57% rename from elpa/skewer-mode-20200103.2247/skewer-setup.elc rename to elpa/ein-20200202.218/ein-completer.elc index 78d8ba712ef2173891808217032417a926934415..3ae325ee1222fe9c0e83875c27e5cd016041923e 100644 GIT binary patch delta 193 zcmdnbdYWa!WX5`pq{@<1-Q@g~R0X9NV*>*qHUwfLAU0NxF){=RfUpTv&=e+U1{5$? zj4?7WS5k=1P0UW!%}*-M&q)QER+d y&@(jEGf+}UwM3}M1S&{MOwLZtO93k|2Pr5h$}h_Vx(#R&(2)?6ieeQ^G`RrW;X69k#25&N~(@R za&a+~m6(^JkWrGG1Li6um8PYo78UEsb7`ccrX}WNCKfBG7lVz^Elw>dEl^O7Hc(KC zF*Yy&VnZM{icyL&G6eDJL4+|7o4|!YBBnrW1`;taS5k;hOi9tr$j{G)y9L67S^;t# y+-)c_Fb5;tiXsj2fgacku?oft8p (length (request-response-history response)) 0)) - (setf (ein:$content-url-or-port content) (ein:get-response-redirect response))) + (aif response + (setf (ein:$content-url-or-port content) (ein:get-response-redirect it))) (when callback (funcall callback content)))) (defun ein:fix-legacy-content-data (data) (if (listp (car data)) (cl-loop for item in data - collecting - (ein:fix-legacy-content-data item)) + collecting + (ein:fix-legacy-content-data item)) (if (string= (plist-get data :path) "") (plist-put data :path (plist-get data :name)) (plist-put data :path (format "%s/%s" (plist-get data :path) (plist-get data :name)))))) @@ -175,7 +160,7 @@ global setting. For global setting and more information, see (defun ein:content-need-hierarchy (url-or-port) "Callers assume ein:content-query-hierarchy succeeded. If not, nil." - (ein:aif (gethash url-or-port *ein:content-hierarchy*) it + (aif (gethash url-or-port *ein:content-hierarchy*) it (ein:log 'warn "No recorded content hierarchy for %s" url-or-port) nil)) @@ -217,42 +202,46 @@ global setting. For global setting and more information, see (defun ein:content-query-hierarchy* (url-or-port path callback sessions depth content) "Returns list (tree) of content objects. CALLBACK accepts tree." - (let* ((url-or-port url-or-port) - (path path) - (callback callback) - (items (ein:$content-raw-content content)) - (directories (if (< depth ein:content-query-max-depth) - (cl-loop for item in items - with result = nil - until (>= (length result) ein:content-query-max-branch) - do (if (string= "directory" (plist-get item :type)) - (setf result (append result (list (ein:new-content url-or-port path item))))) - finally return result ) )) - (others (cl-loop for item in items - with c0 - if (not (string= "directory" (plist-get item :type))) - do (setf c0 (ein:new-content url-or-port path item) - (ein:$content-session-p c0) - (gethash (ein:$content-path c0) sessions)) - and collect c0 - end))) + (lexical-let* ((url-or-port url-or-port) + (path path) + (callback callback) + (items (ein:$content-raw-content content)) + (directories (if (< depth ein:content-query-max-depth) + (cl-loop for item in items + with result + until (>= (length result) ein:content-query-max-branch) + if (string= "directory" (plist-get item :type)) + collect (ein:new-content url-or-port path item) + into result + end + finally return result))) + (others (cl-loop for item in items + with c0 + if (not (string= "directory" (plist-get item :type))) + do (setf c0 (ein:new-content url-or-port path item)) + (setf (ein:$content-session-p c0) + (gethash (ein:$content-path c0) sessions)) + and collect c0 + end))) (deferred:$ - (apply #'deferred:parallel - (cl-loop for c0 in directories - collect - (let ((c0 c0) - (d0 (deferred:new #'identity))) - (ein:content-query-contents - url-or-port - (ein:$content-path c0) - (apply-partially #'ein:content-query-hierarchy* - url-or-port - (ein:$content-path c0) - (lambda (tree) - (deferred:callback-post d0 (cons c0 tree))) - sessions (1+ depth)) - (lambda (&rest _ignore) (deferred:callback-post d0 (cons c0 nil)))) - d0))) + (apply + #'deferred:parallel + (cl-loop for c0 in directories + collect + (lexical-let + ((c0 c0) + (d0 (deferred:new #'identity))) + (ein:content-query-contents + url-or-port + (ein:$content-path c0) + (apply-partially #'ein:content-query-hierarchy* + url-or-port + (ein:$content-path c0) + (lambda (tree) + (deferred:callback-post d0 (cons c0 tree))) + sessions (1+ depth)) + (lambda (&rest _args) (deferred:callback-post d0 (cons c0 nil)))) + d0))) (deferred:nextc it (lambda (tree) (let ((result (append others tree))) @@ -270,39 +259,28 @@ global setting. For global setting and more information, see url-or-port* "" callback* sessions 0) - (lambda (&rest _ignore) + (lambda (&rest ignore) (when callback* (funcall callback* nil))))) url-or-port callback) callback)) - + ;;; Save Content -(defun ein:content-save-legacy (content &optional callback cbargs errcb errcbargs) +(defsubst ein:content-url (content) + (ein:notebooklist-url (ein:$content-url-or-port content) + (ein:$content-path content))) + +(defun ein:content-save (content &optional callback cbargs errcb errcbargs) (ein:query-singleton-ajax - (list 'content-save (ein:$content-url-or-port content) (ein:$content-path content)) (ein:content-url content) :type "PUT" :headers '(("Content-Type" . "application/json")) - :timeout ein:content-query-timeout - :data (ein:content-to-json content) + :data (encode-coding-string (ein:content-to-json content) buffer-file-coding-system) :success (apply-partially #'ein:content-save-success callback cbargs) - :error (apply-partially #'ein:content-save-error (ein:content-url content) errcb errcbargs))) + :error (apply-partially #'ein:content-save-error + (ein:content-url content) errcb errcbargs))) -(defun ein:content-save (content &optional callback cbargs errcb errcbargs) - (if (>= (ein:$content-notebook-version content) 3) - (ein:query-singleton-ajax - (list 'content-save (ein:$content-url-or-port content) (ein:$content-path content)) - (ein:content-url content) - :type "PUT" - :headers '(("Content-Type" . "application/json")) - :timeout ein:content-query-timeout - :data (encode-coding-string (ein:content-to-json content) buffer-file-coding-system) - :success (apply-partially #'ein:content-save-success callback cbargs) - :error (apply-partially #'ein:content-save-error (ein:content-url content) errcb errcbargs)) - (ein:content-save-legacy content callback cbargs))) - -(cl-defun ein:content-save-success (callback cbargs &key _status _response &allow-other-keys) - ;;(ein:log 'verbose "Saving content successful with status %s" status) +(cl-defun ein:content-save-success (callback cbargs &key status response &allow-other-keys) (when callback (apply callback cbargs))) @@ -313,15 +291,10 @@ global setting. For global setting and more information, see (when errcb (apply errcb errcbargs))) - -;;; Rename Content - - (defun ein:content-legacy-rename (content new-path callback cbargs) - (let ((path (substring new-path 0 (or (position ?/ new-path :from-end t) 0))) - (name (substring new-path (or (position ?/ new-path :from-end t) 0)))) + (let ((path (substring new-path 0 (or (cl-position ?/ new-path :from-end t) 0))) + (name (substring new-path (or (cl-position ?/ new-path :from-end t) 0)))) (ein:query-singleton-ajax - (list 'content-rename (ein:$content-url-or-port content) (ein:$content-path content)) (ein:content-url content) :type "PATCH" :data (json-encode `((name . ,name) @@ -341,7 +314,6 @@ global setting. For global setting and more information, see (defun ein:content-rename (content new-path &optional callback cbargs) (if (>= (ein:$content-notebook-version content) 3) (ein:query-singleton-ajax - (list 'content-rename (ein:$content-url-or-port content) (ein:$content-path content)) (ein:content-url content) :type "PATCH" :data (json-encode `((path . ,new-path))) @@ -352,15 +324,14 @@ global setting. For global setting and more information, see (defun ein:session-rename (url-or-port session-id new-path) (ein:query-singleton-ajax - (list 'session-rename session-id new-path) (ein:url url-or-port "api/sessions" session-id) :type "PATCH" :data (json-encode `((path . ,new-path))) :complete #'ein:session-rename--complete)) -(cl-defun ein:session-rename--complete (&key data response _symbol-status - &allow-other-keys - &aux (resp-string (format "STATUS: %s DATA: %s" (request-response-status-code response) data))) +(cl-defun ein:session-rename--complete (&key data response symbol-status + &allow-other-keys + &aux (resp-string (format "STATUS: %s DATA: %s" (request-response-status-code response) data))) (ein:log 'debug "ein:session-rename--complete %s" resp-string)) (cl-defun update-content-path (content callback cbargs &key data &allow-other-keys) @@ -375,11 +346,12 @@ global setting. For global setting and more information, see "Renaming content %s failed %s %s." path (request-response-error-thrown response) (plist-get data :message))) - ;;; Sessions (defun ein:content-query-sessions (url-or-port callback errback &optional iteration) - "Register CALLBACK of arity 1 to retrieve the sessions. Call ERRBACK of arity 1 (contents) upon failure." + "Register CALLBACK of arity 1 to retrieve the sessions. +Call ERRBACK of arity 1 (contents) upon failure." + (declare (indent defun)) (unless iteration (setq iteration 0)) (unless callback @@ -387,14 +359,12 @@ global setting. For global setting and more information, see (unless errback (setq errback #'ignore)) (ein:query-singleton-ajax - (list 'content-query-sessions url-or-port) (ein:url url-or-port "api/sessions") :type "GET" :parser #'ein:json-read :complete (apply-partially #'ein:content-query-sessions--complete url-or-port callback) :success (apply-partially #'ein:content-query-sessions--success url-or-port callback) - :error (apply-partially #'ein:content-query-sessions--error url-or-port callback errback iteration) - :sync ein:force-sync)) + :error (apply-partially #'ein:content-query-sessions--error url-or-port callback errback iteration))) (cl-defun ein:content-query-sessions--success (url-or-port callback &key data &allow-other-keys) (cl-flet ((read-name (nb-json) @@ -409,7 +379,8 @@ global setting. For global setting and more information, see (cons (plist-get s :id) (plist-get s :kernel))))))) (cl-defun ein:content-query-sessions--error (url-or-port callback errback iteration - &key response error-thrown &allow-other-keys) + &key response error-thrown + &allow-other-keys) (if (< iteration (if noninteractive 6 3)) (progn (ein:log 'verbose "Retry sessions #%s in response to %s" iteration (request-response-status-code response)) @@ -418,76 +389,12 @@ global setting. For global setting and more information, see (ein:log 'error "ein:content-query-sessions--error %s: ERROR %s DATA %s" url-or-port (car error-thrown) (cdr error-thrown)) (when errback (funcall errback nil)))) -(cl-defun ein:content-query-sessions--complete (_url-or-port _callback - &key data response &allow-other-keys +(cl-defun ein:content-query-sessions--complete (url-or-port callback + &key data response + &allow-other-keys &aux (resp-string (format "STATUS: %s DATA: %s" (request-response-status-code response) data))) (ein:log 'debug "ein:query-sessions--complete %s" resp-string)) - -;;; Checkpoints - - -(defun ein:content-query-checkpoints (content &optional callback cbargs) - (let* ((url (ein:content-url content "checkpoints"))) - (ein:query-singleton-ajax - (list 'content-query-checkpoints url) - url - :type "GET" - :timeout ein:content-query-timeout - :parser #'ein:json-read - :sync ein:force-sync - :success (apply-partially #'ein:content-query-checkpoints-success content callback cbargs) - :error (apply-partially #'ein:content-query-checkpoints-error content)))) - -(defun ein:content-create-checkpoint (content &optional callback cbargs) - (let* ((url (ein:content-url content "checkpoints"))) - (ein:query-singleton-ajax - (list 'content-query-checkpoints url) - url - :type "POST" - :timeout ein:content-query-timeout - :parser #'ein:json-read - :sync ein:force-sync - :success (apply-partially #'ein:content-query-checkpoints-success content callback cbargs) - :error (apply-partially #'ein:content-query-checkpoints-error content)))) - -(defun ein:content-restore-checkpoint (content checkpoint-id &optional callback cbargs) - (let* ((url (ein:content-url content "checkpoints" checkpoint-id))) - (ein:query-singleton-ajax - (list 'content-query-checkpoints url) - url - :type "POST" - :timeout ein:content-query-timeout - :parser #'ein:json-read - :sync ein:force-sync - :success (when callback - (apply callback cbargs)) - :error (apply-partially #'ein:content-query-checkpoints-error content)))) - -(defun ein:content-delete-checkpoint (content checkpoint-id &optional callback cbargs) - (let* ((url (ein:content-url content "checkpoints" checkpoint-id))) - (ein:query-singleton-ajax - (list 'content-query-checkpoints url) - url - :type "DELETE" - :timeout ein:content-query-timeout - :parser #'ein:json-read - :sync ein:force-sync - :success (when callback - (apply callback cbargs)) - :error (apply-partially #'ein:content-query-checkpoints-error content)))) - -(cl-defun ein:content-query-checkpoints-success (content cb cbargs &key data _status _response &allow-other-keys) - (unless (listp (car data)) - (setq data (list data))) - (setf (ein:$content-checkpoints content) data) - (when cb - (apply cb content cbargs))) - -(cl-defun ein:content-query-checkpoints-error (_content &key symbol-status response &allow-other-keys) - (ein:log 'error "Content checkpoint operation failed with status %s (%s)." symbol-status response)) - - ;;; Uploads @@ -506,31 +413,4 @@ and content format (one of json, text, or base64)." (list name "file" "base64" (buffer-string))) (t (list name "file" "text" (buffer-string))))))) - -(defun ein:content-upload (path uploaded-file-path &optional url-or-port) - (cl-multiple-value-bind (name type format contents) (ein:get-local-file uploaded-file-path) - (let* ((content (make-ein:$content :url-or-port (or url-or-port (ein:default-url-or-port)) - :name name - :path (concat path "/" name) - :raw-content contents)) - (data (make-hash-table))) - (setf (gethash 'path data) path - (gethash 'name data) name - (gethash 'type data) type - (gethash 'format data) format - (gethash 'content data) contents) - (ein:query-singleton-ajax - (list 'content-upload name) - (ein:content-url content) - :type "PUT" - :headers '(("Content-Type" . "application/json")) - :timeout ein:content-query-timeout - :data (json-encode data) - :success (let ((uploaded-file-path uploaded-file-path)) - #'(lambda (&rest _ignore) (message "File %s succesfully uploaded." uploaded-file-path))) - :error (apply-partially #'ein:content-upload-error uploaded-file-path))))) - -(cl-defun ein:content-upload-error (path &key symbol-status _response &allow-other-keys) - (ein:display-warning (format "Could not upload %s. Failed with status %s" path symbol-status))) - (provide 'ein-contents-api) diff --git a/elpa/ein-20200202.218/ein-contents-api.elc b/elpa/ein-20200202.218/ein-contents-api.elc new file mode 100644 index 0000000000000000000000000000000000000000..d38670185c22df953455007eb55a66c953d53fda GIT binary patch literal 21875 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 emacs-major-version 26) + (tramp-make-tramp-file-name "ssh" username + nil remote-host + nil python-filename) - (tramp-make-tramp-file-name nil + (tramp-make-tramp-file-name "ssh" username remote-host python-filename))) @@ -293,13 +286,13 @@ the host named MY-HOSTNAME. Adapted from `slime-create-filename-translator'." (require 'tramp) - (let ((remote-host remote-host) - (username (or username (user-login-name)))) + (lexical-let ((remote-host remote-host) + (username (or username (user-login-name)))) (list (lambda (emacs-filename) (tramp-file-name-localname (tramp-dissect-file-name emacs-filename))) (lambda (python-filename) - (ein:make-tramp-file-name username remote-host python-filename))))) + (ein:make-tramp-file-name username remote-host python-filename))))) @@ -320,20 +313,16 @@ implementation is chosen based on context (buffer, point, etc.). This helps writing generic commands which requires same object but can operate in different contexts." (cl-loop for func in func-list - if (and (functionp func) (funcall func)) - return it)) + if (and (functionp func) (funcall func)) + return it)) (defun ein:get-url-or-port () (ein:generic-getter '(ein:get-url-or-port--notebooklist ein:get-url-or-port--notebook ein:get-url-or-port--worksheet - ein:get-url-or-port--shared-output - ein:get-url-or-port--connect))) + ein:get-url-or-port--shared-output))) -(defun ein:get-notebook () - (ein:generic-getter '(ein:get-notebook--notebook - ;; ein:get-notebook--shared-output - ein:get-notebook--connect))) +(defsubst ein:get-notebook () ein:%notebook%) (defun ein:get-notebook-or-error () (or (ein:get-notebook) @@ -343,8 +332,7 @@ but can operate in different contexts." (ein:generic-getter '(ein:get-kernel--notebook ein:get-kernel--worksheet ein:get-kernel--shared-output - ein:get-kernel--connect - ein:get-kernel--worksheet-in-edit-cell))) + ein:get-kernel--connect))) (defun ein:get-kernel-or-error () (or (ein:get-kernel) @@ -373,9 +361,9 @@ but can operate in different contexts." (interactive) (ein:clean-compiled-files) (let* ((files (directory-files ein:source-dir 'full "^ein-.*\\.el$")) - (errors (mapcan (lambda (f) (unless (byte-compile-file f) (list f))) - files))) - (ein:aif errors + (errors (cl-mapcan (lambda (f) (unless (byte-compile-file f) (list f))) + files))) + (aif errors (error "Got %s errors while compiling these files: %s" (length errors) (ein:join-str " " (mapcar #'file-name-nondirectory it)))) diff --git a/elpa/ein-20200202.218/ein-core.elc b/elpa/ein-20200202.218/ein-core.elc new file mode 100644 index 0000000000000000000000000000000000000000..650e229287ccdc36a15b67508a28a9d0e06cf6f4 GIT binary patch literal 14351 zcmdU0YjfL1merS?k*E?klbJY)V=FDv4^k`81o)7|)b3ibHMV9P+hr@8N`=}rL_#8L z5?}z(vQk^Me|^unjRwJo9LF>BVeAq`0FCb3x9{WJhrT&{^5FB8m6gIb-+ZGUgrl)P z^!jq)2kLO-_G0zci()?vl+&&?V-k#V(=t6v-WT& zunt~6I66|jfg8EK1SIar@@~*qaj1H3piVtC4BeSU(yheGbEBc}MJgF!pwrOnf(3um zKN9e_{wov;mD9__vwC6QQ>AXB?%=1f)phK8deO{Zw9G}D!|=1)ZE&P*;|H(WxMw%- z{9eCrw{XRg9EBeTBOQ*!PrYGAIe5=W=W?25{i=gk9lWYvH#adyefJBDu)pj&^~Uka z+Wk*BZuKcIzgyvW`QGIB1_^7g>H#vv+5zAF0|qzSE8BR$rPEcirAc*z6k@do2Vj~8 z_mxpy-z}-1#!)y{memi3ew-$oqNXN1pN^JNU6Ci9d{$8@S^^7`du9iIZ?- z^}XKEjXdi-3MXR~_(N4XdVZMkj4r*%Me#*ugC zzf&cw)hW$S|JIFs_Y|tZr;`YTl%9ZA6`rZScjiupiNakgjI41OCF-p^oOp4q8;DL_ z_|Q1WG}NlE&cX;PF&Ym&>RwH~4App&sLOB?DMNYeMU;2E|6@22jersbUN2EesM3d` zTVPE>ttH=7Iwh%eGU!7h1L61hPM4PX% zn+#$wJh|{ZV+v_qQn`S%^}LweP0vTKOv964d*G-SdpxI6heJSgoOA<)e@98I-guWP z9(z6i%!h&d{>2mP*$eCWvlqt@&AvW(HG*vNz+HVX5R&8~)Ki>If}R-Nj;b6#v!4HW z{P@{Z_2(DQzDvJXYfAkUYgBSmS5vE~r_k0|22^(-)%wsX6g*r*yk4b8aaUF1%h72# z9-4p0!H}lpCE-cvLei z$wUfNX|k)Bhpg1jCS`_ZSmY&>2ovR*rp%f#&Vuh<#WbGOV=wY{czn~h)Rf0Oo*bV+ zut%}<18l%fjd`=knaxA6}|+FYqFal~8lsJiaOSyZxjmO?E$5%lZ1~(u0Dds;MD14#<@?Qj z^$`B9mxQp?Fzj07csAQLZ}>_i4w46{9fojPUcdHrp#sYF7I=g)d`Qo;`Z$hCCVRY0 zCnctu3MI%Z-%>T@wCq-u1laq#>P4o5VL(?vH$()f*THzQEA}^+o1g*q^u@<>>^1C809%jaZ=YE30Z+%&{;-3{{TG^O_nF3$* zh;bPERE@%Z+mrm1@vPE+<1% zX7hOh*CtTk8o3GVUFjZ1S>0~sr@FP@?bc4VyWQ%&TP45%Jhsx)w$%vk)IA62Jv@49 z&Vi?OJ1&VJSb=wOq8div+RYY(PqYgnF^M9$4ND7^1)-{*P#PQiGl&WzHF96$tTR-X zvO_BYz=hi8mds--eY~wIf>{P`JOHvJgzF?8bp9^jrHjMXO3-ljfp4&^vp2u&8xO{P zNS7bat(AN7q02PwT`WVj%?T(hfi;~=K~D1+N}SA8aEESiu0<5$`DHiwh9dPTL@F0Q zK-?&^&L3C0!F3Ah8oV3Dv>j9S8f*Ayc1vI3SBohA#!Y_P{0yJ%&1>@g^YsoV4p$(` zwtek0eje~w)A>{Jv-=#nyRlXL;y*B|`5d#FfW&b&9%^adz|F?vBEkzq516aBvT^Nm zPA)TE!!4&za@y%a2NF^Ik@ssW#m{TMP>v2TB2a>h7t%D!KuVC$PyBMo*+<|VMjda^}r(d8vx)l z>fa9cxoBq>7&$A*T4)=qYa$)?bsSt{0|LsUg`hU-P5g-2)#5{mHnuT;x}xS&*2UWj zE(0e+4VNtp!*lB*0-S(5xo~lk<)0)j#DokxQ;R(>G{pNn?x!LAPcMv^eaNjMaT_E7 zX6%I9KT*xpbTsXDLz}GKJ@wK9%4CR_e-)yT1M?a&KR9^ue}zN$VRq}P@|r<| zi|`Ie2obJV)z&6wCl=3Umcxh=hQm|0_eM?4g->5Wp9l7@QfGcAtVXD>c@0wl!+~r? zF7*)LN?e&JD-{&V&SMiL=cQw>t(WnOX$oF8*49^V-PuTWFkT>p2mOfgKQJB3d#eEU&$eF$r*O zUtxU-yb+lp^uM$)DDlCw%iOxTxnVKP_>O2ntb^BubFeJ)xZ_0;0SWfHWRyHSQTCn@ zomSn}qSJKLQwreF|3y%BPJTphCv>mc-!6znU|!6rtwm**mmngvfjoY(r0YC?(F6Q$ ztRk0F-=$zsAH-N9D=>5cBO~Mj-i<8)fYi^Ieo`lZ*%oxb$bPH7>*x*a)fMtzXTgl5 zXF`657Wd)7@qv2z<9FXadt$vjJ~;mVrFwDr^7*r;FAvonoI-eEN$iPjT*ew{YjA|zgQLbhtc6c%q8{0nYo^thnVTOCjRtgegiI3-|1v88OOQQz0!&>7|hTYb3mDqKSSyVrbIlh0K7Sur#d3coxUGK zoG%3hs}89IQTpEh=n0hy7M~vyk5OgR@Yh z6J!2zhN0!OTd7_(-=|kc$A>Qtj*pN*5)I4L>F~u1WTlQDzj*co9(|N}-jat5j(SVyWLCvmELTS8hy_ty??rN@z1kD1djw7<_og657A5ym&|HUxRK zPNtrxZ9A#!Z0#=5kg3DTbmHUGAVUCin(#icZ&3K9A9 zesMl(K)4k!8E5h)$RX*HiR@S+qWSe8!-&5sEc!@#YW{gf&t0h|rj=UwLVeBsGOz3h zL!_=PKs02KnYq|&ULDWPuc4L&br+sONwzQLOIMx4@WfXHc?;7mW8L2=(wkrF9~kbL zrLq(jM2|8rF<+@wVBs^OyjJ2cQv2e?Io6eNsRH^P5#w% zT*YAZJ_o>Pf>HI7*dkZm5AqIxP(95R=N-VVb^z1lngK`%xdq@8FWHDR>WxP$#T%P9 zi<<~85H1vNZWO;3Ku?6kY#H-s@H1xB|KjD9t8OYx(k}9o*#S)dzZfs&dzSDK8xf~r z!7VI^3$BQWqu~_0rI}Uj{A)mae63n768$g_*jOo+7h{af6a5yKhAhxOwO4zO3>q6W z%|d2HjVvbmd8nH8=6u2nhgG+Y<1(Jqtd!X~nhh}& zbN+s5$AF}AmwBx@Ad)AS)({m*pnfYx?GE`Vaq>&&r^{H#^G`>H)>!wb%#t7ln>1U4 zgKMmANzyzlZ?JU{6pxI zAYT`$xl0|;lYL0@rFp9n8h)%nh;USspOvwh{Gu29k%kQHo5_6wXV-Vv@1WYiFwJB| zgLMZXL@4pqBHJ$R^>XKLP0twAhbVUEf_L}O{ zKU$BUy*z$;@ZBM+;8mFiJ&K3u=R$cM=4E)<`Hdu1hVJOJ@2Y%dOiwHn7U(;`q-VImW{He(SBVviBb7R;ed7O+5RolG$IX+1*E>&!G)^AgkVa>ORpH| zV_ln7{h>%NmOy11)k)Y-#1{dF`+-!#rVs;AoFb7H<-<7-+*4) z4W;kTV3S<@i~OtOtjZ_SDNL0*t=)e)+XA> zn(j)x&D*?w>n23uj_!Wb$xP(Ik(J3_v@B-Et?8mAnZrWL2nlqtPvD<6B}QE}zhLCa z1K9YclTRA~nx(eL;6d{>*l_}@u zQEe6vQIOEOs3CC5Se;pyy2`X|3VRl>{m8DjlsImDYcDa+*lc6wlRiCq6QjIitWe%r(mwmOm`FRHUy3lD=mX>39&08WzG zXY(vp6*089ZEfGJLf!uS{nH25lcSf%Y;%})teF>5)n_{)o1mx7afsCmx@QYRU^Vb| z-;2?q(`O$G%c@Epx@f(~W`bqNFIFJ#;b=6HonFc>Hn!3F=;mxTSTiq&{j=jH-+PL= zj|X01I(6Eht!EVb2@C;}0LIj5h*mMY@iIh@q1=t#Gt{QS!Z~_oGWtlr?xCXzbAP#n z$V=yTJUO*SVSh42A8bL}P0SpJBUEZ>&|>tTqjQ%jO6KF)P@?Tzb_f}rNLCCAXdHco zrP33+ON)7Uba?b^N3rb{6fQ6u#2<(mE%*l4N+py#1dfYQJvepQl8gQ(DNMeT9$L2U z?Wl2xHh>-FCA}KXTg?6dZALMw`My9uBPz(pjM&4M9(mfejGeOaAUu5yT`Q16wwHz| zNi$gl+WS7&fiE;mFUhr}OAxYA8lg;NiN#g~A{wb%v0Sx_Di!SKnsjW~XypD>EUuu% z))zoyiWWwK#M>(yf8t=?kWPy`L_<<%Z{W=X-e*s@v$oPb+ewXTwrVcTuNx`&Bxhdr z&G|M3oDBsM=rnEj90P!+nBBHpds0E11MSqbJocWZ*=GU}0+Kl{iEE#G-Lg!0Ax%g6 zt(gU;BgDWgynhi!Z{mTM_J1rqj*&P+7YT~lh{w>-=PZJMzGJ8`@sz2%lAzn>;ce7` zW)g%mZ~msF;1Z^qRoHz!lg1}4?cY-xBm`olL5Dg^TAKN1lZ2TFh6bfLXb}{dRwxbq zpp_KxnnZmIkr20}>lTI;SoecZR=>IA$jpPq(=tzH4k|lp^EAb1S07+HaGrN09y*4) z@lyWfcB@%V{^_YcntMHOIJ8`}&CyPM3=?N2u&hOv%?+60+|?WcV(5A7L9wLt`w@CO zJHs-{=10tsmL2N+sP`UjZ|J#!w0j`7)J?K+j;rVy0zkn}vrMZiT}rx-i9(C8(XOvO z>XtHa27S&o;}VC#PntelfnNAas|h+}OaBc8vufz8M2~MzIxENclPgdDyn^pddn;c6 zZQ}1FSdB^l%t-&qmjwMW6^(TTbTGEmxA-$8_!W5$FZnbbvd}q_pNBnTxg9s@Gq}05 zn1x+(>$-k5ZQ-)*uORo0En;`+ljsJI@O7G31a@CX)=wt|t2%{{o*Hr6t6TpGqFZY#s}E8ucQ(UPIUvb@rRw?!cnEAy zi9%yG&PB5~jpX?EB0OYWBIAx;LobQO72*QK4Ilw<5<_%5E6F-x&Hfg(ob_J4`6e<#+ z0Z_6!`^WEh&b=2PDZ1k}=?^`n^rRT4(ZVA7D7lbPHjZT`ieq$iJ+&@K@U#BW z27d0pjg5`%Oum`LnG{a){kB97*7T39f@#)$=W%b$yOjMR&Ccy9kxf6V z9S>(PB@l;xl&NvB7}Cz8B)8?;LMCi{=sTJ&8_cNiUtjt`OCYI#!y)dtj=VZx;8QlO5~7 zX^*=*Otah8p>Va-Inc5u(U6bi1p?YXOvGJ?tJr?}&8zQT@7v#tM)=j1Vr#RxQkk{E zu*oKqoMsXRq2YYh=-PIF4CX`dZN>LC@x2p5zgz7ZiCSy#;kDXzmQ}B_7A6nT=6sFM zp1|AQ9<h0FP-g`(Nca@kfd<5Mft(bwVM~lW>T5F;W(yK(e)A)>@Zid4y z&2h384l$YId>VQ#`g<-~{lVHLygJqE`X%B8+R+R?xlj(*zf`ZQN!_5qs||UlpU|p% zYdg9tRE~5BeT;B7oQBcasc5){L}VXqds(j zRGLL%yK3)(Bk7r)7RNGU8`KmRnplNomceLS&*k}93ab}oBR1yZj`Dsf%v(B~o4ILS zP@^RwD;1U1l;ty;6)8z&&P~S4z=OyvdAH^j;w&E6au64XA~166yB?cMm`C_={G7&p zIILdOKPljk@wiReLY^i+PP4+Uz7VMjv8{)Uqe*WNDcij#jxk=qq45|A7jEX;CFii0 z0|pGF=*#gq7su&%fDXBA`?gHz1JJ}I8c9KR>RvTgz=jNROdBSE1V8S-{u2yIGJ>N# zNX1hTP2h8i0%lGeO@UAfdn`}oc#HP2&~&*n2Kc<47Fg z!<#KQVGUQn#S;LKegqJNp;DYi~v+R+O6)4P<}W z%3_Z)iO5rExhOXRT_}z3DsdtS#6C}>LRQ|~4cZ_@X;(e*Lo!IkkrBzIoo=l@&px?jO;R!i}> z#inS0)9-bPC1>ZmC=pU2&4ioy*ezK3>o!dNH=y|OxH?eS=R=RTQ%IEZaMWCH@ zu|vDSWWW^YXkI*_TYWqzG)>0XF2#?WBB7;{>2oluKg-58dpAGpHF%ztO+36+{Bi!s#m<&dc`R3$FT)lPL9@Qr&}86 zZZw1opJPbtxjvoQg<8V!{g475;Kb3XZNo1qVCd9d>Os1>Ji_u|_fTlBt&!#e$c&~_ z_{4H=ScXy5H%_Y~6fgz2$qg8NMh?Ks0PR$0RKJ$3zfnAL00A8WaBhuy5i?a>q<~+- ze>Ur%-NZNN){RTy@bHhAEJz8N8kr*b>Ns89O9|WM&l=6ft(%u` zT%sww-dct)p3pmSNm?Odw>}?maC;eI2bpx+&cD#Ub}mECdFce}xY)AWK^LpJ`)@?i z_uMwR`Aa*80|{LhpqzK=Ikjh@#oLDhwH8j`xl1Pq-A?E4JOu4`@f;@dYNPScrKHjrBXkQkQcQAV%B!BNGntGA>;b1@BompzRoRI=GxJ+whnCy1=H%N^5%fB? zi9nV_h$6Ly-w+BevE3CX@p!CfLBw^4sFqSEN>M4Dgk%Z%My02f#@kU&=3A>O%qfCj zVf}O`KLi>F3}esMG%Kmdm+}tvdR@FoM-(p$?fs4^4JO~p{*2rx5*&99RKIRI|iT4x6fMMpH0+r7aN6%|59w%p6qH1ovgjp}2o2-pmN( z&S^43a^%Z;DG)3S}gV=aCtb)izw)r=t!Y&!z^xnzZ8tdf~U#>NPPN^!V|vP-61 z1ftc+-a`aDEdhboo=dW{TjIMZaFt2cAf%j3W=Y)VEH>qnlSCrCESEyCXtZcGD4K%L zz?TPdIsOt>rIpJI6-ia+!)e8FjcdDVH0_8t5&;+M)N0K>Qs_I z^`n6!sJk9pW~N1PK9$JA3N2M<8KP^O8_PV#+@hqKnq=D2RqN37ijLZl_hF@Amw0&D zjo?eiF!z3^J*VD|cp*no{~Xzo2$@-=f%}Yz^JC-;40Ab_7b8>^hR7js5dz9Sw?(^L z>ODBFrvCrKZY`n95>X!cmu2?-Uy#>rFYw-j*Ks32~Hl8+vU(=vld$9 zWSv_d)5qr8<&WWrDS7QUoJ-z;opl^CraW?wK5#nx(%PkaJn)lew`hn*cALXl0;GDv z;71zXzWniA(+^k!)){dL0tFPw@Y}fz2;jPxKMmcW6D9_4)0qU$he&ZQ4ArUV2{Qa; z`dYOur>g;8VEpYo9U^fE$Y|^GC&J1*dDpx!m4P-j((Ur9U8KH_;rZYdk!y*26yl1g z*UKcbooHg@u6hn(p=X(#it@osjo=bVa=i|v5A`Fr>t`S}=VINB5`BXif(*>Sr8ioN zg2o!Lmcy~@H`bY-+iU9&KVsKtd}#ufZvLKFjQEb(+(P!)sy{>HIy3M$V5j@x+9qlY zoq1wosj_IINJ=MICNsewMOs5Mt4rXVa_sbgG&z@Z0$&_NLkY-DU`0Io?&ZrpR4}=E zzW4f@13|Uw3|U^ls2HJ0UJTONJIb}{n?23aQHF#y1YTD*DJi6*XkIYf!XTqLq71}K<+kv|rCm^wNlFw&%F6M9>Hx@|?2|QWKPPi!c+d_L zWL${SD(OWgqE&kaqoShOQW8fi^&=kwbgkEg)$k!3ObkW*c6c4`lCKt9=9p;BKu zJBrBMqoVGL5EStV3j2l=bBw5xRTT6ucH>yTD$1f%4UO!OjhW7h>HTLJY`RZ#rJWGdxEc}@fYoc^R1&U|{I^#qUL7&oD_ z*XB;-e9*~<`1uaC_!MK{$4435Lw?rt(b;DwsT!#dMg^^Ph;)Ec1?U|>9$@FF1>FN& z2|+jbFdp5;L9Uqo_)qrXz&pWn zWZgQH>_z8J5DvBSbcl4$!!=L_x|BeFEc^#QN_LCVLT4~RsAvE&z)+PjF4Z1T7MwHq zMrr%-*N;FcyDB zX34T63sviJ-orhDv4pJ^7GC~Gzf?WSfZCeIQ);F{61<{mr&;3Zd2x*OE&afw4RN>w z6>vFr%vCX0KXXUMUQoDwLr{dW-&Kd|J1(1abqYgt4ad7UG5HDNehE&9 z3I?bcic|muXDKh+FfkP7BoQ#lbC^Y!v-6CCQQ03uq!V2Z7rHj8G3MHKr_BVO71 zl}6n2)is%pDsb+TWHX2|0F~%Y=~`5+R|oD~+cZ=s6jfd6;!n7xqkx2Bt0%6mgQear z7+mG`7SI&s-^hQrIyC~A>V=F@oi4h$e3PrR{s3o|@s=zfiwkOiQl`bqO;So^F&Sd* zko=eqNQ^Hapy_le;?}u0!N%+9t0&)4-WhOp%2_J|h|E1Wr{%lImTl8L7u+6Tg8Pn2 znMG!k3}LB83)qiJC0D_y#Jrm5lyg)aZGwu_an4u5H{j;g)vRVPDyPecs)4>f*lL>x zb;A&Ts^yS##O*m%&bhk=C`Qi9@zz7D4>A*59G}O@o_nl?%SlNVhRiqK%XOc!sSKK+ko-rX!w~)MpS<_G&1-|MU!itc6 zY1KvLE0E`#D5Yb8Abk^czDgM;YhbFjtPodpq^x@~psOYYe;DGP@M^(cTn7hAdw)jxR~9sPj}^ zSvoJ0E zh)xCSbJLVcb|}8ja916-x6XGre&Cx|P?xe6O@3c^7(OppqK zTiAxA=^H*xvL19%Td{8p;XK zT49OMvc&xs-|8x_Z9C3`Knq4E5RX)~0M`i-9P5k#`zo@(f6ie&$s|h{*g{o%P_&>= zkeZCvFi>?B-^m-8?^N!g=}gu^i+~Q25uyE#*dI`Cud46hE#cA)1Yj;IL^Q?7fs!!( zx3~uWS%#-zv#$LiSNYhTX?bDcLCRoguGhPc9H=??+UsV0hxkn_C3@d6o4!*XZ#ngE zdZ^4l=*EG8E|IHS-!xOzO`X1U96RL~A`0ii-nS%VMp9AeBGTza*^nb8cGmzAriQ(M uc$gFF1}HOGnH1bKr^}qn-pV9?9M^wP787uZGChrPvy}gj3q(WBjsF8WyQs1N literal 0 HcmV?d00001 diff --git a/elpa/ein-20200127.249/ein-events.el b/elpa/ein-20200202.218/ein-events.el similarity index 93% rename from elpa/ein-20200127.249/ein-events.el rename to elpa/ein-20200202.218/ein-events.el index 932c0c4e..9331c52f 100644 --- a/elpa/ein-20200127.249/ein-events.el +++ b/elpa/ein-20200202.218/ein-events.el @@ -38,7 +38,7 @@ (defun ein:events-trigger (events event-type &optional data) "Trigger EVENT-TYPE and let event handler EVENTS handle that event." (ein:log 'debug "Event: %S" event-type) - (ein:aif (gethash event-type (slot-value events 'callbacks)) + (aif (gethash event-type (slot-value events 'callbacks)) (mapc (lambda (cb-arg) (ein:funcall-packed cb-arg data)) it) (ein:log 'info "Unknown event: %S" event-type))) @@ -51,7 +51,7 @@ When EVENT-TYPE is triggered on the event handler EVENTS, CALLBACK is called. CALLBACK must take two arguments: ARG as the first argument and DATA, which is passed via `ein:events-trigger', as the second." - (cl-assert (symbolp event-type) t "%s not symbol" event-type) + (assert (symbolp event-type) t "%s not symbol" event-type) (let* ((table (slot-value events 'callbacks)) (cbs (gethash event-type table))) (push (cons callback arg) cbs) diff --git a/elpa/ein-20200127.249/ein-events.elc b/elpa/ein-20200202.218/ein-events.elc similarity index 100% rename from elpa/ein-20200127.249/ein-events.elc rename to elpa/ein-20200202.218/ein-events.elc diff --git a/elpa/ein-20200127.249/ein-file.el b/elpa/ein-20200202.218/ein-file.el similarity index 79% rename from elpa/ein-20200127.249/ein-file.el rename to elpa/ein-20200202.218/ein-file.el index f51dc71c..3c6f153f 100644 --- a/elpa/ein-20200127.249/ein-file.el +++ b/elpa/ein-20200202.218/ein-file.el @@ -36,26 +36,9 @@ path)) (defun ein:file-open (url-or-port path) - (interactive - (ein:notebooklist-parse-nbpath (ein:notebooklist-ask-path "file"))) + (interactive (ein:notebooklist-parse-nbpath (ein:notebooklist-ask-path "file"))) (ein:content-query-contents url-or-port path #'ein:file-open-finish nil)) -(defun ein:file-delete (url-or-port path) - (ein:query-singleton-ajax - (list 'file-delete url-or-port path) - (ein:content-url* url-or-port path) - :type "DELETE" - :timeout ein:content-query-timeout - :parser #'ein:json-read - :sync ein:force-sync - :success (lexical-let ((path path)) - #'(lambda (&rest ignore) (ein:notebooklist-reload) - (message "Successful deleted file: %s" path))) - :error (lexical-let ((path path)) - #'(lambda (&rest ignore) (ein:notebooklist-reload) - (message "Delete file %s failed." path))) - )) - (defun ein:file-open-finish (content) (with-current-buffer (get-buffer-create (ein:file-buffer-name (ein:$content-url-or-port content) (ein:$content-path content))) diff --git a/elpa/ein-20200127.249/ein-file.elc b/elpa/ein-20200202.218/ein-file.elc similarity index 69% rename from elpa/ein-20200127.249/ein-file.elc rename to elpa/ein-20200202.218/ein-file.elc index a38f522914aed96002608b668b5af4e3e3619789..0cabc671d0253c1bbaa49dab4041fa11f418ca60 100644 GIT binary patch delta 78 zcmdldxlDKi7mJl)jIn`{1duQWViO=X<%m%NQf3^AK+-(M*w8>lQ!&QKz+6coIypbD aBsH%@x1_QlRbjFfOFomC=H|2PA6WnksufKD delta 826 zcma))&yLeD5XJ@Vp#^C#2qd(BG@HPxUCAi6+eSp<)`Eog1l%?~xT&*bH?^~lgXpOb z(RV-`k+|~&JOK~EGcb0FR1OFZGjS}>H$TtkPY=F5{&KGyMJbOc2E*VOqfQ#&XWTi( zJi&;cq-?_OoTe;_1GwByySft(=i8rmA8nShlvYA`IcQ8tv>}x?7Aj%i55cMU`d)vQ zavJsePMBgZioGaL73LAf7-MoDQ=D>!IE-R1N{?JR?qA?18saV%F$82-!mxx*rs*5b z;xwP8oJTKbc!s0+p2EqYlQ=p0s|IIS%i@E>-x6mB+s~czjV)GEHx^`}l3bfil6tK& z2= it end)))) + (aif (ein:cell-input-pos-min cell) (<= it beg)) + (aif (ein:cell-input-pos-max cell) (>= it end)))) (defun ein:iexec-after-change (beg end -ignore-len-) "Called via `after-change-functions' hook." diff --git a/elpa/ein-20200127.249/ein-iexec.elc b/elpa/ein-20200202.218/ein-iexec.elc similarity index 100% rename from elpa/ein-20200127.249/ein-iexec.elc rename to elpa/ein-20200202.218/ein-iexec.elc diff --git a/elpa/ein-20200127.249/ein-ipdb.el b/elpa/ein-20200202.218/ein-ipdb.el similarity index 91% rename from elpa/ein-20200127.249/ein-ipdb.el rename to elpa/ein-20200202.218/ein-ipdb.el index a8edf3c2..26ccf448 100644 --- a/elpa/ein-20200127.249/ein-ipdb.el +++ b/elpa/ein-20200202.218/ein-ipdb.el @@ -30,24 +30,14 @@ (defvar ein:ipdb-buffer-active-kernel nil) (defvar ein:ipdb-buffer-prompt nil) -(cl-defstruct ein:$ipdb-session +(defstruct ein:$ipdb-session buffer notebook-buffer kernel current-payload) -(defun ein:ipbd () - "Convenience function that will launch the ipython debugger, -assuming there is an active kernel associated with the current -buffer. For more information see the %debug magic documentation -in ipython." - (interactive) - (ein:shared-output-eval-string (ein:get-kernel) - "%debug" - nil)) - (defun ein:find-or-create-ipdb-session (kernel &optional buffer) - (ein:aif (gethash (ein:$kernel-kernel-id kernel) *ein:ipdb-sessions*) + (aif (gethash (ein:$kernel-kernel-id kernel) *ein:ipdb-sessions*) it (let ((db-session (make-ein:$ipdb-session :kernel kernel @@ -114,7 +104,7 @@ in ipython." (remhash ein:ipdb-buffer-active-kernel *ein:ipdb-sessions*)))) (defun ein:ipdb--handle-iopub-reply (kernel packet) - (cl-destructuring-bind + (destructuring-bind (&key content metadata parent_header header &allow-other-keys) (ein:json-read-from-string packet) (let ((msg-type (plist-get header :msg_type))) @@ -130,7 +120,7 @@ in ipython." (comint-output-filter proc ein:ipdb-buffer-prompt)) (when ein:ipdb--received-quit-p (kill-buffer) - (ein:aif (ein:$ipdb-session-notebook-buffer session) + (aif (ein:$ipdb-session-notebook-buffer session) (pop-to-buffer it))))))))) @@ -138,7 +128,7 @@ in ipython." (defun ein:ipdb-input-sender (proc input) (with-current-buffer (process-buffer proc) - (cl-assert (not (null ein:ipdb-buffer-active-kernel)) t "No active kernel associated with this buffer %s.") + (assert (not (null ein:ipdb-buffer-active-kernel)) t "No active kernel associated with this buffer %s.") (let* ((session (gethash ein:ipdb-buffer-active-kernel *ein:ipdb-sessions*)) (buffer-read-only nil) (kernel (ein:$ipdb-session-kernel session)) diff --git a/elpa/ein-20200127.249/ein-ipdb.elc b/elpa/ein-20200202.218/ein-ipdb.elc similarity index 97% rename from elpa/ein-20200127.249/ein-ipdb.elc rename to elpa/ein-20200202.218/ein-ipdb.elc index 958975516ebf51520530d44d98e4e7cb1e407ee5..841642f40b654145d61bdca441bc6685504ac42a 100644 GIT binary patch delta 45 zcmaD=GP7vIf62`O(jCIACYHvUv6BUvgg1ZC`@+R(WMOWusgReMGg+QRW-_N$A^?ga B4-^0Z delta 353 zcmXwzze>YU6vjbxFt|uv6v5L*u|ZSPq{QMR2tI+hv>k4eljLG@Zn=M2#KDKiAC zD{|XI&)Jtl%kRA~m%=?GT64e{a+G4_=ZC+!^r-2J~)go3^UAG#hHS0 k3tOdkI{*Lx diff --git a/elpa/ein-20200127.249/ein-ipynb-mode.el b/elpa/ein-20200202.218/ein-ipynb-mode.el similarity index 100% rename from elpa/ein-20200127.249/ein-ipynb-mode.el rename to elpa/ein-20200202.218/ein-ipynb-mode.el diff --git a/elpa/ein-20200127.249/ein-ipynb-mode.elc b/elpa/ein-20200202.218/ein-ipynb-mode.elc similarity index 100% rename from elpa/ein-20200127.249/ein-ipynb-mode.elc rename to elpa/ein-20200202.218/ein-ipynb-mode.elc diff --git a/elpa/ein-20200202.218/ein-jupyter.el b/elpa/ein-20200202.218/ein-jupyter.el new file mode 100644 index 00000000..ac38a359 --- /dev/null +++ b/elpa/ein-20200202.218/ein-jupyter.el @@ -0,0 +1,364 @@ +;;; ein-jupyter.el --- Manage the jupyter notebook server + +;; Copyright (C) 2017 John M. Miller + +;; Authors: John M. Miller + +;; This file is NOT part of GNU Emacs. + +;; ein-jupyter.el 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. + +;; ein-jupyter.el 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 ein-jupyter.el. If not, see . + +;;; Commentary: + +;;; Code: + +(require 'ein-core) +(require 'ein-notebooklist) +(require 'ein-dev) +(require 'ein-k8s) + +(defcustom ein:jupyter-use-containers nil + "Take EIN in a different direcsh." + :group 'ein + :type 'boolean) + +(defcustom ein:jupyter-docker-image "jupyter/datascience-notebook" + "Docker pull whichever jupyter image you prefer. This defaults to +the 'jupyter docker stacks' on hub.docker.com. + +Optionally append ':tag', e.g., ':latest' in the customary way." + :group 'ein + :type 'string) + +(defcustom ein:jupyter-docker-mount-point "/home/jovyan/ipynb" + "Directory in docker image where to mount `ein:jupyter-default-notebook-directory'." + :group 'ein + :type 'string) + +(defcustom ein:jupyter-docker-additional-switches "-e JUPYTER_ENABLE_LAB=no --rm" + "Additional options to the 'docker run' call. + +Note some options like '-v' and '-network' are imposed by EIN." + :group 'ein + :type 'string) + +(defcustom ein:jupyter-server-command "jupyter" + "The default command to start a jupyter notebook server. + +Changing this to `jupyter-notebook' requires customizing `ein:jupyter-server-use-subcommand' to nil." + :group 'ein + :type 'string) + +(defcustom ein:jupyter-default-server-command ein:jupyter-server-command + "Obsolete alias for `ein:jupyter-server-command'" + :group 'ein + :type 'string + :set (lambda (_symbol value) + (setq ein:jupyter-server-command value))) + +(defcustom ein:jupyter-server-use-subcommand "notebook" + "Users of \"jupyter-notebook\" (as opposed to \"jupyter notebook\") need to Omit." + :group 'ein + :type '(choice (string :tag "Subcommand" "notebook") + (const :tag "Omit" nil))) + +(defcustom ein:jupyter-server-args '("--no-browser") + "Add any additional command line options you wish to include +with the call to the jupyter notebook." + :group 'ein + :type '(repeat string)) + +(defcustom ein:jupyter-default-notebook-directory nil + "Default location of ipynb files." + :group 'ein + :type 'directory) + +(defcustom ein:jupyter-default-kernel 'first-alphabetically + "With which of ${XDG_DATA_HOME}/jupyter/kernels to create new notebooks." + :group 'ein + :type (append + '(choice (other :tag "First alphabetically" first-alphabetically)) + (condition-case err + (mapcar + (lambda (x) `(const :tag ,(cdr x) ,(car x))) + (cl-loop + for (k . spec) in + (alist-get + 'kernelspecs + (let ((json-object-type 'alist)) + (json-read-from-string + (shell-command-to-string + (format "%s kernelspec list --json" + ein:jupyter-server-command))))) + collect `(,k . ,(alist-get 'display_name (alist-get 'spec spec))))) + (error (ein:log 'warn "ein:jupyter-default-kernel: %s" err) + '((string :tag "Ask")))))) + +(defvar *ein:jupyter-server-process-name* "ein server") +(defvar *ein:jupyter-server-buffer-name* + (format "*%s*" *ein:jupyter-server-process-name*)) + +(defun ein:jupyter-get-default-kernel (kernels) + (cond (ein:%notebooklist-new-kernel% + (ein:$kernelspec-name ein:%notebooklist-new-kernel%)) + ((eq ein:jupyter-default-kernel 'first-alphabetically) + (car (car kernels))) + ((stringp ein:jupyter-default-kernel) + ein:jupyter-default-kernel) + (t + (symbol-name ein:jupyter-default-kernel)))) + +(defun ein:jupyter-process-lines (url-or-port command &rest args) + "If URL-OR-PORT registered as a k8s url, preface COMMAND ARGS with `kubectl exec'." + (condition-case err + (cond ((-when-let* ((url-or-port url-or-port) + (parsed-url (url-generic-parse-url url-or-port)) + (not-local (not (string= (url-host parsed-url) + ein:url-localhost)))) + (string= url-or-port (ein:k8s-service-url-or-port))) + (let ((pod-name (kubernetes-state-resource-name (ein:k8s-get-pod)))) + (apply #'process-lines kubernetes-kubectl-executable + (nconc + (split-string (format "exec %s -- %s" pod-name command)) + args)))) + (t (apply #'process-lines command args))) + (error (ein:log 'info "ein:jupyter-process-lines: %s" (error-message-string err)) + nil))) + +(defsubst ein:jupyter-server-process () + "Return the emacs process object of our session." + (get-buffer-process (get-buffer *ein:jupyter-server-buffer-name*))) + +(defun ein:jupyter-server--run (buf user-cmd dir &optional args) + (let* ((cmd (if ein:jupyter-use-containers "docker" user-cmd)) + (vargs (cond (ein:jupyter-use-containers + (split-string + (format "run --network host -v %s:%s %s %s" + dir + ein:jupyter-docker-mount-point + ein:jupyter-docker-additional-switches + ein:jupyter-docker-image))) + (t + (append (aif ein:jupyter-server-use-subcommand (list it)) + (list (format "--notebook-dir=%s" + (convert-standard-filename dir))) + args + (let ((copy ein:jupyter-server-args)) + (when ein:debug + (add-to-list 'copy "--debug")) + copy))))) + (proc (apply #'start-process + *ein:jupyter-server-process-name* buf cmd vargs))) + (ein:log 'info "ein:jupyter-server--run: %s %s" cmd (ein:join-str " " vargs)) + (set-process-query-on-exit-flag proc nil) + proc)) + +(defun ein:jupyter-server-conn-info (&optional buffer-name) + "Return the url-or-port and password for BUFFER or the global session." + (unless buffer-name + (setq buffer-name *ein:jupyter-server-buffer-name*)) + (let ((buffer (get-buffer buffer-name)) + (result '(nil nil))) + (if buffer + (with-current-buffer buffer + (save-excursion + (goto-char (point-max)) + (re-search-backward (format "Process %s" *ein:jupyter-server-process-name*) + nil "") ;; important if we start-stop-start + (when (re-search-forward "\\([[:alnum:]]+\\) is\\( now\\)? running" nil t) + (let ((hub-p (cl-search "jupyterhub" (downcase (match-string 1))))) + (when (re-search-forward "\\(https?://[^:]*:[0-9]+\\)\\(?:/\\?token=\\([[:alnum:]]+\\)\\)?" nil t) + (let ((raw-url (match-string 1)) + (token (or (match-string 2) (and (not hub-p) "")))) + (setq result (list (ein:url raw-url) token))))))))) + result)) + +(defun ein:jupyter-server-login-and-open (&optional callback) + "Log in and open a notebooklist buffer for a running jupyter notebook server. + +Determine if there is a running jupyter server (started via a +call to `ein:jupyter-server-start') and then try to guess if +token authentication is enabled. If a token is found use it to generate a +call to `ein:notebooklist-login' and once authenticated open the notebooklist buffer +via a call to `ein:notebooklist-open'." + (interactive) + (when (ein:jupyter-server-process) + (multiple-value-bind (url-or-port password) (ein:jupyter-server-conn-info) + (ein:notebooklist-login url-or-port callback)))) + +(defsubst ein:set-process-sentinel (proc url-or-port) + "URL-OR-PORT might get redirected from (ein:jupyter-server-conn-info). +This is currently only the case for jupyterhub. +Once login handshake provides the new URL-OR-PORT, we set various state as pertains +our singleton jupyter server process here." + + ;; Would have used `add-function' if it didn't produce gv-ref warnings. + (set-process-sentinel + proc + (apply-partially (lambda (url-or-port* sentinel proc* event) + (aif sentinel (funcall it proc* event)) + (funcall #'ein:notebooklist-sentinel url-or-port* proc* event)) + url-or-port (process-sentinel proc)))) + +;;;###autoload +(defun ein:jupyter-crib-token (url-or-port) + "Shell out to jupyter for its credentials knowledge. Return list of (PASSWORD TOKEN)." + (aif (cl-loop for line in + (apply #'ein:jupyter-process-lines url-or-port + ein:jupyter-server-command + (split-string + (format "%s%s %s" + (aif ein:jupyter-server-use-subcommand + (concat it " ") "") + "list" "--json"))) + with token0 + with password0 + when (destructuring-bind + (&key password url token &allow-other-keys) + (ein:json-read-from-string line) + (prog1 (or (equal (ein:url url) url-or-port) + (equal (url-host (url-generic-parse-url url)) + "0.0.0.0")) + (setq password0 password) ;; t or :json-false + (setq token0 token))) + return (list password0 token0)) + it (list nil nil))) + +;;;###autoload +(defun ein:jupyter-crib-running-servers () + "Shell out to jupyter for running servers." + (nconc + (cl-loop for line in + (apply #'ein:jupyter-process-lines nil + ein:jupyter-server-command + (split-string + (format "%s%s %s" + (aif ein:jupyter-server-use-subcommand + (concat it " ") "") + "list" "--json"))) + collecting (destructuring-bind + (&key url &allow-other-keys) + (ein:json-read-from-string line) + (ein:url url))) + (aif (ein:k8s-service-url-or-port) (list it)))) + +;;;###autoload +(defun ein:jupyter-server-start (server-command + notebook-directory + &optional no-login-p login-callback port) + "Start SERVER-COMMAND with `--notebook-dir' NOTEBOOK-DIRECTORY. + +Login after connection established unless NO-LOGIN-P is set. +LOGIN-CALLBACK takes two arguments, the buffer created by +`ein:notebooklist-open--finish', and the url-or-port argument +of `ein:notebooklist-open*'. + +With \\[universal-argument] prefix arg, prompt the user for the +server command." + (interactive + (list (let ((default-command (executable-find ein:jupyter-server-command))) + (if (and (not ein:jupyter-use-containers) + (or current-prefix-arg (not default-command))) + (let (command result) + (while (not (setq + result + (executable-find + (setq + command + (read-string + (format + "%sServer command: " + (if command + (format "[%s not executable] " command) + "")) + nil nil ein:jupyter-server-command)))))) + result) + default-command)) + (let (result + (default-dir ein:jupyter-default-notebook-directory)) + (while (or (not result) (not (file-directory-p result))) + (setq result (read-directory-name + (format "%sNotebook directory: " + (if result + (format "[%s not a directory]" result) + "")) + nil + ein:jupyter-default-notebook-directory + t))) + result) + nil + (lambda (buffer url-or-port) + (pop-to-buffer buffer)) + nil)) + (if (ein:jupyter-server-process) + (error "ein:jupyter-server-start: please first M-x ein:stop")) + (add-hook 'kill-emacs-hook #'(lambda () + (ignore-errors (ein:jupyter-server-stop t)))) + (let ((proc (ein:jupyter-server--run *ein:jupyter-server-buffer-name* + server-command + notebook-directory + (if (numberp port) + `("--port" ,(format "%s" port) + "--port-retries" "0"))))) + (cl-loop repeat 30 + until (car (ein:jupyter-server-conn-info *ein:jupyter-server-buffer-name*)) + do (sleep-for 0 500) + finally do + (unless (car (ein:jupyter-server-conn-info *ein:jupyter-server-buffer-name*)) + (ein:log 'warn "Jupyter server failed to start, cancelling operation") + (ein:jupyter-server-stop t))) + (when (and (not no-login-p) (ein:jupyter-server-process)) + (unless login-callback + (setq login-callback #'ignore)) + (add-function :after login-callback + (apply-partially (lambda (proc* buffer url-or-port) + (ein:set-process-sentinel proc* url-or-port)) + proc)) + (ein:jupyter-server-login-and-open login-callback)))) + +;;;###autoload +(defalias 'ein:run 'ein:jupyter-server-start) + +;;;###autoload +(defalias 'ein:stop 'ein:jupyter-server-stop) + +;;;###autoload +(defun ein:jupyter-server-stop (&optional force log) + (interactive) + (ein:and-let* ((url-or-port (first (ein:jupyter-server-conn-info))) + (_ok (or force (y-or-n-p "Stop server and close notebooks?")))) + (ein:notebook-close-notebooks t) + (cl-loop repeat 10 + until (not (seq-some (lambda (proc) + (cl-search "request curl" + (process-name proc))) + (process-list))) + do (sleep-for 0 500)) + (lexical-let* ((proc (ein:jupyter-server-process)) + (pid (process-id proc))) + (ein:log 'info "Signaled %s with pid %s" proc pid) + (signal-process pid 15) + (run-at-time 2 nil + (lambda () + (ein:log 'info "Resignaled %s with pid %s" proc pid) + (signal-process pid 15)))) + + ;; `ein:notebooklist-sentinel' frequently does not trigger + (ein:notebooklist-list-remove url-or-port) + (kill-buffer (ein:notebooklist-get-buffer url-or-port)) + (when log + (with-current-buffer *ein:jupyter-server-buffer-name* + (write-region (point-min) (point-max) log))))) + +(provide 'ein-jupyter) diff --git a/elpa/ein-20200202.218/ein-jupyter.elc b/elpa/ein-20200202.218/ein-jupyter.elc new file mode 100644 index 0000000000000000000000000000000000000000..cfe472cce1f8bc1aa31992c6e55dc58e494c67ad GIT binary patch literal 13531 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 PKBACID3(bds;mDC1-rIK literal 0 HcmV?d00001 diff --git a/elpa/ein-20200127.249/ein-jupyterhub.el b/elpa/ein-20200202.218/ein-jupyterhub.el similarity index 96% rename from elpa/ein-20200127.249/ein-jupyterhub.el rename to elpa/ein-20200202.218/ein-jupyterhub.el index b0e695f5..9df2e9bd 100644 --- a/elpa/ein-20200127.249/ein-jupyterhub.el +++ b/elpa/ein-20200202.218/ein-jupyterhub.el @@ -21,7 +21,7 @@ ;; along with ein-jupyter.el. If not, see . ;;; Commentary: -;; +;; Deprecated. ;;; ;;; An interface to the Jupyterhub login and management API as described in ;;; http://jupyterhub.readthedocs.io/en/latest/api/index.html @@ -33,17 +33,18 @@ (require 'ein-query) (require 'ein-websocket) (require 'ein-notebooklist) +(require 'anaphora) (defvar *ein:jupyterhub-connections* (make-hash-table :test #'equal)) -(cl-defstruct ein:$jh-conn +(defstruct ein:$jh-conn "Data representing a connection to a jupyterhub server." url-or-port version user token) -(cl-defstruct ein:$jh-user +(defstruct ein:$jh-user "A jupyterhub user, per https://jupyterhub.readthedocs.io/en/latest/_static/rest-api/index.html#/definitions/User" name admin @@ -54,7 +55,7 @@ (defsubst ein:jupyterhub-user-path (url-or-port &rest paths) "Goes from URL-OR-PORT/PATHS to URL-OR-PORT/user/someone/PATHS" - (let ((user-base (ein:aif (gethash url-or-port *ein:jupyterhub-connections*) + (let ((user-base (aif (gethash url-or-port *ein:jupyterhub-connections*) (ein:$jh-user-server (ein:$jh-conn-user it))))) (apply #'ein:url url-or-port user-base paths))) @@ -90,11 +91,11 @@ (ein:and-let* ((conn (gethash ,conn-key *ein:jupyterhub-connections*))) (ein:jupyterhub--add-header (cons "Referer" (ein:url (ein:$jh-conn-url-or-port conn) "hub/login"))) - (ein:aif (ein:$jh-conn-token conn) + (aif (ein:$jh-conn-token conn) (ein:jupyterhub--add-header (cons "Authorization" (format "token %s" it))))) (apply #'ein:query-singleton-ajax - ,url ,url + ,url :error (lambda (&rest args) (ein:log 'error "ein:jupyterhub-query--error (%s) %s (%s)" ,url @@ -158,9 +159,6 @@ (ein:jupyterhub--store-cookies conn) (ein:jupyterhub--query-user callback username password conn 0)) -(defun ein:jupyterhub--receive-server (_data callback username password conn) - (ein:jupyterhub--query-user callback username password conn 1)) - (defsubst ein:jupyterhub--query-server (callback username password conn) (ein:jupyterhub-query (ein:$jh-conn-url-or-port conn) @@ -175,6 +173,9 @@ (setf (ein:$jh-conn-token conn) (plist-get data :token)) (ein:jupyterhub--query-server callback username password conn)) +(defun ein:jupyterhub--receive-server (_data callback username password conn) + (ein:jupyterhub--query-user callback username password conn 1)) + (defun ein:jupyterhub--query-token (callback username password conn) (ein:jupyterhub-query (ein:$jh-conn-url-or-port conn) @@ -202,7 +203,7 @@ (interactive (let ((url-or-port (ein:notebooklist-ask-url-or-port)) (pam-plist (ein:notebooklist-ask-user-pw-pair "User" "Password"))) (cl-loop for (user pw) on pam-plist by (function cddr) - return (list url-or-port (symbol-name user) pw (lambda (buffer _url-or-port) (pop-to-buffer buffer)))))) + return (list url-or-port (symbol-name user) pw (lambda (buffer _url-or-port) (pop-to-buffer buffer)))))) (ein:jupyterhub--query-version url-or-port callback username password)) (provide 'ein-jupyterhub) diff --git a/elpa/ein-20200127.249/ein-jupyterhub.elc b/elpa/ein-20200202.218/ein-jupyterhub.elc similarity index 51% rename from elpa/ein-20200127.249/ein-jupyterhub.elc rename to elpa/ein-20200202.218/ein-jupyterhub.elc index f3c8f98b3d8c8f9750b508eccc05075a1d3a7fad..4a5b221f6adaaee9ff2e13d48a69582c3853436e 100644 GIT binary patch delta 2013 zcmbVMU2IfE6n18JXS;=Mx1hA8>~^=?ExRqqy)$#~-Q}n5rihgkHKGy7<)@ZbXlT2X z7BB%@Vhqqki5w$of(hvh527KNM>VMif)9qk1Nxu|;fY7WqcH~0TrS&PjW6V8=Kjq2 zzVn^)&D_OX^sk@j^&6z#G+bfmA>l`ok0b}j2g`>hCI{7@WFMin0i>}7js~t03revK zsz3NMsTVxAH&>r6Pfx*jtW8-=V59?Pdr5sAK0%0pCe{LXB6X@SvX)S3c}w5aj}lVQ ze9Bm!CbVFCpTCTbB4fV77;AV@B^o;rCUCtIdV}?<9Lof#G}NV)2Pid7FxoRJv1%)& z1rzRewZN&Ct5j$KI=mY$^n}#O)=yEC2@jGjs=X~mf{tMpFk+jUTQjUz)Z=(B-fd;J ze@g-;vObPCLn6i0lVm5sa*MGpC}ujmPm>)739&u0N9i6y9ghn3rNioQW`t1gsJmUS zp=R!-IFLPq^+}KMQ8uc=-J5XD@CDXGITlwJdM*X1%~f{8ZAu-D>x9Iresz#<3s8aG zo^OSl)*_KmoL>!B?8`GYN!9hb+>nhgpkIzFw0EW%*y?t;9G|&q;ydrhNstuI5@&9R zX$&_l95%x2Kq}&qtg9w*LOuy~1vmNwI*|B*ulRv8UOJ~X9XIa~w`hO8g)z1aSM^=9wjCmvg(ahJ4O{ z$fe5#_L5_hxYwkRFUsYXRRd*VUsw=B4K2(Grga%C?3;rxTFK0kK`i297;}X{kTwc? z5W?bg)7){-5L^>gxx~MW)!BSt0D(_+vbtwNg}qe2t}({k@n>nnS}U9@7*Y_;QPfii z^Krx%8Eab;PsDZlhIp|dUcx6Cbw`$Uv2_?|z{A1^iDSb<)04yH?MyZ8`jEhH7n_4ohDwuT-GN5d06WII;f>4TRcuAZld1*dA(o;d7#8~yaD9%c zYkS^iQR#Ppb7=@IT=fjDq;P(y8BWc<@6&KkC3aX^)iiOn``}3ir*=j{Tsj3yZJxSA zV9)X9pgY2r!SwO&Km&`y!tw5^CZZax2`!VdnoMhoD(A!ytGL1)6MvfXDfnzEtZtuv z-IMi{dv>-Pt_;<|y`fAs_x}o&XHaNyp)SM=+UonGe>`vR;_BD2U0%^)VHWae4J1l$ zsb%NBAn@?KXZ4fwp4GXz8mpyOH*Qbq)YPr6&z)Y{K tn1VOQvelIu9@~<$YCqfyRkoq9ZLG31|1o_ImgTm;Cq&+H)WE_N`3E3!1l0fl delta 2344 zcmbtVO>9(E6!zYkxibaY8QX*cwWZT`+RoH4_wT(oQ>7HDrD}9&cEZDj+E=-IXgXg}!`9oGZllNxcz2}_o zobP<+zQ4Yu*RIn~=Lp;+j!DujB;ph_?2lX}5=15gTbJg{O!N|=g5zo{++mB%Q%n&! zwqOkYj4m`cIHKU8Vga60kYt844+X)e{ zFS5kslYIoC^3goZ4z$DjO$*H@slO=|1sKY=nz@!IXoMG~NiBYb5*OOrmcW@Mm(cl* z1sSt-=@rbk=$VeT0*SiCq6fTx)LeXM2O-MZnvRY>LbbNbaH^ddSUwqKYxk1r9PSmd z%(XDn88>fsZNq2J{L;OKP-i~Wq0Fmj??6Xe>)GD8iS=c%KyG;dbu32OWs}N{Av*=& z(G_NP;EM>=+zjP!Q0j0zcu7?xu7(%%FtWCw^xw_Ex4mLl@9qS-G>qJACJ#|jeFdu>@wj#;>5?1L- z(v9vCFRu;~7j#{KdQ_~b7R#5?t+W0YobaXM2#d7IfVNn=G|!ta9jDHh#lu{q0e9%2 zqumyb#lwE#Lv3>0WeuSVV`z@K+14Q|F~Toh8VWD7>4lBeb{EDcyu_n8h-@~KD`XtcVj>YcfqfH z18{dL4qpy_pPJ|t#m@fjp3W7WLUXO)y+`H!*-isMScQRE3AxMygZhI z-&S^In=J=x@bftSu^ULZL~RJp9<+(D=26^HVhs!peb=yK_w?Y)yLWc>!)M7B)3&OY zE>h(L99NoktLI40_6^-xxdBq!o>enpiI9mHL`QnaLdcC|Nh53=$+kDM;M?OX?crc4 z2W6mT2FdI7r{U(tZgXWM%c_{J>%n<<84MqYo8~7AG#8ZMB6e9XUVx1Sp@^+4s@N;X zE%vr?i+yT5o2gReu{;f#PI>Tn!x_$0h75pZ&< z$7Ei3hBZ221Ekch3{Eb~#z!x;P$5u1l`c4TXv;?t3bMikuG$Gz3bVN|Dd6_O1pG9a z39`96c~3Snpaw;vo!V@!jI^8M+YYfN#mnjFqT=S~qqm8u6N6)?>V9It_Q?NBicRBO z>3No_rr{~Kkez@HtJj+?duB)z_hJ=Fv;!@hyWr|xC)&vTo$&kKTqMbwpl2#qBSqxi zb^ukabxqCY(ITpM%>P{>?z?G6L0f!GdaAR_E zF)AN{EZlu5-v0U_mMnw};{oZoVQJ&X&ykE!6;wIj?aIVgQQ@l-gQ)vIPFUUd%+}7F zqXT3-BD7aiC`xU>T%O&}8q2ee`;Ip1^bDaa4)46BX;T`eHuuw18j_`aPz4WS)yme+ p&fzm}$13BiJbV?0;|nKGC(OvZFVg=K5pEw%L{(8q6TkQx`3ImwL4p7P diff --git a/elpa/ein-20200202.218/ein-k8s.el b/elpa/ein-20200202.218/ein-k8s.el new file mode 100644 index 00000000..72b9e8e0 --- /dev/null +++ b/elpa/ein-20200202.218/ein-k8s.el @@ -0,0 +1,171 @@ +;;; ein-k8s.el --- hooks to chrisbarrett's kubernetes*.el -*- lexical-binding: t; -*- + +;; Copyright (C) 2019 The Authors + +;; Authors: dickmao + +;; This file is NOT part of GNU Emacs. + +;; ein-k8s.el 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. + +;; ein-k8s.el 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 ein-k8s.el. If not, see . + +;;; Commentary: + +;;; Code: + +(require 'kubernetes) + +(defcustom ein:k8s-name-deployment "jupyter-deployment" + "Regexp by which we recognize jupyter services." + :type 'string + :group 'ein) + +(defcustom ein:k8s-name-service "jupyter-service" + "Regexp by which we recognize jupyter services." + :type 'string + :group 'ein) + +(defun ein:k8s-select-context (&optional query-p) + (interactive "p") + (when (or query-p + (null (kubernetes-state-config (kubernetes-state)))) + (kubernetes-contexts-refresh-now) + (if-let ((contexts (ein:k8s-get-contexts))) + (let ((desired-context + (ein:completing-read "Select context: " contexts nil t))) + (message "Rereading state...") + (kubernetes-state-clear) + (let ((response + (kubernetes-kubectl-await + (apply-partially #'kubernetes-kubectl + kubernetes-props + (kubernetes-state) + (split-string (format "config use-context %s" + desired-context))) + (lambda (buf) + (with-current-buffer buf + (string-match (rx bol "Switched to context \"" + (group (+? nonl)) "\"." (* space) eol) + (buffer-string)) + (match-string 1 (buffer-string))))))) + (if (string= response desired-context) + (progn + (kubernetes-state-update-config (kubernetes-kubectl-await-on-async + kubernetes-props + (kubernetes-state) + #'kubernetes-kubectl-config-view)) + (let ((current-name (alist-get + 'name + (kubernetes-state-current-context + (kubernetes-state))))) + (unless (string= current-name desired-context) + (error "ein:k8s-select-context': could not update state for %s" + desired-context)) + (if (kubernetes-nodes-refresh-now) + (progn + (mapc (lambda (resource) + (when-let ((refresh-f + (intern-soft (format "kubernetes-%s-refresh-now" resource)))) + (when (fboundp refresh-f) + (funcall refresh-f)))) + (cl-remove-if (apply-partially #'eq 'nodes) + (mapcar #'car kubernetes-overview-views-alist))) + (message "")) + (error "ein:k8s-select-context: %s is down" current-name)))) + (error "ein:k8s-select-context: use-context returned %s, expected %s" + response desired-context)))) + (error "ein:k8s-select-context: No contexts found")))) + +(defun ein:k8s-get-contexts () + (let ((response (kubernetes-kubectl-await-on-async kubernetes-props + (kubernetes-state) + #'kubernetes-kubectl-config-view))) + (-let* [((&alist 'contexts contexts 'current-context current) response) + (names (--map (alist-get 'name it) (append contexts nil)))] + (when (member current names) + (setq names (cons current (-remove-item current names)))) + names))) + +(defun ein:k8s-get-deployment () + (-let* [(deployments (kubernetes-state-deployments (kubernetes-state))) + ((&alist 'items items) deployments)] + (seq-some (lambda (it) + (-let [(&alist 'metadata (&alist 'name)) it] + (and (string= name ein:k8s-name-deployment) it))) + items))) + +(defun ein:k8s-get-pod () + (when-let ((deployment (ein:k8s-get-deployment))) + (cl-first (kubernetes-overview--pods-for-deployment (kubernetes-state) + deployment)))) +(defun ein:k8s-get-service () + (-let* [(services (kubernetes-state-services (kubernetes-state))) + ((&alist 'items items) services)] + (seq-some (lambda (it) + (-let [(&alist 'metadata (&alist 'name)) it] + (and (string= name ein:k8s-name-service) it))) + items))) + +(defun ein:k8s-get-node () + (-when-let* ((pod (ein:k8s-get-pod)) + ((&alist 'spec (&alist 'nodeName)) pod) + (node (kubernetes-state-lookup-node nodeName (kubernetes-state))) + ((&alist 'metadata (&alist 'name)) node)) + node)) + +(defsubst ein:k8s-ensure () + (and (executable-find kubernetes-kubectl-executable) + (condition-case err + (progn + (ein:k8s-select-context) + (kubernetes-state-current-context (kubernetes-state))) + (error (ein:log 'info "ein:k8s-ensure: %s" (error-message-string err)) + nil)))) + +(defsubst ein:k8s-in-cluster (addr) + "Is ein client inside the k8s cluster?" + (if-let ((ip-command (executable-find "ip"))) + (with-temp-buffer + (apply #'call-process ip-command nil t nil + (split-string (format "n ls %s" addr))) + (goto-char (point-min)) + (search-forward addr nil t)) + ;; hack if ip command not found + (string= "minikube" + (alist-get 'name (kubernetes-state-current-context + (kubernetes-state)))))) + +(defun ein:k8s-service-url-or-port () + (ein:k8s-ensure) + (-when-let* ((service (ein:k8s-get-service)) + ((&alist 'spec (&alist 'ports [(&alist 'nodePort)])) service) + (node (ein:k8s-get-node)) + ((&alist 'status (&alist 'addresses)) node) + (host-ip + (seq-some (lambda (address) + (when (string= (alist-get 'type address) "InternalIP") + (alist-get 'address address))) + addresses))) + (if (ein:k8s-in-cluster host-ip) + (ein:url (concat "http://" host-ip ":" (number-to-string nodePort))) + (when-let ((ips (kubernetes-kubectl-await-command ingress + (lambda (item) + (-let* (((&alist 'status + (&alist 'loadBalancer + (&alist 'ingress + [(&alist 'ip)]))) + item)) + ip))))) + (ein:url (concat "http://" (car ips))))))) + +(provide 'ein-k8s) diff --git a/elpa/ein-20200202.218/ein-k8s.elc b/elpa/ein-20200202.218/ein-k8s.elc new file mode 100644 index 0000000000000000000000000000000000000000..21f7011cb269a94e8ac72f90ee8bc0bcdf10b68a GIT binary patch literal 6578 zcmds6`)}LG5q2K+IW7tmEsFcGYsyJ1H}r|iha3k*;v_C=puMK{<%h!30W`Iec%ev! z4?E6Z-*5IoQLjUSpuaQ;AL7pL&hC8k&CKS-*+1TVzqPfs`{Kn5_9mO= zSs0bV{T?>|E;ld<(DJ2tOk;I~4)f9r_dGmid0nC{irUhY-W!{l!S$_Z^9xDuVG#hrzandOB?nTXw8%CZYI)- zjq5ZbaL|*0!8%txy$~+v=s171eyMXTvS{_QhRk6dr!!>Mg_wv>IlI1Nx6?S9vRlCl z5oMD!{w$d8$x2b&#E~eEEOt`e<$@`Av6D%W)j4UmsG*i$)rQZt(K1RE-Wd+rad)@# ziU$l<8K>+C0X|E^g#G*d*~NeCcilhl9*o2|OyaO)PtA^$A`wvq3#OI$RAEN$2iO4) z`*2udyaj_uL$bY>_~PRV=$ps1)qHv(VHcM}O#!a{ePiZ*V`mKu$Mkf72?w%He+M00 zHgGv`!GR0Tw|55C9(rpqk%BuTpT+=N=7jSFpD!Y7^{nmq@Cu7^IJ`v|Y}S3;YB>v@>A$8$ZZ=ijH+ zfZwC9pUv0c{=<&`s+-X4nbtmrP@f6Ua~#`wk>zCz*medsxQWHBO}Em95y48W4rLWe zKTOB*WaWGNgEn+&7h+t9a%!j9Z3DiEXpjKffzL!B*+f*JLdb_BW?f3SNQMJkPMF2g zIAIl=iLwkQAb|@(g6IH@L#3l5V18B41f16XOcGI**x_v$gKhIXxwG@IsA4$h-5Nnw z=1E-H+Kt9pF$*hZVQsX0aCw90$E77P-Dg%oIQ^(m3+wg>CY%|YHdIBQy08+NL``60 zbhx(l^ChB5G({w+z}nhl(0_1n^p}@|L6=^SuC7kXJdDK2aCo?HvFmy~26t#p*?a@3AUk5Ml$LtMU~kZOu}gITgyoiBo<*e3-icW2exQz@&L}S zNyYyIe5L2!BVVI;n2=nSY!idAiqtN%F?d`fpf%m&g}E#?zRv1&lneJ41Q+EVI9Dg+OOLq^$wrYyNbaH!2Yk!K^Qq*E%BDEKO? zQ1pwPc(tSkp>@9UHUOF^Xk*~ghSzTplsg1#Zq{ry#llv7wSi1x*H-d>Y8|8Yx0{Ce zZH;Yu#J8KU14H>oB;djCd&vAKAEMmPe`dN-@<-kKEy$6;A)!s?I`f+Zy#XIto#3KZ z2JL>N09Aq-S9aGk z&VdZS-6la>%GQ^cZZFf{vVa^Y$tLz~LBv*|q#b7navy{}FXWWF8Vpbc*OR$4nd=7J z8zI-aLBK+YzcPW>SW)dN1w@NU-EEy2>ZFGl7F;@H&&f6Ox|&xa+8|G*BDz|KhUzyZ zqNvmDI8EYI*oc@Yo~hpPd+c21stDjQm2`1h#y~|i1u~8i5E7JxqIju_qSLo;FV@#V zacXPP7KcjK1};>6b1bnzz}Q>JC3U?z$Hi|52C{Z=_&$15k%Mh?ya%|Ms)wFHld5^P ze~Xmo$u{9lTr1RZ-bi;24TAV7bU;z0Yal!WS?9Q@eN=@+nb90j3Po0&TWlgyQBWqC zqKZ&iDYExNgpd5t+6)1h9&Yi-EM5Lwg9DxBs+=-T50<`dzdFu-Dty!GL^p(;kSEo&$<2>)KAhCsouR`P6@>*8@ zc3mVkqE((1RAVa-|jXiWo;)*+)QEp|TWt9KY` z9yOQVmNQ3!IF-_K5@<(Am4?sT{=dUa6E`WjSW2CcI=mxqB$q@2O=*S+Vk9k73mp66 zjD(JcDXFX1=Gm}n&mnjdniU88zk~5)rQu54OB2lrOr8K*=dyealk;~L9WT>73*`re zsWszJVhziE2H>IS;L`Z|8D)}OC@Ave#NR_-XMk6F{I%1?gy0p;xpj*RLVPHgQe zGbbS}vNrJj;*%f?)rX2 tries-left 0) (ein:kernel-session-p kernel callback (1+ iteration)))))) -(cl-defun ein:kernel-session-p--success (kernel session-id callback &key data &allow-other-keys) +(cl-defun ein:kernel-session-p--success (kernel session-id callback + &key data &allow-other-keys) (let ((session-p (equal (plist-get data :id) session-id))) (ein:log 'verbose "ein:kernel-session-p--success: session-id=%s session-p=%s" session-id session-p) @@ -140,13 +140,13 @@ (cl-defun ein:kernel-restart-session (kernel) "Server side delete of KERNEL session and subsequent restart with all new state" (ein:kernel-delete-session - kernel (lambda (kernel) (ein:events-trigger (ein:$kernel-events kernel) 'status_restarting.Kernel) (ein:kernel-retrieve-session kernel 0 (lambda (kernel) (ein:events-trigger (ein:$kernel-events kernel) - 'status_restarted.Kernel)))))) + 'status_restarted.Kernel)))) + :kernel kernel)) (cl-defun ein:kernel-retrieve-session (kernel &optional iteration callback) "Formerly ein:kernel-start, but that was misnomer because 1. the server really starts a session (and an accompanying kernel), and 2. it may not even start a session if one exists for the same path. @@ -166,7 +166,6 @@ CALLBACK of arity 1, the kernel. (kernelspec (ein:$kernel-kernelspec kernel)) (path (ein:$kernel-path kernel))) (ein:query-singleton-ajax - (list 'kernel-retrieve-session kernel-id) (ein:url (ein:$kernel-url-or-port kernel) "api/sessions") :type "POST" :data (json-encode @@ -183,17 +182,21 @@ CALLBACK of arity 1, the kernel. (("name" . ,(ein:$kernelspec-name kernelspec)) ,@(if kernel-id `(("id" . ,kernel-id))))))))))) - :sync ein:force-sync :parser #'ein:json-read :complete (apply-partially #'ein:kernel-retrieve-session--complete kernel callback) :success (apply-partially #'ein:kernel-retrieve-session--success kernel callback) :error (apply-partially #'ein:kernel-retrieve-session--error kernel iteration callback))))) -(cl-defun ein:kernel-retrieve-session--complete (_kernel _callback &key data response &allow-other-keys - &aux (resp-string (format "STATUS: %s DATA: %s" (request-response-status-code response) data))) +(cl-defun ein:kernel-retrieve-session--complete + (kernel callback + &key data response + &allow-other-keys + &aux (resp-string (format "STATUS: %s DATA: %s" (request-response-status-code response) data))) (ein:log 'debug "ein:kernel-retrieve-session--complete %s" resp-string)) -(cl-defun ein:kernel-retrieve-session--error (kernel iteration callback &key error-thrown _symbol-status &allow-other-keys) +(cl-defun ein:kernel-retrieve-session--error + (kernel iteration callback + &key error-thrown symbol-status &allow-other-keys) (let* ((max-tries 3) (tries-left (1- (- max-tries iteration)))) (ein:log 'verbose "ein:kernel-retrieve-session--error [%s], %s tries left" @@ -256,7 +259,7 @@ See https://github.com/ipython/ipython/pull/3307" (let ((cookie (ein:query-get-cookie host "/"))) (ein:websocket-send channel cookie))) -(defun ein:kernel--handle-websocket-reply (kernel _ws frame) +(defun ein:kernel--handle-websocket-reply (kernel ws frame) (ein:and-let* ((packet (websocket-frame-payload frame)) (channel (plist-get (ein:json-read-from-string packet) :channel))) (cond ((string-equal channel "iopub") @@ -299,11 +302,10 @@ See https://github.com/ipython/ipython/pull/3307" (error "Api version %s unsupported" (ein:$kernel-api-version kernel))) (t (ein:start-single-websocket kernel callback)))) -(defun ein:kernel-on-connect (_kernel _content _metadata) +(defun ein:kernel-on-connect (kernel content -metadata-not-used-) (ein:log 'info "Kernel connect_request_reply received.")) (defun ein:kernel-run-after-start-hook (kernel) - (ein:log 'debug "EIN:KERNEL-RUN-AFTER-START-HOOK") (mapc #'ein:funcall-packed (ein:$kernel-after-start-hook kernel))) @@ -311,7 +313,7 @@ See https://github.com/ipython/ipython/pull/3307" "Close websocket connection to running kernel, but do not delete the kernel on the server side" (ein:events-trigger (ein:$kernel-events kernel) 'status_disconnected.Kernel) - (ein:aif (ein:$kernel-websocket kernel) + (aif (ein:$kernel-websocket kernel) (progn (ein:websocket-close it) (setf (ein:$kernel-websocket kernel) nil)))) @@ -326,16 +328,6 @@ delete the kernel on the server side" (ein:log 'verbose "Kernel %s unavailable" (ein:$kernel-kernel-id kernel)) (ein:kernel-reconnect-session kernel callback))) - -;;; Main public methods - -;; NOTE: The argument CALLBACKS for the following functions is almost -;; same as the JS implementation in IPython. However, as Emacs -;; lisp does not support closure, value is "packed" using -;; `cons': `car' is the actual callback function and `cdr' is -;; its first argument. It's like using `cons' instead of -;; `$.proxy'. - (defun ein:kernel-object-info-request (kernel objname callbacks &optional cursor-pos detail-level) "Send object info request of OBJNAME to KERNEL. @@ -352,7 +344,7 @@ CONTENT and METADATA are given by `object_info_reply' message. `object_info_reply' message is documented here: http://ipython.org/ipython-doc/dev/development/messaging.html#object-information " - (cl-assert (ein:kernel-live-p kernel) nil "object_info_reply: Kernel is not active.") + (assert (ein:kernel-live-p kernel) nil "object_info_reply: Kernel is not active.") (when objname (if (<= (ein:$kernel-api-version kernel) 2) (error "Api version %s unsupported" (ein:$kernel-api-version kernel))) @@ -374,71 +366,26 @@ http://ipython.org/ipython-doc/dev/development/messaging.html#object-information (cl-defun ein:kernel-execute (kernel code &optional callbacks &key - (silent t) - (store-history t) - (user-expressions (make-hash-table)) - (allow-stdin t) - (stop-on-error nil)) + (silent t) + (store-history t) + (user-expressions (make-hash-table)) + (allow-stdin t) + (stop-on-error nil)) "Execute CODE on KERNEL. -When calling this method pass a CALLBACKS structure of the form: +The CALLBACKS plist looks like: (:execute_reply EXECUTE-REPLY-CALLBACK :output OUTPUT-CALLBACK :clear_output CLEAR-OUTPUT-CALLBACK :set_next_input SET-NEXT-INPUT) -Right hand sides ending -CALLBACK above must cons a FUNCTION and its -`packed' ARGUMENT which is a sublist of args: +Right hand sides ending -CALLBACK above are of the form (FUNCTION ARG1 ... ARGN). +(Hindsight: this was all much better implemented using `apply-partially') - (FUNCTION . ARGUMENT) - -Call signature --------------- -:: - - (`funcall' EXECUTE-REPLY-CALLBACK ARGUMENT CONTENT METADATA) - (`funcall' OUTPUT-CALLBACK ARGUMENT MSG-TYPE CONTENT METADATA) - (`funcall' CLEAR-OUTPUT-CALLBACK ARGUMENT CONTENT METADATA) - (`funcall' SET-NEXT-INPUT ARGUMENT TEXT) - -* Both CONTENT and METADATA objects are plist. -* The MSG-TYPE argument for OUTPUT-CALLBACK is a string - (one of `stream', `display_data', `pyout' and `pyerr'). -* The CONTENT object for CLEAR-OUTPUT-CALLBACK has - `stdout', `stderr' and `other' fields that are booleans. -* The SET-NEXT-INPUT callback will be passed the `set_next_input' payload, - which is a string. - See `ein:kernel--handle-shell-reply' for how the callbacks are called. - -Links ------ -* For general description of CONTENT and METADATA: - http://ipython.org/ipython-doc/dev/development/messaging.html#general-message-format -* `execute_reply' message is documented here: - http://ipython.org/ipython-doc/dev/development/messaging.html#execute -* Output type messages is documented here: - http://ipython.org/ipython-doc/dev/development/messaging.html#messages-on-the-pub-sub-socket - -Sample implementations ----------------------- -* `ein:cell--handle-execute-reply' -* `ein:cell--handle-output' -* `ein:cell--handle-clear-output' -* `ein:cell--handle-set-next-input' +Return randomly generated MSG-ID tag uniquely identifying expectation of a kernel response. " - ;; FIXME: Consider changing callback to use `&key'. - ;; Otherwise, adding new arguments to callback requires - ;; backward incompatible changes (hence a big diff), unlike - ;; Javascript. Downside of this is that there is no short way - ;; to write anonymous callback because there is no `lambda*'. - ;; You can use `function*', but that's bit long... - - ;; FIXME: Consider allowing a list of fixed argument so that the - ;; call signature becomes something like: - ;; (funcall FUNCTION [ARG ...] CONTENT METADATA) - - (cl-assert (ein:kernel-live-p kernel) nil "execute_reply: Kernel is not active.") + (assert (ein:kernel-live-p kernel) nil "execute_reply: Kernel is not active.") (let* ((content (list :code code :silent (or silent json-false) @@ -448,7 +395,7 @@ Sample implementations :stop_on_error (or stop-on-error json-false))) (msg (ein:kernel--get-msg kernel "execute_request" content)) (msg-id (plist-get (plist-get msg :header) :msg_id))) - (ein:log 'debug "KERNEL-EXECUTE: code=%s msg_id=%s" code msg-id) + (ein:log 'debug "ein:kernel-execute: code=%s msg_id=%s" code msg-id) (run-hook-with-args 'ein:pre-kernel-execute-functions msg) (ein:websocket-send-shell-channel kernel msg) (ein:kernel-set-callbacks-for-msg kernel msg-id callbacks) @@ -488,7 +435,7 @@ http://ipython.org/ipython-doc/dev/development/messaging.html#complete :cursor_pos cursor-pos))) (msg (ein:kernel--get-msg kernel "complete_request" content)) (msg-id (plist-get (plist-get msg :header) :msg_id))) - (cl-assert (ein:kernel-live-p kernel) nil "kernel not live") + (assert (ein:kernel-live-p kernel) nil "kernel not live") (ein:websocket-send-shell-channel kernel msg) (ein:kernel-set-callbacks-for-msg kernel msg-id callbacks) msg-id) @@ -498,15 +445,15 @@ http://ipython.org/ipython-doc/dev/development/messaging.html#complete (cl-defun ein:kernel-history-request (kernel callbacks &key - (output nil) - (raw t) - (hist-access-type "tail") - session - start - stop - (n 10) - pattern - unique) + (output nil) + (raw t) + (hist-access-type "tail") + session + start + stop + (n 10) + pattern + unique) "Request execution history to KERNEL. When calling this method pass a CALLBACKS structure of the form: @@ -527,7 +474,7 @@ Relevant Python code: * :py:method:`IPython.zmq.ipkernel.Kernel.history_request` * :py:class:`IPython.core.history.HistoryAccessor` " - (cl-assert (ein:kernel-live-p kernel) nil "history_reply: Kernel is not active.") + (assert (ein:kernel-live-p kernel) nil "history_reply: Kernel is not active.") (let* ((content (list :output (ein:json-any-to-bool output) :raw (ein:json-any-to-bool raw) @@ -566,116 +513,97 @@ Example:: (ein:get-kernel) '(:kernel_connect_reply (message . \"CONTENT: %S\\nMETADATA: %S\"))) " - ;(cl-assert (ein:kernel-live-p kernel) nil "connect_reply: Kernel is not active.") + ;(assert (ein:kernel-live-p kernel) nil "connect_reply: Kernel is not active.") (let* ((msg (ein:kernel--get-msg kernel "connect_request" (make-hash-table))) (msg-id (plist-get (plist-get msg :header) :msg_id))) (ein:websocket-send-shell-channel kernel msg) (ein:kernel-set-callbacks-for-msg kernel msg-id callbacks) msg-id)) -(defun ein:kernel-kernel-info-request (kernel callbacks) - "Request core information of KERNEL. - -When calling this method pass a CALLBACKS structure of the form:: - - (:kernel_info_reply (FUNCTION . ARGUMENT)) - -Call signature:: - - (`funcall' FUNCTION ARGUMENT CONTENT METADATA) - -CONTENT and METADATA are given by `kernel_info_reply' message. - -`kernel_info_reply' message is documented here: -http://ipython.org/ipython-doc/dev/development/messaging.html#kernel-info - -Example:: - - (ein:kernel-kernel-info-request - (ein:get-kernel) - '(:kernel_info_reply (message . \"CONTENT: %S\\nMETADATA: %S\"))) -" - (cl-assert (ein:kernel-live-p kernel) nil "kernel_info_reply: Kernel is not active.") - (ein:log 'debug "EIN:KERNEL-KERNEL-INFO-REQUEST: Sending request.") - (let* ((msg (ein:kernel--get-msg kernel "kernel_info_request" nil)) - (msg-id (plist-get (plist-get msg :header) :msg_id))) - (ein:websocket-send-shell-channel kernel msg) - (ein:kernel-set-callbacks-for-msg kernel msg-id callbacks) - msg-id)) - (defun ein:kernel-interrupt (kernel) (when (ein:kernel-live-p kernel) (ein:log 'info "Interrupting kernel") (ein:query-singleton-ajax - (list 'kernel-interrupt (ein:$kernel-kernel-id kernel)) (ein:url (ein:$kernel-url-or-port kernel) (ein:$kernel-kernel-url kernel) "interrupt") :type "POST" - :success (lambda (&rest _ignore) + :success (lambda (&rest ignore) (ein:log 'info "Sent interruption command."))))) -(defun ein:kernel-delete--from-session-id (url session-id &optional callback) - "Stop/delete a running kernel from a session id. May also specify a callback function of 0 args to be called once oepration is complete. - -We need this to have proper behavior for the 'Stop' command in the ein:notebooklist buffer." - (ein:query-singleton-ajax - (list 'kernel-delete-session session-id) - (ein:url url "api/sessions" session-id) - :success (apply-partially #'ein:kernel-delete--from-session-complete session-id callback) - :error (apply-partially #'ein:kernel-delete--from-session-error session-id) - :type "DELETE")) - -(defun ein:kernel-delete--from-session-complete (session-id callback &rest _) - (ein:log 'info "Deleted session %s and its associated kernel process." session-id) - (when callback - (funcall callback))) - -(defun ein:kernel-delete--from-session-error (session-id &rest _) - (ein:log 'info "Error, could not delete session %s." session-id)) - -(defun ein:kernel-delete-session (kernel &optional callback) +(cl-defun ein:kernel-delete-session (&optional callback + &key url-or-port path kernel + &aux (session-id)) "Regardless of success or error, we clear all state variables of kernel and funcall CALLBACK (kernel)" - (ein:and-let* ((session-id (ein:$kernel-session-id kernel))) - (ein:query-singleton-ajax - (list 'kernel-delete-session session-id) - (ein:url (ein:$kernel-url-or-port kernel) "api/sessions" session-id) - :type "DELETE" - :complete (apply-partially #'ein:kernel-delete-session--complete kernel session-id callback) - :error (apply-partially #'ein:kernel-delete-session--error session-id callback) - :success (apply-partially #'ein:kernel-delete-session--success session-id callback)))) + (cond (kernel + (setq url-or-port (ein:$kernel-url-or-port kernel)) + (setq path (ein:$kernel-path kernel)) + (setq session-id (ein:$kernel-session-id kernel))) + ((and url-or-port path) + (aif (ein:notebook-get-opened-notebook url-or-port path) + (progn + (setq kernel (ein:$notebook-kernel it)) + (setq session-id (ein:$kernel-session-id kernel))) + (let ((ein:force-sync t)) + (ein:content-query-sessions + url-or-port + (lambda (session-hash) + (setq session-id (car (gethash path session-hash)))) + nil)))) + (t (error "ein:kernel-delete-session: need kernel, or url-or-port and path"))) + (if session-id + (ein:query-singleton-ajax + (ein:url url-or-port "api/sessions" session-id) + :type "DELETE" + :complete (apply-partially #'ein:kernel-delete-session--complete kernel session-id callback) + :error (apply-partially #'ein:kernel-delete-session--error session-id nil) + :success (apply-partially #'ein:kernel-delete-session--success session-id + (aif (ein:notebooklist-get-buffer url-or-port) + (buffer-local-value 'ein:%notebooklist% it)) + nil)) + (ein:log 'verbose "ein:kernel-delete-session: no sessions found for %s" path) + (when callback + (funcall callback kernel)))) -(cl-defun ein:kernel-delete-session--error (session-id _callback - &key _response error-thrown &allow-other-keys) +(cl-defun ein:kernel-delete-session--error (session-id callback + &key response error-thrown + &allow-other-keys) (ein:log 'error "ein:kernel-delete-session--error %s: ERROR %s DATA %s" session-id (car error-thrown) (cdr error-thrown))) -(cl-defun ein:kernel-delete-session--success (session-id _callback &key _data _symbol-status _response &allow-other-keys) - (ein:log 'verbose "ein:kernel-delete-session--success: %s deleted" session-id)) +(cl-defun ein:kernel-delete-session--success (session-id nblist callback + &key data symbol-status response + &allow-other-keys) + (ein:log 'verbose "ein:kernel-delete-session--success: %s deleted" session-id) + (when nblist + (ein:notebooklist-reload nblist))) -(cl-defun ein:kernel-delete-session--complete (kernel _session-id callback &key data response &allow-other-keys +(cl-defun ein:kernel-delete-session--complete (kernel session-id callback + &key data response + &allow-other-keys &aux (resp-string (format "STATUS: %s DATA: %s" (request-response-status-code response) data))) - (ein:log 'debug "ein:kernel-delete-session--complete %s" resp-string) - (ein:kernel-disconnect kernel) + (ein:log 'verbose "ein:kernel-delete-session--complete %s" resp-string) + (when kernel + (ein:kernel-disconnect kernel)) (when callback (funcall callback kernel))) - ;; Reply handlers. (defun ein:kernel-get-callbacks-for-msg (kernel msg-id) (gethash msg-id (ein:$kernel-msg-callbacks kernel))) (defun ein:kernel-set-callbacks-for-msg (kernel msg-id callbacks) + "Set up promise for MSG-ID." (puthash msg-id callbacks (ein:$kernel-msg-callbacks kernel))) (defun ein:kernel--handle-stdin-reply (kernel packet) (setf (ein:$kernel-stdin-activep kernel) t) (cl-destructuring-bind - (&key header _parent_header _metadata content &allow-other-keys) + (&key header parent_header metadata content &allow-other-keys) (ein:json-read-from-string packet) (let ((msg-type (plist-get header :msg_type)) (msg-id (plist-get header :msg_id)) (password (plist-get content :password))) - (ein:log 'debug "KERNEL--HANDLE-STDIN-REPLY: msg_type=%s msg_id=%s" + (ein:log 'debug "ein:kernel--handle-stdin-reply: msg_type=%s msg_id=%s" msg-type msg-id) (cond ((string-equal msg-type "input_request") (if (not (eql password :json-false)) @@ -692,49 +620,48 @@ We need this to have proper behavior for the 'Stop' command in the ein:notebookl (ein:websocket-send-stdin-channel kernel msg) (setf (ein:$kernel-stdin-activep kernel) nil)))))))))) +(defun ein:kernel--handle-payload (kernel callbacks payload) + (cl-loop with events = (ein:$kernel-events kernel) + for p in payload + for text = (or (plist-get p :text) (plist-get (plist-get p :data) :text/plain)) + for source = (plist-get p :source) + if (member source '("IPython.kernel.zmq.page.page" + "IPython.zmq.page.page" + "page")) + do (when (not (equal (ein:trim text) "")) + (ein:events-trigger + events 'open_with_text.Pager (list :text text))) + else if + (member + source + '("IPython.kernel.zmq.zmqshell.ZMQInteractiveShell.set_next_input" + "IPython.zmq.zmqshell.ZMQInteractiveShell.set_next_input" + "set_next_input")) + do (let ((cb (plist-get callbacks :set_next_input))) + (when cb (ein:funcall-packed cb text))))) + (defun ein:kernel--handle-shell-reply (kernel packet) (cl-destructuring-bind (&key header content metadata parent_header &allow-other-keys) (ein:json-read-from-string packet) (let* ((msg-type (plist-get header :msg_type)) (msg-id (plist-get parent_header :msg_id)) - (callbacks (ein:kernel-get-callbacks-for-msg kernel msg-id)) - (cb (plist-get callbacks (intern (format ":%s" msg-type))))) - (ein:log 'debug "KERNEL--HANDLE-SHELL-REPLY: msg_type=%s msg_id=%s" + (callbacks (ein:kernel-get-callbacks-for-msg kernel msg-id))) + (ein:log 'debug "ein:kernel--handle-shell-reply: msg_type=%s msg_id=%s" msg-type msg-id) (run-hook-with-args 'ein:on-shell-reply-functions msg-type header content metadata) - (ein:aif cb (ein:funcall-packed it content metadata)) - (ein:aif (plist-get content :payload) + (aif (plist-get callbacks (intern-soft (format ":%s" msg-type))) + (ein:funcall-packed it content metadata) + (ein:log 'info "ein:kernel--handle-shell-reply: No :%s callback for msg_id=%s" + msg-type msg-id)) + (aif (plist-get content :payload) (ein:kernel--handle-payload kernel callbacks it)) (let ((events (ein:$kernel-events kernel))) (ein:case-equal msg-type (("execute_reply") - (ein:aif (plist-get content :execution_count) - ;; It can be `nil' for silent execution + (aif (plist-get content :execution_count) (ein:events-trigger events 'execution_count.Kernel it)))))))) -(defun ein:kernel--handle-payload (kernel callbacks payload) - (cl-loop with events = (ein:$kernel-events kernel) - for p in payload - for text = (or (plist-get p :text) - (plist-get (plist-get p :data) - :text/plain)) - for source = (plist-get p :source) - if (member source '("IPython.kernel.zmq.page.page" - "IPython.zmq.page.page" - "page")) - do (when (not (equal (ein:trim text) "")) - (ein:events-trigger - events 'open_with_text.Pager (list :text text))) - else if - (member - source - '("IPython.kernel.zmq.zmqshell.ZMQInteractiveShell.set_next_input" - "IPython.zmq.zmqshell.ZMQInteractiveShell.set_next_input" - "set_next_input")) - do (let ((cb (plist-get callbacks :set_next_input))) - (when cb (ein:funcall-packed cb text))))) - (defun ein:kernel--handle-iopub-reply (kernel packet) (if (ein:$kernel-stdin-activep kernel) (ein:ipdb--handle-iopub-reply kernel packet) @@ -742,32 +669,36 @@ We need this to have proper behavior for the 'Stop' command in the ein:notebookl (&key content metadata parent_header header &allow-other-keys) (ein:json-read-from-string packet) (let* ((msg-type (plist-get header :msg_type)) - (msg-id (plist-get parent_header :msg_id)) - (callbacks (ein:kernel-get-callbacks-for-msg kernel msg-id)) + (msg-id (plist-get header :msg_id)) + (parent-id (plist-get parent_header :msg_id)) + (callbacks (ein:kernel-get-callbacks-for-msg kernel parent-id)) (events (ein:$kernel-events kernel))) - (ein:log 'debug "KERNEL--HANDLE-IOPUB-REPLY: msg_type=%s msg_id=%s" - msg-type msg-id) - (if (and (not (equal msg-type "status")) (null callbacks)) - (ein:log 'verbose "Not processing msg_type=%s msg_id=%s" msg-type msg-id) - (ein:case-equal msg-type - (("stream" "display_data" "pyout" "pyerr" "error" "execute_result") - (ein:aif (plist-get callbacks :output) - (ein:funcall-packed it msg-type content metadata))) - (("status") - (ein:case-equal (plist-get content :execution_state) - (("busy") - (ein:events-trigger events 'status_busy.Kernel)) - (("idle") - (ein:events-trigger events 'status_idle.Kernel)) - (("dead") - (ein:kernel-disconnect kernel)))) - (("data_pub") - (ein:log 'verbose (format "Received data_pub message w/content %s" packet))) - (("clear_output") - (ein:aif (plist-get callbacks :clear_output) - (ein:funcall-packed it content metadata))))))))) - -;;; Utility functions + (ein:log 'debug + "ein:kernel--handle-iopub-reply: msg_type=%s msg_id=%s parent_id=%s" + msg-type msg-id parent-id) + (ein:case-equal msg-type + (("stream" "display_data" "pyout" "pyerr" "error" "execute_result") + (aif (plist-get callbacks :output) ;; ein:cell--handle-output + (ein:funcall-packed it msg-type content metadata) + (ein:log 'warn (concat "ein:kernel--handle-iopub-reply: " + "No :output callback for parent_id=%s") + parent-id))) + (("status") + (ein:case-equal (plist-get content :execution_state) + (("busy") + (ein:events-trigger events 'status_busy.Kernel)) + (("idle") + (ein:events-trigger events 'status_idle.Kernel)) + (("dead") + (ein:kernel-disconnect kernel)))) + (("data_pub") + (ein:log 'verbose "ein:kernel--handle-iopub-reply: data_pub %S" packet)) + (("clear_output") + (aif (plist-get callbacks :clear_output) + (ein:funcall-packed it content metadata) + (ein:log 'info (concat "ein:kernel--handle-iopub-reply: " + "No :clear_output callback for parent_id=%s") + parent-id)))))))) (defun ein:kernel-filename-to-python (kernel filename) "See: `ein:filename-to-python'." @@ -787,7 +718,6 @@ Used in `ein:pytools-finish-tooltip', etc." (defun ein:kernel-construct-help-string (content) "Construct help string from CONTENT of ``:object_info_reply``. Used in `ein:pytools-finish-tooltip', etc." - (ein:log 'debug "KERNEL-CONSTRUCT-HELP-STRING") (let* ((defstring (ein:aand (ein:kernel-construct-defstring content) (ansi-color-apply it) @@ -802,7 +732,6 @@ Used in `ein:pytools-finish-tooltip', etc." (help (ein:aand (delete nil (list defstring docstring)) (ein:join-str "\n" it)))) - (ein:log 'debug "KERNEL-CONSTRUCT-HELP-STRING: help=%s" help) help)) (defun ein:kernel-request-stream (kernel code func &optional args) @@ -813,11 +742,11 @@ as a string and the rest of the argument is the optional ARGS." (ein:kernel-execute kernel code - (list :output (cons (lambda (packed msg-type content _metadata) + (list :output (cons (lambda (packed msg-type content -metadata-not-used-) (let ((func (car packed)) (args (cdr packed))) (when (equal msg-type "stream") - (ein:aif (plist-get content :text) + (aif (plist-get content :text) (apply func it args))))) (cons func args))))) @@ -829,21 +758,21 @@ This function checks the request reply every TICK-TIME seconds. See `ein:kernel-history-request' for other usable options." ;; As `result' and `finished' are set in callback, make sure they ;; won't be trapped in other let-bindings. - (let (result finished) + (lexical-let (result finished) (apply #'ein:kernel-history-request kernel (list :history_reply - (cons (lambda (_ignore content metadata) + (cons (lambda (-ignore- content metadata) (setq result (list content metadata)) (setq finished t)) nil)) args) (cl-loop repeat (floor (/ timeout tick-time)) - do (sit-for tick-time) - when finished - return t - finally (error "Timeout")) + do (sit-for tick-time) + when finished + return t + finally (error "Timeout")) result)) (defun ein:kernel-history-search-synchronously (kernel pattern &rest args) diff --git a/elpa/ein-20200202.218/ein-kernel.elc b/elpa/ein-20200202.218/ein-kernel.elc new file mode 100644 index 0000000000000000000000000000000000000000..7298f333914d3cc7f92fc961e8eb85b1cdf8b200 GIT binary patch literal 37565 zcmeHw`*$11l_s;hGeb#7$Rv|E<45QsXi224rqJDZknkoEB{3mmS<;Zy*iNWJfkcBu z1OhM~l9{u+fBSyly;a@SAV86_JlP-C$0FI)^{!j@eQ$rc`S{^)=H}+EfBEH?=3(!& z-|i$$d1!ad=4s<-XkI6SVY}BgQFS$zH*eab6VvE)Os_v`pSJ(r7~%DB^}4*=J82J1 z3%!`}Fd3TWS+{Z8J~GYT(Qq_qcaMj6@pdpAnMSjjG)+26xV{>#pX;O9Lm%DV$Q<>$ zqXsIEN3CEDCEZ|S_u=-oIXY2c@vaQt=r+x;XO0?ObC{S;uaO(XE@fzv#-P(q z24-}EiczfNVheuMf1JRN{qOqq>&u5{qa--$H4{_Zk4q)|3m5mJkbm%BAL=^e}OH_73! zcl0V5$y4$=>5jC*_v2)6CWY;O^YDdl~iS_*cQd>inbqBDZ8754Ejlb_v?p9HH0IV0<(R z{DDS|Rk+!j>I+kO zfwfFIBFrSxN#QS^Q;dJ*v_z(jlG=XElMF-r!vaIp3d^_u#hx!}g{;Y1Rs1_wOO7ht zNlwk~Bla)o4T64ekef00HCJw{x10XDf~@ptJRJ2-gJyEnX$+F!bz{(O9O5=}s6Gm8 z&E$vVXbdoIjk`y3{Y|&sF~!Gi+-z)TRy^Wm1gLR!rltHy&{u zU<8amS}mG7kJxlL+xqdKH|}$NvPOX7@FeMUf@$CjqN~v*)V~~(Rh&54VDq$z)liivw@&O!sTf) zYBU?8M)8GNJ9oY8F?EwSyj4CB^c%q5`g+(;j?7_Wn8@w3*Y`HDdXJX@S0%6*Q!gYS zvQ)#B3rp7oHoN#4-N27{zlAGU{WSEH8a#R!vkY#VbUPDS8q_ zZwGMqF+=hK)^ZO?+yT)FWGRjZ{3y0`B;Z#BuM{JCBp@trS)ePqx_4&Qt+K8UmjpI~ zWZ4h~0e9W~s8Rz&Tgb#b;u4^okQvnsU(R2e;P90EHJZA;#XP@*DRAUY_^OmC%)rxB zP2DkV#mZ_4zydsx5E@P!qX0ZxLIO!NT)g#NaO*U<)!e(aS2RcC!2stVH3Yy8Wa@Q? zY0g8bJvoCb#FhuTxECgj1scOBHjjGUJ3v-|Z?G0;f(4JkMmW@%3@}xY-)6FE%)^bx zj~{G2{7UgVNYCiZM0Xu+AaB<&hrM1W0oMkk3tWk&%0Pf>0Gms{xGm^&CaAkh-1k7y zT_lrXzc!dk;cNkxJn!;91Eflof5ngLwZ;9ea3#NHSxVBcS+0cGG1~eVKZUyIT6{jU zMTLM_y|FY4JPDgO1Vo82i9Bo9ZtS-{BY0{-9A4XR&3|_L#)^f{bPa9`FJO(_wg4v6 z-6&lZ3adgxh5HMJ0I*In0zqy3t?`4r0M<33Df&E^qs7HPZ2|%bM>syI{I?;R4nXrv z{Rn~yx&j3CNt97()CTGk4%1;?H~)SBp4C>b564GGfDh@YCln-QDe{PlD}7=Ju=P%skrI+b}zuyU(6J+1)g^G1K0g zphsv0`*b#3nT3SCsijK*^>)QLncHA3MrJAe-BKOPB$F~61%V>Y3Mg}_x?kM5{~`X6 zCs5Um`yTqObywS>CsW+r+t_=)TQ|3cvXT7b zQhfU4@PIT@EXXRsn*jg^LpGDc@iDHw@T%A(VDwTnPafThK-p9kS(>6p^xQf45Qe$E zF!75Qz`05V<9Iz(@K{^7;PKVw&Xdi@8FJg++uYgM1HdS>Z0_tl-3j)#cAkFo#O!|e z^@FF61Kk4!q<4ZJh3HhE%C2;V5-x(JDq%^Whp@yafRMtHK81WDhO_)1rLpi6>|{Et}O?ec^+`Z~n5o@bAEB#A~Fw zRutxxGjK)w#5a8NSCRnz~ zgd0Gs6(rZg4(Ig)VN_#x018E9l9 zL*8|Oy&jhpu&Z$%us!sb67UQUz7zO5%$xzRyL>)*x- zB%VXlFrFAUqj4k$PIV>ZjRh(#@)jK*gUXO;zJgAvEPFK`9@t$0+qA#>m1xKOi#teo zD_?_kw+wG-a@(%FXhAu4YyV4^m^9rAsZZlSCqM&XS+J~xanm~C?Ai!iW!SNC5 z?wUg?cTRvE-$1u`+8%a$s0m%qQ3JA+30GAGqi_v&l5C^E>kz_(+skETJK-oGn1$Sx~pk&@|nLGXV(JS^2 zol|SjJEa^0z1SOQqZ(lC1l#votvh#hO>OAQ@y=bbL^Sf8>>#lMI2Bt%j-g`DUGukb z9}46Ft|P7@bWTlZ;-LyTdL`580Z7}>?%c)nSz$2lb~zop6PV;4HCDP^KvvM*L+vJW zTs{&tm5{kMx)qL=ntjoes;qSVWHjmz>-X**!$>ebT*Y?YvlF_9h6$v%SN9G(y~BH@ za-+IdZ5}pS>&;eDsX*&fZj|Dq!}X-vs@2wxT45458)4RrlWK#V&-AxkT?e}V)&AMi z<4QGnycS-+p3)#7E)^j|Zl+T)u3n#wl_qXjMt!D;g(>>a$%j?Shqau1m@(hJd>C&5 z&y>Ffp^0O%KB6+qwOwU#%D7LoCC>!*+#Bk_%<44^3x?FHDi){o6VcV1+kO;PX7v!Vhd7ii!-68zqoOd5Z#;OUmgIbG)&qdt9tCH7oT-|RuiHC}wcd2uR!IeEN5|}-zLX7?heO&njRAHzBOAsP1$g#! zmudiEob4}j27VGwic(1;CQ%Hdz@d;rx*aQXtVGJfmKb|;3gZ6hh3z?b14Fe~U&2V-vjXx=L1P#+;q*ge@tFx#VQyQ9 zj2vWk?5RwMG9XJaw)?eND(kO`{;J9^cgNtQV0n|ZwQ@}_JkH!aJV_v#LUeYbxQeAJ zM8hNqkr{F~{lM-*=2Za=CAl{+FhWQls(?!aDrMp$$ojMxsW!^$OqM-$zUwVjs2oC| zO~-(C03xn-GF*XJoMNL9OqsMZqHpISWMOMLSv_98YyDSX8G#!Kv;}Wel7Exjft;U; z?MZW{87Qrj&MZS&nIP&mR#j#ZjrEikp)|t}+~QK@8c>bMi6BvShOUvXSjueqeyKf< zpnuNhhRL{YK6ke&t?h*2pU++U10|;b$U|MW=uDuGxZ{{<&JYDj$dclmA;)18>oLC?m!eMKyylE=Mfmm?sV>fZq;V#j~tH0fq3pkdK5SY zvC5{Jp?~AWkfY!U_}ZP2#}UC!Q6ghu?X=KL7}DV~Z5KkH!Cl~rJ4XZ(&*|OOw!oE? zDnD~I|Cp=!-<=i&yaos}KmmSSuURE)@z)DlgqSS=hAn8RD^>oR8|V96tN&rg`5C6q z1*%D}8sXVn1-h!`ntA&I9nCFA^S$kbY84&>O(AX>h_ZsH=lg@+s0VLW!;<5qn+)1V z^dGQ3ZReRo{<`z!Zk`_NzQWB}WpVD}zOu_z8j=-hDks*1F=Z$URntLJ!n|;|uaBwH2c07NsbawXqqzM)T73bF+3t+>quZ-an(~L z1s$)K?w2d(>9frzLCTJ$F5^?Uuk$RHa<%H3ltHcsv$(2odbgUZs{k(Wm;>-dfYfvV zkBHkzmeaaa9#5}Z-rAv*srm@Yhn5Y>+I~Hwt=tpmJ<**P_y$bV(M7=;N@oapV4rSn zJCy1eL^?}M_no&Agg76)M(l^TPgga0LNI7)msvvqf87L%Z z;GkO+pyD;2dRZRA5-m$8xoIEs$l@me0<7{9ly8~CUOi&q!EbUo(CrA*vkJXl1Spx!UQfLk>0%Vuyc_m>`llfH}uU!3mwm3YI@}fey>-6>$}v zj_@oEm;hym-YOCx;hxIBxd>yqeHNEvY82C*2cqjy+32FxpT0P8vrOSoEzvI^?PZzxQOGF$wt-n56w%#ap#0SS*{ z|0KYwD2Tyob?2_BW)EeeAH?s}CIxarrLi(u4(yy2pUc;>z$4>6c0A9f|5ONS0@n)B zXuNK;I}Dz?RJ4G9n6*g;@0Lb=TFbS-h8sRvI4sW2Gj6n2_}^umS0-Le#fM(TpRQ7 z>61OQHD7P;ZP4h-K5P+9BCZ(LkHj2N-O(HMH)+;jxl=T^~6ar|W z$J&p|V)O*Iv+-oA;{_8YQom1#$lFEA+x;Hh+OP<6Yp(4&inHk3iME!2dDW>rm{}d_ zhHofbyy8%)GK{zZR^J%dSQ~U~68lSMK|CWk@}KcKqS06aCdHoYHxyN|*YJO3 z4Pmv8A=Jb94*$yVx}cFbu0V2HT7X|1oc6GN1^y-B!ew}FFChG_9L}TAuCN@<7d|W8 zT5>*e7K^1vc>yCk{Y2Av>+|>z!Zj?Yus0IMf);=P5bT>6EuPdl05lZbyjxp0Un#eU zTL4}M{>L<0AwZovv@4RNOET1T#CF45*kMrWtm_KQ2mRgSb$IYQLx;2^E|@bTuxPB5(^ zmVE$?#Ry=+K6f|wf+w5b?giUV&?k`bPW$*|q>kMTn;jbLIjKoH91|YE@=5&ckq(m) z2%!4VtgZ^3cmmt@@)q2=k#FE+R9BirPkNG#(=p5dM zhm%V{Wx8enO3^!oydx$T*x^ApcK^fxNhqJ7kZA+e;w`4%9kpBHZLc~SLD!si!&z>j z4n{HsFh3e=>4NEapqVi|J4$hDT;AP&OcDn3$nx&q)1A#=Yn#8nlalAVn>)egx6k1B z$gs^_vpf-fzk+6nM1J}W;_x1AKXKhW3lQTe4sX1kE9aHVmOHXw;}H_ML)mOoxV@C) z5wYz&kYrfW$WDpI6LW2;N-JU*NsOn)<;B9jRjGkijkT-Z<=fiEed-+9 z8>}OU=KJmZLRf%Vq!hR33gLYehxAU0pW$g^gQ)idzKy;_>nNK4{l03VN;73X#cC2~a(SS+?0R_zC% zLh3o0_j0nmEelauK^lu(w`uXY{#k$GYM46kLON*LG(Y-s-Htdhk|eUotsvJMYkO<3 z@4UEaH+WX${LsHj&ffF}NDtsVav%|qp3+MP$mG3DXeDP4v!wmXEI^K?%q0Ixb#?m= z-1*D)9rysCTXdihAlrA)>mDcwc!V?~+1cpA>lWWaseR#YGIm--yZJO!QBWMST}=0V zvjf+`O*IobxoP?f7mY~$kEnhFX7&kij38@}H!sXM#0o!>mv~Qlu62`n95TW`2psj2 zZ4ujTtI>g?1X?eqI+@DFOj=?rIia}*>SPzL8P=+?jWDl7q2z3nFijZ=QE(5R@9c`} z%Py0vA;b+nb0F4_x1Z!WAio}BhQSYk{cDqxWjj85E$_;0vgL>4Rtxzxu3rZ&lx!X9 z5tk0NtN>^ur0F~NzNB6kWbiH`ua$V;o4}i&OHSII@#-fKb=^oa1zcCbV@9BQ032q* zPR5Pk+!!ZlW!R80_Q>~SqiBWIfIOyF1z)_>P&Sblm(T>Vt0a-Q@kbJGnjB!ewk7mt zX3{o@udO9IDZ|ex3^gf~8mEg3bP$H76phQ9XzcR|kSIMqA)3GG2y`6J7d|Z*p~!_# zzo6$-ZDFy%*QNMmj(>nxC@e0r+o*?b86YMl_ys!e{AKjcU2qd2A53hYccT^ZSFSF( zl}%mx^(CGSV8h@7Dc`&yDS&!|mw5rwrkdK-BrMA+iHl%omUlM3 z5uuM#W3ch?Aq2%>@4IK4rbta+aRoxTh>iw%THs*{(ejyDegfmjig~uNhx9H_%=0JP z|M7ftri^HpGezl`f%ipWbJHW7fZQ|*U+9U1V!bL=KO!QIJz)?Yb(shVq)idf6BIY@ zFWhpE;(Ju8isT0=bm6vr0W^+Q3wPWjhQj0W{K86s2sI|Mohz)|2NsV-mV{)vVr5BI zh!~3;m7OdpVj;AmkTkQm5SpSI`$%QU9mc`R=~=luz&?cQDK>q4c9;;bGoe6B&2$vGrew;W&`P+1vtU{o{0>f<4X0|8;d1c*dWTP+&t&4sI*(n`8 zMpjIwmdI>0)JQ{INj0=TR%Wm|+{_Jw?iZO3^dDj*)8qB@|2e9hO;yf1efJa4Wjho^ zxE~tS>(+I*JP@=s9D$;iTPz!N8P{d3uM>}R=l~BRRER`~MEBtO8Q4NM+DI+iqyggLgglFk zm+Cq}F=`wKsE8Q+6>+{-bVcmL(^GxOG9+Rf&WejQj8pac*V0Y3dG8 zp*!I;Hvrj2?4T3=K0!U_PKNFCd>JJ~E3GFvORU>jzMf{cJeS<^7Px@R`I&i#VC5K= z_!=s)zh~~}IB7|oF8w=m*EU1LxFM7)^vuN*OSDZm$idmHyp>n9#)abHobEr2Z0x`k zZGsCg7+KjorR4bI6xr5wyY3tweQ$nhIzxwnkSq6WBvx|V) z=^qeAg22VeOJ|KT(dj@c0Ai<8LVOe9WuoZ8%q5u*v+H0U`OG^=qFadRM}X#H3t}vh z3;-jL79j->ijaVZo$Kl=|Afxf;!^nTk>iF<3mzXI|Ev(- zSoHHoFjh?bNXY7Eso7mPG}YW@pQ1i|^SXgFG z1FZIyac5+MK%jDxygfp8)h(M&yHX}7`?K_^Z1lqipv%;-2Nsz-TN&t|ixFm;bw#u> znF5$G!|<0l9U@xUKfj`X5a4~-Rsu@=#ISipR7b=)?A?kF?;2oGe`|;zIfxpQE~Gfq z^CUmoe7w20Nv92$<#@sj?>lScXXd9WQhCcGs*_cn1Ud2?BuI)@kv42- z*+tr3W{b_c47nL=cnrtH_(w>~c-B2ieJ&yYxP-t_xw2**25T;H>dcI(X)2~%UY*Nl zJ()ZjJwy-ofle+(8eK%Gl16zF4Uq<}kjWPQ+HudcSvyA!Wf)v4oII{d>!?cCRpKuC z=kBIW#Q=DCk|hK&T)Tg514e< zr>lxJFMM{`E=*DK4S;u157c}p8d3=`FMP(ADu@VU%yf)Vd{daO0$It*mve<*-8>I4 z>3L^()q37S)K^z8MXh{tRv{}~Oamv^DD`Ok3G>Il6(s#RUjio6({+@Hu&8TAULN;} zmGqdi5R0f*E(=Ib53!KA{&Sv_83?H*&GA4$uGEj~7cKJfmtOt_rU?NjE7;ds;_Rtp z2g&K@vLjoL>B56wRAsPgNyx$$#RiJ0m*&Ean z4-Tc#%kCCQjsiXXsnM!Pgq>=5z#EJD3>YEaresAyr+j0PL8%NOXXXX99N9$5LE6h$nz*;*cak6F<*Qr zhe#62-g+isS;Uj+tzCD}(yI(Qsfm^ZAI=@09Ju;{1qh|#S1$NL$KPv9I_>c>Rl(^? zg9JIt&zgr2{Pi~qWR}*UEPpiV$)pG4_TKJcx~F!Lcs4fU930X#>70^_i;-c!aYnu_ z(}ZUP01~;pyChD;&Di?r1~DKmbr}A30cM9VUifIgRmY`{-{30}_kWEdhOhwZ@!D3Y z6@$SU)y3S5Lb^p2KVVbVBc9~j4}fij;5Fj*rE2cND$VY$yj*s<{w z=r61kK76Fc3?P*LT!9_H7g{@D-LPDM2RMAKWdLN9M91O+RVsW^_)toL)ms}Jo}62> zFb7=9wF!lL`>of2Q@4rU=ZT;ohAU+Ms+6uQnk(;ujt~yvz8A#5@4-C?XI~%o#t^;D za?yE?=v>8tq>qnFuJQ+<(7mQ(iC-?SS40AUm*lA_DqK$l&{FSoK)=)jj=jJ744n?9 z4~hXKkIw2}zWxs}HE2N3F25+bnh)%lnAX)=PIN_|?tIh;@z!MUHaF4kSjMg#9bV?{ z_{o7XK1$JidTGS?1|AAD6dVCH1@Pg|l<4{-E+V)(`UH9{UMIL2^bjP~hX;mU9FRzQ zmcS`v84el61u!0yk_Spa_wXH{+xuN;abZj%{RX_VF7Af14tQH!w7^e=Mf?Jng8n0D zl3tucUMeyOpsToMyegK}!LzUx(ECbj2C%_%aJjHj_*`|+c&-$d7Ykpg$3LzStAK4m zoEmwIWv2pP#$&j(aF=c-h(6H!jEgS0;lWj*)E^3O%2cq!lLQ<~xq|UlR;giDO{HX- zn*0{ntgnRPcKQU7@NpG#>X5TXNb?iE zh)*I6!K*H$znK+N8BqK0z8{a1x#<#qenjzbo^FHT=1bIi^y| z@vIpmLGwZ#jnIum(pm|J5m4kLl$*fscutB^1|ut?BqcmYRs^IpSwwDQq86MmqzHZ1 zhz+p}%$X6pn3%(=%z}Mi*vT$#t`4^=+mEZj`$3Q>o=Ch zlDUtTJMdEws?wKYGDHX$mhS|oPhpkwt3!fHtCvMG)9Pw<$AA;n-S$-YrhY>;z`3PNeKd>9b577cAfxfDg6agPA_E=yb9N>iLG`;Ve6I$7VkFe$@*dJbh`An|L7kFyE@NwU^`qLEQuG zx_m;CJ=1$l?ZAFqH?6XMnD+$b2Wy!(Udq>&p~t`M=sbel0B<>nJd0*kBeS8~^@i9x zr1ikZl-u~cx9VZz2zpq2ivFbl8lzL0J|51jnk0Glhs9gx>UsjWducV%au5BF_JJy@ z1~$`8LAuydFO*ASK{tlrEccMj{Hn5Pm_?ez@mg#nP2%#j?U78am);<+_Wu)G?s2zC54f=H<)P>(80d5wgDkBK8)( z)W{9d?zV>~IMiNe)b8WkdCBN#rgZ>hN2d@VAG1|SfhV-oNI@}#juyNKX?IoZ08${b znO{JSwNhh8%RExW+jM{-OdYcu@h|>n1QIfAxW6+iBY2z8`U!-ks<%;K`ukP~_Yc`6 zj_>SnllvrGP#AuQUEs%4VLnk0DJdYQEZ<58$0r3J&Rv7YuP6qvzf==&fA6sxwefVf z%NM8|u8o=XCfEJ%*ca)=&G z*r{F{!sciIZ-_4Fj>~=z|FqD4yA{l$*%@~cpf~isOv~&}`dwBA^jhkTe!z1;CCgMD zxJ^jkq=8pR{q$%P;krzY(rOQoIXsQ0N3a}wklx8>2pmiA$XsKCh1sbNah>@?9L&<= zi8a8oARu3JS*88j);&1nA}>vcnX7hZ-dtxVwhPDvIf;Gdw7ircj3L*{>@hoqvi@>S_+3GJ z0iZwT?GdpOnSO6xTUv2mHFhkSmCP?C-ELF>Z^}Y?s7Lgr0+)alc(gdPA^a6SevLtpyFCLtHx~zRM|e*0Ped9Trh7vw zY7T|TU0-gw6hGGQm*8Xr{M=GXs}-bo$p$X1B3#s5-Zy7rKH~RYm^NtoB&+lW-n}FpbYPxdQwJX%Sy2V-U4i z2=SX8u#|cPB-4Uc6sVHAQG5cE(j}tY{%MnaJa{y3gXUr+D1)F`t}HGXC=0>`PNcf9 zUo4nij`;ygqwla5T05v9)g+fU{>-8wi^30p&Cy7zi>y47VpJ$UpDVBg5_O4o5&frtpi$3ywuOWb3GPtOB~uLOsUn?1A`2|{!C^HrIwJ_vL0DtI@Wmw?CfsS9 z9yS|hSs?~anjQ9!DX(Pr2yi8qu0J7~$}I5(wcOj8)25#@gyCnWoRiZO%|le3aJ4<%E)?Q#g(<#ed=Ys3f$Eg zz#N$hm?;heZ)kHwX_hJ*kei||F=K-2Ih-e?O0XHj9wb=?P{~`cQ2y56A;P@=R-`q7 zu4d(|bqHoCE6k7N;TO2RN|fFtp1~~_k3JQga07XjZ~qG!B_IUa^uzeZef%WzI+^#t zbt+d)5%t@kd18X+gGGzF5Xi=^ccvF^3?KnCn**OcvMbL%6&BY@W%)SZG7Q_VkuA*J K0XLM!pZ#BYcv~z0 literal 0 HcmV?d00001 diff --git a/elpa/ein-20200202.218/ein-kernelinfo.el b/elpa/ein-20200202.218/ein-kernelinfo.el new file mode 100644 index 00000000..d76603e0 --- /dev/null +++ b/elpa/ein-20200202.218/ein-kernelinfo.el @@ -0,0 +1,56 @@ +;;; ein-kernelinfo.el --- Kernel info module + +;; Copyright (C) 2012 Takafumi Arakaki + +;; Author: Takafumi Arakaki + +;; This file is NOT part of GNU Emacs. + +;; ein-kernelinfo.el 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. + +;; ein-kernelinfo.el 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 ein-kernelinfo.el. If not, see . + +;;; Commentary: + +;; + +;;; Code: + +(require 'eieio) +(require 'ein-kernel) + +(defclass ein:kernelinfo () + ((kernel + :initarg :kernel :type ein:$kernel + :documentation "Kernel instance.") + (get-buffers + :initarg :get-buffers + :documentation "A packed function to get buffers associated +with the kernel. The buffer local `default-directory' variable +in these buffer will be synced with the kernel's cwd.") + (hostname + :initarg :hostname :type string + :documentation "Host name of the machine where the kernel is running on.") + (ccwd + :initarg :ccwd :type string + :documentation "cached CWD (last time checked CWD).")) + :documentation "Info related (but unimportant) to kernel") + +(defun ein:kernelinfo-new (kernel get-buffers) + "Make a new `ein:kernelinfo' instance based on KERNEL and GET-BUFFERS." + (let ((kerinfo (make-instance 'ein:kernelinfo))) + (setf (slot-value kerinfo 'kernel) kernel) + (setf (slot-value kerinfo 'get-buffers) get-buffers) + kerinfo)) +(provide 'ein-kernelinfo) + +;;; ein-kernelinfo.el ends here diff --git a/elpa/ein-20200202.218/ein-kernelinfo.elc b/elpa/ein-20200202.218/ein-kernelinfo.elc new file mode 100644 index 0000000000000000000000000000000000000000..6e58bc995c7207fde9688be71f5bfc9ca1bb410f GIT binary patch literal 2270 zcmbtVU2oeq6wRaK{eW%Q!*1nlv4GNuWII_B6mXKdThML;nhblW1C*BNn2StmBo)v5 z^*f~G#rD>`RDf*p^74M3dw4#6clG7o-d_9s{G6`zqLhWm!$K+=FL-9@Q5Y+=qV%}e z4?9cg=ERGFbm`>e>ZLb|RZ|Bm|3|6SJ!cx9cd?7Q+b!MHB>fXM@uCb1Io{OCR z^^%ubv9-0;jH#FxQ6S2?bm)$g3o$<0H6D`+wJaj}>_HeM3d+Td7m}mOQk~T@sb-p$wJKZi2jo|9YguVTE;H`D zl}+89C1b$}%jUAkx6OFTC(YCc;5fL{Q>zOBUlE{5-K=14Rf>{&y&g>_uMW3Eh=EP( z1kWRi(qS)&d|pxsW><@;F5pv_1RIcgGt6QP>`Vf$b*zxrIZ6e1DqfJ11$Dbkk;a=Ut5g;YJ54x1YcuGJ&Ln!0PgEFnHy2cg)FZmZqSnN8WytEIZ+BHVmIDl#(`I!@ zkK9N;EyP4&WN{qjZq6(vcmtDZSI8iz9s7rtvSl6;n``Sp9bzM^Cs8O>%_nrWliyD` zNa3WOdEe+gV50;r=K^SbN`^pGrcwy;p0o;1GkD){STCP*mccgCxcdDybpdEcAVdLD z5~0En$FPew?FM;`c_1SSUuEh}D@T=*i&7hO*2RR5)CG^?J35ZrozbvQS4Q|j;iSZp z^z;uDn~-7v8HFG}ZX@`x_ielDyAy_S2j0~A(EZ*Bglr4#Y#g}8^8;AnsNVt|gdq=` z#LKc+)kCyK-_C^I(SW+01L{#S7$)&u{J%7|HV<9_mDL{BFk~gFu$=%{KU_!#l#!Xh zF`InCxW5Ooum}He`Ke^trmD|;IR_KacK)r=IYJt=_V#^b>rnAOXpQzqo&6C$hpo}; z*2U$eC)W-7I*?zydA&)W&Do(ZTRE(mRT49@WIq&0g=-^jed9%6;Ab$IHKMqw5Da?ur%v*! ubN1NanmTD%ZMbr^hwYK*f(J8F`2|mymZExBmeMHrS~E literal 0 HcmV?d00001 diff --git a/elpa/ein-20200127.249/ein-kill-ring.el b/elpa/ein-20200202.218/ein-kill-ring.el similarity index 100% rename from elpa/ein-20200127.249/ein-kill-ring.el rename to elpa/ein-20200202.218/ein-kill-ring.el diff --git a/elpa/ein-20200127.249/ein-kill-ring.elc b/elpa/ein-20200202.218/ein-kill-ring.elc similarity index 100% rename from elpa/ein-20200127.249/ein-kill-ring.elc rename to elpa/ein-20200202.218/ein-kill-ring.elc diff --git a/elpa/ein-20200127.249/ein-log.el b/elpa/ein-20200202.218/ein-log.el similarity index 97% rename from elpa/ein-20200127.249/ein-log.el rename to elpa/ein-20200202.218/ein-log.el index ba3d526d..20c67057 100644 --- a/elpa/ein-20200127.249/ein-log.el +++ b/elpa/ein-20200202.218/ein-log.el @@ -27,7 +27,6 @@ (require 'ein-core) - (defvar ein:log-all-buffer-name "*ein:log-all*") (defvar ein:log-level-def @@ -56,9 +55,9 @@ (defun ein:log-level-int-to-name (int) (cl-loop for (n . i) in ein:log-level-def - when (>= int i) - return n - finally 'error)) + when (>= int i) + return n + finally 'error)) (defun ein:log-level-name-to-int (name) (cdr (assq name ein:log-level-def))) @@ -107,7 +106,7 @@ Otherwise, return result of last form in BODY." (defun ein:log-pop-to-request-buffer () (interactive) - (ein:aif (get-buffer request-log-buffer-name) + (aif (get-buffer request-log-buffer-name) (pop-to-buffer it) (message "No buffer named \"%s\"" request-log-buffer-name))) diff --git a/elpa/ein-20200127.249/ein-log.elc b/elpa/ein-20200202.218/ein-log.elc similarity index 100% rename from elpa/ein-20200127.249/ein-log.elc rename to elpa/ein-20200202.218/ein-log.elc diff --git a/elpa/markdown-mode-20191230.1055/markdown-mode.el b/elpa/ein-20200202.218/ein-markdown-mode.el similarity index 55% rename from elpa/markdown-mode-20191230.1055/markdown-mode.el rename to elpa/ein-20200202.218/ein-markdown-mode.el index 4003f8a2..5fe4baa0 100644 --- a/elpa/markdown-mode-20191230.1055/markdown-mode.el +++ b/elpa/ein-20200202.218/ein-markdown-mode.el @@ -1,16 +1,9 @@ -;;; markdown-mode.el --- Major mode for Markdown-formatted text -*- lexical-binding: t; -*- +;;; ein:markdown-mode.el --- Major mode for Markdown-formatted text -*- lexical-binding: t; -*- ;; Copyright (C) 2007-2017 Jason R. Blevins and markdown-mode -;; contributors (see the commit log for details). +;; contributors. ;; Author: Jason R. Blevins -;; Maintainer: Jason R. Blevins -;; Created: May 24, 2007 -;; Version: 2.4-dev -;; Package-Version: 20191230.1055 -;; Package-Requires: ((emacs "24.4") (cl-lib "0.5")) -;; Keywords: Markdown, GitHub Flavored Markdown, itex -;; URL: https://jblevins.org/projects/markdown-mode/ ;; This file is not part of GNU Emacs. @@ -29,9 +22,8 @@ ;;; Commentary: -;; See the README.md file for details. +;; Pare markdown-mode for EIN (and fix some bugs) - ;;; Code: (require 'easymenu) @@ -50,71 +42,54 @@ (declare-function eww-open-file "eww") (declare-function url-path-and-query "url-parse") - + ;;; Constants ================================================================= -(defconst markdown-mode-version "2.4-dev" - "Markdown mode version number.") +(defconst ein:markdown-mode-version "2.4-dev" + "ein:markdown mode version number.") -(defconst markdown-output-buffer-name "*markdown-output*" +(defconst ein:markdown-output-buffer-name "*markdown-output*" "Name of temporary buffer for markdown command output.") - + ;;; Global Variables ========================================================== -(defvar markdown-reference-label-history nil +(defvar ein:markdown-reference-label-history nil "History of used reference labels.") -(defvar markdown-live-preview-mode nil - "Sentinel variable for command `markdown-live-preview-mode'.") - -(defvar markdown-gfm-language-history nil - "History list of languages used in the current buffer in GFM code blocks.") - - ;;; Customizable Variables ==================================================== -(defvar markdown-mode-hook nil +(defvar ein:markdown-mode-hook nil "Hook run when entering Markdown mode.") -(defvar markdown-before-export-hook nil - "Hook run before running Markdown to export XHTML output. -The hook may modify the buffer, which will be restored to it's -original state after exporting is complete.") - -(defvar markdown-after-export-hook nil - "Hook run after XHTML output has been saved. -Any changes to the output buffer made by this hook will be saved.") - -(defgroup markdown nil +(defgroup ein:markdown nil "Major mode for editing text files in Markdown format." - :prefix "markdown-" - :group 'text - :link '(url-link "https://jblevins.org/projects/markdown-mode/")) + :prefix "ein:markdown-" + :group 'text) -(defcustom markdown-command "markdown" +(defcustom ein:markdown-command "ein:markdown" "Command to run markdown." - :group 'markdown + :group 'ein:markdown :type '(choice (string :tag "Shell command") function)) -(defcustom markdown-command-needs-filename nil +(defcustom ein:markdown-command-needs-filename nil "Set to non-nil if `markdown-command' does not accept input from stdin. Instead, it will be passed a filename as the final command line option. As a result, you will only be able to run Markdown from buffers which are visiting a file." - :group 'markdown + :group 'ein:markdown :type 'boolean) -(defcustom markdown-open-command nil +(defcustom ein:markdown-open-command nil "Command used for opening Markdown files directly. For example, a standalone Markdown previewer. This command will be called with a single argument: the filename of the current buffer. It can also be a function, which will be called without arguments." - :group 'markdown + :group 'ein:markdown :type '(choice file function (const :tag "None" nil))) -(defcustom markdown-hr-strings +(defcustom ein:markdown-hr-strings '("-------------------------------------------------------------------------------" "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" "---------------------------------------" @@ -126,56 +101,56 @@ The first string in the list will be the default when inserting a horizontal rule. Strings should be listed in decreasing order of prominence (as in headings from level one to six) for use with promotion and demotion functions." - :group 'markdown + :group 'ein:markdown :type '(repeat string)) -(defcustom markdown-bold-underscore nil +(defcustom ein:markdown-bold-underscore nil "Use two underscores when inserting bold text instead of two asterisks." - :group 'markdown + :group 'ein:markdown :type 'boolean) -(defcustom markdown-italic-underscore nil +(defcustom ein:markdown-italic-underscore nil "Use underscores when inserting italic text instead of asterisks." - :group 'markdown + :group 'ein:markdown :type 'boolean) -(defcustom markdown-marginalize-headers nil +(defcustom ein:markdown-marginalize-headers nil "When non-nil, put opening atx header markup in a left margin. This setting goes well with `markdown-asymmetric-header'. But sadly it conflicts with `linum-mode' since they both use the same margin." - :group 'markdown + :group 'ein:markdown :type 'boolean :safe 'booleanp - :package-version '(markdown-mode . "2.4")) + :package-version '(ein:markdown-mode . "2.4")) -(defcustom markdown-marginalize-headers-margin-width 6 +(defcustom ein:markdown-marginalize-headers-margin-width 6 "Character width of margin used for marginalized headers. The default value is based on there being six heading levels defined by Markdown and HTML. Increasing this produces extra whitespace on the left. Decreasing it may be preferred when fewer than six nested heading levels are used." - :group 'markdown + :group 'ein:markdown :type 'natnump :safe 'natnump - :package-version '(markdown-mode . "2.4")) + :package-version '(ein:markdown-mode . "2.4")) -(defcustom markdown-asymmetric-header nil +(defcustom ein:markdown-asymmetric-header nil "Determines if atx header style will be asymmetric. Set to a non-nil value to use asymmetric header styling, placing header markup only at the beginning of the line. By default, balanced markup will be inserted at the beginning and end of the line around the header title." - :group 'markdown + :group 'ein:markdown :type 'boolean) -(defcustom markdown-indent-function 'markdown-indent-line +(defcustom ein:markdown-indent-function 'ein:markdown-indent-line "Function to use to indent." - :group 'markdown + :group 'ein:markdown :type 'function) -(defcustom markdown-indent-on-enter t +(defcustom ein:markdown-indent-on-enter t "Determines indentation behavior when pressing \\[newline]. Possible settings are nil, t, and 'indent-and-new-item. @@ -190,73 +165,29 @@ when \\[newline] is pressed, the list will be continued on the next line, where a new item will be inserted. When set to nil, simply call `newline' as usual. In this case, -you can still indent lines using \\[markdown-cycle] and continue -lists with \\[markdown-insert-list-item]. +you can still indent lines using \\[ein:markdown-cycle] and continue +lists with \\[ein:markdown-insert-list-item]. Note that this assumes the variable `electric-indent-mode' is non-nil (enabled). When it is *disabled*, the behavior of \\[newline] and `\\[electric-newline-and-maybe-indent]' are reversed." - :group 'markdown + :group 'ein:markdown :type '(choice (const :tag "Don't automatically indent" nil) (const :tag "Automatically indent" t) (const :tag "Automatically indent and insert new list items" indent-and-new-item))) -(defcustom markdown-enable-wiki-links nil - "Syntax highlighting for wiki links. -Set this to a non-nil value to turn on wiki link support by default. -Support can be toggled later using the `markdown-toggle-wiki-links' -function or \\[markdown-toggle-wiki-links]." - :group 'markdown - :type 'boolean - :safe 'booleanp - :package-version '(markdown-mode . "2.2")) - -(defcustom markdown-wiki-link-alias-first t - "When non-nil, treat aliased wiki links like [[alias text|PageName]]. -Otherwise, they will be treated as [[PageName|alias text]]." - :group 'markdown - :type 'boolean - :safe 'booleanp) - -(defcustom markdown-wiki-link-search-subdirectories nil - "When non-nil, search for wiki link targets in subdirectories. -This is the default search behavior for GitHub and is -automatically set to t in `gfm-mode'." - :group 'markdown - :type 'boolean - :safe 'booleanp - :package-version '(markdown-mode . "2.2")) - -(defcustom markdown-wiki-link-search-parent-directories nil - "When non-nil, search for wiki link targets in parent directories. -This is the default search behavior of Ikiwiki." - :group 'markdown - :type 'boolean - :safe 'booleanp - :package-version '(markdown-mode . "2.2")) - -(defcustom markdown-wiki-link-fontify-missing nil - "When non-nil, change wiki link face according to existence of target files. -This is expensive because it requires checking for the file each time the buffer -changes or the user switches windows. It is disabled by default because it may -cause lag when typing on slower machines." - :group 'markdown - :type 'boolean - :safe 'booleanp - :package-version '(markdown-mode . "2.2")) - -(defcustom markdown-uri-types +(defcustom ein:markdown-uri-types '("acap" "cid" "data" "dav" "fax" "file" "ftp" "gopher" "http" "https" "imap" "ldap" "mailto" "mid" "message" "modem" "news" "nfs" "nntp" "pop" "prospero" "rtsp" "service" "sip" "tel" "telnet" "tip" "urn" "vemmi" "wais") "Link types for syntax highlighting of URIs." - :group 'markdown + :group 'ein:markdown :type '(repeat (string :tag "URI scheme"))) -(defcustom markdown-url-compose-char +(defcustom ein:markdown-url-compose-char '(?∞ ?… ?⋯ ?# ?★ ?⚓) "Placeholder character for hidden URLs. This may be a single character or a list of characters. In case @@ -266,9 +197,9 @@ be used." (character :tag "Single URL replacement character") (repeat :tag "List of possible URL replacement characters" character)) - :package-version '(markdown-mode . "2.3")) + :package-version '(ein:markdown-mode . "2.3")) -(defcustom markdown-blockquote-display-char +(defcustom ein:markdown-blockquote-display-char '("▌" "┃" ">") "String to display when hiding blockquote markup. This may be a single string or a list of string. In case of a @@ -278,21 +209,21 @@ used." :type '(choice (string :tag "Single blockquote display string") (repeat :tag "List of possible blockquote display strings" string)) - :package-version '(markdown-mode . "2.3")) + :package-version '(ein:markdown-mode . "2.3")) -(defcustom markdown-hr-display-char +(defcustom ein:markdown-hr-display-char '(?─ ?━ ?-) "Character for hiding horizontal rule markup. This may be a single character or a list of characters. In case of a list, the first one that satisfies `char-displayable-p' will be used." - :group 'markdown + :group 'ein:markdown :type '(choice (character :tag "Single HR display character") (repeat :tag "List of possible HR display characters" character)) - :package-version '(markdown-mode . "2.3")) + :package-version '(ein:markdown-mode . "2.3")) -(defcustom markdown-definition-display-char +(defcustom ein:markdown-definition-display-char '(?⁘ ?⁙ ?≡ ?⌑ ?◊ ?:) "Character for replacing definition list markup. This may be a single character or a list of characters. In case @@ -301,153 +232,139 @@ be used." :type '(choice (character :tag "Single definition list character") (repeat :tag "List of possible definition list characters" character)) - :package-version '(markdown-mode . "2.3")) + :package-version '(ein:markdown-mode . "2.3")) -(defcustom markdown-enable-math nil +(defcustom ein:markdown-enable-math nil "Syntax highlighting for inline LaTeX and itex expressions. Set this to a non-nil value to turn on math support by default. Math support can be enabled, disabled, or toggled later using -`markdown-toggle-math' or \\[markdown-toggle-math]." - :group 'markdown +`markdown-toggle-math' or \\[ein:markdown-toggle-math]." + :group 'ein:markdown :type 'boolean :safe 'booleanp) -(make-variable-buffer-local 'markdown-enable-math) +(make-variable-buffer-local 'ein:markdown-enable-math) -(defcustom markdown-enable-html t +(defcustom ein:markdown-enable-html t "Enable font-lock support for HTML tags and attributes." - :group 'markdown + :group 'ein:markdown :type 'boolean :safe 'booleanp - :package-version '(markdown-mode . "2.4")) + :package-version '(ein:markdown-mode . "2.4")) -(defcustom markdown-css-paths nil +(defcustom ein:markdown-css-paths nil "URL of CSS file to link to in the output XHTML." - :group 'markdown + :group 'ein:markdown :type '(repeat (string :tag "CSS File Path"))) -(defcustom markdown-content-type "text/html" +(defcustom ein:markdown-content-type "text/html" "Content type string for the http-equiv header in XHTML output. When set to an empty string, this attribute is omitted. Defaults to `text/html'." - :group 'markdown + :group 'ein:markdown :type 'string) -(defcustom markdown-coding-system nil +(defcustom ein:markdown-coding-system nil "Character set string for the http-equiv header in XHTML output. Defaults to `buffer-file-coding-system' (and falling back to `utf-8' when not available). Common settings are `iso-8859-1' and `iso-latin-1'. Use `list-coding-systems' for more choices." - :group 'markdown + :group 'ein:markdown :type 'coding-system) -(defcustom markdown-export-kill-buffer t - "Kill output buffer after HTML export. -When non-nil, kill the HTML output buffer after -exporting with `markdown-export'." - :group 'markdown - :type 'boolean - :safe 'booleanp - :package-version '(markdown-mode . "2.4")) - -(defcustom markdown-xhtml-header-content "" +(defcustom ein:markdown-xhtml-header-content "" "Additional content to include in the XHTML block." - :group 'markdown + :group 'ein:markdown :type 'string) -(defcustom markdown-xhtml-body-preamble "" +(defcustom ein:markdown-xhtml-body-preamble "" "Content to include in the XHTML block, before the output." - :group 'markdown + :group 'ein:markdown :type 'string :safe 'stringp - :package-version '(markdown-mode . "2.4")) + :package-version '(ein:markdown-mode . "2.4")) -(defcustom markdown-xhtml-body-epilogue "" +(defcustom ein:markdown-xhtml-body-epilogue "" "Content to include in the XHTML block, after the output." - :group 'markdown + :group 'ein:markdown :type 'string :safe 'stringp - :package-version '(markdown-mode . "2.4")) + :package-version '(ein:markdown-mode . "2.4")) -(defcustom markdown-xhtml-standalone-regexp +(defcustom ein:markdown-xhtml-standalone-regexp "^\\(<\\?xml\\| Links & Images menu." - :group 'markdown - :type 'boolean - :safe 'booleanp - :package-version '(markdown-mode . "2.3")) -(make-variable-buffer-local 'markdown-hide-urls) - -(defcustom markdown-translate-filename-function #'identity +(defcustom ein:markdown-translate-filename-function #'identity "Function to use to translate filenames when following links. -\\\\[markdown-follow-thing-at-point] and \\[markdown-follow-link-at-point] +\\\\[ein:markdown-follow-thing-at-point] and \\[ein:markdown-follow-link-at-point] call this function with the filename as only argument whenever they encounter a filename (instead of a URL) to be visited and use its return value instead of the filename in the link. For @@ -558,19 +412,19 @@ example, if absolute filenames are actually relative to a server root directory, you can set `markdown-translate-filename-function' to a function that prepends the root directory to the given filename." - :group 'markdown + :group 'ein:markdown :type 'function :risky t - :package-version '(markdown-mode . "2.4")) + :package-version '(ein:markdown-mode . "2.4")) -(defcustom markdown-max-image-size nil +(defcustom ein:markdown-max-image-size nil "Maximum width and height for displayed inline images. This variable may be nil or a cons cell (MAX-WIDTH . MAX-HEIGHT). When nil, use the actual size. Otherwise, use ImageMagick to resize larger images to be of the given maximum dimensions. This requires Emacs to be built with ImageMagick support." - :group 'markdown - :package-version '(markdown-mode . "2.4") + :group 'ein:markdown + :package-version '(ein:markdown-mode . "2.4") :type '(choice (const :tag "Use actual image width" nil) (cons (choice (sexp :tag "Maximum width in pixels") @@ -578,12 +432,12 @@ requires Emacs to be built with ImageMagick support." (choice (sexp :tag "Maximum height in pixels") (const :tag "No maximum height" nil))))) - + ;;; Markdown-Specific `rx' Macro ============================================== ;; Based on python-rx from python.el. (eval-and-compile - (defconst markdown-rx-constituents + (defconst ein:markdown-rx-constituents `((newline . ,(rx "\n")) (indent . ,(rx (or (repeat 4 " ") "\t"))) (block-end . ,(rx (and (or (one-or-more (zero-or-more blank) "\n") line-end)))) @@ -592,37 +446,37 @@ requires Emacs to be built with ImageMagick support." (list-marker . ,(rx (or (and (one-or-more (any "0-9#")) ".") (any "*+:-")))) (checkbox . ,(rx "[" (any " xX") "]"))) - "Markdown-specific sexps for `markdown-rx'") + "ein:markdown-specific sexps for `markdown-rx'") - (defun markdown-rx-to-string (form &optional no-group) - "Markdown mode specialized `rx-to-string' function. + (defun ein:markdown-rx-to-string (form &optional no-group) + "ein:markdown mode specialized `rx-to-string' function. This variant supports named Markdown expressions in FORM. NO-GROUP non-nil means don't put shy groups around the result." - (let ((rx-constituents (append markdown-rx-constituents rx-constituents))) + (let ((rx-constituents (append ein:markdown-rx-constituents rx-constituents))) (rx-to-string form no-group))) - (defmacro markdown-rx (&rest regexps) - "Markdown mode specialized rx macro. + (defmacro ein:markdown-rx (&rest regexps) + "ein:markdown mode specialized rx macro. This variant of `rx' supports common Markdown named REGEXPS." (cond ((null regexps) (error "No regexp")) ((cdr regexps) - (markdown-rx-to-string `(and ,@regexps) t)) + (ein:markdown-rx-to-string `(and ,@regexps) t)) (t - (markdown-rx-to-string (car regexps) t))))) + (ein:markdown-rx-to-string (car regexps) t))))) + - ;;; Regular Expressions ======================================================= -(defconst markdown-regex-comment-start +(defconst ein:markdown-regex-comment-start "