Repository navigation
0.2.0: mcpp-vscode 1.1.0 is mcpp-vscode 0.9.0 over the backend; one page library for VS Code and CLion; CLion's API on 261-263 - #3
Draft
Sunrisepeak wants to merge 119 commits into
Draft
Sunrisepeak wants to merge 119 commits into
Sunrisepeak wants to merge 119 commits into
Conversation
- detect ast_file_version_too_new/old as pcm-mismatch - new src/llvmTools.ts: xlings detection, version extraction, path derivation - autoConfigureModulesWizard: 8-step guided setup (check toolchain → install matching llvm-tools via xlings → configure clangd → rebuild) - status bar '模块不可用' now shows context-aware QuickPick with auto-fix - enhanced pcm-mismatch error message with actionable guidance - McppOperationRegistry.hasActive() and McppCliController.isBusy() - executeXlingsInstallTask() helper for xlings vscode.Task execution version 0.2.2
- wizard 检测到 GCC/MSVC: error 消息说明原因 + 提供安装/选择工具链入口 - 状态栏点击 GCC 项目: QuickPick 提供一键配置/安装/选择默认工具链 - 模块检查 interactive 模式: warning 消息带一键配置按钮形成闭环
…check - createSerialExecutor: use AsyncLocalStorage-scoped flag instead of global depth counter so only same-async-context reentrant calls bypass the queue - findXlingsExecutable: check PATH entries with existsSync before returning 'xlings', so the wizard's 'install xlings' guidance branch is reachable - add 2 tests: concurrent caller queues correctly, reentrant call bypasses
- changelog: 0.2.2 entry covering one-click auto-configure, PCM mismatch detection, non-LLVM toolchain UX, serial executor fix, xlings detection - README: update version to 0.2.2, add mcpp.autoConfigureModules to command table, add auto-configure to troubleshooting and LLVM integration sections, update roadmap and release tag example
feat: add member-scoped mcpp run/test editor actions
feat: add mcpp.newProject command to scaffold and open projects
…host webui/src answers what the pages ask of VS Code (the vscode module) and of Node (fs, path, os, crypto, url, util) through a bridge to the IDE that hosts the page: requests through mcppHostSend/mcppHostReceive, synchronous file reads through a prompt the host answers. Views are tabs in the manifest's order and names, webviews are iframes with the page's own CSP, nonce and the IDE's --vscode-* theme. tools/bundle-webui.mjs bundles it with esbuild beside the pages' media, the codicons and mermaid, and lists the files in files.txt. The previous panels (webui/js) are removed: the workbench shows the pages VS Code shows. webui/tests/workbench.test.mjs runs the workbench in Chromium over a real mcpp-ide serve and the mock mcpp: the tabs, the project tree, the cache page, the libraries over an index and a package's page, a settings write, and the graph page, with no page error and no CSP refusal. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…nch in JCEF Workbench.kt hosts webui's bundle in a JBCefBrowser and answers its bridge in the IDE's terms: the backend's methods, the settings store, dialogs, popups, progress, editors, the clipboard, the browser, files, mcpp's commands; the theme is given as the --vscode-* variables. The tool window holds one workbench; Settings | Tools | mcpp opens its settings page alone. Selecting a target and packing are the IDE's popups, packing as a job over the backend's pack/formats. Gradle bundles the workbench with the extension's tools/bundle-webui.mjs; CI installs the extension's dependencies, runs the workbench test in Chromium, and checks that the plugin's jar carries every file the workbench lists. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…t once; the install action stays on the message Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…; the changelogs, the READMEs and the architecture of the pages Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… (fileURLToPath, not a URL's pathname) Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…n filter, not the deprecated constructor Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…ext; CI checks the icons Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…t openkal (tar and okb), runs_on, the .exe launcher Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…lease/2026.10.30.1 until it is released Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…version>-openkal-bundle-all) Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… lifecycle, its log and the IDE report (mcpp design 2026-10-30 part 2 §3, §4) Each project is asked in its own directory (mcpp self env through the shim or mcpp.path), with XLINGS_PROJECT_DIR removed from every run of mcpp; features by what mcpp states or by a table frozen at 2026.10.30.1, never by version; pinned-missing with the shim's words and its install command; untrusted workspaces not asked; asked again after a job's envelope names another version, on focus and on a manifest change; at most two at once. project/mcpp, project/refresh, capabilities/explain, report/collect, project/mcppChanged. VS Code and CLion restart an ended backend after 1, 4 and 16 s and stop after a fourth end in three minutes (degraded mode, restart and report actions); Export IDE Report in every editor; mcpp.backend.logLevel; VS Code's status item names the project's mcpp. Tests: test_probe over the mock playing a shim per directory; the Neovim smoke writes the report. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…s, and its actions under each editor's id (mcpp design 2026-10-30 part 2 §5) The backend's languageService/status runs mcppls status (0.0.20 and later) or reads the table frozen at 0.0.18 and 0.0.19; a different answer is sent once (languageService/changed). The command table's forwards name mcppls's action ids, resolved per editor by commands/list: CLion runs the mcppls plugin's action, Neovim mcppls-nvim's command, VS Code the command and arguments mcppls names, with mcpp-ide's confirmation. VS Code no longer reads the mcppls extension's API object; a missing kit is a row that installs it; auto refresh after a build forwards nothing. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… (mcpp design 2026-10-30 part 2 §6, §7) source/entries says what a C++ file is to its project, from the text: a program's main, a test's, or neither. VS Code: Run and Debug above main (mcpp.codeLens.enable), Build and Debug in the editor title, Run, Debug, Build and Test in the editor's context menu, placed by the command table. CLion: the gutter's ▶ from the backend's answer on the PSI element, the hammer runs mcpp build, a status bar item, keymaps with VS Code's chords. spec/test-frameworks.json: GoogleTest, Catch2, doctest. test/cases reads a program's cases from its source and, after a build, from its listing; test/runCases runs some with the framework's filter and reads its report (test/caseResult). The Testing view and CLion's test tree show cases. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… case at its macro Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…inked /var, Windows' drive letters); capabilities/explain names tests.debug (test-launch) Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…ks for their actions (0.0.20's status, the frozen table for 0.0.18 and 0.0.19); a build forwards a reload only under refreshAfterBuild = reload; CLion's startup no longer names a removed method Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…kend (mcpp design 2026-10-30 part 2 §8) The tolerant TOML scanner, completion, hover, the three jumps and the seven manifest rules, and build.mcpp's SPEC-007 checks, completion, snippets and hover, ported from mcpp-vscode 0.9's TypeScript. tests/rules/golden holds that implementation's answers over tests/rules/corpus at every position of every line; test_rules compares the backend's with them. One mcpp.toml snapshot and one build-program snapshot (spec/), the latter refreshed from 2026.10.29.1. The reference gained what the backend's reader already did: a table read through the schema (workspace mirrors, a platform's tables under a selector, named entries), a selector-only table offered with its selector, the schema's own arrays of tables allowed, and an unclosed multi-line string at the end no longer stops the parse. CLion 2026.1's abstract ProjectTaskRunner.canRun(task). Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…ditor reaches the rules layer of mcpp.toml and build.mcpp through it (mcpp design 2026-10-30 part 2 §8) initialize in LSP's shape, mcpp-ide's methods and notifications under mcpp-ide/, textDocument/* for the two files (full synchronisation, UTF-16 columns, answered in order). VS Code connects with its language client, bundled into dist/vendor; CLion over the session's own connection through its extension points (the platform's LSP client starts a server of its own); Neovim with vim.lsp. mcpp-vscode's TypeScript rules layer, its snapshots and their generators are removed; the scanner's goldens cover its parser tests. The declared degraded mode where okrun does not run, with its Extension Host run in CI. test-launch is mcpp 2026.10.31.2's. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…t 2 §9) The tool window's Project, Libraries and Cache tabs are native trees and lists over the backend's view models; a graph is the one page in JCEF (webui/graph.html, mermaid over graph/packages and graph/modules, tested in Chromium over a real backend); Settings | Tools | mcpp is a form generated from settings/registry with Apply, Reset and a search. The workbench, its vscode shim and its bridge are removed. The views' models and the settings form are tested headless. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…rsions.env) Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… single quotes Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…EDT), not a light project on temp://, where CLion's bundled STM32 startup activity fails Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…dEnabledPlugin, not PluginManagerCore's internal getPlugin (verifier: INTERNAL_API_USAGES on 2026.2); the index box's renderer by its customizer Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…so, the public question; findEnabledPlugin is internal on 2026.2 too Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…kal 0.18, whose okrun maps the image it runs), mcpp >= 2026.10.31.2; CI's macOS runs on macos-15 -- GitHub retires macos-14 on 2026-11-02 Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
… ran once the image is loaded (openkal-image 0.1.6) Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…s them on ARMv8's SHA-256 instructions (openkal-image 0.1.7) Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
mcpp design 2026-10-29 §10 and the mcpp-ide rows of §13.1. Versions: backend 0.2.0, mcpp-vscode 1.1.0, mcpp-clion 0.2.0, mcpp-nvim 0.2.0.
mcpp-vscode 1.1.0 = mcpp-vscode 0.9.0 over the backend
mide-plugins/vscode); every view, page, command, menu, keybinding, setting and string is 0.9.0's.spec/states 0.9.0's contributions;mcpp-ide-dev gen vscodewrites package.json, its strings and the settings registry in place; CI regenerates and expects no drift.mcpp/exec, mcppls throughlanguageService/exec; no other process is started for either.mcpplaunch type), the Testing tree, Select the Build Target (target-set rows with mcpp ≥ 2026.10.30.1), Pack, build on save, cancellable jobs.Parity gates against 0.9.0
test/parity/manifest.test.ts).test/parity/pages.test.ts, 8 snapshots).protocol/fixtures; the CLion workbench in Chromium over a realmcpp-ide serve(webui/tests/workbench.test.mjs).One page library for VS Code and CLion
webui/is a workbench running mcpp-vscode's page modules unchanged in a browser host.vscodeand Node's built-ins are answered over a bridge, views are tabs, webviews are iframes with the IDE's--vscode-*theme. The oldwebui/jspanels are removed.Workbench.kt).Backend
mcpp/exec,languageService/exec,project/files.targetsrows for target sets, gated by mcpp ≥ 2026.10.30.1.mcpp-clion on 2026.1–2026.3
TrustedProjects.isProjectTrusted,XDebuggerManager.newSessionBuilder,createDriverConfiguration(project, CPPEnvironment(toolchain)).Waiting on mcpp 2026.10.30.1
The §13.1 CI rows are prepared and land after mcpp 2026.10.30.1 is released:
mcpp pack --target openkal --systems all --pkg-format tar,okb;runs_on.self;.exelauncher;MCPP_VERSION=2026.10.30.1.