summaryrefslogtreecommitdiff
path: root/test/lisp/progmodes
Commit message (Collapse)AuthorAgeFilesLines
* Merge from origin/emacs-28Glenn Morris2021-10-121-3/+2
|\ | | | | | | | | | | | | | | 66b8dfd060 (origin/emacs-28) ; Fix last change related to shorthands 3832b983cf In Fdelete_other_windows_internal fix new total window siz... 5deb0ec14f * lisp/mh-e/mh-show.el (mh-junk-whitelist): Custom obsoles... cf1409db71 Don't apply shorthands to punctuation-only symbols (bug#51... b3d0f53b29 * lisp/progmodes/python.el: Bump package version to 0.28.
| * Don't apply shorthands to punctuation-only symbols (bug#51089)João Távora2021-10-111-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This includes symbols used for arithmetic functions such as -, /=, etc. Using "-" or "/=" is still possible but doing so won't shadow those functions. * doc/lispref/symbols.texi (Shorthand, Exceptions): New subsubsection. * src/lread.c (read1): Exempt punctionation-only symbols from oblookup_considering_shorthand. * test/lisp/progmodes/elisp-mode-tests.el (elisp-dont-shadow-punctuation-only-symbols): Tweak test.
* | Fix merge error for elisp-mode-tests.elGlenn Morris2021-10-111-12/+0
| | | | | | | | | | | | | | * test/lisp/progmodes/elisp-mode-tests.el (test-cl-flet-indentation): Delete test mistakenly restored by merge conflict. It seems this was deleted 2021-10-01 with incomplete log message "Add more indentation tests".
* | Merge from origin/emacs-28Glenn Morris2021-10-111-0/+24
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1a1b206a8b Adapt the recent 'num_processors' change to MS-Windows 7cb4637923 Minor fix to clarify a sentence in emacs-lisp-intro ab60144ea3 ; Pacify recent shorthand unused lexarg warnings. e9df86004f Make tty-run-terminal-initialization load the .elc file (i... 07edc28bdb Fix ert errors when there's a test that binds `debug-on-er... 96278de8ac New function num-processors 575e626105 Add symbol property 'save-some-buffers-function' (bug#46374) a3e10af95c Keep reading when typed RET in read-char-from-minibuffer a... 013e3be832 * lisp/userlock.el (ask-user-about-supersession-threat): A... ae61d7a57d Fix point positioning on mouse clicks with non-zero line-h... 4c7e74c386 Complete shorthands to longhands for symbol-completing tables c2513c5d0d Add new failing test for bug#51089 1d1e96377c ; * lisp/emacs-lisp/shortdoc.el: Fix typo. 6bf29072e9 Avoid mapping file names through 'substring' bcce93f04c Update to Org 9.5-46-gb71474 5d408f1a24 Expanded testing of MH-E with multiple MH variants b497add971 Fix Seccomp filter for newer GNU/Linux systems (Bug#51073). 75d9fbec88 Tramp code cleanup # Conflicts: # etc/NEWS # test/lisp/progmodes/elisp-mode-tests.el
| * Add new failing test for bug#51089João Távora2021-10-101-0/+12
| | | | | | | | | | * test/lisp/progmodes/elisp-mode-tests.el (elisp-dont-shadow-punctuation-only-symbols): Add new failing test.
* | test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el: LexbindStefan Monnier2021-10-081-0/+2
| | | | | | | | Add the usual lexical-binding cookie.
* | Change the call convention for `defvar-keymap'Lars Ingebrigtsen2021-10-051-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/keymaps.texi (Changing Key Bindings): Adjust documentation. * lisp/simple.el (special-mode-map): * lisp/net/shr.el (shr-map): * lisp/net/eww.el (eww-link-keymap): (eww-mode-map): (eww-submit-map): (eww-textarea-map): (eww-bookmark-mode-map): (eww-history-mode-map): (eww-buffers-mode-map): * lisp/gnus/message.el (message-mode-map): * lisp/gnus/gnus-html.el (gnus-html-image-map): * lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map): * lisp/gnus/gnus-dired.el (gnus-dired-mode-map): * lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map): Adjust usage of `defvar-keymap'. * lisp/subr.el (define-keymap, define-keymap--define): Change how these functions call each other. (defvar-keymap): Change interface to be more like `define-keymap'. * lisp/emacs-lisp/lisp-mode.el (lisp-indent--defvar-keymap): Remove. (lisp-indent-function): Don't use it.
* | Merge from origin/emacs-28Glenn Morris2021-10-042-6/+14
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3b8dda6c90 Add safety check in x_menu_show e1fb731393 Tweak x_connection_closed when I/O error 595e506c82 * lisp/erc/erc.el (erc-user-mode): Set "+i" by default. d00f3d4c05 Port unused decls to C2x 317eb2d5b5 Improve structure of TODO c0793cd9de Don't use some obsolete names in documentation 87153cc915 Tweak x_hide_tip for consistency 7e871dcd27 Remove encode_terminal_code UNINITs 2a00634880 Port pdumper.c maybe_unused to C2x 6d9b3c0eaa Port systhreads.h to C2x fd274d7d24 Pacify -Wanalyzer-null-argument in lisp_malloc cc3fc94f09 Pacify gcc 11.2.1 -Wanalyzer-null-argument d3a832a61a Simplify hack-read-symbol-shorthands again (bug#50946) 4831426158 Fix recipe for 'native-lisp' directory 0bb42ef803 ; * lisp/time-stamp.el (time-stamp-format): Doc string. 732c70a0d9 Simplify socket symlink-attack checking fc32a3bd95 ; * doc/lispref/files.texi (Reading from Files): Fix wording. 3cc77aa976 Clarify (elisp) insert-file-contents with BEG or END not o... 5deeb0947d * src/Makefile.in: Simplify conditionals. 121a5abeae Move context-menu selection items Defun/List/Symbol to pro... 0c341e6e84 * lisp/tab-bar.el (tab-bar-detach-tab): Handle frame selec... 931a7276c0 * lisp/tab-line.el (tab-line-format): Add face-modified to... 3863919a00 Fix unmounting in Tramp 7a6d34cd1f * etc/themes/light-blue-theme.el: Add "Maintainer: emacs-d... c1b1e1f545 Define HAVE_NATIVE_COMP in src/Makefile.in 137fa2d716 Rename elisp-shorthands to read-symbol-shorthands e6fbc45b7b Font-lock shorthands in elisp-mode for quick visual recogn... 17e6f3bee5 ; Fix last change in tramp-sshfs.el 3dae1e33d1 Suppress superfluous error messages in Tramp b228ec9fab Fix reading the tail of a file in shorthands.el 7fb2789509 Fix substitution of pretty quotes in code in easy-mmode b47d7ce1b8 Fix agent directory deletion b1a8a66fb0 ; * etc/TODO: Fix previous commit; delete the right thing. 6c01a21365 Clarify the purpose of internal--format-docstring-line 55dadbc57e * lisp/net/dictionary.el (context-menu-dictionary): Move m... bb209cd5ab Update to Org 9.5-30-g10dc9d 4341e79a5f Remove bogus ":safe t" custom properties b6f6b593c6 Fix 'apropos-compact-layout' 62d6cecfcd Remove bogus ":safe nil" custom properties f9111d8784 The safe-local-variable property is a function (bug#50944) 3dc094abee ; Some minor tweaks to TODO a5b4356d37 Revert "; * etc/TODO: Move elpa.gnu.org items to the end." 7bc0cee115 Revert "* etc/TODO: Rearrange to start with "Simple tasks"." 3489471417 Fix selection of fonts for Arabic on Posix platforms 13e5943386 ; Fix a typo in a doc string bd60fca2fa Fix ox-koma-letter compilation warnings 340e527bed Preload paren.el a9052248da Improve documentation of 'shift-select-mode' d505971894 ; Standardize some license headers 9307889d68 Simplify shorthand injection (bug#50946) 5c77cc9584 ; * admin/release-branch.txt: Tweak previous. # Conflicts: # etc/NEWS # test/lisp/subr-tests.el
| * Rename elisp-shorthands to read-symbol-shorthandsJoão Távora2021-10-032-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new name fits better in the family of variables that affect the Lisp reader. Suggested-by: Po Lu <luangruo@yahoo.com> * doc/lispref/symbols.texi (Shorthands): Mention read-symbol-shorthands * lisp/shorthands.el (hack-read-symbol-shorthands) (hack-read-symbol-shorthands) (shorthands-font-lock-shorthands): Use read-symbol-shorthands * lisp/progmodes/elisp-mode.el (elisp--completion-local-symbols) (elisp--completion-local-symbols) (elisp-shorthands): Use read-symbol-shorthands * src/lread.c: (syms_of_lread): Define Vread_symbol_shorthands (oblookup_considering_shorthand): Use Vread_symbol_shorthands. * test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer): (elisp-shorthand-read-from-string): Use read-symbol-shorthands * test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el Use new symbol name read-symbol-shorthands.
| * Font-lock shorthands in elisp-mode for quick visual recognition (bug#50959)João Távora2021-10-031-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Only the shorthanded prefix is font-locked. This allows the remainder of the font-lock logic to subsist (e.g. for macro-defining symbols). * lisp/shorthands.el (cl-lib): Require it when compiling. (elisp-shorthand-font-lock-face): New face. (shorthands--mismatch-from-end): New helper. (shorthands-font-lock-shorthands): New helper. * test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el: Add some dummy test code.
* | Add 'define-keymap' and 'defvar-keymap'Lars Ingebrigtsen2021-10-041-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/keymaps.texi (Changing Key Bindings): Document define-keymap and defvar-keymap. * lisp/subr.el (define-keymap): New function. (define-keymap--define): New function. (defvar-keymap): New macro. * lisp/emacs-lisp/lisp-mode.el (lisp-indent--defvar-keymap): New function. (lisp-indent-function): Use it to indent defvar-keymap.
* | Merge from origin/emacs-28Glenn Morris2021-10-011-12/+10
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ad0798a395 * etc/TODO: Add interactive mode tagging. 879ef5b19a * etc/TODO: Rearrange to start with "Simple tasks". d73f0e96a7 ; * etc/TODO: Move elpa.gnu.org items to the end. 7cf1229706 ; * etc/TODO: Mention a relevant bug report. f733b909ff * etc/TODO: Remove outdated item. (Bug#50904) 94c247d659 ; Oops, fix up last commit 88378acbfc Rename arguments of ERC's '/whois' and simplify doc string 205eb7f801 ; s/class/type 86da812afb Migrate Xref off EIEIO 5c73dfcbcb * admin/release-branch.txt: New file. f060d1c9a4 * lisp/dired.el (dired-omit-mode): Declare, to avoid compi... # Conflicts: # etc/NEWS
| * Migrate Xref off EIEIODmitry Gutov2021-10-011-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To improve performance and flexibility (bug#50777). * lisp/progmodes/xref.el (xref-location): Remove. (xref-file-location): Change to cl-struct. (xref-buffer-location, xref-bogus-location): Ditto. (xref-item, xref-match-item): Same. And update all method definitions accordingly. (xref--insert-xrefs): Don't use 'oref', use 'xref-item-location'. (xref--insert-xrefs, xref-show-definitions-completing-read): Insetad of 'with-slots', use 'xref-item-summary' and 'xref-item-location'. * lisp/progmodes/etags.el (xref-etags-location): Change from EIEIO class into a cl-struct. (xref-etags-apropos-location): Ditto. Update all method definitions. * test/lisp/progmodes/elisp-mode-tests.el (xref-elisp-test-run): Avoid using 'oref'.
* | Restore the flet indentation fixesakater2021-10-012-1/+227
| | | | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): New function. (lisp-indent-function): Use it to fix cl-flet indentation.
* | Add more indentation tests for Emacs Lisp modeLars Ingebrigtsen2021-10-012-23/+53
|/
* ; Mark cl-flet indentation test as failing (bug#9622)Mattias Engdegård2021-09-301-0/+1
|
* Use ert-resource-file in the shorthand testsLars Ingebrigtsen2021-09-282-16/+6
| | | | Also move to the standard directory naming.
* Move test-cl-flet-indentation to the right fileLars Ingebrigtsen2021-09-271-0/+10
|
* Add #_ reader macro to escape shorthand renamingJoão Távora2021-09-272-1/+14
| | | | | | | | | | | | * src/lread.c (read1): Add skip_shorthand variable. Add a '#_' case. If skip_shorthand call oblookup instead of oblookup_considering_shorthand. * test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-escape): New test. * test/lisp/progmodes/elisp-resources/simple-shorthand-test.el (#_f-test4---): New fixture function.
* Consider shorthands in Elisp's elisp-completion-at-pointJoão Távora2021-09-272-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of referencing obarray directly, that function has to consider a collection of completions which includes the shorthand versions of some of the symbols. That collection changes from buffer to buffer, depending on the choice of elisp-shorthands. To make this process efficient, and avoid needless recalculation of the above collection, a new obarray-specific cache was invented. The Elisp variable obarray-cache is immediately nullified if something touches the obarray. * lisp/progmodes/elisp-mode.el : New helper. (elisp-completion-at-point): Use new helpers. (elisp--completion-local-symbols) (elisp--fboundp-considering-shorthands) (elisp--bboundp-considering-shorthands): New helpers * src/lread.c (intern_driver): Nullify Qobarray_cache. (syms_of_lread): Add Qobarray_cache. * test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-completion-at-point): New test. * test/lisp/progmodes/elisp-resources/simple-shorthand-test.el (f-test-complete-me): New fixture.
* Rework Elisp shorthands to only allow only prefix substitutionJoão Távora2021-09-272-6/+6
| | | | | | | | | | | | | | | | | | | This simplification in requirements makes for more complex C code but that code is much less wasteful in Lisp strings than the previous implementation. * src/lread.c (read1): Rework. (Fintern): Rework. (Fintern_soft): Rework. (Funintern): Rework. (oblookup_considering_shorthand): Rewrite. * test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer) (elisp-shorthand-read-from-string): Use new format of elisp-shorthands. * test/lisp/progmodes/elisp-resources/simple-shorthand-test.el (f-test) (f-test2, f-test3): Use new form of elisp-shorthands.
* Move most of the shorthand implementation to C codeJoão Távora2021-09-272-0/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It passes the tests designed for the previous Elisp implementation. Likely, this isn't the final form of the implementation. For one, the reader is much slower and allocates a Lisp string for every atom read, regardless if its already interned or not. This has the potential to be catastrophic in terms of GC. Also rename the main variable to elisp-shorthands, from the repetitive shorthand-shorthands. For some reason, I had to put 'hack-elisp-shorthands' and 'load-with-shorthands-and-code-conversion', the new source-file loading functions, in lisp/international/mule.el. Otherwise, lisp/loadup.el wouldn't see them, for some reason that I didn't investigate. This should probably be fixed. * lisp/shorthand.el: Remove. * test/lisp/shorthand-tests.el: Remove. * src/lread.c: (read1, Fintern, Fintern_soft, Funintern): Use oblookup_considering_shorthand. (oblookup_considering_shorthand): New helper. (syms_of_lread): Declare elisp-shorthands. * lisp/progmodes/elisp-mode.el (elisp-shorthands): Put a safe-local-variable spec. * test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer) (elisp-shorthand-read-from-string) (elisp-shorthand-byte-compile-a-file) (elisp-shorthand-load-a-file): New tests. * test/lisp/progmodes/elisp-resources/simple-shorthand-test.el: New file * lisp/loadup.el (load-source-file-function): Set to load-with-shorthands-and-code-conversion. * lisp/international/mule.el (hack-elisp-shorthands): Move here. (load-with-shorthands-and-code-conversion): And here.
* ; Minor stylistic checkdoc fixes in test/**/*.elStefan Kangas2021-09-267-20/+32
|
* Make syntax-ppss more accurate for Python triple quotes (bug#49518)João Távora2021-09-211-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | By putting delimiter syntax on the last character of Python triple-quoted strings, this makes syntax-ppss be more accurate. Previously: emacs -Q something.py type two single quotes M-: (nth 3 (syntax-ppss)) notice how the return value says you're outside a string, correctly type another quote M-: (nth 3 (syntax-ppss)) notice how the return value says you're inside a string, correctly backspace the quote just entered M-: (nth 3 (syntax-ppss)) notice how the return value says you're inside a string, incorrectly With this patch the last step is corrected. This helps things like electric-pair-mode. Also, the test python-syntax-after-python-backspace now passes, again. * lisp/progmodes/python.el (python-syntax-stringify): Put delimiter syntax in "inner" of the surrouding triple quotes. * test/lisp/progmodes/python-tests.el (python-syntax-after-python-backspace): Passes again.
* Expand and improve electric-pair-mode and Python testing (bug#49518)João Távora2021-09-211-1/+28
| | | | | | | | | | | | | | | | | | In python-tests.el, the triple-quote pairing tests are passing incorrectly, i.e. the auto-pairing functionality they purport to guard isn't really working for users trying it interactively. Added a new failing test, soon to be fixed. In electric-tests.el, added tests for Python, too. * test/lisp/electric-tests.el (define-electric-pair-test): Also run main tests for python-mode. (pair-some-quotes-skip-others): Test another slightly different pairing. * test/lisp/progmodes/python-tests.el (python-triple-double-quote-pairing): Rename from python-triple-quote-pairing. (python-triple-single-quote-pairing): New test.
* Localize namespace-filtering codeDmitry Gutov2021-09-151-7/+18
| | | | | | | | | | | | | | | | | To be able to filter results coming from elisp-xref-find-def-functions, and for general ease of understanding. * lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions): Undo the previous change. (xref-backend-apropos): Update accordingly. (elisp--xref-filter-definitions): New function. (xref-backend-definitions): Use it to post-filter the results coming from elisp--xref-find-definitions. * test/lisp/progmodes/elisp-mode-tests.el (find-defs-minor-defvar-c): New test. (find-defs-defun-defvar-el): Update test.
* cperl-mode.el: Allow non-ASCII Perl identifiersHarald Jörg2021-09-142-1/+314
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace all "A-Z" regexp literals with unicode-aware rx constructs wherever Perl allows non-ASCII identifiers. * lisp/progmodes/cperl-mode.el (cperl-after-sub-regexp) (cperl-after-label. cperl-sniff-for-indent) (cperl-find-pods-heres, cperl-indent-exp) (cperl-fix-line-spacing, cperl-imenu--create-perl-index) (cperl-init-faces, cperl-find-tags): Replace ASCII regex literals by unicode-aware rx constructs. (cperl-init-faces): Eliminate unused lexical `font-lock-anchored'. (cperl-have-help-regexp, cperl-word-at-point-hard): Allow non-ASCII word characters. * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-fontify-special-variables): New test for $^T and $^{VARNAME}. (cperl-test-ws-rx cperl-test-ws+-rx), (cperl-test-version-regexp, cperl-test-package-regexp): Skip for perl-mode. (cperl-test-identifier-rx, cperl--test-unicode-setup) (cperl-test-unicode-labels, cperl-test-unicode-sub) (cperl-test-unicode-varname) (cperl-test-unicode-varname-list, cperl-test-unicode-arrays) (cperl-test-unicode-hashes, cperl-test-unicode-hashref) (cperl-test-unicode-proto, cperl-test-unicode-fhs) (cperl-test-unicode-hashkeys, cperl-test-word-at-point): New tests for unicode identifiers. (cperl-test-imenu-index): Add a unicode identifier to the test. * test/lisp/progmodes/cperl-mode-resources/grammar.pl: Add a function with non-ASCII name for imenu tests.
* Keep and report "foreign" diangnostics in flymake-cc Flymake backendJoão Távora2021-09-142-0/+7
| | | | | | | | | | | | | | | | This includes diagnostics for .h files that sprang up when checking a c file. Those diagnostics are reported to the Flymake infrastructure which does not (yet) do anything with them. This includes a change to the test fixtures, too. * lisp/progmodes/flymake-cc.el (flymake-cc--make-diagnostics): Rework * test/lisp/progmodes/flymake-resources/another-problematic-file.c: New file. * test/lisp/progmodes/flymake-resources/some-problems.h: Add a function declaration..
* Fix the testsDmitry Gutov2021-09-131-8/+18
| | | | | | | | * test/lisp/progmodes/xref-tests.el (xref--xref-file-name-display-is-abs) (xref--xref-file-name-display-is-nondirectory) (xref--xref-file-name-display-is-relative-to-project-root): Update for the latest change in xref.el.
* ; Minor doc fixes found by checkdocStefan Kangas2021-09-131-5/+5
|
* ; Fix symbol quoting typosStefan Kangas2021-09-121-1/+1
|
* Infer identifier namespace in elisp xref backendMattias Engdegård2021-09-121-0/+111
| | | | | | | | | | | | | | | | | | Improve the accuracy of `xref-find-definitions` by inferring the likely namespace of the sought identifier from its context. This reduces the number of irrelevant search hits when it is clear what kind of identifier is being looked for (such as showing a variable when the user looks for a function). Co-written with Dmitry Gutov. * lisp/progmodes/elisp-mode.el (elisp--xref-list-index) (elisp--xref-infer-namespace, xref-backend-identifier-at-point): New. (xref-backend-definitions): Use the buffer position for inferring. (elisp--xref-find-definitions): Use the inferred namespace. (xref-backend-apropos): Adapt call. * test/lisp/progmodes/elisp-mode-tests.el (elisp-mode-test--with-buffer) (elisp-mode-with-buffer, elisp-mode-infer-namespace): New tests.
* Fix test find-defs-defgeneric-elDmitry Gutov2021-09-101-0/+6
| | | | | * test/lisp/progmodes/elisp-mode-tests.el (find-defs-defgeneric-el): Fix the test. Reported by dick.r.chiang@gmail.com.
* Change ruby-align-chained-calls indendationStefan Monnier2021-09-091-1/+28
| | | | | | | | | | | | | | | * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Align with the first sibling on the previous line instead of the last (bug#32496). That is, before it used to be one.two.three .four and now it is one.two.three .four
* cperl-mode.el: Use rx sequences for Perl grammarHarald Jörg2021-09-071-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following advice by Mattias Engdegård, most uses of rx-to-string were eliminated, and rx sequences used instead to define Perl grammar components. * lisp/progmodes/cperl-mode.el: (cperl-block-declaration-p): New function, replaces regexp literals. (cperl-imenu--function-name-regexp-perl): Deleted, use rx sequences to find imenu entries instead. (cperl-indent-line): Use rx components instead of regexp literals. (cperl-sniff-for-indent): use `cperl-block-declaration-p' to increase accuracy, use rx sequence for labels to replace inaccurate regexp literals. (cperl-block-p): Replace inline comment by docstring. Use `cperl-block-declaration-p'. (cperl-after-block-p): Use `cperl-block-declaration-p'. (cperl-after-block-and-statement-beg): Replace inline comment by docstring. (cperl-imenu-package-keywords), (cperl-imenu-sub-keywords), (cperl-imenu-pod-keywords) : New variables to sort imenu entries into categories. (cperl-imenu--create-perl-index): Use rx sequences to collect imenu entries. (cperl-init-faces): Use rx components instead of regexp literals for labels. * test/lisp/progmodes/cperl-mode-tests.el: Test rx sequences instead of regexp strings
* project--files-in-directory: Fix handling of ignoresDmitry Gutov2021-09-062-0/+23
| | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/project.el (project--files-in-directory): Pass "." as the DIR argument to 'find' because otherwise the ignore expression can match the project root directory name, which we don't want to happen (bug#50240). Fixup the resulting file names at the end with concatenation. Originally I thought it could lead to worse performance, but the results show equal or slightly better timings. * lisp/progmodes/xref.el (xref-matches-in-directory): Apply a similar fix. (xref--find-ignores-arguments): Use file-name-as-directory, so that when passed "." replace-match still had the expected effect. * test/lisp/progmodes/project-tests.el (project-ignores-bug-50240): New test. * test/lisp/progmodes/xref-tests.el (xref-matches-in-directory-filters-with-ignores): New test.
* ; Fix typosStefan Kangas2021-09-031-1/+1
|
* Add a test for bug#50320 in sh-scriptLars Ingebrigtsen2021-09-021-0/+11
|
* Revert "Tweak sh-script-mode indentation further"Lars Ingebrigtsen2021-09-021-12/+1
| | | | | | This reverts commit 6392bc37ab3b7eb83465d9b2248d21173373ae73. The changes led to errors throughout (bug#50320).
* ; cperl-mode.el: Fix border cases of inserting with elispHarald Jörg2021-08-301-6/+52
| | | | | | | | | | | | | * lisp/progmodes/cperl-mode.el (cperl-unwind-to-safe): Replace (and extend) inline comment by a docstring. Handle edge cases when inserting text with elisp (related to Bug#28962). (cperl-process-here-doc): Add syntax-type `here-doc-start'. (cperl-find-pods-heres): Make sure that the results of this function are immediately visible. * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-14343): Add test cases for "empty" here-documents and inserting at the edges of a here-document.
* (cperl-test-bug-14343): Make it work for perl-modeStefan Monnier2021-08-301-7/+7
| | | | | | | * test/lisp/progmodes/cperl-mode-tests.el (cperl--tests-heredoc-face): New const. (cperl-test-heredocs, cperl-test-bug-14343): Use it. (cperl-test-identify-no-heredoc): Remove left-over message.
* * test/lisp/progmodes/cperl-mode-tests.el: Adjust here-doc tests for perl-modeStefan Monnier2021-08-301-31/+26
| | | | | (cperl-test-identify-heredoc, cperl-test-identify-no-heredoc): Tweak tests so they can also be used for perl-mode.
* Tweak sh-script-mode indentation furtherKévin Le Gouguec2021-08-291-1/+12
| | | | | * lisp/progmodes/sh-script.el (sh-smie--default-backward-token): Allow more parentheses in a token (bug#44592).
* Fix shell-script-mode indentation of continuation linesDario Gjorgjevski2021-08-271-0/+40
| | | | | * lisp/progmodes/sh-script.el (sh-smie--default-backward-token): Fix indentation of continuation lines (bug#44592).
* Fix recently added cperl testGlenn Morris2021-08-231-2/+2
| | | | | * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-here-doc-missing-end): Fix quote regexp.
* ; cperl-mode: bugfix / rework fontification of here-docsHarald Jörg2021-08-231-0/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/cperl-mode.el (cperl-mode): Use `cperl-font-lock-syntactic-face-function'. (cperl-commentify): Add a docstring, eliminate unused formal parameter `noface'. (cperl-is-here-doc-p): New function to detect whether "<<" starts a here-document, factored out from `cperl-find-pods-heres'. (cperl-here-doc-functions): New variable: List of functions which allow here-documents as parameters, for use in `cperl-is-here-doc-p'. (cperl-process-here-doc): New function, factored out from `cperl-find-pods-heres'. Fixed to keep correct fontification after non-interactive (elisp) changes (Bug#14343, Bug#28962). (cperl-find-pods-heres): Extend the doc-string to describe all parameters. Don't remove text properties in recursive calls on the same line. Call `cperl-process-here-doc' when appropriate. (cperl-font-lock-syntactic-face-function): New function to highlight c-style comments as here-documents (adapted from perl-mode.el). * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-identify-heredoc): New test for the new function `cperl-is-here-doc-p'. (cperl-test-identify-no-heredoc): New test for the new function `cperl-is-here-doc-p', testing constructs which start with "<<" but are no here-documents. (cperl-test-here-doc-missing-end): New test to verify correct detection of a missing here-document delimiter. (cperl-test-bug-14343): New test to verify that inserting text into a here-document with elisp does not break fontification.
* ruby-mode imenu: Support methods with modifiersDmitry Gutov2021-08-171-0/+22
| | | | | | * lisp/progmodes/ruby-mode.el (ruby-imenu-create-index-in-block): Support methods with modifiers (visibility or otherwise) (bug#50079).
* perl-mode: fix variable fontificationTomasz Konojacki2021-08-071-0/+7
| | | | | | | * lisp/progmodes/perl-mode.el: Handle variables first to avoid conflicting with keywords. This fixes cases like "$package" (bug#49906). Copyright-paperwork-exempt: yes
* Off-by-one error in compilation rule end-column function (bug#49624)Mattias Engdegård2021-07-231-0/+27
| | | | | | | | * lisp/progmodes/compile.el (compilation-error-properties): When the end-column parameter of a compilation message rule (in compilation-error-regexp-alist[-alist]) is a function, treat its return value as if it were matched by the regexp, which is how it is documented to work, and how all other parameters work.
* ; * test/lisp/progmodes/compile-tests.el: simplify end-colMattias Engdegård2021-07-181-10/+10
| | | | | | The internal representation of columns uses half-open intervals but don't expose that in the test cases, where we want to use the same numbers as in the compilation messages.