From 2fb9f3fa8a0f51e2933f193560ea4c0a3c0bb2fa Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Fri, 27 Mar 2026 00:11:01 +0700 Subject: [PATCH] refactor: replace CodeEditSourceEditor with native NSTextView editor Replace the 252-file CodeEditSourceEditor/CodeEditTextView third-party dependency (25K+ LOC) with a native NSTextView-based SQL editor (~1,500 LOC). - TPTextView: NSTextView subclass with Apple-standard horizontal scrolling, built-in Find Bar, auto-indent, bracket matching - TPSyntaxHighlighter: temporary attributes on NSLayoutManager (Apple pattern) - TPLineNumberView: NSRulerView subclass for line numbers - TPEditorView: SwiftUI NSViewRepresentable wrapper - Adapt Vim mode, AI suggestions, context menu to NSTextView API - Replace CursorPosition (CESS type) with NSRange throughout - Remove LocalPackages/CodeEditSourceEditor (1.5GB) - Remove LocalPackages/CodeEditLanguages Fixes #448 (horizontal scrolling broken due to CETV variable shadowing bug) Fixes #448 (Home/End keys not working) --- CHANGELOG.md | 13 + LocalPackages/CodeEditLanguages/Package.swift | 32 - .../CodeLanguage+Definitions.swift | 107 - .../CodeLanguage+DetectLanguage.swift | 191 - .../CodeEditLanguages/CodeLanguage.swift | 142 - .../Resources/tree-sitter-bash/highlights.scm | 56 - .../tree-sitter-javascript/highlights-jsx.scm | 8 - .../highlights-params.scm | 12 - .../tree-sitter-javascript/highlights.scm | 205 - .../tree-sitter-javascript/injections.scm | 32 - .../tree-sitter-javascript/locals.scm | 23 - .../Resources/tree-sitter-javascript/tags.scm | 99 - .../Resources/tree-sitter-sql/highlights.scm | 445 - .../Resources/tree-sitter-sql/indents.scm | 27 - .../TreeSitterLanguage.swift | 23 - .../CodeEditLanguages/TreeSitterModel.swift | 82 - .../Sources/TreeSitterGrammars/bash/parser.c | 350631 -------- .../Sources/TreeSitterGrammars/bash/scanner.c | 1217 - .../include/TreeSitterGrammars.h | 10 - .../TreeSitterGrammars/javascript/parser.c | 94268 -- .../TreeSitterGrammars/javascript/scanner.c | 364 - .../Sources/TreeSitterGrammars/sql/parser.c | 674655 --------------- .../Sources/TreeSitterGrammars/sql/scanner.c | 188 - .../vendored-headers/tree_sitter/alloc.h | 41 - .../vendored-headers/tree_sitter/array.h | 291 - .../vendored-headers/tree_sitter/parser.h | 286 - .../vendored-headers/tree_sitter/ts_assert.h | 11 - .../CodeEditSourceEditor-Icon-128@2x.png | Bin 48211 -> 0 bytes .../.github/CodeEditTextView-Icon-128@2x.png | Bin 71701 -> 0 bytes .../.github/ISSUE_TEMPLATE/bug_report.yml | 56 - .../ISSUE_TEMPLATE/feature_request.yml | 31 - .../.github/pull_request_template.md | 30 - .../.github/scripts/build-docc.sh | 8 - .../.github/scripts/tests.sh | 21 - .../.github/workflows/CI-pull-request.yml | 16 - .../.github/workflows/CI-push.yml | 21 - .../.github/workflows/add-to-project.yml | 20 - .../.github/workflows/build-documentation.yml | 55 - .../.github/workflows/swiftlint.yml | 11 - .../.github/workflows/tests.yml | 13 - LocalPackages/CodeEditSourceEditor/.gitignore | 10 - .../CodeEditSourceEditor/.gittattributes | 2 - LocalPackages/CodeEditSourceEditor/.spi.yml | 3 - .../CodeEditSourceEditor/.swiftlint.yml | 20 - .../project.pbxproj | 448 - .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/swiftpm/Package.resolved | 113 - .../CodeEditSourceEditorExample.xcscheme | 90 - .../AccentColor.colorset/Contents.json | 11 - .../CodeEditSourceEditor-Icon-1024.png | Bin 463190 -> 0 bytes .../CodeEditSourceEditor-Icon-128.png | Bin 17606 -> 0 bytes .../CodeEditSourceEditor-Icon-16.png | Bin 1881 -> 0 bytes .../CodeEditSourceEditor-Icon-256.png | Bin 42969 -> 0 bytes .../CodeEditSourceEditor-Icon-32.png | Bin 3216 -> 0 bytes .../CodeEditSourceEditor-Icon-512.png | Bin 133313 -> 0 bytes .../CodeEditSourceEditor-Icon-64.png | Bin 7388 -> 0 bytes .../AppIcon.appiconset/Contents.json | 68 - .../Assets.xcassets/Contents.json | 6 - .../CodeEditSourceEditorExample.entitlements | 10 - .../CodeEditSourceEditorExampleApp.swift | 18 - .../CodeEditSourceEditorExampleDocument.swift | 59 - .../Extensions/EditorTheme+Default.swift | 53 - .../Extensions/NSColor+Hex.swift | 51 - .../Extensions/String+Lines.swift | 54 - .../CodeEditSourceEditorExample/Info.plist | 39 - .../Preview Assets.xcassets/Contents.json | 6 - .../Views/ContentView.swift | 125 - .../Views/IndentPicker.swift | 42 - .../Views/LanguagePicker.swift | 30 - .../Views/MockCompletionDelegate.swift | 141 - .../Views/MockJumpToDefinitionDelegate.swift | 37 - .../Views/StatusBar.swift | 217 - LocalPackages/CodeEditSourceEditor/LICENSE.md | 21 - .../CodeEditSourceEditor/Package.swift | 69 - LocalPackages/CodeEditSourceEditor/README.md | 149 - .../Model/CodeSuggestionDelegate.swift | 55 - .../Model/CodeSuggestionEntry.swift | 33 - .../SuggestionTriggerCharacterModel.swift | 73 - .../Model/SuggestionViewModel.swift | 210 - .../View/CodeSuggestionLabelView.swift | 101 - .../View/SuggestionContentView.swift | 114 - .../View/SuggestionPreviewView.swift | 62 - .../Window/SuggestionController+Window.swift | 120 - .../Window/SuggestionController.swift | 251 - .../TextViewController+Cursor.swift | 131 - .../TextViewController+EmphasizeBracket.swift | 161 - .../TextViewController+FindPanelTarget.swift | 31 - ...extViewController+GutterViewDelegate.swift | 14 - .../TextViewController+Highlighter.swift | 49 - .../TextViewController+IndentLines.swift | 254 - .../TextViewController+Lifecycle.swift | 320 - .../TextViewController+MoveLines.swift | 71 - .../TextViewController+ReloadUI.swift | 21 - .../TextViewController+StyleViews.swift | 88 - .../TextViewController+TextFormation.swift | 123 - .../TextViewController+TextViewDelegate.swift | 43 - .../TextViewController+ToggleComment.swift | 230 - ...extViewController+ToggleCommentCache.swift | 29 - .../Controller/TextViewController.swift | 332 - .../Documentation.docc/Documentation.md | 56 - .../codeeditsourceeditor-logo@2x.png | Bin 48211 -> 0 bytes .../Documentation.docc/Resources/preview.png | Bin 445287 -> 0 bytes .../Documentation.docc/SourceEditorView.md | 114 - .../TextViewCoordinators.md | 85 - .../Enums/BracketPairEmphasis.swift | 45 - .../Enums/BracketPairs.swift | 29 - .../Enums/CaptureModifier.swift | 92 - .../Enums/CaptureModifierSet.swift | 51 - .../Enums/CaptureName.swift | 151 - .../Enums/IndentOption.swift | 42 - .../Extensions/Color+Hex.swift | 99 - .../DispatchQueue+dispatchMainIfNot.swift | 37 - .../Extensions/IndexSet+NSRange.swift | 38 - .../NSBezierPath+RoundedCorners.swift | 112 - .../Extensions/NSColor+LightDark.swift | 23 - .../NSEdgeInsets/NSEdgeInsets+Equatable.swift | 17 - .../NSEdgeInsets/NSEdgeInsets+Helpers.swift | 18 - .../Extensions/NSFont/NSFont+CharWidth.swift | 14 - .../Extensions/NSFont/NSFont+LineHeight.swift | 16 - .../Extensions/NSFont/NSFont+RulerFont.swift | 42 - .../NSRange+/NSRange+InputEdit.swift | 66 - .../NSRange+/NSRange+NSTextRange.swift | 37 - .../Extensions/NSRange+/NSRange+String.swift | 21 - .../Extensions/NSRange+/NSRange+TSRange.swift | 18 - .../Extensions/NSRange+/NSRange+isEmpty.swift | 14 - .../Extensions/NSRect+Transform.swift | 19 - .../NSScrollView+percentScrolled.swift | 22 - .../Extensions/NSString+TextStory.swift | 19 - .../Extensions/Node+filterChildren.swift | 42 - .../Extensions/Range+Length.swift | 20 - .../Extensions/Result+ThrowOrReturn.swift | 27 - .../Extensions/String+/String+Groups.swift | 24 - .../Extensions/String+/String+encoding.swift | 17 - .../Extensions/TextMutation+isEmpty.swift | 17 - .../Extensions/TextView+/TextView+Menu.swift | 125 - .../Extensions/TextView+/TextView+Point.swift | 18 - .../TextView+/TextView+TextFormation.swift | 51 - .../TextView+/TextView+createReadBlock.swift | 51 - .../Extensions/Tree+prettyPrint.swift | 132 - .../TreeSitterLanguage+TagFilter.swift | 22 - .../Filters/DeleteWhitespaceFilter.swift | 65 - .../Filters/TabReplacementFilter.swift | 35 - .../Filters/TagFilter.swift | 300 - .../Find/FindMethod.swift | 29 - .../Find/FindPanelMode.swift | 20 - .../Find/FindPanelTarget.swift | 22 - .../Find/FindViewController+Toggle.swift | 135 - .../Find/FindViewController.swift | 92 - .../Find/PanelView/FindControls.swift | 117 - .../Find/PanelView/FindMethodPicker.swift | 222 - .../Find/PanelView/FindModePicker.swift | 177 - .../Find/PanelView/FindPanelContent.swift | 54 - .../Find/PanelView/FindPanelHostingView.swift | 71 - .../Find/PanelView/FindPanelView.swift | 145 - .../Find/PanelView/FindSearchField.swift | 158 - .../Find/PanelView/ReplaceControls.swift | 117 - .../Find/PanelView/ReplaceSearchField.swift | 99 - .../FindPanelViewModel+Emphasis.swift | 64 - .../ViewModel/FindPanelViewModel+Find.swift | 118 - .../ViewModel/FindPanelViewModel+Move.swift | 70 - .../FindPanelViewModel+Replace.swift | 88 - .../Find/ViewModel/FindPanelViewModel.swift | 116 - .../Gutter/GutterView.swift | 338 - .../HighlightProviderState.swift | 212 - .../HighlightProviding.swift | 66 - .../Highlighting/HighlightRange.swift | 31 - .../Highlighting/Highlighter.swift | 285 - .../StyledRangeContainer+runsIn.swift | 72 - .../StyledRangeContainer.swift | 172 - .../Highlighting/VisibleRangeProvider.swift | 77 - .../InvisibleCharactersConfiguration.swift | 77 - .../InvisibleCharactersCoordinator.swift | 185 - .../JumpToDefinitionDelegate.swift | 13 - .../JumpToDefinitionLink.swift | 48 - .../JumpToDefinitionModel.swift | 197 - .../LineFoldProviders/LineFoldProvider.swift | 51 - .../LineIndentationFoldProvider.swift | 65 - .../LineFolding/Model/FoldRange.swift | 20 - .../Model/LineFoldCalculator.swift | 186 - .../LineFolding/Model/LineFoldModel.swift | 155 - .../LineFolding/Model/LineFoldStorage.swift | 109 - .../Placeholder/LineFoldPlaceholder.swift | 87 - .../View/LineFoldRibbonView+Draw.swift | 335 - .../View/LineFoldRibbonView+FoldCapInfo.swift | 86 - .../LineFolding/View/LineFoldRibbonView.swift | 217 - .../Minimap/MinimapContentView.swift | 31 - .../Minimap/MinimapLineFragmentView.swift | 154 - .../Minimap/MinimapLineRenderer.swift | 73 - .../MinimapView+DocumentVisibleView.swift | 75 - .../Minimap/MinimapView+DragVisibleView.swift | 44 - ...apView+TextAttachmentManagerDelegate.swift | 30 - ...inimapView+TextLayoutManagerDelegate.swift | 34 - ...mapView+TextSelectionManagerDelegate.swift | 29 - .../Minimap/MinimapView.swift | 332 - .../RangeStore/RangeStore+Coalesce.swift | 45 - .../RangeStore/RangeStore+FindIndex.swift | 22 - .../RangeStore/RangeStore+OffsetMetric.swift | 22 - .../RangeStore/RangeStore+StoredRun.swift | 90 - .../RangeStore/RangeStore.swift | 148 - .../RangeStore/RangeStoreElement.swift | 10 - .../RangeStore/RangeStoreRun.swift | 34 - .../ReformattingGuideView.swift | 102 - .../SourceEditor+Coordinator.swift | 183 - .../SourceEditor/SourceEditor.swift | 216 - ...SourceEditorConfiguration+Appearance.swift | 189 - .../SourceEditorConfiguration+Behavior.swift | 62 - .../SourceEditorConfiguration+Layout.swift | 47 - ...ourceEditorConfiguration+Peripherals.swift | 84 - .../SourceEditorConfiguration.swift | 82 - .../SourceEditorState/SourceEditorState.swift | 30 - .../SupportingViews/BezelNotification.swift | 184 - .../SupportingViews/EffectView.swift | 72 - .../SupportingViews/FlippedNSView.swift | 12 - .../ForwardingScrollView.swift | 22 - .../SupportingViews/IconButtonStyle.swift | 120 - .../SupportingViews/IconToggleStyle.swift | 59 - .../SupportingViews/PanelStyles.swift | 71 - .../SupportingViews/PanelTextField.swift | 144 - .../SourceEditorTextView.swift | 21 - .../CombineCoordinator.swift | 48 - .../TextViewCoordinator.swift | 57 - .../Theme/EditorTheme.swift | 131 - .../Theme/ThemeAttributesProviding.swift | 13 - .../TreeSitter/Atomic.swift | 32 - .../TreeSitter/LanguageLayer.swift | 194 - .../TreeSitter/TreeSitterClient+Edit.swift | 83 - .../TreeSitterClient+Highlight.swift | 121 - .../TreeSitter/TreeSitterClient+Query.swift | 120 - .../TreeSitterClient+Temporary.swift | 71 - .../TreeSitter/TreeSitterClient.swift | 242 - .../TreeSitter/TreeSitterExecutor.swift | 183 - .../TreeSitter/TreeSitterState.swift | 290 - .../Utils/CursorPosition.swift | 85 - .../Utils/EmphasisGroup.swift | 11 - .../Utils/WeakCoordinator.swift | 25 - .../CaptureModifierSetTests.swift | 53 - .../CodeEditSourceEditorTests.swift | 43 - .../TextViewController+IndentTests.swift | 136 - .../TextViewController+MoveLinesTests.swift | 107 - .../Controller/TextViewControllerTests.swift | 583 - .../FindPanelTests.swift | 239 - .../HighlightProviderStateTest.swift | 137 - .../Highlighting/HighlighterTests.swift | 280 - .../StyledRangeContainerTests.swift | 125 - .../VisibleRangeProviderTests.swift | 58 - .../LineFoldStorageTests.swift | 53 - .../LineFoldingModelTests.swift | 70 - .../CodeEditSourceEditorTests/Mock.swift | 144 - .../RangeStoreTests.swift | 295 - .../TagEditingTests.swift | 157 - .../TreeSitterClientTests.swift | 197 - TablePro.xcodeproj/project.pbxproj | 34 - .../xcshareddata/swiftpm/Package.resolved | 74 +- .../Core/AI/InlineSuggestionManager.swift | 51 +- .../PasteboardActionRouter.swift | 5 +- TablePro/Core/Vim/VimCursorManager.swift | 42 +- TablePro/Core/Vim/VimKeyInterceptor.swift | 42 +- TablePro/Core/Vim/VimTextBufferAdapter.swift | 18 +- .../EditorLanguage+TreeSitter.swift | 10 - TablePro/TableProApp.swift | 7 +- TablePro/Theme/ThemeEngine.swift | 43 +- .../Views/Components/SQLReviewPopover.swift | 62 +- TablePro/Views/Editor/EditorEventRouter.swift | 82 +- TablePro/Views/Editor/QueryEditorView.swift | 9 +- .../Views/Editor/SQLCompletionAdapter.swift | 125 +- .../Views/Editor/SQLEditorCoordinator.swift | 354 +- TablePro/Views/Editor/SQLEditorView.swift | 180 +- .../Views/Editor/TPEditorConfiguration.swift | 43 + TablePro/Views/Editor/TPEditorDelegate.swift | 20 + TablePro/Views/Editor/TPEditorTheme.swift | 33 + TablePro/Views/Editor/TPEditorView.swift | 204 + TablePro/Views/Editor/TPLineNumberView.swift | 518 + .../Views/Editor/TPSyntaxHighlighter.swift | 455 + TablePro/Views/Editor/TPTextView.swift | 227 + .../Views/Editor/TableProEditorTheme.swift | 17 - TablePro/Views/Import/SQLCodePreview.swift | 47 +- .../Main/Child/MainEditorContentView.swift | 1 - .../MainContentCoordinator+ClickHouse.swift | 7 +- .../Views/Main/MainContentCoordinator.swift | 15 +- .../PasteboardActionRouterTests.swift | 13 +- .../Vim/VimTextBufferAdapterPerfTests.swift | 22 +- .../SQLEditorCoordinatorCleanupTests.swift | 60 +- .../Editor/SQLEditorCoordinatorTests.swift | 25 +- docs/development/connection-sharing/README.md | 39 + .../connection-sharing/architecture.md | 460 + .../competitive-analysis.md | 158 + .../connection-sharing/decisions.md | 222 + docs/development/connection-sharing/epics.md | 236 + docs/development/connection-sharing/prd.md | 140 + docs/development/connection-sharing/tasks.md | 196 + docs/docs.json | 1 + docs/features/connection-sharing.mdx | 148 + 293 files changed, 3460 insertions(+), 1144046 deletions(-) delete mode 100644 LocalPackages/CodeEditLanguages/Package.swift delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage+Definitions.swift delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage+DetectLanguage.swift delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage.swift delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-bash/highlights.scm delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights-jsx.scm delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights-params.scm delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights.scm delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/injections.scm delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/locals.scm delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/tags.scm delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-sql/highlights.scm delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-sql/indents.scm delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/TreeSitterLanguage.swift delete mode 100644 LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/TreeSitterModel.swift delete mode 100644 LocalPackages/CodeEditLanguages/Sources/TreeSitterGrammars/bash/parser.c delete mode 100644 LocalPackages/CodeEditLanguages/Sources/TreeSitterGrammars/bash/scanner.c delete mode 100644 LocalPackages/CodeEditLanguages/Sources/TreeSitterGrammars/include/TreeSitterGrammars.h delete mode 100644 LocalPackages/CodeEditLanguages/Sources/TreeSitterGrammars/javascript/parser.c delete mode 100644 LocalPackages/CodeEditLanguages/Sources/TreeSitterGrammars/javascript/scanner.c delete mode 100644 LocalPackages/CodeEditLanguages/Sources/TreeSitterGrammars/sql/parser.c delete mode 100644 LocalPackages/CodeEditLanguages/Sources/TreeSitterGrammars/sql/scanner.c delete mode 100644 LocalPackages/CodeEditLanguages/Sources/TreeSitterGrammars/vendored-headers/tree_sitter/alloc.h delete mode 100644 LocalPackages/CodeEditLanguages/Sources/TreeSitterGrammars/vendored-headers/tree_sitter/array.h delete mode 100644 LocalPackages/CodeEditLanguages/Sources/TreeSitterGrammars/vendored-headers/tree_sitter/parser.h delete mode 100644 LocalPackages/CodeEditLanguages/Sources/TreeSitterGrammars/vendored-headers/tree_sitter/ts_assert.h delete mode 100644 LocalPackages/CodeEditSourceEditor/.github/CodeEditSourceEditor-Icon-128@2x.png delete mode 100644 LocalPackages/CodeEditSourceEditor/.github/CodeEditTextView-Icon-128@2x.png delete mode 100644 LocalPackages/CodeEditSourceEditor/.github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 LocalPackages/CodeEditSourceEditor/.github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 LocalPackages/CodeEditSourceEditor/.github/pull_request_template.md delete mode 100755 LocalPackages/CodeEditSourceEditor/.github/scripts/build-docc.sh delete mode 100755 LocalPackages/CodeEditSourceEditor/.github/scripts/tests.sh delete mode 100644 LocalPackages/CodeEditSourceEditor/.github/workflows/CI-pull-request.yml delete mode 100644 LocalPackages/CodeEditSourceEditor/.github/workflows/CI-push.yml delete mode 100644 LocalPackages/CodeEditSourceEditor/.github/workflows/add-to-project.yml delete mode 100644 LocalPackages/CodeEditSourceEditor/.github/workflows/build-documentation.yml delete mode 100644 LocalPackages/CodeEditSourceEditor/.github/workflows/swiftlint.yml delete mode 100644 LocalPackages/CodeEditSourceEditor/.github/workflows/tests.yml delete mode 100644 LocalPackages/CodeEditSourceEditor/.gitignore delete mode 100644 LocalPackages/CodeEditSourceEditor/.gittattributes delete mode 100644 LocalPackages/CodeEditSourceEditor/.spi.yml delete mode 100644 LocalPackages/CodeEditSourceEditor/.swiftlint.yml delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample.xcodeproj/project.pbxproj delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample.xcodeproj/xcshareddata/xcschemes/CodeEditSourceEditorExample.xcscheme delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Assets.xcassets/AccentColor.colorset/Contents.json delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Assets.xcassets/AppIcon.appiconset/CodeEditSourceEditor-Icon-1024.png delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Assets.xcassets/AppIcon.appiconset/CodeEditSourceEditor-Icon-128.png delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Assets.xcassets/AppIcon.appiconset/CodeEditSourceEditor-Icon-16.png delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Assets.xcassets/AppIcon.appiconset/CodeEditSourceEditor-Icon-256.png delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Assets.xcassets/AppIcon.appiconset/CodeEditSourceEditor-Icon-32.png delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Assets.xcassets/AppIcon.appiconset/CodeEditSourceEditor-Icon-512.png delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Assets.xcassets/AppIcon.appiconset/CodeEditSourceEditor-Icon-64.png delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Assets.xcassets/Contents.json delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/CodeEditSourceEditorExample.entitlements delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/CodeEditSourceEditorExampleApp.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Documents/CodeEditSourceEditorExampleDocument.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Extensions/EditorTheme+Default.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Extensions/NSColor+Hex.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Extensions/String+Lines.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Info.plist delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Preview Content/Preview Assets.xcassets/Contents.json delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Views/ContentView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Views/IndentPicker.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Views/LanguagePicker.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Views/MockCompletionDelegate.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Views/MockJumpToDefinitionDelegate.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Example/CodeEditSourceEditorExample/CodeEditSourceEditorExample/Views/StatusBar.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/LICENSE.md delete mode 100644 LocalPackages/CodeEditSourceEditor/Package.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/README.md delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/CodeSuggestion/Model/CodeSuggestionDelegate.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/CodeSuggestion/Model/CodeSuggestionEntry.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/CodeSuggestion/Model/SuggestionTriggerCharacterModel.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/CodeSuggestion/Model/SuggestionViewModel.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/CodeSuggestion/View/CodeSuggestionLabelView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/CodeSuggestion/View/SuggestionContentView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/CodeSuggestion/View/SuggestionPreviewView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/CodeSuggestion/Window/SuggestionController+Window.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/CodeSuggestion/Window/SuggestionController.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+Cursor.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+EmphasizeBracket.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+FindPanelTarget.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+GutterViewDelegate.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+Highlighter.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+IndentLines.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+Lifecycle.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+MoveLines.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+ReloadUI.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+StyleViews.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+TextFormation.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+TextViewDelegate.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+ToggleComment.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController+ToggleCommentCache.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Controller/TextViewController.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Documentation.docc/Documentation.md delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Documentation.docc/Resources/codeeditsourceeditor-logo@2x.png delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Documentation.docc/Resources/preview.png delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Documentation.docc/SourceEditorView.md delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Documentation.docc/TextViewCoordinators.md delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Enums/BracketPairEmphasis.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Enums/BracketPairs.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Enums/CaptureModifier.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Enums/CaptureModifierSet.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Enums/CaptureName.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Enums/IndentOption.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/Color+Hex.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/DispatchQueue+dispatchMainIfNot.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/IndexSet+NSRange.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSBezierPath+RoundedCorners.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSColor+LightDark.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSEdgeInsets/NSEdgeInsets+Equatable.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSEdgeInsets/NSEdgeInsets+Helpers.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSFont/NSFont+CharWidth.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSFont/NSFont+LineHeight.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSFont/NSFont+RulerFont.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSRange+/NSRange+InputEdit.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSRange+/NSRange+NSTextRange.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSRange+/NSRange+String.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSRange+/NSRange+TSRange.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSRange+/NSRange+isEmpty.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSRect+Transform.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSScrollView+percentScrolled.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/NSString+TextStory.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/Node+filterChildren.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/Range+Length.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/Result+ThrowOrReturn.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/String+/String+Groups.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/String+/String+encoding.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/TextMutation+isEmpty.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/TextView+/TextView+Menu.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/TextView+/TextView+Point.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/TextView+/TextView+TextFormation.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/TextView+/TextView+createReadBlock.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/Tree+prettyPrint.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Extensions/TreeSitterLanguage+TagFilter.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Filters/DeleteWhitespaceFilter.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Filters/TabReplacementFilter.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Filters/TagFilter.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/FindMethod.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/FindPanelMode.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/FindPanelTarget.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/FindViewController+Toggle.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/FindViewController.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/PanelView/FindControls.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/PanelView/FindMethodPicker.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/PanelView/FindModePicker.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/PanelView/FindPanelContent.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/PanelView/FindPanelHostingView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/PanelView/FindPanelView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/PanelView/FindSearchField.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/PanelView/ReplaceControls.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/PanelView/ReplaceSearchField.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/ViewModel/FindPanelViewModel+Emphasis.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/ViewModel/FindPanelViewModel+Find.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/ViewModel/FindPanelViewModel+Move.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/ViewModel/FindPanelViewModel+Replace.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Find/ViewModel/FindPanelViewModel.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Gutter/GutterView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Highlighting/HighlightProviding/HighlightProviderState.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Highlighting/HighlightProviding/HighlightProviding.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Highlighting/HighlightRange.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Highlighting/Highlighter.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Highlighting/StyledRangeContainer/StyledRangeContainer+runsIn.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Highlighting/StyledRangeContainer/StyledRangeContainer.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Highlighting/VisibleRangeProvider.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/InvisibleCharacters/InvisibleCharactersConfiguration.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/InvisibleCharacters/InvisibleCharactersCoordinator.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/JumpToDefinition/JumpToDefinitionDelegate.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/JumpToDefinition/JumpToDefinitionLink.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/JumpToDefinition/JumpToDefinitionModel.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/LineFolding/LineFoldProviders/LineFoldProvider.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/LineFolding/LineFoldProviders/LineIndentationFoldProvider.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/LineFolding/Model/FoldRange.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/LineFolding/Model/LineFoldCalculator.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/LineFolding/Model/LineFoldModel.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/LineFolding/Model/LineFoldStorage.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/LineFolding/Placeholder/LineFoldPlaceholder.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/LineFolding/View/LineFoldRibbonView+Draw.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/LineFolding/View/LineFoldRibbonView+FoldCapInfo.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/LineFolding/View/LineFoldRibbonView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Minimap/MinimapContentView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Minimap/MinimapLineFragmentView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Minimap/MinimapLineRenderer.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Minimap/MinimapView+DocumentVisibleView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Minimap/MinimapView+DragVisibleView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Minimap/MinimapView+TextAttachmentManagerDelegate.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Minimap/MinimapView+TextLayoutManagerDelegate.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Minimap/MinimapView+TextSelectionManagerDelegate.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Minimap/MinimapView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/RangeStore/RangeStore+Coalesce.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/RangeStore/RangeStore+FindIndex.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/RangeStore/RangeStore+OffsetMetric.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/RangeStore/RangeStore+StoredRun.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/RangeStore/RangeStore.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/RangeStore/RangeStoreElement.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/RangeStore/RangeStoreRun.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/ReformattingGuide/ReformattingGuideView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SourceEditor/SourceEditor+Coordinator.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SourceEditor/SourceEditor.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SourceEditorConfiguration/SourceEditorConfiguration+Appearance.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SourceEditorConfiguration/SourceEditorConfiguration+Behavior.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SourceEditorConfiguration/SourceEditorConfiguration+Layout.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SourceEditorConfiguration/SourceEditorConfiguration+Peripherals.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SourceEditorConfiguration/SourceEditorConfiguration.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SourceEditorState/SourceEditorState.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SupportingViews/BezelNotification.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SupportingViews/EffectView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SupportingViews/FlippedNSView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SupportingViews/ForwardingScrollView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SupportingViews/IconButtonStyle.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SupportingViews/IconToggleStyle.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SupportingViews/PanelStyles.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SupportingViews/PanelTextField.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/SupportingViews/SourceEditorTextView.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/TextViewCoordinator/CombineCoordinator.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/TextViewCoordinator/TextViewCoordinator.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Theme/EditorTheme.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Theme/ThemeAttributesProviding.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/TreeSitter/Atomic.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/TreeSitter/LanguageLayer.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/TreeSitter/TreeSitterClient+Edit.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/TreeSitter/TreeSitterClient+Highlight.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/TreeSitter/TreeSitterClient+Query.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/TreeSitter/TreeSitterClient+Temporary.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/TreeSitter/TreeSitterClient.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/TreeSitter/TreeSitterExecutor.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/TreeSitter/TreeSitterState.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Utils/CursorPosition.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Utils/EmphasisGroup.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Sources/CodeEditSourceEditor/Utils/WeakCoordinator.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/CaptureModifierSetTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/CodeEditSourceEditorTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/Controller/TextViewController+IndentTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/Controller/TextViewController+MoveLinesTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/Controller/TextViewControllerTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/FindPanelTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/Highlighting/HighlightProviderStateTest.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/Highlighting/HighlighterTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/Highlighting/StyledRangeContainerTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/Highlighting/VisibleRangeProviderTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/LineFoldingTests/LineFoldStorageTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/LineFoldingTests/LineFoldingModelTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/Mock.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/RangeStoreTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/TagEditingTests.swift delete mode 100644 LocalPackages/CodeEditSourceEditor/Tests/CodeEditSourceEditorTests/TreeSitterClientTests.swift create mode 100644 TablePro/Views/Editor/TPEditorConfiguration.swift create mode 100644 TablePro/Views/Editor/TPEditorDelegate.swift create mode 100644 TablePro/Views/Editor/TPEditorTheme.swift create mode 100644 TablePro/Views/Editor/TPEditorView.swift create mode 100644 TablePro/Views/Editor/TPLineNumberView.swift create mode 100644 TablePro/Views/Editor/TPSyntaxHighlighter.swift create mode 100644 TablePro/Views/Editor/TPTextView.swift delete mode 100644 TablePro/Views/Editor/TableProEditorTheme.swift create mode 100644 docs/development/connection-sharing/README.md create mode 100644 docs/development/connection-sharing/architecture.md create mode 100644 docs/development/connection-sharing/competitive-analysis.md create mode 100644 docs/development/connection-sharing/decisions.md create mode 100644 docs/development/connection-sharing/epics.md create mode 100644 docs/development/connection-sharing/prd.md create mode 100644 docs/development/connection-sharing/tasks.md create mode 100644 docs/features/connection-sharing.mdx diff --git a/CHANGELOG.md b/CHANGELOG.md index c70881ec8..bd7b84ae0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Replace CodeEditSourceEditor/CodeEditTextView (252 files, 25K+ LOC third-party) with native NSTextView-based SQL editor (~1,500 LOC) +- Horizontal scrolling now uses Apple's standard NSTextContainer configuration instead of workarounds +- Find/Replace uses NSTextView's built-in Find Bar instead of custom implementation +- Syntax highlighting uses NSLayoutManager temporary attributes (Apple-recommended pattern) +- Line numbers use standard NSRulerView instead of custom CoreText gutter + +### Fixed + +- Horizontal scrolling broken in SQL editor due to upstream variable shadowing bug (#448) +- Home/End keys not working in SQL editor (#448) + ## [0.24.2] - 2026-03-26 ### Fixed diff --git a/LocalPackages/CodeEditLanguages/Package.swift b/LocalPackages/CodeEditLanguages/Package.swift deleted file mode 100644 index e3c7afd00..000000000 --- a/LocalPackages/CodeEditLanguages/Package.swift +++ /dev/null @@ -1,32 +0,0 @@ -// swift-tools-version: 5.9 -import PackageDescription - -let package = Package( - name: "CodeEditLanguages", - platforms: [.macOS(.v13)], - products: [ - .library(name: "CodeEditLanguages", targets: ["CodeEditLanguages"]) - ], - dependencies: [ - .package(url: "https://github.com/ChimeHQ/SwiftTreeSitter.git", from: "0.9.0") - ], - targets: [ - .target( - name: "TreeSitterGrammars", - path: "Sources/TreeSitterGrammars", - publicHeadersPath: "include", - cSettings: [ - .headerSearchPath("vendored-headers") - ] - ), - .target( - name: "CodeEditLanguages", - dependencies: [ - "TreeSitterGrammars", - .product(name: "SwiftTreeSitter", package: "SwiftTreeSitter") - ], - resources: [.copy("Resources")], - linkerSettings: [] - ) - ] -) diff --git a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage+Definitions.swift b/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage+Definitions.swift deleted file mode 100644 index 5124aea0b..000000000 --- a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage+Definitions.swift +++ /dev/null @@ -1,107 +0,0 @@ -// -// CodeLanguage+Definitions.swift -// -// -// Created by Lukas Pistrol on 15.01.23. -// - -import Foundation - -public extension CodeLanguage { - - /// An array of all language structures. - static let allLanguages: [CodeLanguage] = [ - .bash, - .javascript, - .jsx, - .sql - ] - - /// A language structure for `Bash` - static let bash: CodeLanguage = .init( - id: .bash, - tsName: "bash", - extensions: ["sh", "bash"], - lineCommentString: "#", - rangeCommentStrings: (":'", "'") - ) - - /// A language structure for `HTML` - static let html: CodeLanguage = .init( - id: .html, - tsName: "html", - extensions: ["html", "htm", "shtml"], - lineCommentString: "", - rangeCommentStrings: (""), - highlights: ["injections"] - ) - - /// A language structure for `JavaScript` - static let javascript: CodeLanguage = .init( - id: .javascript, - tsName: "javascript", - extensions: ["js", "cjs", "mjs"], - lineCommentString: "//", - rangeCommentStrings: ("/*", "*/"), - documentationCommentStrings: [.pair(("/**", "*/"))], - highlights: ["injections"], - additionalIdentifiers: ["node", "deno"] - ) - - /// A language structure for `JSDoc` - static let jsdoc: CodeLanguage = .init( - id: .jsdoc, - tsName: "jsdoc", - extensions: [], - lineCommentString: "", - rangeCommentStrings: ("/**", "*/") - ) - - /// A language structure for `JSX` - static let jsx: CodeLanguage = .init( - id: .jsx, - tsName: "javascript", - extensions: ["jsx"], - lineCommentString: "//", - rangeCommentStrings: ("/*", "*/"), - highlights: ["highlights-jsx", "injections"] - ) - - /// A language structure for `SQL` - static let sql: CodeLanguage = .init( - id: .sql, - tsName: "sql", - extensions: ["sql"], - lineCommentString: "--", - rangeCommentStrings: ("/*", "*/") - ) - - /// A language structure for `TSX` - static let tsx: CodeLanguage = .init( - id: .tsx, - tsName: "typescript", - extensions: ["tsx"], - lineCommentString: "//", - rangeCommentStrings: ("/*", "*/"), - parentURL: CodeLanguage.jsx.queryURL - ) - - /// A language structure for `Typescript` - static let typescript: CodeLanguage = .init( - id: .typescript, - tsName: "typescript", - extensions: ["ts", "cts", "mts"], - lineCommentString: "//", - rangeCommentStrings: ("/*", "*/"), - parentURL: CodeLanguage.javascript.queryURL - ) - - /// The default language (plain text) - static let `default`: CodeLanguage = .init( - id: .plainText, - tsName: "PlainText", - extensions: ["txt"], - lineCommentString: "", - rangeCommentStrings: ("", "") - ) -} diff --git a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage+DetectLanguage.swift b/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage+DetectLanguage.swift deleted file mode 100644 index ffe5df703..000000000 --- a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage+DetectLanguage.swift +++ /dev/null @@ -1,191 +0,0 @@ -// -// CodeLanguage+DetectLanguage.swift -// CodeEditLanguages -// -// Created by Khan Winter on 6/17/23. -// - -import Foundation -import RegexBuilder - -public extension CodeLanguage { - - /// Gets the corresponding language for the given file URL - /// - /// Uses the `pathExtension` URL component to detect the language - /// - Returns: A language structure - /// - Parameters: - /// - url: The URL to get the language for. - /// - prefixBuffer: The first few lines of the document. - /// - suffixBuffer: The last few lines of the document. - static func detectLanguageFrom(url: URL, prefixBuffer: String? = nil, suffixBuffer: String? = nil) -> CodeLanguage { - if let urlLanguage = detectLanguageUsingURL(url: url) { - return urlLanguage - } else if let prefixBuffer, - let shebangLanguage = detectLanguageUsingShebang(contents: prefixBuffer.lowercased()) { - return shebangLanguage - } else if let prefixBuffer, - let modelineLanguage = detecLanguageUsingModeline( - prefixBuffer: prefixBuffer.lowercased(), - suffixBuffer: suffixBuffer?.lowercased() - ) { - return modelineLanguage - } else { - return .default - } - } - - /// Detects a file's language using the file url. - /// - Parameter url: The URL of the file. - /// - Returns: The detected code language, if any. - private static func detectLanguageUsingURL(url: URL) -> CodeLanguage? { - let fileExtension = url.pathExtension.lowercased() - let fileName = url.pathComponents.last // should not be lowercase since it has to match e.g. `Dockerfile` - // This is to handle special file types without an extension (e.g., Makefile, Dockerfile) - let fileNameOrExtension = fileExtension.isEmpty ? (fileName != nil ? fileName! : "") : fileExtension - if let lang = allLanguages.first(where: { lang in lang.extensions.contains(fileNameOrExtension)}) { - return lang - } else { - return nil - } - } - - /// Detects code langauges from the shebang of a file. - /// Eg: `#!/usr/bin/env/python2.6` will detect the `python` code language. - /// Or, `#! /usr/bin/env perl` will detect the `perl` code language. - /// - Parameter contents: The contents of the first few lines of the file. - /// - Returns: The detected code language, if any. - private static func detectLanguageUsingShebang(contents: String) -> CodeLanguage? { - var contents = String(contents.split(separator: "\n").first ?? "") - guard - contents.starts(with: "#!"), - contents.trimmingCharacters(in: .whitespacesAndNewlines) != "#!", - let result = contents - .split(separator: "/", omittingEmptySubsequences: true) - .last? - .firstMatch(of: Regex { OneOrMore(.word) }) - else { - return nil - } - - var script = result.output.trimmingCharacters(in: .whitespacesAndNewlines) - - if script == "env" { - guard result.endIndex != contents.endIndex else { return nil } - - let argumentRegex = Regex { - ZeroOrMore(.whitespace) - ChoiceOf { - One("-") - One("--") - } - ZeroOrMore(.word) - ZeroOrMore(.whitespace) - } - let parameterRegex = Regex { - OneOrMore(.word) - One("=") - OneOrMore(.word) - } - - contents.trimPrefix(Regex { - OneOrMore("#!") - ZeroOrMore(.whitespace) - OneOrMore(.any, .reluctant) - OneOrMore(.whitespace) - }) - while !contents.isEmpty { - if contents.prefixMatch(of: argumentRegex) != nil { - contents.trimPrefix(argumentRegex) - } else if contents.prefixMatch(of: parameterRegex) != nil { - contents.trimPrefix(parameterRegex) - } else { - break - } - } - guard let newScript = contents.firstMatch(of: Regex { OneOrMore(.word) })?.output else { - return nil - } - script = String(newScript) - } - - return languageFromIdentifier(script) - } - - /// Detects modelines in either the beginning or end of a file. - /// - /// Examples of valid modelines: - /// ``` - /// # vim: set ft=js ts=4 sw=4 et: - /// # vim: ts=4:sw=4:et:ft=js - /// -*- mode: js; indent-tabs-mode: nil; tab-width: 4 -*- - /// code: language=javascript insertSpaces=true tabSize=4 - /// ``` - /// All of the above would resolve to `javascript` - /// - /// - Parameters: - /// - prefixBuffer: The first few lines of a document. - /// - suffixBuffer: The last few lines of a document. - /// - Returns: The detected code language, if any. - private static func detecLanguageUsingModeline(prefixBuffer: String, suffixBuffer: String?) -> CodeLanguage? { - func detectModeline(in string: String) -> CodeLanguage? { - guard !string.isEmpty else { return nil } - - let emacsLineRegex = Regex { - "-*-" - Capture { - #/.*/# - } - "-*-" - } - - let emacsLanguageRegex = Regex { - "mode:" - ZeroOrMore(.whitespace) - Capture { - OneOrMore(.word) - } - } - - let vimLineRegex = Regex { - ChoiceOf { - One("//") - One("/*") - } - OneOrMore(.whitespace) - #/vim:.*/# - Optionally(.newlineSequence) - } - - let vimLanguageRegex = Regex { - "ft=" - Capture { - OneOrMore(.word) - } - } - - if let emacsLine = string.firstMatch(of: emacsLineRegex)?.1, - let emacsLanguage = emacsLine.firstMatch(of: emacsLanguageRegex)?.1 { - return languageFromIdentifier(String(emacsLanguage)) - } else if let vimLine = string.firstMatch(of: vimLineRegex)?.0, - let vimLanguage = vimLine.firstMatch(of: vimLanguageRegex)?.1 { - return languageFromIdentifier(String(vimLanguage)) - } else { - return nil - } - } - - return detectModeline(in: prefixBuffer) ?? detectModeline(in: suffixBuffer ?? "") - } - - /// Finds a language to match a parsed identifier. - /// - Parameter identifier: The identifier to use. - /// - Returns: The found code language, if any. - private static func languageFromIdentifier(_ identifier: String) -> CodeLanguage? { - return allLanguages.first { - $0.tsName == identifier - || $0.extensions.contains(identifier) - || $0.additionalIdentifiers.contains(identifier) - } - } -} diff --git a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage.swift b/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage.swift deleted file mode 100644 index 89648afdb..000000000 --- a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/CodeLanguage.swift +++ /dev/null @@ -1,142 +0,0 @@ -// -// CodeLanguage.swift -// CodeEditTextView/CodeLanguage -// -// Created by Lukas Pistrol on 25.05.22. -// - -import Foundation -import SwiftTreeSitter -import TreeSitterGrammars - -/// A structure holding metadata for code languages -public struct CodeLanguage { - internal init( - id: TreeSitterLanguage, - tsName: String, - extensions: Set, - lineCommentString: String, - rangeCommentStrings: (String, String), - documentationCommentStrings: Set = [], - parentURL: URL? = nil, - highlights: Set? = nil, - additionalIdentifiers: Set = [] - ) { - self.id = id - self.tsName = tsName - self.extensions = extensions - self.lineCommentString = lineCommentString - self.rangeCommentStrings = rangeCommentStrings - self.documentationCommentStrings = documentationCommentStrings - self.parentQueryURL = parentURL - self.additionalHighlights = highlights - self.additionalIdentifiers = additionalIdentifiers - } - - /// The ID of the language - public let id: TreeSitterLanguage - - /// The display name of the language - public let tsName: String - - /// A set of file extensions for the language - /// - /// In special cases this can also be a file name - /// (e.g `Dockerfile`, `Makefile`) - public let extensions: Set - - /// The leading string of a comment line - public let lineCommentString: String - - /// The leading and trailing string of a multi-line comment - public let rangeCommentStrings: (String, String) - - /// The leading (and trailing, if there is one) string of a documentation comment - public let documentationCommentStrings: Set - - /// The query URL of a language this language inherits from. (e.g.: C for C++) - public let parentQueryURL: URL? - - /// Additional highlight file names (e.g.: JSX for JavaScript) - public let additionalHighlights: Set? - - /// The query URL for the language if available - public var queryURL: URL? { - queryURL() - } - - /// The bundle's resource URL - internal var resourceURL: URL? = Bundle.module.resourceURL - - /// A set of aditional identifiers to use for things like shebang matching. - public let additionalIdentifiers: Set - - /// The tree-sitter language for the language if available - public var language: Language? { - guard let tsLanguage = tsLanguage else { return nil } - return Language(language: tsLanguage) - } - - internal func queryURL(for highlights: String = "highlights") -> URL? { - return resourceURL? - .appendingPathComponent("Resources/tree-sitter-\(tsName)/\(highlights).scm") - } - - /// Gets the TSLanguage from `tree-sitter` β€” only SQL, Bash, and JavaScript are supported - private var tsLanguage: OpaquePointer? { - switch id { - case .bash: - return tree_sitter_bash() - case .javascript, .jsx: - return tree_sitter_javascript() - case .sql: - return tree_sitter_sql() - default: - return nil - } - } -} - -extension CodeLanguage: Hashable { - public static func == (lhs: CodeLanguage, rhs: CodeLanguage) -> Bool { - return lhs.id == rhs.id - } - - public func hash(into hasher: inout Hasher) { - hasher.combine(id) - } -} - -public enum DocumentationComments: Hashable { - public static func == (lhs: DocumentationComments, rhs: DocumentationComments) -> Bool { - switch lhs { - case .single(let lhsString): - switch rhs { - case .single(let rhsString): - return lhsString == rhsString - case .pair: - return false - } - case .pair(let lhsPair): - switch rhs { - case .single: - return false - case .pair(let rhsPair): - return lhsPair.0 == rhsPair.0 && lhsPair.1 == rhsPair.1 - } - } - } - - public func hash(into hasher: inout Hasher) { - switch self { - case .single(let string): - hasher.combine(string) - case .pair(let pair): - hasher.combine(pair.0) - hasher.combine(pair.1) - } - } - - case single(String) - case pair((String, String)) -} diff --git a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-bash/highlights.scm b/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-bash/highlights.scm deleted file mode 100644 index f33a7c2d3..000000000 --- a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-bash/highlights.scm +++ /dev/null @@ -1,56 +0,0 @@ -[ - (string) - (raw_string) - (heredoc_body) - (heredoc_start) -] @string - -(command_name) @function - -(variable_name) @property - -[ - "case" - "do" - "done" - "elif" - "else" - "esac" - "export" - "fi" - "for" - "function" - "if" - "in" - "select" - "then" - "unset" - "until" - "while" -] @keyword - -(comment) @comment - -(function_definition name: (word) @function) - -(file_descriptor) @number - -[ - (command_substitution) - (process_substitution) - (expansion) -]@embedded - -[ - "$" - "&&" - ">" - ">>" - "<" - "|" -] @operator - -( - (command (_) @constant) - (#match? @constant "^-") -) diff --git a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights-jsx.scm b/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights-jsx.scm deleted file mode 100644 index 0bdd886ad..000000000 --- a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights-jsx.scm +++ /dev/null @@ -1,8 +0,0 @@ -(jsx_opening_element (identifier) @tag (#match? @tag "^[a-z][^.]*$")) -(jsx_closing_element (identifier) @tag (#match? @tag "^[a-z][^.]*$")) -(jsx_self_closing_element (identifier) @tag (#match? @tag "^[a-z][^.]*$")) - -(jsx_attribute (property_identifier) @attribute) -(jsx_opening_element (["<" ">"]) @punctuation.bracket) -(jsx_closing_element ([""]) @punctuation.bracket) -(jsx_self_closing_element (["<" "/>"]) @punctuation.bracket) diff --git a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights-params.scm b/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights-params.scm deleted file mode 100644 index 95ffc7248..000000000 --- a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights-params.scm +++ /dev/null @@ -1,12 +0,0 @@ -(formal_parameters - [ - (identifier) @variable.parameter - (array_pattern - (identifier) @variable.parameter) - (object_pattern - [ - (pair_pattern value: (identifier) @variable.parameter) - (shorthand_property_identifier_pattern) @variable.parameter - ]) - ] -) diff --git a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights.scm b/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights.scm deleted file mode 100644 index 613a49a86..000000000 --- a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/highlights.scm +++ /dev/null @@ -1,205 +0,0 @@ -; Special identifiers -;-------------------- - -([ - (identifier) - (shorthand_property_identifier) - (shorthand_property_identifier_pattern) - ] @constant - (#match? @constant "^[A-Z_][A-Z\\d_]+$")) - - -((identifier) @constructor - (#match? @constructor "^[A-Z]")) - -((identifier) @variable.builtin - (#match? @variable.builtin "^(arguments|module|console|window|document)$") - (#is-not? local)) - -((identifier) @function.builtin - (#eq? @function.builtin "require") - (#is-not? local)) - -; Function and method definitions -;-------------------------------- - -(function - name: (identifier) @function) -(function_declaration - name: (identifier) @function) -(method_definition - name: (property_identifier) @function.method) - -(pair - key: (property_identifier) @function.method - value: [(function) (arrow_function)]) - -(assignment_expression - left: (member_expression - property: (property_identifier) @function.method) - right: [(function) (arrow_function)]) - -(variable_declarator - name: (identifier) @function - value: [(function) (arrow_function)]) - -(assignment_expression - left: (identifier) @function - right: [(function) (arrow_function)]) - -; Function and method calls -;-------------------------- - -(call_expression - function: (identifier) @function) - -(call_expression - function: (member_expression - property: (property_identifier) @function.method)) - -; Variables -;---------- - -(identifier) @variable - -; Properties -;----------- - -(property_identifier) @property - -; Literals -;--------- - -(this) @variable.builtin -(super) @variable.builtin - -[ - (true) - (false) - (null) - (undefined) -] @constant.builtin - -(comment) @comment - -[ - (string) - (template_string) -] @string - -(regex) @string.special -(number) @number - -; Tokens -;------- - -(template_substitution - "${" @punctuation.special - "}" @punctuation.special) @embedded - -[ - ";" - (optional_chain) - "." - "," -] @punctuation.delimiter - -[ - "-" - "--" - "-=" - "+" - "++" - "+=" - "*" - "*=" - "**" - "**=" - "/" - "/=" - "%" - "%=" - "<" - "<=" - "<<" - "<<=" - "=" - "==" - "===" - "!" - "!=" - "!==" - "=>" - ">" - ">=" - ">>" - ">>=" - ">>>" - ">>>=" - "~" - "^" - "&" - "|" - "^=" - "&=" - "|=" - "&&" - "||" - "??" - "&&=" - "||=" - "??=" -] @operator - -[ - "(" - ")" - "[" - "]" - "{" - "}" -] @punctuation.bracket - -[ - "as" - "async" - "await" - "break" - "case" - "catch" - "class" - "const" - "continue" - "debugger" - "default" - "delete" - "do" - "else" - "export" - "extends" - "finally" - "for" - "from" - "function" - "get" - "if" - "import" - "in" - "instanceof" - "let" - "new" - "of" - "return" - "set" - "static" - "switch" - "target" - "throw" - "try" - "typeof" - "var" - "void" - "while" - "with" - "yield" -] @keyword diff --git a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/injections.scm b/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/injections.scm deleted file mode 100644 index 178188c50..000000000 --- a/LocalPackages/CodeEditLanguages/Sources/CodeEditLanguages/Resources/tree-sitter-javascript/injections.scm +++ /dev/null @@ -1,32 +0,0 @@ -; Parse the contents of tagged template literals using -; a language inferred from the tag. - -(call_expression - function: [ - (identifier) @injection.language - (member_expression - property: (property_identifier) @injection.language) - ] - arguments: (template_string) @injection.content) - -; Parse regex syntax within regex literals - -((regex_pattern) @injection.content - (#set! injection.language "regex")) - - ; Parse JSDoc annotations in comments - -((comment) @injection.content - (#set! injection.language "jsdoc")) - -; Parse Ember/Glimmer/Handlebars/HTMLBars/etc. template literals -; e.g.: await render(hbs``) -(call_expression - function: ((identifier) @_name - (#eq? @_name "hbs")) - arguments: ((template_string) @glimmer - (#offset! @glimmer 0 1 0 -1))) - -; Ember Unified