aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/progmodes/python.el (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add the public API of Compat to the corePhilip Kaludercic2024-02-111-1/+1
| | | | | | | | | | | * lisp/emacs-lisp/compat.el: Add stub file with minimal definitions, so that core packages, that haven't been installed from ELPA, can make use of the public API and use more recent function signatures. * lisp/progmodes/python.el (compat): Remove 'noerror flag, because Compat can now be required without the real package being available. * doc/lispref/package.texi (Forwards-Compatibility): Mention Compat and link to the manual. * etc/NEWS: Document change. (Bug#66554)
* Respect the delimiter of completer in Python shell completionLiu Hui2024-02-081-48/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/python.el: (python-shell-completion-setup-code): Fix the completion code of IPython. Change the return value to JSON string and ... (python-shell-completion-get-completions): ... simplify parsing. (inferior-python-mode): Update docstring. (python-shell-readline-completer-delims): New variable indicating the word delimiters of readline completer. (python-shell-completion-native-setup): Set the completer delimiter. (python-shell-completion-native-get-completions): Convert output string to completions properly. (python-shell--get-multiline-input) (python-shell--extra-completion-context) (python-shell-completion-extra-context): New functions. (python-shell-completion-at-point): Send text beginning from the line start if the completion backend does not need word splitting. Remove the detection of import statement because it is not needed anymore. Create proper completion table based on completions returned from different backends. * test/lisp/progmodes/python-tests.el (python-tests--completion-module) (python-tests--completion-parameters) (python-tests--completion-extra-context): New helper functions. (python-shell-completion-at-point-jedi-completer) (python-shell-completion-at-point-ipython): New tests. (bug#68559)
* Fix syntax highlighting after string literal concat in python-modeJakub Ječmínek2024-01-271-0/+3
| | | | | | | | | | | | * lisp/progmodes/python.el (python-syntax-stringify): Fix incorrect font-lock after string literal concatenation. (Bug#45897) * test/lisp/progmodes/python-tests.el (python-font-lock-string-literal-concatenation): New test. Co-authored-by: kobarity <kobarity@gmail.com> Copyright-paperwork-exempt: yes
* python--treesit-syntax-propertize: Fix edits in the middleDmitry Gutov2024-01-261-9/+9
| | | | | | | * lisp/progmodes/python.el (python--treesit-syntax-propertize): Process the beginning and the end of the triple-quoted string's delimiters separately. Among other things, that still works when the beginning is outside of the propertized region (bug#68445).
* Merge from origin/emacs-29Eli Zaretskii2024-01-131-2/+2
|\ | | | | | | | | | | | | | | | | | | | | 99efe5c80f9 Fix count of no-op functions (bug#68375) 0c01f97b73c Wrap @pxref of Abbrevs in parentheses (bug#68375) 70a09325d65 ; Fix last change in widget.texi 63411709a8d ; Fix typos 824cf54951c ; * etc/TODO: Add item to make play-sound non-blocking. 4fadbfe300a Add examples to the Widget manual 1bbb610821e Implement missing functions for custom-icon widget 29af214a75a Fix fontification of cgroup2 in fstab (bug#68367)
| * ; Fix typosStefan Kangas2024-01-111-2/+2
| |
* | Fix 'python-info-docstring-p' bug in the 2nd line of a bufferkobarity2024-01-131-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/python.el (python-info-docstring-p): Add 'looking-at-p' check when bobp. * test/lisp/progmodes/python-tests.el (python-font-lock-operator-1) (python-font-lock-operator-2): Restoration of ERTs deleted by mistake. (python-font-lock-escape-sequence-bytes-newline) (python-font-lock-escape-sequence-hex-octal) (python-font-lock-escape-sequence-unicode) (python-font-lock-raw-escape-sequence): Change 'font-lock-doc-face' to 'font-lock-string-face' and remove :expected-result :failed. (python-info-docstring-p-8): New test. (Bug#68284)
* | Merge from savannah/emacs-29Po Lu2024-01-021-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dc4e6b13296 ; Update copyright years in more files 64b37776318 ; Run set-copyright from admin.el 8e1c56ae467 ; Add 2024 to copyright years # Conflicts: # doc/misc/modus-themes.org # doc/misc/texinfo.tex # etc/NEWS # etc/refcards/ru-refcard.tex # etc/themes/modus-operandi-theme.el # etc/themes/modus-themes.el # etc/themes/modus-vivendi-theme.el # lib/alloca.in.h # lib/binary-io.h # lib/c-ctype.h # lib/c-strcasecmp.c # lib/c-strncasecmp.c # lib/careadlinkat.c # lib/cloexec.c # lib/close-stream.c # lib/diffseq.h # lib/dup2.c # lib/filemode.h # lib/fpending.c # lib/fpending.h # lib/fsusage.c # lib/getgroups.c # lib/getloadavg.c # lib/gettext.h # lib/gettime.c # lib/gettimeofday.c # lib/group-member.c # lib/malloc.c # lib/md5-stream.c # lib/md5.c # lib/md5.h # lib/memmem.c # lib/memrchr.c # lib/nanosleep.c # lib/save-cwd.h # lib/sha1.c # lib/sig2str.c # lib/stdlib.in.h # lib/strtoimax.c # lib/strtol.c # lib/strtoll.c # lib/time_r.c # lib/xalloc-oversized.h # lisp/auth-source-pass.el # lisp/emacs-lisp/lisp-mnt.el # lisp/emacs-lisp/timer.el # lisp/info-look.el # lisp/jit-lock.el # lisp/loadhist.el # lisp/mail/rmail.el # lisp/net/ntlm.el # lisp/net/webjump.el # lisp/progmodes/asm-mode.el # lisp/progmodes/project.el # lisp/progmodes/sh-script.el # lisp/textmodes/flyspell.el # lisp/textmodes/reftex-toc.el # lisp/textmodes/reftex.el # lisp/textmodes/tex-mode.el # lisp/url/url-gw.el # m4/alloca.m4 # m4/clock_time.m4 # m4/d-type.m4 # m4/dirent_h.m4 # m4/dup2.m4 # m4/euidaccess.m4 # m4/fchmodat.m4 # m4/filemode.m4 # m4/fsusage.m4 # m4/getgroups.m4 # m4/getloadavg.m4 # m4/getrandom.m4 # m4/gettime.m4 # m4/gettimeofday.m4 # m4/gnulib-common.m4 # m4/group-member.m4 # m4/inttypes.m4 # m4/malloc.m4 # m4/manywarnings.m4 # m4/mempcpy.m4 # m4/memrchr.m4 # m4/mkostemp.m4 # m4/mktime.m4 # m4/nproc.m4 # m4/nstrftime.m4 # m4/pathmax.m4 # m4/pipe2.m4 # m4/pselect.m4 # m4/pthread_sigmask.m4 # m4/readlink.m4 # m4/realloc.m4 # m4/sig2str.m4 # m4/ssize_t.m4 # m4/stat-time.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/stdio_h.m4 # m4/stdlib_h.m4 # m4/stpcpy.m4 # m4/strnlen.m4 # m4/strtoimax.m4 # m4/strtoll.m4 # m4/time_h.m4 # m4/timegm.m4 # m4/timer_time.m4 # m4/timespec.m4 # m4/unistd_h.m4 # m4/warnings.m4 # nt/configure.bat # nt/preprep.c # test/lisp/register-tests.el
| * ; Add 2024 to copyright yearsPo Lu2024-01-021-1/+1
| |
* | Merge from origin/emacs-29Po Lu2024-01-021-62/+178
|\ \ | |/ | | | | | | | | | | | | | | 3204825f560 Fix mangled Subject header field when forwarding (Bug#67360) 7591acfe38e Update to Org 9.6.15 240b4594f11 ; * etc/TODO: Add an item about 'Info-hide-note-references'. 01be4fe39d7 * doc/emacs/custom.texi (Modifier Keys): Fix markup (bug#... 55555a6a0d1 org-protocol: Minor copy-edits to Commentary 4696869d3d5 Improve syntax highlighting for python-ts-mode
| * Improve syntax highlighting for python-ts-modeDenis Zubarev2023-12-301-62/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix fontification of strings inside of f-strings interpolation, e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. Do not override the face of builtin functions (all, bytes etc.) with the function call face. Add missing assignment expressions (:= *=). Fontify built-ins (dict,list,etc.) as types when they are used in type hints. Highlight union types (type1|type2). Highlight base class names in the class definition. Fontify class patterns in case statements. Highlight the second argument as a type in isinstance/issubclass call. Highlight dotted decorator names. * lisp/progmodes/python.el (python--treesit-keywords): Add compound keyword "is not". (python--treesit-builtin-types): New variable that stores all python built-in types. (python--treesit-type-regex): New variable. Regex matches if text is either built-in type or text starts with capital letter. (python--treesit-builtins): Extract built-in types to other variable. (python--treesit-fontify-string): fix f-string interpolation. Enable interpolation highlighting only if string-interpolation is presented on the enabled levels of treesit-font-lock-feature-list. (python--treesit-fontify-string-interpolation): Remove function. (python--treesit-fontify-union-types): Fontify nested union types. (python--treesit-fontify-union-types-strict): Fontify nested union types, only if type identifier matches against python--treesit-type-regex. (python--treesit-fontify-dotted-decorator): Fontify all parts of dotted decorator name. (python--treesit-settings): Change/add rules. (Bug#67061) * test/lisp/progmodes/python-tests.el (python-ts-tests-with-temp-buffer): Function for setting up test buffer. (python-ts-mode-compound-keywords-face) (python-ts-mode-named-assignement-face-1) (python-ts-mode-assignement-face-2) (python-ts-mode-nested-types-face-1) (python-ts-mode-union-types-face-1) (python-ts-mode-union-types-face-2) (python-ts-mode-types-face-1) (python-ts-mode-types-face-2) (python-ts-mode-types-face-3) (python-ts-mode-isinstance-type-face-1) (python-ts-mode-isinstance-type-face-2) (python-ts-mode-isinstance-type-face-3) (python-ts-mode-superclass-type-face) (python-ts-mode-class-patterns-face) (python-ts-mode-dotted-decorator-face-1) (python-ts-mode-dotted-decorator-face-2) (python-ts-mode-builtin-call-face) (python-ts-mode-interpolation-nested-string) (python-ts-mode-disabled-string-interpolation) (python-ts-mode-interpolation-doc-string): Add tests.
* | Merge from origin/emacs-29Eli Zaretskii2023-12-301-0/+17
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 53031528725 Revert "Fix treesit-node-field-name and friends (bug#66674)" fa0bb88302b ; * src/buffer.c (syms_of_buffer) <default-directory>: Do... 44517037aed ; Fix typo ccf46acefd2 ; Fix last change. c86b039dffc ; * etc/DEBUG: Improve advice for debugging native-compil... 9afba605bbc Explain status "r" in `epa-list-keys` 62714221968 ; * lisp/dired.el (dired--make-directory-clickable): Refo... fcbb0044899 Fix mouse clicks on directory line in Dired be8a7155b48 Fix 'split-root-window-right' and 'split-root-window-below' eb19984c4db Mark icalendar.el as maintained by emacs-devel 03dc914fd37 ; Fix footnotes in ELisp Intro manual ceacf753958 Fix usage of `setq-default' and offer more suggestions 2701da0eee5 Fix python-ts-mode triple quote syntax (bug#67262) 683c7c96871 Increment parser timestamp when narrowing changes (bug#67... 8ae42c825e1 ruby-ts-mode: Fix indentation for string_array closer 9cfa498e0ab treesit-major-mode-setup: Use 'treesit--syntax-propertize... da2e440462b ruby-ts-mode: Fix an out-of-bounds error with heredoc at eob 6ea507296a7 Correctly refontify changed region in tree-sitter modes (...
| * Fix python-ts-mode triple quote syntax (bug#67262)Yuan Fu2023-12-231-0/+17
| | | | | | | | | | * lisp/progmodes/python.el (python--treesit-syntax-propertize): New function. (python-ts-mode): Activate python--treesit-syntax-propertize.
* | Merge from origin/emacs-29Eli Zaretskii2023-12-161-1/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bf4ccb0be07 ; * lisp/term.el (term--xterm-paste): Fix last change. 0d9e2e448d9 ; * doc/lispref/functions.texi (Function Documentation): ... 791cc5065da Fix shaping of Sinhala text efcbf0b5abf Add use cases of (fn) documentation facility. c3331cb3659 Fix pasting into terminal-mode on term.el 5be94e2bce5 Fix opening directory trees from Filesets menu 6b6e770a1f5 Eglot: Add ruff-lsp as an alternative Python server ed8a8a5ba16 Fix symbol name in Multisession Variables examples 400ef15bdc3 js-ts-mode: Fix font-lock rules conflict c165247c300 Add indentation rules for bracketless statements in js-ts... 7f1bd69cd19 Fix c-ts-mode bracketless indentation for BSD style (bug#... e23068cb9a1 Add missing indent rules in c-ts-mode (bug#66152) d2c4b926ac2 Fix treesit-default-defun-skipper (bug#66711) 9874561f39e Fix treesit-node-field-name and friends (bug#66674) eace9e11226 python-ts-mode: Highlight default parameters 23c06c7c308 Update to Org 9.6.13
| * python-ts-mode: Highlight default parametersMaciej Kalandyk2023-12-111-1/+2
| | | | | | | | | | * lisp/progmodes/python.el (python--treesit-settings): Highlight default parameters (bug#67703).
* | Merge from savannah/emacs-29Po Lu2023-11-241-3/+3
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | 1978b603bc3 Make python-ts-mode's syntax-highlighting more standardized 99658346d1e ; Improve documentation of desktop.el in user manual f7dc0202127 Fix "Text is read-only" on backspacing initial Calc input 662d54775d5 Add a doc string to simple.el (bug#67355) 5a5e36d2aad ; Improve function documentation tips 86016d8ecdb Mention "visual line" in user manual 4bb65ed77a8 ; * doc/lispref/minibuf.texi (Programmed Completion): Imp... dfb3dcb404c Allow listing Emoji from a read-only buffer # Conflicts: # lisp/calc/calc.el # lisp/international/emoji.el
| * Make python-ts-mode's syntax-highlighting more standardizedDmitry Gutov2023-11-241-3/+3
| | | | | | | | | | | | | | | | | | This was brought up in a Reddit discussion. * lisp/progmodes/python.el (python--treesit-fontify-variable): Use font-lock-variable-use-face (since it applies to references). (python-ts-mode): Move 'property' from 3rd to 4th treesit-font-lock-level.
* | Merge from savannah/emacs-29Po Lu2023-11-241-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | d72a4ed65ce Fix 'with-sqlite-transaction' when BODY fails a7b3c923733 ; * doc/emacs/cmdargs.texi (Initial Options): Fix last ch... fd76a80864d ; Mention that -x and --script ignore file-locals e0469ddb9d4 ; * doc/emacs/search.texi (Special Isearch): More accurat... e521669fb3f Fix wording in ELisp Intro manual da946ca6924 Add missing python-ts-mode keyword (bug#67015) 0128495afde Fix string-pixel-width with global setting of display-lin... # Conflicts: # etc/NEWS
| * Add missing python-ts-mode keyword (bug#67015)Yuan Fu2023-11-181-1/+1
| | | | | | | | * lisp/progmodes/python.el (python--treesit-keywords): Add "not in".
* | ; Add missing GNU ELPA :core package statementsStefan Kangas2023-10-011-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/bind-key.el: * lisp/emacs-lisp/map.el: * lisp/erc/erc.el: * lisp/external-completion.el: * lisp/net/ntlm.el: * lisp/net/soap-client.el: * lisp/progmodes/python.el: * lisp/svg.el: * lisp/use-package/use-package.el: Add GNU ELPA :core package statements.
* | ; Fix typoStefan Kangas2023-08-081-1/+1
| |
* | Open Pipfile and flake8 config files in conf-modeStefan Kangas2023-08-081-0/+4
| | | | | | | | | | * lisp/progmodes/python.el (auto-mode-alist): Open Pipfile and flake8 configuration files in conf-mode.
* | Add ruff and flake8 to python-check-commandStefan Kangas2023-08-041-1/+3
| | | | | | | | | | * lisp/progmodes/python.el (python-check-command): Add ruff and flake8.
* | Custom var python-interpreter-args (bug#64397)Matthias Meulien2023-07-201-18/+41
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/python.el (python-interpreter): Mention new variable in documentation. (python-interpreter-args): New custom variable. (python-shell-interpreter, python-shell-interpreter-args) (python-shell-interpreter-interactive-arg): Improve documentation. (python--list-imports, python--do-isort) (python-fix-imports): Make process use customisable arguments.
* | Fix "Improve Python imports management commands"Matthias Meulien2023-07-151-14/+15
| | | | | | | | | | | | | | | | | | * lisp/progmodes/python.el (python--list-imports): Prefer to use an exit status >1. (python--list-imports-check-status): New function to check status of Python script. (python--do-isort): Fix wrong status check introduced with 6295d7abdd4. (Bug#64406)
* | Improve Python imports management commandsMatthias Meulien2023-07-061-4/+18
| | | | | | | | | | | | * lisp/progmodes/python.el (python--list-imports): Handle import errors. (python--do-isort): Specialize error message. (Bug#64406)
* | Fix Python indentation of continuation lines within parenskobarity2023-06-241-2/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/python.el (python-indent-context): Add a new indent context `:inside-paren-continuation-line'. (python-indent--calculate-indentation): Use the new indent context. * test/lisp/progmodes/python-tests.el (python-indent-pep8-2) (python-indent-pep8-3) (python-indent-inside-paren-1) (python-indent-inside-paren-2) (python-indent-inside-paren-3) (python-indent-inside-paren-6) (python-indent-after-backslash-2): Change to use the new indent context. (python-indent-inside-paren-8) (python-indent-inside-paren-9): New tests. (Bug#63959)
* | Merge from origin/emacs-29Eli Zaretskii2023-06-171-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 84d2da003e1 ; Fix example in the Flymake manual 0a1459f1d9b * doc/misc/calc.texi (Advanced Math Functions): Correct c... 92faf1f5645 Consider 'dired-kill-when-opening-new-dired-buffer' in mo... bafe71a69fc ; Fix use-package.texi markup 018e4ca6c5d ; * doc/misc/calc.texi (Advanced Math Functions): Fix las... 1952dbd4c5f Fix Gamma function definition in calc.texi f73f82d7e89 Fix subscripts in the Calc manual 70fc7c41ef3 Improve documentation of 'declare' forms c8357582389 ; * src/lread.c (bytecode_from_rev_list): Avoid C++ comment. 28478574961 Improve tree-sitter docs 0e9307eb2b8 Fix some Texinfo markup in manuals 8dc08333eea Fix bol/bos anchors in tree-sitter :match regexps 8225ade6151 ; * src/xdisp.c (syms_of_xdisp) <display-line-numbers>: F... 1f0527a312a ; Fix last change in tex-mode.el 4da479920e6 * lisp/subr.el (with-restriction): Tweak indent rule 36aa9bd8183 ; Fix previous change aaeaf608d89 Fix setting region in the minibuffer 1383efe01d0 Fix setting $DBUS_SESSION_BUS_ADDRESS after Emacs has sta... bdb0bc2b4e4 Fix tex-mode display-buffer issues 90047c38ce9 Add test for when 'completion-auto-help' is 'visible' 2c623e4feb9 Avoid errors in 'apropos-documentation' after 'eval-buffer' dd3b98121cc ; * doc/emacs/indent.texi (Indentation Commands): Fix las... 904edf1f076 Mention indent-rigidly in the Emacs manual
| * Fix bol/bos anchors in tree-sitter :match regexpsBasil L. Contovounesios2023-06-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Further regexp fixes to follow separately (bug#64019#29). * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode--font-lock-settings): * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): * lisp/progmodes/js.el (js--treesit-font-lock-settings): * lisp/progmodes/python.el (python--treesit-settings): * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings): * lisp/progmodes/sh-script.el (sh-mode--treesit-settings): * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--font-lock-settings): * test/src/treesit-tests.el (treesit-query-api): Anchor :match regexps at beginning/end of string, not line.
* | Merge from origin/emacs-29Eli Zaretskii2023-06-031-35/+17
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ede3535051a ; Fix last change 8ec786349e1 Fix apostrophe handling in rust-ts-mode and go-ts-mode (B... 0eba9cf6511 * test/infra/Dockerfile.emba (emacs-base): Install also g... 4897c98b6c4 Fix 'python-util-clone-local-variables' 6b2c8dc9050 Revert "Enhance Python font-lock to support multilines" 348e4504c6d Fix typo in calc.texi 03663b8798a Update to Transient v0.4.1 dc7acb1aafe Avoid errors in 'delete-forward-char' deleting static com... 2f94f6de9d6 Make VS-15 and VS-16 compositions work correctly 753f8aa1f14 Fix project-name for vc-aware backend in non-file buffers 17c7915ab94 ; Fix 'package-install-upgrade-built-in' check for packag... e252ce26eab Add type_predicate 'is' as keyword in typescript-ts-mode ... 0a354d65784 Fix infloop in info-look.el 83b22139e4c Fix several todo-mode.el item editing bugs (bug#63811) ed4cd3eddf7 dockerfile-ts-mode: Prevent empty categories in imenu (Bu... 2e20e318da2 Brush up doc strings and terminology in plstore.el 372bc1278c2 Add internal documentation on plstore.el 23a14e7b902 Add compact_constructor_declaration font-locking to java-... 500abc4dc37 * lisp/tmm.el (tmm-completion-delete-prompt): Add more ch... afc1f329356 Allow to disable the DWIMish behavior of 'x' in package menu 08104c01504 Allow dired to invoke secondary browser a3063f0bc87 Add a binding for enriched-toggle-markup d8ba28fa394 Fix order of tmm-menubar when 'tmm-mid-prompt' is nil # Conflicts: # etc/NEWS
| * Fix 'python-util-clone-local-variables'Eli Zaretskii2023-06-031-1/+2
| | | | | | | | | | | | * lisp/progmodes/python.el (python-util-clone-local-variables): Avoid signaling an error when a local variable is unbound. Patch by Ernesto Alfonso <erjoalgo@gmail.com>. (Bug#63818)
| * Revert "Enhance Python font-lock to support multilines"kobarity2023-06-031-34/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 4915ca5dd4245a909c046e6691e8d4a1919890c8. We have found that there are performance issues when editing a large file. The issue can be reproduced as follows: 1. emacs -Q 2. Open large Python file (e.g. turtle.py in Python) 3. Near the top of the buffer, enter open paren and some characters. The above commit extends the region to be font-locked using `python-nav-end-of-statement'. However, if there are unbalanced parens, it may move point to the end of the buffer. This causes almost the entire buffer to be font-locked, which is not acceptable for large files.
* | Merge from origin/emacs-29Eli Zaretskii2023-05-261-20/+21
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | aa5158630e7 Use 'font-lock-extend-region-functions' in python-mode b7b82ecb2b4 Fix python-info-docstring-p f42de74ebea ; * src/lread.c (read0, skip_lazy_string): Fix commentary... b6b384023a9 Fix cancellation of Wdired 916c2a19bde Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/... f535c0e49d5 Handle #@00 in new reader in a compatible way (bug#63722) 40a758f5ceb ; Minor fixes in documentation of recently-changed VC com... c0d7447e9dc ; * etc/NEWS: Describe the Cairo XCB option. (Bug#63589) 42052686752 Don't mark selection request events 9f5249d5c8d Disable cairo-xcb support by default e5f42706ce2 * lisp/progmodes/project.el: Move :safe from defcustom to... 3afe4a42e90 * lisp/vc/vc-annotate.el (vc-annotate-mode-menu): Quote v... b62a2b08b80 Add vc-create/switch/print-branch to menu and update docu... d292d282292 Fix rare crashes in 'try_window_reusing_current_matrix' 709d9020021 Make last Tramp change less invasive a72a1f24fcb ; Fix last change. 5c6517a115d ; * lisp/menu-bar.el (popup-menu): Doc fix. 212884f2bfe ; Fix last change. 1b9812af80b ; * etc/PROBLEMS: Document problem with GnuPG 2.4.1. (Bu... 765edc204d4 ; Support SQLite3 extensions on macOS 5aadb87d6f6 Fix 'use-dialog-box-p' and friends # Conflicts: # etc/NEWS
| * Use 'font-lock-extend-region-functions' in python-modekobarity2023-05-261-15/+19
| | | | | | | | | | | | | | | | * lisp/progmodes/python.el (python-font-lock-extend-region): Change arguments and return value for 'font-lock-extend-region-functions'. (python-mode): Change from 'font-lock-extend-after-change-region-function' to 'font-lock-extend-region-functions'. (Bug#63622)
| * Fix python-info-docstring-pkobarity2023-05-261-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/python.el (python-info-docstring-p): Stop using python-rx string-delimiter. * test/lisp/progmodes/python-tests.el (python-font-lock-escape-sequence-bytes-newline) (python-font-lock-escape-sequence-hex-octal) (python-font-lock-escape-sequence-unicode) (python-font-lock-raw-escape-sequence): Mark as expected failures until another bug in 'python-info-docstring-p' is corrected. (python-info-docstring-p-7): New test. (Bug#63622)
* | Merge from origin/emacs-29Eli Zaretskii2023-05-261-2/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6f6071c5261 Avoid duplicate load-path entry when generating package a... 117b29c6f66 ; Improve documentation of Isearch command properties a347b26cba2 Disable loading SQLite3 extensions when SQLite3 version i... fe22bf503fb ; * lisp/progmodes/project.el (project-switch-use-entire-... 64dbbde3b77 Fix visiting HTML files encoded in iso-2022 variants 5c95239aca2 ; Fix markup of some treesit vars in Elisp manual. 6ad041939be Support 'isearch-allow-scroll' in 'pixel-scroll-precision... ecccdc07a09 shr: allow moving between adjacent anchors 504ef25ef36 ; * etc/NEWS: Fix typos. d6fb868cdd3 Fix multihop file name expansion in Tramp dd3e4e14fdc Remove obsolete information from Gnus manual 2a5c946f879 Preserve mark in comint-history-isearch 6b60c8142ea Fix systemd unit completion for old versions of systemd 8c56557cd9d Fix Skeletons menu-bar menu in Python modes 58eb38cfb47 ; * etc/NEWS: missing definite article cf403628692 ; * etc/NEWS: PGTK cannot switch to -new automatically (b... ead3a2abbfc Fix loading SQLite extensions a6bddd17658 ; * etc/NEWS: Fix typos. f49fe936abd * etc/NEWS: Note dotimes loop variable scoping change (bu... cec9333dc52 Fix c-ts-mode--top-level-declarator f571e8f1bb6 Improve c-ts-mode font-lock for function names (bug#63390) 42a28ffdc27 * lisp/tab-bar.el: Don't use 'minibuffer-selected-window'... 8e61d23f71e Split windows horizontally in places that use split to cr... 459d08c7fe7 Fix tree-sitter test (bug#63481) 3bc5efb87e5 ; * lisp/emacs-lisp/benchmark.el (benchmark-progn): Fix d... # Conflicts: # etc/NEWS
| * Fix Skeletons menu-bar menu in Python modesEli Zaretskii2023-05-201-2/+4
| | | | | | | | | | | | | | * lisp/progmodes/python.el (python-mode, python-ts-mode): Call 'python-skeleton-add-menu-items' here, not in 'python-base-mode', since the "Python" menu is not yet set up in the latter. (Bug#63598)
* | Simplify python.el completion-predicateBasil L. Contovounesios2023-05-181-16/+6
| | | | | | | | | | | | | | | | | | * lisp/progmodes/python.el: (python-skeleton-define): Use command-modes as a shorthand for completion-predicate (bug#63552). (python--completion-predicate, python-shell--completion-predicate): Remove accordingly; no longer used. (python-define-auxiliary-skeleton): Prefer function-put over put.
* | Merge from origin/emacs-29Eli Zaretskii2023-05-181-2/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | f8d9e40d2c1 Attempt to fix redisplay problems on macOS 4daa6f70497 ; * lisp/simple.el (async-shell-command): Add commentary ... dc1a437d460 Clarify misleading comment in isearch.el af3b0dc53ff Improve documentation of package-menu commands d879847cd4d Fix M-x completion-predicate under python-ts-mode 1e57b2b4c79 * Account for `byte-compile-warnings' during native compi... b5bfd808c6b Avoid duplicate VC packages in 'package-selected-packages' c18f9f155f6 * lisp/tab-bar.el (tab-bar-new-tab-to): Set 'window-side'... 33485fe8f74 ; Better warning message when loading tree-sitter fails 95a724abaac Update to Org 9.6.6 c665ca79ff4 ; * admin/make-tarball.txt: Minor copyedits. 3aef46e466f Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ... 229af8e4b31 ; * lisp/progmodes/csharp-mode.el (csharp-ts-mode--defun-...
| * Fix M-x completion-predicate under python-ts-modeBasil L. Contovounesios2023-05-171-2/+2
| | | | | | | | | | | | | | * lisp/progmodes/python.el (python--completion-predicate) (python-shell--completion-predicate): Filter M-x completion based on python-base-mode instead of python-mode. This allows for python-ts-mode as well (bug#63552).
* | Declare `cl-delete` to have important-return-value (bug#61730)Mattias Engdegård2023-05-011-2/+1
| | | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el: Set property on `cl-delete`. * lisp/progmodes/python.el (python-shell--add-to-path-with-priority): Prevent warning by cleaner code.
* | Improve docstring of python-indent-def-block-scalekobarity2023-04-221-1/+24
| | | | | | | | | | * lisp/progmodes/python.el (python-indent-def-block-scale): Improve docstring. (Bug#62696)
* | Add a new user option in Python mode to improve the indentationkobarity2023-04-221-7/+50
|/ | | | | | | | | | | | | | | | * lisp/progmodes/python.el (python-indent-block-paren-deeper): New user option. (python-indent-context): Add a new context :inside-paren-from-block. (python-indent--calculate-indentation): Modify according to `python-indent-block-paren-deeper' and :inside-paren-from-block. * test/lisp/progmodes/python-tests.el (python-indent-inside-paren-block-1) (python-indent-inside-paren-block-2) (python-indent-inside-paren-block-3) (python-indent-inside-paren-block-4): New tests. (python-indent-inside-paren-5, python-indent-dedenters-8): Modify according to the new context. * etc/NEWS: Document the new user option. (Bug#62696)
* Improve indenting "case" in Pythonkobarity2023-03-261-1/+8
| | | | | | | | * lisp/progmodes/python.el (python-info-dedenter-statement-p): Do not consider the first "case" in the block as dedenter. * test/lisp/progmodes/python-tests.el (python-info-dedenter-opening-block-positions-7) (python-info-dedenter-statement-p-6): New tests. (Bug#62092)
* Fix python-fill-paragraph problems on filling strings (bug#62142)kobarity2023-03-161-8/+27
| | | | | | | | | | | | | | | | * lisp/progmodes/python.el (python-syntax--context-compiler-macro) (python-syntax-context): Add single-quoted-string and triple-quoted-string as TYPE argument. (python-info-triple-quoted-string-p): New helper function. (python-fill-paragraph) (python-fill-string): Use it. * test/lisp/progmodes/python-tests.el (python-syntax-context-1) (python-fill-paragraph-single-quoted-string-1) (python-fill-paragraph-single-quoted-string-2) (python-fill-paragraph-triple-quoted-string-1) (python-info-triple-quoted-string-p-1) (python-info-triple-quoted-string-p-2) (python-info-triple-quoted-string-p-3): New tests.
* Make "case" keyword a dedenter in Pythonkobarity2023-03-111-2/+3
| | | | | | | * lisp/progmodes/python.el (python-rx): Add "case" to dedenter. (python-info-dedenter-opening-block-positions): Add "case" to pairs. * test/lisp/progmodes/python-tests.el (python-indent-dedenters-9): New test.
* python-info-dedenter-opening-block-positions: Fix to support "bare" matchDmitry Gutov2023-03-091-1/+3
| | | | | | | | | * lisp/progmodes/python.el (python-info-dedenter-opening-block-positions): Make the check stricter. Require that block starts only at indentation. * test/lisp/progmodes/python-tests.el (python-indent-after-bare-match): Another test (bug#62031).
* Revert workaround introduced in Bug#56271kobarity2023-03-091-8/+1
| | | | | | * lisp/progmodes/python.el (python-nav-end-of-statement) (python-nav-end-of-block): Revert workaround introduced in Bug#56271 as the bug is fixedin Bug#58780.
* Fix searching for end of string in python-nav-end-of-statementkobarity2023-03-091-4/+10
| | | | | | | | * lisp/progmodes/python.el (python-nav-end-of-statement): Add searching for corresponding string-quote. * test/lisp/progmodes/python-tests.el (python-nav-end-of-statement-3) (python-nav-end-of-statement-4, python-info-current-defun-4): New tests. (Bug#58780)
* Avoid potential infloopDmitry Gutov2023-03-091-3/+3
| | | | | | * lisp/progmodes/python.el (python-info-dedenter-opening-block-positions): Avoid potential infloop (bug#62031).