[qt/qt-creator/qt-creator]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]> Tue, 4 Aug 2026 12:15:32 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/qt-creator/qt-creator Pushed by mirror-service into branch 'master'. Changed from 67f245f879f9ea706a36d5ea257d95a73143d9cb to 92007fa1180cd5a47994915dca33ec0b253e2721 Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit 4dd2da8fc0f3fdf357b9d0235fb10ad393b26d50 by hjk on 04/08/2026 at 06:27.. Debugger: Add a start_debug MCP tool Pair a start_debug tool with the existing stop_debug tool in the debugger plugin, so an MCP client can start a debug session for the startup project (DEBUG_RUN_MODE) and drive debugging end to end. Drop the overlapping debug_project tool from the ProjectExplorer MCP support; debug-session control now lives solely in the debugger plugin. Building is left to the separate build tool. Assisted-by: Claude Code Change-Id: If29aa336368090698fea8d65879a3547a2ca74fb Reviewed-by: Marcus Tillmanns <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/4dd2da8fc0f3fdf357b9d0235fb10ad393b26d50 Git commit cecbc952de90ba5e621912430857d207a09ac9d4 by hjk on 04/08/2026 at 06:27.. Lua: Add a Mode module Let Lua plugins contribute a mode (a left-side tab with its own full-window widget): Mode.create{ id, displayName, widget, priority?, icon? } creates and shows it, and removes it again when the plugin is unloaded. For this ModeManager::addMode() has to work after startup too. It was startup-only (the initial batch is laid out at extensionsInitialized); now a mode added later builds its tab as well. IMode's constructor calls addMode() before the caller sets id/widget/..., so the tab creation is deferred to the next event-loop turn, when the mode is fully configured. Assisted-by: Claude Code Change-Id: Ib2be5afab14aad9e499cc2abc0fcfc0386fc3498 Reviewed-by: Marcus Tillmanns <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/cecbc952de90ba5e621912430857d207a09ac9d4 Git commit 0bdc40bce9779f05dcb7e5fba67383341e6fcf08 by hjk on 04/08/2026 at 06:27.. ProjectExplorer: Report run configuration details in the MCP tool get_run_configurations returned only the display name and the active flag. Also report the run configuration's type id and its resolved runnable: executable, arguments, working directory, and the full run environment. A client can then see what a run will actually execute and in which environment (for example whether Qt's bin is on PATH) without extra round-trips. Assisted-by: Claude Code Change-Id: I34571a0c9059cbd2821418c8e64811b1226f06c1 Reviewed-by: Marcus Tillmanns <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/0bdc40bce9779f05dcb7e5fba67383341e6fcf08 Git commit 3259f73e1a839ca47467aa1583b2e0c335b4874a by hjk on 04/08/2026 at 06:28.. ProjectExplorer: Add an MCP tool to create a build configuration The MCP server could list, switch and query build configurations, but not create one. A CMake project on a freshly set up kit typically has only a Debug configuration, so there was no way to build or run in Release over MCP. Add add_build_config: it creates a build configuration for the active project's kit from the requested build type (matched against the kit's available build types), names it, and makes it active unless set_active is false. On a type mismatch the error lists the available types. Assisted-by: Claude Code Change-Id: Ic2c81adc6a96e3f023edec0a2f423213e54135ab Reviewed-by: Marcus Tillmanns <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/3259f73e1a839ca47467aa1583b2e0c335b4874a Git commit 06d41fb49cb2ea863e71d53006c022bb080c009e by hjk on 04/08/2026 at 06:28.. ProjectExplorer: Report a kit's devices in the MCP tools Kit entries did not say which device a kit builds for or runs on, so there was no way to tell which kits belong to a device. Assisted-by: Claude Code Change-Id: I19ee58ac2e5802e962b135f257f17253afaa9acd Reviewed-by: Marcus Tillmanns <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/06d41fb49cb2ea863e71d53006c022bb080c009e Git commit ab80f39b810f202f495c08d3cff10f45d0a74e82 by hjk on 04/08/2026 at 06:28.. ProjectExplorer: Add an MCP tool to remove kits detect_device_tools creates a kit per toolchain it finds on a device, and nothing could remove one again, so kits accumulated with no way to clean up after a device. remove_kits takes kit ids or display names. It refuses SDK-provided kits, as the Kits preferences page does, and refuses a display name that several kits share, since the removal cannot be undone. Assisted-by: Claude Code Change-Id: Id9fc2e18476bee6e6f6dd606ea5f4afbd5a71acd Reviewed-by: Marcus Tillmanns <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/ab80f39b810f202f495c08d3cff10f45d0a74e82 Git commit 345e1732aa19b0d3ab992970722dc1a2fd65890d by hjk on 04/08/2026 at 06:28.. ProjectExplorer: Respect the Devices page rules in remove_device That page only offers to remove an auto-detected device while it is disconnected, which is what keeps the desktop device from being removed. The MCP tool had no such check. Assisted-by: Claude Code Change-Id: I7be7361f0b7014c408b4d92f2651bdc30ff7ea75 Reviewed-by: Marcus Tillmanns <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/345e1732aa19b0d3ab992970722dc1a2fd65890d Git commit 190a74ee8ff6f1f30614062d39e3e3d334a99caa by hjk on 04/08/2026 at 06:29.. CMakeProjectManager: Factor out the MCP CMake tool plumbing Resolving the project to act on and reporting the verdict of a CMake run are about to be needed by a second tool. No behavior change. Assisted-by: Claude Code Change-Id: I7958f78a6ed492e925a9dd92c626feb5ee249963 Reviewed-by: Marcus Tillmanns <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/190a74ee8ff6f1f30614062d39e3e3d334a99caa Git commit 57a8b1beac3a15142c0d3e20bd3b96b04158ae8d by hjk on 04/08/2026 at 06:30.. CMakeProjectManager: Add an MCP tool to reset the configuration A build directory whose first configure failed keeps a CMakeCache without the initial arguments, and re-running CMake reuses that cache, so the project cannot be brought back over MCP - the recovery, Build > Clear CMake Configuration, had no tool. reset_cmake_configuration clears the active build configuration and, unless reconfigure is false, configures it again from scratch. Like the action, it refuses to run while the project is building. Assisted-by: Claude Code Change-Id: Icc445ff03674b316a71f1cc8cdf609c63bbf001d Reviewed-by: Marcus Tillmanns <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/57a8b1beac3a15142c0d3e20bd3b96b04158ae8d Git commit 9e6dac5ff80fa7da2369b0463609069631fa05dd by hjk on 04/08/2026 at 06:30.. CMakeProjectManager: Don't report a failed CMake run as succeeded When CMake fails while the build directory still holds the file-api reply of an earlier successful run, Creator parses that stale data and reports a successful parse, so the MCP reconfigure tool answered succeeded: true next to the errors it had just produced - and its output schema tells callers to trust that field over the issues array. Take the build system's error into account, which is set just before the parse finishes, and name it in the summary. Assisted-by: Claude Code Change-Id: I8b37aec406f6cf51ef6b3d3fbb2ec9a63c0acb83 Reviewed-by: Marcus Tillmanns <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/9e6dac5ff80fa7da2369b0463609069631fa05dd Git commit 6c236ffb497541b5e8a2fc0254c6208f201610e4 by hjk on 04/08/2026 at 06:30.. Process stub: Suspend the inferior on FreeBSD for debugging In "Run in Terminal" debug mode the stub must suspend the inferior so the debugger can attach to it. That was implemented for Windows (CREATE_SUSPENDED), macOS (raise(SIGSTOP)) and Linux (PTRACE_TRACEME), but there was no path for FreeBSD, so the inferior ran unsuspended and gdb's attach raced it: the launch hung in "Launching Debugger" and timed out (non-terminal debugging was unaffected). FreeBSD can use the same approach as macOS: the child raises SIGSTOP, and since QProcess does not report the pid when the child stops before execve, the pid is passed via shared memory and a poll timer. Route FreeBSD through that code with a shared STUB_SIGSTOP_SUSPEND guard. Assisted-by: Claude Code Fixes: QTCREATORBUG-14894 Change-Id: I374d7db69fc965e03a05877825e0e8585536ba85 Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/6c236ffb497541b5e8a2fc0254c6208f201610e4 Git commit b542f77d9cd221e8d8beef04958182862a63ee49 by hjk on 04/08/2026 at 06:30.. Debugger: Do not steal terminal focus on transient startup stop When debugging a console application "in terminal", the inferior is launched suspended by the process stub, so the debugger sees an initial spontaneous stop right after start-up. notifyInferiorSpontaneousStop() then raised Qt Creator to the foreground (RaiseOnInterrupt), stealing focus from the just-opened terminal before immediately continuing the inferior. Defer the raise by one event loop cycle and skip it if the engine has meanwhile left InferiorStopOk. A genuine stop (breakpoint, signal, user interrupt) stays stopped and still raises; a transient start-up stop that is immediately continued no longer does. Fixes: QTCREATORBUG-15818 Assisted-by: Claude Code Change-Id: I4853c0d1e0b3caf90189a246a70b7c56c49fc3b7 Reviewed-by: Marcus Tillmanns <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/b542f77d9cd221e8d8beef04958182862a63ee49 Git commit 8b1c939f7cad76e8234efe2b80355754ab405d70 by hjk on 04/08/2026 at 06:30.. Valgrind: Note filtered issues in the Memcheck status message The "N issues were found" message counted all issues from the source model, while the result view shows only the ones passing the current filter (external-issue and error-kind filters). With the default "Show Project Costs Only" filter this could report issues while the table stayed empty, with no hint why. Append the number of issues hidden by the filter, mirroring the Clang static analyzer's "(M suppressed)" message. Fixes: QTCREATORBUG-16390 Assisted-by: Claude Code Change-Id: Ib861875358c8f9efca0e19a089b7baddc523ede9 Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/8b1c939f7cad76e8234efe2b80355754ab405d70 Git commit de858cafbb0d83e2527ab07a5b4ea2a1349a76f9 by hjk on 04/08/2026 at 06:30.. FakeVim: Fix :map dropping options after <silent> The option loop left no way back after eating "<silent>", so any option behind it stayed in the argument string. With the usual order in "nnoremap <silent> <expr> lhs rhs" the "<expr>" was never recognized and became the left-hand side of the mapping. Assisted-by: Claude Code Task-number: QTCREATORBUG-34817 Change-Id: I33c7aa5d83193a981c0775e7b47276f91748dac8 Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/de858cafbb0d83e2527ab07a5b4ea2a1349a76f9 Git commit b312cb0334942002a3d0e4dbee309a3d3bce0cff by hjk on 04/08/2026 at 06:31.. FakeVim: Make x-mode mappings apply in visual mode ":xmap" and friends registered under mode code 'x', which currentModeCode() never returns, so the mappings were never found. Vim's "x" is Visual mode and "v" is Visual plus Select mode; there is no Select mode here, so both have to use the code a visual selection reports. Assisted-by: Claude Code Task-number: QTCREATORBUG-34817 Change-Id: I1d11d94033dcc89961be52a6b26c6048658ec61a Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/b312cb0334942002a3d0e4dbee309a3d3bce0cff Git commit e71cea4f26181ebe6f7515c223938e4e3651d860 by hjk on 04/08/2026 at 06:31.. FakeVim: Support \zs and \ze in patterns "\zs" and "\ze" move the start and end of what a pattern reports as the match; they translate to "\K" and to a lookahead around the rest. A trailing "[" opens no character class, so pass it on escaped: Vim matches it literally, while the bare bracket made the translated pattern invalid and it then matched nothing. Assisted-by: Claude Code Task-number: QTCREATORBUG-34817 Change-Id: I7a7fe1d501024d47ce9f2a1a293b7dab7a045832 Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/e71cea4f26181ebe6f7515c223938e4e3651d860 Git commit fc98f879d8149fcc2d23d3bc9771bdce461e3309 by hjk on 04/08/2026 at 06:31.. FakeVim: Accept every documented ex-command abbreviation Vim takes any prefix of a command name down to a documented minimum, so ":source" is also ":so", ":sou", ":sour" and ":sourc". The checks here compared against the shortest and the longest spelling only and rejected everything between. ExCommand::matches() already expresses the rule. Assisted-by: Claude Code Task-number: QTCREATORBUG-34817 Change-Id: I7340a9981dd994aff6727a1cbf888a2f6af104ce Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/fc98f879d8149fcc2d23d3bc9771bdce461e3309 Git commit 70c02e634e18bce236a7dae56d1ccd2779b22a57 by hjk on 04/08/2026 at 06:31.. FakeVim: Grow the runtime surface Vim9 plugins expect Enough for Vim 9.1's bundled comment.vim to load and run unchanged: "gc{motion}", "gcc", "gC" and the visual-mode "gc" toggle comments, and toggling twice restores the text. Vim9 parsing: ":def" nests, since a nested one is defined when the outer function runs and the body has to be collected up to the matching end. "...name: type" binds the extra arguments under that name. A statement may be a bare call to a lowercase function such as add(), so only the statement keywords are excluded now. What follows a command modifier is a statement too and is rewritten the same way. New commands and builtins: the mark- and jump-preserving modifiers (":noautocmd", ":keepjumps" and friends), "import autoload" resolved against the autoload directory next to the importing script, a guard against a script sourcing itself (which recursed until the stack was gone), expand() with <stack>/<sfile>/<cword>, escape(), indent(), setline() taking a list, a bare scope name as a dictionary so get(g:, ...) works, and the 'commentstring' and 'modifiable' options. expand('<stack>') has to report a name that can be called again: plugins pull one out of it to install their own 'operatorfunc'. Assisted-by: Claude Code Task-number: QTCREATORBUG-34817 Change-Id: I0a355c58573043b12c23e1d6054f83d8403ad71a Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/70c02e634e18bce236a7dae56d1ccd2779b22a57 Git commit 76f595be207ad8e82daea0810db25b13e505bb1e by hjk on 04/08/2026 at 06:31.. FakeVim: Keep Vimscript session state across handlers Functions, user commands, autocommands, module exports and the g:/s:/v: variables belong to the session, not to a buffer, so they move to the shared state. The vimrc is read into a throwaway handler, which meant a plugin's functions died with it while the mappings it had installed lived on and then could not find them. b:/w:/t: stay with the handler. Assisted-by: Claude Code Task-number: QTCREATORBUG-34817 Change-Id: I7f99b0e6d172f9a953f5f57808c5e071df097e98 Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/76f595be207ad8e82daea0810db25b13e505bb1e Git commit c42134ea8b40f32eb072002adc62722605fa7db8 by hjk on 04/08/2026 at 06:31.. FakeVim: Derive 'commentstring' from the file type The option held one global value, so a script commenting a .pro or .py file inserted "//". It is now buffer-local as in Vim and resolved from the file type set with ":setf", falling back to the file name extension and then to the configured default. An explicit ":set commentstring=" still wins and stays with its buffer. "gc" reads the same value instead of keeping a second table of comment leaders, and honors a trailing part, so it comments an HTML file with "<!-- ... -->" rather than "//". Assisted-by: Claude Code Task-number: QTCREATORBUG-34817 Change-Id: I4ee14f59879f7bfdfff26aa3f573bdc07ab366f2 Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/c42134ea8b40f32eb072002adc62722605fa7db8 Git commit e0713bc8417a4efff57c511a7e3dcfd80a0b71f0 by hjk on 04/08/2026 at 06:31.. FakeVim: Detect the file type of an opened buffer The buffer read autocommands were accepted by ":autocmd" but never fired, so the usual "autocmd BufRead,BufNewFile *.py setf python" never ran and 'filetype' stayed empty unless someone typed ":setf". Fire BufReadPost or BufNewFile when an editor opens, and BufEnter/BufLeave when one becomes or stops being current. "BufRead" and "BufReadPost" name the same event and now match each other. The type itself comes from Qt Creator's MIME database rather than from a copy of Vim's filetype.vim: it already matches file names and file contents to pick an editor and a highlighter, which also settles cases an extension cannot, such as CMakeLists.txt. Only a rule that no read autocommand claimed is filled in, so a vimrc keeps the last word. 'filetype' is readable as &ft now, which scripts test to decide what a buffer holds, and 'commentstring' follows the detected type. Assisted-by: Claude Code Task-number: QTCREATORBUG-34817 Change-Id: I8f0ab843c8a7a77fc27023730b66b790574a4dd7 Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/e0713bc8417a4efff57c511a7e3dcfd80a0b71f0 Git commit 91197506bc1b371e049caed4298e9165f585e8ce by hjk on 04/08/2026 at 06:31.. FakeVim: Follow Vim's did_filetype() rule in :setf ":setf" claimed a buffer unconditionally, so with two detection rules matching it the last one won instead of the first. It now sets the type only when did_filetype() is false, which Vim defines as "the FileType event has fired for this buffer while autocommands are running": the first rule to recognize a buffer wins, reading it again starts over, and an interactive ":setf" still applies because no autocommand is running. "setf FALLBACK {name}" marks a guess that a later ":setf" may replace, which is how the type derived from the MIME database is installed. did_filetype() is available to scripts, since detection scripts test it before doing work. The FileType event may now fire from within another autocommand, so a ":setf" in a buffer read rule reaches the FileType rules as it does in Vim. Deeper chains are still cut off. ":noautocmd" no longer shares its flag with the nesting guard, which had made it mean two things at once. Assisted-by: Claude Code Task-number: QTCREATORBUG-34817 Change-Id: If2446706b7238828b5e7fbc6e491039adae45d41 Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/91197506bc1b371e049caed4298e9165f585e8ce Git commit 91229d1f6aa6f47eb5d333c9ef910c8542603093 by hjk on 04/08/2026 at 06:31.. FakeVim: Obey modelines A "vim:" line in the first or last lines of a file was ignored, so a file could not state how it wants to be edited. Both documented forms are read, the one whose options run to the end of the line and the "set ... :" one that fits inside a comment, along with the version requirements ("vim>702:") and the rule that the marker has to start a line or follow a blank so that a word ending in "vim:" is not one. 'modeline' and 'modelines' control it, as in Vim. Modelines are applied after the file type has been established, so a file saying "ft=python" wins over what was detected for it. Assisted-by: Claude Code Task-number: QTCREATORBUG-34817 Change-Id: Iceb6b73756691eb2df4006e3badb85e6534405e1 Reviewed-by: Cristian Adam <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/91229d1f6aa6f47eb5d333c9ef910c8542603093 Git commit 92007fa1180cd5a47994915dca33ec0b253e2721 by hjk on 04/08/2026 at 11:51.. CppEditor: Open include hierarchy for the #include under the cursor Open Include Hierarchy always inspected the current file. When the cursor is on a #include line, inspect the included file instead, so it can be used to find which files include a given header (directly or indirectly) via the "Included by" branch. Fixes: QTCREATORBUG-2311 Assisted-by: Claude Code Change-Id: Ib6d1c6477b2941cd7deda3283d894419d0ad74f3 Reviewed-by: Christian Kandeler <[email protected]> https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/92007fa1180cd5a47994915dca33ec0b253e2721