summaryrefslogtreecommitdiff
path: root/lisp
Commit message (Collapse)AuthorAgeFilesLines
* Fix pkg description file name when pkg name has numbers (Bug#77143)masterLin Jian2025-03-311-1/+3
| | | | | | | * lisp/subr.el (package--description-file): Match end of string and add `snapshot` among the possible version names. Copyright-paperwork-exempt: yes
* Add cl-with-accessorsEarl Hyatt2025-03-311-0/+44
| | | | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl-with-accessors): New macro. * doc/misc/cl.texi (Structures): Mention the new macro. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-lib-struct-with-accessors): New Test. * etc/NEWS (New macro 'cl-with-accessors'.): Mention the macro. This macro is useful when making repeated use of a structures accessor functions, such as reading from a slot and then writing to a slot. It is similar to 'with-slots' from EIEIO, but uses accessor functions instead of slot names.
* Improve logic of tab handling when quitting windows (bug#71386)Juri Linkov2025-03-311-7/+20
| | | | | | | | | | | | * lisp/window.el (window-deletable-p): Add tab logic that returns the symbol 'tab' for a set of predefined conditions. (window--delete): Call 'tab-bar-close-tab' when 'window-deletable-p' returns the symbol 'tab'. (quit-restore-window): Remove tab logic and merge it with frame logic. * test/lisp/tab-bar-tests.el (tab-bar-tests-close-other-tabs-default) (tab-bar-tests-close-other-tabs-with-arg): Clean up tabs afterwards. (tab-bar-tests-quit-restore-window): New test.
* (insert-kbd-macro): PolishStefan Monnier2025-03-311-35/+18
| | | | | * lisp/macros.el (insert-kbd-macro): Straighten control flow, use `pp` and `keymap-global-set`.
* lisp/macros.el (insert-kbd-macro): Fix anonymous case (bug#77317)Stefan Monnier2025-03-311-4/+3
|
* japan-util.el: Cosmetic changesStefan Monnier2025-03-311-56/+38
| | | | | * lisp/language/japan-util.el (<toplevel>): Use `pcase-dolist` and `when`. (japanese-string-conversion): Use `point-min`.
* Fix replace-region in japan-util.elEli Zaretskii2025-03-311-24/+20
| | | | | | | | | | * lisp/language/japan-util.el (japanese-replace-region): Allow STRING to be a character in addition to a string. Un-obsolete it. (japanese-katakana-region, japanese-hiragana-region) (japanese-hankaku-region, japanese-zenkaku-region): Call 'japanese-replace-region' instead of 'replace-region-contents'. (Bug#77397)
* ; Twice mention 'tab' value in buffer display doc-strings (Bug#71386)Martin Rudalics2025-03-311-3/+5
| | | | | | * lisp/window.el (display-buffer-record-window) (window--display-buffer): Mention value 'tab' for TYPE argument (Bug#71386).
* Merge from origin/emacs-30Michael Albinus2025-03-306-31/+47
|\ | | | | | | | | | | | | | | | | | | | | | | | | e6b4c0bcebf lisp/emacs-lisp/cl-macs.el (cl-labels): Fix docstring (bu... 7a976d1aaf7 Fix minor issues in documentation of `use-package' 99ff59bd66c PHP should be in the PATH, either locally or remotely. (b... 26873d5028e Avoid warning when loading 'go-ts-mode' a702f29a00b ; Fix package-version values a1fbc51dc71 ; * lisp/which-key.el (which-key-idle-delay): Fix package... # Conflicts: # lisp/progmodes/php-ts-mode.el # lisp/which-key.el
| * lisp/emacs-lisp/cl-macs.el (cl-labels): Fix docstring (bug#77348)Stefan Monnier2025-03-301-3/+4
| |
| * Fix minor issues in documentation of `use-package'Dominik Schrempf2025-03-291-4/+4
| | | | | | | | | | | | (Bug#77311) Copyright-paperwork-exempt: yes
| * PHP should be in the PATH, either locally or remotely. (bug#76242).Vincenzo Pupillo2025-03-291-16/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/php-ts-mode.el (php-ts-mode-php-default-executable): Renamed from 'php-ts-mode-php-executable'. (php-ts-mode--executable): New function that returns the absolute filename of the PHP executable, local or remote, based on 'default-directory'. (php-ts-mode--anchor-prev-sibling): Replaced 'when-let' with “when-let*.” (php-ts-mode--indent-defun): Replaced 'when-let' with 'when-let*'. (php-ts-mode-run-php-webserver): Use the new function (php-ts-mode-php-default-executable). (run-php): Use the new function (php-ts-mode-php-default-executable).
| * Avoid warning when loading 'go-ts-mode'Eli Zaretskii2025-03-291-1/+1
| | | | | | | | | | | | * lisp/progmodes/go-ts-mode.el (treesit-ready-p): Silence the warning if the gomod language library is not installed. (Bug#77213)
| * ; Fix package-version valuesEli Zaretskii2025-03-272-2/+2
| | | | | | | | | | * lisp/textmodes/rst.el (rst-compile-toolsets): * lisp/which-key.el (which-key-idle-delay): Fix package-version.
| * ; * lisp/which-key.el (which-key-idle-delay): Fix package-version.Eli Zaretskii2025-03-271-1/+1
| |
| * PEG: Fix bug#76555Stefan Monnier2025-03-251-1/+1
| | | | | | | | | | | | | | * doc/lispref/peg.texi (Parsing Expression Grammars): Fix `define-peg-ruleset` example. * lisp/progmodes/peg.el (define-peg-rule): Fix indent rule.
* | Tighten the criteria for a defun in typescript-ts-mode (bug#77369)Yuan Fu2025-03-291-1/+14
| | | | | | | | | | | | * lisp/progmodes/typescript-ts-mode.el: (typescript-ts-mode--defun-predicate): New function. (typescript-ts-base-mode): Use new predicate.
* | Don't obsolete the _command_ replace-buffer-contentsPo Lu2025-03-301-1/+0
| | | | | | | | | | | | * lisp/subr.el (replace-buffer-contents): Don't obsolete function. Its purpose is to serve as a command and such obsoletion was unnecessary to begin with.
* | time-stamp source commentary: point to manual sectionStephen Gildea2025-03-291-2/+3
| | | | | | | | | | | | | | * lisp/time-stamp.el: Add an Info link in the commentary, now that the manual has more to say. * doc/emacs/files.texi (Time Stamps for One File): Expand one consistent example.
* | Merge remote-tracking branch 'origin/scratch/replace-region-contents'Stefan Monnier2025-03-2915-141/+106
|\ \
| * | Org: Use new `replace-region-contents`Stefan Monnier2025-03-292-19/+20
| | | | | | | | | | | | | | | | | | * lisp/org/org-compat.el (org-replace-buffer-contents): Delete function. (org-replace-region-contents): New function. * lisp/org/org-src.el (org-edit-src-save, org-edit-src-exit): Use it.
| * | Use `replace-region-contents` to replace insert+deleteStefan Monnier2025-03-297-64/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/minibuffer.el (completion--replace): * lisp/emacs-lisp/cl-lib.el (cl--set-buffer-substring): * lisp/subr.el (replace-string-in-region): Use `replace-region-contents` instead of insert+delete. * lisp/help-fns.el (help-fns--signature): Use `replace-region-contents` instead of `cl--set-buffer-substring`. * lisp/language/japan-util.el (japanese-replace-region): Rewrite using `replace-region-contents` and mark obsolete. (japanese-katakana-region, japanese-hankaku-region): Use `replace-region-contents` instead. * lisp/progmodes/flymake-proc.el (flymake-proc--replace-region): Rewrite using `replace-region-contents` and mark obsolete. (flymake-proc--check-patch-master-file-buffer): Use `replace-region-contents` instead.
| * | Replace uses of `replace-buffer-contents`Stefan Monnier2025-03-295-29/+31
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/vc/vc.el (vc-diff-restore-buffer): * lisp/progmodes/python.el (python--do-isort): * lisp/progmodes/eglot.el (eglot--apply-text-edits): * lisp/files.el (revert-buffer-insert-file-contents-delicately): * lisp/json.el (json-pretty-print): Use `replace-region-contents`.
| * | (replace-region-contents): Improve and promote (bug#76313)Stefan Monnier2025-03-292-29/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Swap the role of `replace-region-contents` and `replace-buffer-contents`, so `replace-region-contents` is the main function, implemented in C, and `replace-buffer-contents` is a mere wrapper (marked as obsolete). Also remove the need to rely on narrowing and on describing the new text as a function. Finally, allow MAX-SECS==0 to require a cheap replacement, and add an INHERIT argument. * src/editfns.c: Include `coding.h`. (Freplace_region_contents): Rename from `Freplace_buffer_contents`. Change calling convention to that of `replace-region-contents`. Add more options for the SOURCE argument. Add INHERIT argument. Skip the costly algorithm if MAX-SECS is 0. * src/insdel.c (replace_range): Allow NEW to be a buffer. * lisp/subr.el (replace-buffer-contents): New implementation. * lisp/emacs-lisp/subr-x.el (replace-region-contents): Delete. * doc/lispref/text.texi (Replacing): Document new API for `replace-region-contents`. Remove documentation of `replace-buffer-contents`. * test/src/editfns-tests.el (replace-buffer-contents-1) (replace-buffer-contents-2, replace-buffer-contents-bug31837): Use `replace-region-contents`. (editfns--replace-region): Delete. (editfns-tests--replace-region): Use `replace-region-contents`. Adds tests for new types of SOURCE args.
* | | Enhance 'icomplete-vertical-mode' customization options.Rahul Martim Juliato2025-03-291-3/+120
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/icomplete.el (icomplete-vertical-in-buffer-adjust-list): Align in-buffer completion to the original cursor column. (icomplete-vertical-render-prefix-indicator): Add a prefix indicator to completion candidates when enabled. (icomplete-vertical-selected-prefix-indicator): Specify the prefix string for the selected candidate. (icomplete-vertical-unselected-prefix-indicator): Specify the prefix string for unselected candidates. (icomplete-vertical-selected-prefix-indicator-face): Control the appearance of the selected candidate prefix. (icomplete-vertical-unselected-prefix-indicator-face): Control the appearance of unselected candidate prefixes. (Bug#75794) * etc/NEWS: Document the new user options and faces.
* | Use 'hash-table-contains-p' in a few placesStefan Kangas2025-03-297-22/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replaces open coded versions of the common idiom (not (eq (gethash key table 'missing) 'missing)) with (hash-table-contains-p key table) in files where we can rely on features in Emacs 31. * lisp/emacs-lisp/map.el (map-contains-key): * lisp/external-completion.el (external-completion-table): * lisp/mh-e/mh-utils.el (mh-sub-folders) (mh-remove-from-sub-folders-cache): * lisp/net/ange-ftp.el (ange-ftp-hash-entry-exists-p): * lisp/password-cache.el (password-in-cache-p, password-cache-add): * lisp/pcmpl-x.el (pcmpl-x-tlmgr-action-options): * lisp/xdg.el (xdg-mime-apps): Use 'hash-table-contains-p'.
* | New function 'hash-table-contains-p'Stefan Kangas2025-03-292-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function tests whether a given key is present in a hash table. Emacs Lisp has long lacked a standard way to do this, leading users to write one of: (not (eq (gethash key table 'missing) 'missing)) or (gethash key table) This idiom is error-prone (when 'missing' or 'nil' are valid values), and it obscures intent. The new function avoids such pitfalls, improves readability, and makes the intent explicit: (hash-table-contains-p key table) The name 'hash-table-contains-p' exists in other Lisp dialects (e.g., SRFI-125), and follows the precedent of 'seq-contains-p'. Other alternatives considered include `hash-table-has-key-p` and `hash-table-key-exists-p`, but none were clearly better. This was previously discussed in 2018, and all comments were positive, but the proposed patch (implementing it in C) was never pushed: https://lists.gnu.org/r/emacs-devel/2018-02/msg00424.html * lisp/subr.el (hash-table-contains-p): New function. * lisp/emacs-lisp/shortdoc.el (hash-table): * doc/lispref/hash.texi (Other Hash): Document the new function. * test/lisp/subr-tests.el (hash-table-contains-p): New test.
* | Remove redundant constant nil argument to gethashStefan Kangas2025-03-295-13/+13
| | | | | | | | | | | | | | | | | | | | | | * lisp/cedet/ede/files.el (ede--directory-project-from-hash): * lisp/emacs-lisp/edebug.el (edebug-unwrap*): * lisp/emacs-lisp/testcover.el (testcover--copy-object1): * lisp/net/zeroconf.el (zeroconf-get-service, zeroconf-resolve-service) (zeroconf-register-service-browser, zeroconf-service-browser-handler) (zeroconf-register-service-resolver): * lisp/url/url-history.el (url-have-visited-url): Remove redundant constant nil argument to gethash.
* | ; * lisp/treesit-x.el : Call 'treesit-declare-unavailable-functions'.Eli Zaretskii2025-03-291-0/+2
| |
* | 'uniquify' user option setters and automatic buffer refresh (bug#77157)shipmints2025-03-291-11/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use 'customize', 'setopt', or 'uniquify--set-option' instead of 'setq' to benefit. * lisp/uniquify.el (uniquify--buffer-refresh): New function. (uniquify--set-option): New function. (uniquify-buffer-name-style): Add :initialize and :set forms. (uniquify-ignore-buffers-re): Add :initialize and :set forms. (uniquify-min-dir-content): Add :initialize and :set forms. (uniquify-separator): Add :initialize and :set forms. (uniquify-strip-common-suffix): Add :initialize and :set forms. (uniquify-dirname-transform): Add :initialize and :set forms.
* | Fix compiler warnings in mhtml-ts-mode.el (bug#77017).Vincenzo Pupillo2025-03-291-4/+16
| | | | | | | | | | | | | | | | * lisp/textmodes/mhtml-ts-mode.el: Added variable and function declarations to prevent compiler warnings. (mhtml-ts-mode): Require 'html-ts-mode' after checking that the html parser is available.
* | ; Fix last change (bug#77081)Eli Zaretskii2025-03-291-2/+4
| | | | | | | | | | | | * lisp/electric.el (electric-block-comment-mode): Fix whitespace. * etc/NEWS: Move entry to its proper place; fix punctuation.
* | New minor mode: `electric-block-comment-mode'Elías Gabriel Pérez2025-03-291-0/+30
| | | | | | | | | | | | | | | | | | | | | | This minor lets you automatically closing block comments after typing `block-comment-start'. Thus, typing "/*" in c-mode and its derivatives automatically inserts "*/". (Bug#77081) * etc/NEWS: Add minor-mode item. * lisp/electric.el (electric-block-comment-post-self-insert-function): New function. (electric-block-comment-mode): New minor mode definition.
* | ; * lisp/emacs-lisp/eldoc.el (eldoc-help-at-pt): Add :version tag (bug#77227).Eli Zaretskii2025-03-291-1/+2
| |
* | New Eldoc function `eldoc-show-help-at-pt'Daniel Mendler2025-03-292-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Show `help-at-pt' string via Eldoc as an alternative to the `help-at-pt-display-when-idle' timer. The help-at-pt timer competes with Eldoc for the echo area, such that the two mechanisms do not work well together. Therefore when using Eldoc, the setting `eldoc-help-at-pt' may be preferable. * lisp/emacs-lisp/eldoc.el (eldoc-help-at-pt): New customization option. (eldoc-show-help-at-pt): New Eldoc function. (eldoc-documentation-functions): Register the new function. * lisp/help-at-pt.el (help-at-pt-display-when-idle): Mention `eldoc-help-at-pt' in the docstring. * doc/emacs/help.texi: Document `eldoc-help-at-pt'. * etc/NEWS: Announce the change. (Bug#77169)
* | Improve message handling on server stopJens Schmidt2025-03-291-12/+23
| | | | | | | | | | | | | | | | | | * lisp/server.el (server-stop): Use a clearer signal message if there is an existing, external Emacs server. (server-start): Use a different warning if one attempts to only stop (and not restart) an external server. (server-unload-function): Silently stop the server if unloading its library. (Bug#76870)
* | Add a key binding to Semantic's complete.elAndrés Ramírez2025-03-291-0/+1
| | | | | | | | | | | | | | * lisp/cedet/semantic/complete.el (semantic-complete-key-map): Add a binding for 'switch-to-completions'. (Bug#77227) Copyright-paperwork-exempt: yes
* | ; Fix last changeEli Zaretskii2025-03-291-1/+2
| | | | | | | | | | * lisp/files.el (auto-mode-alist): * etc/NEWS: Fix last change. (Bug#77138)
* | Add major mode for highlighting npmrc files (Bug#77138)Konstantin Kharlamov2025-03-292-0/+16
| | | | | | | | | | | | | | | | | | | | * etc/NEWS: mention the new mode. * lisp/textmodes/conf-mode.el (conf-npmrc-mode-syntax-table): New variable. * lisp/textmodes/conf-mode.el (conf-npmrc-mode): New major mode derived from conf-mode for highlighting .npmrc files. * lisp/files.el (auto-mode-alist): Associate the new mode with .npmrc files.
* | ; * lisp/emacs-lisp/cl-generic.el: Add missing comma.Eshel Yaron2025-03-281-1/+1
| |
* | ; Time Stamps doc: expand the explanation of the examplesStephen Gildea2025-03-281-4/+6
| | | | | | | | | | | | * doc/emacs/files.texi (Time Stamps): Divide into three sections. * doc/emacs/emacs.texi: Add new nodes to menu. * lisp/time-stamp.el: Change reference to new node.
* | Remove a use of a PUA Unicode character (bug#77328)Gerd Möllmann2025-03-281-2/+2
| | | | | | | | | | * lisp/progmodes/eglot.el (eglot-code-action-indicator): Use U+1F4A1 ELECTRIC LIGHT BULB instead of a PUA character.
* | ; Fix documentation of a recently-installed changeEli Zaretskii2025-03-281-7/+7
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/find-func.el (find-function-regexp-alist): Doc fix. * doc/lispref/functions.texi (Finding Definitions): Fix wording and markup. * etc/NEWS: Move the new item where it belongs.
* | MH-E: set default-directory to HOME on entryStephen Gildea2025-03-272-3/+17
| | | | | | | | | | | | | | * lisp/mh-e/mh-e.el (mh-default-directory, mh-set-default-directory): New variable (defaults to "~/"), new function to use it. * lisp/mh-e/mh-folder.el (mh-rmail, mh-nmail): Call mh-set-default-directory on entry to MH-E (closes: bug#77263).
* | Help find-function find methods defined inside macrosDaniel Colascione2025-03-272-24/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/functions.texi (Finding Definitions): Document the expanded definition-finding extension mechanism. * etc/NEWS: Briefly describe the new feature. * lisp/emacs-lisp/cl-generic.el (cl--generic-find-defgeneric-regexp): Use defconst now that we no longer have purespace. (cl--generic-search-method-make-form-matcher): New function. * lisp/emacs-lisp/find-func.el (find-function-regexp-alist) (find-function-search-for-symbol): Parse out the new factory function. (find-function--search-by-expanding-macros): Try using it when searching for definitions by expanding macros.
* | Add jump action to margin indicators in flymakeJimmy Aguilar Mena2025-03-271-38/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (flymake--indicator-overlay-spec): Receive type instead of prepossessed indicator. (flymake--resize-margins): Update reference call to flymake--indicator-overlay-spec. (flymake-show-buffer-diagnostics-at-event-line): (flymake-diagnostics-at-mouse-event): (flymake-show-buffer-diagnostics-at-event-position): New functions. (flymake-after-show-buffer-diagnostics-hook): New custom with actions when jumping to an error line. (flymake-pulse-momentary-highlight-region): (flymake-show-buffer-diagnostics): Receive new optional argument with current diagnostic information. Add code to jump and execute the new hook after jumping (bug#75841).
* | Handle better changed default-directory in shell-commandMichael Albinus2025-03-271-0/+3
| | | | | | | | | | | | * lisp/simple.el (shell-command): Kill buffer-local values of `shell-file-name' and `shell-command-switch', there could be left connection-local values. (Bug#76888)
* | lisp/help-fns.el (help-fns--signature): Pretty print typeStefan Monnier2025-03-271-10/+17
| |
* | PEG: Fix bug#76555Stefan Monnier2025-03-271-1/+1
| | | | | | | | | | | | | | * doc/lispref/peg.texi (Parsing Expression Grammars): Fix `define-peg-ruleset` example. * lisp/progmodes/peg.el (define-peg-rule): Fix indent rule.
* | C++ Mode: Fix some indentation bugs. FIxes bug#19867Alan Mackenzie2025-03-277-95/+281
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Fix closing paren aligning with trailing comment on line with matching open paren. 2. Fix indentation of first identifier inside a comma separated list aligning with the type rather than the subsequent identifiers. 3. Fix lambda expressions inside a brace list aligning like a single statement. * lisp/progmodes/cc-align.el (c-lineup-arglist): Take into account any preceding comments when lining up the arguments in the arglist. (c-lineup-arglist-intro-after-paren): Handle comments properly, and don't line up the closing parenthesis with a trailing comment on the first line. (c-lineup-item-after-paren-at-boi): Also allow a paren to count as being at BOI when it is preceded only by open parens on that line. (c-lineup-runin-statements, c-lineup-ObjC-method-call): Hanle comments better. * lisp/progmodes/cc-engine.el (c-forward-comments) Introduce an optional limit parameter. Use this limit in calls from cc-align.el and cc-mode.el. (c-just-after-func-arglist-p): Handle the presence of a protection keyword such as "public". (c-at-bracelist-p): Renamed from c-inside-bracelist-p, after dropping the accept-in-paren parameter, having removed its functionality. (c-looking-at-statement-block-1): New function, based on the old c-looking-at-statement-block. Enhanced to handle C++ lambda expressions, and to return the symbol `maybe' when the contents of a brace delimited block fail to determine whether it is a statement block. (c-looking-at-statement-block): Enhanced to examine the context of a brace delimited block when the contents are ambiguous. (c-looking-at-c++-lambda-expression): Check the character after point is a < before calling c-forward-<>-arglist. (c-add-stmt-syntax): Make the context more accurate by calling c-looking-at-statement-block. (c-guess-basic-syntax, CASE 5D.5): Replace the syntactic symbol topmost-intro-cont with the new symbol class-field-cont, additionally determining the position of the enclosing brace as an extra anchor point. (c-guess-basic-syntax, CASE 5V): New case for an identifier following a type inside class braces. (c-guess-basic-syntax, CASE 9): Use c-looking-at-statement-block to detect a brace list more accurately. * lisp/progmodes/cc-fonts.el (c-get-fontification-context): Rename the call to c-inside-bracelist-p to c-at-bracelist-p. * lisp/progmodes/cc-langs.el (c-protection-kwds): Add an entry for java-mode. (c-stmt-block-only-keywords-regexp): Prevent this regexp also matching a character preceding the keyword. * /lisp/progmodes/cc-mode.el (c-before-change-include-<>) (c-after-change-include-<>): Use the new limit argument to c-forward-comments. * lisp/progmodes/cc-styles.el (c-style-alist, "gnu" and "java" styles): Change the offset for arglist-close to c-lineup-arglist-close-under-paren. * lisp/progmodes/cc-vars.el (c-offsets-alist): Introduce the new syntactic symbol class-field-cont, giving it default offset +. * doc/misc/cc-mode.texi (Syntactic Symbols, Class Symbols): Document the new syntactic symbol class-field-cont.