https://github.com/DrSergei created 
https://github.com/llvm/llvm-project/pull/173862

This patch was generated by following commands:
1. `npm install --save-dev prettier-plugin-organize-imports`
2. `npm run format`
3. `npm audit fix`

It partially fixes [issue](https://github.com/llvm/llvm-project/issues/151598) 
and improves quality of  ts code (formatting and unused imports).

>From 234f5b4260a8203647be333da2ffdbb498ca60b2 Mon Sep 17 00:00:00 2001
From: Druzhkov Sergei <[email protected]>
Date: Sun, 28 Dec 2025 21:29:47 +0300
Subject: [PATCH] [NFC][lldb-dap] Format typescript files

---
 lldb/tools/lldb-dap/.prettierrc.json          |   2 +-
 lldb/tools/lldb-dap/package-lock.json         | 145 +++++++++++-------
 lldb/tools/lldb-dap/package.json              |   1 +
 .../lldb-dap/src-ts/debug-adapter-factory.ts  |  11 +-
 .../src-ts/debug-configuration-provider.ts    |  12 +-
 .../lldb-dap/src-ts/debug-session-tracker.ts  |  16 +-
 lldb/tools/lldb-dap/src-ts/extension.ts       |  25 +--
 lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts |  12 +-
 lldb/tools/lldb-dap/src-ts/logging.ts         |  21 +--
 .../src-ts/ui/modules-data-provider.ts        |   2 +-
 .../lldb-dap/src-ts/ui/symbols-provider.ts    | 126 ++++++++++-----
 .../src-ts/ui/symbols-webview-html.ts         |  10 +-
 .../src-ts/webview/symbols-table-view.ts      |  41 +++--
 .../lldb-dap/src-ts/webview/tsconfig.json     |  24 ++-
 14 files changed, 277 insertions(+), 171 deletions(-)

diff --git a/lldb/tools/lldb-dap/.prettierrc.json 
b/lldb/tools/lldb-dap/.prettierrc.json
index a28c70b90a4ee..1e722d47da5a0 100644
--- a/lldb/tools/lldb-dap/.prettierrc.json
+++ b/lldb/tools/lldb-dap/.prettierrc.json
@@ -3,5 +3,5 @@
   "tabWidth": 2,
   "semi": true,
   "singleQuote": false,
-  "plugins": ["prettier-plugin-curly"]
+  "plugins": ["prettier-plugin-curly", "prettier-plugin-organize-imports"]
 }
diff --git a/lldb/tools/lldb-dap/package-lock.json 
b/lldb/tools/lldb-dap/package-lock.json
index 826f29f70106c..fb9abc1e67050 100644
--- a/lldb/tools/lldb-dap/package-lock.json
+++ b/lldb/tools/lldb-dap/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "lldb-dap",
-  "version": "0.2.16",
+  "version": "0.4.1",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "lldb-dap",
-      "version": "0.2.16",
+      "version": "0.4.1",
       "license": "Apache 2.0 License with LLVM exceptions",
       "dependencies": {
         "chokidar": "^4.0.3"
@@ -21,6 +21,7 @@
         "esbuild": "^0.25.9",
         "prettier": "^3.4.2",
         "prettier-plugin-curly": "^0.3.1",
+        "prettier-plugin-organize-imports": "^4.3.0",
         "tabulator-tables": "^6.3.1",
         "typescript": "^5.7.3"
       },
@@ -767,6 +768,29 @@
         "node": ">=18"
       }
     },
