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

1077 commits

Author SHA1 Message Date
Stefan Kangas
84c66625e5 ; Minor cleanup of python-interpreter variable
* lisp/progmodes/python.el (python-interpreter)
(python-shell-interpreter): Simplify definition.
2024-10-05 11:48:36 +02:00
Stefan Kangas
6b1271b169 Fix python-ts-mode-map docstring
* lisp/progmodes/python.el (python-ts-mode-map): Fix docstring.
2024-10-05 01:58:50 +02:00
Stefan Kangas
6e8fc4f6ea Use python-mode for SCons build files
SCons is a build system whose associated files are Python scripts.
Ref: https://www.scons.org/doc/0.96/HTML/scons-user/x325.html

* lisp/progmodes/python.el (python--auto-mode-alist-regexp):
Use 'python-mode' for SCons build files.
2024-10-05 01:08:14 +02:00
Stefan Kangas
ee6e737fdf python: Better support := in electric-layout-mode
* lisp/progmodes/python.el (python-base-mode): Use heuristic to better
support the Python walrus operator := in electric-layout-rules.
2024-10-04 23:39:22 +02:00
Theodor Thornhill
c9e30e8c77 Add sentence and sexp movement to python-ts-mode
* lisp/progmodes/python.el (python-ts-mode): Add relevant node
types.  (Bug#60856)
2024-10-04 01:51:44 +02:00
Stefan Kangas
e792856b00 Prefer defvar-local where possible
* lisp/editorconfig.el (editorconfig-properties-hash):
* lisp/emacs-lisp/comp-run.el (comp-last-scanned-async-output):
* lisp/info-look.el (info-lookup-mode):
* lisp/mh-e/mh-folder.el (mh-generate-sequence-font-lock):
* lisp/net/tramp.el (tramp-temp-buffer-file-name):
* lisp/obsolete/iswitchb.el (iswitchb-eoinput):
* lisp/obsolete/longlines.el (longlines-wrap-beg, longlines-wrap-end)
(longlines-wrap-point, longlines-showing, longlines-decoded):
* lisp/obsolete/tpu-edt.el (tpu-newline-and-indent-p)
(tpu-newline-and-indent-string, tpu-saved-delete-func)
(tpu-buffer-local-map, tpu-mark-flag):
* lisp/progmodes/python.el (python-check-custom-command):
* lisp/textmodes/reftex.el (reftex-docstruct-symbol)
(reftex-isearch-minor-mode): Prefer defvar-local where possible, and
the package does not support Emacs 24.3 or earlier.
2024-10-01 21:31:02 +02:00
Stefan Kangas
fd1a1b0780 Remove out-of-date documentation from python.el
* lisp/progmodes/python.el: Remove out-of-date documentation about
automatic indentation; 'electric-indent-mode' is enabled by default in
Emacs 24.4 or later, so this is no longer an issue.
2024-09-30 20:38:01 +02:00
Stefan Kangas
dd4c67907e Try "python" before "python3" in python-mode
Prefer whatever version of Python that "python" might point to; use
"python3" if it doesn't exist.  On recent versions of typical GNU/Linux
distributions, "python" either does not exist or it points to Python 3.
In (presumed rare) cases where "python" points to Python 2 instead,
users are now expected to manually customize these variables if they
want to use Python 3.

* lisp/progmodes/python.el (python-interpreter)
(python-shell-interpreter): Prefer "python" to "python3".

Ref:
https://lists.gnu.org/r/emacs-devel/2024-09/msg00885.html
2024-09-29 23:39:54 +02:00
Eli Zaretskii
c934450d14 ; Fix 'python-ts-mode'
* lisp/progmodes/python.el (python-ts-mode): Fix setting up
'auto-mode-alist'.  (Bug#73531)
2024-09-28 19:53:30 +03:00
Eli Zaretskii
42eb2265e6 ; * lisp/progmodes/python.el (python-interpreter): Fix :version. 2024-09-27 08:44:35 +03:00
Stefan Kangas
7f0a252f21 Prefer python3 for python-interpreter
* lisp/progmodes/python.el (python-interpreter): Prefer "python3" when
it exists, to be consistent with python-shell-interpreter.
2024-09-27 07:01:23 +02:00
Gerd Möllmann
b9d103c16e ; Fix build error with last change in python.el 2024-09-26 17:35:38 +02:00
Stefan Kangas
2f485e68ff Add Python "*.pth" files to auto-mode-alist
* lisp/progmodes/python.el (python--auto-mode-alist-regexp): New
variable.
(auto-mode-alist, python-ts-mode): Use above new variable.
2024-09-26 17:04:31 +02:00
Stefan Kangas
dac1a48240 Delete redundant declarations of 'electric' variables
* lisp/progmodes/js.el (electric-layout-rules):
* lisp/progmodes/octave.el (electric-layout-rules):
* lisp/progmodes/python.el (electric-indent-inhibit):
* lisp/textmodes/rst.el (electric-indent-inhibit): Delete redundant
declarations; 'electric' is preloaded since Emacs 24.4.
2024-09-21 14:48:02 +02:00
Stefan Kangas
3cad879c9d Add Python keywords "aiter" and "anext"
* lisp/progmodes/python.el (python-font-lock-keywords-level-2)
(python--treesit-builtins): Add "aiter" and "anext" keywords,
introduced in Python 3.10.
2024-09-21 14:29:40 +02:00
Stefan Kangas
7aa5876cdf Add all exceptions up to Python 3.13 as keywords
* lisp/progmodes/python.el
(python-font-lock-keywords-maximum-decoration)
(python--treesit-exceptions): Add all built-in exceptions in Python 3.13
as keywords.  Missing from the list was "BaseExceptionGroup",
"EncodingWarning", "ModuleNotFoundError", and "PythonFinalizationError".
2024-09-21 14:20:29 +02:00
Stefan Kangas
29a7607117 Add subword-mode toggle to python-mode menu
* lisp/progmodes/python.el (python-mode-map): Add subword-mode
toggle to menu.
2024-09-21 14:08:09 +02:00
Stefan Kangas
dfecd6037d Support electric-layout-mode in python-base-mode
* lisp/progmodes/python.el (python-base-mode): Add support for
'electric-layout-mode'.
2024-09-21 14:08:09 +02:00
Eli Zaretskii
4073c62437 Fix :type of some user options
* lisp/which-key.el:
* lisp/progmodes/python.el:
* lisp/play/animate.el:
* lisp/pixel-scroll.el:
* lisp/image/image-dired.el:
* lisp/htmlfontify.el: Change :type of user options from 'float'
to 'number' where integer values make sense.  (Bug#73098)
2024-09-08 19:17:48 +03:00
Eli Zaretskii
fa76ec7b5f Merge from origin/emacs-30
5fd75133cf Make 'python-shell--with-environment' respect buffer-loca...
e27849ecf6 Avoid ANSI escape characters in Python output (bug#45938)
4f521fa14c Fix handling of hook variables in 'use-package'
bb5576fc90 Work around Gnuplot bug in displaying plots
2024-08-31 08:14:14 -04:00
Eli Zaretskii
d1f896b5f8 Merge from origin/emacs-30
4b60267d83 Make Python skeletons available in 'python-ts-mode' as well
62dcbfb776 Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/...
1baa62b2ac ; * etc/NEWS: Fix typos.
dfcfaa0ef5 More accurate documentation of 'equal' in ELisp Reference
baaf97ce1a ; Fix some ungrammatical uses of "allows to"

# Conflicts:
#	etc/NEWS
2024-08-31 08:14:13 -04:00
Evgenii Klimov
5fd75133cf Make 'python-shell--with-environment' respect buffer-local vars
* lisp/progmodes/python.el (python-shell--with-environment):
Make `with-temp-buffer' respect buffer-local values of
`process-environment' and `exec-path', if set.  (Bug#72849)
2024-08-31 13:16:42 +03:00
Evgenii Klimov
e27849ecf6 Avoid ANSI escape characters in Python output (bug#45938)
* lisp/progmodes/python.el (python-shell-completion-native-setup):
Prevent Readline from emitting escape characters in comint output.
2024-08-31 13:12:50 +03:00
kobarity
4b60267d83 Make Python skeletons available in 'python-ts-mode' as well
* lisp/progmodes/python.el (python-base-mode-abbrev-table):
Renamed from 'python-mode-abbrev-table' to be available for both
'python-mode' and 'python-ts-mode'.  (Bug#72298)
2024-08-31 12:42:42 +03:00
Po Lu
df1630ad3b Merge from savannah/emacs-30
f4c0459ed3 Fix Tramp parser
47c79b62dd Checkdoc fixes in progmodes
6757f8e67d Checkdoc fixes in Org Mode
9fcee3c1d1 Clarify `checkdoc-max-keyref-before-warn` docstring
b249f022f1 * lisp/files.el (insert-directory): Quote switches in wil...
8911d53ce5 Fix uses of 'dired-omit-mode' (bug#71905)
2024-07-08 15:43:55 +08:00
Stefan Kangas
47c79b62dd Checkdoc fixes in progmodes
* lisp/progmodes/cperl-mode.el (cperl-file-style)
(cperl-continued-brace-offset, cperl-tips-faces):
* lisp/progmodes/eglot.el (eglot-confirm-server-edits, eglot)
(eglot-list-connections-mode, eglot--outstanding-inlay-hints-region)
(eglot--outstanding-inlay-regions-timer):
* lisp/progmodes/etags.el (etags-goto-tag-location)
(etags--xref-apropos-additional):
* lisp/progmodes/flymake.el (flymake-autoresize-margins):
* lisp/progmodes/gdb-mi.el (gdb-mouse-until, gdb-mouse-jump):
* lisp/progmodes/hideif.el (hif-parse-macro-arglist):
* lisp/progmodes/idlw-help.el (idlwave-html-help-location):
* lisp/progmodes/idlwave.el (idlwave-reserved-word-upcase):
* lisp/progmodes/java-ts-mode.el (java-ts-mode--string-highlight-helper):
* lisp/progmodes/js.el (js--chained-expression-p):
* lisp/progmodes/pascal.el (pascal-mode, pascal-comment-area):
* lisp/progmodes/python.el (python--treesit-fontify-union-types):
* lisp/progmodes/ruby-mode.el (ruby-align-chained-calls)
(ruby-block-indent, ruby-rubocop-use-bundler):
* lisp/progmodes/rust-ts-mode.el
(rust-ts-mode--prettify-symbols-compose-p):
* lisp/progmodes/verilog-mode.el (verilog-cache-has-lisp)
(verilog-auto-insert-lisp, verilog-highlight-region):
* lisp/progmodes/xref.el (xref--get-history): Various checkdoc fixes.
2024-07-07 17:46:30 +02:00
Stefan Kangas
bc2e9210bf Support grep.el better in python-base-mode
* lisp/progmodes/python.el (python-base-mode): When mode is first
enabled, add *.py alias to 'grep-files-aliases', and add common Python
tooling directories to 'grep-find-ignored-directories'.
2024-06-29 21:37:24 +02:00
James Thomas
6ec77f580d Do not prematurely truncate python eldoc string
'eldoc-echo-area-use-multiline-p' is there for that.
* lisp/progmodes/python.el (python-eldoc-setup-code):
Make the change.  (Bug#71720)

* etc/NEWS: Announce the change in behavior.
2024-06-27 11:53:29 +03:00
kobarity
af6e7ed4c1 Allow escape sequences in Python prompts
* lisp/progmodes/python.el (python-shell-prompt-detect): Use
Python's json package if available, and remove escape sequences
in prompts.
* test/lisp/progmodes/python-tests.el
(python-tests-interpreter-2-6-higher-p): New predicate
function.
(python-shell-prompt-detect-7): New test.  (Bug#71440)
2024-06-15 13:46:29 +03:00
kobarity
25ab3e7be8 Fix hiding a Python block ending with a comment
* lisp/progmodes/python.el (python-hideshow-forward-sexp-function): Move
point to the end of the line.
* test/lisp/progmodes/python-tests.el (python-hideshow-hide-block-2):
New test.  (Bug#71170)
2024-06-09 16:49:05 +03:00
kobarity
c03cafba39 Fix Python mode error caused by incorrect indentation
* lisp/progmodes/python.el (python-indent--calculate-indentation):
Guard against negative indentation.  (Bug #65870)

* test/lisp/progmodes/python-tests.el
(python-indent-badly-indented-block-end): New test.
2024-06-08 15:27:47 +03:00
Lin Sun
b241ec0e78 Enhance 'python-shell-send-block' for convenience
* lisp/progmodes/python.el (python-shell-send-block):
'python-shell-send-block' will now send block without header
by default.
* test/lisp/progmodes/python-tests.el
(python-test--shell-send-block): Update the test case.
(Bug#71083)
2024-05-26 11:23:12 +03:00
kobarity
9ca89cb483 ; Fix merge error (bug#71093). 2024-05-26 11:21:07 +03:00
Eli Zaretskii
ed7e576975 Merge from origin/emacs-29
4f0121f8db Avoid assertion violations in displaying under 'outline-m...
1bf6583662 Improve documentation of 'no-special-glyphs' frame parameter
3647645e94 Fix Python font lock of chained assignment statement
3291dea441 Fix example in Calc manual
350ae75f5c Avoid crashes on MS-Windows due to invalid UNC file names
ccf8dba44a ; * lisp/face-remap.el (text-scale-adjust): Doc fix.
5ab144c77c ; Improve documentation of backing up files
2024-05-25 08:00:48 -04:00
kobarity
3647645e94 Fix Python font lock of chained assignment statement
* lisp/progmodes/python.el
(python-font-lock-keywords-maximum-decoration): Allow chaining
of single assignment statements.
* test/lisp/progmodes/python-tests.el
(python-font-lock-assignment-statement-20): New test.
(Bug#71093)
2024-05-24 17:53:34 +03:00
kobarity
c97e7a2da2 Improve fontification of Python assignments with type hints
* lisp/progmodes/python.el (python-font-lock-keywords-maximum-decoration):
Fontify type hints of assignment statement.  (Bug#69357)
* test/lisp/progmodes/python-tests.el
(python-font-lock-assignment-statement-11)
(python-font-lock-assignment-statement-12)
(python-font-lock-assignment-statement-13)
(python-font-lock-assignment-statement-18): Add fontification of type
hints.
(python-font-lock-assignment-statement-19): New test.
2024-05-18 22:22:34 +02:00
Lin Sun
751e21af42 ; Check process in 'python-shell-completion-at-point'
* lisp/progmodes/python.el (python-shell-completion-at-point):
Check the PROCESS argument at the beginning of the function.
(Bug#70707)
2024-05-09 10:56:21 +03:00
Noah Peart
08799957f0 Add bitwise assignment operators to 'python--treesit-operators'
* lisp/progmodes/python.el (python--treesit-operators): Add
bitwise assignment operators.  (Bug#70666)
2024-05-09 10:42:34 +03:00
Noah Peart
24c02c700c
Fontify for_statement variable in python-ts-mode (bug#70718)
* lisp/progmodes/python.el (python--treesit-settings): Add
font-lock query for for_statement variable in assignment feature.
2024-05-08 21:31:58 -07:00
Eli Zaretskii
fdfadd6f46 ; Fix last change
* lisp/progmodes/python.el
(python-shell-compilation-regexp-alist): Add :version.
(Bug#70653)
2024-05-04 14:51:05 +03:00
shynur
bfb31a06ac Locate error source of ExceptionGroup in Python shell
The Python shell recognizes the line containing a file path and
a line number when an exception is raised up to the top-level,
in order to locate the source of error.  It's supposed to
recognize the built-in ExceptionGroup as well.  (Bug#70653)
* lisp/progmodes/python.el (python-shell-compilation-regexp-alist):
Take the single leading vertical line into account.
* etc/NEWS: Announce this change.
2024-05-04 14:48:38 +03:00
Eli Zaretskii
59c18389bd ; Fix last change
* lisp/progmodes/python.el (python-shell-send-block): Doc fix.

* test/lisp/progmodes/python-tests.el
(python-test--shell-send-block): Avoid byte-compiler warnings.
(Bug#70609)
2024-05-02 13:04:15 +03:00
Lin Sun
b2e92c746e New function 'python-shell-send-block' for python-mode
* lisp/progmodes/python.el (python-shell-send-block): New
function.
* test/lisp/progmodes/python-tests.el
(python-test--shell-send-block): Test case for the new
function.
* etc/NEWS: Document 'python-shell-send-block'.
(Bug#70609)
2024-05-02 12:56:31 +03:00
kobarity
d15efe965d Add ExceptionGroup as a Python keyword
* lisp/progmodes/python.el
(python-font-lock-keywords-maximum-decoration)
(python--treesit-exceptions): Add ExceptionGroup.  (Bug#70653)
2024-05-02 12:34:16 +03:00
Noah Peart
0f92d433d2
Add font-locking for typed parameters in python-ts-mode (bug#70665)
* lisp/progmodes/python.el (python--treesit-settings): Add
tree-sitter font-locking rule for typed parameters.
* test/lisp/progmodes/python-tests.el
(python-ts-mode-types-face-1): Test for
font-lock-variable-name-face in typed parameter.
2024-05-01 21:26:29 -07:00
Eli Zaretskii
687c4137fa Merge from origin/emacs-29
f37f01b504 Fix a typo in Introduction to Emacs Lisp (bug#70571).
d8687fd6cd Fix last change
494dfd9cf2 Fix indentation of if/else in 'csharp-ts-mode' (bug#70345)
1cc6322e61 ; * etc/PROBLEMS: Document crashes due to tree-sitter ABI...
42766f95e5 * build-aux/make-info-dir: Avoid bashism (bug#70484).
81476fa19e Improve documentation of selection and navigation in *xre...
2a53351492 Fix Widget manual typos, markup and omissions (bug#70502)
90be3015b4 ; Document bookmark fringe mark in the user manual
afd0b548fc Fix python-ts-mode built-in functions and attributes (bug...
dc720decc3 Fix markup and indexing in the Calendar chapter of user m...
f593bf79a9 Fix the user manual for `calendar-time-zone-style'
aed2b7a3d8 Avoid assertion violations in 'push_prefix_prop'
c929532b46 Remove ert-equal-including-properties from manual
e3aae5fd38 ; Document 'filtered-frame-list'
2024-04-27 06:23:46 -04:00
Prateek Sharma
afd0b548fc
Fix python-ts-mode built-in functions and attributes (bug#70478)
* lisp/progmodes/python.el (python--treesit-settings): Change the
treesitter query to fetch the correct type of node for built-in
functions and attributes and highlight them with corresponding
font-lock face.
2024-04-21 16:37:15 -07:00
Dmitry Gutov
73bd48de3c ; Minor copy edits 2024-04-09 22:40:43 +03:00
Liu Hui
a7057745f5 Detect the readline support for Python shell completion
* lisp/progmodes/python.el
(python-shell-comint-watch-for-first-prompt-output-filter):
Detect the readline support.
(python-shell-readline-completer-delims): Update docstring.
(python-shell-completion-native-setup): Move the readline
detection code to ...
(python-shell-readline-detect): ... new function.
(python-shell-completion-native-turn-on-maybe): Skip if Python
has no readline support.
(python-shell-completion-at-point): Respect the delimiter of
readline completer in non-native completion.
* test/lisp/progmodes/python-tests.el
(python-shell-completion-at-point-1)
(python-shell-completion-at-point-native-1)
(python-completion-at-point-1, python-completion-at-point-2)
(python-completion-at-point-pdb-1)
(python-completion-at-point-while-running-1)
(python-completion-at-point-native-1)
(python-completion-at-point-native-2)
(python-completion-at-point-native-with-ffap-1)
(python-completion-at-point-native-with-eldoc-1): Skip tests if
Python has no readline support.
(python-shell-completion-at-point-jedi-completer): Add test for
non-native Python shell completion. (bug#68559)
2024-03-14 15:09:56 +01:00
Stefan Monnier
c79a509384 Add non-TS modes as extra parent of TS modes (bug#68246)
Record the fact that TS modes are alternatives to the non-TS
modes using the new `derived-mode-add-parents` functionality.
Do the same for long standing similar issues with CPerl-mode.

* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode):
* lisp/textmodes/toml-ts-mode.el (toml-ts-mode):
* lisp/textmodes/html-ts-mode.el (html-ts-mode):
* lisp/textmodes/css-mode.el (css-ts-mode):
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode, tsx-ts-mode):
* lisp/progmodes/sh-script.el (bash-ts-mode):
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode):
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
* lisp/progmodes/python.el (python-ts-mode):
* lisp/progmodes/lua-ts-mode.el (lua-ts-mode):
* lisp/progmodes/json-ts-mode.el (json-ts-mode):
* lisp/progmodes/js.el (js-ts-mode):
* lisp/progmodes/java-ts-mode.el (java-ts-mode):
* lisp/progmodes/heex-ts-mode.el (heex-ts-mode):
* lisp/progmodes/go-ts-mode.el (go-ts-mode, go-mod-ts-mode):
* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode):
* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode):
* lisp/progmodes/csharp-mode.el (csharp-ts-mode):
* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode):
* lisp/progmodes/c-ts-mode.el (c-ts-mode, c++-ts-mode):
Add non-TS mode as extra parent.

* lisp/progmodes/cperl-mode.el (cperl-mode): Add `perl-mode` as
extra parent.
2024-03-09 10:29:06 -05:00