mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-14 16:07:52 +00:00
* feat(dap): debug C/C++ with GDB's native DAP interpreter Fixes #2338 Native debugging was LLDB-only (lldb-dap, CodeLLDB), so toolchains and embedded setups that ship GDB (pretty printers, .gdbinit, gdbserver targets) had no debugger in the IDE. Adds a built-in "gdb" adapter: `gdb -i dap` over stdio, with an install hint. GDB's DAP interpreter shipped in GDB 14, so a launch with an older GDB is refused with the found and the required version in the message (prepare_gdb, a probe like debugpy's). C/C++ run configurations pick the debugger in the Debug adapter control - GDB is an explicit choice there, the default stays lldb-dap. The c-app fixture (C and C++ entry points) is debugged with GDB in the language smoke; real_adapters gains a gdb case that skips itself without a GDB 14+ on PATH. * fix(dap): start GDB 15 sessions with the launch after the configuration GDB 15 starts the program inside its launch request, so the launch-first order every other adapter uses races the breakpoint upload: the run can be past the breakpoints before setBreakpoints lands, and configurationDone is refused with notStopped while the program is off. GDB 14 runs the program at configurationDone and 16+ defers the whole launch there, so both are fine with launch-first; 15.x is the one version that needs the launch to go out after configurationDone. The order now follows a gdb --version probe (only for the gdb adapter); a fake adapter speaking GDB 15's wire behavior pins the ordering and the notStopped refusal. * fix(dap): harden GDB startup and expression evaluation --------- Co-authored-by: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com>
29 lines
1.0 KiB
TypeScript
29 lines
1.0 KiB
TypeScript
import type { KnipConfig } from "knip";
|
|
|
|
const config: KnipConfig = {
|
|
// Entries come from the Vite (index.html), Vitest, Playwright and package.json script plugins;
|
|
// standalone browser fixtures are loaded by their own HTML pages.
|
|
entry: ["e2e/*.fixture.{ts,tsx}"],
|
|
project: [
|
|
"src/**/*.{ts,tsx,css}",
|
|
"!src/editor/core/cm/angular/parser.terms.ts",
|
|
"!src/editor/core/cm/jsp/parser.terms.ts",
|
|
"!src/editor/core/cm/astro/parser.terms.ts",
|
|
"scripts/**/*.ts",
|
|
"perf/**/*.ts",
|
|
"e2e/**/*.ts",
|
|
"smoke/**/*.ts",
|
|
],
|
|
// Plugins' web pages are projects of their own (own package.json, checked by plugins/build.sh and CI).
|
|
ignore: ["plugins/**/web-src/**"],
|
|
ignoreExportsUsedInFile: true,
|
|
// System tools used by formatting and language smoke fixtures.
|
|
ignoreBinaries: ["rustfmt", "composer", "make"],
|
|
compilers: {
|
|
// Fonts come in through `@import` in global.css.
|
|
css: (text: string) => [...text.matchAll(/(?<=@)import[^;]+/g)].join("\n"),
|
|
},
|
|
};
|
|
|
|
export default config;
|