+    "node_modules/@isaacs/balanced-match": {
+      "version": "4.0.1",
+      "resolved": 
"https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz";,
+      "integrity": 
"sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "20 || >=22"
+      }
+    },
+    "node_modules/@isaacs/brace-expansion": {
+      "version": "5.0.0",
+      "resolved": 
"https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz";,
+      "integrity": 
"sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@isaacs/balanced-match": "^4.0.1"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      }
+    },
     "node_modules/@isaacs/cliui": {
       "version": "8.0.2",
       "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz";,
@@ -1074,9 +1098,9 @@
       }
     },
     "node_modules/ansi-regex": {
-      "version": "6.1.0",
-      "resolved": 
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz";,
-      "integrity": 
"sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+      "version": "6.2.2",
+      "resolved": 
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz";,
+      "integrity": 
"sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -1744,13 +1768,13 @@
       }
     },
     "node_modules/foreground-child": {
-      "version": "3.3.0",
-      "resolved": 
"https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz";,
-      "integrity": 
"sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
+      "version": "3.3.1",
+      "resolved": 
"https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz";,
+      "integrity": 
"sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
       "dev": true,
       "license": "ISC",
       "dependencies": {
-        "cross-spawn": "^7.0.0",
+        "cross-spawn": "^7.0.6",
         "signal-exit": "^4.0.1"
       },
       "engines": {
@@ -1841,15 +1865,15 @@
       "optional": true
     },
     "node_modules/glob": {
-      "version": "11.0.1",
-      "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz";,
-      "integrity": 
"sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==",
+      "version": "11.1.0",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz";,
+      "integrity": 
"sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==",
       "dev": true,
-      "license": "ISC",
+      "license": "BlueOak-1.0.0",
       "dependencies": {
-        "foreground-child": "^3.1.0",
-        "jackspeak": "^4.0.1",
-        "minimatch": "^10.0.0",
+        "foreground-child": "^3.3.1",
+        "jackspeak": "^4.1.1",
+        "minimatch": "^10.1.1",
         "minipass": "^7.1.2",
         "package-json-from-dist": "^1.0.0",
         "path-scurry": "^2.0.0"
@@ -1864,24 +1888,14 @@
         "url": "https://github.com/sponsors/isaacs";
       }
     },
-    "node_modules/glob/node_modules/brace-expansion": {
-      "version": "2.0.2",
-      "resolved": 
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz";,
-      "integrity": 
"sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "balanced-match": "^1.0.0"
-      }
-    },
     "node_modules/glob/node_modules/minimatch": {
-      "version": "10.0.1",
-      "resolved": 
"https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz";,
-      "integrity": 
"sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
+      "version": "10.1.1",
+      "resolved": 
"https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz";,
+      "integrity": 
"sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
       "dev": true,
-      "license": "ISC",
+      "license": "BlueOak-1.0.0",
       "dependencies": {
-        "brace-expansion": "^2.0.1"
+        "@isaacs/brace-expansion": "^5.0.0"
       },
       "engines": {
         "node": "20 || >=22"
@@ -2105,9 +2119,9 @@
       "license": "ISC"
     },
     "node_modules/jackspeak": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz";,
-      "integrity": 
"sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==",
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz";,
+      "integrity": 
"sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==",
       "dev": true,
       "license": "BlueOak-1.0.0",
       "dependencies": {
@@ -2170,48 +2184,48 @@
       }
     },
     "node_modules/jsonwebtoken/node_modules/jwa": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz";,
-      "integrity": 
"sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+      "version": "1.4.2",
+      "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz";,
+      "integrity": 
"sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "buffer-equal-constant-time": "1.0.1",
+        "buffer-equal-constant-time": "^1.0.1",
         "ecdsa-sig-formatter": "1.0.11",
         "safe-buffer": "^5.0.1"
       }
     },
     "node_modules/jsonwebtoken/node_modules/jws": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz";,
-      "integrity": 
"sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+      "version": "3.2.3",
+      "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.3.tgz";,
+      "integrity": 
"sha512-byiJ0FLRdLdSVSReO/U4E7RoEyOCKnEnEPMjq3HxWtvzLsV08/i5RQKsFVNkCldrCaPr2vDNAOMsfs8T/Hze7g==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "jwa": "^1.4.1",
+        "jwa": "^1.4.2",
         "safe-buffer": "^5.0.1"
       }
     },
     "node_modules/jwa": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz";,
-      "integrity": 
"sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==",
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz";,
+      "integrity": 
"sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "buffer-equal-constant-time": "1.0.1",
+        "buffer-equal-constant-time": "^1.0.1",
         "ecdsa-sig-formatter": "1.0.11",
         "safe-buffer": "^5.0.1"
       }
     },
     "node_modules/jws": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz";,
-      "integrity": 
"sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz";,
+      "integrity": 
"sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "jwa": "^2.0.0",
+        "jwa": "^2.0.1",
         "safe-buffer": "^5.0.1"
       }
     },
@@ -2656,6 +2670,7 @@
       "integrity": 
"sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==",
       "dev": true,
       "license": "MIT",
+      "peer": true,
       "bin": {
         "prettier": "bin/prettier.cjs"
       },
@@ -2684,6 +2699,23 @@
         "prettier": "^2 || ^3"
       }
     },
