From c1861fcc527e04bfe906cd766fdfc61bb86f0a5f Mon Sep 17 00:00:00 2001 From: bkellam Date: Mon, 2 Jun 2025 10:47:44 -0700 Subject: [PATCH 1/4] fix --- .../[...path]/components/rangeHighlightingExtension.ts | 9 ++++++--- .../symbolHoverPopup/symbolHoverTargetsExtension.ts | 2 +- .../src/lib/extensions/searchResultHighlightExtension.ts | 9 +++++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/web/src/app/[domain]/browse/[...path]/components/rangeHighlightingExtension.ts b/packages/web/src/app/[domain]/browse/[...path]/components/rangeHighlightingExtension.ts index b5bba639a..7f1076c3c 100644 --- a/packages/web/src/app/[domain]/browse/[...path]/components/rangeHighlightingExtension.ts +++ b/packages/web/src/app/[domain]/browse/[...path]/components/rangeHighlightingExtension.ts @@ -20,9 +20,12 @@ export const rangeHighlightingExtension = (range: BrowseHighlightRange) => State const from = state.doc.line(start.lineNumber).from + start.column - 1; const to = state.doc.line(end.lineNumber).from + end.column - 1; - return Decoration.set([ - markDecoration.range(from, to), - ]); + const decorations: Range[] = []; + if (from < to) { + decorations.push(markDecoration.range(from, to)); + } + + return Decoration.set(decorations); } else { const decorations: Range[] = []; for (let line = start.lineNumber; line <= end.lineNumber; line++) { diff --git a/packages/web/src/ee/features/codeNav/components/symbolHoverPopup/symbolHoverTargetsExtension.ts b/packages/web/src/ee/features/codeNav/components/symbolHoverPopup/symbolHoverTargetsExtension.ts index 179a0a54f..dff68f285 100644 --- a/packages/web/src/ee/features/codeNav/components/symbolHoverPopup/symbolHoverTargetsExtension.ts +++ b/packages/web/src/ee/features/codeNav/components/symbolHoverPopup/symbolHoverTargetsExtension.ts @@ -64,7 +64,7 @@ export const symbolHoverTargetsExtension = StateField.define({ tree?.iterate({ enter: (node) => { // console.log(node.type.name, getTextAt(node.from, node.to)); - if (NODE_TYPES.includes(node.type.name)) { + if (NODE_TYPES.includes(node.type.name) && node.from < node.to) { decorations.push(decoration.range(node.from, node.to)); } }, diff --git a/packages/web/src/lib/extensions/searchResultHighlightExtension.ts b/packages/web/src/lib/extensions/searchResultHighlightExtension.ts index 3ae9e4a15..58364f56d 100644 --- a/packages/web/src/lib/extensions/searchResultHighlightExtension.ts +++ b/packages/web/src/lib/extensions/searchResultHighlightExtension.ts @@ -33,8 +33,13 @@ const matchHighlighter = StateField.define({ .map((range, index) => { const { from, to } = convertToCodeMirrorRange(range, transaction.newDoc); const mark = index === selectedMatchIndex ? selectedMatchMark : matchMark; - return mark.range(from, to); - }); + if (from < to) { + return mark.range(from, to); + } + + return undefined; + }) + .filter((decoration) => decoration !== undefined); highlights = Decoration.set(decorations) } From f068b5e61b6e1965b46c45851f0b5d86667081e3 Mon Sep 17 00:00:00 2001 From: bkellam Date: Mon, 2 Jun 2025 10:53:49 -0700 Subject: [PATCH 2/4] changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8488bd12..1b30611a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Fixed -- Fixed issue where new oauth providers weren't being display in the login page +- Fixed issue where new oauth providers weren't being display in the login page. [commit](https://github.com/sourcebot-dev/sourcebot/commit/a2e06266dbe5e5ad4c2c3f730c73d64edecedcf7) +- Fixed client side "mark decorations may not be empty" error when viewing certain files. [#325](https://github.com/sourcebot-dev/sourcebot/pull/325) ## [4.0.1] - 2025-05-28 From bacffbcc2c8029759d09df6722fb13c4b3f929b5 Mon Sep 17 00:00:00 2001 From: bkellam Date: Mon, 2 Jun 2025 11:19:55 -0700 Subject: [PATCH 3/4] fix: fix issue with ensureSyntaxTree timing out --- .../components/symbolHoverPopup/symbolHoverTargetsExtension.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/src/ee/features/codeNav/components/symbolHoverPopup/symbolHoverTargetsExtension.ts b/packages/web/src/ee/features/codeNav/components/symbolHoverPopup/symbolHoverTargetsExtension.ts index dff68f285..373274796 100644 --- a/packages/web/src/ee/features/codeNav/components/symbolHoverPopup/symbolHoverTargetsExtension.ts +++ b/packages/web/src/ee/features/codeNav/components/symbolHoverPopup/symbolHoverTargetsExtension.ts @@ -52,7 +52,7 @@ export const symbolHoverTargetsExtension = StateField.define({ // @note: we need to use `ensureSyntaxTree` here (as opposed to `syntaxTree`) // because we want to parse the entire document, not just the text visible in // the current viewport. - const { data: tree } = measureSync(() => ensureSyntaxTree(state, state.doc.length), "ensureSyntaxTree"); + const { data: tree } = measureSync(() => ensureSyntaxTree(state, state.doc.length, Infinity), "ensureSyntaxTree"); const decorations: Range[] = []; // @note: useful for debugging From 79f06f850f70beabb0ff30d13d1d2d0f227e9a33 Mon Sep 17 00:00:00 2001 From: bkellam Date: Mon, 2 Jun 2025 11:21:22 -0700 Subject: [PATCH 4/4] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b30611a0..1e7e54294 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed issue where new oauth providers weren't being display in the login page. [commit](https://github.com/sourcebot-dev/sourcebot/commit/a2e06266dbe5e5ad4c2c3f730c73d64edecedcf7) - Fixed client side "mark decorations may not be empty" error when viewing certain files. [#325](https://github.com/sourcebot-dev/sourcebot/pull/325) +- Fixed issue where the symbol hover popover would not appear for large source files. [#325](https://github.com/sourcebot-dev/sourcebot/pull/325) ## [4.0.1] - 2025-05-28