Merge remote-tracking branch 'savannah/master' into native-comp

This commit is contained in:
Andrea Corallo
2021-03-19 15:28:00 +01:00
251 changed files with 3552 additions and 2998 deletions

View File

@@ -72,9 +72,12 @@ the copyright for your contributions. (To see how many lines were
non-trivially changed, count only added and modified lines in the
patched code. Consider an added or changed line non-trivial if it
includes at least one identifier, string, or substantial comment.)
Ask on emacs-devel@gnu.org, and we will send you the necessary form
together with the instructions to fill and email it, in order to start
this legal paperwork.
In most cases, to start the assignment process you should download
https://git.savannah.gnu.org/cgit/gnulib.git/plain/doc/Copyright/request-assign.future
and return the completed information to the address at the top.
(There are other assignment options, but they are much less commonly used.)
If you have questions about the assignment process, you can ask the
address listed on the form, and/or emacs-devel@gnu.org.
** Issue tracker (a.k.a. "bug tracker")

View File

@@ -1,3 +1,379 @@
2021-03-25 Eli Zaretskii <eliz@gnu.org>
* Version 27.2 released.
2021-03-18 Eli Zaretskii <eliz@gnu.org>
* etc/HISTORY: Update for Emacs 27.2.
* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp: Set version to 27.2
2021-03-18 Lars Ingebrigtsen <larsi@gnus.org>
Document that `buffer-string' retains text properties
* doc/lispref/text.texi (Buffer Contents): Mention text properties
in the `buffer-string' documentation.
* src/editfns.c (Fbuffer_string): Mention text properties in the
doc string (bug#47220).
(cherry picked from commit 60af754170f22f5d25510af069ed0ebfec95f992)
2021-03-18 Fabrice Bauzac <noon@mykolab.com>
Remove duplicate @table item from ELisp manual
* doc/lispref/objects.texi (Special Read Syntax): Remove duplicate
item "#@N" from the table of Special Read Syntax. (Bug#47200)
2021-03-18 Daniel Martín <mardani29@yahoo.es>
Fix reference to 'diff-font-lock-syntax' in diff-mode documentation
* doc/emacs/files.texi (Diff Mode): Add the omitted name of the
variable. (Bug#47129)
2021-03-18 Alan Third <alan@idiocy.org>
Fix buffer overflow in xbm_scan (bug#47094)
* src/image.c (xbm_scan): Ensure reading a string doesn't overflow the
buffer.
(cherry picked from commit ebc3b25409dd614c1814a0643960452683e37aa3)
2021-03-18 Matt Armstrong <matt@rfc20.org>
Fix typos and omissions for (elisp)Button Buffer Commands
* doc/lispref/display.texi (Button Buffer Commands): Minor
typo and omission fixes `backward-button' and
`forward-button'. (Bug#47051)
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Teach Rmail about NBSP in "Re:"
* lisp/mail/rmail.el (rmail-simplified-subject)
(rmail-reply-regexp): Allow NBSP in "RE:" prefixes.
2021-03-18 Stefan Monnier <monnier@iro.umontreal.ca>
Revert "* lisp/mouse.el: Fix mouse-1-clock-follows-mouse = double"
This reverts commit 02a5cfce471613f671722b35536d2a78f17b0429.
That commit breaks because of a missing patch to `parse_modifiers_uncached`
in `src/keyboard.c`. IOW, too risky for `emacs-27`.
Don't merge to `master`.
2021-03-18 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/mouse.el: Fix mouse-1-clock-follows-mouse = double
This functionality was broken by commit 3d5e31eceb9dc1fb62b2b2,
the problem being that we end up considering as distinct the events
`down-double-mouse-1` and `double-down-mouse-1`.
Reported by Eyal Soha <eyalsoha@gmail.com>
(mouse--click-1-maybe-follows-link): Make sure the last element of
the list passed to `event-convert-list` is indeed a "basic" event.
2021-03-18 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/gv.el (edebug-after): Don't run the getter in the setter
This fixes bug#46573 which was introduced by commit
d79cf638f278e50c22feb53d6ba556f5ce9d7853.
The new code is a middle ground, which makes sure the instrumentation
point is used (so the coverage checker won't have ghost unreachable
instrumentation points) yet without artificially running the getter
when we only need to run the setter.
2021-03-18 Masahiro Nakamura <tsuucat@icloud.com>
* doc/misc/tramp.texi (Remote shell setup): Fix reference. (Do not merge)
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Fix initialization of 'while-no-input-ignore-events'
* src/keyboard.c (syms_of_keyboard_for_pdumper): Don't reset
'while-no-input-ignore-events' after loading the dump file.
(Bug#46940)
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Update documentation of reading passwords
* doc/emacs/mini.texi (Passwords): Update to match the modified
implementation. (Bug#46902) Add indexing.
2021-03-18 Lars Ingebrigtsen <larsi@gnus.org>
Improve the 'dired-do-kill-lines' doc string
* lisp/dired-aux.el (dired-do-kill-lines): Document the FMT
parameter (bug#46867).
(cherry picked from commit b9cb3b904008a80c69ab433f4851377967b100db)
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Avoid crashes in Mew due to corrupted tool-bar label
* src/gtkutil.c (update_frame_tool_bar): Don't keep around a
'char *' pointer to a Lisp string's contents when calling Lisp,
because that could relocate string data; keep the Lisp string
itself instead. This avoids crashes in Mew. (Bug#46791)
2021-03-18 Stefan Kangas <stefan@marxist.se>
* lisp/tooltip.el (tooltip): Doc fix for GTK.
2021-03-18 Stefan Kangas <stefan@marxist.se>
* lisp/help.el (help-for-help-internal): Doc fix; use imperative.
2021-03-18 Eli Zaretskii <eliz@gnu.org>
More accurate documentation of the "r" interactive spec
* doc/lispref/commands.texi (Interactive Codes): Describe the
effect of 'mark-even-if-inactive'.
2021-03-18 Stefan Kangas <stefan@marxist.se>
Mention the GNU Kind Communications Guidelines in the FAQ
* doc/misc/efaq.texi (Guidelines for newsgroup postings): Mention
the GNU Kind Communications Guidelines.
2021-03-18 Ryan Prior <rprior@protonmail.com> (tiny change)
Allow newlines in password prompts again in comint
* lisp/comint.el (comint-password-prompt-regexp): Match all
whitespace (including newline) at the end of the passphrase, not
just space and \t (bug#46609).
(comint-watch-for-password-prompt): Remove trailing newlines from
the prompt (bug#46609).
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Avoid point movement when visiting image files
* lisp/image-mode.el (image-toggle-display-image): Preserve point
around the call to exif-parse-buffer, to prevent it from moving
into the image data. (Bug#46552)
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violation in callproc.c
* src/callproc.c (call_process): Avoid assertion violation when
DESTINATION is a cons cell '(:file . "FOO")'. (Bug#46426)
2021-03-18 Lars Ingebrigtsen <larsi@gnus.org>
Clarify "changes" in CONTRIBUTE
* CONTRIBUTE: Clarify that "changes" doesn't include removing code
(bug#44834).
(cherry picked from commit 33c9556c9db9b8c62dcd80dd3cc665e669ea66d4)
2021-03-18 Lars Ingebrigtsen <larsi@gnus.org>
Clarify when activate-mark-hook is run
* doc/lispref/markers.texi (The Mark):
* lisp/simple.el (activate-mark-hook): Clarify when the hook is
run (bug#23444).
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Fix language-environment and font selection on MS-Windows
These changes improve setting the language-environment and font
selection when MS-Windows returns useless "ZZZ" as the "language
name", which then disrupts all the setup of the locale-dependent
stuff, and in particular font selection.
* lisp/w32-fns.el (w32-charset-info-alist): Add an element for
"iso8859-5", in case LANG is set to something unusable, like
"ZZZ". This allows fonts capable of displaying Cyrillic
characters to be used even when language preferences are screwed.
* src/w32.c (init_environment): If GetLocaleInfo returns "ZZZ" as
the "language name" for LOCALE_USER_DEFAULT, try again with locale
ID based on what GetUserDefaultUILanguage returns. (Bug#39286)
2021-03-18 Petteri Hintsanen <petterih@iki.fi>
Fix example in Sequence Functions node in the manual
* doc/lispref/sequences.texi (Sequence Functions): Fix the result
from the example.
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Improve doc string of 'text-scale-adjust'
* lisp/face-remap.el (text-scale-adjust): Clarify that "default
face height" refers to the 'default' face. (Bug#25168)
2021-03-18 Lars Ingebrigtsen <larsi@gnus.org>
Clarify the indent-rigidly doc string
* lisp/indent.el (indent-rigidly): Clarify exiting the transient
mode (bug#46296).
2021-03-18 Martin Rudalics <rudalics@gmx.at>
Fix two small tab bar issues
* lisp/cus-start.el (frame-inhibit-implied-resize): Update version tag.
* lisp/frame.el (frame-inner-height): Do not count in tab bar.
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Fix last change in syntax.texi
* doc/lispref/syntax.texi (Syntax Properties): Fix wording in last
change. (Bug#46274)
2021-03-18 Lars Ingebrigtsen <larsi@gnus.org>
Correct the lispref manual about flushing ppss info
* doc/lispref/syntax.texi (Syntax Properties): Correct the
information about flushing the state by copying the text from the
doc string (bug#46274).
(cherry picked from commit ff701ce2b261acce1dfcd1fe137268d87d5eab35)
2021-03-18 Lars Ingebrigtsen <larsi@gnus.org>
Clarify how transient indentation modes are exited in the manual
* doc/emacs/indent.texi (Indentation Commands): Clarify that the
other keys don't just exit the transient mode, but are also
handled as normally (bug#46296).
2021-03-18 Dmitry Gutov <dgutov@yandex.ru>
Fix the previous change
* lisp/progmodes/project.el (project-find-regexp):
Fix the previous change (project-root is not defined in this version).
(project-or-external-find-regexp): Same.
2021-03-18 Dmitry Gutov <dgutov@yandex.ru>
Bind default-directory to the project root
* lisp/progmodes/project.el (project-find-regexp):
Bind default-directory to the project root, to save this value
in the resulting buffer (esp. if the project selector was used,
(https://lists.gnu.org/archive/html/emacs-devel/2021-02/msg00140.html).
(project-or-external-find-regexp): Same.
(cherry picked from commit c07ebfcbe084e8219d8c2588f23f77ba4ef39087)
2021-03-18 Dmitry Gutov <dgutov@yandex.ru>
Make sure default-directory relates to the originating buffer
* lisp/progmodes/xref.el (xref--show-xref-buffer):
Pick up default-directory value from the caller
(https://lists.gnu.org/archive/html/emacs-devel/2021-01/msg00551.html).
(xref-show-definitions-buffer-at-bottom): Same.
(cherry picked from commit 6e73e07a6f5cbdd1c5ae6e0f3fbd0f8f56813f1a)
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Initialize signal descriptions after pdumping
* src/sysdep.c (init_signals) [!HAVE_DECL_SYS_SIGLIST]: Reinit
sys_siglist also after pdumping. (Bug#46284)
2021-03-18 Lars Ingebrigtsen <larsi@gnus.org>
Clarify the "Sentinels" node in the lispref manual
* doc/lispref/processes.texi (Sentinels): Mention "run" and that
the strings can be anything (bug#30461).
(cherry picked from commit 859a4cb6b22f75a3456e29d08fcfe9b8940fbe8b)
2021-03-18 Alexandre Duret-Lutz <adl@lrde.epita.fr> (tiny change)
Fix problem with non-ASCII characters in nnmaildir
* lisp/gnus/nnmaildir.el (nnmaildir-request-article): Enable
multipart 8bit-content-transfer-encoded files to be displayed
correctly by reading as `raw-text' instead of having Emacs
(incorrectly) decode the files (bug#44307).
2021-03-18 Eli Zaretskii <eliz@gnu.org>
* lisp/window.el (recenter-top-bottom): Clarify doc string.
2021-03-18 Thomas Fitzsimmons <fitzsim@fitzsim.org>
url-http.el: Special-case NTLM authentication
* lisp/url/url-http.el (url-http-handle-authentication): Do not
signal an error on NTLM authorization strings. (Bug#43566)
2021-03-18 Juri Linkov <juri@linkov.net>
* lisp/isearch.el (isearch-lazy-highlight): Fix defcustom type (bug#46208)
2021-03-18 Stefan Kangas <stefan@marxist.se>
Sync latest SKK-JISYO.L
* leim/SKK-DIC/SKK-JISYO.L: Sync to current upstream version.
2021-03-18 Alan Third <alan@idiocy.org>
Fix build failure on macOS 10.7 (bug#46036)
* src/nsfns.m (ns_set_represented_filename): Define the NSNumber in a
more compatible manner.
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Improve documentation of auto-resize-tool/tab-bars
* src/xdisp.c (syms_of_xdisp) <auto-resize-tool-bars>
<auto-resize-tab-bars>: Doc fix. (Bug#46178)
2021-03-18 Dmitry Gutov <dgutov@yandex.ru>
(xref-revert-buffer): Also 'erase-buffer' when handling a user-error
* lisp/progmodes/xref.el (xref-revert-buffer):
Also 'erase-buffer' when handling a user-error (bug#46042).
(cherry picked from commit e86b30d6fd04070b86560774ec82392dbe24ca1e)
2021-03-18 Eli Zaretskii <eliz@gnu.org>
Update files for 27.1.91 pretest
* ChangeLog.3:
* etc/AUTHORS
* lisp/ldefs-boot.el: Update.
2021-03-18 Eli Zaretskii <eliz@gnu.org>
2021-02-03 Eli Zaretskii <eliz@gnu.org>
Bump Emacs version to 27.1.91
@@ -144446,6 +144822,7 @@
This file records repository revisions from
commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
2021-03-18bd67a4f40a733cb139ace3af4616bc2702282 (inclusive).
2021-02-03d9244f7cbef9f91e697ad5fc0ce49ec97 (inclusive).
commit 1ca4da054be7eb340c511d817f3ec89c8b819db7 (inclusive).
See ChangeLog.2 for earlier changes.

View File

@@ -33,6 +33,11 @@ General steps (for each step, check for possible errors):
or some form of "git clean -x". It's probably simpler and safer to
make a new working directory exclusively for the release branch.
If the working directory has subdirectories created when making
previous releases or pretests, remove those subdirectories, as the
command which updates the ChangeLog file might attempt to recurse
there and scan any ChangeLog.* files there.
Make sure the tree is built, or at least configured. That's
because some of the commands below run Make, so they need
Makefiles to be present.
@@ -68,20 +73,23 @@ General steps (for each step, check for possible errors):
3. Set the version number (M-x load-file RET admin/admin.el RET, then
M-x set-version RET). For a pretest, start at version .90. After
.99, use .990 (so that it sorts).
.99, use .990 (so that it sorts). Commit the resulting changes
as one, with nothing else included, and using a log message
of the format "Bump Emacs version to ...", so that the commit can
be skipped when merging branches (see admin/gitmerge.el).
The final pretest should be a release candidate.
Before a release candidate is made, the tasks listed in
admin/release-process must be completed.
Set the version number to that of the actual release. Pick a date
about a week from now when you intend to make the release. Use M-x
add-release-logs to add entries to etc/HISTORY and the ChangeLog
file. It's best not to commit these files until the release is
actually made. Merge the entries from (unversioned) ChangeLog
into the top of the current versioned ChangeLog.N and commit that
along with etc/HISTORY. Then you can tag that commit as the
release.
Set the version number to that of the actual release (commit in
one, as described above). Pick a date about a week from now when
you intend to make the release. Use M-x add-release-logs to add
entries to etc/HISTORY and the ChangeLog file. It's best not to
commit these files until the release is actually made. Merge the
entries from (unversioned) ChangeLog into the top of the current
versioned ChangeLog.N and commit that along with etc/HISTORY.
Then you can tag that commit as the release.
Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the
following week, you can simply rename the file and use it for the

View File

@@ -4008,6 +4008,11 @@ case $with_json,$HAVE_JSON in
WITH_IFAVAILABLE="$WITH_IFAVAILABLE --with-json=ifavailable";;
esac
if test "X${MISSING}" != X; then
# If we have a missing library, and we don't have pkg-config installed,
# the missing pkg-config may be the reason. Give the user a hint.
if test "X${PKG_CONFIG}" = X; then
AC_MSG_WARN([Unable to locate a usable pkg-config])
fi
AC_MSG_ERROR([The following required libraries were not found:
$MISSING
Maybe some development libraries/packages are missing?

View File

@@ -1670,8 +1670,9 @@ modify the original (``old'') source files rather than the patched
(``new'') source files.
@vindex diff-font-lock-syntax
If non-@code{nil}, fragments of source in hunks are highlighted
according to the appropriate major mode.
If @code{diff-font-lock-syntax} is non-@code{nil}, fragments of
source in hunks are highlighted according to the appropriate major
mode.
@node Copying and Naming
@section Copying, Naming and Renaming Files

View File

@@ -800,6 +800,7 @@ can re-execute a command by calling @code{eval} with the
@node Passwords
@section Entering passwords
@cindex entering passwords
Sometimes, you may need to enter a password into Emacs. For instance,
when you tell Emacs to visit a file on another machine via a network
@@ -810,7 +811,7 @@ access to the machine (@pxref{Remote Files}).
displays a prompt in the echo area (such as @samp{Password: }); after
you type the required password, press @key{RET} to submit it. To
prevent others from seeing your password, every character you type is
displayed as a dot (@samp{.}) instead of its usual form.
displayed as an asterisk (@samp{*}) instead of its usual form.
Most of the features and commands associated with the minibuffer
@emph{cannot} be used when entering a password. There is no history

View File

@@ -1041,7 +1041,8 @@ functions written in Lisp, it cannot profile Emacs primitives.
@cindex @file{benchmark.el}
@cindex benchmarking
You can measure the time it takes to evaluate individual Emacs Lisp
forms using the @file{benchmark} library. See the macros
forms using the @file{benchmark} library. See the function
@code{benchmark-call} as well as the macros
@code{benchmark-run}, @code{benchmark-run-compiled} and
@code{benchmark-progn} in @file{benchmark.el}. You can also use the
@code{benchmark} command for timing forms interactively.

View File

@@ -7056,11 +7056,11 @@ end of the buffer continues from the other end. If
@var{display-message} is non-@code{nil}, the button's help-echo string
is displayed. Any button with a non-@code{nil} @code{skip} property
is skipped over. Returns the button found, and signals an error if no
buttons can be found. If @var{no-error} in non-@code{nil}, return nil
buttons can be found. If @var{no-error} is non-@code{nil}, return nil
instead of signaling the error.
@end deffn
@deffn Command backward-button n &optional wrap display-message
@deffn Command backward-button n &optional wrap display-message no-error
Move to the @var{n}th previous button, or @var{n}th next button if
@var{n} is negative. If @var{n} is zero, move to the start of any
button at point. If @var{wrap} is non-@code{nil}, moving past either
@@ -7068,7 +7068,7 @@ end of the buffer continues from the other end. If
@var{display-message} is non-@code{nil}, the button's help-echo string
is displayed. Any button with a non-@code{nil} @code{skip} property
is skipped over. Returns the button found, and signals an error if no
buttons can be found. If @var{no-error} in non-@code{nil}, return nil
buttons can be found. If @var{no-error} is non-@code{nil}, return nil
instead of signaling the error.
@end deffn

View File

@@ -1120,9 +1120,9 @@ The optional fourth argument @var{pixelwise} non-@code{nil} means that
refuse to truly honor the request if it does not increase/decrease the
frame height to a multiple of its character height.
When used interactively, this command will set the height of the
currently selected frame to the number of lines specified by the
numeric prefix.
When used interactively, this command will ask the user for the number
of lines to set the height of the currently selected frame. You can
also provide this value with a numeric prefix.
@end defun
@defun set-frame-width frame width &optional pretend pixelwise
@@ -1136,9 +1136,9 @@ The optional fourth argument @var{pixelwise} non-@code{nil} means that
refuse to fully honor the request if it does not increase/decrease the
frame width to a multiple of its character width.
When used interactively, this command will set the width of the
currently selected frame to the number of columns specified by the
numeric prefix.
When used interactively, this command will ask the user for the number
of columns to set the width of the currently selected frame. You can
also provide this value with a numeric prefix.
@end defun
None of these three functions will make a frame smaller than needed to

View File

@@ -3247,8 +3247,7 @@ set by means of @var{other-vars} in @code{font-lock-defaults}
@defvar font-lock-mark-block-function
If this variable is non-@code{nil}, it should be a function that is
called with no arguments, to choose an enclosing range of text for
refontification for the command @kbd{M-o M-o}
(@code{font-lock-fontify-block}).
refontification for the command @kbd{M-x font-lock-fontify-block}.
The function should report its choice by placing the region around it.
A good choice is a range of text large enough to give proper results,

View File

@@ -148,9 +148,6 @@ starting list count:
object, so when reading back the object, they will be the same object
instead of copies (@pxref{Circular Objects}).
@item #@@N
Skip the next @samp{N} characters (@pxref{Comments}).
@item #xN
@samp{N} represented as a hexadecimal number (@samp{#x2a}).

View File

@@ -222,7 +222,9 @@ properties, just the characters themselves. @xref{Text Properties}.
@defun buffer-string
This function returns the contents of the entire accessible portion of
the current buffer, as a string.
the current buffer, as a string. If the text being copied has any
text properties, these are copied into the string along with the
characters they belong to.
@end defun
If you need to make sure the resulting string, when copied to a

View File

@@ -10,10 +10,7 @@
#+macro: export-date (eval (format-time-string "%F %R %z" (current-time)))
#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
#+macro: space @@texinfo:@: @@
# The "kbd" macro turns KBD into @kbd{KBD}. Additionally, it
# encloses case-sensitive special keys (SPC, RET...) within @key{...}.
# I got this from the Org source code.
#+macro: kbd (eval (let ((case-fold-search nil) (regexp (regexp-opt '("SPC" "RET" "LFD" "TAB" "BS" "ESC" "DELETE" "SHIFT" "Ctrl" "Meta" "Alt" "Cmd" "Super" "UP" "LEFT" "RIGHT" "DOWN") 'words))) (format "@@texinfo:@kbd{@@%s@@texinfo:}@@" (replace-regexp-in-string regexp "@@texinfo:@key{@@\\&@@texinfo:}@@" $1 t))))
#+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
#+texinfo_filename: modus-themes.info
#+texinfo_dir_category: Emacs misc features

View File

@@ -2653,7 +2653,7 @@ The method @option{sshfs} declares the mount arguments in the variable
a list of list of strings, and can be overwritten by the connection
property @t{"mount-args"}, @xref{Predefined connection information}.
Additionally. it declares also the arguments for running remote
Additionally, it declares also the arguments for running remote
processes, using the @command{ssh} command. These don't need to be
changed.

View File

@@ -222,6 +222,8 @@ GNU Emacs 26.3 (2019-08-28) emacs-26.3
GNU Emacs 27.1 (2020-08-10) emacs-27.1
GNU Emacs 27.2 (2021-03-25) emacs-27.2
----------------------------------------------------------------------
This file is part of GNU Emacs.

View File

@@ -98,6 +98,10 @@ useful on systems such as FreeBSD which ships only with "etc/termcap".
* Changes in Emacs 28.1
+++
** New command 'font-lock-update', bound to 'C-x x f'.
This command updates the syntax highlighting in this buffer.
** The new NonGNU ELPA archive is enabled by default alongside GNU ELPA.
+++
@@ -258,6 +262,10 @@ commands. The new keystrokes are 'C-x x g' ('revert-buffer'),
('clone-buffer'), 'C-x x i' ('insert-buffer') and 'C-x x t'
('toggle-truncate-lines').
---
** Commands 'set-frame-width' and 'set-frame-height' can now get their
input using the minibuffer.
* Editing Changes in Emacs 28.1
@@ -390,6 +398,11 @@ major mode.
* Changes in Specialized Modes and Packages in Emacs 28.1
** Benchmark
*** New function 'benchmark-call' to measure the execution time of a function.
Additionally, the number of repetitions can be expressed as a minimal duration
in seconds.
** Macroexp
---
*** New function 'macroexp-file-name' to know the name of the current file.
@@ -524,11 +537,13 @@ It can be used to enable/disable the tab bar individually on each frame
independently from the value of 'tab-bar-mode' and 'tab-bar-show'.
---
*** New variable 'tab-bar-format' defines a list of tab bar items.
*** New user option 'tab-bar-format' defines a list of tab bar items.
When it contains 'tab-bar-format-global' (possibly appended after
'tab-bar-format-align-right'), then after enabling 'display-time-mode'
(or any other mode that uses 'global-mode-string') it displays time
aligned to the right on the tab bar instead of the mode line.
When 'tab-bar-format-tabs' is replaced with 'tab-bar-format-tabs-groups',
then the tab bar displays tab groups.
---
*** 'Mod-9' bound to 'tab-last' now switches to the last tab.
@@ -548,6 +563,8 @@ It also supports a negative argument.
---
*** 'C-x t G' assigns a group name to the tab.
'tab-close-group' can close all tabs that belong to the selected group.
The user option 'tab-bar-new-tab-group' defines the default group of a
new tab.
---
*** New user option 'tab-bar-tab-name-format-function'.
@@ -1930,6 +1947,12 @@ highlight the current error message in the 'next-error' buffer.
This user option can be also customized to keep highlighting on all
visited errors, so you can have an overview what errors were already visited.
---
*** New choice 'next-error-quit-window' for 'next-error-found-function'.
When 'next-error-found-function' is customized to 'next-error-quit-window',
then typing the numeric prefix argument 0 before the command 'next-error'
will quit the source window after visiting the next occurrence.
+++
*** New user option 'tab-first-completion'.
If 'tab-always-indent' is 'complete', this new user option can be used to
@@ -2250,12 +2273,17 @@ first).
* Incompatible Editing Changes in Emacs 28.1
** The 'M-o' ('facemenu-keymap') global binding has been removed.
To restore the old binding, say something like:
(require 'facemenu)
(define-key global-map "\M-o" 'facemenu-keymap)
** The 'M-o M-s' and 'M-o M-S' global bindings have been removed.
Use 'M-x center-line' and 'M-x center-paragraph' instead.
** The 'M-o M-o' global binding have been removed.
Use 'M-x font-lock-fontify-block' instead.
** The 'M-o M-o' global binding has been removed.
Use 'M-x font-lock-fontify-block' instead, or the new 'C-x x f'
command, which toggles fontification in the current buffer.
** In 'f90-mode', the backslash character ('\') no longer escapes.
For about a decade, the backslash character has no longer had a
@@ -2274,6 +2302,12 @@ directory instead of the default directory.
* Incompatible Lisp Changes in Emacs 28.1
** 'facemenu-color-alist' is now obsolete, and is not used.
** 'facemenu.el' is no longer preloaded.
To use functions/variables from the package, you now have to say
'(require 'facemenu)' or similar.
** 'pcomplete-ignore-case' is now an obsolete alias of 'completion-ignore-case'.
** 'completions-annotations' face is not used when the caller puts own face.
@@ -2815,6 +2849,11 @@ semantics of RFC 8259 instead of the earlier RFC 4627. In particular,
these functions now accept top-level JSON values that are neither
arrays nor objects.
---
** 'while-no-input-ignore-events' accepts more special events.
The special events 'dbus-event' and 'file-notify' are now ignored in
'while-no-input' when added to this variable.
* Changes in Emacs 28.1 on Non-Free Operating Systems

View File

@@ -15,18 +15,6 @@ in older Emacs versions.
You can narrow news to a specific version by calling 'view-emacs-news'
with a prefix argument or by typing 'C-u C-h C-n'.
Temporary note:
+++ indicates that all relevant manuals in doc/ have been updated.
--- means no change in the manuals is needed.
When you add a new item, use the appropriate mark if you are sure it
applies, and please also update docstrings as needed.
* Installation Changes in Emacs 27.2
* Startup Changes in Emacs 27.2
* Changes in Emacs 27.2
@@ -40,9 +28,6 @@ If set to a non-nil value which isn't a function, resize the mini
frame using the new function 'fit-mini-frame-to-buffer' which won't
skip leading or trailing empty lines of the buffer.
* Editing Changes in Emacs 27.2
* Changes in Specialized Modes and Packages in Emacs 27.2
@@ -50,15 +35,6 @@ skip leading or trailing empty lines of the buffer.
*** The user option 'tramp-completion-reread-directory-timeout' is now obsolete.
* New Modes and Packages in Emacs 27.2
* Incompatible Lisp Changes in Emacs 27.2
* Lisp Changes in Emacs 27.2
* Changes in Emacs 27.2 on Non-Free Operating Systems

View File

@@ -4,7 +4,7 @@
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; URL: https://gitlab.com/protesilaos/modus-themes
;; Version: 1.2.3
;; Version: 1.2.4
;; Package-Requires: ((emacs "26.1"))
;; Keywords: faces, theme, accessibility
@@ -386,6 +386,20 @@
;; - modus-operandi-theme.el (Light theme)
;; - modus-vivendi-theme.el (Dark theme)
;;; News:
;;
;; Users updating from older versions to >= 1.0.0, are advised to read
;; the anouncement on the emacs-devel mailing list:
;; <https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg00300.html>.
;;
;; The web page of the change log is also available:
;; <https://protesilaos.com/modus-themes-changelog/>.
;;
;; An Info manual should be distributed with the Modus themes.
;; Evaluate this form to access it directly:
;;
;; (info "(modus-themes) Top")
;;; Code:

View File

@@ -57,6 +57,8 @@ are included.")
`(font-lock-type-face ((,class (:foreground "#92a65e" :weight bold))))
`(font-lock-variable-name-face ((,class (:foreground "#cae682"))))
`(font-lock-warning-face ((,class (:foreground "#ccaa8f"))))
;; Help faces
`(help-key-binding ((,class (:background "#333333" :foreground "#f6f3e8"))))
;; Button and link faces
`(link ((,class (:foreground "#8ac6f2" :underline t))))
`(link-visited ((,class (:foreground "#e5786d" :underline t))))

View File

@@ -1432,6 +1432,7 @@ if `inhibit-field-text-motion' is non-nil."
(defvar ctl-x-x-map
(let ((map (make-sparse-keymap)))
(define-key map "f" #'font-lock-update)
(define-key map "g" #'revert-buffer)
(define-key map "r" #'rename-buffer)
(define-key map "u" #'rename-uniquely)

View File

@@ -700,7 +700,7 @@ ARG is positive, otherwise off."
(let ((appt-active appt-timer))
(setq appt-active (if arg (> (prefix-numeric-value arg) 0)
(not appt-active)))
(remove-hook 'write-file-functions #'appt-update-list 'local)
(remove-hook 'write-file-functions #'appt-update-list)
(or global-mode-string (setq global-mode-string '("")))
(delq 'appt-mode-string global-mode-string)
(when appt-timer
@@ -708,7 +708,7 @@ ARG is positive, otherwise off."
(setq appt-timer nil))
(if appt-active
(progn
(add-hook 'write-file-functions #'appt-update-list nil t)
(add-hook 'write-file-functions #'appt-update-list)
(setq appt-timer (run-at-time t 60 #'appt-check)
global-mode-string
(append global-mode-string '(appt-mode-string)))

View File

@@ -1,6 +1,6 @@
;;; cedet-cscope.el --- CScope support for CEDET
;;; cedet-cscope.el --- CScope support for CEDET -*- lexical-binding: t; -*-
;;; Copyright (C) 2009-2021 Free Software Foundation, Inc.
;; Copyright (C) 2009-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Package: cedet
@@ -34,7 +34,7 @@
:type 'string
:group 'cedet)
(defun cedet-cscope-search (searchtext texttype type scope)
(defun cedet-cscope-search (searchtext texttype type _scope)
"Perform a search with CScope, return the created buffer.
SEARCHTEXT is text to find.
TEXTTYPE is the type of text, such as `regexp', `string', `tagname',
@@ -85,7 +85,7 @@ options -cR."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-cscope-command
(apply #'call-process cedet-cscope-command
nil b nil
flags)
b))

View File

@@ -1,4 +1,4 @@
;;; cedet-files.el --- Common routines dealing with file names.
;;; cedet-files.el --- Common routines dealing with file names. -*- lexical-binding: t; -*-
;; Copyright (C) 2007-2021 Free Software Foundation, Inc.

View File

@@ -1,4 +1,4 @@
;;; cedet-global.el --- GNU Global support for CEDET.
;;; cedet-global.el --- GNU Global support for CEDET. -*- lexical-binding: t; -*-
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
@@ -75,7 +75,7 @@ SCOPE is the scope of the search, such as `project' or `subdirs'."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-global-command
(apply #'call-process cedet-global-command
nil b nil
flags)
b))
@@ -88,7 +88,7 @@ SCOPE is the scope of the search, such as `project' or `subdirs'."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-global-gtags-command
(apply #'call-process cedet-global-gtags-command
nil b nil
flags)

View File

@@ -1,4 +1,4 @@
;;; cedet-idutils.el --- ID Utils support for CEDET.
;;; cedet-idutils.el --- ID Utils support for CEDET. -*- lexical-binding: t; -*-
;; Copyright (C) 2009-2021 Free Software Foundation, Inc.
@@ -47,7 +47,7 @@
:type 'string
:group 'cedet)
(defun cedet-idutils-search (searchtext texttype type scope)
(defun cedet-idutils-search (searchtext texttype type _scope)
"Perform a search with ID Utils, return the created buffer.
SEARCHTEXT is text to find.
TEXTTYPE is the type of text, such as `regexp', `string', `tagname',
@@ -64,7 +64,7 @@ Note: Scope is not yet supported."
(let* ((resultflg (if (eq texttype 'tagcompletions)
(list "--key=token")
(list "--result=grep")))
(scopeflgs nil) ; (cond ((eq scope 'project) "" ) ((eq scope 'target) "l")))
;; (scopeflgs (cond ((eq scope 'project) "" ) ((eq scope 'target) "l")))
(stflag (cond ((or (eq texttype 'tagname)
(eq texttype 'tagregexp))
(list "-r" "-w"))
@@ -77,7 +77,7 @@ Note: Scope is not yet supported."
;; t means 'symbol
(t (list "-l" "-w"))))
)
(cedet-idutils-lid-call (append resultflg scopeflgs stflag
(cedet-idutils-lid-call (append resultflg nil stflag ;; scopeflgs
(list searchtext))))))
(defun cedet-idutils-fnid-call (flags)
@@ -89,7 +89,7 @@ Return the created buffer with program output."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-idutils-file-command
(apply #'call-process cedet-idutils-file-command
nil b nil
flags)
b))
@@ -103,7 +103,7 @@ Return the created buffer with program output."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-idutils-token-command
(apply #'call-process cedet-idutils-token-command
nil b nil
flags)
b))
@@ -117,7 +117,7 @@ Return the created buffer with program output."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-idutils-make-command
(apply #'call-process cedet-idutils-make-command
nil b nil
flags)
b))
@@ -133,7 +133,7 @@ Return a filename relative to the default directory."
(if (looking-at "[^ \n]*fnid: ")
(error "ID Utils not available")
(split-string (buffer-string) "\n" t)))))
(setq ans (mapcar 'expand-file-name ans))
(setq ans (mapcar #'expand-file-name ans))
(when (called-interactively-p 'interactive)
(if ans
(if (= (length ans) 1)

View File

@@ -1,4 +1,4 @@
;;; cedet.el --- Setup CEDET environment
;;; cedet.el --- Setup CEDET environment -*- lexical-binding: t; -*-
;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
@@ -48,25 +48,25 @@
(defvar cedet-menu-map ;(make-sparse-keymap "CEDET menu")
(let ((map (make-sparse-keymap "CEDET menu")))
(define-key map [semantic-force-refresh] 'undefined)
(define-key map [semantic-edit-menu] 'undefined)
(define-key map [navigate-menu] 'undefined)
(define-key map [semantic-options-separator] 'undefined)
(define-key map [global-semantic-highlight-func-mode] 'undefined)
(define-key map [global-semantic-stickyfunc-mode] 'undefined)
(define-key map [global-semantic-decoration-mode] 'undefined)
(define-key map [global-semantic-idle-completions-mode] 'undefined)
(define-key map [global-semantic-idle-summary-mode] 'undefined)
(define-key map [global-semantic-idle-scheduler-mode] 'undefined)
(define-key map [global-semanticdb-minor-mode] 'undefined)
(define-key map [cedet-menu-separator] 'undefined)
(define-key map [ede-find-file] 'undefined)
(define-key map [ede-speedbar] 'undefined)
(define-key map [ede] 'undefined)
(define-key map [ede-new] 'undefined)
(define-key map [ede-target-options] 'undefined)
(define-key map [ede-project-options] 'undefined)
(define-key map [ede-build-forms-menu] 'undefined)
(define-key map [semantic-force-refresh] #'undefined)
(define-key map [semantic-edit-menu] #'undefined)
(define-key map [navigate-menu] #'undefined)
(define-key map [semantic-options-separator] #'undefined)
(define-key map [global-semantic-highlight-func-mode] #'undefined)
(define-key map [global-semantic-stickyfunc-mode] #'undefined)
(define-key map [global-semantic-decoration-mode] #'undefined)
(define-key map [global-semantic-idle-completions-mode] #'undefined)
(define-key map [global-semantic-idle-summary-mode] #'undefined)
(define-key map [global-semantic-idle-scheduler-mode] #'undefined)
(define-key map [global-semanticdb-minor-mode] #'undefined)
(define-key map [cedet-menu-separator] #'undefined)
(define-key map [ede-find-file] #'undefined)
(define-key map [ede-speedbar] #'undefined)
(define-key map [ede] #'undefined)
(define-key map [ede-new] #'undefined)
(define-key map [ede-target-options] #'undefined)
(define-key map [ede-project-options] #'undefined)
(define-key map [ede-build-forms-menu] #'undefined)
map)
"Menu keymap for the CEDET package.
This is used by `semantic-mode' and `global-ede-mode'.")

View File

@@ -1,4 +1,4 @@
;;; data-debug.el --- Data structure debugger
;;; data-debug.el --- Data structure debugger -*- lexical-binding: t; -*-
;; Copyright (C) 2007-2021 Free Software Foundation, Inc.
@@ -48,9 +48,9 @@
;;; Compatibility
;;
(define-obsolete-function-alias 'data-debug-overlay-properties 'overlay-properties "28.1")
(define-obsolete-function-alias 'data-debug-overlay-p 'overlayp "28.1")
(define-obsolete-function-alias 'dd-propertize 'propertize "28.1")
(define-obsolete-function-alias 'data-debug-overlay-properties #'overlay-properties "28.1")
(define-obsolete-function-alias 'data-debug-overlay-p #'overlayp "28.1")
(define-obsolete-function-alias 'dd-propertize #'propertize "28.1")
;;; GENERIC STUFF
;;
@@ -100,14 +100,14 @@ PREBUTTONTEXT is some text between prefix and the overlay button."
(let ((start (point))
(end nil)
(str (format "%s" overlay))
(tip nil))
) ;; (tip nil)
(insert prefix prebuttontext str)
(setq end (point))
(put-text-property (- end (length str)) end 'face 'font-lock-comment-face)
(put-text-property start end 'ddebug overlay)
(put-text-property start end 'ddebug-indent(length prefix))
(put-text-property start end 'ddebug-prefix prefix)
(put-text-property start end 'help-echo tip)
;; (put-text-property start end 'help-echo tip)
(put-text-property start end 'ddebug-function
'data-debug-insert-overlay-from-point)
(insert "\n")
@@ -149,14 +149,14 @@ PREBUTTONTEXT is some text between prefix and the overlay list button."
(let ((start (point))
(end nil)
(str (format "#<overlay list: %d entries>" (length overlaylist)))
(tip nil))
) ;; (tip nil)
(insert prefix prebuttontext str)
(setq end (point))
(put-text-property (- end (length str)) end 'face 'font-lock-comment-face)
(put-text-property start end 'ddebug overlaylist)
(put-text-property start end 'ddebug-indent(length prefix))
(put-text-property start end 'ddebug-prefix prefix)
(put-text-property start end 'help-echo tip)
;; (put-text-property start end 'help-echo tip)
(put-text-property start end 'ddebug-function
'data-debug-insert-overlay-list-from-point)
(insert "\n")
@@ -204,14 +204,14 @@ PREBUTTONTEXT is some text between prefix and the buffer button."
(let ((start (point))
(end nil)
(str (format "%S" buffer))
(tip nil))
) ;; (tip nil)
(insert prefix prebuttontext str)
(setq end (point))
(put-text-property (- end (length str)) end 'face 'font-lock-comment-face)
(put-text-property start end 'ddebug buffer)
(put-text-property start end 'ddebug-indent(length prefix))
(put-text-property start end 'ddebug-prefix prefix)
(put-text-property start end 'help-echo tip)
;; (put-text-property start end 'help-echo tip)
(put-text-property start end 'ddebug-function
'data-debug-insert-buffer-from-point)
(insert "\n")
@@ -253,14 +253,14 @@ PREBUTTONTEXT is some text between prefix and the buffer list button."
(let ((start (point))
(end nil)
(str (format "#<buffer list: %d entries>" (length bufferlist)))
(tip nil))
) ;; (tip nil)
(insert prefix prebuttontext str)
(setq end (point))
(put-text-property (- end (length str)) end 'face 'font-lock-comment-face)
(put-text-property start end 'ddebug bufferlist)
(put-text-property start end 'ddebug-indent(length prefix))
(put-text-property start end 'ddebug-prefix prefix)
(put-text-property start end 'help-echo tip)
;; (put-text-property start end 'help-echo tip)
(put-text-property start end 'ddebug-function
'data-debug-insert-buffer-list-from-point)
(insert "\n")
@@ -309,14 +309,14 @@ PREBUTTONTEXT is some text between prefix and the process button."
(let ((start (point))
(end nil)
(str (format "%S : %s" process (process-status process)))
(tip nil))
) ;; (tip nil)
(insert prefix prebuttontext str)
(setq end (point))
(put-text-property (- end (length str)) end 'face 'font-lock-comment-face)
(put-text-property start end 'ddebug process)
(put-text-property start end 'ddebug-indent(length prefix))
(put-text-property start end 'ddebug-prefix prefix)
(put-text-property start end 'help-echo tip)
;; (put-text-property start end 'help-echo tip)
(put-text-property start end 'ddebug-function
'data-debug-insert-process-from-point)
(insert "\n")
@@ -363,8 +363,8 @@ PREBUTTONTEXT is some text between prefix and the stuff list button."
(str (format "#<RING: %d, %d max>"
(ring-length ring)
(ring-size ring)))
(ringthing
(if (= (ring-length ring) 0) nil (ring-ref ring 0)))
;; (ringthing
;; (if (= (ring-length ring) 0) nil (ring-ref ring 0)))
(tip (format "Ring max-size %d, length %d."
(ring-size ring)
(ring-length ring)))
@@ -437,7 +437,7 @@ PREBUTTONTEXT is some text between prefix and the stuff list button."
;; Widgets have a long list of properties
(defun data-debug-insert-widget-properties (widget prefix)
"Insert the contents of WIDGET inserting PREFIX before each element."
(let ((type (car widget))
(let (;; (type (car widget))
(rest (cdr widget)))
(while rest
(data-debug-insert-thing (car (cdr rest))
@@ -683,7 +683,7 @@ PREBUTTONTEXT is some text between prefix and the thing."
)
;;; nil thing
(defun data-debug-insert-nil (thing prefix prebuttontext)
(defun data-debug-insert-nil (_thing prefix prebuttontext)
"Insert one simple THING with a face.
PREFIX is the text that precedes the button.
PREBUTTONTEXT is some text between prefix and the thing.
@@ -856,19 +856,18 @@ If PARENT is non-nil, it is somehow related as a parent to thing."
(defvar data-debug-mode-map
(let ((km (make-sparse-keymap)))
(suppress-keymap km)
(define-key km [mouse-2] 'data-debug-expand-or-contract-mouse)
(define-key km " " 'data-debug-expand-or-contract)
(define-key km "\C-m" 'data-debug-expand-or-contract)
(define-key km "n" 'data-debug-next)
(define-key km "p" 'data-debug-prev)
(define-key km "N" 'data-debug-next-expando)
(define-key km "P" 'data-debug-prev-expando)
(define-key km [mouse-2] #'data-debug-expand-or-contract-mouse)
(define-key km " " #'data-debug-expand-or-contract)
(define-key km "\C-m" #'data-debug-expand-or-contract)
(define-key km "n" #'data-debug-next)
(define-key km "p" #'data-debug-prev)
(define-key km "N" #'data-debug-next-expando)
(define-key km "P" #'data-debug-prev-expando)
km)
"Keymap used in data-debug.")
(defcustom data-debug-mode-hook nil
"Hook run when data-debug starts."
:group 'data-debug
:type 'hook)
(define-derived-mode data-debug-mode fundamental-mode "DATA-DEBUG"
@@ -1032,7 +1031,7 @@ Do nothing if already contracted."
nil read-expression-map t
'read-expression-history))
))
(let ((v (eval expr)))
(let ((v (eval expr t)))
(if (not v)
(message "Expression %s is nil." expr)
(data-debug-show-stuff v "expression"))))
@@ -1049,12 +1048,12 @@ If the result is a list or vector, then use the data debugger to display it."
(let (result)
(if (null eval-expression-debug-on-error)
(setq result (values--store-value (eval expr)))
(setq result (values--store-value (eval expr t)))
(let ((old-value (make-symbol "t")) new-value)
;; Bind debug-on-error to something unique so that we can
;; detect when evalled code changes it.
(let ((debug-on-error old-value))
(setq result (values--store-value (eval expr)))
(setq result (values--store-value (eval expr t)))
(setq new-value debug-on-error))
;; If evalled code has changed the value of debug-on-error,
;; propagate that change to the global binding.

View File

@@ -1,4 +1,4 @@
;;; ede.el --- Emacs Development Environment gloss
;;; ede.el --- Emacs Development Environment gloss -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2005, 2007-2021 Free Software Foundation, Inc.
@@ -87,7 +87,6 @@ target wants the file, the user is asked. If only one target wants
the file, then it is automatically added to that target. If the
value is `ask', then the user is always asked, unless there is no
target willing to take the file. `never' means never perform the check."
:group 'ede
:type '(choice (const always)
(const multi-ask)
(const ask)
@@ -95,7 +94,6 @@ target willing to take the file. `never' means never perform the check."
(defcustom ede-debug-program-function 'gdb
"Default Emacs command used to debug a target."
:group 'ede
:type 'function) ; make this be a list of options some day
(defcustom ede-project-directories nil
@@ -112,7 +110,6 @@ If you invoke the commands \\[ede] or \\[ede-new] on a directory
that is not listed, Emacs will offer to add it to the list.
Any other value disables searching for EDE project files."
:group 'ede
:type '(choice (const :tag "Any directory" t)
(repeat :tag "List of directories"
(directory))
@@ -186,21 +183,23 @@ Argument LIST-O-O is the list of objects to choose from."
;;; Menu and Keymap
(declare-function ede-speedbar "ede/speedbar" ())
(defvar ede-minor-mode-map
(let ((map (make-sparse-keymap))
(pmap (make-sparse-keymap)))
(define-key pmap "e" 'ede-edit-file-target)
(define-key pmap "a" 'ede-add-file)
(define-key pmap "d" 'ede-remove-file)
(define-key pmap "t" 'ede-new-target)
(define-key pmap "g" 'ede-rescan-toplevel)
(define-key pmap "s" 'ede-speedbar)
(define-key pmap "f" 'ede-find-file)
(define-key pmap "C" 'ede-compile-project)
(define-key pmap "c" 'ede-compile-target)
(define-key pmap "\C-c" 'ede-compile-selected)
(define-key pmap "D" 'ede-debug-target)
(define-key pmap "R" 'ede-run-target)
(define-key pmap "e" #'ede-edit-file-target)
(define-key pmap "a" #'ede-add-file)
(define-key pmap "d" #'ede-remove-file)
(define-key pmap "t" #'ede-new-target)
(define-key pmap "g" #'ede-rescan-toplevel)
(define-key pmap "s" #'ede-speedbar)
(define-key pmap "f" #'ede-find-file)
(define-key pmap "C" #'ede-compile-project)
(define-key pmap "c" #'ede-compile-target)
(define-key pmap "\C-c" #'ede-compile-selected)
(define-key pmap "D" #'ede-debug-target)
(define-key pmap "R" #'ede-run-target)
;; bind our submap into map
(define-key map "\C-c." pmap)
map)
@@ -476,7 +475,7 @@ To be used in hook functions."
If this file is contained, or could be contained in an EDE
controlled project, then this mode is activated automatically
provided `global-ede-mode' is enabled."
:group 'ede
:global nil
(cond ((or (eq major-mode 'dired-mode)
(eq major-mode 'vc-dir-mode))
(ede-dired-minor-mode (if ede-minor-mode 1 -1)))
@@ -486,6 +485,9 @@ provided `global-ede-mode' is enabled."
;; If we fail to have a project here, turn it back off.
(ede-minor-mode -1)))))
(declare-function ede-directory-project-cons "ede/files" (dir &optional force))
(declare-function ede-toplevel-project-or-nil "ede/files" (dir))
(defun ede-initialize-state-current-buffer ()
"Initialize the current buffer's state for EDE.
Sets buffer local variables for EDE."
@@ -496,7 +498,7 @@ Sets buffer local variables for EDE."
;; Init the buffer.
(let* ((ROOT nil)
(proj (ede-directory-get-open-project default-directory
'ROOT)))
(gv-ref ROOT))))
(when (not proj)
;; If there is no open project, look up the project
@@ -517,7 +519,8 @@ Sets buffer local variables for EDE."
(ede-directory-safe-p top)))
;; The project is safe, so load it in.
(setq proj (ede-load-project-file default-directory projdetect 'ROOT))))))
(setq proj (ede-load-project-file default-directory projdetect
(gv-ref ROOT)))))))
;; If PROJ is now loaded in, we can initialize our buffer to it.
(when proj
@@ -561,30 +564,29 @@ Sets buffer local variables for EDE."
This global minor mode enables `ede-minor-mode' in all buffers in
an EDE controlled project."
:global t
:group 'ede
(if global-ede-mode
;; Turn on global-ede-mode
(progn
(if semantic-mode
(define-key cedet-menu-map [cedet-menu-separator] '("--")))
(add-hook 'semanticdb-project-predicate-functions 'ede-directory-project-p)
(add-hook 'semanticdb-project-root-functions 'ede-toplevel-project-or-nil)
(add-hook 'ecb-source-path-functions 'ede-ecb-project-paths)
(add-hook 'semanticdb-project-predicate-functions #'ede-directory-project-p)
(add-hook 'semanticdb-project-root-functions #'ede-toplevel-project-or-nil)
(add-hook 'ecb-source-path-functions #'ede-ecb-project-paths)
;; Append our hook to the end. This allows mode-local to finish
;; it's stuff before we start doing misc file loads, etc.
(add-hook 'find-file-hook 'ede-turn-on-hook t)
(add-hook 'dired-mode-hook 'ede-turn-on-hook)
(add-hook 'kill-emacs-hook 'ede-save-cache)
(add-hook 'find-file-hook #'ede-turn-on-hook t)
(add-hook 'dired-mode-hook #'ede-turn-on-hook)
(add-hook 'kill-emacs-hook #'ede-save-cache)
(ede-load-cache)
(ede-reset-all-buffers))
;; Turn off global-ede-mode
(define-key cedet-menu-map [cedet-menu-separator] nil)
(remove-hook 'semanticdb-project-predicate-functions 'ede-directory-project-p)
(remove-hook 'semanticdb-project-root-functions 'ede-toplevel-project-or-nil)
(remove-hook 'ecb-source-path-functions 'ede-ecb-project-paths)
(remove-hook 'find-file-hook 'ede-turn-on-hook)
(remove-hook 'dired-mode-hook 'ede-turn-on-hook)
(remove-hook 'kill-emacs-hook 'ede-save-cache)
(remove-hook 'semanticdb-project-predicate-functions #'ede-directory-project-p)
(remove-hook 'semanticdb-project-root-functions #'ede-toplevel-project-or-nil)
(remove-hook 'ecb-source-path-functions #'ede-ecb-project-paths)
(remove-hook 'find-file-hook #'ede-turn-on-hook)
(remove-hook 'dired-mode-hook #'ede-turn-on-hook)
(remove-hook 'kill-emacs-hook #'ede-save-cache)
(ede-save-cache)
(ede-reset-all-buffers)))
@@ -1080,7 +1082,7 @@ Flush the dead projects from the project cache."
(let ((dead nil))
(dolist (P ede-projects)
(when (not (file-exists-p (oref P file)))
(add-to-list 'dead P)))
(cl-pushnew P dead :test #'equal)))
(dolist (D dead)
(ede-delete-project-from-global-list D))
))
@@ -1108,7 +1110,7 @@ Flush the dead projects from the project cache."
"Project file independent way to read a project in from DIR.
Optional DETECTIN is an autoload cons from `ede-detect-directory-for-project'
which can be passed in to save time.
Optional ROOTRETURN will return the root project for DIR."
Optional ROOTRETURN reference will return the root project for DIR."
;; Don't do anything if we are in the process of
;; constructing an EDE object.
;;
@@ -1147,7 +1149,8 @@ Optional ROOTRETURN will return the root project for DIR."
(setq o (ede-auto-load-project autoloader toppath))))
;; Return the found root project.
(when rootreturn (set rootreturn o))
(when rootreturn (if (symbolp rootreturn) (set rootreturn o)
(setf (gv-deref rootreturn) o)))
;; The project has been found (in the global list) or loaded from
;; disk (via autoloader.) We can now search for the project asked
@@ -1504,6 +1507,8 @@ It does not apply the value to buffers."
;;; Integration with project.el
(defun project-try-ede (dir)
;; FIXME: This passes the `ROOT' dynbound variable, but I don't know
;; where it comes from!
(let ((project-dir
(locate-dominating-file
dir
@@ -1523,7 +1528,7 @@ It does not apply the value to buffers."
(provide 'ede)
;; Include this last because it depends on ede.
(require 'ede/files)
(if t (require 'ede/files)) ;; Don't bother loading it at compile-time.
;; If this does not occur after the provide, we can get a recursive
;; load. Yuck!

View File

@@ -1,4 +1,4 @@
;;; ede/auto.el --- Autoload features for EDE
;;; ede/auto.el --- Autoload features for EDE -*- lexical-binding: t; -*-
;; Copyright (C) 2010-2021 Free Software Foundation, Inc.
@@ -325,13 +325,13 @@ NOTE: Do not call this - it should only be called from `ede-load-project-file'."
;; See if we can do without them.
;; @FIXME - delete from loaddefs to remove this.
(cl-defmethod ede-project-root ((this ede-project-autoload))
(cl-defmethod ede-project-root ((_this ede-project-autoload))
"If a project knows its root, return it here.
Allows for one-project-object-for-a-tree type systems."
nil)
;; @FIXME - delete from loaddefs to remove this.
(cl-defmethod ede-project-root-directory ((this ede-project-autoload) &optional file)
(cl-defmethod ede-project-root-directory ((_this ede-project-autoload) &optional _file)
"" nil)
(provide 'ede/auto)

View File

@@ -1,4 +1,4 @@
;;; ede/autoconf-edit.el --- Keymap for autoconf
;;; ede/autoconf-edit.el --- Keymap for autoconf -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2000, 2009-2021 Free Software Foundation, Inc.

View File

@@ -1,4 +1,4 @@
;;; ede/config.el --- Configuration Handler baseclass
;;; ede/config.el --- Configuration Handler baseclass -*- lexical-binding: t; -*-
;; Copyright (C) 2014-2021 Free Software Foundation, Inc.
@@ -171,7 +171,7 @@ the directory isn't on the `safe' list, ask to add it to the safe list."
(oset config project proj)))
config))
(cl-defmethod ede-config-setup-configuration ((proj ede-project-with-config) config)
(cl-defmethod ede-config-setup-configuration ((_proj ede-project-with-config) _config)
"Default configuration setup method."
nil)
@@ -187,7 +187,7 @@ the directory isn't on the `safe' list, ask to add it to the safe list."
(let ((config (ede-config-get-configuration proj t)))
(eieio-customize-object config)))
(cl-defmethod ede-customize ((target ede-target-with-config))
(cl-defmethod ede-customize ((_target ede-target-with-config))
"Customize the EDE TARGET by actually configuring the config object."
;; Nothing unique for the targets, use the project.
(ede-customize-project))
@@ -302,14 +302,14 @@ This class brings in method overloads for building.")
"Class to mix into a project with configuration for builds.
This class brings in method overloads for building.")
(cl-defmethod project-compile-project ((proj ede-project-with-config-build) &optional command)
(cl-defmethod project-compile-project ((proj ede-project-with-config-build) &optional _command)
"Compile the entire current project PROJ.
Argument COMMAND is the command to use when compiling."
(let* ((config (ede-config-get-configuration proj t))
(comp (oref config build-command)))
(compile comp)))
(cl-defmethod project-compile-target ((obj ede-target-with-config-build) &optional command)
(cl-defmethod project-compile-target ((_obj ede-target-with-config-build) &optional command)
"Compile the current target OBJ.
Argument COMMAND is the command to use for compiling the target."
(project-compile-project (ede-current-project) command))

View File

@@ -1,4 +1,4 @@
;;; ede/cpp-root.el --- A simple way to wrap a C++ project with a single root
;;; ede/cpp-root.el --- A simple way to wrap a C++ project with a single root -*- lexical-binding: t; -*-
;; Copyright (C) 2007-2021 Free Software Foundation, Inc.
@@ -275,7 +275,7 @@ Each directory needs a project file to control it.")
;; objects is deleted.
(cl-defmethod initialize-instance ((this ede-cpp-root-project)
&rest fields)
&rest _fields)
"Make sure the :file is fully expanded."
;; Add ourselves to the master list
(cl-call-next-method)
@@ -310,7 +310,7 @@ Each directory needs a project file to control it.")
;; project, simplifying authoring new single-point projects.
(cl-defmethod ede-find-subproject-for-directory ((proj ede-cpp-root-project)
dir)
_dir)
"Return PROJ, for handling all subdirs below DIR."
proj)
@@ -319,7 +319,7 @@ Each directory needs a project file to control it.")
;; Creating new targets on a per directory basis is a good way to keep
;; files organized. See ede-emacs for an example with multiple file
;; types.
(cl-defmethod ede-find-target ((proj ede-cpp-root-project) buffer)
(cl-defmethod ede-find-target ((proj ede-cpp-root-project) _buffer)
"Find an EDE target in PROJ for BUFFER.
If one doesn't exist, create a new one for this directory."
(let* ((targets (oref proj targets))
@@ -451,7 +451,7 @@ This is for project include paths and spp source files."
"Get the pre-processor map for project THIS."
(ede-preprocessor-map (ede-target-parent this)))
(cl-defmethod project-compile-project ((proj ede-cpp-root-project) &optional command)
(cl-defmethod project-compile-project ((proj ede-cpp-root-project) &optional _command)
"Compile the entire current project PROJ.
Argument COMMAND is the command to use when compiling."
;; we need to be in the proj root dir for this to work
@@ -474,7 +474,7 @@ Argument COMMAND is the command to use for compiling the target."
(project-compile-project (oref obj project) command)))
(cl-defmethod project-rescan ((this ede-cpp-root-project))
(cl-defmethod project-rescan ((_this ede-cpp-root-project))
"Don't rescan this project from the sources."
(message "cpp-root has nothing to rescan."))

View File

@@ -1,4 +1,4 @@
;;; ede/custom.el --- customization of EDE projects.
;;; ede/custom.el --- customization of EDE projects. -*- lexical-binding: t; -*-
;; Copyright (C) 2010-2021 Free Software Foundation, Inc.
@@ -97,13 +97,13 @@ OBJ is the target object to customize."
"Create a custom-like buffer for sorting targets of current project."
(interactive)
(let ((proj (ede-current-project))
(count 1)
current order)
;; (count 1)
) ;; current order
(switch-to-buffer (get-buffer-create "*EDE sort targets*"))
(erase-buffer)
(setq ede-object-project proj)
(widget-create 'push-button
:notify (lambda (&rest ignore)
:notify (lambda (&rest _ignore)
(let ((targets (oref ede-object-project targets))
cur newtargets)
(while (setq cur (pop ede-project-sort-targets-order))
@@ -115,7 +115,7 @@ OBJ is the target object to customize."
" Accept ")
(widget-insert " ")
(widget-create 'push-button
:notify (lambda (&rest ignore)
:notify (lambda (&rest _ignore)
(kill-buffer))
" Cancel ")
(widget-insert "\n\n")
@@ -133,45 +133,45 @@ OBJ is the target object to customize."
(defun ede-project-sort-targets-list ()
"Sort the target list while using `ede-project-sort-targets'."
(save-excursion
(let ((count 0)
(targets (oref ede-object-project targets))
(let ((targets (oref ede-object-project targets))
(inhibit-read-only t)
(inhibit-modification-hooks t))
(goto-char (point-min))
(forward-line 2)
(delete-region (point) (point-max))
(while (< count (length targets))
(dotimes (count (length targets))
(if (> count 0)
(widget-create 'push-button
:notify `(lambda (&rest ignore)
(let ((cur ede-project-sort-targets-order))
(add-to-ordered-list
'ede-project-sort-targets-order
(nth ,count cur)
(1- ,count))
(add-to-ordered-list
'ede-project-sort-targets-order
(nth (1- ,count) cur) ,count))
(ede-project-sort-targets-list))
:notify (lambda (&rest _ignore)
(let ((cur ede-project-sort-targets-order))
(add-to-ordered-list
'ede-project-sort-targets-order
(nth count cur)
(1- count))
(add-to-ordered-list
'ede-project-sort-targets-order
(nth (1- count) cur) count))
(ede-project-sort-targets-list))
" Up ")
(widget-insert " "))
(if (< count (1- (length targets)))
(widget-create 'push-button
:notify `(lambda (&rest ignore)
(let ((cur ede-project-sort-targets-order))
(add-to-ordered-list
'ede-project-sort-targets-order
(nth ,count cur) (1+ ,count))
(add-to-ordered-list
'ede-project-sort-targets-order
(nth (1+ ,count) cur) ,count))
(ede-project-sort-targets-list))
:notify (lambda (&rest _ignore)
(let ((cur ede-project-sort-targets-order))
(add-to-ordered-list
'ede-project-sort-targets-order
(nth count cur) (1+ count))
(add-to-ordered-list
'ede-project-sort-targets-order
(nth (1+ count) cur) count))
(ede-project-sort-targets-list))
" Down ")
(widget-insert " "))
(widget-insert (concat " " (number-to-string (1+ count)) ".: "
(oref (nth (nth count ede-project-sort-targets-order)
targets) name) "\n"))
(setq count (1+ count))))))
targets)
name)
"\n"))))))
;;; Customization hooks
;;
@@ -195,11 +195,11 @@ OBJ is the target object to customize."
;; These two methods should be implemented by subclasses of
;; project and targets in order to account for user specified
;; changes.
(cl-defmethod eieio-done-customizing ((target ede-target))
(cl-defmethod eieio-done-customizing ((_target ede-target))
"Call this when a user finishes customizing TARGET."
nil)
(cl-defmethod ede-commit-project ((proj ede-project))
(cl-defmethod ede-commit-project ((_proj ede-project))
"Commit any change to PROJ to its file."
nil
)

View File

@@ -1,4 +1,4 @@
;;; ede/detect.el --- EDE project detection and file associations
;;; ede/detect.el --- EDE project detection and file associations -*- lexical-binding: t; -*-
;; Copyright (C) 2014-2021 Free Software Foundation, Inc.

View File

@@ -35,11 +35,11 @@
(defvar ede-dired-keymap
(let ((map (make-sparse-keymap)))
(define-key map ".a" 'ede-dired-add-to-target)
(define-key map ".t" 'ede-new-target)
(define-key map ".s" 'ede-speedbar)
(define-key map ".C" 'ede-compile-project)
(define-key map ".d" 'ede-make-dist)
(define-key map ".a" #'ede-dired-add-to-target)
(define-key map ".t" #'ede-new-target)
(define-key map ".s" #'ede-speedbar)
(define-key map ".C" #'ede-compile-project)
(define-key map ".d" #'ede-make-dist)
(easy-menu-define
ede-dired-menu map "EDE Dired Minor Mode Menu"

View File

@@ -1,4 +1,4 @@
;;; ede/files.el --- Associate projects with files and directories.
;;; ede/files.el --- Associate projects with files and directories. -*- lexical-binding: t; -*-
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
@@ -33,6 +33,7 @@
;; till no ede-project-autoload structure matches.
;;
(require 'eieio)
(require 'ede)
(declare-function ede-locate-file-in-hash "ede/locate")
@@ -75,13 +76,13 @@ Allows for one-project-object-for-a-tree type systems."
(oref this rootproject))
(cl-defmethod ede-project-root-directory ((this ede-project-placeholder)
&optional file)
&optional _file)
"If a project knows its root, return it here.
Allows for one-project-object-for-a-tree type systems.
Optional FILE is the file to test. It is ignored in preference
of the anchor file for the project."
(let ((root (or (ede-project-root this) this)))
(file-name-directory (expand-file-name (oref this file)))))
;; (let ((root (or (ede-project-root this) this)))
(file-name-directory (expand-file-name (oref this file)))) ;; )
;; Why INODEs?
@@ -141,7 +142,7 @@ Does not check subprojects."
(defun ede-directory-get-open-project (dir &optional rootreturn)
"Return an already open project that is managing DIR.
Optional ROOTRETURN specifies a symbol to set to the root project.
Optional ROOTRETURN specifies a `gv-ref' to set to the root project.
If DIR is the root project, then it is the same."
(let* ((inode (ede--inode-for-dir dir))
(ft (file-name-as-directory (expand-file-name dir)))
@@ -153,7 +154,8 @@ If DIR is the root project, then it is the same."
;; Default answer is this project
(setq ans proj)
;; Save.
(when rootreturn (set rootreturn proj))
(when rootreturn (if (symbolp rootreturn) (set rootreturn proj)
(setf (gv-deref rootreturn) proj)))
;; Find subprojects.
(when (and proj (if ede--disable-inode
(not (string= ft (expand-file-name
@@ -272,7 +274,7 @@ Do this whenever a new project is created, as opposed to loaded."
(remhash (file-name-as-directory dir) ede-project-directory-hash)
;; Look for all subdirs of D, and remove them.
(let ((match (concat "^" (regexp-quote dir))))
(maphash (lambda (K O)
(maphash (lambda (K _O)
(when (string-match match K)
(remhash K ede-project-directory-hash)))
ede-project-directory-hash)))
@@ -363,7 +365,7 @@ If DIR is not part of a project, return nil."
(t nil))))
(defalias 'ede-toplevel-project-or-nil 'ede-toplevel-project)
(defalias 'ede-toplevel-project-or-nil #'ede-toplevel-project)
;;; DIRECTORY CONVERSION STUFF
;;
@@ -469,15 +471,15 @@ is returned."
ans))
(cl-defmethod ede-expand-filename-impl ((this ede-project) filename &optional force)
(cl-defmethod ede-expand-filename-impl ((this ede-project) filename &optional _force)
"Return a fully qualified file name based on project THIS.
FILENAME should be just a filename which occurs in a directory controlled
by this project.
Optional argument FORCE forces the default filename to be provided even if it
doesn't exist."
(let ((loc (ede-get-locator-object this))
(path (ede-project-root-directory this))
(proj (oref this subproj))
;; (path (ede-project-root-directory this))
;; (proj (oref this subproj))
(found nil))
;; find it Locally.
(setq found (or (ede-expand-filename-local this filename)

View File

@@ -1,4 +1,4 @@
;;; ede/generic.el --- Base Support for generic build systems
;;; ede/generic.el --- Base Support for generic build systems -*- lexical-binding: t; -*-
;; Copyright (C) 2010-2021 Free Software Foundation, Inc.
@@ -93,7 +93,7 @@
)
"User Configuration object for a generic project.")
(defun ede-generic-load (dir &optional rootproj)
(defun ede-generic-load (dir &optional _rootproj)
"Return a Generic Project object if there is a match.
Return nil if there isn't one.
Argument DIR is the directory it is created for.
@@ -149,7 +149,7 @@ The class allocated value is replace by different sub classes.")
:abstract t)
(cl-defmethod initialize-instance ((this ede-generic-project)
&rest fields)
&rest _fields)
"Make sure the targets slot is bound."
(cl-call-next-method)
(unless (slot-boundp this 'targets)
@@ -161,7 +161,7 @@ The class allocated value is replace by different sub classes.")
this)
(cl-defmethod ede-find-subproject-for-directory ((proj ede-generic-project)
dir)
_dir)
"Return PROJ, for handling all subdirs below DIR."
proj)
@@ -324,7 +324,7 @@ CLASS is the EIEIO class that is used to track this project. It should subclass
)
"Generic Project for makefiles.")
(cl-defmethod ede-generic-setup-configuration ((proj ede-generic-makefile-project) config)
(cl-defmethod ede-generic-setup-configuration ((_proj ede-generic-makefile-project) config)
"Setup a configuration for Make."
(oset config build-command "make -k")
(oset config debug-command "gdb ")
@@ -337,7 +337,7 @@ CLASS is the EIEIO class that is used to track this project. It should subclass
)
"Generic Project for scons.")
(cl-defmethod ede-generic-setup-configuration ((proj ede-generic-scons-project) config)
(cl-defmethod ede-generic-setup-configuration ((_proj ede-generic-scons-project) config)
"Setup a configuration for SCONS."
(oset config build-command "scons")
(oset config debug-command "gdb ")
@@ -350,7 +350,7 @@ CLASS is the EIEIO class that is used to track this project. It should subclass
)
"Generic Project for cmake.")
(cl-defmethod ede-generic-setup-configuration ((proj ede-generic-cmake-project) config)
(cl-defmethod ede-generic-setup-configuration ((_proj ede-generic-cmake-project) config)
"Setup a configuration for CMake."
(oset config build-command "cmake")
(oset config debug-command "gdb ")
@@ -361,9 +361,9 @@ CLASS is the EIEIO class that is used to track this project. It should subclass
()
"Generic project found via Version Control files.")
(cl-defmethod ede-generic-setup-configuration ((proj ede-generic-vc-project) config)
(cl-defmethod ede-generic-setup-configuration ((_proj ede-generic-vc-project) _config)
"Setup a configuration for projects identified by revision control."
)
nil)
(provide 'ede/generic)

View File

@@ -1,4 +1,4 @@
;;; ede/linux.el --- Special project for Linux
;;; ede/linux.el --- Special project for Linux -*- lexical-binding: t; -*-
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
@@ -47,26 +47,22 @@
(defcustom project-linux-build-directory-default 'ask
"Build directory."
:version "24.4"
:group 'project-linux
:type '(choice (const :tag "Same as source directory" same)
(const :tag "Ask the user" ask)))
(defcustom project-linux-architecture-default 'ask
"Target architecture to assume when not auto-detected."
:version "24.4"
:group 'project-linux
:type '(choice (string :tag "Architecture name")
(const :tag "Ask the user" ask)))
(defcustom project-linux-compile-target-command (concat ede-make-command " -k -C %s SUBDIRS=%s")
"Default command used to compile a target."
:group 'project-linux
:type 'string)
(defcustom project-linux-compile-project-command (concat ede-make-command " -k -C %s")
"Default command used to compile a project."
:group 'project-linux
:type 'string)
(defun ede-linux-version (dir)

View File

@@ -1,4 +1,4 @@
;;; ede/locate.el --- Locate support
;;; ede/locate.el --- Locate support -*- lexical-binding: t; -*-
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
@@ -110,7 +110,7 @@ based on `ede-locate-setup-options'."
)
"Baseclass for LOCATE feature in EDE.")
(cl-defmethod initialize-instance ((loc ede-locate-base) &rest fields)
(cl-defmethod initialize-instance ((loc ede-locate-base) &rest _fields)
"Make sure we have a hash table."
;; Basic setup.
(cl-call-next-method)
@@ -118,8 +118,8 @@ based on `ede-locate-setup-options'."
(ede-locate-flush-hash loc)
)
(cl-defmethod ede-locate-ok-in-project ((loc (subclass ede-locate-base))
root)
(cl-defmethod ede-locate-ok-in-project ((_loc (subclass ede-locate-base))
_root)
"Is it ok to use this project type under ROOT."
t)
@@ -149,17 +149,15 @@ that created this EDE locate object."
(oset loc lastanswer ans)
ans))
(cl-defmethod ede-locate-file-in-project-impl ((loc ede-locate-base)
filesubstring
)
(cl-defmethod ede-locate-file-in-project-impl ((_loc ede-locate-base)
_filesubstring)
"Locate with LOC occurrences of FILESUBSTRING.
Searches are done under the current root of the EDE project
that created this EDE locate object."
nil
)
nil)
(cl-defmethod ede-locate-create/update-root-database
((loc (subclass ede-locate-base)) root)
((loc (subclass ede-locate-base)) _root)
"Create or update the database for the current project.
You cannot create projects for the baseclass."
(error "Cannot create/update a database of type %S"
@@ -177,8 +175,8 @@ You cannot create projects for the baseclass."
Configure the Emacs `locate-program' variable to also
configure the use of EDE locate.")
(cl-defmethod ede-locate-ok-in-project ((loc (subclass ede-locate-locate))
root)
(cl-defmethod ede-locate-ok-in-project ((_loc (subclass ede-locate-locate))
_root)
"Is it ok to use this project type under ROOT."
(or (featurep 'locate) (locate-library "locate"))
)
@@ -198,7 +196,7 @@ that created this EDE locate object."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process locate-command
(apply #'call-process locate-command
nil b nil
searchstr nil)
(with-current-buffer b
@@ -221,7 +219,7 @@ Configure EDE's use of GNU Global through the cedet-global.el
variable `cedet-global-command'.")
(cl-defmethod initialize-instance ((loc ede-locate-global)
&rest slots)
&rest _slots)
"Make sure that we can use GNU Global."
(require 'cedet-global)
;; Get ourselves initialized.
@@ -235,8 +233,8 @@ variable `cedet-global-command'.")
(oref loc root))))
)
(cl-defmethod ede-locate-ok-in-project ((loc (subclass ede-locate-global))
root)
(cl-defmethod ede-locate-ok-in-project ((_loc (subclass ede-locate-global))
root)
"Is it ok to use this project type under ROOT."
(require 'cedet-global)
(cedet-gnu-global-version-check)
@@ -252,7 +250,7 @@ variable `cedet-global-command'.")
(cedet-gnu-global-expand-filename filesubstring)))
(cl-defmethod ede-locate-create/update-root-database
((loc (subclass ede-locate-global)) root)
((_loc (subclass ede-locate-global)) root)
"Create or update the GNU Global database for the current project."
(cedet-gnu-global-create/update-database root))
@@ -271,7 +269,7 @@ Configure EDE's use of IDUtils through the cedet-idutils.el
file name searching variable `cedet-idutils-file-command'.")
(cl-defmethod initialize-instance ((loc ede-locate-idutils)
&rest slots)
&rest _slots)
"Make sure that we can use IDUtils."
;; Get ourselves initialized.
(cl-call-next-method)
@@ -283,8 +281,8 @@ file name searching variable `cedet-idutils-file-command'.")
(oref loc root)))
)
(cl-defmethod ede-locate-ok-in-project ((loc (subclass ede-locate-idutils))
root)
(cl-defmethod ede-locate-ok-in-project ((_loc (subclass ede-locate-idutils))
root)
"Is it ok to use this project type under ROOT."
(require 'cedet-idutils)
(cedet-idutils-version-check)
@@ -301,7 +299,7 @@ that created this EDE locate object."
(cedet-idutils-expand-filename filesubstring)))
(cl-defmethod ede-locate-create/update-root-database
((loc (subclass ede-locate-idutils)) root)
((_loc (subclass ede-locate-idutils)) root)
"Create or update the GNU Global database for the current project."
(cedet-idutils-create/update-database root))
@@ -320,7 +318,7 @@ Configure EDE's use of Cscope through the cedet-cscope.el
file name searching variable `cedet-cscope-file-command'.")
(cl-defmethod initialize-instance ((loc ede-locate-cscope)
&rest slots)
&rest _slots)
"Make sure that we can use Cscope."
;; Get ourselves initialized.
(cl-call-next-method)
@@ -332,8 +330,8 @@ file name searching variable `cedet-cscope-file-command'.")
(oref loc root)))
)
(cl-defmethod ede-locate-ok-in-project ((loc (subclass ede-locate-cscope))
root)
(cl-defmethod ede-locate-ok-in-project ((_loc (subclass ede-locate-cscope))
root)
"Is it ok to use this project type under ROOT."
(require 'cedet-cscope)
(cedet-cscope-version-check)
@@ -350,7 +348,7 @@ that created this EDE locate object."
(cedet-cscope-expand-filename filesubstring)))
(cl-defmethod ede-locate-create/update-root-database
((loc (subclass ede-locate-cscope)) root)
((_loc (subclass ede-locate-cscope)) root)
"Create or update the Cscope database for the current project."
(require 'cedet-cscope)
(cedet-cscope-create/update-database root))

View File

@@ -1,6 +1,6 @@
;;; ede/make.el --- General information about "make" -*- lexical-binding: t -*-
;;; Copyright (C) 2009-2021 Free Software Foundation, Inc.
;; Copyright (C) 2009-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>

View File

@@ -1,4 +1,4 @@
;;; makefile-edit.el --- Makefile editing/scanning commands.
;;; makefile-edit.el --- Makefile editing/scanning commands. -*- lexical-binding: t; -*-
;; Copyright (C) 2009-2021 Free Software Foundation, Inc.

View File

@@ -1,7 +1,6 @@
;;; ede/pconf.el --- configure.ac maintenance for EDE
;;; ede/pconf.el --- configure.ac maintenance for EDE -*- lexical-binding: t; -*-
;;; Copyright (C) 1998-2000, 2005, 2008-2021 Free Software Foundation,
;;; Inc.
;; Copyright (C) 1998-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Keywords: project
@@ -67,7 +66,7 @@ don't do it. A value of nil means to just do it.")
;;(td (file-name-directory (ede-proj-configure-file this)))
(targs (oref this targets))
(postcmd "")
(add-missing nil))
) ;; (add-missing nil)
;; First, make sure we have a file.
(if (not (file-exists-p (ede-proj-configure-file this)))
(autoconf-new-program b (oref this name) "Project.ede"))
@@ -97,7 +96,7 @@ don't do it. A value of nil means to just do it.")
(ede-map-targets sp #'ede-proj-flush-autoconf)))
(ede-map-all-subprojects
this
(lambda (sp)
(lambda (_sp)
(ede-map-targets this #'ede-proj-tweak-autoconf)))
;; Now save
(save-buffer)
@@ -109,14 +108,15 @@ don't do it. A value of nil means to just do it.")
(ede-proj-configure-test-required-file this "README")
(ede-proj-configure-test-required-file this "ChangeLog")
;; Let specific targets get missing files.
(mapc 'ede-proj-configure-create-missing targs)
(mapc #'ede-proj-configure-create-missing targs)
;; Verify that we have a make system.
(if (or (not (ede-expand-filename (ede-toplevel this) "Makefile"))
;; Now is this one of our old Makefiles?
(with-current-buffer
(find-file-noselect
(ede-expand-filename (ede-toplevel this)
"Makefile" t) t)
"Makefile" t)
t)
(goto-char (point-min))
;; Here is the unique piece for our makefiles.
(re-search-forward "For use with: make" nil t)))
@@ -166,11 +166,11 @@ don't do it. A value of nil means to just do it.")
"Tweak the configure file (current buffer) to accommodate THIS."
;; Check the compilers belonging to THIS, and call the autoconf
;; setup for those compilers.
(mapc 'ede-proj-tweak-autoconf (ede-proj-compilers this))
(mapc 'ede-proj-tweak-autoconf (ede-proj-linkers this))
(mapc #'ede-proj-tweak-autoconf (ede-proj-compilers this))
(mapc #'ede-proj-tweak-autoconf (ede-proj-linkers this))
)
(cl-defmethod ede-proj-flush-autoconf ((this ede-proj-target))
(cl-defmethod ede-proj-flush-autoconf ((_this ede-proj-target))
"Flush the configure file (current buffer) to accommodate THIS.
By flushing, remove any cruft that may be in the file. Subsequent
calls to `ede-proj-tweak-autoconf' can restore items removed by flush."
@@ -178,13 +178,13 @@ calls to `ede-proj-tweak-autoconf' can restore items removed by flush."
;; @TODO - No-one calls this ???
(cl-defmethod ede-proj-configure-add-missing ((this ede-proj-target))
(cl-defmethod ede-proj-configure-add-missing ((_this ede-proj-target))
"Query if any files needed by THIS provided by automake are missing.
Results in --add-missing being passed to automake."
nil)
;; @TODO - No-one implements this yet.
(cl-defmethod ede-proj-configure-create-missing ((this ede-proj-target))
(cl-defmethod ede-proj-configure-create-missing ((_this ede-proj-target))
"Add any missing files for THIS by creating them."
nil)

View File

@@ -46,6 +46,7 @@
(require 'ede/proj)
(require 'ede/proj-obj)
(require 'ede/proj-comp)
(require 'seq)
(declare-function ede-srecode-setup "ede/srecode")
(declare-function ede-srecode-insert "ede/srecode")
@@ -111,13 +112,13 @@ MFILENAME is the makefile to generate."
(let* ((targ (if isdist (oref this targets) mt))
(sp (oref this subproj))
(df (apply 'append
(df (apply #'append
(mapcar (lambda (tg)
(ede-proj-makefile-dependency-files tg))
targ))))
;; Distribution variables
(ede-compiler-begin-unique
(mapc 'ede-proj-makefile-insert-variables targ))
(mapc #'ede-proj-makefile-insert-variables targ))
;; Only add the distribution stuff in when depth != 0
(let ((top (ede-toplevel this))
(tmp this)
@@ -153,7 +154,8 @@ MFILENAME is the makefile to generate."
(concat ".deps/"
(file-name-nondirectory
(file-name-sans-extension
f)) ".P"))
f))
".P"))
df " "))))
;;
;; Insert ALL Rule
@@ -188,11 +190,11 @@ MFILENAME is the makefile to generate."
;;
(ede-compiler-begin-unique
(ede-proj-makefile-insert-rules this)
(mapc 'ede-proj-makefile-insert-rules targ))
(mapc #'ede-proj-makefile-insert-rules targ))
;;
;; phony targets for sub projects
;;
(mapc 'ede-proj-makefile-insert-subproj-rules sp)
(mapc #'ede-proj-makefile-insert-subproj-rules sp)
;;
;; Distribution rules such as CLEAN and DIST
;;
@@ -210,11 +212,11 @@ MFILENAME is the makefile to generate."
;; Distribution variables
(let ((targ (if isdist (oref this targets) mt)))
(ede-compiler-begin-unique
(mapc 'ede-proj-makefile-insert-automake-pre-variables targ))
(mapc #'ede-proj-makefile-insert-automake-pre-variables targ))
(ede-compiler-begin-unique
(mapc 'ede-proj-makefile-insert-source-variables targ))
(mapc #'ede-proj-makefile-insert-source-variables targ))
(ede-compiler-begin-unique
(mapc 'ede-proj-makefile-insert-automake-post-variables targ))
(mapc #'ede-proj-makefile-insert-automake-post-variables targ))
(ede-compiler-begin-unique
(ede-proj-makefile-insert-user-rules this))
(insert "\n# End of Makefile.am\n")
@@ -264,14 +266,14 @@ Execute BODY in a location where a value can be placed."
"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
(re-search-backward (concat "^" v "\\s-*=") nil t))
(insert v "=")
,@body
(when addcr (insert "\n"))
(goto-char (point-max)))))
`(let ((v ,varname))
(unless
(save-excursion
(re-search-backward (concat "^" v "\\s-*=") nil t))
(insert v "=")
,@body
(insert "\n")
(goto-char (point-max)))))
;;; SOURCE VARIABLE NAME CONSTRUCTION
@@ -464,9 +466,9 @@ sources variable."
"Return a list of patterns that are considered garbage to THIS.
These are removed with make clean."
(let ((mc (ede-map-targets
this (lambda (c) (ede-proj-makefile-garbage-patterns c))))
this #'ede-proj-makefile-garbage-patterns))
(uniq nil))
(setq mc (sort (apply 'append mc) 'string<))
(setq mc (sort (apply #'append mc) #'string<))
;; Filter out duplicates from the targets.
(while mc
(if (and (car uniq) (string= (car uniq) (car mc)))
@@ -502,13 +504,13 @@ These are removed with make clean."
(cl-defmethod ede-proj-makefile-insert-rules ((this ede-proj-project))
"Insert rules needed by THIS target."
(mapc 'ede-proj-makefile-insert-rules (oref this inference-rules))
(mapc #'ede-proj-makefile-insert-rules (oref this inference-rules))
)
(cl-defmethod ede-proj-makefile-insert-dist-dependencies ((this ede-proj-project))
"Insert any symbols that the DIST rule should depend on.
Argument THIS is the project that should insert stuff."
(mapc 'ede-proj-makefile-insert-dist-dependencies (oref this targets))
(mapc #'ede-proj-makefile-insert-dist-dependencies (oref this targets))
)
(cl-defmethod ede-proj-makefile-insert-dist-dependencies ((_this ede-proj-target))
@@ -608,10 +610,10 @@ Argument THIS is the target that should insert stuff."
(cl-defmethod ede-proj-makefile-insert-rules ((this ede-proj-target-makefile))
"Insert rules needed by THIS target."
(mapc 'ede-proj-makefile-insert-rules (oref this rules))
(mapc #'ede-proj-makefile-insert-rules (oref this rules))
(let ((c (ede-proj-compilers this)))
(when c
(mapc 'ede-proj-makefile-insert-rules c)
(mapc #'ede-proj-makefile-insert-rules c)
(if (oref this phony)
(insert ".PHONY: " (ede-proj-makefile-target-name this) "\n"))
(insert (ede-proj-makefile-target-name this) ": "
@@ -622,9 +624,9 @@ Argument THIS is the target that should insert stuff."
(cl-defmethod ede-proj-makefile-insert-commands ((this ede-proj-target-makefile))
"Insert the commands needed by target THIS.
For targets, insert the commands needed by the chosen compiler."
(mapc 'ede-proj-makefile-insert-commands (ede-proj-compilers this))
(mapc #'ede-proj-makefile-insert-commands (ede-proj-compilers this))
(when (object-assoc t :uselinker (ede-proj-compilers this))
(mapc 'ede-proj-makefile-insert-commands (ede-proj-linkers this))))
(mapc #'ede-proj-makefile-insert-commands (ede-proj-linkers this))))
(cl-defmethod ede-proj-makefile-insert-user-rules ((this ede-proj-project))
@@ -632,11 +634,11 @@ For targets, insert the commands needed by the chosen compiler."
This is different from `ede-proj-makefile-insert-rules' in that this
function won't create the building rules which are auto created with
automake."
(mapc 'ede-proj-makefile-insert-user-rules (oref this inference-rules)))
(mapc #'ede-proj-makefile-insert-user-rules (oref this inference-rules)))
(cl-defmethod ede-proj-makefile-insert-user-rules ((this ede-proj-target))
"Insert user specified rules needed by THIS target."
(mapc 'ede-proj-makefile-insert-rules (oref this rules)))
(mapc #'ede-proj-makefile-insert-rules (oref this rules)))
(cl-defmethod ede-proj-makefile-dependencies ((this ede-proj-target-makefile))
"Return a string representing the dependencies for THIS.
@@ -644,7 +646,7 @@ Some compilers only use the first element in the dependencies, others
have a list of intermediates (object files), and others don't care.
This allows customization of how these elements appear."
(let* ((c (ede-proj-compilers this))
(io (eval (cons 'or (mapcar 'ede-compiler-intermediate-objects-p c))))
(io (seq-some #'ede-compiler-intermediate-objects-p c))
(out nil))
(if io
(progn
@@ -652,7 +654,8 @@ This allows customization of how these elements appear."
(setq out
(concat out "$(" (ede-compiler-intermediate-object-variable
(car c)
(ede-proj-makefile-target-name this)) ")")
(ede-proj-makefile-target-name this))
")")
c (cdr c)))
out)
(let ((sv (ede-proj-makefile-sourcevar this))

View File

@@ -249,13 +249,12 @@ This will prevent rules from creating duplicate variables or rules."
"Add VARNAME into the current Makefile if it doesn't exist.
Execute BODY in a location where a value can be placed."
(declare (indent 1) (debug (sexp body)))
`(let ((addcr t) (v ,varname))
`(let ((v ,varname))
(unless (re-search-backward (concat "^" v "\\s-*=") nil t)
(insert v "=")
,@body
(if addcr (insert "\n"))
(goto-char (point-max)))
))
(insert "\n")
(goto-char (point-max)))))
(cl-defmethod ede-proj-makefile-insert-variables ((this ede-compilation-program))
"Insert variables needed by the compiler THIS."
@@ -309,7 +308,7 @@ Not all compilers do this."
(cl-defmethod ede-proj-makefile-insert-rules ((this ede-compilation-program))
"Insert rules needed for THIS compiler object."
(ede-compiler-only-once this
(mapc 'ede-proj-makefile-insert-rules (oref this rules))))
(mapc #'ede-proj-makefile-insert-rules (oref this rules))))
(cl-defmethod ede-proj-makefile-insert-rules ((this ede-makefile-rule))
"Insert rules needed for THIS rule object."

View File

@@ -1,4 +1,4 @@
;;; ede-proj-elisp.el --- EDE Generic Project Emacs Lisp support
;;; ede-proj-elisp.el --- EDE Generic Project Emacs Lisp support -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2005, 2007-2021 Free Software Foundation, Inc.
@@ -64,7 +64,7 @@ This inserts the PRELOADS target-local variable."
(when preloads
(insert (format "%s: PRELOADS=%s\n"
(oref this name)
(mapconcat 'identity preloads " ")))))
(mapconcat #'identity preloads " ")))))
(insert "\n"))
(cl-defmethod ede-proj-makefile-dependencies ((this ede-proj-target-elisp))
@@ -152,7 +152,7 @@ Bonus: Return a cons cell: (COMPILED . UPTODATE)."
(utd 0))
(mapc (lambda (src)
(let* ((fsrc (expand-file-name src dir))
(elc (concat (file-name-sans-extension fsrc) ".elc")))
) ;; (elc (concat (file-name-sans-extension fsrc) ".elc"))
(with-no-warnings
(if (eq (byte-recompile-file fsrc nil 0) t)
(setq comp (1+ comp))
@@ -169,7 +169,7 @@ is found, such as a `-version' variable, or the standard header."
(if (and (slot-boundp this 'versionsource)
(oref this versionsource))
(let ((vs (oref this versionsource))
(match nil))
) ;; (match nil)
(while vs
(with-current-buffer (find-file-noselect
(ede-expand-filename this (car vs)))
@@ -177,7 +177,7 @@ is found, such as a `-version' variable, or the standard header."
(let ((case-fold-search t))
(if (re-search-forward "-version\\s-+\"\\([^\"]+\\)\"" nil t)
(progn
(setq match t)
;; (setq match t)
(delete-region (match-beginning 1)
(match-end 1))
(goto-char (match-beginning 1))
@@ -331,27 +331,27 @@ Lays claim to all .elc files that match .el files in this target."
If the `compiler' slot is empty, get the car of the compilers list."
(let ((comp (oref obj compiler)))
(if comp
(if (listp comp)
(setq comp (mapcar 'symbol-value comp))
(setq comp (list (symbol-value comp))))
(setq comp (if (listp comp)
(mapcar #'symbol-value comp)
(list (symbol-value comp))))
;; Get the first element from our list of compilers.
(let ((avail (mapcar 'symbol-value (oref obj availablecompilers))))
(let ((avail (mapcar #'symbol-value (oref obj availablecompilers))))
(setq comp (list (car avail)))))
comp))
(cl-defmethod ede-proj-makefile-insert-source-variables ((this ede-proj-target-elisp-autoloads)
&optional
moresource)
(cl-defmethod ede-proj-makefile-insert-source-variables ((_this ede-proj-target-elisp-autoloads)
&optional
_moresource)
"Insert the source variables needed by THIS.
Optional argument MORESOURCE is a list of additional sources to add to the
sources variable."
nil)
(cl-defmethod ede-proj-makefile-sourcevar ((this ede-proj-target-elisp-autoloads))
(cl-defmethod ede-proj-makefile-sourcevar ((_this ede-proj-target-elisp-autoloads))
"Return the variable name for THIS's sources."
nil) ; "LOADDEFS")
(cl-defmethod ede-proj-makefile-dependencies ((this ede-proj-target-elisp-autoloads))
(cl-defmethod ede-proj-makefile-dependencies ((_this ede-proj-target-elisp-autoloads))
"Return a string representing the dependencies for THIS.
Always return an empty string for an autoloads generator."
"")
@@ -361,21 +361,22 @@ Always return an empty string for an autoloads generator."
(ede-pmake-insert-variable-shared "LOADDEFS"
(insert (oref this autoload-file)))
(ede-pmake-insert-variable-shared "LOADDIRS"
(insert (mapconcat 'identity
(insert (mapconcat #'identity
(or (oref this autoload-dirs) '("."))
" ")))
)
(cl-defmethod project-compile-target ((obj ede-proj-target-elisp-autoloads))
"Create or update the autoload target."
(require 'cedet-autogen)
(require 'cedet-autogen) ;FIXME: We don't have this file!
(declare-function cedet-update-autoloads "cedet-autogen")
(let ((default-directory (ede-expand-filename obj ".")))
(apply 'cedet-update-autoloads
(apply #'cedet-update-autoloads
(oref obj autoload-file)
(oref obj autoload-dirs))
))
(cl-defmethod ede-update-version-in-source ((this ede-proj-target-elisp-autoloads) version)
(cl-defmethod ede-update-version-in-source ((_this ede-proj-target-elisp-autoloads) _version)
"In a Lisp file, updated a version string for THIS to VERSION.
There are standards in Elisp files specifying how the version string
is found, such as a `-version' variable, or the standard header."
@@ -397,11 +398,11 @@ Argument THIS is the target which needs to insert an info file."
(insert " " (oref this autoload-file))
)
(cl-defmethod ede-proj-tweak-autoconf ((this ede-proj-target-elisp-autoloads))
(cl-defmethod ede-proj-tweak-autoconf ((_this ede-proj-target-elisp-autoloads))
"Tweak the configure file (current buffer) to accommodate THIS."
(error "Autoloads not supported in autoconf yet"))
(cl-defmethod ede-proj-flush-autoconf ((this ede-proj-target-elisp-autoloads))
(cl-defmethod ede-proj-flush-autoconf ((_this ede-proj-target-elisp-autoloads))
"Flush the configure file (current buffer) to accommodate THIS."
nil)

View File

@@ -1,7 +1,6 @@
;;; ede-proj-info.el --- EDE Generic Project texinfo support
;;; ede-proj-info.el --- EDE Generic Project texinfo support -*- lexical-binding: t; -*-
;;; Copyright (C) 1998-2001, 2004, 2007-2021 Free Software Foundation,
;;; Inc.
;; Copyright (C) 1998-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Keywords: project, make
@@ -70,7 +69,7 @@ All other sources should be included independently."))
;;; Makefile generation
;;
(cl-defmethod ede-proj-configure-add-missing
((this ede-proj-target-makefile-info))
((_this ede-proj-target-makefile-info))
"Query if any files needed by THIS provided by automake are missing.
Results in --add-missing being passed to automake."
(not (ede-expand-filename (ede-toplevel) "texinfo.tex")))
@@ -97,7 +96,7 @@ when working in Automake mode."
(insert menu))
;; Now insert the rest of the source elsewhere
(ede-pmake-insert-variable-shared sv
(insert (mapconcat 'identity src " ")))
(insert (mapconcat #'identity src " ")))
(if moresource
(error "Texinfo files should not have moresource")))))

View File

@@ -1,7 +1,6 @@
;;; ede/proj-obj.el --- EDE Generic Project Object code generation support
;;; ede/proj-obj.el --- EDE Generic Project Object code generation support -*- lexical-binding: t; -*-
;;; Copyright (C) 1998-2000, 2005, 2008-2021 Free Software Foundation,
;;; Inc.
;; Copyright (C) 1998-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Keywords: project, make
@@ -282,15 +281,15 @@ Argument THIS is the target to get sources from."
(append (oref this source) (oref this auxsource)))
(cl-defmethod ede-proj-makefile-insert-variables ((this ede-proj-target-makefile-objectcode)
&optional moresource)
&optional _moresource)
"Insert variables needed by target THIS.
Optional argument MORESOURCE is not used."
(let ((ede-proj-objectcode-dodependencies
(oref (ede-target-parent this) automatic-dependencies)))
(cl-call-next-method)))
(cl-defmethod ede-buffer-header-file((this ede-proj-target-makefile-objectcode)
buffer)
(cl-defmethod ede-buffer-header-file ((this ede-proj-target-makefile-objectcode)
_buffer)
"There are no default header files."
(or (cl-call-next-method)
;; Ok, nothing obvious. Try looking in ourselves.

View File

@@ -1,4 +1,4 @@
;;; ede-proj-prog.el --- EDE Generic Project program support
;;; ede-proj-prog.el --- EDE Generic Project program support -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2001, 2005, 2008-2021 Free Software Foundation,
;; Inc.
@@ -90,11 +90,11 @@ Note: Currently only used for Automake projects."
(cl-defmethod ede-proj-makefile-insert-variables ((this ede-proj-target-makefile-program))
"Insert variables needed by the compiler THIS."
(cl-call-next-method)
(let ((lf (mapconcat 'identity (oref this ldflags) " ")))
(let ((lf (mapconcat #'identity (oref this ldflags) " ")))
(with-slots (ldlibs) this
(if ldlibs
(setq lf
(concat lf " -l" (mapconcat 'identity ldlibs " -l")))))
(concat lf " -l" (mapconcat #'identity ldlibs " -l")))))
;; LDFLAGS as needed.
(when (and lf (not (string= "" lf)))
(ede-pmake-insert-variable-once "LDDEPS" (insert lf)))))

View File

@@ -1,6 +1,6 @@
;;; ede-proj-shared.el --- EDE Generic Project shared library support
;;; ede-proj-shared.el --- EDE Generic Project shared library support -*- lexical-binding: t; -*-
;;; Copyright (C) 1998-2000, 2009-2021 Free Software Foundation, Inc.
;; Copyright (C) 1998-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Keywords: project, make
@@ -170,7 +170,7 @@ Use ldlibs to add addition libraries.")
)
(cl-defmethod ede-proj-configure-add-missing
((this ede-proj-target-makefile-shared-object))
((_this ede-proj-target-makefile-shared-object))
"Query if any files needed by THIS provided by automake are missing.
Results in --add-missing being passed to automake."
(not (and (ede-expand-filename (ede-toplevel) "ltconfig")
@@ -185,7 +185,7 @@ Makefile.am generator, so use it to add this important bin program."
(insert (concat "lib" (ede-name this) ".la"))))
(cl-defmethod ede-proj-makefile-insert-automake-post-variables
((this ede-proj-target-makefile-shared-object))
((_this ede-proj-target-makefile-shared-object))
"Insert bin_PROGRAMS variables needed by target THIS.
We need to override -program which has an LDADD element."
nil)

View File

@@ -1,4 +1,4 @@
;;; ede/proj.el --- EDE Generic Project file driver
;;; ede/proj.el --- EDE Generic Project file driver -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2003, 2007-2021 Free Software Foundation, Inc.
@@ -339,7 +339,7 @@ Argument PROJ is the project to save."
(cl-call-next-method)
(ede-proj-save proj))
(cl-defmethod eieio-done-customizing ((target ede-proj-target))
(cl-defmethod eieio-done-customizing ((_target ede-proj-target))
"Call this when a user finishes customizing this object.
Argument TARGET is the project we are completing customization on."
(cl-call-next-method)
@@ -462,7 +462,7 @@ FILE must be massaged by `ede-convert-path'."
(object-remove-from-list target 'auxsource (ede-convert-path target file))
(ede-proj-save))
(cl-defmethod project-update-version ((this ede-proj-project))
(cl-defmethod project-update-version ((_this ede-proj-project))
"The :version of project THIS has changed."
(ede-proj-save))
@@ -486,7 +486,7 @@ FILE must be massaged by `ede-convert-path'."
(concat (oref this name) "-" (oref this version) ".tar.gz")
))
(cl-defmethod project-compile-project ((proj ede-proj-project) &optional command)
(cl-defmethod project-compile-project ((proj ede-proj-project) &optional _command)
"Compile the entire current project PROJ.
Argument COMMAND is the command to use when compiling."
(let ((pm (ede-proj-dist-makefile proj))
@@ -499,13 +499,13 @@ Argument COMMAND is the command to use when compiling."
;;; Target type specific compilations/debug
;;
(cl-defmethod project-compile-target ((obj ede-proj-target) &optional command)
(cl-defmethod project-compile-target ((_obj ede-proj-target) &optional command)
"Compile the current target OBJ.
Argument COMMAND is the command to use for compiling the target."
(project-compile-project (ede-current-project) command))
(cl-defmethod project-compile-target ((obj ede-proj-target-makefile)
&optional command)
&optional _command)
"Compile the current target program OBJ.
Optional argument COMMAND is the s the alternate command to use."
(ede-proj-setup-buildenvironment (ede-current-project))
@@ -545,11 +545,11 @@ Converts all symbols into the objects to be used."
(if comp
;; Now that we have a pre-set compilers to use, convert tye symbols
;; into objects for ease of use
(if (listp comp)
(setq comp (mapcar 'symbol-value comp))
(setq comp (list (symbol-value comp))))
(setq comp (if (listp comp)
(mapcar #'symbol-value comp)
(list (symbol-value comp))))
(let* ((acomp (oref obj availablecompilers))
(avail (mapcar 'symbol-value acomp))
(avail (mapcar #'symbol-value acomp))
(st (oref obj sourcetype))
(sources (oref obj source)))
;; COMP is not specified, so generate a list from the available
@@ -585,7 +585,7 @@ Converts all symbols into the objects to be used."
(setq link (list (symbol-value link)))
(error ":linker is not a symbol. Howd you do that?"))
(let* ((alink (oref obj availablelinkers))
(avail (mapcar 'symbol-value alink))
(avail (mapcar #'symbol-value alink))
(st (oref obj sourcetype))
(sources (oref obj source)))
;; LINKER is not specified, so generate a list from the available

View File

@@ -1,4 +1,4 @@
;;; ede/shell.el --- A shell controlled by EDE.
;;; ede/shell.el --- A shell controlled by EDE. -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2009-2021 Free Software Foundation, Inc.
;;

View File

@@ -1,4 +1,4 @@
;;; ede/simple.el --- Overlay an EDE structure on an existing project
;;; ede/simple.el --- Overlay an EDE structure on an existing project -*- lexical-binding: t; -*-
;; Copyright (C) 2007-2021 Free Software Foundation, Inc.
@@ -78,7 +78,7 @@ The directory has three parts:
ede-simple-save-file-name)
))
(defun ede-simple-load (dir &optional rootproj)
(defun ede-simple-load (dir &optional _rootproj)
"Load a project of type `Simple' for the directory DIR.
Return nil if there isn't one.
ROOTPROJ is nil, since we will only create a single EDE project here."
@@ -112,7 +112,7 @@ Each directory needs a project file to control it.")
(eieio-persistent-save proj))
(cl-defmethod ede-find-subproject-for-directory ((proj ede-simple-project)
dir)
_dir)
"Return PROJ, for handling all subdirs below DIR."
proj)

View File

@@ -1,4 +1,4 @@
;; ede/source.el --- EDE source code object
;; ede/source.el --- EDE source code object -*- lexical-binding: t; -*-
;; Copyright (C) 2000, 2008-2021 Free Software Foundation, Inc.
@@ -72,7 +72,7 @@ that they are willing to use.")
;;; Methods
;;
(cl-defmethod initialize-instance :after ((this ede-sourcecode) &rest fields)
(cl-defmethod initialize-instance :after ((this ede-sourcecode) &rest _fields)
"Make sure that all ede compiler objects are cached in
`ede-compiler-list'."
(let ((lst ede-sourcecode-list))

View File

@@ -1,4 +1,4 @@
;;; ede/speedbar.el --- Speedbar viewing of EDE projects
;;; ede/speedbar.el --- Speedbar viewing of EDE projects -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2001, 2003, 2005, 2007-2021 Free Software
;; Foundation, Inc.
@@ -42,21 +42,21 @@
(setq ede-speedbar-key-map (speedbar-make-specialized-keymap))
;; General viewing things
(define-key ede-speedbar-key-map "\C-m" 'speedbar-edit-line)
(define-key ede-speedbar-key-map "+" 'speedbar-expand-line)
(define-key ede-speedbar-key-map "=" 'speedbar-expand-line)
(define-key ede-speedbar-key-map "-" 'speedbar-contract-line)
(define-key ede-speedbar-key-map " " 'speedbar-toggle-line-expansion)
(define-key ede-speedbar-key-map "\C-m" #'speedbar-edit-line)
(define-key ede-speedbar-key-map "+" #'speedbar-expand-line)
(define-key ede-speedbar-key-map "=" #'speedbar-expand-line)
(define-key ede-speedbar-key-map "-" #'speedbar-contract-line)
(define-key ede-speedbar-key-map " " #'speedbar-toggle-line-expansion)
;; Some object based things
(define-key ede-speedbar-key-map "C" 'eieio-speedbar-customize-line)
(define-key ede-speedbar-key-map "C" #'eieio-speedbar-customize-line)
;; Some project based things
(define-key ede-speedbar-key-map "R" 'ede-speedbar-remove-file-from-target)
(define-key ede-speedbar-key-map "b" 'ede-speedbar-compile-line)
(define-key ede-speedbar-key-map "B" 'ede-speedbar-compile-project)
(define-key ede-speedbar-key-map "D" 'ede-speedbar-make-distribution)
(define-key ede-speedbar-key-map "E" 'ede-speedbar-edit-projectfile)
(define-key ede-speedbar-key-map "R" #'ede-speedbar-remove-file-from-target)
(define-key ede-speedbar-key-map "b" #'ede-speedbar-compile-line)
(define-key ede-speedbar-key-map "B" #'ede-speedbar-compile-project)
(define-key ede-speedbar-key-map "D" #'ede-speedbar-make-distribution)
(define-key ede-speedbar-key-map "E" #'ede-speedbar-edit-projectfile)
)
(defvar ede-speedbar-menu
@@ -98,7 +98,7 @@
(speedbar-get-focus)
)
(defun ede-speedbar-toplevel-buttons (dir)
(defun ede-speedbar-toplevel-buttons (_dir)
"Return a list of objects to display in speedbar.
Argument DIR is the directory from which to derive the list of objects."
ede-projects
@@ -180,13 +180,13 @@ Argument DIR is the directory from which to derive the list of objects."
(setq depth (1- depth)))
(speedbar-line-token))))
(cl-defmethod eieio-speedbar-derive-line-path ((obj ede-project) &optional depth)
(cl-defmethod eieio-speedbar-derive-line-path ((obj ede-project) &optional _depth)
"Return the path to OBJ.
Optional DEPTH is the depth we start at."
(file-name-directory (oref obj file))
)
(cl-defmethod eieio-speedbar-derive-line-path ((obj ede-target) &optional depth)
(cl-defmethod eieio-speedbar-derive-line-path ((obj ede-target) &optional _depth)
"Return the path to OBJ.
Optional DEPTH is the depth we start at."
(let ((proj (ede-target-parent obj)))
@@ -208,7 +208,7 @@ Optional DEPTH is the depth we start at."
"Provide a speedbar description for OBJ."
(ede-description obj))
(cl-defmethod eieio-speedbar-child-description ((obj ede-target))
(cl-defmethod eieio-speedbar-child-description ((_obj ede-target))
"Provide a speedbar description for a plain-child of OBJ.
A plain child is a child element which is not an EIEIO object."
(or (speedbar-item-info-file-helper)
@@ -251,7 +251,7 @@ It has depth DEPTH."
;;; Generic file management for TARGETS
;;
(defun ede-file-find (text token indent)
(defun ede-file-find (_text token indent)
"Find the file TEXT at path TOKEN.
INDENT is the current indentation level."
(speedbar-find-file-in-frame
@@ -290,7 +290,7 @@ level."
(t (error "Ooops... not sure what to do")))
(speedbar-center-buffer-smartly))
(defun ede-tag-find (text token indent)
(defun ede-tag-find (_text token _indent)
"For the tag TEXT in a file TOKEN, goto that position.
INDENT is the current indentation level."
(let ((file (ede-find-nearest-file-line)))
@@ -314,21 +314,21 @@ INDENT is the current indentation level."
(defvar ede-speedbar-file-menu-additions
'("----"
["Create EDE Target" ede-new-target (ede-current-project) ]
["Add to project" ede-speedbar-file-add-to-project (ede-current-project) ]
;; ["Add to project" ede-speedbar-file-add-to-project (ede-current-project) ]
["Compile project" ede-speedbar-compile-project (ede-current-project) ]
["Compile file target" ede-speedbar-compile-file-target (ede-current-project) ]
;; ["Compile file target" ede-speedbar-compile-file-target (ede-current-project) ]
["Make distribution" ede-make-dist (ede-current-project) ]
)
"Set of menu items to splice into the speedbar menu.")
(defvar ede-speedbar-file-keymap
(let ((km (make-sparse-keymap)))
(define-key km "a" 'ede-speedbar-file-add-to-project)
(define-key km "t" 'ede-new-target)
(define-key km "s" 'ede-speedbar)
(define-key km "C" 'ede-speedbar-compile-project)
(define-key km "c" 'ede-speedbar-compile-file-target)
(define-key km "d" 'ede-make-dist)
;; (define-key km "a" #'ede-speedbar-file-add-to-project)
(define-key km "t" #'ede-new-target)
(define-key km "s" #'ede-speedbar)
(define-key km "C" #'ede-speedbar-compile-project)
;; (define-key km "c" #'ede-speedbar-compile-file-target)
(define-key km "d" #'ede-make-dist)
km)
"Keymap spliced into the speedbar keymap.")

View File

@@ -1,4 +1,4 @@
;;; ede/util.el --- EDE utilities
;;; ede/util.el --- EDE utilities -*- lexical-binding: t; -*-
;; Copyright (C) 2000, 2005, 2009-2021 Free Software Foundation, Inc.

View File

@@ -576,7 +576,7 @@ OVERARGS is a list of arguments passed to the override and
(put :override-with-args 'lisp-indent-function 1)
(define-obsolete-function-alias 'define-overload
'define-overloadable-function "27.1")
#'define-overloadable-function "27.1")
(define-obsolete-function-alias 'function-overload-p
#'mode-local--function-overload-p "27.1")

View File

@@ -30,10 +30,9 @@
;;
;; The following are useful entry points:
;;
;; `pulse' - Cause `pulse-highlight-face' to shift toward background color.
;; `pulse-tick' - Cause `pulse-highlight-face' to shift toward background color.
;; Assumes you are using a version of Emacs that supports pulsing.
;;
;;
;; `pulse-momentary-highlight-one-line' - Pulse a single line at POINT.
;; `pulse-momentary-highlight-region' - Pulse a region.
;; `pulse-momentary-highlight-overlay' - Pulse an overlay.
@@ -50,7 +49,9 @@
;;
;; Pulse is a part of CEDET. http://cedet.sf.net
(defun pulse-available-p ()
(require 'color)
(defun pulse-available-p ()
"Return non-nil if pulsing is available on the current frame."
(condition-case nil
(let ((v (color-values (face-background 'default))))
@@ -90,69 +91,27 @@ Face used for temporary highlighting of tags for effect."
:group 'pulse)
;;; Code:
;;
(defun pulse-int-to-hex (int &optional nb-digits)
"Convert integer argument INT to a #XXXXXXXXXXXX format hex string.
Each X in the output string is a hexadecimal digit.
NB-DIGITS is the number of hex digits. If INT is too large to be
represented with NB-DIGITS, then the result is truncated from the
left. So, for example, INT=256 and NB-DIGITS=2 returns \"00\", since
the hex equivalent of 256 decimal is 100, which is more than 2 digits.
This function was blindly copied from hexrgb.el by Drew Adams.
https://www.emacswiki.org/emacs/hexrgb.el"
(setq nb-digits (or nb-digits 4))
(substring (format (concat "%0" (int-to-string nb-digits) "X") int) (- nb-digits)))
(defun pulse-color-values-to-hex (values)
"Convert list of rgb color VALUES to a hex string, #XXXXXXXXXXXX.
Each X in the string is a hexadecimal digit.
Input VALUES is as for the output of `x-color-values'.
This function was blindly copied from hexrgb.el by Drew Adams.
https://www.emacswiki.org/emacs/hexrgb.el"
(concat "#"
(pulse-int-to-hex (nth 0 values) 4) ; red
(pulse-int-to-hex (nth 1 values) 4) ; green
(pulse-int-to-hex (nth 2 values) 4))) ; blue
(defcustom pulse-iterations 10
"Number of iterations in a pulse operation."
:group 'pulse
:type 'number)
(defcustom pulse-delay .03
"Delay between face lightening iterations."
:group 'pulse
:type 'number)
(defun pulse-lighten-highlight ()
"Lighten the face by 1/`pulse-iterations' toward the background color.
Return t if there is more drift to do, nil if completed."
(if (>= (get 'pulse-highlight-face :iteration) pulse-iterations)
nil
(let* ((frame (color-values (face-background 'default)))
(pulse-background (face-background
(get 'pulse-highlight-face
:startface)
nil t)));; can be nil
(when pulse-background
(let* ((start (color-values pulse-background))
(frac (list (/ (- (nth 0 frame) (nth 0 start)) pulse-iterations)
(/ (- (nth 1 frame) (nth 1 start)) pulse-iterations)
(/ (- (nth 2 frame) (nth 2 start)) pulse-iterations)))
(it (get 'pulse-highlight-face :iteration))
)
(set-face-background 'pulse-highlight-face
(pulse-color-values-to-hex
(list
(+ (nth 0 start) (* (nth 0 frac) it))
(+ (nth 1 start) (* (nth 1 frac) it))
(+ (nth 2 start) (* (nth 2 frac) it)))))
(put 'pulse-highlight-face :iteration (1+ it))
(if (>= (1+ it) pulse-iterations)
nil
t)))
)))
;;; Convenience Functions
;;
(defvar pulse-momentary-overlay nil
"The current pulsing overlay.")
(defvar pulse-momentary-timer nil
"The current pulsing timer.")
(defvar pulse-momentary-iteration 0
"The current pulsing iteration.")
(defun pulse-reset-face (&optional face)
"Reset the pulse highlighting FACE."
@@ -166,15 +125,7 @@ Return t if there is more drift to do, nil if completed."
(face-extend-p face nil t)))
(put 'pulse-highlight-face :startface (or face
'pulse-highlight-start-face))
(put 'pulse-highlight-face :iteration 0))
;;; Convenience Functions
;;
(defvar pulse-momentary-overlay nil
"The current pulsing overlay.")
(defvar pulse-momentary-timer nil
"The current pulsing timer.")
(setq pulse-momentary-iteration 0))
(defun pulse-momentary-highlight-overlay (o &optional face)
"Pulse the overlay O, unhighlighting before next command.
@@ -194,21 +145,29 @@ Optional argument FACE specifies the face to do the highlighting."
(progn
(overlay-put o 'face (or face 'pulse-highlight-start-face))
(add-hook 'pre-command-hook
'pulse-momentary-unhighlight))
#'pulse-momentary-unhighlight))
;; Pulse it.
(overlay-put o 'face 'pulse-highlight-face)
;; The pulse function puts FACE onto 'pulse-highlight-face.
;; Thus above we put our face on the overlay, but pulse
;; with a reference face needed for the color.
(pulse-reset-face face)
(setq pulse-momentary-timer
(run-with-timer 0 pulse-delay #'pulse-tick
(time-add nil
(* pulse-delay pulse-iterations)))))))
(let* ((start (color-name-to-rgb
(face-background 'pulse-highlight-start-face)))
(stop (color-name-to-rgb (face-background 'default)))
(colors (mapcar (apply-partially 'apply 'color-rgb-to-hex)
(color-gradient start stop pulse-iterations))))
(setq pulse-momentary-timer
(run-with-timer 0 pulse-delay #'pulse-tick
colors
(time-add nil
(* pulse-delay pulse-iterations))))))))
(defun pulse-tick (stop-time)
(defun pulse-tick (colors stop-time)
(if (time-less-p nil stop-time)
(pulse-lighten-highlight)
(when-let (color (elt colors pulse-momentary-iteration))
(set-face-background 'pulse-highlight-face color)
(setq pulse-momentary-iteration (1+ pulse-momentary-iteration)))
(pulse-momentary-unhighlight)))
(defun pulse-momentary-unhighlight ()
@@ -233,7 +192,7 @@ Optional argument FACE specifies the face to do the highlighting."
(cancel-timer pulse-momentary-timer))
;; Remove this hook.
(remove-hook 'pre-command-hook 'pulse-momentary-unhighlight))
(remove-hook 'pre-command-hook #'pulse-momentary-unhighlight))
;;;###autoload
(defun pulse-momentary-highlight-one-line (point &optional face)

View File

@@ -1,4 +1,4 @@
;;; semantic.el --- Semantic buffer evaluator.
;;; semantic.el --- Semantic buffer evaluator. -*- lexical-binding: t; -*-
;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
@@ -297,7 +297,7 @@ to use Semantic, and `semantic-init-hook' is run."
'semantic-inhibit-functions)))
;; Make sure that if this buffer is cloned, our tags and overlays
;; don't go along for the ride.
(add-hook 'clone-indirect-buffer-hook 'semantic-clear-toplevel-cache
(add-hook 'clone-indirect-buffer-hook #'semantic-clear-toplevel-cache
nil t)
;; Specify that this function has done its work. At this point
;; we can consider that semantic is active in this buffer.
@@ -466,12 +466,12 @@ is requested."
;; Nuke all semantic overlays. This is faster than deleting based
;; on our data structure.
(let ((l (overlay-lists)))
(mapc 'semantic-delete-overlay-maybe (car l))
(mapc 'semantic-delete-overlay-maybe (cdr l))
(mapc #'semantic-delete-overlay-maybe (car l))
(mapc #'semantic-delete-overlay-maybe (cdr l))
)
(semantic-parse-tree-set-needs-rebuild)
;; Remove this hook which tracks if a buffer is up to date or not.
(remove-hook 'after-change-functions 'semantic-change-function t)
(remove-hook 'after-change-functions #'semantic-change-function t)
(run-hook-with-args 'semantic-after-toplevel-cache-change-hook
semantic--buffer-cache)
@@ -487,7 +487,7 @@ is requested."
;; This is specific to the bovine parser.
(setq-local semantic-bovinate-nonterminal-check-obarray nil)
(semantic-parse-tree-set-up-to-date)
(add-hook 'after-change-functions 'semantic-change-function nil t)
(add-hook 'after-change-functions #'semantic-change-function nil t)
(run-hook-with-args 'semantic-after-toplevel-cache-change-hook
semantic--buffer-cache)
(setq semantic--completion-cache nil)
@@ -779,25 +779,25 @@ Throw away all the old tags, and recreate the tag database."
(defvar semantic-mode-map
(let ((map (make-sparse-keymap)))
;; Key bindings:
;; (define-key km "f" 'senator-search-set-tag-class-filter)
;; (define-key km "i" 'senator-isearch-toggle-semantic-mode)
(define-key map "\C-c,j" 'semantic-complete-jump-local)
(define-key map "\C-c,J" 'semantic-complete-jump)
(define-key map "\C-c,m" 'semantic-complete-jump-local-members)
(define-key map "\C-c,g" 'semantic-symref-symbol)
(define-key map "\C-c,G" 'semantic-symref)
(define-key map "\C-c,p" 'senator-previous-tag)
(define-key map "\C-c,n" 'senator-next-tag)
(define-key map "\C-c,u" 'senator-go-to-up-reference)
(define-key map "\C-c, " 'semantic-complete-analyze-inline)
(define-key map "\C-c,\C-w" 'senator-kill-tag)
(define-key map "\C-c,\M-w" 'senator-copy-tag)
(define-key map "\C-c,\C-y" 'senator-yank-tag)
(define-key map "\C-c,r" 'senator-copy-tag-to-register)
(define-key map "\C-c,," 'semantic-force-refresh)
(define-key map [?\C-c ?, up] 'senator-transpose-tags-up)
(define-key map [?\C-c ?, down] 'senator-transpose-tags-down)
(define-key map "\C-c,l" 'semantic-analyze-possible-completions)
;; (define-key km "f" #'senator-search-set-tag-class-filter)
;; (define-key km "i" #'senator-isearch-toggle-semantic-mode)
(define-key map "\C-c,j" #'semantic-complete-jump-local)
(define-key map "\C-c,J" #'semantic-complete-jump)
(define-key map "\C-c,m" #'semantic-complete-jump-local-members)
(define-key map "\C-c,g" #'semantic-symref-symbol)
(define-key map "\C-c,G" #'semantic-symref)
(define-key map "\C-c,p" #'senator-previous-tag)
(define-key map "\C-c,n" #'senator-next-tag)
(define-key map "\C-c,u" #'senator-go-to-up-reference)
(define-key map "\C-c, " #'semantic-complete-analyze-inline)
(define-key map "\C-c,\C-w" #'senator-kill-tag)
(define-key map "\C-c,\M-w" #'senator-copy-tag)
(define-key map "\C-c,\C-y" #'senator-yank-tag)
(define-key map "\C-c,r" #'senator-copy-tag-to-register)
(define-key map "\C-c,," #'semantic-force-refresh)
(define-key map [?\C-c ?, up] #'senator-transpose-tags-up)
(define-key map [?\C-c ?, down] #'senator-transpose-tags-down)
(define-key map "\C-c,l" #'semantic-analyze-possible-completions)
;; This hack avoids showing the CEDET menu twice if ede-minor-mode
;; and Semantic are both enabled. Is there a better way?
(define-key map [menu-bar cedet-menu]
@@ -1029,7 +1029,7 @@ Semantic mode.
(file-exists-p semanticdb-default-system-save-directory))
(require 'semantic/db-ebrowse)
(semanticdb-load-ebrowse-caches)))
(add-hook 'mode-local-init-hook 'semantic-new-buffer-fcn)
(add-hook 'mode-local-init-hook #'semantic-new-buffer-fcn)
;; Add semantic-ia-complete-symbol to
;; completion-at-point-functions, so that it is run from
;; M-TAB.
@@ -1037,11 +1037,11 @@ Semantic mode.
;; Note: The first entry added is the last entry run, so the
;; most specific entry should be last.
(add-hook 'completion-at-point-functions
'semantic-analyze-nolongprefix-completion-at-point-function)
#'semantic-analyze-nolongprefix-completion-at-point-function)
(add-hook 'completion-at-point-functions
'semantic-analyze-notc-completion-at-point-function)
#'semantic-analyze-notc-completion-at-point-function)
(add-hook 'completion-at-point-functions
'semantic-analyze-completion-at-point-function)
#'semantic-analyze-completion-at-point-function)
(if (bound-and-true-p global-ede-mode)
(define-key cedet-menu-map [cedet-menu-separator] '("--")))
@@ -1052,21 +1052,21 @@ Semantic mode.
;; introduced in the buffer is pretty much futile, but we have to
;; clean the hooks and delete Semantic-related overlays, so that
;; Semantic can be re-activated cleanly.
(remove-hook 'mode-local-init-hook 'semantic-new-buffer-fcn)
(remove-hook 'mode-local-init-hook #'semantic-new-buffer-fcn)
(remove-hook 'completion-at-point-functions
'semantic-analyze-completion-at-point-function)
#'semantic-analyze-completion-at-point-function)
(remove-hook 'completion-at-point-functions
'semantic-analyze-notc-completion-at-point-function)
#'semantic-analyze-notc-completion-at-point-function)
(remove-hook 'completion-at-point-functions
'semantic-analyze-nolongprefix-completion-at-point-function)
#'semantic-analyze-nolongprefix-completion-at-point-function)
(remove-hook 'after-change-functions
'semantic-change-function)
#'semantic-change-function)
(define-key cedet-menu-map [cedet-menu-separator] nil)
(define-key cedet-menu-map [semantic-options-separator] nil)
;; FIXME: handle semanticdb-load-ebrowse-caches
(dolist (mode semantic-submode-list)
(if (and (boundp mode) (eval mode))
(if (and (boundp mode) (symbol-value mode))
(funcall mode -1)))
;; Unlink buffer and clear cache
(semantic--tag-unlink-cache-from-buffer)

View File

@@ -1,6 +1,6 @@
;;; semantic/analyze/debug.el --- Debug the analyzer -*- lexical-binding: t; -*-
;;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
@@ -593,19 +593,20 @@ Look for key expressions, and add push-buttons near them."
(setq-local semantic-analyzer-debug-orig orig-buffer)
;; First, add do-in buttons to recommendations.
(while (re-search-forward "^\\s-*M-x \\(\\(\\w\\|\\s_\\)+\\) " nil t)
(let ((fcn (match-string 1)))
(when (not (fboundp (intern-soft fcn)))
(let* ((fcn (match-string 1))
(fsym (intern-soft fcn)))
(when (not (fboundp fsym))
(error "Help Err: Can't find %s" fcn))
(end-of-line)
(insert " ")
(insert-button "[ Do It ]"
'mouse-face 'custom-button-pressed-face
'do-fcn fcn
'action `(lambda (arg)
(let ((M semantic-analyzer-debug-orig))
(set-buffer (marker-buffer M))
(goto-char M))
(call-interactively (quote ,(intern-soft fcn))))))))
'action (lambda (_arg)
(let ((M semantic-analyzer-debug-orig))
(set-buffer (marker-buffer M))
(goto-char M))
(call-interactively fsym))))))
;; Do something else?
;; Clean up the mess
(set-buffer-modified-p nil))))

View File

@@ -218,7 +218,7 @@ Uses default implementation, and also gets a list of filenames."
;; but not actually parsed.
(file . "File"))
semantic-case-fold t
semantic-tag-expand-function 'semantic-make-expand-tag
semantic-tag-expand-function #'semantic-make-expand-tag
semantic-lex-syntax-modifications '((?. "_")
(?= ".")
(?/ "_")
@@ -226,7 +226,7 @@ Uses default implementation, and also gets a list of filenames."
(?+ ".")
(?\\ ".")
)
imenu-create-index-function 'semantic-create-imenu-index
imenu-create-index-function #'semantic-create-imenu-index
)
(setq semantic-lex-analyzer #'semantic-make-lexer)
)

View File

@@ -1,6 +1,6 @@
;;; semantic/bovine/scm.el --- Semantic details for Scheme (guile) -*- lexical-binding: t; -*-
;;; Copyright (C) 2001-2004, 2008-2021 Free Software Foundation, Inc.
;; Copyright (C) 2001-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
@@ -102,8 +102,7 @@ syntax as specified by the syntax table."
(function . "Functions")
(include . "Loads")
(package . "DefineModule"))
imenu-create-index-function 'semantic-create-imenu-index
imenu-create-index-function 'semantic-create-imenu-index
imenu-create-index-function #'semantic-create-imenu-index
)
(setq semantic-lex-analyzer #'semantic-scheme-lexer)
)

View File

@@ -1,4 +1,4 @@
;;; semantic/chart.el --- Utilities for use with semantic tag tables
;;; semantic/chart.el --- Utilities for use with semantic tag tables -*- lexical-binding: t; -*-
;; Copyright (C) 1999-2001, 2003, 2005, 2008-2021 Free Software
;; Foundation, Inc.
@@ -43,7 +43,7 @@ TAGTABLE is passed to `semantic-something-to-tag-table'."
(interactive)
(let* ((stream (semantic-something-to-tag-table
(or tagtable (current-buffer))))
(names (mapcar 'cdr semantic-symbol->name-assoc-list))
(names (mapcar #'cdr semantic-symbol->name-assoc-list))
(nums (mapcar
(lambda (symname)
(length
@@ -57,7 +57,7 @@ TAGTABLE is passed to `semantic-something-to-tag-table'."
nums "Volume")
))
(defun semantic-chart-database-size (&optional tagtable)
(defun semantic-chart-database-size (&optional _tagtable)
"Create a bar chart representing the size of each file in semanticdb.
Each bar represents how many toplevel tags in TAGTABLE
exist in each database entry.
@@ -68,7 +68,7 @@ TAGTABLE is passed to `semantic-something-to-tag-table'."
(error "Semanticdb is not enabled"))
(let* ((db semanticdb-current-database)
(dbt (semanticdb-get-database-tables db))
(names (mapcar 'car
(names (mapcar #'car
(object-assoc-list
'file
dbt)))
@@ -84,8 +84,8 @@ TAGTABLE is passed to `semantic-something-to-tag-table'."
(nums nil)
(fh (/ (- (frame-height) 7) 4)))
(setq numnuts (sort numnuts (lambda (a b) (> (car a) (car b)))))
(setq names (mapcar 'cdr numnuts)
nums (mapcar 'car numnuts))
(setq names (mapcar #'cdr numnuts)
nums (mapcar #'car numnuts))
(if (> (length names) fh)
(progn
(setcdr (nthcdr fh names) nil)

View File

@@ -1,4 +1,4 @@
;;; semantic/complete.el --- Routines for performing tag completion
;;; semantic/complete.el --- Routines for performing tag completion -*- lexical-binding: t; -*-
;; Copyright (C) 2003-2005, 2007-2021 Free Software Foundation, Inc.
@@ -154,8 +154,8 @@ Presumably if you call this you will insert something new there."
(defun semantic-completion-message (fmt &rest args)
"Display the string FMT formatted with ARGS at the end of the minibuffer."
(if semantic-complete-inline-overlay
(apply 'message fmt args)
(apply 'message (concat "%s" fmt) (buffer-string) args)))
(apply #'message fmt args)
(apply #'message (concat "%s" fmt) (buffer-string) args)))
;;; ------------------------------------------------------------
;;; MINIBUFFER: Option Selection harnesses
@@ -171,14 +171,14 @@ Value should be a ... what?")
(defvar semantic-complete-key-map
(let ((km (make-sparse-keymap)))
(define-key km " " 'semantic-complete-complete-space)
(define-key km "\t" 'semantic-complete-complete-tab)
(define-key km "\C-m" 'semantic-complete-done)
(define-key km "\C-g" 'abort-recursive-edit)
(define-key km "\M-n" 'next-history-element)
(define-key km "\M-p" 'previous-history-element)
(define-key km "\C-n" 'next-history-element)
(define-key km "\C-p" 'previous-history-element)
(define-key km " " #'semantic-complete-complete-space)
(define-key km "\t" #'semantic-complete-complete-tab)
(define-key km "\C-m" #'semantic-complete-done)
(define-key km "\C-g" #'abort-recursive-edit)
(define-key km "\M-n" #'next-history-element)
(define-key km "\M-p" #'previous-history-element)
(define-key km "\C-n" #'next-history-element)
(define-key km "\C-p" #'previous-history-element)
;; Add history navigation
km)
"Keymap used while completing across a list of tags.")
@@ -488,7 +488,7 @@ If PARTIAL, do partial completion stopping at spaces."
)
(t nil))))
(defun semantic-complete-do-completion (&optional partial inline)
(defun semantic-complete-do-completion (&optional partial _inline)
"Do a completion for the current minibuffer.
If PARTIAL, do partial completion stopping at spaces.
if INLINE, then completion is happening inline in a buffer."
@@ -550,12 +550,12 @@ if INLINE, then completion is happening inline in a buffer."
;; push ourselves out of this mode on alternate keypresses.
(defvar semantic-complete-inline-map
(let ((km (make-sparse-keymap)))
(define-key km "\C-i" 'semantic-complete-inline-TAB)
(define-key km "\M-p" 'semantic-complete-inline-up)
(define-key km "\M-n" 'semantic-complete-inline-down)
(define-key km "\C-m" 'semantic-complete-inline-done)
(define-key km "\C-\M-c" 'semantic-complete-inline-exit)
(define-key km "\C-g" 'semantic-complete-inline-quit)
(define-key km "\C-i" #'semantic-complete-inline-TAB)
(define-key km "\M-p" #'semantic-complete-inline-up)
(define-key km "\M-n" #'semantic-complete-inline-down)
(define-key km "\C-m" #'semantic-complete-inline-done)
(define-key km "\C-\M-c" #'semantic-complete-inline-exit)
(define-key km "\C-g" #'semantic-complete-inline-quit)
(define-key km "?"
(lambda () (interactive)
(describe-variable 'semantic-complete-inline-map)))
@@ -620,7 +620,7 @@ Similar to `minibuffer-contents' when completing in the minibuffer."
"Exit inline completion mode."
(interactive)
;; Remove this hook FIRST!
(remove-hook 'pre-command-hook 'semantic-complete-pre-command-hook)
(remove-hook 'pre-command-hook #'semantic-complete-pre-command-hook)
(condition-case nil
(progn
@@ -649,7 +649,7 @@ Similar to `minibuffer-contents' when completing in the minibuffer."
;; Remove this hook LAST!!!
;; This will force us back through this function if there was
;; some sort of error above.
(remove-hook 'post-command-hook 'semantic-complete-post-command-hook)
(remove-hook 'post-command-hook #'semantic-complete-post-command-hook)
;;(message "Exiting inline completion.")
)
@@ -770,8 +770,8 @@ END is at the end of the current symbol being completed."
(overlay-put semantic-complete-inline-overlay
'semantic-original-start start)
;; Install our command hooks
(add-hook 'pre-command-hook 'semantic-complete-pre-command-hook)
(add-hook 'post-command-hook 'semantic-complete-post-command-hook)
(add-hook 'pre-command-hook #'semantic-complete-pre-command-hook)
(add-hook 'post-command-hook #'semantic-complete-post-command-hook)
;; Go!
(semantic-complete-inline-force-display)
)
@@ -929,8 +929,8 @@ The only options available for completion are those which can be logically
inserted into the current context.")
(cl-defmethod semantic-collector-calculate-completions-raw
((obj semantic-collector-analyze-completions) prefix completionlist)
"calculate the completions for prefix from completionlist."
((obj semantic-collector-analyze-completions) prefix _completionlist)
"calculate the completions for prefix from COMPLETIONLIST."
;; if there are no completions yet, calculate them.
(if (not (slot-boundp obj 'first-pass-completions))
(oset obj first-pass-completions
@@ -943,7 +943,7 @@ inserted into the current context.")
prefix
(oref obj first-pass-completions)))))
(cl-defmethod semantic-collector-cleanup ((obj semantic-collector-abstract))
(cl-defmethod semantic-collector-cleanup ((_obj semantic-collector-abstract))
"Clean up any mess this collector may have."
nil)
@@ -1004,7 +1004,7 @@ Output must be in semanticdb Find result format."
(list (cons table result)))))
(cl-defmethod semantic-collector-calculate-completions
((obj semantic-collector-abstract) prefix partial)
((obj semantic-collector-abstract) prefix _partial)
"Calculate completions for prefix as setup for other queries."
(let* ((case-fold-search semantic-case-fold)
(same-prefix-p (semantic-collector-last-prefix= obj prefix))
@@ -1014,7 +1014,8 @@ Output must be in semanticdb Find result format."
(cond ((or same-prefix-p
(and last-prefix (eq (compare-strings
last-prefix 0 nil
prefix 0 (length last-prefix)) t)))
prefix 0 (length last-prefix))
t)))
;; We have the same prefix, or last-prefix is a
;; substring of the of new prefix, in which case we are
;; refining our symbol so just re-use cache.
@@ -1023,7 +1024,8 @@ Output must be in semanticdb Find result format."
(> (length prefix) 1)
(eq (compare-strings
prefix 0 nil
last-prefix 0 (length prefix)) t))
last-prefix 0 (length prefix))
t))
;; The new prefix is a substring of the old
;; prefix, and it's longer than one character.
;; Perform a full search to pull in additional
@@ -1134,7 +1136,7 @@ into a buffer."
(semanticdb-find-result-nth-in-buffer (oref obj current-exact-match) 0)))
(cl-defmethod semantic-collector-all-completions
((obj semantic-collector-abstract) prefix)
((obj semantic-collector-abstract) _prefix)
"For OBJ, retrieve all completions matching PREFIX.
The returned list consists of all the tags currently
matching PREFIX."
@@ -1142,7 +1144,7 @@ matching PREFIX."
(oref obj last-all-completions)))
(cl-defmethod semantic-collector-try-completion
((obj semantic-collector-abstract) prefix)
((obj semantic-collector-abstract) _prefix)
"For OBJ, attempt to match PREFIX.
See `try-completion' for details on how this works.
Return nil for no match.
@@ -1153,7 +1155,7 @@ with that name."
(oref obj last-completion)))
(cl-defmethod semantic-collector-calculate-cache
((obj semantic-collector-abstract))
((_obj semantic-collector-abstract))
"Calculate the completion cache for OBJ."
nil
)
@@ -1176,7 +1178,7 @@ These collectors track themselves on a per-buffer basis."
:abstract t)
(cl-defmethod make-instance ((this (subclass semantic-collector-buffer-abstract))
&rest args)
&rest _args)
"Reuse previously created objects of this type in buffer."
(let ((old nil)
(bl semantic-collector-per-buffer-list))
@@ -1193,7 +1195,7 @@ These collectors track themselves on a per-buffer basis."
old))
;; Buffer specific collectors should flush themselves
(defun semantic-collector-buffer-flush (newcache)
(defun semantic-collector-buffer-flush (_newcache)
"Flush all buffer collector objects.
NEWCACHE is the new tag table, but we ignore it."
(condition-case nil
@@ -1204,7 +1206,7 @@ NEWCACHE is the new tag table, but we ignore it."
(error nil)))
(add-hook 'semantic-after-toplevel-cache-change-hook
'semantic-collector-buffer-flush)
#'semantic-collector-buffer-flush)
;;; DEEP BUFFER SPECIFIC COMPLETION
;;
@@ -1246,8 +1248,8 @@ Uses semanticdb for searching all tags in the current project."
(cl-defmethod semantic-collector-calculate-completions-raw
((obj semantic-collector-project) prefix completionlist)
"Calculate the completions for prefix from completionlist."
((obj semantic-collector-project) prefix _completionlist)
"Calculate the completions for prefix from COMPLETIONLIST."
(semanticdb-find-tags-for-completion prefix (oref obj path)))
;;; Brutish Project search
@@ -1259,8 +1261,8 @@ Uses semanticdb for searching all tags in the current project."
"semantic/db-find")
(cl-defmethod semantic-collector-calculate-completions-raw
((obj semantic-collector-project-brutish) prefix completionlist)
"Calculate the completions for prefix from completionlist."
((obj semantic-collector-project-brutish) prefix _completionlist)
"Calculate the completions for prefix from COMPLETIONLIST."
(require 'semantic/db-find)
(semanticdb-brute-deep-find-tags-for-completion prefix (oref obj path)))
@@ -1273,8 +1275,8 @@ Uses semanticdb for searching all tags in the current project."
"Completion engine for tags in a project.")
(cl-defmethod semantic-collector-calculate-completions-raw
((obj semantic-collector-local-members) prefix completionlist)
"Calculate the completions for prefix from completionlist."
((obj semantic-collector-local-members) prefix _completionlist)
"Calculate the completions for prefix from COMPLETIONLIST."
(let* ((scope (or (oref obj scope)
(oset obj scope (semantic-calculate-scope))))
(localstuff (oref scope scope)))
@@ -1323,7 +1325,7 @@ a collector, and tracking tables of completion to display."
(define-obsolete-function-alias 'semantic-displayor-cleanup
#'semantic-displayer-cleanup "27.1")
(cl-defmethod semantic-displayer-cleanup ((obj semantic-displayer-abstract))
(cl-defmethod semantic-displayer-cleanup ((_obj semantic-displayer-abstract))
"Clean up any mess this displayer may have."
nil)
@@ -1348,37 +1350,37 @@ a collector, and tracking tables of completion to display."
(define-obsolete-function-alias 'semantic-displayor-show-request
#'semantic-displayer-show-request "27.1")
(cl-defmethod semantic-displayer-show-request ((obj semantic-displayer-abstract))
(cl-defmethod semantic-displayer-show-request ((_obj semantic-displayer-abstract))
"A request to show the current tags table."
(ding))
(define-obsolete-function-alias 'semantic-displayor-focus-request
#'semantic-displayer-focus-request "27.1")
(cl-defmethod semantic-displayer-focus-request ((obj semantic-displayer-abstract))
(cl-defmethod semantic-displayer-focus-request ((_obj semantic-displayer-abstract))
"A request to for the displayer to focus on some tag option."
(ding))
(define-obsolete-function-alias 'semantic-displayor-scroll-request
#'semantic-displayer-scroll-request "27.1")
(cl-defmethod semantic-displayer-scroll-request ((obj semantic-displayer-abstract))
(cl-defmethod semantic-displayer-scroll-request ((_obj semantic-displayer-abstract))
"A request to for the displayer to scroll the completion list (if needed)."
(scroll-other-window))
(define-obsolete-function-alias 'semantic-displayor-focus-previous
#'semantic-displayer-focus-previous "27.1")
(cl-defmethod semantic-displayer-focus-previous ((obj semantic-displayer-abstract))
(cl-defmethod semantic-displayer-focus-previous ((_obj semantic-displayer-abstract))
"Set the current focus to the previous item."
nil)
(define-obsolete-function-alias 'semantic-displayor-focus-next
#'semantic-displayer-focus-next "27.1")
(cl-defmethod semantic-displayer-focus-next ((obj semantic-displayer-abstract))
(cl-defmethod semantic-displayer-focus-next ((_obj semantic-displayer-abstract))
"Set the current focus to the next item."
nil)
(define-obsolete-function-alias 'semantic-displayor-current-focus
#'semantic-displayer-current-focus "27.1")
(cl-defmethod semantic-displayer-current-focus ((obj semantic-displayer-abstract))
(cl-defmethod semantic-displayer-current-focus ((_obj semantic-displayer-abstract))
"Return a single tag currently in focus.
This object type doesn't do focus, so will never have a focus object."
nil)
@@ -1452,7 +1454,7 @@ which have the same name."
(define-obsolete-function-alias 'semantic-displayor-set-completions
#'semantic-displayer-set-completions "27.1")
(cl-defmethod semantic-displayer-set-completions ((obj semantic-displayer-focus-abstract)
table prefix)
_table _prefix)
"Set the list of tags to be completed over to TABLE."
(cl-call-next-method)
(slot-makeunbound obj 'focus))
@@ -1663,7 +1665,7 @@ This will not happen if you directly set this variable via `setq'."
"Display completions options in a tooltip.
Display mechanism using tooltip for a list of possible completions.")
(cl-defmethod initialize-instance :after ((obj semantic-displayer-tooltip) &rest args)
(cl-defmethod initialize-instance :after ((_obj semantic-displayer-tooltip) &rest _args)
"Make sure we have tooltips required."
(require 'tooltip))
@@ -1681,16 +1683,16 @@ Display mechanism using tooltip for a list of possible completions.")
(table (semantic-unique-tag-table-by-name tablelong))
(completions (mapcar semantic-completion-displayer-format-tag-function table))
(numcompl (length completions))
(typing-count (oref obj typing-count))
;; (typing-count (oref obj typing-count))
(mode (oref obj mode))
(max-tags (oref obj max-tags-initial))
(matchtxt (semantic-completion-text))
msg msg-tail)
;; Keep a count of the consecutive completion commands entered by the user.
(if (and (stringp (this-command-keys))
(string= (this-command-keys) "\C-i"))
(oset obj typing-count (1+ (oref obj typing-count)))
(oset obj typing-count 0))
(oset obj typing-count
(if (equal (this-command-keys) "\C-i")
(1+ (oref obj typing-count))
0))
(cond
((eq mode 'quiet)
;; Switch back to standard mode if user presses key more than 5 times.
@@ -1730,7 +1732,7 @@ Display mechanism using tooltip for a list of possible completions.")
(when semantic-idle-scheduler-verbose-flag
(setq msg "[NO MATCH]"))))
;; Create the tooltip text.
(setq msg (concat msg (mapconcat 'identity completions "\n"))))
(setq msg (concat msg (mapconcat #'identity completions "\n"))))
;; Add any tail info.
(setq msg (concat msg msg-tail))
;; Display tooltip.
@@ -1828,12 +1830,10 @@ text using overlay options.")
(define-obsolete-function-alias 'semantic-displayor-set-completions
#'semantic-displayer-set-completions "27.1")
(cl-defmethod semantic-displayer-set-completions ((obj semantic-displayer-ghost)
table prefix)
_table _prefix)
"Set the list of tags to be completed over to TABLE."
(cl-call-next-method)
(semantic-displayer-cleanup obj)
)
(semantic-displayer-cleanup obj))
(define-obsolete-function-alias 'semantic-displayor-show-request
@@ -2058,9 +2058,8 @@ prompts. these are calculated from the CONTEXT variable passed in."
(semantic-displayer-traditional-with-focus-highlight)
(with-current-buffer (oref context buffer)
(goto-char (cdr (oref context bounds)))
(concat prompt (mapconcat 'identity syms ".")
(if syms "." "")
))
(concat prompt (mapconcat #'identity syms ".")
(if syms "." "")))
nil
inp
history)))

View File

@@ -1,6 +1,6 @@
;;; semantic/db-debug.el --- Extra level debugging routines for Semantic
;;; semantic/db-debug.el --- Extra level debugging routines for Semantic -*- lexical-binding: t; -*-
;;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
@@ -38,7 +38,7 @@
(data-debug-new-buffer "*SEMANTICDB*")
(data-debug-insert-stuff-list db "*")))
(defalias 'semanticdb-adebug-database-list 'semanticdb-dump-all-table-summary)
(defalias 'semanticdb-adebug-database-list #'semanticdb-dump-all-table-summary)
(defun semanticdb-adebug-current-database ()
"Run ADEBUG on the current database."

View File

@@ -1,4 +1,4 @@
;;; semantic/db-ebrowse.el --- Semanticdb backend using ebrowse.
;;; semantic/db-ebrowse.el --- Semanticdb backend using ebrowse. -*- lexical-binding: t; -*-
;; Copyright (C) 2005-2021 Free Software Foundation, Inc.
@@ -135,8 +135,8 @@ is specified by `semanticdb-default-save-directory'."
(let* ((savein (semanticdb-ebrowse-file-for-directory dir))
(filebuff (get-buffer-create "*SEMANTICDB EBROWSE TMP*"))
(files (directory-files (expand-file-name dir) t))
(mma auto-mode-alist)
(regexp nil)
;; (mma auto-mode-alist)
;; (regexp nil)
)
;; Create the input to the ebrowse command
(with-current-buffer filebuff
@@ -227,7 +227,7 @@ warn instead."
()
"Search Ebrowse for symbols.")
(cl-defmethod semanticdb-needs-refresh-p ((table semanticdb-table-ebrowse))
(cl-defmethod semanticdb-needs-refresh-p ((_table semanticdb-table-ebrowse))
"EBROWSE database do not need to be refreshed.
JAVE: stub for needs-refresh, because, how do we know if BROWSE files
@@ -274,7 +274,7 @@ For instance: /home/<username>/.semanticdb/!usr!include!BROWSE"
(insert-file-contents B)
(let ((ans nil)
(efcn (symbol-function 'ebrowse-show-progress)))
(fset 'ebrowse-show-progress #'(lambda (&rest junk) nil))
(fset 'ebrowse-show-progress #'(lambda (&rest _junk) nil))
(unwind-protect ;; Protect against errors w/ ebrowse
(setq ans (list B (ebrowse-read)))
;; These items must always happen
@@ -341,10 +341,10 @@ If there is no database for DIRECTORY available, then
(while T
(let* ((tree (car T))
(class (ebrowse-ts-class tree)); root class of tree
;;(class (ebrowse-ts-class tree)); root class of tree
;; Something funny going on with this file thing...
(filename (or (ebrowse-cs-source-file class)
(ebrowse-cs-file class)))
;; (filename (or (ebrowse-cs-source-file class)
;; (ebrowse-cs-file class)))
)
(cond
((ebrowse-globals-tree-p tree)
@@ -363,18 +363,18 @@ If there is no database for DIRECTORY available, then
;;; Filename based methods
;;
(defun semanticdb-ebrowse-add-globals-to-table (dbe tree)
(defun semanticdb-ebrowse-add-globals-to-table (_dbe tree)
"For database DBE, add the ebrowse TREE into the table."
(if (or (not (ebrowse-ts-p tree))
(not (ebrowse-globals-tree-p tree)))
(signal 'wrong-type-argument (list 'ebrowse-ts-p tree)))
(let* ((class (ebrowse-ts-class tree))
(fname (or (ebrowse-cs-source-file class)
(ebrowse-cs-file class)
;; Not def'd here, assume our current
;; file
(concat default-directory "/unknown-proxy.hh")))
;; (fname (or (ebrowse-cs-source-file class)
;; (ebrowse-cs-file class)
;; ;; Not def'd here, assume our current
;; ;; file
;; (concat default-directory "/unknown-proxy.hh")))
(vars (ebrowse-ts-member-functions tree))
(fns (ebrowse-ts-member-variables tree))
(toks nil)
@@ -573,7 +573,7 @@ return that."
;; how your new search routines are implemented.
;;
(cl-defmethod semanticdb-find-tags-by-name-method
((table semanticdb-table-ebrowse) name &optional tags)
((_table semanticdb-table-ebrowse) _name &optional tags)
"Find all tags named NAME in TABLE.
Return a list of tags."
;;(message "semanticdb-find-tags-by-name-method name -- %s" name)
@@ -588,7 +588,7 @@ Return a list of tags."
)
(cl-defmethod semanticdb-find-tags-by-name-regexp-method
((table semanticdb-table-ebrowse) regex &optional tags)
((_table semanticdb-table-ebrowse) _regex &optional tags)
"Find all tags with name matching REGEX in TABLE.
Optional argument TAGS is a list of tags to search.
Return a list of tags."
@@ -598,7 +598,7 @@ Return a list of tags."
))
(cl-defmethod semanticdb-find-tags-for-completion-method
((table semanticdb-table-ebrowse) prefix &optional tags)
((_table semanticdb-table-ebrowse) _prefix &optional tags)
"In TABLE, find all occurrences of tags matching PREFIX.
Optional argument TAGS is a list of tags to search.
Returns a table of all matching tags."
@@ -608,7 +608,7 @@ Returns a table of all matching tags."
))
(cl-defmethod semanticdb-find-tags-by-class-method
((table semanticdb-table-ebrowse) class &optional tags)
((_table semanticdb-table-ebrowse) _class &optional tags)
"In TABLE, find all occurrences of tags of CLASS.
Optional argument TAGS is a list of tags to search.
Returns a table of all matching tags."
@@ -625,7 +625,7 @@ Returns a table of all matching tags."
;;
(cl-defmethod semanticdb-deep-find-tags-by-name-method
((table semanticdb-table-ebrowse) name &optional tags)
((_table semanticdb-table-ebrowse) _name &optional _tags)
"Find all tags name NAME in TABLE.
Optional argument TAGS is a list of tags to search.
Like `semanticdb-find-tags-by-name-method' for ebrowse."
@@ -633,7 +633,7 @@ Like `semanticdb-find-tags-by-name-method' for ebrowse."
(cl-call-next-method))
(cl-defmethod semanticdb-deep-find-tags-by-name-regexp-method
((table semanticdb-table-ebrowse) regex &optional tags)
((_table semanticdb-table-ebrowse) _regex &optional _tags)
"Find all tags with name matching REGEX in TABLE.
Optional argument TAGS is a list of tags to search.
Like `semanticdb-find-tags-by-name-method' for ebrowse."
@@ -641,7 +641,7 @@ Like `semanticdb-find-tags-by-name-method' for ebrowse."
(cl-call-next-method))
(cl-defmethod semanticdb-deep-find-tags-for-completion-method
((table semanticdb-table-ebrowse) prefix &optional tags)
((_table semanticdb-table-ebrowse) _prefix &optional _tags)
"In TABLE, find all occurrences of tags matching PREFIX.
Optional argument TAGS is a list of tags to search.
Like `semanticdb-find-tags-for-completion-method' for ebrowse."
@@ -651,7 +651,7 @@ Like `semanticdb-find-tags-for-completion-method' for ebrowse."
;;; Advanced Searches
;;
(cl-defmethod semanticdb-find-tags-external-children-of-type-method
((table semanticdb-table-ebrowse) type &optional tags)
((_table semanticdb-table-ebrowse) _type &optional tags)
"Find all nonterminals which are child elements of TYPE
Optional argument TAGS is a list of tags to search.
Return a list of tags."

View File

@@ -1,6 +1,6 @@
;;; semantic/db-el.el --- Semantic database extensions for Emacs Lisp
;;; semantic/db-el.el --- Semantic database extensions for Emacs Lisp -*- lexical-binding: t; -*-
;;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Keywords: tags
@@ -53,7 +53,7 @@ It does not need refreshing."
"Return nil, we never need a refresh."
nil)
(cl-defmethod semanticdb-debug-info ((obj semanticdb-table-emacs-lisp))
(cl-defmethod semanticdb-debug-info ((_obj semanticdb-table-emacs-lisp))
(list "(proxy)"))
(cl-defmethod cl-print-object ((obj semanticdb-table-emacs-lisp) stream)

View File

@@ -1,6 +1,6 @@
;;; semantic/db-file.el --- Save a semanticdb to a cache file.
;;; semantic/db-file.el --- Save a semanticdb to a cache file. -*- lexical-binding: t; -*-
;;; Copyright (C) 2000-2005, 2007-2021 Free Software Foundation, Inc.
;; Copyright (C) 2000-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Keywords: tags
@@ -358,13 +358,13 @@ Uses `semanticdb-persistent-path' to determine the return value."
(object-assoc (file-name-nondirectory filename) 'file (oref obj tables)))
(cl-defmethod semanticdb-file-name-non-directory
((dbclass (subclass semanticdb-project-database-file)))
((_dbclass (subclass semanticdb-project-database-file)))
"Return the file name DBCLASS will use.
File name excludes any directory part."
semanticdb-default-file-name)
(cl-defmethod semanticdb-file-name-directory
((dbclass (subclass semanticdb-project-database-file)) directory)
((_dbclass (subclass semanticdb-project-database-file)) directory)
"Return the relative directory to where DBCLASS will save its cache file.
The returned path is related to DIRECTORY."
(if semanticdb-default-save-directory

View File

@@ -1,4 +1,4 @@
;;; semantic/db-find.el --- Searching through semantic databases.
;;; semantic/db-find.el --- Searching through semantic databases. -*- lexical-binding: t; -*-
;; Copyright (C) 2000-2021 Free Software Foundation, Inc.
@@ -209,14 +209,14 @@ This class will cache data derived during various searches.")
)
(cl-defmethod semanticdb-synchronize ((idx semanticdb-find-search-index)
new-tags)
_new-tags)
"Synchronize the search index IDX with some NEW-TAGS."
;; Reset our parts.
(semantic-reset idx)
;; Notify dependants by clearing their indices.
(semanticdb-notify-references
(oref idx table)
(lambda (tab me)
(lambda (tab _me)
(semantic-reset (semanticdb-get-table-index tab))))
)
@@ -230,7 +230,7 @@ This class will cache data derived during various searches.")
;; Notify dependants by clearing their indices.
(semanticdb-notify-references
(oref idx table)
(lambda (tab me)
(lambda (tab _me)
(semantic-reset (semanticdb-get-table-index tab))))
)
;; Else, not an include, by just a type.
@@ -240,7 +240,7 @@ This class will cache data derived during various searches.")
;; Notify dependants by clearing their indices.
(semanticdb-notify-references
(oref idx table)
(lambda (tab me)
(lambda (tab _me)
(let ((tab-idx (semanticdb-get-table-index tab)))
;; Not a full reset?
(when (oref tab-idx type-cache)
@@ -791,7 +791,8 @@ PREBUTTONTEXT is some text between prefix and the overlay button."
(file (semantic-tag-file-name tag))
(str1 (format "%S %s" mode name))
(str2 (format " : %s" file))
(tip nil))
;; (tip nil)
)
(insert prefix prebuttontext str1)
(setq end (point))
(insert str2)
@@ -807,7 +808,7 @@ PREBUTTONTEXT is some text between prefix and the overlay button."
(put-text-property start end 'ddebug (cdr consdata))
(put-text-property start end 'ddebug-indent(length prefix))
(put-text-property start end 'ddebug-prefix prefix)
(put-text-property start end 'help-echo tip)
;; (put-text-property start end 'help-echo tip)
(put-text-property start end 'ddebug-function
'data-debug-insert-tag-parts-from-point)
(insert "\n")
@@ -1009,7 +1010,7 @@ is still made current."
(when norm
;; The normalized tags can now be found based on that
;; tags table.
(condition-case foo
(condition-case nil
(progn
(semanticdb-set-buffer (car norm))
;; Now reset ans

View File

@@ -1,4 +1,4 @@
;;; semantic/db-global.el --- Semantic database extensions for GLOBAL
;;; semantic/db-global.el --- Semantic database extensions for GLOBAL -*- lexical-binding: t; -*-
;; Copyright (C) 2002-2006, 2008-2021 Free Software Foundation, Inc.
@@ -69,7 +69,8 @@ values."
(let ((semanticdb--ih (mode-local-value mode 'semantic-init-mode-hook)))
(eval `(setq-mode-local
,mode semantic-init-mode-hook
(cons 'semanticdb-enable-gnu-global-hook semanticdb--ih))))
(cons 'semanticdb-enable-gnu-global-hook ',semanticdb--ih))
t))
t
)
)
@@ -114,7 +115,7 @@ if optional DONT-ERR-IF-NOT-AVAILABLE is non-nil; else throw an error."
)
"A table for returning search results from GNU Global.")
(cl-defmethod semanticdb-debug-info ((obj semanticdb-table-global))
(cl-defmethod semanticdb-debug-info ((_obj semanticdb-table-global))
(list "(proxy)"))
(cl-defmethod cl-print-object ((obj semanticdb-table-global) stream)
@@ -123,7 +124,7 @@ Adds the number of tags in this file to the object print name."
(princ (eieio-object-name obj (semanticdb-debug-info obj))
stream))
(cl-defmethod semanticdb-equivalent-mode ((table semanticdb-table-global) &optional buffer)
(cl-defmethod semanticdb-equivalent-mode ((_table semanticdb-table-global) &optional _buffer)
"Return t, pretend that this table's mode is equivalent to BUFFER.
Equivalent modes are specified by the `semantic-equivalent-major-modes'
local variable."
@@ -146,7 +147,7 @@ For each file hit, get the traditional semantic table from that file."
(cl-call-next-method))
(cl-defmethod semanticdb-file-table ((obj semanticdb-project-database-global) filename)
(cl-defmethod semanticdb-file-table ((obj semanticdb-project-database-global) _filename)
"From OBJ, return FILENAME's associated table object."
;; We pass in "don't load". I wonder if we need to avoid that or not?
(car (semanticdb-get-database-tables obj))
@@ -157,7 +158,7 @@ For each file hit, get the traditional semantic table from that file."
;; Only NAME based searches work with GLOBAL as that is all it tracks.
;;
(cl-defmethod semanticdb-find-tags-by-name-method
((table semanticdb-table-global) name &optional tags)
((_table semanticdb-table-global) name &optional tags)
"Find all tags named NAME in TABLE.
Return a list of tags."
(if tags
@@ -174,7 +175,7 @@ Return a list of tags."
)))
(cl-defmethod semanticdb-find-tags-by-name-regexp-method
((table semanticdb-table-global) regex &optional tags)
((_table semanticdb-table-global) regex &optional tags)
"Find all tags with name matching REGEX in TABLE.
Optional argument TAGS is a list of tags to search.
Return a list of tags."
@@ -187,7 +188,7 @@ Return a list of tags."
)))
(cl-defmethod semanticdb-find-tags-for-completion-method
((table semanticdb-table-global) prefix &optional tags)
((_table semanticdb-table-global) prefix &optional tags)
"In TABLE, find all occurrences of tags matching PREFIX.
Optional argument TAGS is a list of tags to search.
Returns a table of all matching tags."

View File

@@ -1,4 +1,4 @@
;;; semantic/db-javascript.el --- Semantic database extensions for javascript
;;; semantic/db-javascript.el --- Semantic database extensions for javascript -*- lexical-binding: t; -*-
;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
@@ -129,20 +129,20 @@ Create one of our special tables that can act as an intermediary."
(cl-call-next-method)
)
(cl-defmethod semanticdb-file-table ((obj semanticdb-project-database-javascript) filename)
(cl-defmethod semanticdb-file-table ((obj semanticdb-project-database-javascript) _filename)
"From OBJ, return FILENAME's associated table object."
;; NOTE: See not for `semanticdb-get-database-tables'.
(car (semanticdb-get-database-tables obj))
)
(cl-defmethod semanticdb-get-tags ((table semanticdb-table-javascript ))
(cl-defmethod semanticdb-get-tags ((_table semanticdb-table-javascript ))
"Return the list of tags belonging to TABLE."
;; NOTE: Omniscient databases probably don't want to keep large tables
;; lolly-gagging about. Keep internal Emacs tables empty and
;; refer to alternate databases when you need something.
semanticdb-javascript-tags)
(cl-defmethod semanticdb-equivalent-mode ((table semanticdb-table-javascript) &optional buffer)
(cl-defmethod semanticdb-equivalent-mode ((_table semanticdb-table-javascript) &optional buffer)
"Return non-nil if TABLE's mode is equivalent to BUFFER.
Equivalent modes are specified by the `semantic-equivalent-major-modes'
local variable."
@@ -193,7 +193,7 @@ database (if available.)"
result))
(cl-defmethod semanticdb-find-tags-by-name-method
((table semanticdb-table-javascript) name &optional tags)
((_table semanticdb-table-javascript) name &optional tags)
"Find all tags named NAME in TABLE.
Return a list of tags."
(if tags
@@ -203,7 +203,7 @@ Return a list of tags."
))
(cl-defmethod semanticdb-find-tags-by-name-regexp-method
((table semanticdb-table-javascript) regex &optional tags)
((_table semanticdb-table-javascript) regex &optional tags)
"Find all tags with name matching REGEX in TABLE.
Optional argument TAGS is a list of tags to search.
Return a list of tags."
@@ -214,7 +214,7 @@ Return a list of tags."
))
(cl-defmethod semanticdb-find-tags-for-completion-method
((table semanticdb-table-javascript) prefix &optional tags)
((_table semanticdb-table-javascript) prefix &optional tags)
"In TABLE, find all occurrences of tags matching PREFIX.
Optional argument TAGS is a list of tags to search.
Returns a table of all matching tags."
@@ -224,7 +224,7 @@ Returns a table of all matching tags."
))
(cl-defmethod semanticdb-find-tags-by-class-method
((table semanticdb-table-javascript) class &optional tags)
((_table semanticdb-table-javascript) _class &optional tags)
"In TABLE, find all occurrences of tags of CLASS.
Optional argument TAGS is a list of tags to search.
Returns a table of all matching tags."
@@ -268,7 +268,7 @@ Like `semanticdb-find-tags-for-completion-method' for javascript."
;;; Advanced Searches
;;
(cl-defmethod semanticdb-find-tags-external-children-of-type-method
((table semanticdb-table-javascript) type &optional tags)
((_table semanticdb-table-javascript) _type &optional tags)
"Find all nonterminals which are child elements of TYPE.
Optional argument TAGS is a list of tags to search.
Return a list of tags."

View File

@@ -1,4 +1,4 @@
;;; semantic/db-mode.el --- Semanticdb Minor Mode
;;; semantic/db-mode.el --- Semanticdb Minor Mode -*- lexical-binding: t; -*-
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.

View File

@@ -1,6 +1,6 @@
;;; semantic/db-ref.el --- Handle cross-db file references
;;; semantic/db-ref.el --- Handle cross-db file references -*- lexical-binding: t; -*-
;;; Copyright (C) 2007-2021 Free Software Foundation, Inc.
;; Copyright (C) 2007-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
@@ -67,7 +67,7 @@ will be added to the database that INCLUDE-TAG refers to."
(object-add-to-list refdbt 'db-refs dbt)
t)))
(cl-defmethod semanticdb-check-references ((dbt semanticdb-abstract-table))
(cl-defmethod semanticdb-check-references ((_dbt semanticdb-abstract-table))
"Check and cleanup references in the database DBT.
Abstract tables would be difficult to reference."
;; Not sure how an abstract table can have references.
@@ -109,7 +109,7 @@ refers to DBT will be removed."
))
(setq refs (cdr refs)))))
(cl-defmethod semanticdb-refresh-references ((dbt semanticdb-abstract-table))
(cl-defmethod semanticdb-refresh-references ((_dbt semanticdb-abstract-table))
"Refresh references to DBT in other files."
;; alternate tables can't be edited, so can't be changed.
nil

View File

@@ -1,4 +1,4 @@
;;; semantic/db-typecache.el --- Manage Datatypes
;;; semantic/db-typecache.el --- Manage Datatypes -*- lexical-binding: t; -*-
;; Copyright (C) 2007-2021 Free Software Foundation, Inc.
@@ -74,14 +74,14 @@ Said object must support `semantic-reset' methods.")
(oset tc stream nil)
(mapc 'semantic-reset (oref tc dependants))
(mapc #'semantic-reset (oref tc dependants))
(oset tc dependants nil)
)
(cl-defmethod semanticdb-typecache-notify-reset ((tc semanticdb-typecache))
"Do a reset from a notify from a table we depend on."
(oset tc includestream nil)
(mapc 'semantic-reset (oref tc dependants))
(mapc #'semantic-reset (oref tc dependants))
(oset tc dependants nil)
)
@@ -90,7 +90,7 @@ Said object must support `semantic-reset' methods.")
"Reset the typecache based on a partial reparse."
(when (semantic-find-tags-by-class 'include new-tags)
(oset tc includestream nil)
(mapc 'semantic-reset (oref tc dependants))
(mapc #'semantic-reset (oref tc dependants))
(oset tc dependants nil)
)
@@ -167,15 +167,15 @@ If there is no table, create one, and fill it in."
(oset tc stream nil)
)
(cl-defmethod semanticdb-synchronize ((cache semanticdb-database-typecache)
new-tags)
(cl-defmethod semanticdb-synchronize ((_cache semanticdb-database-typecache)
_new-tags)
"Synchronize a CACHE with some NEW-TAGS."
)
nil)
(cl-defmethod semanticdb-partial-synchronize ((cache semanticdb-database-typecache)
new-tags)
(cl-defmethod semanticdb-partial-synchronize ((_cache semanticdb-database-typecache)
_new-tags)
"Synchronize a CACHE with some changed NEW-TAGS."
)
nil)
(cl-defmethod semanticdb-get-typecache ((db semanticdb-project-database))
"Retrieve the typecache from the semantic database DB.
@@ -312,7 +312,7 @@ If TAG has fully qualified names, expand it to a series of nested
namespaces instead."
tag)
(cl-defmethod semanticdb-typecache-file-tags ((table semanticdb-abstract-table))
(cl-defmethod semanticdb-typecache-file-tags ((_table semanticdb-abstract-table))
"No tags available from non-file based tables."
nil)
@@ -338,7 +338,7 @@ all included files."
(oref cache filestream)
))
(cl-defmethod semanticdb-typecache-include-tags ((table semanticdb-abstract-table))
(cl-defmethod semanticdb-typecache-include-tags ((_table semanticdb-abstract-table))
"No tags available from non-file based tables."
nil)
@@ -611,7 +611,7 @@ If there isn't one, create it.
(require 'data-debug)
(let* ((tab semanticdb-current-table)
(idx (semanticdb-get-table-index tab))
(junk (oset idx type-cache nil)) ;; flush!
(_ (oset idx type-cache nil)) ;; flush!
(start (current-time))
(tc (semanticdb-typecache-for-database (oref tab parent-db)))
(end (current-time))

View File

@@ -1,4 +1,4 @@
;;; semantic/debug.el --- Language Debugger framework
;;; semantic/debug.el --- Language Debugger framework -*- lexical-binding: t; -*-
;; Copyright (C) 2003-2005, 2008-2021 Free Software Foundation, Inc.
@@ -265,12 +265,12 @@ on different types of return values."
)
"One frame representation.")
(cl-defmethod semantic-debug-frame-highlight ((frame semantic-debug-frame))
(cl-defmethod semantic-debug-frame-highlight ((_frame semantic-debug-frame))
"Highlight one parser frame."
)
(cl-defmethod semantic-debug-frame-info ((frame semantic-debug-frame))
(cl-defmethod semantic-debug-frame-info ((_frame semantic-debug-frame))
"Display info about this one parser frame."
)
@@ -279,21 +279,21 @@ on different types of return values."
;;
(defvar semantic-debug-mode-map
(let ((km (make-sparse-keymap)))
(define-key km "n" 'semantic-debug-next)
(define-key km " " 'semantic-debug-next)
(define-key km "s" 'semantic-debug-step)
(define-key km "u" 'semantic-debug-up)
(define-key km "d" 'semantic-debug-down)
(define-key km "f" 'semantic-debug-fail-match)
(define-key km "h" 'semantic-debug-print-state)
(define-key km "s" 'semantic-debug-jump-to-source)
(define-key km "p" 'semantic-debug-jump-to-parser)
(define-key km "q" 'semantic-debug-quit)
(define-key km "a" 'semantic-debug-abort)
(define-key km "g" 'semantic-debug-go)
(define-key km "b" 'semantic-debug-set-breakpoint)
(define-key km "n" #'semantic-debug-next)
(define-key km " " #'semantic-debug-next)
(define-key km "s" #'semantic-debug-step)
(define-key km "u" #'semantic-debug-up)
(define-key km "d" #'semantic-debug-down)
(define-key km "f" #'semantic-debug-fail-match)
(define-key km "h" #'semantic-debug-print-state)
(define-key km "s" #'semantic-debug-jump-to-source)
(define-key km "p" #'semantic-debug-jump-to-parser)
(define-key km "q" #'semantic-debug-quit)
(define-key km "a" #'semantic-debug-abort)
(define-key km "g" #'semantic-debug-go)
(define-key km "b" #'semantic-debug-set-breakpoint)
;; Some boring bindings.
(define-key km "e" 'eval-expression)
(define-key km "e" #'eval-expression)
km)
"Keymap used when in semantic-debug-node.")
@@ -514,49 +514,49 @@ by overriding one of the command methods. Be sure to use
down to your parser later."
:abstract t)
(cl-defmethod semantic-debug-parser-next ((parser semantic-debug-parser))
(cl-defmethod semantic-debug-parser-next ((_parser semantic-debug-parser))
"Execute next for this PARSER."
(setq semantic-debug-user-command 'next)
)
(cl-defmethod semantic-debug-parser-step ((parser semantic-debug-parser))
(cl-defmethod semantic-debug-parser-step ((_parser semantic-debug-parser))
"Execute a step for this PARSER."
(setq semantic-debug-user-command 'step)
)
(cl-defmethod semantic-debug-parser-go ((parser semantic-debug-parser))
(cl-defmethod semantic-debug-parser-go ((_parser semantic-debug-parser))
"Continue execution in this PARSER until the next breakpoint."
(setq semantic-debug-user-command 'go)
)
(cl-defmethod semantic-debug-parser-fail ((parser semantic-debug-parser))
(cl-defmethod semantic-debug-parser-fail ((_parser semantic-debug-parser))
"Continue execution in this PARSER until the next breakpoint."
(setq semantic-debug-user-command 'fail)
)
(cl-defmethod semantic-debug-parser-quit ((parser semantic-debug-parser))
(cl-defmethod semantic-debug-parser-quit ((_parser semantic-debug-parser))
"Continue execution in this PARSER until the next breakpoint."
(setq semantic-debug-user-command 'quit)
)
(cl-defmethod semantic-debug-parser-abort ((parser semantic-debug-parser))
(cl-defmethod semantic-debug-parser-abort ((_parser semantic-debug-parser))
"Continue execution in this PARSER until the next breakpoint."
(setq semantic-debug-user-command 'abort)
)
(cl-defmethod semantic-debug-parser-print-state ((parser semantic-debug-parser))
(cl-defmethod semantic-debug-parser-print-state ((_parser semantic-debug-parser))
"Print state for this PARSER at the current breakpoint."
(with-slots (current-frame) semantic-debug-current-interface
(when current-frame
(semantic-debug-frame-info current-frame)
)))
(cl-defmethod semantic-debug-parser-break ((parser semantic-debug-parser))
(cl-defmethod semantic-debug-parser-break ((_parser semantic-debug-parser))
"Set a breakpoint for this PARSER."
)
;; Stack stuff
(cl-defmethod semantic-debug-parser-frames ((parser semantic-debug-parser))
(cl-defmethod semantic-debug-parser-frames ((_parser semantic-debug-parser))
"Return a list of frames for the current parser.
A frame is of the form:
( .. .what ? .. )

View File

@@ -1,7 +1,6 @@
;;; semantic/decorate.el --- Utilities for decorating/highlighting tokens.
;;; semantic/decorate.el --- Utilities for decorating/highlighting tokens. -*- lexical-binding: t; -*-
;;; Copyright (C) 1999-2003, 2005-2007, 2009-2021 Free Software
;;; Foundation, Inc.
;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Keywords: syntax
@@ -51,7 +50,7 @@ Optional FACE specifies the face to use."
))
;;; Momentary Highlighting - One line
(defun semantic-momentary-highlight-one-tag-line (tag &optional face)
(defun semantic-momentary-highlight-one-tag-line (tag &optional _face)
"Highlight the first line of TAG, unhighlighting before next command.
Optional argument FACE specifies the face to do the highlighting."
(save-excursion
@@ -88,7 +87,7 @@ If VISIBLE is non-nil, make the text visible."
(overlay-get (semantic-tag-overlay tag) 'invisible))
(defun semantic-overlay-signal-read-only
(overlay after start end &optional len)
(overlay after start end &optional _len)
"Hook used in modification hooks to prevent modification.
Allows deletion of the entire text.
Argument OVERLAY, AFTER, START, END, and LEN are passed in by the system."
@@ -261,7 +260,7 @@ nil implies the tag should be fully shown."
(declare-function semantic-current-tag "semantic/find")
(defun semantic-set-tag-folded-isearch (overlay)
(defun semantic-set-tag-folded-isearch (_overlay)
"Called by isearch if it discovers text in the folded region.
OVERLAY is passed in by isearch."
(semantic-set-tag-folded (semantic-current-tag) nil)

View File

@@ -55,7 +55,7 @@ Used by the decoration style: `semantic-decoration-on-includes'."
(defvar semantic-decoration-on-include-map
(let ((km (make-sparse-keymap)))
(define-key km semantic-decoration-mouse-3 'semantic-decoration-include-menu)
(define-key km semantic-decoration-mouse-3 #'semantic-decoration-include-menu)
km)
"Keymap used on includes.")
@@ -114,7 +114,7 @@ Used by the decoration style: `semantic-decoration-on-unknown-includes'."
(defvar semantic-decoration-on-unknown-include-map
(let ((km (make-sparse-keymap)))
;(define-key km [ mouse-2 ] 'semantic-decoration-unknown-include-describe)
(define-key km semantic-decoration-mouse-3 'semantic-decoration-unknown-include-menu)
(define-key km semantic-decoration-mouse-3 #'semantic-decoration-unknown-include-menu)
km)
"Keymap used on unparsed includes.")
@@ -169,7 +169,7 @@ Used by the decoration style: `semantic-decoration-on-fileless-includes'."
(defvar semantic-decoration-on-fileless-include-map
(let ((km (make-sparse-keymap)))
;(define-key km [ mouse-2 ] 'semantic-decoration-fileless-include-describe)
(define-key km semantic-decoration-mouse-3 'semantic-decoration-fileless-include-menu)
(define-key km semantic-decoration-mouse-3 #'semantic-decoration-fileless-include-menu)
km)
"Keymap used on unparsed includes.")
@@ -223,7 +223,7 @@ Used by the decoration style: `semantic-decoration-on-unparsed-includes'."
(defvar semantic-decoration-on-unparsed-include-map
(let ((km (make-sparse-keymap)))
(define-key km semantic-decoration-mouse-3 'semantic-decoration-unparsed-include-menu)
(define-key km semantic-decoration-mouse-3 #'semantic-decoration-unparsed-include-menu)
km)
"Keymap used on unparsed includes.")

View File

@@ -264,9 +264,9 @@ non-nil if the minor mode is enabled."
(buffer-name)))
;; Add hooks
(add-hook 'semantic-after-partial-cache-change-hook
'semantic-decorate-tags-after-partial-reparse nil t)
#'semantic-decorate-tags-after-partial-reparse nil t)
(add-hook 'semantic-after-toplevel-cache-change-hook
'semantic-decorate-tags-after-full-reparse nil t)
#'semantic-decorate-tags-after-full-reparse nil t)
;; Add decorations to available tags. The above hooks ensure
;; that new tags will be decorated when they become available.
;; However, don't do this immediately, because EDE will be
@@ -282,9 +282,9 @@ non-nil if the minor mode is enabled."
(semantic-decorate-flush-decorations)
;; Remove hooks
(remove-hook 'semantic-after-partial-cache-change-hook
'semantic-decorate-tags-after-partial-reparse t)
#'semantic-decorate-tags-after-partial-reparse t)
(remove-hook 'semantic-after-toplevel-cache-change-hook
'semantic-decorate-tags-after-full-reparse t)))
#'semantic-decorate-tags-after-full-reparse t)))
(semantic-add-minor-mode 'semantic-decoration-mode
"")
@@ -350,13 +350,11 @@ Return non-nil if the decoration style is enabled."
(defun semantic-decoration-build-style-menu (style)
"Build a menu item for controlling a specific decoration STYLE."
(vector (car style)
`(lambda () (interactive)
(semantic-toggle-decoration-style
,(car style)))
:style 'toggle
:selected `(semantic-decoration-style-enabled-p ,(car style))
))
(let ((s (car style)))
(vector s
(lambda () (interactive) (semantic-toggle-decoration-style s))
:style 'toggle
:selected `(semantic-decoration-style-enabled-p ',s))))
(defun semantic-build-decoration-mode-menu (&rest _ignore)
"Create a menu listing all the known decorations for toggling.

View File

@@ -1,4 +1,4 @@
;;; semantic/dep.el --- Methods for tracking dependencies (include files)
;;; semantic/dep.el --- Methods for tracking dependencies (include files) -*- lexical-binding: t; -*-
;; Copyright (C) 2006-2021 Free Software Foundation, Inc.
@@ -123,12 +123,12 @@ Changes made by this function are not persistent."
(if (not mode) (setq mode major-mode))
(let ((dirtmp (file-name-as-directory dir))
(value
(mode-local-value mode 'semantic-dependency-system-include-path))
)
(add-to-list 'value dirtmp t)
(mode-local-value mode 'semantic-dependency-system-include-path)))
(eval `(setq-mode-local ,mode
semantic-dependency-system-include-path value))
))
semantic-dependency-system-include-path
',(if (member dirtmp value) value
(append value (list dirtmp))))
t)))
;;;###autoload
(defun semantic-remove-system-include (dir &optional mode)
@@ -146,10 +146,10 @@ Changes made by this function are not persistent."
(value
(mode-local-value mode 'semantic-dependency-system-include-path))
)
(setq value (delete dirtmp value))
(setq value (remove dirtmp value))
(eval `(setq-mode-local ,mode semantic-dependency-system-include-path
value))
))
',value)
t)))
;;;###autoload
(defun semantic-reset-system-include (&optional mode)
@@ -157,10 +157,10 @@ Changes made by this function are not persistent."
Modifies a mode-local version of
`semantic-dependency-system-include-path'."
(interactive)
(if (not mode) (setq mode major-mode))
(eval `(setq-mode-local ,mode semantic-dependency-system-include-path
nil))
)
(eval `(setq-mode-local ,(or mode major-mode)
semantic-dependency-system-include-path
nil)
t))
;;;###autoload
(defun semantic-customize-system-include-path (&optional mode)

View File

@@ -1,4 +1,4 @@
;;; semantic/doc.el --- Routines for documentation strings
;;; semantic/doc.el --- Routines for documentation strings -*- lexical-binding: t; -*-
;; Copyright (C) 1999-2003, 2005, 2008-2021 Free Software Foundation,
;; Inc.
@@ -85,7 +85,7 @@ just the lexical token and not the string."
))
(define-obsolete-function-alias
'semantic-documentation-comment-preceeding-tag
'semantic-documentation-comment-preceding-tag
#'semantic-documentation-comment-preceding-tag
"25.1")
(defun semantic-doc-snarf-comment-for-tag (nosnarf)

View File

@@ -1,4 +1,4 @@
;;; semantic/ede-grammar.el --- EDE support for Semantic Grammar Files
;;; semantic/ede-grammar.el --- EDE support for Semantic Grammar Files -*- lexical-binding: t; -*-
;; Copyright (C) 2003-2004, 2007-2021 Free Software Foundation, Inc.
@@ -30,6 +30,7 @@
(require 'ede/pconf)
(require 'ede/proj-elisp)
(require 'semantic/grammar)
(eval-when-compile (require 'cl-lib))
;;; Code:
(defclass semantic-ede-proj-target-grammar (ede-proj-target-elisp)
@@ -118,7 +119,7 @@ For Emacs Lisp, return addsuffix command on source files."
"Compile Emacs Lisp programs.")
;;; Target options.
(cl-defmethod ede-buffer-mine ((this semantic-ede-proj-target-grammar) buffer)
(cl-defmethod ede-buffer-mine ((_this semantic-ede-proj-target-grammar) buffer)
"Return t if object THIS lays claim to the file in BUFFER.
Lays claim to all -by.el, and -wy.el files."
;; We need to be a little more careful than this, but at the moment it
@@ -130,7 +131,7 @@ Lays claim to all -by.el, and -wy.el files."
(cl-defmethod project-compile-target ((obj semantic-ede-proj-target-grammar))
"Compile all sources in a Lisp target OBJ."
(let* ((cb (current-buffer))
(let* (;; (cb (current-buffer))
(proj (ede-target-parent obj))
(default-directory (oref proj directory))
(comp 0)
@@ -141,11 +142,10 @@ Lays claim to all -by.el, and -wy.el files."
(fname (progn (string-match ".*/\\(.+\\.el\\)" package)
(match-string 1 package)))
(src (ede-expand-filename obj fname))
(csrc (concat (file-name-sans-extension src) ".elc")))
(with-no-warnings
(if (eq (byte-recompile-file src nil 0) t)
(setq comp (1+ comp))
(setq utd (1+ utd)))))))
;; (csrc (concat (file-name-sans-extension src) ".elc"))
)
(cl-incf (if (eq (byte-recompile-file src nil 0) t)
comp utd)))))
(oref obj source))
(message "All Semantic Grammar sources are up to date in %s" (eieio-object-name obj))
(cons comp utd)))

View File

@@ -1,4 +1,4 @@
;;; semantic/edit.el --- Edit Management for Semantic
;;; semantic/edit.el --- Edit Management for Semantic -*- lexical-binding: t; -*-
;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
@@ -157,7 +157,7 @@ Optional argument BUFFER is the buffer to search for changes in."
(sort ret #'(lambda (a b) (< (overlay-start a)
(overlay-start b)))))))
(defun semantic-edits-change-function-handle-changes (start end length)
(defun semantic-edits-change-function-handle-changes (start end _length)
"Run whenever a buffer controlled by `semantic-mode' change.
Tracks when and how the buffer is re-parsed.
Argument START, END, and LENGTH specify the bounds of the change."
@@ -356,7 +356,7 @@ See `semantic-edits-change-leaf-tag' for details on parents."
start end)))
(parent nil)
(overlapped-tags nil)
inner-start inner-end
inner-end ;; inner-start
(list-to-search nil))
;; By the time this is already called, we know that it is
;; not a leaf change, nor a between tag change. That leaves
@@ -370,7 +370,7 @@ See `semantic-edits-change-leaf-tag' for details on parents."
(progn
;; We encompass one whole change.
(setq overlapped-tags (list (car tags))
inner-start (semantic-tag-start (car tags))
;; inner-start (semantic-tag-start (car tags))
inner-end (semantic-tag-end (car tags))
tags (cdr tags))
;; Keep looping while tags are inside the change.
@@ -386,13 +386,14 @@ See `semantic-edits-change-leaf-tag' for details on parents."
;; This is a parent. Drop the children found
;; so far.
(setq overlapped-tags (list (car tags))
inner-start (semantic-tag-start (car tags))
;; inner-start (semantic-tag-start (car tags))
inner-end (semantic-tag-end (car tags))
)
;; It is not a parent encompassing tag
(setq overlapped-tags (cons (car tags)
overlapped-tags)
inner-start (semantic-tag-start (car tags))))
;; inner-start (semantic-tag-start (car tags))
))
(setq tags (cdr tags)))
(if (not tags)
;; There are no tags left, and all tags originally
@@ -533,6 +534,7 @@ This function is for internal use by `semantic-edits-incremental-parser'."
;query this when debugging to find
;source of bugs.
)
(ignore last-cond) ;; Don't warn about the var not being used.
(or changes
;; If we were called, and there are no changes, then we
;; don't know what to do. Force a full reparse.

View File

@@ -1,4 +1,4 @@
;;; semantic/find.el --- Search routines for Semantic
;;; semantic/find.el --- Search routines for Semantic -*- lexical-binding: t; -*-
;; Copyright (C) 1999-2005, 2008-2021 Free Software Foundation, Inc.
@@ -583,7 +583,7 @@ Optional argument SEARCH-PARTS and SEARCH-INCLUDES are passed to
)
(defun semantic-brute-find-tag-by-function
(function streamorbuffer &optional search-parts search-includes)
(function streamorbuffer &optional search-parts _search-includes)
"Find all tags for which FUNCTION's value is non-nil within STREAMORBUFFER.
FUNCTION must return non-nil if an element of STREAM will be included
in the new list.
@@ -620,7 +620,7 @@ This parameter hasn't be active for a while and is obsolete."
nl))
(defun semantic-brute-find-first-tag-by-function
(function streamorbuffer &optional search-parts search-includes)
(function streamorbuffer &optional _search-parts _search-includes)
"Find the first tag which FUNCTION match within STREAMORBUFFER.
FUNCTION must return non-nil if an element of STREAM will be included
in the new list.

View File

@@ -1,4 +1,4 @@
;;; semantic/format.el --- Routines for formatting tags
;;; semantic/format.el --- Routines for formatting tags -*- lexical-binding: t; -*-
;; Copyright (C) 1999-2005, 2007-2021 Free Software Foundation, Inc.
@@ -162,7 +162,7 @@ COLOR specifies if color should be used."
(car args) nil color 'variable))
out)
(setq args (cdr args)))
(mapconcat 'identity (nreverse out) semantic-function-argument-separator)
(mapconcat #'identity (nreverse out) semantic-function-argument-separator)
))
;;; Data Type
@@ -200,7 +200,7 @@ Argument COLOR specifies to colorize the text."
;;; Abstract formatting functions
;;
(defun semantic-format-tag-prin1 (tag &optional parent color)
(defun semantic-format-tag-prin1 (tag &optional _parent _color)
"Convert TAG to a string that is the print name for TAG.
PARENT and COLOR are ignored."
(format "%S" tag))
@@ -237,7 +237,7 @@ The name is the shortest possible representation.
Optional argument PARENT is the parent type if TAG is a detail.
Optional argument COLOR means highlight the prototype with font-lock colors.")
(defun semantic-format-tag-name-default (tag &optional parent color)
(defun semantic-format-tag-name-default (tag &optional _parent color)
"Return an abbreviated string describing TAG.
Optional argument PARENT is the parent type if TAG is a detail.
Optional argument COLOR means highlight the prototype with font-lock colors."
@@ -500,7 +500,7 @@ Optional argument COLOR means highlight the prototype with font-lock colors."
args
(if (eq class 'type) "}" ")"))))
(when mods
(setq mods (concat (mapconcat 'identity mods " ") " ")))
(setq mods (concat (mapconcat #'identity mods " ") " ")))
(concat (or mods "")
(if type (concat type " "))
name

View File

@@ -1,6 +1,6 @@
;;; semantic/fw.el --- Framework for Semantic
;;; semantic/fw.el --- Framework for Semantic -*- lexical-binding: t; -*-
;;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
@@ -34,29 +34,29 @@
;;; Compatibility
;;
(define-obsolete-function-alias 'semantic-overlay-live-p 'overlay-buffer "27.1")
(define-obsolete-function-alias 'semantic-make-overlay 'make-overlay "27.1")
(define-obsolete-function-alias 'semantic-overlay-put 'overlay-put "27.1")
(define-obsolete-function-alias 'semantic-overlay-get 'overlay-get "27.1")
(define-obsolete-function-alias 'semantic-overlay-live-p #'overlay-buffer "27.1")
(define-obsolete-function-alias 'semantic-make-overlay #'make-overlay "27.1")
(define-obsolete-function-alias 'semantic-overlay-put #'overlay-put "27.1")
(define-obsolete-function-alias 'semantic-overlay-get #'overlay-get "27.1")
(define-obsolete-function-alias 'semantic-overlay-properties
'overlay-properties "27.1")
(define-obsolete-function-alias 'semantic-overlay-move 'move-overlay "27.1")
(define-obsolete-function-alias 'semantic-overlay-delete 'delete-overlay "27.1")
(define-obsolete-function-alias 'semantic-overlays-at 'overlays-at "27.1")
(define-obsolete-function-alias 'semantic-overlays-in 'overlays-in "27.1")
(define-obsolete-function-alias 'semantic-overlay-buffer 'overlay-buffer "27.1")
(define-obsolete-function-alias 'semantic-overlay-start 'overlay-start "27.1")
(define-obsolete-function-alias 'semantic-overlay-end 'overlay-end "27.1")
#'overlay-properties "27.1")
(define-obsolete-function-alias 'semantic-overlay-move #'move-overlay "27.1")
(define-obsolete-function-alias 'semantic-overlay-delete #'delete-overlay "27.1")
(define-obsolete-function-alias 'semantic-overlays-at #'overlays-at "27.1")
(define-obsolete-function-alias 'semantic-overlays-in #'overlays-in "27.1")
(define-obsolete-function-alias 'semantic-overlay-buffer #'overlay-buffer "27.1")
(define-obsolete-function-alias 'semantic-overlay-start #'overlay-start "27.1")
(define-obsolete-function-alias 'semantic-overlay-end #'overlay-end "27.1")
(define-obsolete-function-alias 'semantic-overlay-next-change
'next-overlay-change "27.1")
#'next-overlay-change "27.1")
(define-obsolete-function-alias 'semantic-overlay-previous-change
'previous-overlay-change "27.1")
(define-obsolete-function-alias 'semantic-overlay-lists 'overlay-lists "27.1")
(define-obsolete-function-alias 'semantic-overlay-p 'overlayp "27.1")
(define-obsolete-function-alias 'semantic-read-event 'read-event "27.1")
(define-obsolete-function-alias 'semantic-popup-menu 'popup-menu "27.1")
#'previous-overlay-change "27.1")
(define-obsolete-function-alias 'semantic-overlay-lists #'overlay-lists "27.1")
(define-obsolete-function-alias 'semantic-overlay-p #'overlayp "27.1")
(define-obsolete-function-alias 'semantic-read-event #'read-event "27.1")
(define-obsolete-function-alias 'semantic-popup-menu #'popup-menu "27.1")
(define-obsolete-function-alias 'semantic-buffer-local-value
'buffer-local-value "27.1")
#'buffer-local-value "27.1")
(defun semantic-event-window (event)
"Extract the window from EVENT."
@@ -68,11 +68,11 @@
;; Since Emacs 22 major mode functions should use `run-mode-hooks' to
;; run major mode hooks.
(define-obsolete-function-alias 'semantic-run-mode-hooks 'run-mode-hooks "28.1")
(define-obsolete-function-alias 'semantic-run-mode-hooks #'run-mode-hooks "28.1")
;; Fancy compat usage now handled in cedet-compat
(define-obsolete-function-alias 'semantic-subst-char-in-string
'subst-char-in-string "28.1")
#'subst-char-in-string "28.1")
(defun semantic-delete-overlay-maybe (overlay)
"Delete OVERLAY if it is a semantic token overlay."
@@ -111,7 +111,7 @@ Possible Lifespans are:
(setq semantic-cache-data-overlays
(cons o semantic-cache-data-overlays))
;;(message "Adding to cache: %s" o)
(add-hook 'post-command-hook 'semantic-cache-data-post-command-hook)
(add-hook 'post-command-hook #'semantic-cache-data-post-command-hook)
))
(defun semantic-cache-data-post-command-hook ()
@@ -137,7 +137,7 @@ Remove self from `post-command-hook' if it is empty."
;; Remove ourselves if we have removed all overlays.
(unless semantic-cache-data-overlays
(remove-hook 'post-command-hook
'semantic-cache-data-post-command-hook)))
#'semantic-cache-data-post-command-hook)))
(defun semantic-get-cache-data (name &optional point)
"Get cached data with NAME from optional POINT."
@@ -254,7 +254,7 @@ FUNCTION does not have arguments. When FUNCTION is entered
`current-buffer' is a selected Semantic enabled buffer."
(mode-local-map-file-buffers function #'semantic-active-p))
(defalias 'semantic-map-mode-buffers 'mode-local-map-mode-buffers)
(defalias 'semantic-map-mode-buffers #'mode-local-map-mode-buffers)
(defun semantic-install-function-overrides (overrides &optional transient)
"Install the function OVERRIDES in the specified environment.
@@ -318,6 +318,12 @@ calling this one."
;;; Special versions of Find File
;;
(defvar recentf-exclude)
(defvar semantic-init-hook)
(defvar ede-auto-add-method)
(defvar flymake-start-syntax-check-on-find-file)
(defvar auto-insert)
(defun semantic-find-file-noselect (file &optional nowarn rawfile wildcards)
"Call `find-file-noselect' with various features turned off.
Use this when referencing a file that will be soon deleted.

View File

@@ -1,4 +1,4 @@
;;; semantic/html.el --- Semantic details for html files
;;; semantic/html.el --- Semantic details for html files -*- lexical-binding: t; -*-
;; Copyright (C) 2004-2005, 2007-2021 Free Software Foundation, Inc.
@@ -59,14 +59,14 @@
"Alist of sectioning commands and their relative level.")
(define-mode-local-override semantic-parse-region
html-mode (&rest ignore)
html-mode (&rest _ignore)
"Parse the current html buffer for semantic tags.
IGNORE any arguments. Always parse the whole buffer.
Each tag returned is of the form:
(\"NAME\" section (:members CHILDREN))
or
(\"NAME\" anchor)"
(mapcar 'semantic-html-expand-tag
(mapcar #'semantic-html-expand-tag
(semantic-html-parse-headings)))
(define-mode-local-override semantic-parse-changes
@@ -79,7 +79,7 @@ or
(let ((chil (semantic-html-components tag)))
(if chil
(semantic-tag-put-attribute
tag :members (mapcar 'semantic-html-expand-tag chil)))
tag :members (mapcar #'semantic-html-expand-tag chil)))
(car (semantic--tag-expand tag))))
(defun semantic-html-components (tag)
@@ -233,7 +233,7 @@ tag with greater section value than LEVEL is found."
;; This will use our parser.
(setq semantic-parser-name "HTML"
semantic--parse-table t
imenu-create-index-function 'semantic-create-imenu-index
imenu-create-index-function #'semantic-create-imenu-index
semantic-command-separation-character ">"
semantic-type-relation-separator-character '(":")
semantic-symbol->name-assoc-list '((section . "Section")

View File

@@ -1,7 +1,6 @@
;;; semantic/ia-sb.el --- Speedbar analysis display interactor
;;; semantic/ia-sb.el --- Speedbar analysis display interactor -*- lexical-binding: t; -*-
;;; Copyright (C) 2002-2004, 2006, 2008-2021 Free Software Foundation,
;;; Inc.
;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Keywords: syntax
@@ -30,18 +29,14 @@
(require 'speedbar)
;;; Code:
(defvar semantic-ia-sb-key-map nil
(defvar semantic-ia-sb-key-map
(let ((map (speedbar-make-specialized-keymap)))
;; Basic features.
(define-key map "\C-m" #'speedbar-edit-line)
(define-key map "I" #'semantic-ia-sb-show-tag-info)
map)
"Keymap used when in semantic analysis display mode.")
(if semantic-ia-sb-key-map
nil
(setq semantic-ia-sb-key-map (speedbar-make-specialized-keymap))
;; Basic features.
(define-key semantic-ia-sb-key-map "\C-m" 'speedbar-edit-line)
(define-key semantic-ia-sb-key-map "I" 'semantic-ia-sb-show-tag-info)
)
(defvar semantic-ia-sb-easymenu-definition
'( "---"
; [ "Expand" speedbar-expand-line nil ]
@@ -75,7 +70,7 @@ list of possible completions."
(speedbar-change-initial-expansion-list "Analyze")
)
(defun semantic-ia-speedbar (directory zero)
(defun semantic-ia-speedbar (_directory _zero)
"Create buttons in speedbar which define the current analysis at POINT.
DIRECTORY is the current directory, which is ignored, and ZERO is 0."
(let ((analysis nil)
@@ -195,7 +190,7 @@ DIRECTORY is the current directory, which is ignored, and ZERO is 0."
;; An index for the argument the prefix is in:
(let ((arg (oref context argument))
(args (semantic-tag-function-arguments (car func)))
(idx 0)
;; (idx 0)
)
(speedbar-insert-separator
(format "Argument #%d" (oref context index)))
@@ -275,7 +270,7 @@ See `semantic-ia-sb-tag-info' for more."
(setq tok (get-text-property (point) 'speedbar-token)))
(semantic-ia-sb-tag-info nil tok 0)))
(defun semantic-ia-sb-tag-info (text tag indent)
(defun semantic-ia-sb-tag-info (_text tag _indent)
"Display as much information as we can about tag.
Show the information in a shrunk split-buffer and expand
out as many details as possible.
@@ -322,16 +317,15 @@ TEXT, TAG, and INDENT are speedbar function arguments."
(get-buffer-window "*Tag Information*")))
(select-frame speedbar-frame))))
(defun semantic-ia-sb-line-path (&optional depth)
(defun semantic-ia-sb-line-path (&optional _depth)
"Return the file name associated with DEPTH."
(save-match-data
(let* ((tok (speedbar-line-token))
(buff (if (semantic-tag-buffer tok)
(semantic-tag-buffer tok)
(current-buffer))))
(buff (or (semantic-tag-buffer tok)
(current-buffer))))
(buffer-file-name buff))))
(defun semantic-ia-sb-complete (text tag indent)
(defun semantic-ia-sb-complete (_text tag _indent)
"At point in the attached buffer, complete the symbol clicked on.
TEXT TAG and INDENT are the details."
;; Find the specified bounds from the current analysis.

View File

@@ -1,6 +1,6 @@
;;; semantic/ia.el --- Interactive Analysis functions
;;; semantic/ia.el --- Interactive Analysis functions -*- lexical-binding: t; -*-
;;; Copyright (C) 2000-2021 Free Software Foundation, Inc.
;; Copyright (C) 2000-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Keywords: syntax
@@ -79,11 +79,11 @@
(insert "("))
(t nil))))
(defalias 'semantic-ia-get-completions 'semantic-ia-get-completions-deprecated)
(defalias 'semantic-ia-get-completions #'semantic-ia-get-completions-deprecated)
(make-obsolete 'semantic-ia-get-completions
#'semantic-analyze-possible-completions "28.1")
(defun semantic-ia-get-completions-deprecated (context point)
(defun semantic-ia-get-completions-deprecated (context _point)
"A function to help transition away from `semantic-ia-get-completions'.
Return completions based on CONTEXT at POINT."
(declare (obsolete semantic-analyze-possible-completions "28.1"))

View File

@@ -1038,21 +1038,20 @@ be called."
(popup-menu semantic-idle-breadcrumbs-popup-menu)
(select-window old-window)))
(defmacro semantic-idle-breadcrumbs--tag-function (function)
(defun semantic-idle-breadcrumbs--tag-function (function)
"Return lambda expression calling FUNCTION when called from a popup."
`(lambda (event)
(interactive "e")
(let* ((old-window (selected-window))
(window (semantic-event-window event))
(column (car (nth 6 (nth 1 event)))) ;; TODO semantic-event-column?
(tag (progn
(select-window window t)
(plist-get
(text-properties-at column header-line-format)
'tag))))
(,function tag)
(select-window old-window)))
)
(lambda (event)
(interactive "e")
(let* ((old-window (selected-window))
(window (semantic-event-window event))
(column (car (nth 6 (nth 1 event)))) ;; TODO semantic-event-column?
(tag (progn
(select-window window t)
(plist-get
(text-properties-at column header-line-format)
'tag))))
(funcall function tag)
(select-window old-window))))
;; TODO does this work for mode-line case?
(defvar semantic-idle-breadcrumbs-popup-map
@@ -1060,8 +1059,7 @@ be called."
;; mouse-1 goes to clicked tag
(define-key map
[ header-line mouse-1 ]
(semantic-idle-breadcrumbs--tag-function
semantic-go-to-tag))
(semantic-idle-breadcrumbs--tag-function #'semantic-go-to-tag))
;; mouse-3 pops up a context menu
(define-key map
[ header-line mouse-3 ]
@@ -1077,8 +1075,7 @@ be called."
"Breadcrumb Tag"
(vector
"Go to Tag"
(semantic-idle-breadcrumbs--tag-function
semantic-go-to-tag)
(semantic-idle-breadcrumbs--tag-function #'semantic-go-to-tag)
:active t
:help "Jump to this tag")
;; TODO these entries need minor changes (optional tag argument) in
@@ -1086,37 +1083,32 @@ be called."
;; (semantic-menu-item
;; (vector
;; "Copy Tag"
;; (semantic-idle-breadcrumbs--tag-function
;; senator-copy-tag)
;; (semantic-idle-breadcrumbs--tag-function #'senator-copy-tag)
;; :active t
;; :help "Copy this tag"))
;; (semantic-menu-item
;; (vector
;; "Kill Tag"
;; (semantic-idle-breadcrumbs--tag-function
;; senator-kill-tag)
;; (semantic-idle-breadcrumbs--tag-function #'senator-kill-tag)
;; :active t
;; :help "Kill tag text to the kill ring, and copy the tag to
;; the tag ring"))
;; (semantic-menu-item
;; (vector
;; "Copy Tag to Register"
;; (semantic-idle-breadcrumbs--tag-function
;; senator-copy-tag-to-register)
;; (semantic-idle-breadcrumbs--tag-function #'senator-copy-tag-to-register)
;; :active t
;; :help "Copy this tag"))
;; (semantic-menu-item
;; (vector
;; "Narrow to Tag"
;; (semantic-idle-breadcrumbs--tag-function
;; senator-narrow-to-defun)
;; (semantic-idle-breadcrumbs--tag-function #'senator-narrow-to-defun)
;; :active t
;; :help "Narrow to the bounds of the current tag"))
;; (semantic-menu-item
;; (vector
;; "Fold Tag"
;; (semantic-idle-breadcrumbs--tag-function
;; senator-fold-tag-toggle)
;; (semantic-idle-breadcrumbs--tag-function #'senator-fold-tag-toggle)
;; :active t
;; :style 'toggle
;; :selected '(let ((tag (semantic-current-tag)))

View File

@@ -1,4 +1,4 @@
;;; semantic/imenu.el --- Use Semantic as an imenu tag generator
;;; semantic/imenu.el --- Use Semantic as an imenu tag generator -*- lexical-binding: t; -*-
;; Copyright (C) 2000-2005, 2007-2008, 2010-2021 Free Software
;; Foundation, Inc.
@@ -57,14 +57,12 @@
(defcustom semantic-imenu-summary-function 'semantic-format-tag-abbreviate
"Function to use when creating items in Imenu.
Some useful functions are found in `semantic-format-tag-functions'."
:group 'semantic-imenu
:type semantic-format-tag-custom-list)
(make-variable-buffer-local 'semantic-imenu-summary-function)
;;;###autoload
(defcustom semantic-imenu-bucketize-file t
"Non-nil if tags in a file are to be grouped into buckets."
:group 'semantic-imenu
:type 'boolean)
(make-variable-buffer-local 'semantic-imenu-bucketize-file)
@@ -72,20 +70,17 @@ Some useful functions are found in `semantic-format-tag-functions'."
"Non-nil if types in a file should adopt externally defined members.
C++ and CLOS can define methods that are not in the body of a class
definition."
:group 'semantic-imenu
:type 'boolean)
(defcustom semantic-imenu-buckets-to-submenu t
"Non-nil if buckets of tags are to be turned into submenus.
This option is ignored if `semantic-imenu-bucketize-file' is nil."
:group 'semantic-imenu
:type 'boolean)
(make-variable-buffer-local 'semantic-imenu-buckets-to-submenu)
;;;###autoload
(defcustom semantic-imenu-expand-type-members t
"Non-nil if types should have submenus with members in them."
:group 'semantic-imenu
:type 'boolean)
(make-variable-buffer-local 'semantic-imenu-expand-type-members)
@@ -93,7 +88,6 @@ This option is ignored if `semantic-imenu-bucketize-file' is nil."
"Non-nil if members of a type should be grouped into buckets.
A nil value means to keep them in the same order.
Overridden to nil if `semantic-imenu-bucketize-file' is nil."
:group 'semantic-imenu
:type 'boolean)
(make-variable-buffer-local 'semantic-imenu-bucketize-type-members)
@@ -101,7 +95,6 @@ Overridden to nil if `semantic-imenu-bucketize-file' is nil."
"Function to use when sorting tags in the buckets of functions.
See `semantic-bucketize' and the FILTER argument for more details
on this function."
:group 'semantic-imenu
:type '(radio (const :tag "No Sorting" nil)
(const semantic-sort-tags-by-name-increasing)
(const semantic-sort-tags-by-name-decreasing)
@@ -119,14 +112,12 @@ on this function."
Doesn't actually parse the entire directory, but displays tags for all files
currently listed in the current Semantic database.
This variable has no meaning if semanticdb is not active."
:group 'semantic-imenu
:type 'boolean)
(defcustom semantic-imenu-auto-rebuild-directory-indexes nil
"If non-nil automatically rebuild directory index imenus.
That is when a directory index imenu is updated, automatically rebuild
other buffer local ones based on the same semanticdb."
:group 'semantic-imenu
:type 'boolean)
(defvar semantic-imenu-directory-current-file nil
@@ -206,7 +197,7 @@ Optional argument REST is some extra stuff."
(setq imenu--index-alist nil)))))
))
(defun semantic-imenu-flush-fcn (&optional ignore)
(defun semantic-imenu-flush-fcn (&optional _ignore)
"This function is called as a hook to clear the imenu cache.
It is cleared after any parsing.
IGNORE arguments."
@@ -214,9 +205,9 @@ IGNORE arguments."
(setq imenu--index-alist nil
imenu-menubar-modified-tick 0))
(remove-hook 'semantic-after-toplevel-cache-change-hook
'semantic-imenu-flush-fcn t)
#'semantic-imenu-flush-fcn t)
(remove-hook 'semantic-after-partial-cache-change-hook
'semantic-imenu-flush-fcn t)
#'semantic-imenu-flush-fcn t)
)
;;;###autoload
@@ -224,7 +215,7 @@ IGNORE arguments."
"Create an imenu index for any buffer which supports Semantic.
Uses the output of the Semantic parser to create the index.
Optional argument STREAM is an optional stream of tags used to create menus."
(setq imenu-default-goto-function 'semantic-imenu-goto-function)
(setq imenu-default-goto-function #'semantic-imenu-goto-function)
(prog1
(if (and semantic-imenu-index-directory
(featurep 'semantic/db)
@@ -234,9 +225,9 @@ Optional argument STREAM is an optional stream of tags used to create menus."
(semantic-create-imenu-index-1
(or stream (semantic-fetch-tags-fast)) nil))
(add-hook 'semantic-after-toplevel-cache-change-hook
'semantic-imenu-flush-fcn nil t)
#'semantic-imenu-flush-fcn nil t)
(add-hook 'semantic-after-partial-cache-change-hook
'semantic-imenu-flush-fcn nil t)))
#'semantic-imenu-flush-fcn nil t)))
(defun semantic-create-imenu-directory-index (&optional stream)
"Create an imenu tag index based on all files active in semanticdb.
@@ -445,7 +436,7 @@ Clears all imenu menus that may be depending on the database."
;; Clear imenu cache to redraw the imenu.
(semantic-imenu-flush-fcn))))
(add-hook 'semanticdb-mode-hook 'semantic-imenu-semanticdb-hook)
(add-hook 'semanticdb-mode-hook #'semantic-imenu-semanticdb-hook)
;;; Interactive Utilities
;;
@@ -484,7 +475,6 @@ Clears all imenu menus that may be depending on the database."
(defcustom semantic-which-function-use-color nil
"Use color when displaying the current function with `which-function'."
:group 'semantic-imenu
:type 'boolean)
(defun semantic-default-which-function (taglist)

View File

@@ -1,6 +1,6 @@
;;; semantic/java.el --- Semantic functions for Java
;;; semantic/java.el --- Semantic functions for Java -*- lexical-binding: t; -*-
;;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
;; Author: David Ponce <david@dponce.com>
@@ -148,7 +148,7 @@ corresponding compound declaration."
(let* ((name (semantic-tag-name tag))
(rsplit (nreverse (split-string name "\\." t)))
(newclassname (car rsplit))
(newpkg (mapconcat 'identity (reverse (cdr rsplit)) ".")))
(newpkg (mapconcat #'identity (reverse (cdr rsplit)) ".")))
(semantic-tag-set-name tag newclassname)
(setq xpand
(list tag
@@ -169,7 +169,7 @@ corresponding compound declaration."
(define-mode-local-override semantic-ctxt-scoped-types
java-mode (&optional point)
"Return a list of type names currently in scope at POINT."
(mapcar 'semantic-tag-name
(mapcar #'semantic-tag-name
(semantic-find-tags-by-class
'type (semantic-find-tag-by-overlay point))))
@@ -184,7 +184,7 @@ Override function for `semantic-tag-protection'."
;; Prototype handler
;;
(defun semantic-java-prototype-function (tag &optional parent color)
(defun semantic-java-prototype-function (tag &optional _parent color)
"Return a function (method) prototype for TAG.
Optional argument PARENT is a parent (containing) item.
Optional argument COLOR indicates that color should be mixed in.
@@ -212,7 +212,7 @@ See also `semantic-format-tag-prototype'."
(or type "") (if type " " "")
name "(" argp ")")))
(defun semantic-java-prototype-variable (tag &optional parent color)
(defun semantic-java-prototype-variable (tag &optional _parent color)
"Return a variable (field) prototype for TAG.
Optional argument PARENT is a parent (containing) item.
Optional argument COLOR indicates that color should be mixed in.
@@ -227,7 +227,7 @@ See also `semantic-format-tag-prototype'."
(semantic--format-colorize-text name 'variable)
name))))
(defun semantic-java-prototype-type (tag &optional parent color)
(defun semantic-java-prototype-type (tag &optional _parent color)
"Return a type (class/interface) prototype for TAG.
Optional argument PARENT is a parent (containing) item.
Optional argument COLOR indicates that color should be mixed in.
@@ -260,7 +260,7 @@ Optional argument COLOR indicates that color should be mixed in."
(define-mode-local-override semantic-tag-include-filename java-mode (tag)
"Return a suitable path for (some) Java imports."
(let ((name (semantic-tag-name tag)))
(concat (mapconcat 'identity (split-string name "\\.") "/") ".java")))
(concat (mapconcat #'identity (split-string name "\\.") "/") ".java")))
;; Documentation handler
;;
@@ -417,15 +417,13 @@ removed from the result list."
(or semantic-java-doc-with-name-tags
(setq semantic-java-doc-with-name-tags
(semantic-java-doc-keywords-map
#'(lambda (k p)
k)
#'(lambda (k _p) k)
'with-name)))
(or semantic-java-doc-with-ref-tags
(setq semantic-java-doc-with-ref-tags
(semantic-java-doc-keywords-map
#'(lambda (k p)
k)
#'(lambda (k _p) k)
'with-ref)))
(or semantic-java-doc-extra-type-tags

View File

@@ -850,7 +850,7 @@ Argument BEG and END specify the bounds of SYM in the buffer."
))
(define-obsolete-function-alias
'semantic-lex-spp-anlyzer-do-replace
'semantic-lex-spp-analyzer-do-replace "25.1")
#'semantic-lex-spp-analyzer-do-replace "25.1")
(defvar semantic-lex-spp-replacements-enabled t
"Non-nil means do replacements when finding keywords.
@@ -1070,7 +1070,7 @@ and variable state from the current buffer."
(semantic-lex-init)
(semantic-clear-toplevel-cache)
(remove-hook 'semantic-lex-reset-functions
'semantic-lex-spp-reset-hook t)
#'semantic-lex-spp-reset-hook t)
))
;; Second Cheat: copy key variables regarding macro state from the

View File

@@ -469,7 +469,7 @@ PROPERTY set."
;;; Lexical Analyzer framework settings
;;
(defvar-local semantic-lex-analyzer 'semantic-lex
(defvar-local semantic-lex-analyzer #'semantic-lex
"The lexical analyzer used for a given buffer.
See `semantic-lex' for documentation.")

View File

@@ -1,4 +1,4 @@
;;; semantic/mru-bookmark.el --- Automatic bookmark tracking
;;; semantic/mru-bookmark.el --- Automatic bookmark tracking -*- lexical-binding: t; -*-
;; Copyright (C) 2007-2021 Free Software Foundation, Inc.
@@ -85,7 +85,7 @@ Nice values include the following:
)
"A single bookmark.")
(cl-defmethod initialize-instance :after ((sbm semantic-bookmark) &rest fields)
(cl-defmethod initialize-instance :after ((sbm semantic-bookmark) &rest _fields)
"Initialize the bookmark SBM with details about :tag."
(condition-case nil
(save-excursion
@@ -216,7 +216,7 @@ Cause tags in the ring to become unlinked."
(setq idx (1+ idx)))))
(add-hook 'semantic-before-toplevel-cache-flush-hook
'semantic-mrub-cache-flush-fcn)
#'semantic-mrub-cache-flush-fcn)
;;; EDIT tracker
;;
@@ -246,8 +246,8 @@ been edited, and you can re-visit them with \\[semantic-mrub-switch-tags]."
:group 'semantic-modes
:type 'boolean
:require 'semantic/util-modes
:initialize 'custom-initialize-default
:set (lambda (sym val)
:initialize #'custom-initialize-default
:set (lambda (_sym val)
(global-semantic-mru-bookmark-mode (if val 1 -1))))
;;;###autoload
@@ -266,7 +266,7 @@ been edited, and you can re-visit them with \\[semantic-mrub-switch-tags]."
(defvar semantic-mru-bookmark-mode-map
(let ((km (make-sparse-keymap)))
(define-key km "\C-xB" 'semantic-mrub-switch-tags)
(define-key km "\C-xB" #'semantic-mrub-switch-tags)
km)
"Keymap for mru-bookmark minor mode.")
@@ -289,14 +289,14 @@ non-nil if the minor mode is enabled."
(error "Buffer %s was not set up for parsing"
(buffer-name)))
(add-hook 'semantic-edits-new-change-functions
'semantic-mru-bookmark-change-hook-fcn nil t)
#'semantic-mru-bookmark-change-hook-fcn nil t)
(add-hook 'semantic-edits-move-change-hooks
'semantic-mru-bookmark-change-hook-fcn nil t))
#'semantic-mru-bookmark-change-hook-fcn nil t))
;; Remove hooks
(remove-hook 'semantic-edits-new-change-functions
'semantic-mru-bookmark-change-hook-fcn t)
#'semantic-mru-bookmark-change-hook-fcn t)
(remove-hook 'semantic-edits-move-change-hooks
'semantic-mru-bookmark-change-hook-fcn t)))
#'semantic-mru-bookmark-change-hook-fcn t)))
(semantic-add-minor-mode 'semantic-mru-bookmark-mode
"k")

View File

@@ -1,4 +1,4 @@
;;; semantic/senator.el --- SEmantic NAvigaTOR
;;; semantic/senator.el --- SEmantic NAvigaTOR -*- lexical-binding: t; -*-
;; Copyright (C) 2000-2021 Free Software Foundation, Inc.
@@ -60,7 +60,6 @@ A tag class is a symbol, such as `variable', `function', or `type'.
As a special exception, if the value is nil, Senator's navigation
commands recognize all tag classes."
:group 'senator
:type '(repeat (symbol)))
;;;###autoload
(make-variable-buffer-local 'senator-step-at-tag-classes)
@@ -78,7 +77,6 @@ commands stop at the beginning of every tag.
If t, the navigation commands stop at the start and end of any
tag, where possible."
:group 'senator
:type '(choice :tag "Identifiers"
(repeat :menu-tag "Symbols" (symbol))
(const :tag "All" t)))
@@ -87,7 +85,6 @@ tag, where possible."
(defcustom senator-highlight-found nil
"If non-nil, Senator commands momentarily highlight found tags."
:group 'senator
:type 'boolean)
(make-variable-buffer-local 'senator-highlight-found)
@@ -193,7 +190,6 @@ source."
'(code block)
"List of ignored tag classes.
Tags of those classes are excluded from search."
:group 'senator
:type '(repeat (symbol :tag "class")))
(defun senator-search-default-tag-filter (tag)
@@ -461,7 +457,7 @@ filters in `senator-search-tag-filter-functions' remain active."
((symbolp classes)
(list classes))
((stringp classes)
(mapcar 'read (split-string classes)))
(mapcar #'read (split-string classes)))
(t
(signal 'wrong-type-argument (list classes)))
))
@@ -470,11 +466,10 @@ filters in `senator-search-tag-filter-functions' remain active."
senator--search-filter t)
(kill-local-variable 'senator--search-filter)
(if classes
(let ((tag (make-symbol "tag"))
(names (mapconcat 'symbol-name classes "', `")))
(let ((names (mapconcat #'symbol-name classes "', `")))
(setq-local senator--search-filter
`(lambda (,tag)
(memq (semantic-tag-class ,tag) ',classes)))
(lambda (tag)
(memq (semantic-tag-class tag) classes)))
(add-hook 'senator-search-tag-filter-functions
senator--search-filter nil t)
(message "Limit search to `%s' tags" names))
@@ -605,7 +600,7 @@ Makes C/C++ language like assumptions."
"Non-nil if isearch does semantic search.
This is a buffer local variable.")
(defun senator-beginning-of-defun (&optional arg)
(defun senator-beginning-of-defun (&optional _arg)
"Move backward to the beginning of a defun.
Use semantic tags to navigate.
ARG is the number of tags to navigate (not yet implemented)."
@@ -620,7 +615,7 @@ ARG is the number of tags to navigate (not yet implemented)."
(goto-char (semantic-tag-start tag)))
(beginning-of-line))))
(defun senator-end-of-defun (&optional arg)
(defun senator-end-of-defun (&optional _arg)
"Move forward to next end of defun.
Use semantic tags to navigate.
ARG is the number of tags to navigate (not yet implemented)."
@@ -859,7 +854,7 @@ Use a senator search function when semantic isearch mode is enabled."
(setq-local senator-old-isearch-search-fun
isearch-search-fun-function))
(setq-local isearch-search-fun-function
'senator-isearch-search-fun))
#'senator-isearch-search-fun))
;; When `senator-isearch-semantic-mode' is off restore the
;; previous `isearch-search-fun-function'.
(when (eq isearch-search-fun-function 'senator-isearch-search-fun)

View File

@@ -1,6 +1,6 @@
;;; semantic/sort.el --- Utilities for sorting and re-arranging tag tables.
;;; semantic/sort.el --- Utilities for sorting and re-arranging tag tables. -*- lexical-binding: t; -*-
;;; Copyright (C) 1999-2005, 2007-2021 Free Software Foundation, Inc.
;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Keywords: syntax
@@ -233,8 +233,7 @@ unmodified as components of their parent tags."
(semantic-flatten-tags-table components)
lists)))))
table)
(apply 'append (nreverse lists))
))
(apply #'append (nreverse lists))))
;;; Buckets:
@@ -520,12 +519,11 @@ See `semantic-tag-external-member-children' for details."
(semantic-tag-name tag) tag)))
(if m (apply #'append (mapcar #'cdr m))))
(semantic--find-tags-by-function
`(lambda (tok)
;; This bit of annoying backquote forces the contents of
;; tag into the generated lambda.
(semantic-tag-external-member-p ',tag tok))
(current-buffer))
))
(lambda (tok)
;; This bit of annoying backquote forces the contents of
;; tag into the generated lambda.
(semantic-tag-external-member-p tag tok))
(current-buffer))))
(define-overloadable-function semantic-tag-external-class (tag)
"Return a list of real tags that faux TAG might represent.
@@ -540,6 +538,8 @@ likely derived, then this function is needed."
(:override)
)
(defvar semanticdb-search-system-databases)
(defun semantic-tag-external-class-default (tag)
"Return a list of real tags that faux TAG might represent.
See `semantic-tag-external-class' for details."

View File

@@ -1,4 +1,4 @@
;;; semantic/symref.el --- Symbol Reference API
;;; semantic/symref.el --- Symbol Reference API -*- lexical-binding: t; -*-
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
@@ -144,7 +144,7 @@ ARGS are the initialization arguments to pass to the created class."
)
(when (not (class-p class))
(error "Unknown symref tool %s" semantic-symref-tool))
(setq inst (apply 'make-instance class args))
(setq inst (apply #'make-instance class args))
inst))
(defvar semantic-symref-last-result nil
@@ -427,7 +427,7 @@ until the next command is executed."
(kill-buffer buff)))
semantic-symref-recently-opened-buffers)
(setq semantic-symref-recently-opened-buffers nil)
(remove-hook 'post-command-hook 'semantic-symref-cleanup-recent-buffers-fcn)
(remove-hook 'post-command-hook #'semantic-symref-cleanup-recent-buffers-fcn)
)
(cl-defmethod semantic-symref-result-get-tags ((result semantic-symref-result)
@@ -453,7 +453,7 @@ already."
lines)))
;; Kill off dead buffers, unless we were requested to leave them open.
(if (not open-buffers)
(add-hook 'post-command-hook 'semantic-symref-cleanup-recent-buffers-fcn)
(add-hook 'post-command-hook #'semantic-symref-cleanup-recent-buffers-fcn)
;; Else, just clear the saved buffers so they aren't deleted later.
(setq semantic-symref-recently-opened-buffers nil)
)

View File

@@ -108,20 +108,20 @@ Display the references in `semantic-symref-results-mode'."
(defvar semantic-symref-results-mode-map
(let ((km (make-sparse-keymap)))
(suppress-keymap km)
(define-key km "\C-i" 'forward-button)
(define-key km "\M-C-i" 'backward-button)
(define-key km " " 'push-button)
(define-key km "-" 'semantic-symref-list-toggle-showing)
(define-key km "=" 'semantic-symref-list-toggle-showing)
(define-key km "+" 'semantic-symref-list-toggle-showing)
(define-key km "n" 'semantic-symref-list-next-line)
(define-key km "p" 'semantic-symref-list-prev-line)
(define-key km "q" 'quit-window)
(define-key km "\C-c\C-e" 'semantic-symref-list-expand-all)
(define-key km "\C-c\C-r" 'semantic-symref-list-contract-all)
(define-key km "R" 'semantic-symref-list-rename-open-hits)
(define-key km "(" 'semantic-symref-list-create-macro-on-open-hit)
(define-key km "E" 'semantic-symref-list-call-macro-on-open-hits)
(define-key km "\C-i" #'forward-button)
(define-key km "\M-C-i" #'backward-button)
(define-key km " " #'push-button)
(define-key km "-" #'semantic-symref-list-toggle-showing)
(define-key km "=" #'semantic-symref-list-toggle-showing)
(define-key km "+" #'semantic-symref-list-toggle-showing)
(define-key km "n" #'semantic-symref-list-next-line)
(define-key km "p" #'semantic-symref-list-prev-line)
(define-key km "q" #'quit-window)
(define-key km "\C-c\C-e" #'semantic-symref-list-expand-all)
(define-key km "\C-c\C-r" #'semantic-symref-list-contract-all)
(define-key km "R" #'semantic-symref-list-rename-open-hits)
(define-key km "(" #'semantic-symref-list-create-macro-on-open-hit)
(define-key km "E" #'semantic-symref-list-call-macro-on-open-hits)
km)
"Keymap used in `semantic-symref-results-mode'.")

View File

@@ -1,4 +1,4 @@
;;; semantic/tag-file.el --- Routines that find files based on tags.
;;; semantic/tag-file.el --- Routines that find files based on tags. -*- lexical-binding: t; -*-
;; Copyright (C) 1999-2005, 2007-2021 Free Software Foundation, Inc.

View File

@@ -1,4 +1,4 @@
;;; semantic/tag-ls.el --- Language Specific override functions for tags
;;; semantic/tag-ls.el --- Language Specific override functions for tags -*- lexical-binding: t; -*-
;; Copyright (C) 1999-2004, 2006-2021 Free Software Foundation, Inc.
@@ -97,7 +97,7 @@ Modes that override this function can call
`semantic--tag-attribute-similar-p-default' to do the default equality tests if
ATTR is not special for that mode.")
(defun semantic--tag-attribute-similar-p-default (attr value1 value2 ignorable-attributes)
(defun semantic--tag-attribute-similar-p-default (_attr value1 value2 ignorable-attributes)
"For ATTR, VALUE1, VALUE2 and IGNORABLE-ATTRIBUTES, test for similarity."
(cond
;; Tag sublists require special testing.
@@ -109,7 +109,7 @@ ATTR is not special for that mode.")
(when (not (eq (length taglist1) (length taglist2)))
(setq ans nil))
(while (and ans taglist1 taglist2)
(setq ans (apply 'semantic-tag-similar-p
(setq ans (apply #'semantic-tag-similar-p
(car taglist1) (car taglist2)
ignorable-attributes)
taglist1 (cdr taglist1)
@@ -205,7 +205,7 @@ stream for a tag of class `package', and return that."
(or stream-or-buffer tag))))
(:override-with-args (tag stream))))
(defun semantic-tag-full-package-default (tag stream)
(defun semantic-tag-full-package-default (_tag stream)
"Default method for `semantic-tag-full-package' for TAG.
Return the name of the first tag of class `package' in STREAM."
(let ((pack (car-safe (semantic-find-tags-by-class 'package stream))))
@@ -285,7 +285,7 @@ is to return a symbol based on type modifiers."
(setq parent (semantic-tag-calculate-parent tag)))
(:override))
(defun semantic-tag-protection-default (tag &optional parent)
(defun semantic-tag-protection-default (tag &optional _parent)
"Return the protection of TAG as a child of PARENT default action.
See `semantic-tag-protection'."
(let ((mods (semantic-tag-modifiers tag))
@@ -295,9 +295,7 @@ See `semantic-tag-protection'."
(let ((s (car mods)))
(setq prot
;; A few silly defaults to get things started.
(cond ((or (string= s "public")
(string= s "extern")
(string= s "export"))
(cond ((member s '("public" "extern" "export"))
'public)
((string= s "private")
'private)
@@ -372,15 +370,14 @@ in how methods are overridden. In UML, abstract methods are italicized.
The default behavior (if not overridden with `tag-abstract-p'
is to return true if `abstract' is in the type modifiers.")
(defun semantic-tag-abstract-p-default (tag &optional parent)
(defun semantic-tag-abstract-p-default (tag &optional _parent)
"Return non-nil if TAG is abstract as a child of PARENT default action.
See `semantic-tag-abstract-p'."
(let ((mods (semantic-tag-modifiers tag))
(abs nil))
(while (and (not abs) mods)
(if (stringp (car mods))
(setq abs (or (string= (car mods) "abstract")
(string= (car mods) "virtual"))))
(setq abs (member (car mods) '("abstract" "virtual"))))
(setq mods (cdr mods)))
abs))
@@ -392,7 +389,7 @@ In UML, leaf methods and classes have special meaning and behavior.
The default behavior (if not overridden with `tag-leaf-p'
is to return true if `leaf' is in the type modifiers.")
(defun semantic-tag-leaf-p-default (tag &optional parent)
(defun semantic-tag-leaf-p-default (tag &optional _parent)
"Return non-nil if TAG is leaf as a child of PARENT default action.
See `semantic-tag-leaf-p'."
(let ((mods (semantic-tag-modifiers tag))
@@ -412,7 +409,7 @@ In UML, static methods and attributes mean that they are allocated
in the parent class, and are not instance specific.
UML notation specifies that STATIC entries are underlined.")
(defun semantic-tag-static-p-default (tag &optional parent)
(defun semantic-tag-static-p-default (tag &optional _parent)
"Return non-nil if TAG is static as a child of PARENT default action.
See `semantic-tag-static-p'."
(let ((mods (semantic-tag-modifiers tag))

View File

@@ -1,4 +1,4 @@
;;; semantic/tag-write.el --- Write tags to a text stream
;;; semantic/tag-write.el --- Write tags to a text stream -*- lexical-binding: t; -*-
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
@@ -88,7 +88,7 @@ INDENT is the amount of indentation to use for this tag."
(if (semantic-tag-with-position-p tag)
(let ((bounds (semantic-tag-bounds tag)))
(princ " ")
(prin1 (apply 'vector bounds))
(prin1 (apply #'vector bounds))
)
(princ " nil"))
;; End it.

Some files were not shown because too many files have changed in this diff Show More