+    "node_modules/prettier-plugin-organize-imports": {
+      "version": "4.3.0",
+      "resolved": 
"https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.3.0.tgz";,
+      "integrity": 
"sha512-FxFz0qFhyBsGdIsb697f/EkvHzi5SZOhWAjxcx2dLt+Q532bAlhswcXGYB1yzjZ69kW8UoadFBw7TyNwlq96Iw==",
+      "dev": true,
+      "license": "MIT",
+      "peerDependencies": {
+        "prettier": ">=2.0",
+        "typescript": ">=2.9",
+        "vue-tsc": "^2.1.0 || 3"
+      },
+      "peerDependenciesMeta": {
+        "vue-tsc": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/pump": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";,
@@ -3063,9 +3095,9 @@
       }
     },
     "node_modules/strip-ansi": {
-      "version": "7.1.0",
-      "resolved": 
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz";,
-      "integrity": 
"sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+      "version": "7.1.2",
+      "resolved": 
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz";,
+      "integrity": 
"sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -3220,6 +3252,7 @@
       "integrity": 
"sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
       "dev": true,
       "license": "Apache-2.0",
+      "peer": true,
       "bin": {
         "tsc": "bin/tsc",
         "tsserver": "bin/tsserver"
@@ -3406,9 +3439,9 @@
       }
     },
     "node_modules/wrap-ansi/node_modules/ansi-styles": {
-      "version": "6.2.1",
-      "resolved": 
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz";,
-      "integrity": 
"sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+      "version": "6.2.3",
+      "resolved": 
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz";,
+      "integrity": 
"sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
       "dev": true,
       "license": "MIT",
       "engines": {
diff --git a/lldb/tools/lldb-dap/package.json b/lldb/tools/lldb-dap/package.json
index 9d058fb4fd957..33d89675a1a08 100644
--- a/lldb/tools/lldb-dap/package.json
+++ b/lldb/tools/lldb-dap/package.json
@@ -40,6 +40,7 @@
     "esbuild": "^0.25.9",
     "prettier": "^3.4.2",
     "prettier-plugin-curly": "^0.3.1",
+    "prettier-plugin-organize-imports": "^4.3.0",
     "tabulator-tables": "^6.3.1",
     "typescript": "^5.7.3"
   },
diff --git a/lldb/tools/lldb-dap/src-ts/debug-adapter-factory.ts 
b/lldb/tools/lldb-dap/src-ts/debug-adapter-factory.ts
index 433d48fab9d85..e415097d1b8be 100644
--- a/lldb/tools/lldb-dap/src-ts/debug-adapter-factory.ts
+++ b/lldb/tools/lldb-dap/src-ts/debug-adapter-factory.ts
@@ -1,11 +1,11 @@
+import * as child_process from "child_process";
+import * as fs from "node:fs/promises";
 import * as path from "path";
 import * as util from "util";
 import * as vscode from "vscode";
-import * as child_process from "child_process";
-import * as fs from "node:fs/promises";
-import { ConfigureButton, OpenSettingsButton } from "./ui/show-error-message";
-import { ErrorWithNotification } from "./ui/error-with-notification";
 import { LogFilePathProvider, LogType } from "./logging";
+import { ErrorWithNotification } from "./ui/error-with-notification";
+import { ConfigureButton, OpenSettingsButton } from "./ui/show-error-message";
 import { expandUser } from "./utils";
 
 const exec = util.promisify(child_process.execFile);
@@ -92,8 +92,7 @@ function validateDAPEnv(debugConfigEnv: any): boolean {
   if (
     Array.isArray(debugConfigEnv) &&
     debugConfigEnv.findIndex(
-      (entry) =>
-        typeof entry !== "string" || !/^\w+(=.*)?$/.test(entry),
+      (entry) => typeof entry !== "string" || !/^\w+(=.*)?$/.test(entry),
     ) !== -1
   ) {
     return false;
diff --git a/lldb/tools/lldb-dap/src-ts/debug-configuration-provider.ts 
b/lldb/tools/lldb-dap/src-ts/debug-configuration-provider.ts
index d35460ab68f00..a3925ecfdfa58 100644
--- a/lldb/tools/lldb-dap/src-ts/debug-configuration-provider.ts
+++ b/lldb/tools/lldb-dap/src-ts/debug-configuration-provider.ts
@@ -1,11 +1,11 @@
-import * as vscode from "vscode";
 import * as child_process from "child_process";
 import * as util from "util";
-import { LLDBDapServer } from "./lldb-dap-server";
+import * as vscode from "vscode";
 import { createDebugAdapterExecutable } from "./debug-adapter-factory";
-import { ConfigureButton, showErrorMessage } from "./ui/show-error-message";
-import { ErrorWithNotification } from "./ui/error-with-notification";
+import { LLDBDapServer } from "./lldb-dap-server";
 import { LogFilePathProvider } from "./logging";
+import { ErrorWithNotification } from "./ui/error-with-notification";
+import { ConfigureButton } from "./ui/show-error-message";
 
 const exec = util.promisify(child_process.execFile);
 
@@ -69,7 +69,9 @@ const configurations: Record<string, DefaultConfig> = {
   terminateCommands: { type: "stringArray", default: [] },
 };
 
-export function getDefaultConfigKey(key: string): string | number | boolean | 
string[] | undefined {
+export function getDefaultConfigKey(
+  key: string,
+): string | number | boolean | string[] | undefined {
   return configurations[key]?.default;
 }
 
diff --git a/lldb/tools/lldb-dap/src-ts/debug-session-tracker.ts 
b/lldb/tools/lldb-dap/src-ts/debug-session-tracker.ts
index 6e89d441bbcf0..5c11e37e892d9 100644
--- a/lldb/tools/lldb-dap/src-ts/debug-session-tracker.ts
+++ b/lldb/tools/lldb-dap/src-ts/debug-session-tracker.ts
@@ -45,8 +45,9 @@ export class DebugSessionTracker
   private modulesChanged = new vscode.EventEmitter<
     vscode.DebugSession | undefined
   >();
-  private sessionReceivedCapabilities =
-      new vscode.EventEmitter<[ vscode.DebugSession, LLDBDapCapabilities ]>();
+  private sessionReceivedCapabilities = new vscode.EventEmitter<
+    [vscode.DebugSession, LLDBDapCapabilities]
+  >();
   private sessionExited = new vscode.EventEmitter<vscode.DebugSession>();
 
   /**
@@ -58,9 +59,9 @@ export class DebugSessionTracker
     this.modulesChanged.event;
 
   /** Fired when a debug session is initialized. */
-  onDidReceiveSessionCapabilities:
-      vscode.Event<[ vscode.DebugSession, LLDBDapCapabilities ]> =
-      this.sessionReceivedCapabilities.event;
+  onDidReceiveSessionCapabilities: vscode.Event<
+    [vscode.DebugSession, LLDBDapCapabilities]
+  > = this.sessionReceivedCapabilities.event;
 
   /** Fired when a debug session is exiting. */
   onDidExitSession: vscode.Event<vscode.DebugSession> =
@@ -167,7 +168,10 @@ export class DebugSessionTracker
 
       this.sessionExited.fire(session);
     } else if (isEvent(message, "capabilities")) {
-      this.sessionReceivedCapabilities.fire([ session, 
message.body.capabilities ]);
+      this.sessionReceivedCapabilities.fire([
+        session,
+        message.body.capabilities,
+      ]);
     }
   }
 }
diff --git a/lldb/tools/lldb-dap/src-ts/extension.ts 
b/lldb/tools/lldb-dap/src-ts/extension.ts
index 7119cba972fa4..3d3d10b762b7f 100644
--- a/lldb/tools/lldb-dap/src-ts/extension.ts
+++ b/lldb/tools/lldb-dap/src-ts/extension.ts
@@ -1,18 +1,17 @@
-import * as path from "path";
 import * as vscode from "vscode";
 
 import { LLDBDapDescriptorFactory } from "./debug-adapter-factory";
-import { DisposableContext } from "./disposable-context";
-import { LaunchUriHandler } from "./uri-launch-handler";
 import { LLDBDapConfigurationProvider } from "./debug-configuration-provider";
-import { LLDBDapServer } from "./lldb-dap-server";
 import { DebugSessionTracker } from "./debug-session-tracker";
+import { DisposableContext } from "./disposable-context";
+import { LLDBDapServer } from "./lldb-dap-server";
+import { LogFilePathProvider } from "./logging";
 import {
-  ModulesDataProvider,
   ModuleProperty,
+  ModulesDataProvider,
 } from "./ui/modules-data-provider";
-import { LogFilePathProvider } from "./logging";
 import { SymbolsProvider } from "./ui/symbols-provider";
+import { LaunchUriHandler } from "./uri-launch-handler";
 
 /**
  * This class represents the extension and manages its life cycle. Other 
extensions
@@ -54,10 +53,12 @@ export class LLDBDapExtension extends DisposableContext {
       vscode.window.registerUriHandler(new LaunchUriHandler()),
     );
 
-    this.pushSubscription(vscode.commands.registerCommand(
-      "lldb-dap.modules.copyProperty",
-      (node: ModuleProperty) => vscode.env.clipboard.writeText(node.value),
-    ));
+    this.pushSubscription(
+      vscode.commands.registerCommand(
+        "lldb-dap.modules.copyProperty",
+        (node: ModuleProperty) => vscode.env.clipboard.writeText(node.value),
+      ),
+    );
 
     this.pushSubscription(new SymbolsProvider(sessionTracker, context));
   }
@@ -67,7 +68,9 @@ export class LLDBDapExtension extends DisposableContext {
  * This is the entry point when initialized by VS Code.
  */
 export async function activate(context: vscode.ExtensionContext) {
-  const outputChannel = vscode.window.createOutputChannel("LLDB-DAP", { log: 
true });
+  const outputChannel = vscode.window.createOutputChannel("LLDB-DAP", {
+    log: true,
+  });
   outputChannel.info("LLDB-DAP extension activating...");
   const logFilePath = new LogFilePathProvider(context, outputChannel);
   context.subscriptions.push(
diff --git a/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts 
b/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts
index 4e348965930d9..deacdea145a41 100644
--- a/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts
+++ b/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts
@@ -1,6 +1,5 @@
-import { FSWatcher, watch as chokidarWatch } from 'chokidar';
+import { FSWatcher, watch as chokidarWatch } from "chokidar";
 import * as child_process from "node:child_process";
-import * as path from "path";
 import { isDeepStrictEqual } from "util";
 import * as vscode from "vscode";
 
@@ -92,8 +91,8 @@ export class LLDBDapServer implements vscode.Disposable {
       this.serverFileChanged = false;
       this.serverFileWatcher = chokidarWatch(dapPath);
       this.serverFileWatcher
-        .on('change', () => this.serverFileChanged = true)
-        .on('unlink', () => this.serverFileChanged = true);
+        .on("change", () => (this.serverFileChanged = true))
+        .on("unlink", () => (this.serverFileChanged = true));
     });
     return this.serverInfo;
   }
@@ -139,8 +138,7 @@ ${this.serverSpawnInfo.join(" ")}
 The new lldb-dap server will be started with:
 
 ${newSpawnInfo.join(" ")}
-`
-      );
+`);
     }
 
     // If the server hasn't changed, continue startup without killing it.
@@ -153,7 +151,7 @@ ${newSpawnInfo.join(" ")}
       "The lldb-dap server has changed. Would you like to restart the server?",
       {
         modal: true,
-        detail: `An existing lldb-dap server (${this.serverProcess.pid}) is 
running with ${changeTLDR.map(s => `*${s}*`).join(" and ")}.
+        detail: `An existing lldb-dap server (${this.serverProcess.pid}) is 
running with ${changeTLDR.map((s) => `*${s}*`).join(" and ")}.
 ${changeDetails.join("\n")}
 Restarting the server will interrupt any existing debug sessions and start a 
new server.`,
       },
diff --git a/lldb/tools/lldb-dap/src-ts/logging.ts 
b/lldb/tools/lldb-dap/src-ts/logging.ts
index 7f3bbef9b027f..c35a503c08629 100644
--- a/lldb/tools/lldb-dap/src-ts/logging.ts
+++ b/lldb/tools/lldb-dap/src-ts/logging.ts
@@ -30,21 +30,22 @@ export class LogFilePathProvider {
   ) {
     this.updateLogFolder();
     context.subscriptions.push(
-        vscode.workspace.onDidChangeConfiguration(e => {
-            if (
-                e.affectsConfiguration("lldb-dap.logFolder")
-            ) {
-                this.updateLogFolder();
-            }
-        })
+      vscode.workspace.onDidChangeConfiguration((e) => {
+        if (e.affectsConfiguration("lldb-dap.logFolder")) {
+          this.updateLogFolder();
+        }
+      }),
     );
   }
 
   get(type: LogType): string {
     const logFolder = this.logFolder || this.context.logUri.fsPath;
-    switch(type) {
-    case LogType.DEBUG_SESSION:
-        return path.join(logFolder, `lldb-dap-${formatDate(new 
Date())}-${vscode.env.sessionId.split("-")[0]}.log`);
+    switch (type) {
+      case LogType.DEBUG_SESSION:
+        return path.join(
+          logFolder,
+          `lldb-dap-${formatDate(new 
Date())}-${vscode.env.sessionId.split("-")[0]}.log`,
+        );
         break;
     }
   }
diff --git a/lldb/tools/lldb-dap/src-ts/ui/modules-data-provider.ts 
b/lldb/tools/lldb-dap/src-ts/ui/modules-data-provider.ts
index 96343cb0a8da6..60e317a9db4bc 100644
--- a/lldb/tools/lldb-dap/src-ts/ui/modules-data-provider.ts
+++ b/lldb/tools/lldb-dap/src-ts/ui/modules-data-provider.ts
@@ -1,5 +1,5 @@
-import * as vscode from "vscode";
 import { DebugProtocol } from "@vscode/debugprotocol";
+import * as vscode from "vscode";
 import { DebugSessionTracker } from "../debug-session-tracker";
 
 export interface ModuleProperty {
diff --git a/lldb/tools/lldb-dap/src-ts/ui/symbols-provider.ts 
b/lldb/tools/lldb-dap/src-ts/ui/symbols-provider.ts
index 951a5971e0bca..c1b0619b12874 100644
--- a/lldb/tools/lldb-dap/src-ts/ui/symbols-provider.ts
+++ b/lldb/tools/lldb-dap/src-ts/ui/symbols-provider.ts
@@ -1,12 +1,11 @@
-import * as vscode from "vscode";
 import { DebugProtocol } from "@vscode/debugprotocol";
+import * as vscode from "vscode";
 
 import { DebugSessionTracker } from "../debug-session-tracker";
 import { DisposableContext } from "../disposable-context";
 
 import { SymbolType } from "..";
 import { getSymbolsTableHTMLContent } from "./symbols-webview-html";
-import { getDefaultConfigKey } from "../debug-configuration-provider";
 
 export class SymbolsProvider extends DisposableContext {
   constructor(
@@ -15,35 +14,43 @@ export class SymbolsProvider extends DisposableContext {
   ) {
     super();
 
-    this.pushSubscription(vscode.commands.registerCommand(
-      "lldb-dap.debug.showSymbols",
-      () => {
+    this.pushSubscription(
+      vscode.commands.registerCommand("lldb-dap.debug.showSymbols", () => {
         const session = vscode.debug.activeDebugSession;
         if (!session) return;
 
         this.SelectModuleAndShowSymbols(session);
-      },
-    ));
+      }),
+    );
 
-    this.pushSubscription(vscode.commands.registerCommand(
-      "lldb-dap.modules.showSymbols",
-      (moduleItem: DebugProtocol.Module) => {
-        const session = vscode.debug.activeDebugSession;
-        if (!session) return;
+    this.pushSubscription(
+      vscode.commands.registerCommand(
+        "lldb-dap.modules.showSymbols",
+        (moduleItem: DebugProtocol.Module) => {
+          const session = vscode.debug.activeDebugSession;
+          if (!session) return;
 
-        this.showSymbolsForModule(session, moduleItem);
-      },
-    ));
+          this.showSymbolsForModule(session, moduleItem);
+        },
+      ),
+    );
 
-    this.tracker.onDidReceiveSessionCapabilities(([ _session, capabilities ]) 
=> {
+    this.tracker.onDidReceiveSessionCapabilities(([_session, capabilities]) => 
{
       if (capabilities.supportsModuleSymbolsRequest) {
         vscode.commands.executeCommand(
-            "setContext", "lldb-dap.supportsModuleSymbolsRequest", true);
+          "setContext",
+          "lldb-dap.supportsModuleSymbolsRequest",
+          true,
+        );
       }
     });
 
     this.tracker.onDidExitSession((_session) => {
-      vscode.commands.executeCommand("setContext", 
"lldb-dap.supportsModuleSymbolsRequest", false);
+      vscode.commands.executeCommand(
+        "setContext",
+        "lldb-dap.supportsModuleSymbolsRequest",
+        false,
+      );
     });
   }
 
@@ -54,9 +61,12 @@ export class SymbolsProvider extends DisposableContext {
     }
 
     // Let the user select a module to show symbols for
-    const selectedModule = await vscode.window.showQuickPick(modules.map(m => 
new ModuleQuickPickItem(m)), {
-        placeHolder: "Select a module to show symbols for"
-    });
+    const selectedModule = await vscode.window.showQuickPick(
+      modules.map((m) => new ModuleQuickPickItem(m)),
+      {
+        placeHolder: "Select a module to show symbols for",
+      },
+    );
     if (!selectedModule) {
       return;
     }
@@ -64,23 +74,40 @@ export class SymbolsProvider extends DisposableContext {
     await this.showSymbolsForModule(session, selectedModule.module);
   }
 
-  private async showSymbolsForModule(session: vscode.DebugSession, module: 
DebugProtocol.Module) {
+  private async showSymbolsForModule(
+    session: vscode.DebugSession,
+    module: DebugProtocol.Module,
+  ) {
     try {
-      const symbols = await this.getSymbolsForModule(session, 
module.id.toString());
+      const symbols = await this.getSymbolsForModule(
+        session,
+        module.id.toString(),
+      );
       await this.showSymbolsInNewTab(module.name.toString(), symbols);
     } catch (error) {
       if (error instanceof Error) {
-        await vscode.window.showErrorMessage("Failed to retrieve symbols: " + 
error.message);
+        await vscode.window.showErrorMessage(
+          "Failed to retrieve symbols: " + error.message,
+        );
       } else {
-        await vscode.window.showErrorMessage("Failed to retrieve symbols due 
to an unknown error.");
+        await vscode.window.showErrorMessage(
+          "Failed to retrieve symbols due to an unknown error.",
+        );
       }
-      
+
       return;
     }
   }
 
-  private async getSymbolsForModule(session: vscode.DebugSession, moduleId: 
string): Promise<SymbolType[]> {
-    const symbols_response: { symbols: Array<SymbolType> } = await 
session.customRequest("__lldb_moduleSymbols", { moduleId, moduleName: '' });
+  private async getSymbolsForModule(
+    session: vscode.DebugSession,
+    moduleId: string,
+  ): Promise<SymbolType[]> {
+    const symbols_response: { symbols: Array<SymbolType> } =
+      await session.customRequest("__lldb_moduleSymbols", {
+        moduleId,
+        moduleName: "",
+      });
     return symbols_response?.symbols || [];
   }
 
@@ -91,26 +118,47 @@ export class SymbolsProvider extends DisposableContext {
       vscode.ViewColumn.Active,
       {
         enableScripts: true,
-        localResourceRoots: [
-          this.getExtensionResourcePath()
-        ]
-      }
+        localResourceRoots: [this.getExtensionResourcePath()],
+      },
     );
 
     let tabulatorJsFilename = "tabulator_simple.min.css";
-    if (vscode.window.activeColorTheme.kind === vscode.ColorThemeKind.Dark || 
vscode.window.activeColorTheme.kind === vscode.ColorThemeKind.HighContrast) {
+    if (
+      vscode.window.activeColorTheme.kind === vscode.ColorThemeKind.Dark ||
+      vscode.window.activeColorTheme.kind === 
vscode.ColorThemeKind.HighContrast
+    ) {
       tabulatorJsFilename = "tabulator_midnight.min.css";
     }
-    const tabulatorCssPath = 
panel.webview.asWebviewUri(vscode.Uri.joinPath(this.getExtensionResourcePath(), 
tabulatorJsFilename));
-    const tabulatorJsPath = 
panel.webview.asWebviewUri(vscode.Uri.joinPath(this.getExtensionResourcePath(), 
"tabulator.min.js"));
-    const symbolsTableScriptPath = 
panel.webview.asWebviewUri(vscode.Uri.joinPath(this.getExtensionResourcePath(), 
"symbols-table-view.js"));
+    const tabulatorCssPath = panel.webview.asWebviewUri(
+      vscode.Uri.joinPath(this.getExtensionResourcePath(), 
tabulatorJsFilename),
+    );
+    const tabulatorJsPath = panel.webview.asWebviewUri(
+      vscode.Uri.joinPath(this.getExtensionResourcePath(), "tabulator.min.js"),
+    );
+    const symbolsTableScriptPath = panel.webview.asWebviewUri(
+      vscode.Uri.joinPath(
+        this.getExtensionResourcePath(),
+        "symbols-table-view.js",
+      ),
+    );
 
-    panel.webview.html = getSymbolsTableHTMLContent(tabulatorJsPath, 
tabulatorCssPath, symbolsTableScriptPath);
-    await panel.webview.postMessage({ command: "updateSymbols", symbols: 
symbols });
+    panel.webview.html = getSymbolsTableHTMLContent(
+      tabulatorJsPath,
+      tabulatorCssPath,
+      symbolsTableScriptPath,
+    );
+    await panel.webview.postMessage({
+      command: "updateSymbols",
+      symbols: symbols,
+    });
   }
 
   private getExtensionResourcePath(): vscode.Uri {
-    return vscode.Uri.joinPath(this.extensionContext.extensionUri, "out", 
"webview");
+    return vscode.Uri.joinPath(
+      this.extensionContext.extensionUri,
+      "out",
+      "webview",
+    );
   }
 }
 
diff --git a/lldb/tools/lldb-dap/src-ts/ui/symbols-webview-html.ts 
b/lldb/tools/lldb-dap/src-ts/ui/symbols-webview-html.ts
index c00e0d462569a..b3dc4e1613ec3 100644
--- a/lldb/tools/lldb-dap/src-ts/ui/symbols-webview-html.ts
+++ b/lldb/tools/lldb-dap/src-ts/ui/symbols-webview-html.ts
@@ -1,7 +1,11 @@
 import * as vscode from "vscode";
 
-export function getSymbolsTableHTMLContent(tabulatorJsPath: vscode.Uri, 
tabulatorCssPath: vscode.Uri, symbolsTableScriptPath: vscode.Uri): string {
-    return `<!DOCTYPE html>
+export function getSymbolsTableHTMLContent(
+  tabulatorJsPath: vscode.Uri,
+  tabulatorCssPath: vscode.Uri,
+  symbolsTableScriptPath: vscode.Uri,
+): string {
+  return `<!DOCTYPE html>
 <html>
 <head>
     <meta charset="UTF-8">
@@ -64,4 +68,4 @@ export function getSymbolsTableHTMLContent(tabulatorJsPath: 
vscode.Uri, tabulato
     <script src="${symbolsTableScriptPath}"></script>
 </body>
 </html>`;
-}
\ No newline at end of file
+}
diff --git a/lldb/tools/lldb-dap/src-ts/webview/symbols-table-view.ts 
b/lldb/tools/lldb-dap/src-ts/webview/symbols-table-view.ts
index 9d346818e384a..588b2c1070e20 100644
--- a/lldb/tools/lldb-dap/src-ts/webview/symbols-table-view.ts
+++ b/lldb/tools/lldb-dap/src-ts/webview/symbols-table-view.ts
@@ -1,24 +1,34 @@
 import type { CellComponent, ColumnDefinition } from "tabulator-tables";
