From 8d229276194984d20b3b4cb8320c210e2371f07b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ufuktan=20Y=C4=B1ld=C4=B1r=C4=B1m?= <13807261+ufukty@users.noreply.github.com> Date: Sat, 9 May 2026 22:08:29 +0300 Subject: [PATCH 1/5] contributing.md: inits --- CONTRIBUTING.md | 25 +++++++++++++++++++++++++ diagrams/config-cache.mmd | 12 ++++++++++++ diagrams/config-cache@2x.png | Bin 0 -> 61085 bytes diagrams/structure.mmd | 20 ++++++++++++++++++++ diagrams/structure@2x.png | Bin 0 -> 44914 bytes diagrams/watch.sh | 5 +++++ 6 files changed, 62 insertions(+) create mode 100644 CONTRIBUTING.md create mode 100644 diagrams/config-cache.mmd create mode 100644 diagrams/config-cache@2x.png create mode 100644 diagrams/structure.mmd create mode 100644 diagrams/structure@2x.png create mode 100644 diagrams/watch.sh diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..ad9ee3d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Contributing + +For the users, [Dim GitHub Discussions](https://github.com/ufukty/dim/discussions) is the best medium for sharing bug reports, suggestions and questions. + +## Internals + +Dim's code may not be straightforward to follow, as it employs several optimization techniques that scatter and intertwine logic across files. + +### Overview + +The extension starts with the lifecycle controller. It is responsible for routing user events received from VS Code to the correct units. Units include the compiled user-config cache and individual editor decorators. Events include changes in the config, active and visible editors, and selections. + + + +An editor decorator instance is responsible for a single `TextEditor` instance. It holds the UI state, including the per-document toggle and the ranges decorated at the previous iteration. + +### Compiled user-config cache + +A Dim user-config may contain many RegExes, so compiled results are cached. The compiled config is sensitive to the scope of `TextEditor`. That's a shallow handle VS Code uses to represent a tab's session. Cache invalidation is triggered by the Extensions API event `onDidChangeConfiguration`. + + + +Cache keys may shift as VS Code returns different `TextEditor` instances for the same "tab" when the user switches between them. + +Tracking tabs through short-lived TextEditor handles. \ No newline at end of file diff --git a/diagrams/config-cache.mmd b/diagrams/config-cache.mmd new file mode 100644 index 0000000..8aac670 --- /dev/null +++ b/diagrams/config-cache.mmd @@ -0,0 +1,12 @@ +ishikawa-beta + Recompile user-configuration + Raw user-configuration + File + Editor + Workspace + Scope + Top-level + Language-specific + Editor scope + Document URI + Language mode \ No newline at end of file diff --git a/diagrams/config-cache@2x.png b/diagrams/config-cache@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9d8faddb4bc657e2d498c95245e78d343db15362 GIT binary patch literal 61085 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 a4dul8nw#BQPM6~oiriUc>5S7CeEu)zlJ8&u literal 0 HcmV?d00001 diff --git a/diagrams/structure.mmd b/diagrams/structure.mmd new file mode 100644 index 0000000..c8d6a73 --- /dev/null +++ b/diagrams/structure.mmd @@ -0,0 +1,20 @@ +block + +columns 3 + +space:2 ConfigReader +space:3 +space:2 ConfigCompiler +space:3 +EditorDecorator space ConfigCache +space:3 +LifecycleCtrl:3 +space:3 +ExtensionHost:3 + +ConfigCompiler--"Scope"-->ConfigReader +ConfigCache--"Scope"-->ConfigCompiler +LifecycleCtrl--"Invalidate"-->ConfigCache +LifecycleCtrl--"Event, Command"-->EditorDecorator +ExtensionHost--"Events, Commands"-->LifecycleCtrl +EditorDecorator--"Scope"-->ConfigCache \ No newline at end of file diff --git a/diagrams/structure@2x.png b/diagrams/structure@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc0613ad93d50b4bbbae302bf228a3b91a411018 GIT binary patch literal 44914 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 Date: Sat, 9 May 2026 22:08:49 +0300 Subject: [PATCH 2/5] contributing.md: removes redundant. --- CONTRIBUTING.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ad9ee3d..bb14644 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,5 +21,3 @@ A Dim user-config may contain many RegExes, so compiled results are cached. The Cache keys may shift as VS Code returns different `TextEditor` instances for the same "tab" when the user switches between them. - -Tracking tabs through short-lived TextEditor handles. \ No newline at end of file From c4efb7fd9517b50f98d065c20ed09281c9dcd019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ufuktan=20Y=C4=B1ld=C4=B1r=C4=B1m?= <13807261+ufukty@users.noreply.github.com> Date: Sun, 10 May 2026 09:02:32 +0300 Subject: [PATCH 3/5] contributing.md: aims to fix the github strips the image tags used for attaching diagrams with using the hack vscode preview ignoring `source` tags within `picture` tags and github gives presedence to `source` tags. https://github.blog/developer-skills/github/how-to-make-your-images-in-markdown-on-github-adjust-for-dark-mode-and-light-mode --- CONTRIBUTING.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bb14644..2053f38 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,10 @@ Dim's code may not be straightforward to follow, as it employs several optimizat The extension starts with the lifecycle controller. It is responsible for routing user events received from VS Code to the correct units. Units include the compiled user-config cache and individual editor decorators. Events include changes in the config, active and visible editors, and selections. - + + + + An editor decorator instance is responsible for a single `TextEditor` instance. It holds the UI state, including the per-document toggle and the ranges decorated at the previous iteration. @@ -18,6 +21,9 @@ An editor decorator instance is responsible for a single `TextEditor` instance. A Dim user-config may contain many RegExes, so compiled results are cached. The compiled config is sensitive to the scope of `TextEditor`. That's a shallow handle VS Code uses to represent a tab's session. Cache invalidation is triggered by the Extensions API event `onDidChangeConfiguration`. - + + + + Cache keys may shift as VS Code returns different `TextEditor` instances for the same "tab" when the user switches between them. From f52b343aa57b4f81c3f268b7d6886a15dc65a0ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ufuktan=20Y=C4=B1ld=C4=B1r=C4=B1m?= <13807261+ufukty@users.noreply.github.com> Date: Sun, 10 May 2026 09:05:10 +0300 Subject: [PATCH 4/5] .vscodeignore: adds to exclude diagrams from the extension package. --- .vscodeignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscodeignore b/.vscodeignore index 367279f..f5f0af2 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -5,6 +5,7 @@ **/*.ts **/eslint.config.mjs **/tsconfig.json +diagrams/** esbuild.mjs media/** node_modules/** From ac1caa48ecbf6d493dba71c4ddefc1c2a6790cfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ufuktan=20Y=C4=B1ld=C4=B1r=C4=B1m?= <13807261+ufukty@users.noreply.github.com> Date: Sun, 10 May 2026 09:12:14 +0300 Subject: [PATCH 5/5] contributing.md: adds to notify project is closed for PRs and issues from users. --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2053f38..3e08ff2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing -For the users, [Dim GitHub Discussions](https://github.com/ufukty/dim/discussions) is the best medium for sharing bug reports, suggestions and questions. +If you'd like to contribute, the best way right now is to open a bug report, suggestion, or question on [Dim GitHub Discussions](https://github.com/ufukty/dim/discussions). PRs and issues aren't being accepted from users at this stage. ## Internals