1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00
Commit graph

19 commits

Author SHA1 Message Date
Eshel Yaron
c412bd83ff
; elisp-scope.el: Fix 'custom-declare-face' analyzer. 2025-10-03 19:11:26 +02:00
Eshel Yaron
320df8ad35
; elisp-scope.el: Improve 'oclosure-define' 'slots' analysis 2025-10-03 19:10:51 +02:00
Eshel Yaron
bde38ef480
; Rename 'elisp-scope-output-type' to 'elisp-scope-output-spec'.
* lisp/emacs-lisp/elisp-scope.el: Change all references to
this notion of "type" to say "spec" instead.
2025-10-03 18:24:35 +02:00
Eshel Yaron
22327f58bb
; elisp-scope.el: Improve 'defclass' slots analysis.
Extend the "type" system (to be renamed to "spec" in
subsequent commit) of elisp-scope.el with a plist spec.
This allows us to define a spec for the 'slots' argument of
'eieio-defclass-internal'.  Also add a 'cl-type' spec,
describing the type specifications used by 'cl-typep', and
replace the 'equal' spec with a more general 'member' spec,
like we have in 'cl-typep'.
2025-10-03 18:17:34 +02:00
Eshel Yaron
5339cf0010
; Rename 'elisp-scope--output-type' to make it public
* lisp/emacs-lisp/elisp-scope.el (elisp-scope--output-type):
Add docstring and rename to...
(elisp-scope-output-type): this.  Update all references.
* lisp/emacs-lisp/elisp-scope.el (elisp-scope-analyze-form):
Add example 'elisp-scope-analyzer' to docstring.
2025-10-02 16:44:32 +02:00
Eshel Yaron
ceeeb390f0
; (elisp-scope-1): Analyze macros with (debug t) as progn
Take an Edebug spec of t as an indication that all of the
macro's arguments are evaluated, and analyze them as such.
Only do so as a fallback for macros that we cannot expand,
because expanding can lead to more accurate analysis,
e.g. with regards to the output type of the form.
2025-10-02 15:22:51 +02:00
Eshel Yaron
cfc58025cd
; Expand ELisp semantic highlighting documentation
* lisp/emacs-lisp/elisp-scope.el
(elisp-scope-get-symbol-role-property)
(elisp-scope-set-symbol-role-property)
(elisp-scope-safe-macro-p, elisp-scope-report-s)
(elisp-scope-1, elisp-scope-n): Add docstring.
(elisp-scope-analyze-form):
* lisp/progmodes/elisp-mode.el (elisp-fontify-semantically):
Expand docstring.
* etc/NEWS: Refer to 'elisp-fontify-semantically' for
documentation.
2025-10-02 14:41:45 +02:00
Eshel Yaron
e82620a360
; elisp-scope.el: Rename 'variable' role to 'free-variable'. 2025-10-01 13:18:55 +02:00
Eshel Yaron
737d99e4ed
; Fix recent small mistake in recent refactor. 2025-10-01 12:58:31 +02:00
Eshel Yaron
c2d01dda42
; elisp-scope.el: Simplify 'eval' analyzer. 2025-10-01 08:56:55 +02:00
Eshel Yaron
3cff47ec75
; elisp-scope.el: Rename 'declaration' role.
* lisp/emacs-lisp/elisp-scope.el (declaration): Rename to
'function-property-declaration'.
(elisp-scope-lambda):
* lisp/progmodes/elisp-mode.el
(elisp-function-property-declaration): Update accordingly.
2025-10-01 08:42:40 +02:00
Eshel Yaron
a7c1b126fa
; elisp-scope.el: Remove unused 'undefined-macro' role. 2025-10-01 08:37:44 +02:00
Eshel Yaron
7217350e85
; elisp-scope.el: Fix 'define-completion-category' handler. 2025-10-01 08:34:58 +02:00
Eshel Yaron
23ba18037b
; (elisp-scope-define-symbol-role): Add docstring. 2025-10-01 08:31:20 +02:00
Eshel Yaron
2447c1486e
; Call it "symbol role" instead of "symbol type".
Change the terminology used in elisp-scope.el to call the
symbols we use to categorizes the use of (other) symbols
"symbol roles" instead of "symbol types".

* lisp/emacs-lisp/elisp-scope.el:
* lisp/progmodes/elisp-mode.el: Change all occurrences of
"symbol type" say "role" instead.
2025-10-01 08:09:06 +02:00
Eshel Yaron
8c2f783591
(elisp-scope-get-symbol-type-property): Revise inheritance handling. 2025-10-01 07:48:58 +02:00
Eshel Yaron
409abfe96e
; (elisp-scope-define-symbol-type): Cease autoloading it. 2025-09-30 19:05:21 +02:00
Eshel Yaron
3ebd0efd09
; elisp-scope.el: Update multiple function handlers.
Update all remaining function handlers to use
'elisp-scope-define-func-analyzer' instead of
'elisp-scope-define-function-analyzer'.  The difference is
that the former handles all arguments explicitly, while the
latter analyzes all arguments as evaluated forms
automatically.  By handling the arguments explicitly, we get
a chance to specify the expected type of different arguments.
Lastly, since 'elisp-scope-define-function-analyzer' is now
unused, rename 'elisp-scope-define-func-analyzer' to
'elisp-scope-define-function-analyzer'.
2025-09-30 18:58:23 +02:00
Eshel Yaron
c6ee775cb2
; Rename scope.el to elisp-scope.el
* scope.el: Rename it to...
* elisp-scope: New file.
* lisp/progmodes/elisp-mode.el: Update accordingly.
2025-09-29 17:02:25 +02:00