-import type { SymbolType } from ".."
+import type { SymbolType } from "..";
 
 /// SVG from 
https://github.com/olifolkerd/tabulator/blob/master/src/js/modules/Format/defaults/formatters/tickCross.js
 /// but with the default font color.
 /// hopefully in the future we can set the color as parameter: 
https://github.com/olifolkerd/tabulator/pull/4791
 const TICK_ELEMENT = `<svg enable-background="new 0 0 24 24" height="14" 
width="14" viewBox="0 0 24 24" xml:space="preserve" ><path 
fill="var(--vscode-editor-foreground)" clip-rule="evenodd" 
d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34  
c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351
  
l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07
  
l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z"
 fill-rule="evenodd"/></svg>`;
 
-function getTabulatorHexaFormatter(padding: number): (cell: CellComponent) => 
string {
+function getTabulatorHexaFormatter(
+  padding: number,
+): (cell: CellComponent) => string {
   return (cell: CellComponent) => {
     const val = cell.getValue();
     if (val === undefined || val === null) {
       return "";
     }
 
-    return val !== undefined ? "0x" + 
val.toString(16).toLowerCase().padStart(padding, "0") : "";
+    return val !== undefined
+      ? "0x" + val.toString(16).toLowerCase().padStart(padding, "0")
+      : "";
   };
 }
 
 const SYMBOL_TABLE_COLUMNS: ColumnDefinition[] = [
-  { title: "ID", field: "id", headerTooltip: true, sorter: "number", 
widthGrow: 0.6 },
+  {
+    title: "ID",
+    field: "id",
+    headerTooltip: true,
+    sorter: "number",
+    widthGrow: 0.6,
+  },
   {
     title: "Name",
     field: "name",
@@ -26,10 +36,10 @@ const SYMBOL_TABLE_COLUMNS: ColumnDefinition[] = [
     sorter: "string",
     widthGrow: 2.5,
     minWidth: 200,
-    tooltip : (_event: MouseEvent, cell: CellComponent) => {
+    tooltip: (_event: MouseEvent, cell: CellComponent) => {
       const rowData = cell.getRow().getData();
       return rowData.name;
-    }
+    },
   },
   {
     title: "Debug",
@@ -41,7 +51,7 @@ const SYMBOL_TABLE_COLUMNS: ColumnDefinition[] = [
     formatterParams: {
       tickElement: TICK_ELEMENT,
       crossElement: false,
-    }
+    },
   },
   {
     title: "Synthetic",
@@ -53,7 +63,7 @@ const SYMBOL_TABLE_COLUMNS: ColumnDefinition[] = [
     formatterParams: {
       tickElement: TICK_ELEMENT,
       crossElement: false,
-    }
+    },
   },
   {
     title: "External",
@@ -65,7 +75,7 @@ const SYMBOL_TABLE_COLUMNS: ColumnDefinition[] = [
     formatterParams: {
       tickElement: TICK_ELEMENT,
       crossElement: false,
-    }
+    },
   },
   { title: "Type", field: "type", sorter: "string" },
   {
@@ -73,7 +83,7 @@ const SYMBOL_TABLE_COLUMNS: ColumnDefinition[] = [
     field: "fileAddress",
     headerTooltip: true,
     sorter: "number",
-    widthGrow : 1.25,
+    widthGrow: 1.25,
     formatter: getTabulatorHexaFormatter(16),
   },
   {
@@ -81,10 +91,16 @@ const SYMBOL_TABLE_COLUMNS: ColumnDefinition[] = [
     field: "loadAddress",
     headerTooltip: true,
     sorter: "number",
-    widthGrow : 1.25,
+    widthGrow: 1.25,
     formatter: getTabulatorHexaFormatter(16),
   },
-  { title: "Size", field: "size", headerTooltip: true, sorter: "number", 
formatter: getTabulatorHexaFormatter(8) },
+  {
+    title: "Size",
+    field: "size",
+    headerTooltip: true,
+    sorter: "number",
+    formatter: getTabulatorHexaFormatter(8),
+  },
 ];
 
 const vscode = acquireVsCodeApi();
@@ -112,4 +128,3 @@ window.addEventListener("message", (event: 
MessageEvent<any>) => {
       break;
   }
 });
-
diff --git a/lldb/tools/lldb-dap/src-ts/webview/tsconfig.json 
b/lldb/tools/lldb-dap/src-ts/webview/tsconfig.json
index cfe64fc4b989f..38986af609692 100644
--- a/lldb/tools/lldb-dap/src-ts/webview/tsconfig.json
+++ b/lldb/tools/lldb-dap/src-ts/webview/tsconfig.json
@@ -1,15 +1,13 @@
 {
-       "compilerOptions": {
-               "moduleResolution": "node",
-               "module": "esnext",
-               "outDir": "out",
-               "rootDir": ".",
-               "sourceMap": true,
-               "strict": true,
-               "noEmit": true,
-               "target": "es2017"
-       },
-       "include": [
-               "./"
-       ],
+  "compilerOptions": {
+    "moduleResolution": "node",
+    "module": "esnext",
+    "outDir": "out",
+    "rootDir": ".",
+    "sourceMap": true,
+    "strict": true,
+    "noEmit": true,
+    "target": "es2017"
+  },
+  "include": ["./"]
 }

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to