mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
Use declare instead of def-edebug-spec in most places
* lisp/speedbar.el: Use lexical-binding. (speedbar-with-writable): Use `declare`. * lisp/subr.el (def-edebug-spec): Use `declare`. * lisp/cedet/ede/base.el: Use lexical-binding. (ede-with-projectfile): Use `declare`. (recentf-exclude): Declare var. * lisp/cedet/ede/pmake.el: Use lexical-binding. (ede-pmake-insert-variable-shared, ede-pmake-insert-variable-once): Use `declare`. * lisp/cedet/ede/proj-comp.el: Use lexical-binding. (ede-compiler-begin-unique, ede-compiler-only-once) (ede-linker-begin-unique, ede-linker-only-once): Use `declare`. * lisp/cedet/semantic/ctxt.el: Use lexical-binding. (semantic-with-buffer-narrowed-to-context) (semantic-with-buffer-narrowed-to-command): Use `declare`. (semantic--progress-reporter): Declare var. (semantic-ctxt-end-of-symbol-default): Remove unused var `fieldsep`. * lisp/cedet/semantic/lex-spp.el: Use lexical-binding. (define-lex-spp-macro-declaration-analyzer) (define-lex-spp-include-analyzer, semantic-lex-with-macro-used) (define-lex-spp-macro-undeclaration-analyzer): Use `declare`. (semantic-lex-spp-symbol-remove): Rename arg to avoid colliding with dynamic variable `obarray`. (semantic-lex-spp-symbol-pop): Remove unused var `oldvalue`. (semantic-lex-spp-lex-text-string): Remove unused var `analyzer`. * lisp/cedet/semantic/lex.el (define-lex) (semantic-lex-unterminated-syntax-protection, define-lex-analyzer) (define-lex-regex-analyzer, define-lex-block-analyzer) (semantic-lex-catch-errors): Use `declare`. * lisp/cedet/semantic/tag.el: Use lexical-binding. (semantic-with-buffer-narrowed-to-current-tag) (semantic-with-buffer-narrowed-to-tag): Use `declare`. * lisp/cedet/semantic/wisent.el: Use lexical-binding. (define-wisent-lexer): Use `declare`. * lisp/emacs-lisp/cl-lib.el (cl-pushnew): The arg to :test can be any form not just function form. * lisp/org/ob-comint.el (org-babel-comint-in-buffer) (org-babel-comint-with-output): Use `declare`. * lisp/org/ob-core.el (org-babel-map-src-blocks): Use `declare`. (org-babel-result-cond): Simplify edebug spec. * lisp/org/org-clock.el (org-with-clock-position, org-with-clock): * lisp/org/org-agenda.el (org-agenda-with-point-at-orig-entry): * lisp/org/ob-tangle.el (org-babel-with-temp-filebuffer): Use `declare`. * lisp/textmodes/rst.el (push): Remove redundant edebug spec. * lisp/vc/pcvs-parse.el: Use lexical-binding. (cvs-parse-buffer): Rename arg to avoid dynbound conflict. (cvs-or): Use `declare`.
This commit is contained in:
parent
9518926220
commit
f8dbefbaa5
25 changed files with 111 additions and 220 deletions
|
|
@ -1,4 +1,4 @@
|
|||
;;; ede/base.el --- Baseclasses for EDE.
|
||||
;;; ede/base.el --- Baseclasses for EDE -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2010-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -288,7 +288,7 @@ All specific project types must derive from this project."
|
|||
;;
|
||||
(defmacro ede-with-projectfile (obj &rest forms)
|
||||
"For the project in which OBJ resides, execute FORMS."
|
||||
(declare (indent 1))
|
||||
(declare (indent 1) (debug t))
|
||||
(unless (symbolp obj)
|
||||
(message "Beware! ede-with-projectfile's first arg is copied: %S" obj))
|
||||
`(let* ((pf (if (obj-of-class-p ,obj 'ede-target)
|
||||
|
|
@ -317,13 +317,15 @@ If set to nil, then the cache is not saved."
|
|||
(defvar ede-project-cache-files nil
|
||||
"List of project files EDE has seen before.")
|
||||
|
||||
(defvar recentf-exclude)
|
||||
|
||||
(defun ede-save-cache ()
|
||||
"Save a cache of EDE objects that Emacs has seen before."
|
||||
(interactive)
|
||||
(when ede-project-placeholder-cache-file
|
||||
(let ((p ede-projects)
|
||||
(c ede-project-cache-files)
|
||||
(recentf-exclude '( (lambda (f) t) ))
|
||||
(recentf-exclude `( ,(lambda (_) t) ))
|
||||
)
|
||||
(condition-case nil
|
||||
(progn
|
||||
|
|
@ -461,7 +463,7 @@ Not all buffers need headers, so return nil if no applicable."
|
|||
(ede-buffer-header-file ede-object (current-buffer))
|
||||
nil))
|
||||
|
||||
(cl-defmethod ede-buffer-header-file ((this ede-project) buffer)
|
||||
(cl-defmethod ede-buffer-header-file ((_this ede-project) _buffer)
|
||||
"Return nil, projects don't have header files."
|
||||
nil)
|
||||
|
||||
|
|
@ -487,12 +489,12 @@ Some projects may have multiple documentation files, so return a list."
|
|||
(ede-buffer-documentation-files ede-object (current-buffer))
|
||||
nil))
|
||||
|
||||
(cl-defmethod ede-buffer-documentation-files ((this ede-project) buffer)
|
||||
(cl-defmethod ede-buffer-documentation-files ((this ede-project) _buffer)
|
||||
"Return all documentation in project THIS based on BUFFER."
|
||||
;; Find the info node.
|
||||
(ede-documentation this))
|
||||
|
||||
(cl-defmethod ede-buffer-documentation-files ((this ede-target) buffer)
|
||||
(cl-defmethod ede-buffer-documentation-files ((_this ede-target) buffer)
|
||||
"Check for some documentation files for THIS.
|
||||
Also do a quick check to see if there is a Documentation tag in this BUFFER."
|
||||
(with-current-buffer buffer
|
||||
|
|
@ -518,7 +520,7 @@ files in the project."
|
|||
proj (cdr proj)))
|
||||
found))
|
||||
|
||||
(cl-defmethod ede-documentation ((this ede-target))
|
||||
(cl-defmethod ede-documentation ((_this ede-target))
|
||||
"Return a list of files that provide documentation.
|
||||
Documentation is not for object THIS, but is provided by THIS for other
|
||||
files in the project."
|
||||
|
|
@ -529,7 +531,7 @@ files in the project."
|
|||
(ede-html-documentation (ede-toplevel))
|
||||
)
|
||||
|
||||
(cl-defmethod ede-html-documentation ((this ede-project))
|
||||
(cl-defmethod ede-html-documentation ((_this ede-project))
|
||||
"Return a list of HTML files provided by project THIS."
|
||||
|
||||
)
|
||||
|
|
@ -636,18 +638,7 @@ PROJECT-FILE-NAME is a name of project file (short name, like `pom.xml', etc."
|
|||
(oset this directory (file-name-directory (oref this file))))
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
;;; Hooks & Autoloads
|
||||
;;
|
||||
;; These let us watch various activities, and respond appropriately.
|
||||
|
||||
;; (add-hook 'edebug-setup-hook
|
||||
;; (lambda ()
|
||||
;; (def-edebug-spec ede-with-projectfile
|
||||
;; (form def-body))))
|
||||
|
||||
(provide 'ede/base)
|
||||
|
||||
;; Local variables:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; ede-pmake.el --- EDE Generic Project Makefile code generator.
|
||||
;;; ede-pmake.el --- EDE Generic Project Makefile code generator -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 1998-2005, 2007-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -241,6 +241,7 @@ MFILENAME is the makefile to generate."
|
|||
(defmacro ede-pmake-insert-variable-shared (varname &rest body)
|
||||
"Add VARNAME into the current Makefile.
|
||||
Execute BODY in a location where a value can be placed."
|
||||
(declare (debug t) (indent 1))
|
||||
`(let ((addcr t) (v ,varname))
|
||||
(if (save-excursion
|
||||
(goto-char (point-max))
|
||||
|
|
@ -258,11 +259,11 @@ Execute BODY in a location where a value can be placed."
|
|||
,@body
|
||||
(if addcr (insert "\n"))
|
||||
(goto-char (point-max))))
|
||||
(put 'ede-pmake-insert-variable-shared 'lisp-indent-function 1)
|
||||
|
||||
(defmacro ede-pmake-insert-variable-once (varname &rest body)
|
||||
"Add VARNAME into the current Makefile if it doesn't exist.
|
||||
Execute BODY in a location where a value can be placed."
|
||||
(declare (debug t) (indent 1))
|
||||
`(let ((addcr t) (v ,varname))
|
||||
(unless
|
||||
(save-excursion
|
||||
|
|
@ -271,7 +272,6 @@ Execute BODY in a location where a value can be placed."
|
|||
,@body
|
||||
(when addcr (insert "\n"))
|
||||
(goto-char (point-max)))))
|
||||
(put 'ede-pmake-insert-variable-once 'lisp-indent-function 1)
|
||||
|
||||
;;; SOURCE VARIABLE NAME CONSTRUCTION
|
||||
|
||||
|
|
@ -289,7 +289,7 @@ Change . to _ in the variable name."
|
|||
|
||||
;;; DEPENDENCY FILE GENERATOR LISTS
|
||||
;;
|
||||
(cl-defmethod ede-proj-makefile-dependency-files ((this ede-proj-target))
|
||||
(cl-defmethod ede-proj-makefile-dependency-files ((_this ede-proj-target))
|
||||
"Return a list of source files to convert to dependencies.
|
||||
Argument THIS is the target to get sources from."
|
||||
nil)
|
||||
|
|
@ -302,7 +302,7 @@ Argument THIS is the target to get sources from."
|
|||
Use CONFIGURATION as the current configuration to query."
|
||||
(cdr (assoc configuration (oref this configuration-variables))))
|
||||
|
||||
(cl-defmethod ede-proj-makefile-insert-variables-new ((this ede-proj-project))
|
||||
(cl-defmethod ede-proj-makefile-insert-variables-new ((_this ede-proj-project))
|
||||
"Insert variables needed by target THIS.
|
||||
|
||||
NOTE: Not yet in use! This is part of an SRecode conversion of
|
||||
|
|
@ -420,7 +420,7 @@ Use CONFIGURATION as the current configuration to query."
|
|||
(cdr (assoc configuration (oref this configuration-variables))))
|
||||
|
||||
(cl-defmethod ede-proj-makefile-insert-variables ((this ede-proj-target-makefile)
|
||||
&optional moresource)
|
||||
&optional _moresource)
|
||||
"Insert variables needed by target THIS.
|
||||
Optional argument MORESOURCE is a list of additional sources to add to the
|
||||
sources variable."
|
||||
|
|
@ -449,12 +449,12 @@ sources variable."
|
|||
(ede-proj-makefile-insert-variables linker)))))
|
||||
|
||||
(cl-defmethod ede-proj-makefile-insert-automake-pre-variables
|
||||
((this ede-proj-target))
|
||||
((_this ede-proj-target))
|
||||
"Insert variables needed by target THIS in Makefile.am before SOURCES."
|
||||
nil)
|
||||
|
||||
(cl-defmethod ede-proj-makefile-insert-automake-post-variables
|
||||
((this ede-proj-target))
|
||||
((_this ede-proj-target))
|
||||
"Insert variables needed by target THIS in Makefile.am after SOURCES."
|
||||
nil)
|
||||
|
||||
|
|
@ -511,7 +511,7 @@ Argument THIS is the project that should insert stuff."
|
|||
(mapc 'ede-proj-makefile-insert-dist-dependencies (oref this targets))
|
||||
)
|
||||
|
||||
(cl-defmethod ede-proj-makefile-insert-dist-dependencies ((this ede-proj-target))
|
||||
(cl-defmethod ede-proj-makefile-insert-dist-dependencies ((_this ede-proj-target))
|
||||
"Insert any symbols that the DIST rule should depend on.
|
||||
Argument THIS is the target that should insert stuff."
|
||||
nil)
|
||||
|
|
@ -530,7 +530,7 @@ Argument THIS is the target that should insert stuff."
|
|||
(insert " " (ede-subproject-relative-path sproj))
|
||||
))))
|
||||
|
||||
(cl-defmethod ede-proj-makefile-automake-insert-extradist ((this ede-proj-project))
|
||||
(cl-defmethod ede-proj-makefile-automake-insert-extradist ((_this ede-proj-project))
|
||||
"Insert the EXTRADIST variable entries needed for Automake and EDE."
|
||||
(proj-comp-insert-variable-once "EXTRA_DIST" (insert "Project.ede")))
|
||||
|
||||
|
|
@ -602,7 +602,7 @@ Argument THIS is the target that should insert stuff."
|
|||
"\t@false\n\n"
|
||||
"\n\n# End of Makefile\n")))
|
||||
|
||||
(cl-defmethod ede-proj-makefile-insert-rules ((this ede-proj-target))
|
||||
(cl-defmethod ede-proj-makefile-insert-rules ((_this ede-proj-target))
|
||||
"Insert rules needed by THIS target."
|
||||
nil)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; ede/proj-comp.el --- EDE Generic Project compiler/rule driver
|
||||
;;; ede/proj-comp.el --- EDE Generic Project compiler/rule driver -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 1999-2001, 2004-2005, 2007, 2009-2021 Free Software
|
||||
;; Foundation, Inc.
|
||||
|
|
@ -172,12 +172,12 @@ Adds this rule to a .PHONY list."))
|
|||
This is used when creating a Makefile to prevent duplicate variables and
|
||||
rules from being created.")
|
||||
|
||||
(cl-defmethod initialize-instance :after ((this ede-compiler) &rest fields)
|
||||
(cl-defmethod initialize-instance :after ((this ede-compiler) &rest _fields)
|
||||
"Make sure that all ede compiler objects are cached in
|
||||
`ede-compiler-list'."
|
||||
(add-to-list 'ede-compiler-list this))
|
||||
|
||||
(cl-defmethod initialize-instance :after ((this ede-linker) &rest fields)
|
||||
(cl-defmethod initialize-instance :after ((this ede-linker) &rest _fields)
|
||||
"Make sure that all ede compiler objects are cached in
|
||||
`ede-linker-list'."
|
||||
(add-to-list 'ede-linker-list this))
|
||||
|
|
@ -185,11 +185,13 @@ rules from being created.")
|
|||
(defmacro ede-compiler-begin-unique (&rest body)
|
||||
"Execute BODY, making sure that `ede-current-build-list' is maintained.
|
||||
This will prevent rules from creating duplicate variables or rules."
|
||||
(declare (indent 0) (debug t))
|
||||
`(let ((ede-current-build-list nil))
|
||||
,@body))
|
||||
|
||||
(defmacro ede-compiler-only-once (object &rest body)
|
||||
"Using OBJECT, execute BODY only once per Makefile generation."
|
||||
(declare (indent 1) (debug t))
|
||||
`(if (not (member ,object ede-current-build-list))
|
||||
(progn
|
||||
(add-to-list 'ede-current-build-list ,object)
|
||||
|
|
@ -198,25 +200,18 @@ This will prevent rules from creating duplicate variables or rules."
|
|||
(defmacro ede-linker-begin-unique (&rest body)
|
||||
"Execute BODY, making sure that `ede-current-build-list' is maintained.
|
||||
This will prevent rules from creating duplicate variables or rules."
|
||||
(declare (indent 0) (debug t))
|
||||
`(let ((ede-current-build-list nil))
|
||||
,@body))
|
||||
|
||||
(defmacro ede-linker-only-once (object &rest body)
|
||||
"Using OBJECT, execute BODY only once per Makefile generation."
|
||||
(declare (indent 1) (debug t))
|
||||
`(if (not (member ,object ede-current-build-list))
|
||||
(progn
|
||||
(add-to-list 'ede-current-build-list ,object)
|
||||
,@body)))
|
||||
|
||||
(add-hook 'edebug-setup-hook
|
||||
(lambda ()
|
||||
(def-edebug-spec ede-compiler-begin-unique def-body)
|
||||
(def-edebug-spec ede-compiler-only-once (form def-body))
|
||||
(def-edebug-spec ede-linker-begin-unique def-body)
|
||||
(def-edebug-spec ede-linker-only-once (form def-body))
|
||||
(def-edebug-spec ede-pmake-insert-variable-shared (form def-body))
|
||||
))
|
||||
|
||||
;;; Queries
|
||||
(defun ede-proj-find-compiler (compilers sourcetype)
|
||||
"Return a compiler from the list COMPILERS that will compile SOURCETYPE."
|
||||
|
|
@ -246,7 +241,7 @@ This will prevent rules from creating duplicate variables or rules."
|
|||
)
|
||||
(oref this autoconf)))
|
||||
|
||||
(cl-defmethod ede-proj-flush-autoconf ((this ede-compilation-program))
|
||||
(cl-defmethod ede-proj-flush-autoconf ((_this ede-compilation-program))
|
||||
"Flush the configure file (current buffer) to accommodate THIS."
|
||||
nil)
|
||||
|
||||
|
|
@ -281,8 +276,8 @@ If this compiler creates code that can be linked together,
|
|||
then the object files created by the compiler are considered intermediate."
|
||||
(oref this uselinker))
|
||||
|
||||
(cl-defmethod ede-compiler-intermediate-object-variable ((this ede-compiler)
|
||||
targetname)
|
||||
(cl-defmethod ede-compiler-intermediate-object-variable ((_this ede-compiler)
|
||||
targetname)
|
||||
"Return a string based on THIS representing a make object variable.
|
||||
TARGETNAME is the name of the target that these objects belong to."
|
||||
(concat targetname "_OBJ"))
|
||||
|
|
@ -343,16 +338,6 @@ compiler it decides to use after inserting in the rule."
|
|||
commands))
|
||||
(insert "\n")))
|
||||
|
||||
;;; Some details about our new macro
|
||||
;;
|
||||
(add-hook 'edebug-setup-hook
|
||||
(lambda ()
|
||||
(def-edebug-spec ede-compiler-begin-unique def-body)))
|
||||
(put 'ede-compiler-begin-unique 'lisp-indent-function 0)
|
||||
(put 'ede-compiler-only-once 'lisp-indent-function 1)
|
||||
(put 'ede-linker-begin-unique 'lisp-indent-function 0)
|
||||
(put 'ede-linker-only-once 'lisp-indent-function 1)
|
||||
|
||||
(provide 'ede/proj-comp)
|
||||
|
||||
;;; ede/proj-comp.el ends here
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; semantic/ctxt.el --- Context calculations for Semantic tools.
|
||||
;;; semantic/ctxt.el --- Context calculations for Semantic tools -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -137,18 +137,16 @@ Return non-nil if there is no upper context."
|
|||
|
||||
(defmacro semantic-with-buffer-narrowed-to-context (&rest body)
|
||||
"Execute BODY with the buffer narrowed to the current context."
|
||||
(declare (indent 0) (debug t))
|
||||
`(save-restriction
|
||||
(semantic-narrow-to-context)
|
||||
,@body))
|
||||
(put 'semantic-with-buffer-narrowed-to-context 'lisp-indent-function 0)
|
||||
(add-hook 'edebug-setup-hook
|
||||
(lambda ()
|
||||
(def-edebug-spec semantic-with-buffer-narrowed-to-context
|
||||
(def-body))))
|
||||
|
||||
;;; Local Variables
|
||||
;;
|
||||
;;
|
||||
|
||||
(defvar semantic--progress-reporter)
|
||||
|
||||
(define-overloadable-function semantic-get-local-variables (&optional point)
|
||||
"Get the local variables based on POINT's context.
|
||||
Local variables are returned in Semantic tag format.
|
||||
|
|
@ -345,14 +343,10 @@ beginning and end of a command."
|
|||
|
||||
(defmacro semantic-with-buffer-narrowed-to-command (&rest body)
|
||||
"Execute BODY with the buffer narrowed to the current command."
|
||||
(declare (indent 0) (debug t))
|
||||
`(save-restriction
|
||||
(semantic-narrow-to-command)
|
||||
,@body))
|
||||
(put 'semantic-with-buffer-narrowed-to-command 'lisp-indent-function 0)
|
||||
(add-hook 'edebug-setup-hook
|
||||
(lambda ()
|
||||
(def-edebug-spec semantic-with-buffer-narrowed-to-command
|
||||
(def-body))))
|
||||
|
||||
(define-overloadable-function semantic-ctxt-end-of-symbol (&optional point)
|
||||
"Move point to the end of the current symbol under POINT.
|
||||
|
|
@ -374,7 +368,7 @@ work on C like languages."
|
|||
;; NOTE: The [ \n] expression below should used \\s-, but that
|
||||
;; doesn't work in C since \n means end-of-comment, and isn't
|
||||
;; really whitespace.
|
||||
(fieldsep (concat "[ \t\n\r]*\\(" fieldsep1 "\\)[ \t\n\r]*\\(\\w\\|\\s_\\)"))
|
||||
;;(fieldsep (concat "[ \t\n\r]*\\(" fieldsep1 "\\)[ \t\n\r]*\\(\\w\\|\\s_\\)"))
|
||||
(case-fold-search semantic-case-fold)
|
||||
(continuesearch t)
|
||||
(end nil)
|
||||
|
|
@ -655,7 +649,7 @@ POINT defaults to the value of point in current buffer.
|
|||
You should override this function in multiple mode buffers to
|
||||
determine which major mode apply at point.")
|
||||
|
||||
(defun semantic-ctxt-current-mode-default (&optional point)
|
||||
(defun semantic-ctxt-current-mode-default (&optional _point)
|
||||
"Return the major mode active at POINT.
|
||||
POINT defaults to the value of point in current buffer.
|
||||
This default implementation returns the current major mode."
|
||||
|
|
@ -671,7 +665,7 @@ The return value can be a mixed list of either strings (names of
|
|||
types that are in scope) or actual tags (type declared locally
|
||||
that may or may not have a name.)")
|
||||
|
||||
(defun semantic-ctxt-scoped-types-default (&optional point)
|
||||
(defun semantic-ctxt-scoped-types-default (&optional _point)
|
||||
"Return a list of scoped types by name for the current context at POINT.
|
||||
This is very different for various languages, and does nothing unless
|
||||
overridden."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; semantic/lex-spp.el --- Semantic Lexical Pre-processor
|
||||
;;; semantic/lex-spp.el --- Semantic Lexical Pre-processor -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2006-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -106,22 +106,12 @@ added and removed from this symbol table.")
|
|||
Pushes NAME into the macro stack. The above stack is checked
|
||||
by `semantic-lex-spp-symbol' to not return true for any symbol
|
||||
currently being expanded."
|
||||
(declare (indent 1) (debug (symbolp def-body)))
|
||||
`(unwind-protect
|
||||
(progn
|
||||
(push ,name semantic-lex-spp-expanded-macro-stack)
|
||||
,@body)
|
||||
(pop semantic-lex-spp-expanded-macro-stack)))
|
||||
(put 'semantic-lex-with-macro-used 'lisp-indent-function 1)
|
||||
|
||||
(add-hook
|
||||
'edebug-setup-hook
|
||||
#'(lambda ()
|
||||
|
||||
(def-edebug-spec semantic-lex-with-macro-used
|
||||
(symbolp def-body)
|
||||
)
|
||||
|
||||
))
|
||||
|
||||
;;; MACRO TABLE UTILS
|
||||
;;
|
||||
|
|
@ -190,7 +180,7 @@ Disable debugging by entering nothing."
|
|||
(setq semantic-lex-spp-debug-symbol nil)
|
||||
(setq semantic-lex-spp-debug-symbol sym)))
|
||||
|
||||
(defmacro semantic-lex-spp-validate-value (name value)
|
||||
(defmacro semantic-lex-spp-validate-value (_name _value)
|
||||
"Validate the NAME and VALUE of a macro before it is set."
|
||||
; `(progn
|
||||
; (when (not (semantic-lex-spp-value-valid-p ,value))
|
||||
|
|
@ -212,12 +202,11 @@ the dynamic map."
|
|||
(semantic-lex-spp-dynamic-map)))
|
||||
value))
|
||||
|
||||
(defsubst semantic-lex-spp-symbol-remove (name &optional obarray)
|
||||
(defsubst semantic-lex-spp-symbol-remove (name &optional map)
|
||||
"Remove the spp symbol with NAME.
|
||||
If optional OBARRAY is non-nil, then use that obarray instead of
|
||||
If optional obarray MAP is non-nil, then use that obarray instead of
|
||||
the dynamic map."
|
||||
(unintern name (or obarray
|
||||
(semantic-lex-spp-dynamic-map))))
|
||||
(unintern name (or map (semantic-lex-spp-dynamic-map))))
|
||||
|
||||
(defun semantic-lex-spp-symbol-push (name value)
|
||||
"Push macro NAME with VALUE into the map.
|
||||
|
|
@ -246,7 +235,7 @@ Reverse with `semantic-lex-spp-symbol-pop'."
|
|||
(stack (semantic-lex-spp-dynamic-map-stack))
|
||||
(mapsym (intern name map))
|
||||
(stacksym (intern name stack))
|
||||
(oldvalue nil)
|
||||
;; (oldvalue nil)
|
||||
)
|
||||
(if (or (not (boundp stacksym) )
|
||||
(= (length (symbol-value stacksym)) 0))
|
||||
|
|
@ -324,7 +313,7 @@ For use with semanticdb restoration of state."
|
|||
;; Default obarray for below is the dynamic map.
|
||||
(semantic-lex-spp-symbol-set (car e) (cdr e))))
|
||||
|
||||
(defun semantic-lex-spp-reset-hook (start end)
|
||||
(defun semantic-lex-spp-reset-hook (start _end)
|
||||
"Reset anything needed by SPP for parsing.
|
||||
In this case, reset the dynamic macro symbol table if
|
||||
START is (point-min).
|
||||
|
|
@ -354,7 +343,7 @@ Return non-nil if it matches"
|
|||
(string-match regex value))
|
||||
))
|
||||
|
||||
(defun semantic-lex-spp-simple-macro-to-macro-stream (val beg end argvalues)
|
||||
(defun semantic-lex-spp-simple-macro-to-macro-stream (val beg end _argvalues)
|
||||
"Convert lexical macro contents VAL into a macro expansion stream.
|
||||
These are for simple macro expansions that a user may have typed in directly.
|
||||
As such, we need to analyze the input text, to figure out what kind of real
|
||||
|
|
@ -819,7 +808,7 @@ ARGVALUES are values for any arg list, or nil."
|
|||
;; An analyzer that will push tokens from a macro in place
|
||||
;; of the macro symbol.
|
||||
;;
|
||||
(defun semantic-lex-spp-analyzer-do-replace (sym val beg end)
|
||||
(defun semantic-lex-spp-analyzer-do-replace (_sym val beg end)
|
||||
"Do the lexical replacement for SYM with VAL.
|
||||
Argument BEG and END specify the bounds of SYM in the buffer."
|
||||
(if (not val)
|
||||
|
|
@ -1045,7 +1034,7 @@ and variable state from the current buffer."
|
|||
(fresh-toks nil)
|
||||
(toks nil)
|
||||
(origbuff (current-buffer))
|
||||
(analyzer semantic-lex-analyzer)
|
||||
;; (analyzer semantic-lex-analyzer)
|
||||
(important-vars '(semantic-lex-spp-macro-symbol-obarray
|
||||
semantic-lex-spp-project-macro-symbol-obarray
|
||||
semantic-lex-spp-dynamic-macro-symbol-obarray
|
||||
|
|
@ -1176,6 +1165,7 @@ of type `spp-macro-def' is to be created.
|
|||
VALFORM are forms that return the value to be saved for this macro, or nil.
|
||||
When implementing a macro, you can use `semantic-lex-spp-stream-for-macro'
|
||||
to convert text into a lexical stream for storage in the macro."
|
||||
(declare (debug (&define name stringp stringp form def-body)))
|
||||
(let ((start (make-symbol "start"))
|
||||
(end (make-symbol "end"))
|
||||
(val (make-symbol "val"))
|
||||
|
|
@ -1209,6 +1199,7 @@ REGEXP is a regular expression for the analyzer to match.
|
|||
See `define-lex-regex-analyzer' for more on regexp.
|
||||
TOKIDX is an index into REGEXP for which a new lexical token
|
||||
of type `spp-macro-undef' is to be created."
|
||||
(declare (debug (&define name stringp stringp form)))
|
||||
(let ((start (make-symbol "start"))
|
||||
(end (make-symbol "end")))
|
||||
`(define-lex-regex-analyzer ,name
|
||||
|
|
@ -1244,7 +1235,7 @@ Note: Not implemented yet."
|
|||
:group 'semantic
|
||||
:type 'boolean)
|
||||
|
||||
(defun semantic-lex-spp-merge-header (name)
|
||||
(defun semantic-lex-spp-merge-header (_name)
|
||||
"Extract and merge any macros from the header with NAME.
|
||||
Finds the header file belonging to NAME, gets the macros
|
||||
from that file, and then merge the macros with our current
|
||||
|
|
@ -1269,6 +1260,7 @@ type of include. The return value should be of the form:
|
|||
(NAME . TYPE)
|
||||
where NAME is the name of the include, and TYPE is the type of the include,
|
||||
where a valid symbol is `system', or nil."
|
||||
(declare (debug (&define name stringp stringp form def-body)))
|
||||
(let ((start (make-symbol "start"))
|
||||
(end (make-symbol "end"))
|
||||
(val (make-symbol "val"))
|
||||
|
|
@ -1369,23 +1361,6 @@ If BUFFER is not provided, use the current buffer."
|
|||
(princ "\n")
|
||||
))))
|
||||
|
||||
;;; EDEBUG Handlers
|
||||
;;
|
||||
(add-hook
|
||||
'edebug-setup-hook
|
||||
#'(lambda ()
|
||||
|
||||
(def-edebug-spec define-lex-spp-macro-declaration-analyzer
|
||||
(&define name stringp stringp form def-body)
|
||||
)
|
||||
|
||||
(def-edebug-spec define-lex-spp-macro-undeclaration-analyzer
|
||||
(&define name stringp stringp form)
|
||||
)
|
||||
|
||||
(def-edebug-spec define-lex-spp-include-analyzer
|
||||
(&define name stringp stringp form def-body))))
|
||||
|
||||
(provide 'semantic/lex-spp)
|
||||
|
||||
;; Local variables:
|
||||
|
|
|
|||
|
|
@ -760,6 +760,7 @@ If two analyzers can match the same text, it is important to order the
|
|||
analyzers so that the one you want to match first occurs first. For
|
||||
example, it is good to put a number analyzer in front of a symbol
|
||||
analyzer which might mistake a number for a symbol."
|
||||
(declare (debug (&define name stringp (&rest symbolp))))
|
||||
`(defun ,name (start end &optional depth length)
|
||||
,(concat doc "\nSee `semantic-lex' for more information.")
|
||||
;; Make sure the state of block parsing starts over.
|
||||
|
|
@ -1064,14 +1065,13 @@ the desired syntax, and a position returned.
|
|||
If `debug-on-error' is set, errors are not caught, so that you can
|
||||
debug them.
|
||||
Avoid using a large FORMS since it is duplicated."
|
||||
(declare (indent 1) (debug t))
|
||||
`(if (and debug-on-error semantic-lex-debug-analyzers)
|
||||
(progn ,@forms)
|
||||
(condition-case nil
|
||||
(progn ,@forms)
|
||||
(error
|
||||
(semantic-lex-unterminated-syntax-detected ,syntax)))))
|
||||
(put 'semantic-lex-unterminated-syntax-protection
|
||||
'lisp-indent-function 1)
|
||||
|
||||
(defmacro define-lex-analyzer (name doc condition &rest forms)
|
||||
"Create a single lexical analyzer NAME with DOC.
|
||||
|
|
@ -1096,6 +1096,7 @@ Proper action in FORMS is to move the value of `semantic-lex-end-point' to
|
|||
after the location of the analyzed entry, and to add any discovered tokens
|
||||
at the beginning of `semantic-lex-token-stream'.
|
||||
This can be done by using `semantic-lex-push-token'."
|
||||
(declare (debug (&define name stringp form def-body)))
|
||||
`(eval-and-compile
|
||||
(defvar ,name nil ,doc)
|
||||
(defun ,name nil)
|
||||
|
|
@ -1122,6 +1123,7 @@ This can be done by using `semantic-lex-push-token'."
|
|||
"Create a lexical analyzer with NAME and DOC that will match REGEXP.
|
||||
FORMS are evaluated upon a successful match.
|
||||
See `define-lex-analyzer' for more about analyzers."
|
||||
(declare (debug (&define name stringp form def-body)))
|
||||
`(define-lex-analyzer ,name
|
||||
,doc
|
||||
(looking-at ,regexp)
|
||||
|
|
@ -1139,6 +1141,8 @@ expression.
|
|||
FORMS are evaluated upon a successful match BEFORE the new token is
|
||||
created. It is valid to ignore FORMS.
|
||||
See `define-lex-analyzer' for more about analyzers."
|
||||
(declare (debug
|
||||
(&define name stringp form symbolp [ &optional form ] def-body)))
|
||||
`(define-lex-analyzer ,name
|
||||
,doc
|
||||
(looking-at ,regexp)
|
||||
|
|
@ -1163,6 +1167,7 @@ where BLOCK-SYM is the symbol returned in a block token. OPEN-DELIM
|
|||
and CLOSE-DELIM are respectively the open and close delimiters
|
||||
identifying a block. OPEN-SYM and CLOSE-SYM are respectively the
|
||||
symbols returned in open and close tokens."
|
||||
(declare (debug (&define name stringp form (&rest form))))
|
||||
(let ((specs (cons spec1 specs))
|
||||
spec open olist clist)
|
||||
(while specs
|
||||
|
|
@ -1684,6 +1689,7 @@ the error will be caught here without the buffer's cache being thrown
|
|||
out of date.
|
||||
If there is an error, the syntax that failed is returned.
|
||||
If there is no error, then the last value of FORMS is returned."
|
||||
(declare (indent 1) (debug (symbolp def-body)))
|
||||
(let ((ret (make-symbol "ret"))
|
||||
(syntax (make-symbol "syntax"))
|
||||
(start (make-symbol "start"))
|
||||
|
|
@ -1707,35 +1713,7 @@ If there is no error, then the last value of FORMS is returned."
|
|||
;;(message "Buffer not currently parsable (%S)." ,ret)
|
||||
(semantic-parse-tree-unparseable))
|
||||
,ret)))
|
||||
(put 'semantic-lex-catch-errors 'lisp-indent-function 1)
|
||||
|
||||
|
||||
;;; Interfacing with edebug
|
||||
;;
|
||||
(add-hook
|
||||
'edebug-setup-hook
|
||||
#'(lambda ()
|
||||
|
||||
(def-edebug-spec define-lex
|
||||
(&define name stringp (&rest symbolp))
|
||||
)
|
||||
(def-edebug-spec define-lex-analyzer
|
||||
(&define name stringp form def-body)
|
||||
)
|
||||
(def-edebug-spec define-lex-regex-analyzer
|
||||
(&define name stringp form def-body)
|
||||
)
|
||||
(def-edebug-spec define-lex-simple-regex-analyzer
|
||||
(&define name stringp form symbolp [ &optional form ] def-body)
|
||||
)
|
||||
(def-edebug-spec define-lex-block-analyzer
|
||||
(&define name stringp form (&rest form))
|
||||
)
|
||||
(def-edebug-spec semantic-lex-catch-errors
|
||||
(symbolp def-body)
|
||||
)
|
||||
|
||||
))
|
||||
|
||||
;;; Compatibility with Semantic 1.x lexical analysis
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; semantic/tag.el --- tag creation and access
|
||||
;;; semantic/tag.el --- Tag creation and access -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 1999-2005, 2007-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -1038,25 +1038,17 @@ See `semantic-tag-bounds'."
|
|||
|
||||
(defmacro semantic-with-buffer-narrowed-to-current-tag (&rest body)
|
||||
"Execute BODY with the buffer narrowed to the current tag."
|
||||
(declare (indent 0) (debug t))
|
||||
`(save-restriction
|
||||
(semantic-narrow-to-tag (semantic-current-tag))
|
||||
,@body))
|
||||
(put 'semantic-with-buffer-narrowed-to-current-tag 'lisp-indent-function 0)
|
||||
(add-hook 'edebug-setup-hook
|
||||
(lambda ()
|
||||
(def-edebug-spec semantic-with-buffer-narrowed-to-current-tag
|
||||
(def-body))))
|
||||
|
||||
(defmacro semantic-with-buffer-narrowed-to-tag (tag &rest body)
|
||||
"Narrow to TAG, and execute BODY."
|
||||
(declare (indent 1) (debug t))
|
||||
`(save-restriction
|
||||
(semantic-narrow-to-tag ,tag)
|
||||
,@body))
|
||||
(put 'semantic-with-buffer-narrowed-to-tag 'lisp-indent-function 1)
|
||||
(add-hook 'edebug-setup-hook
|
||||
(lambda ()
|
||||
(def-edebug-spec semantic-with-buffer-narrowed-to-tag
|
||||
(def-body))))
|
||||
|
||||
;;; Tag Hooks
|
||||
;;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; semantic/wisent.el --- Wisent - Semantic gateway
|
||||
;;; semantic/wisent.el --- Wisent - Semantic gateway -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2001-2007, 2009-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -69,6 +69,7 @@ Returned tokens must have the form:
|
|||
(TOKSYM VALUE START . END)
|
||||
|
||||
where VALUE is the buffer substring between START and END positions."
|
||||
(declare (debug (&define name stringp def-body)))
|
||||
`(defun
|
||||
,name () ,doc
|
||||
(cond
|
||||
|
|
@ -319,18 +320,6 @@ the standard function `semantic-parse-region'."
|
|||
(point-max))))))
|
||||
;; Return parse tree
|
||||
(nreverse ptree)))
|
||||
|
||||
;;; Interfacing with edebug
|
||||
;;
|
||||
(add-hook
|
||||
'edebug-setup-hook
|
||||
#'(lambda ()
|
||||
|
||||
(def-edebug-spec define-wisent-lexer
|
||||
(&define name stringp def-body)
|
||||
)
|
||||
|
||||
))
|
||||
|
||||
(provide 'semantic/wisent)
|
||||
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ to an element already in the list stored in PLACE.
|
|||
\n(fn X PLACE [KEYWORD VALUE]...)"
|
||||
(declare (debug
|
||||
(form place &rest
|
||||
&or [[&or ":test" ":test-not" ":key"] function-form]
|
||||
&or [[&or ":test" ":test-not" ":key"] form]
|
||||
[keywordp form])))
|
||||
(if (symbolp place)
|
||||
(if (null keys)
|
||||
|
|
|
|||
|
|
@ -355,7 +355,7 @@ This function is explicit for adding to `eshell-parse-argument-hook'."
|
|||
(defun pcomplete/eshell-mode/setq ()
|
||||
"Completion function for Eshell's `setq'."
|
||||
(while (and (pcomplete-here (all-completions pcomplete-stub
|
||||
obarray 'boundp))
|
||||
obarray #'boundp))
|
||||
(pcomplete-here))))
|
||||
|
||||
;; FIXME the real "env" command does more than this, it runs a program
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
BUFFER is checked with `org-babel-comint-buffer-livep'. BODY is
|
||||
executed inside the protection of `save-excursion' and
|
||||
`save-match-data'."
|
||||
(declare (indent 1))
|
||||
(declare (indent 1) (debug t))
|
||||
`(progn
|
||||
(unless (org-babel-comint-buffer-livep ,buffer)
|
||||
(error "Buffer %s does not exist or has no process" ,buffer))
|
||||
|
|
@ -53,7 +53,6 @@ executed inside the protection of `save-excursion' and
|
|||
(save-excursion
|
||||
(let ((comint-input-filter (lambda (_input) nil)))
|
||||
,@body))))))
|
||||
(def-edebug-spec org-babel-comint-in-buffer (form body))
|
||||
|
||||
(defmacro org-babel-comint-with-output (meta &rest body)
|
||||
"Evaluate BODY in BUFFER and return process output.
|
||||
|
|
@ -67,7 +66,7 @@ elements are optional.
|
|||
|
||||
This macro ensures that the filter is removed in case of an error
|
||||
or user `keyboard-quit' during execution of body."
|
||||
(declare (indent 1))
|
||||
(declare (indent 1) (debug (sexp body)))
|
||||
(let ((buffer (nth 0 meta))
|
||||
(eoe-indicator (nth 1 meta))
|
||||
(remove-echo (nth 2 meta))
|
||||
|
|
@ -112,7 +111,6 @@ or user `keyboard-quit' during execution of body."
|
|||
string-buffer))
|
||||
(setq string-buffer (substring string-buffer (match-end 0))))
|
||||
(split-string string-buffer comint-prompt-regexp)))))
|
||||
(def-edebug-spec org-babel-comint-with-output (sexp body))
|
||||
|
||||
(defun org-babel-comint-input-command (buffer cmd)
|
||||
"Pass CMD to BUFFER.
|
||||
|
|
|
|||
|
|
@ -1100,7 +1100,7 @@ end-header-args -- point at the end of the header-args
|
|||
body ------------- string holding the body of the code block
|
||||
beg-body --------- point at the beginning of the body
|
||||
end-body --------- point at the end of the body"
|
||||
(declare (indent 1))
|
||||
(declare (indent 1) (debug t))
|
||||
(let ((tempvar (make-symbol "file")))
|
||||
`(let* ((case-fold-search t)
|
||||
(,tempvar ,file)
|
||||
|
|
@ -1139,7 +1139,6 @@ end-body --------- point at the end of the body"
|
|||
(goto-char end-block)))))
|
||||
(unless visited-p (kill-buffer to-be-removed))
|
||||
(goto-char point))))
|
||||
(def-edebug-spec org-babel-map-src-blocks (form body))
|
||||
|
||||
;;;###autoload
|
||||
(defmacro org-babel-map-inline-src-blocks (file &rest body)
|
||||
|
|
@ -1354,7 +1353,7 @@ the `org-mode-hook'."
|
|||
(goto-char (match-beginning 0))
|
||||
(org-babel-hide-hash)
|
||||
(goto-char (match-end 0))))))
|
||||
(add-hook 'org-mode-hook 'org-babel-hide-all-hashes)
|
||||
(add-hook 'org-mode-hook #'org-babel-hide-all-hashes)
|
||||
|
||||
(defun org-babel-hash-at-point (&optional point)
|
||||
"Return the value of the hash at POINT.
|
||||
|
|
@ -1372,7 +1371,7 @@ This can be called with `\\[org-ctrl-c-ctrl-c]'."
|
|||
Add `org-babel-hide-result' as an invisibility spec for hiding
|
||||
portions of results lines."
|
||||
(add-to-invisibility-spec '(org-babel-hide-result . t)))
|
||||
(add-hook 'org-mode-hook 'org-babel-result-hide-spec)
|
||||
(add-hook 'org-mode-hook #'org-babel-result-hide-spec)
|
||||
|
||||
(defvar org-babel-hide-result-overlays nil
|
||||
"Overlays hiding results.")
|
||||
|
|
@ -1443,11 +1442,11 @@ portions of results lines."
|
|||
(push ov org-babel-hide-result-overlays)))))
|
||||
|
||||
;; org-tab-after-check-for-cycling-hook
|
||||
(add-hook 'org-tab-first-hook 'org-babel-hide-result-toggle-maybe)
|
||||
(add-hook 'org-tab-first-hook #'org-babel-hide-result-toggle-maybe)
|
||||
;; Remove overlays when changing major mode
|
||||
(add-hook 'org-mode-hook
|
||||
(lambda () (add-hook 'change-major-mode-hook
|
||||
'org-babel-show-result-all 'append 'local)))
|
||||
#'org-babel-show-result-all 'append 'local)))
|
||||
|
||||
(defun org-babel-params-from-properties (&optional lang no-eval)
|
||||
"Retrieve source block parameters specified as properties.
|
||||
|
|
@ -3075,8 +3074,7 @@ Emacs shutdown."))
|
|||
|
||||
(defmacro org-babel-result-cond (result-params scalar-form &rest table-forms)
|
||||
"Call the code to parse raw string results according to RESULT-PARAMS."
|
||||
(declare (indent 1)
|
||||
(debug (form form &rest form)))
|
||||
(declare (indent 1) (debug t))
|
||||
(org-with-gensyms (params)
|
||||
`(let ((,params ,result-params))
|
||||
(unless (member "none" ,params)
|
||||
|
|
@ -3093,7 +3091,6 @@ Emacs shutdown."))
|
|||
(not (member "table" ,params))))
|
||||
,scalar-form
|
||||
,@table-forms)))))
|
||||
(def-edebug-spec org-babel-result-cond (form form body))
|
||||
|
||||
(defun org-babel-temp-file (prefix &optional suffix)
|
||||
"Create a temporary file in the `org-babel-temporary-directory'.
|
||||
|
|
@ -3136,7 +3133,7 @@ of `org-babel-temporary-directory'."
|
|||
org-babel-temporary-directory
|
||||
"[directory not defined]"))))))
|
||||
|
||||
(add-hook 'kill-emacs-hook 'org-babel-remove-temporary-directory)
|
||||
(add-hook 'kill-emacs-hook #'org-babel-remove-temporary-directory)
|
||||
|
||||
(defun org-babel-one-header-arg-safe-p (pair safe-list)
|
||||
"Determine if the PAIR is a safe babel header arg according to SAFE-LIST.
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ represented in the file."
|
|||
"Open FILE into a temporary buffer execute BODY there like
|
||||
`progn', then kill the FILE buffer returning the result of
|
||||
evaluating BODY."
|
||||
(declare (indent 1))
|
||||
(declare (indent 1) (debug t))
|
||||
(let ((temp-path (make-symbol "temp-path"))
|
||||
(temp-result (make-symbol "temp-result"))
|
||||
(temp-file (make-symbol "temp-file"))
|
||||
|
|
@ -164,7 +164,6 @@ evaluating BODY."
|
|||
(setf ,temp-result (progn ,@body)))
|
||||
(unless ,visited-p (kill-buffer ,temp-file))
|
||||
,temp-result)))
|
||||
(def-edebug-spec org-babel-with-temp-filebuffer (form body))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-babel-tangle-file (file &optional target-file lang-re)
|
||||
|
|
|
|||
|
|
@ -2090,6 +2090,7 @@ Note that functions in this alist don't need to be quoted."
|
|||
If STRING is non-nil, the text property will be fetched from position 0
|
||||
in that string. If STRING is nil, it will be fetched from the beginning
|
||||
of the current line."
|
||||
(declare (debug t))
|
||||
(org-with-gensyms (marker)
|
||||
`(let ((,marker (get-text-property (if ,string 0 (point-at-bol))
|
||||
'org-hd-marker ,string)))
|
||||
|
|
@ -2097,7 +2098,6 @@ of the current line."
|
|||
(save-excursion
|
||||
(goto-char ,marker)
|
||||
,@body)))))
|
||||
(def-edebug-spec org-agenda-with-point-at-orig-entry (form body))
|
||||
|
||||
(defun org-add-agenda-custom-command (entry)
|
||||
"Replace or add a command in `org-agenda-custom-commands'.
|
||||
|
|
|
|||
|
|
@ -911,17 +911,17 @@ If CLOCK-SOUND is non-nil, it overrides `org-clock-sound'."
|
|||
|
||||
(defmacro org-with-clock-position (clock &rest forms)
|
||||
"Evaluate FORMS with CLOCK as the current active clock."
|
||||
(declare (indent 1) (debug t))
|
||||
`(with-current-buffer (marker-buffer (car ,clock))
|
||||
(org-with-wide-buffer
|
||||
(goto-char (car ,clock))
|
||||
(beginning-of-line)
|
||||
,@forms)))
|
||||
(def-edebug-spec org-with-clock-position (form body))
|
||||
(put 'org-with-clock-position 'lisp-indent-function 1)
|
||||
|
||||
(defmacro org-with-clock (clock &rest forms)
|
||||
"Evaluate FORMS with CLOCK as the current active clock.
|
||||
This macro also protects the current active clock from being altered."
|
||||
(declare (indent 1) (debug t))
|
||||
`(org-with-clock-position ,clock
|
||||
(let ((org-clock-start-time (cdr ,clock))
|
||||
(org-clock-total-time)
|
||||
|
|
@ -932,8 +932,6 @@ This macro also protects the current active clock from being altered."
|
|||
(org-back-to-heading t)
|
||||
(point-marker))))
|
||||
,@forms)))
|
||||
(def-edebug-spec org-with-clock (form body))
|
||||
(put 'org-with-clock 'lisp-indent-function 1)
|
||||
|
||||
(defsubst org-clock-clock-in (clock &optional resume start-time)
|
||||
"Clock in to the clock located by CLOCK.
|
||||
|
|
|
|||
|
|
@ -239,11 +239,11 @@ When completing for #+STARTUP, for example, this function returns
|
|||
(require 'ox)
|
||||
(pcomplete-here
|
||||
(and org-export-exclude-tags
|
||||
(list (mapconcat 'identity org-export-exclude-tags " ")))))
|
||||
(list (mapconcat #'identity org-export-exclude-tags " ")))))
|
||||
|
||||
(defun pcomplete/org-mode/file-option/filetags ()
|
||||
"Complete arguments for the #+FILETAGS file option."
|
||||
(pcomplete-here (and org-file-tags (mapconcat 'identity org-file-tags " "))))
|
||||
(pcomplete-here (and org-file-tags (mapconcat #'identity org-file-tags " "))))
|
||||
|
||||
(defun pcomplete/org-mode/file-option/language ()
|
||||
"Complete arguments for the #+LANGUAGE file option."
|
||||
|
|
@ -264,13 +264,13 @@ When completing for #+STARTUP, for example, this function returns
|
|||
(require 'ox)
|
||||
(pcomplete-here
|
||||
(and org-export-select-tags
|
||||
(list (mapconcat 'identity org-export-select-tags " ")))))
|
||||
(list (mapconcat #'identity org-export-select-tags " ")))))
|
||||
|
||||
(defun pcomplete/org-mode/file-option/startup ()
|
||||
"Complete arguments for the #+STARTUP file option."
|
||||
(while (pcomplete-here
|
||||
(let ((opts (pcomplete-uniquify-list
|
||||
(mapcar 'car org-startup-options))))
|
||||
(mapcar #'car org-startup-options))))
|
||||
;; Some options are mutually exclusive, and shouldn't be completed
|
||||
;; against if certain other options have already been seen.
|
||||
(dolist (arg pcomplete-args)
|
||||
|
|
@ -340,7 +340,8 @@ When completing for #+STARTUP, for example, this function returns
|
|||
"Complete against TeX-style HTML entity names."
|
||||
(require 'org-entities)
|
||||
(while (pcomplete-here
|
||||
(pcomplete-uniquify-list (remove nil (mapcar 'car-safe org-entities)))
|
||||
(pcomplete-uniquify-list
|
||||
(remove nil (mapcar #'car-safe org-entities)))
|
||||
(substring pcomplete-stub 1))))
|
||||
|
||||
(defun pcomplete/org-mode/todo ()
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@
|
|||
(while (pcomplete-here (completion-table-in-turn
|
||||
(pcmpl-gnu-make-rule-names)
|
||||
(pcomplete-entries))
|
||||
nil 'identity))))
|
||||
nil #'identity))))
|
||||
|
||||
(defun pcmpl-gnu-makefile-names ()
|
||||
"Return a list of possible makefile names."
|
||||
|
|
@ -336,7 +336,7 @@ Return the new list."
|
|||
(pcomplete-match-string 1 0)))))
|
||||
(unless saw-option
|
||||
(pcomplete-here
|
||||
(mapcar 'char-to-string
|
||||
(mapcar #'char-to-string
|
||||
(string-to-list
|
||||
"01234567ABCFGIKLMNOPRSTUVWXZbcdfghiklmoprstuvwxz")))
|
||||
(if (pcomplete-match "[xt]" 'first 1)
|
||||
|
|
@ -355,7 +355,7 @@ Return the new list."
|
|||
(pcmpl-gnu-with-file-buffer
|
||||
file (mapcar #'tar-header-name tar-parse-info)))))
|
||||
(pcomplete-entries))
|
||||
nil 'identity))))
|
||||
nil #'identity))))
|
||||
|
||||
;;;###autoload
|
||||
|
||||
|
|
@ -391,7 +391,7 @@ Return the new list."
|
|||
(string= prec "-execdir"))
|
||||
(while (pcomplete-here* (funcall pcomplete-command-completion-function)
|
||||
(pcomplete-arg 'last) t))))
|
||||
(while (pcomplete-here (pcomplete-dirs) nil 'identity))))
|
||||
(while (pcomplete-here (pcomplete-dirs) nil #'identity))))
|
||||
|
||||
;;;###autoload
|
||||
(defalias 'pcomplete/gdb 'pcomplete/xargs)
|
||||
|
|
|
|||
|
|
@ -50,20 +50,20 @@
|
|||
(while (pcomplete-here
|
||||
(if (file-directory-p "/proc")
|
||||
(directory-files "/proc" nil "\\`[0-9]+\\'"))
|
||||
nil 'identity)))
|
||||
nil #'identity)))
|
||||
|
||||
;;;###autoload
|
||||
(defun pcomplete/umount ()
|
||||
"Completion for GNU/Linux `umount'."
|
||||
(pcomplete-opt "hVafrnvt(pcmpl-linux-fs-types)")
|
||||
(while (pcomplete-here (pcmpl-linux-mounted-directories)
|
||||
nil 'identity)))
|
||||
nil #'identity)))
|
||||
|
||||
;;;###autoload
|
||||
(defun pcomplete/mount ()
|
||||
"Completion for GNU/Linux `mount'."
|
||||
(pcomplete-opt "hVanfFrsvwt(pcmpl-linux-fs-types)o?L?U?")
|
||||
(while (pcomplete-here (pcomplete-entries) nil 'identity)))
|
||||
(while (pcomplete-here (pcomplete-entries) nil #'identity)))
|
||||
|
||||
(defconst pcmpl-linux-fs-modules-path-format "/lib/modules/%s/kernel/fs/")
|
||||
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ being via `pcmpl-ssh-known-hosts-file'."
|
|||
(let ((pcomplete-help "(fileutils)rm invocation"))
|
||||
(pcomplete-opt "dfirRv")
|
||||
(while (pcomplete-here (pcomplete-all-entries) nil
|
||||
'expand-file-name))))
|
||||
#'expand-file-name))))
|
||||
|
||||
;;;###autoload
|
||||
(defun pcomplete/xargs ()
|
||||
|
|
|
|||
|
|
@ -301,7 +301,8 @@ long options."
|
|||
"nst" "ntd" "nto" "nvf" "obi" "obs" "ofp" "osh" "ovf" "par"
|
||||
"pch" "pck" "pia" "pin" "pow" "prc" "pre" "pro" "rch" "ret"
|
||||
"rng" "rpt" "rvl" "sig" "spa" "stl" "stu" "stv" "sus" "tai"
|
||||
"tes" "thr" "ucp" "use" "voi" "zdi") (match-string 2 cur)))
|
||||
"tes" "thr" "ucp" "use" "voi" "zdi")
|
||||
(match-string 2 cur)))
|
||||
((string-match "\\`-[LIn]\\([^;]+;\\)*\\([^;]*\\)\\'" cur)
|
||||
(pcomplete-here (pcomplete-dirs) (match-string 2 cur)))
|
||||
((string-match "\\`-[Ee]\\(.*\\)\\'" cur)
|
||||
|
|
|
|||
|
|
@ -463,7 +463,7 @@ Shell buffers. It implements `shell-completion-execonly' for
|
|||
(if (pcomplete-match "/")
|
||||
(pcomplete-here (pcomplete-entries nil
|
||||
(if shell-completion-execonly
|
||||
'file-executable-p)))
|
||||
#'file-executable-p)))
|
||||
(pcomplete-here
|
||||
(nth 2 (shell--command-completion-data)))))
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; speedbar --- quick access to files and tags in a frame
|
||||
;;; speedbar --- quick access to files and tags in a frame -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 1996-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -1640,7 +1640,7 @@ variable `speedbar-obj-alist'."
|
|||
|
||||
(defmacro speedbar-with-writable (&rest forms)
|
||||
"Allow the buffer to be writable and evaluate FORMS."
|
||||
(declare (indent 0))
|
||||
(declare (indent 0) (debug t))
|
||||
`(let ((inhibit-read-only t))
|
||||
,@forms))
|
||||
|
||||
|
|
@ -4001,11 +4001,6 @@ TEXT is the buffer's name, TOKEN and INDENT are unused."
|
|||
"Speedbar face for separator labels in a display."
|
||||
:group 'speedbar-faces)
|
||||
|
||||
;; some edebug hooks
|
||||
(add-hook 'edebug-setup-hook
|
||||
(lambda ()
|
||||
(def-edebug-spec speedbar-with-writable def-body)))
|
||||
|
||||
;; Fix a font lock problem for some versions of Emacs
|
||||
(and (boundp 'font-lock-global-modes)
|
||||
font-lock-global-modes
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ Both SYMBOL and SPEC are unevaluated. The SPEC can be:
|
|||
a symbol (naming a function with an Edebug specification); or a list.
|
||||
The elements of the list describe the argument types; see
|
||||
Info node `(elisp)Specification List' for details."
|
||||
(declare (indent 1))
|
||||
`(put (quote ,symbol) 'edebug-form-spec (quote ,spec)))
|
||||
|
||||
(defmacro lambda (&rest cdr)
|
||||
|
|
|
|||
|
|
@ -105,10 +105,6 @@
|
|||
;; Common Lisp stuff
|
||||
(require 'cl-lib)
|
||||
|
||||
;; Correct wrong declaration.
|
||||
(def-edebug-spec push
|
||||
(&or [form symbolp] [form gv-place]))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Support for `testcover'
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; pcvs-parse.el --- the CVS output parser
|
||||
;;; pcvs-parse.el --- the CVS output parser -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -73,12 +73,12 @@ by `$'."
|
|||
'("status" "add" "commit" "update" "remove" "checkout" "ci")
|
||||
"List of CVS commands whose output is understood by the parser.")
|
||||
|
||||
(defun cvs-parse-buffer (parse-spec dont-change-disc &optional subdir)
|
||||
(defun cvs-parse-buffer (parse-spec dcd &optional subdir)
|
||||
"Parse current buffer according to PARSE-SPEC.
|
||||
PARSE-SPEC is a function of no argument advancing the point and returning
|
||||
either a fileinfo or t (if the matched text should be ignored) or
|
||||
nil if it didn't match anything.
|
||||
DONT-CHANGE-DISC just indicates whether the command was changing the disc
|
||||
DCD just indicates whether the command was changing the disc
|
||||
or not (useful to tell the difference between `cvs-examine' and `cvs-update'
|
||||
output.
|
||||
The path names should be interpreted as relative to SUBDIR (defaults
|
||||
|
|
@ -86,6 +86,7 @@ The path names should be interpreted as relative to SUBDIR (defaults
|
|||
Return a list of collected entries, or t if an error occurred."
|
||||
(goto-char (point-min))
|
||||
(let ((fileinfos ())
|
||||
(dont-change-disc dcd)
|
||||
(cvs-current-dir "")
|
||||
(case-fold-search nil)
|
||||
(cvs-current-subdir (or subdir "")))
|
||||
|
|
@ -134,12 +135,12 @@ Match RE and if successful, execute MATCHES."
|
|||
|
||||
(defmacro cvs-or (&rest alts)
|
||||
"Try each one of the ALTS alternatives until one matches."
|
||||
(declare (debug t))
|
||||
`(let ((-cvs-parse-point (point)))
|
||||
,(cons 'or
|
||||
(mapcar (lambda (es)
|
||||
`(or ,es (ignore (goto-char -cvs-parse-point))))
|
||||
alts))))
|
||||
(def-edebug-spec cvs-or t)
|
||||
|
||||
;; This is how parser tables should be executed
|
||||
(defun cvs-parse-run-table (parse-spec)
|
||||
|
|
@ -190,9 +191,9 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'."
|
|||
file (cvs-parse-msg) :subtype subtype keys))))
|
||||
|
||||
;;;; CVS Process Parser Tables:
|
||||
;;;;
|
||||
;;;; The table for status and update could actually be merged since they
|
||||
;;;; don't conflict. But they don't overlap much either.
|
||||
;;
|
||||
;; The table for status and update could actually be merged since they
|
||||
;; don't conflict. But they don't overlap much either.
|
||||
|
||||
(defun cvs-parse-table ()
|
||||
"Table of message objects for `cvs-parse-process'."
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue