Feature/intellij editors - #2475

Merged
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors
May 6, 2026
Merged

Feature/intellij editors#2475
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors

Conversation

@Minigamer42

@Minigamer42Minigamer42 commented May 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Added remaining IntelliJ editors for better DX, namely:
    • Aqua
    • CLion (C, C++)
    • DataGrip (SQL)
    • DataSpell (Python, R)
    • GoLand (Go)
    • IntelliJIdea (Java, Kotlin, Scala, Groovy)
    • PhpStorm (PHP)
    • PyCharm (Python)
    • Rider (C#)
    • RubyMine (Ruby)
    • RustRover (Rust)
    • WebStorm (JavaScript, TypeScript)
  • Fixed file name normalization, because openening file links from the chat failed
image

Why

  • Because they were missing

UI Changes

  • editor selector
    image

  • file outside of the project
    image

  • external link renders as expected
    image

  • before and after for file links

imageimage
  • before and after in a longer text
imageimage

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Moderate risk due to new editor IDs affecting editor selection/launch behavior and a behavioral change in how chat file links encode line/column positions, which could impact existing links or integrations.

Overview
Editor support expanded: adds 11 JetBrains IDEs (aqua, clion, datagrip, dataspell, goland, phpstorm, pycharm, rider, rubymine, rustrover, webstorm) to the shared editor contract and wires them into the web editor picker with new SVG icons; server-side tests are extended to validate launch args and Windows editor discovery.

Markdown file-link handling tightened: normalizes markdown link destinations (trims and unwraps <...>), fixes Windows drive-path normalization (e.g. /C:/...), and updates chat rendering/tests so file links use colon-style positions (path:line[:col]) instead of hash anchors (#LxCy) when opening in editors.

Reviewed by Cursor Bugbot for commit a2e9b45. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add support for 11 additional JetBrains editors in the editor picker

  • Adds editor definitions for Aqua, CLion, DataGrip, DataSpell, GoLand, PhpStorm, PyCharm, Rider, RubyMine, RustRover, and WebStorm to editor.ts, each using line-column launch style.
  • Adds corresponding icons in a new JetBrainsIcons.tsx module and wires them into the OpenInPicker.
  • Improves markdown link handling in markdown-links.ts: angle-bracketed hrefs are now unwrapped, Windows drive paths with a leading slash are normalized, and file URI hrefs produce colon-separated line/column positions.
  • Behavioral Change: file link hrefs in chat now use colon-separated positions (e.g. file:1:7) instead of hash anchors (e.g. file#L1C7).

Macroscope summarized a2e9b45.

@coderabbitai

coderabbitaiBot commented May 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ed16d127-1c1b-4c26-a796-c8e18f42294d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: Turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get your free trial and get 200 agent minutes per Slack user (a $50 value).


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels May 2, 2026
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
@macroscopeapp

macroscopeappBot commented May 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

Adds 11 JetBrains IDE options to the existing editor picker by extending arrays and adding SVG icon components. Changes follow established patterns, are well-tested, and don't introduce new workflows or capabilities beyond the existing editor selection feature.

You can customize Macroscope's approvability policy. Learn more.

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 6da216c to 361299eCompareMay 2, 2026 21:56
macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 361299e to d1adf2bCompareMay 2, 2026 22:21
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 22:21

Dismissing prior approval to re-evaluate d1adf2b

macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 23:32

Dismissing prior approval to re-evaluate 8463a85

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 8463a85 to a2e9b45CompareMay 5, 2026 07:46

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

function normalizeMarkdownLinkHrefKey(href: string): string {
return rewriteMarkdownFileUriHref(href.trim()) ?? href.trim();
const normalizedHref = normalizeMarkdownLinkDestination(href);
return rewriteMarkdownFileUriHref(normalizedHref) ?? normalizedHref;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant double normalization in href processing

Low Severity

normalizeMarkdownLinkHrefKey calls normalizeMarkdownLinkDestination(href) and then passes the result to rewriteMarkdownFileUriHref, which internally calls normalizeMarkdownLinkDestination again on the already-normalized value. The normalization is idempotent so this isn't a functional bug, but it's unnecessary redundant work on every link href processed during rendering.

Additional Locations (1)
Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

@juliusmarminge
juliusmarminge enabled auto-merge (squash) May 6, 2026 04:08
@juliusmarminge
juliusmarminge merged commit 166bce0 into pingdotgg:mainMay 6, 2026
10 checks passed
imabdulazeez added a commit to imabdulazeez/t3code that referenced this pull request May 6, 2026
Brings in: server CLI submodule split (pingdotgg#2545), process/trace diagnostics
views (pingdotgg#2532), JetBrains editor support (pingdotgg#2475), MessagesTimeline render
optimizations (pingdotgg#2527, pingdotgg#2498), git/terminal test stabilization (pingdotgg#2540),
keybindings settings editor (pingdotgg#2533), and provider update advisories
(pingdotgg#2312).
Conflict resolutions:
- packages/contracts/src/settings.ts: kept aa's diffFontFamily and
terminalFontFamily alongside upstream's
dismissedProviderUpdateNotificationKeys.
- apps/desktop/src/clientPersistence.test.ts: same shape, fixture mirrors
the schema.
- apps/web/src/components/settings/SettingsPanels.tsx: kept both import
groups (FontPicker from aa, ProviderUpdateLaunchNotification.logic from
upstream).
- apps/web/src/localApi.test.ts: extended both fixtures with
diffFontFamily and terminalFontFamily so the merged ClientSettings
shape typechecks against the strict desktop bridge contract.
Pre-existing aa typecheck issues fixed at the root so the merge commit
is green:
- apps/desktop/src/electron.d.ts: declaration-merge "local-fonts" into
Electron's Session.setPermissionRequestHandler permission union (the
Electron 40 typings omit it even though the runtime supports it).
- apps/web/src/components/DiffPanel.tsx: conditionally spread style on
Virtualizer instead of passing undefined, satisfying
exactOptionalPropertyTypes.
ronak-guliani pushed a commit to ronak-guliani/t3code that referenced this pull request May 27, 2026
NeilTheFisher pushed a commit to NeilTheFisher/t3code that referenced this pull request Aug 18, 2026
darjss pushed a commit to darjss/t3code that referenced this pull request Aug 26, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Minigamer42@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Feature/intellij editors - #2475

Merged
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors
May 6, 2026
Merged

Feature/intellij editors#2475
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors

Conversation

@Minigamer42

@Minigamer42Minigamer42 commented May 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Added remaining IntelliJ editors for better DX, namely:
    • Aqua
    • CLion (C, C++)
    • DataGrip (SQL)
    • DataSpell (Python, R)
    • GoLand (Go)
    • IntelliJIdea (Java, Kotlin, Scala, Groovy)
    • PhpStorm (PHP)
    • PyCharm (Python)
    • Rider (C#)
    • RubyMine (Ruby)
    • RustRover (Rust)
    • WebStorm (JavaScript, TypeScript)
  • Fixed file name normalization, because openening file links from the chat failed
image

Why

  • Because they were missing

UI Changes

  • editor selector
    image

  • file outside of the project
    image

  • external link renders as expected
    image

  • before and after for file links

imageimage
  • before and after in a longer text
imageimage

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Moderate risk due to new editor IDs affecting editor selection/launch behavior and a behavioral change in how chat file links encode line/column positions, which could impact existing links or integrations.

Overview
Editor support expanded: adds 11 JetBrains IDEs (aqua, clion, datagrip, dataspell, goland, phpstorm, pycharm, rider, rubymine, rustrover, webstorm) to the shared editor contract and wires them into the web editor picker with new SVG icons; server-side tests are extended to validate launch args and Windows editor discovery.

Markdown file-link handling tightened: normalizes markdown link destinations (trims and unwraps <...>), fixes Windows drive-path normalization (e.g. /C:/...), and updates chat rendering/tests so file links use colon-style positions (path:line[:col]) instead of hash anchors (#LxCy) when opening in editors.

Reviewed by Cursor Bugbot for commit a2e9b45. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add support for 11 additional JetBrains editors in the editor picker

  • Adds editor definitions for Aqua, CLion, DataGrip, DataSpell, GoLand, PhpStorm, PyCharm, Rider, RubyMine, RustRover, and WebStorm to editor.ts, each using line-column launch style.
  • Adds corresponding icons in a new JetBrainsIcons.tsx module and wires them into the OpenInPicker.
  • Improves markdown link handling in markdown-links.ts: angle-bracketed hrefs are now unwrapped, Windows drive paths with a leading slash are normalized, and file URI hrefs produce colon-separated line/column positions.
  • Behavioral Change: file link hrefs in chat now use colon-separated positions (e.g. file:1:7) instead of hash anchors (e.g. file#L1C7).

Macroscope summarized a2e9b45.

@coderabbitai

coderabbitaiBot commented May 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ed16d127-1c1b-4c26-a796-c8e18f42294d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: Turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get your free trial and get 200 agent minutes per Slack user (a $50 value).


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels May 2, 2026
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
@macroscopeapp

macroscopeappBot commented May 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

Adds 11 JetBrains IDE options to the existing editor picker by extending arrays and adding SVG icon components. Changes follow established patterns, are well-tested, and don't introduce new workflows or capabilities beyond the existing editor selection feature.

You can customize Macroscope's approvability policy. Learn more.

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 6da216c to 361299eCompareMay 2, 2026 21:56
macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 361299e to d1adf2bCompareMay 2, 2026 22:21
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 22:21

Dismissing prior approval to re-evaluate d1adf2b

macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 23:32

Dismissing prior approval to re-evaluate 8463a85

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 8463a85 to a2e9b45CompareMay 5, 2026 07:46

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

function normalizeMarkdownLinkHrefKey(href: string): string {
return rewriteMarkdownFileUriHref(href.trim()) ?? href.trim();
const normalizedHref = normalizeMarkdownLinkDestination(href);
return rewriteMarkdownFileUriHref(normalizedHref) ?? normalizedHref;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant double normalization in href processing

Low Severity

normalizeMarkdownLinkHrefKey calls normalizeMarkdownLinkDestination(href) and then passes the result to rewriteMarkdownFileUriHref, which internally calls normalizeMarkdownLinkDestination again on the already-normalized value. The normalization is idempotent so this isn't a functional bug, but it's unnecessary redundant work on every link href processed during rendering.

Additional Locations (1)
Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

@juliusmarminge
juliusmarminge enabled auto-merge (squash) May 6, 2026 04:08
@juliusmarminge
juliusmarminge merged commit 166bce0 into pingdotgg:mainMay 6, 2026
10 checks passed
imabdulazeez added a commit to imabdulazeez/t3code that referenced this pull request May 6, 2026
Brings in: server CLI submodule split (pingdotgg#2545), process/trace diagnostics
views (pingdotgg#2532), JetBrains editor support (pingdotgg#2475), MessagesTimeline render
optimizations (pingdotgg#2527, pingdotgg#2498), git/terminal test stabilization (pingdotgg#2540),
keybindings settings editor (pingdotgg#2533), and provider update advisories
(pingdotgg#2312).
Conflict resolutions:
- packages/contracts/src/settings.ts: kept aa's diffFontFamily and
terminalFontFamily alongside upstream's
dismissedProviderUpdateNotificationKeys.
- apps/desktop/src/clientPersistence.test.ts: same shape, fixture mirrors
the schema.
- apps/web/src/components/settings/SettingsPanels.tsx: kept both import
groups (FontPicker from aa, ProviderUpdateLaunchNotification.logic from
upstream).
- apps/web/src/localApi.test.ts: extended both fixtures with
diffFontFamily and terminalFontFamily so the merged ClientSettings
shape typechecks against the strict desktop bridge contract.
Pre-existing aa typecheck issues fixed at the root so the merge commit
is green:
- apps/desktop/src/electron.d.ts: declaration-merge "local-fonts" into
Electron's Session.setPermissionRequestHandler permission union (the
Electron 40 typings omit it even though the runtime supports it).
- apps/web/src/components/DiffPanel.tsx: conditionally spread style on
Virtualizer instead of passing undefined, satisfying
exactOptionalPropertyTypes.
ronak-guliani pushed a commit to ronak-guliani/t3code that referenced this pull request May 27, 2026
NeilTheFisher pushed a commit to NeilTheFisher/t3code that referenced this pull request Aug 18, 2026
darjss pushed a commit to darjss/t3code that referenced this pull request Aug 26, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Minigamer42@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feature/intellij editors - #2475

Merged
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors
May 6, 2026
Merged

Feature/intellij editors#2475
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors

Conversation

@Minigamer42

@Minigamer42Minigamer42 commented May 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Added remaining IntelliJ editors for better DX, namely:
    • Aqua
    • CLion (C, C++)
    • DataGrip (SQL)
    • DataSpell (Python, R)
    • GoLand (Go)
    • IntelliJIdea (Java, Kotlin, Scala, Groovy)
    • PhpStorm (PHP)
    • PyCharm (Python)
    • Rider (C#)
    • RubyMine (Ruby)
    • RustRover (Rust)
    • WebStorm (JavaScript, TypeScript)
  • Fixed file name normalization, because openening file links from the chat failed
image

Why

  • Because they were missing

UI Changes

  • editor selector
    image

  • file outside of the project
    image

  • external link renders as expected
    image

  • before and after for file links

imageimage
  • before and after in a longer text
imageimage

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Moderate risk due to new editor IDs affecting editor selection/launch behavior and a behavioral change in how chat file links encode line/column positions, which could impact existing links or integrations.

Overview
Editor support expanded: adds 11 JetBrains IDEs (aqua, clion, datagrip, dataspell, goland, phpstorm, pycharm, rider, rubymine, rustrover, webstorm) to the shared editor contract and wires them into the web editor picker with new SVG icons; server-side tests are extended to validate launch args and Windows editor discovery.

Markdown file-link handling tightened: normalizes markdown link destinations (trims and unwraps <...>), fixes Windows drive-path normalization (e.g. /C:/...), and updates chat rendering/tests so file links use colon-style positions (path:line[:col]) instead of hash anchors (#LxCy) when opening in editors.

Reviewed by Cursor Bugbot for commit a2e9b45. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add support for 11 additional JetBrains editors in the editor picker

  • Adds editor definitions for Aqua, CLion, DataGrip, DataSpell, GoLand, PhpStorm, PyCharm, Rider, RubyMine, RustRover, and WebStorm to editor.ts, each using line-column launch style.
  • Adds corresponding icons in a new JetBrainsIcons.tsx module and wires them into the OpenInPicker.
  • Improves markdown link handling in markdown-links.ts: angle-bracketed hrefs are now unwrapped, Windows drive paths with a leading slash are normalized, and file URI hrefs produce colon-separated line/column positions.
  • Behavioral Change: file link hrefs in chat now use colon-separated positions (e.g. file:1:7) instead of hash anchors (e.g. file#L1C7).

Macroscope summarized a2e9b45.

@coderabbitai

coderabbitaiBot commented May 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ed16d127-1c1b-4c26-a796-c8e18f42294d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: Turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get your free trial and get 200 agent minutes per Slack user (a $50 value).


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels May 2, 2026
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
@macroscopeapp

macroscopeappBot commented May 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

Adds 11 JetBrains IDE options to the existing editor picker by extending arrays and adding SVG icon components. Changes follow established patterns, are well-tested, and don't introduce new workflows or capabilities beyond the existing editor selection feature.

You can customize Macroscope's approvability policy. Learn more.

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 6da216c to 361299eCompareMay 2, 2026 21:56
macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 361299e to d1adf2bCompareMay 2, 2026 22:21
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 22:21

Dismissing prior approval to re-evaluate d1adf2b

macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 23:32

Dismissing prior approval to re-evaluate 8463a85

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 8463a85 to a2e9b45CompareMay 5, 2026 07:46

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

function normalizeMarkdownLinkHrefKey(href: string): string {
return rewriteMarkdownFileUriHref(href.trim()) ?? href.trim();
const normalizedHref = normalizeMarkdownLinkDestination(href);
return rewriteMarkdownFileUriHref(normalizedHref) ?? normalizedHref;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant double normalization in href processing

Low Severity

normalizeMarkdownLinkHrefKey calls normalizeMarkdownLinkDestination(href) and then passes the result to rewriteMarkdownFileUriHref, which internally calls normalizeMarkdownLinkDestination again on the already-normalized value. The normalization is idempotent so this isn't a functional bug, but it's unnecessary redundant work on every link href processed during rendering.

Additional Locations (1)
Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

@juliusmarminge
juliusmarminge enabled auto-merge (squash) May 6, 2026 04:08
@juliusmarminge
juliusmarminge merged commit 166bce0 into pingdotgg:mainMay 6, 2026
10 checks passed
imabdulazeez added a commit to imabdulazeez/t3code that referenced this pull request May 6, 2026
Brings in: server CLI submodule split (pingdotgg#2545), process/trace diagnostics
views (pingdotgg#2532), JetBrains editor support (pingdotgg#2475), MessagesTimeline render
optimizations (pingdotgg#2527, pingdotgg#2498), git/terminal test stabilization (pingdotgg#2540),
keybindings settings editor (pingdotgg#2533), and provider update advisories
(pingdotgg#2312).
Conflict resolutions:
- packages/contracts/src/settings.ts: kept aa's diffFontFamily and
terminalFontFamily alongside upstream's
dismissedProviderUpdateNotificationKeys.
- apps/desktop/src/clientPersistence.test.ts: same shape, fixture mirrors
the schema.
- apps/web/src/components/settings/SettingsPanels.tsx: kept both import
groups (FontPicker from aa, ProviderUpdateLaunchNotification.logic from
upstream).
- apps/web/src/localApi.test.ts: extended both fixtures with
diffFontFamily and terminalFontFamily so the merged ClientSettings
shape typechecks against the strict desktop bridge contract.
Pre-existing aa typecheck issues fixed at the root so the merge commit
is green:
- apps/desktop/src/electron.d.ts: declaration-merge "local-fonts" into
Electron's Session.setPermissionRequestHandler permission union (the
Electron 40 typings omit it even though the runtime supports it).
- apps/web/src/components/DiffPanel.tsx: conditionally spread style on
Virtualizer instead of passing undefined, satisfying
exactOptionalPropertyTypes.
ronak-guliani pushed a commit to ronak-guliani/t3code that referenced this pull request May 27, 2026
NeilTheFisher pushed a commit to NeilTheFisher/t3code that referenced this pull request Aug 18, 2026
darjss pushed a commit to darjss/t3code that referenced this pull request Aug 26, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Minigamer42@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feature/intellij editors - #2475

Merged
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors
May 6, 2026
Merged

Feature/intellij editors#2475
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors

Conversation

@Minigamer42

@Minigamer42Minigamer42 commented May 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Added remaining IntelliJ editors for better DX, namely:
    • Aqua
    • CLion (C, C++)
    • DataGrip (SQL)
    • DataSpell (Python, R)
    • GoLand (Go)
    • IntelliJIdea (Java, Kotlin, Scala, Groovy)
    • PhpStorm (PHP)
    • PyCharm (Python)
    • Rider (C#)
    • RubyMine (Ruby)
    • RustRover (Rust)
    • WebStorm (JavaScript, TypeScript)
  • Fixed file name normalization, because openening file links from the chat failed
image

Why

  • Because they were missing

UI Changes

  • editor selector
    image

  • file outside of the project
    image

  • external link renders as expected
    image

  • before and after for file links

imageimage
  • before and after in a longer text
imageimage

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Moderate risk due to new editor IDs affecting editor selection/launch behavior and a behavioral change in how chat file links encode line/column positions, which could impact existing links or integrations.

Overview
Editor support expanded: adds 11 JetBrains IDEs (aqua, clion, datagrip, dataspell, goland, phpstorm, pycharm, rider, rubymine, rustrover, webstorm) to the shared editor contract and wires them into the web editor picker with new SVG icons; server-side tests are extended to validate launch args and Windows editor discovery.

Markdown file-link handling tightened: normalizes markdown link destinations (trims and unwraps <...>), fixes Windows drive-path normalization (e.g. /C:/...), and updates chat rendering/tests so file links use colon-style positions (path:line[:col]) instead of hash anchors (#LxCy) when opening in editors.

Reviewed by Cursor Bugbot for commit a2e9b45. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add support for 11 additional JetBrains editors in the editor picker

  • Adds editor definitions for Aqua, CLion, DataGrip, DataSpell, GoLand, PhpStorm, PyCharm, Rider, RubyMine, RustRover, and WebStorm to editor.ts, each using line-column launch style.
  • Adds corresponding icons in a new JetBrainsIcons.tsx module and wires them into the OpenInPicker.
  • Improves markdown link handling in markdown-links.ts: angle-bracketed hrefs are now unwrapped, Windows drive paths with a leading slash are normalized, and file URI hrefs produce colon-separated line/column positions.
  • Behavioral Change: file link hrefs in chat now use colon-separated positions (e.g. file:1:7) instead of hash anchors (e.g. file#L1C7).

Macroscope summarized a2e9b45.

@coderabbitai

coderabbitaiBot commented May 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ed16d127-1c1b-4c26-a796-c8e18f42294d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: Turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get your free trial and get 200 agent minutes per Slack user (a $50 value).


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels May 2, 2026
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
@macroscopeapp

macroscopeappBot commented May 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

Adds 11 JetBrains IDE options to the existing editor picker by extending arrays and adding SVG icon components. Changes follow established patterns, are well-tested, and don't introduce new workflows or capabilities beyond the existing editor selection feature.

You can customize Macroscope's approvability policy. Learn more.

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 6da216c to 361299eCompareMay 2, 2026 21:56
macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 361299e to d1adf2bCompareMay 2, 2026 22:21
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 22:21

Dismissing prior approval to re-evaluate d1adf2b

macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 23:32

Dismissing prior approval to re-evaluate 8463a85

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 8463a85 to a2e9b45CompareMay 5, 2026 07:46

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

function normalizeMarkdownLinkHrefKey(href: string): string {
return rewriteMarkdownFileUriHref(href.trim()) ?? href.trim();
const normalizedHref = normalizeMarkdownLinkDestination(href);
return rewriteMarkdownFileUriHref(normalizedHref) ?? normalizedHref;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant double normalization in href processing

Low Severity

normalizeMarkdownLinkHrefKey calls normalizeMarkdownLinkDestination(href) and then passes the result to rewriteMarkdownFileUriHref, which internally calls normalizeMarkdownLinkDestination again on the already-normalized value. The normalization is idempotent so this isn't a functional bug, but it's unnecessary redundant work on every link href processed during rendering.

Additional Locations (1)
Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

@juliusmarminge
juliusmarminge enabled auto-merge (squash) May 6, 2026 04:08
@juliusmarminge
juliusmarminge merged commit 166bce0 into pingdotgg:mainMay 6, 2026
10 checks passed
imabdulazeez added a commit to imabdulazeez/t3code that referenced this pull request May 6, 2026
Brings in: server CLI submodule split (pingdotgg#2545), process/trace diagnostics
views (pingdotgg#2532), JetBrains editor support (pingdotgg#2475), MessagesTimeline render
optimizations (pingdotgg#2527, pingdotgg#2498), git/terminal test stabilization (pingdotgg#2540),
keybindings settings editor (pingdotgg#2533), and provider update advisories
(pingdotgg#2312).
Conflict resolutions:
- packages/contracts/src/settings.ts: kept aa's diffFontFamily and
terminalFontFamily alongside upstream's
dismissedProviderUpdateNotificationKeys.
- apps/desktop/src/clientPersistence.test.ts: same shape, fixture mirrors
the schema.
- apps/web/src/components/settings/SettingsPanels.tsx: kept both import
groups (FontPicker from aa, ProviderUpdateLaunchNotification.logic from
upstream).
- apps/web/src/localApi.test.ts: extended both fixtures with
diffFontFamily and terminalFontFamily so the merged ClientSettings
shape typechecks against the strict desktop bridge contract.
Pre-existing aa typecheck issues fixed at the root so the merge commit
is green:
- apps/desktop/src/electron.d.ts: declaration-merge "local-fonts" into
Electron's Session.setPermissionRequestHandler permission union (the
Electron 40 typings omit it even though the runtime supports it).
- apps/web/src/components/DiffPanel.tsx: conditionally spread style on
Virtualizer instead of passing undefined, satisfying
exactOptionalPropertyTypes.
ronak-guliani pushed a commit to ronak-guliani/t3code that referenced this pull request May 27, 2026
NeilTheFisher pushed a commit to NeilTheFisher/t3code that referenced this pull request Aug 18, 2026
darjss pushed a commit to darjss/t3code that referenced this pull request Aug 26, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Minigamer42@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Feature/intellij editors - #2475

Merged
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors
May 6, 2026
Merged

Feature/intellij editors#2475
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors

Conversation

@Minigamer42

@Minigamer42Minigamer42 commented May 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Added remaining IntelliJ editors for better DX, namely:
    • Aqua
    • CLion (C, C++)
    • DataGrip (SQL)
    • DataSpell (Python, R)
    • GoLand (Go)
    • IntelliJIdea (Java, Kotlin, Scala, Groovy)
    • PhpStorm (PHP)
    • PyCharm (Python)
    • Rider (C#)
    • RubyMine (Ruby)
    • RustRover (Rust)
    • WebStorm (JavaScript, TypeScript)
  • Fixed file name normalization, because openening file links from the chat failed
image

Why

  • Because they were missing

UI Changes

  • editor selector
    image

  • file outside of the project
    image

  • external link renders as expected
    image

  • before and after for file links

imageimage
  • before and after in a longer text
imageimage

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Moderate risk due to new editor IDs affecting editor selection/launch behavior and a behavioral change in how chat file links encode line/column positions, which could impact existing links or integrations.

Overview
Editor support expanded: adds 11 JetBrains IDEs (aqua, clion, datagrip, dataspell, goland, phpstorm, pycharm, rider, rubymine, rustrover, webstorm) to the shared editor contract and wires them into the web editor picker with new SVG icons; server-side tests are extended to validate launch args and Windows editor discovery.

Markdown file-link handling tightened: normalizes markdown link destinations (trims and unwraps <...>), fixes Windows drive-path normalization (e.g. /C:/...), and updates chat rendering/tests so file links use colon-style positions (path:line[:col]) instead of hash anchors (#LxCy) when opening in editors.

Reviewed by Cursor Bugbot for commit a2e9b45. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add support for 11 additional JetBrains editors in the editor picker

  • Adds editor definitions for Aqua, CLion, DataGrip, DataSpell, GoLand, PhpStorm, PyCharm, Rider, RubyMine, RustRover, and WebStorm to editor.ts, each using line-column launch style.
  • Adds corresponding icons in a new JetBrainsIcons.tsx module and wires them into the OpenInPicker.
  • Improves markdown link handling in markdown-links.ts: angle-bracketed hrefs are now unwrapped, Windows drive paths with a leading slash are normalized, and file URI hrefs produce colon-separated line/column positions.
  • Behavioral Change: file link hrefs in chat now use colon-separated positions (e.g. file:1:7) instead of hash anchors (e.g. file#L1C7).

Macroscope summarized a2e9b45.

@coderabbitai

coderabbitaiBot commented May 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ed16d127-1c1b-4c26-a796-c8e18f42294d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: Turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get your free trial and get 200 agent minutes per Slack user (a $50 value).


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels May 2, 2026
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
@macroscopeapp

macroscopeappBot commented May 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

Adds 11 JetBrains IDE options to the existing editor picker by extending arrays and adding SVG icon components. Changes follow established patterns, are well-tested, and don't introduce new workflows or capabilities beyond the existing editor selection feature.

You can customize Macroscope's approvability policy. Learn more.

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 6da216c to 361299eCompareMay 2, 2026 21:56
macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 361299e to d1adf2bCompareMay 2, 2026 22:21
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 22:21

Dismissing prior approval to re-evaluate d1adf2b

macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 23:32

Dismissing prior approval to re-evaluate 8463a85

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 8463a85 to a2e9b45CompareMay 5, 2026 07:46

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

function normalizeMarkdownLinkHrefKey(href: string): string {
return rewriteMarkdownFileUriHref(href.trim()) ?? href.trim();
const normalizedHref = normalizeMarkdownLinkDestination(href);
return rewriteMarkdownFileUriHref(normalizedHref) ?? normalizedHref;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant double normalization in href processing

Low Severity

normalizeMarkdownLinkHrefKey calls normalizeMarkdownLinkDestination(href) and then passes the result to rewriteMarkdownFileUriHref, which internally calls normalizeMarkdownLinkDestination again on the already-normalized value. The normalization is idempotent so this isn't a functional bug, but it's unnecessary redundant work on every link href processed during rendering.

Additional Locations (1)
Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

@juliusmarminge
juliusmarminge enabled auto-merge (squash) May 6, 2026 04:08
@juliusmarminge
juliusmarminge merged commit 166bce0 into pingdotgg:mainMay 6, 2026
10 checks passed
imabdulazeez added a commit to imabdulazeez/t3code that referenced this pull request May 6, 2026
Brings in: server CLI submodule split (pingdotgg#2545), process/trace diagnostics
views (pingdotgg#2532), JetBrains editor support (pingdotgg#2475), MessagesTimeline render
optimizations (pingdotgg#2527, pingdotgg#2498), git/terminal test stabilization (pingdotgg#2540),
keybindings settings editor (pingdotgg#2533), and provider update advisories
(pingdotgg#2312).
Conflict resolutions:
- packages/contracts/src/settings.ts: kept aa's diffFontFamily and
terminalFontFamily alongside upstream's
dismissedProviderUpdateNotificationKeys.
- apps/desktop/src/clientPersistence.test.ts: same shape, fixture mirrors
the schema.
- apps/web/src/components/settings/SettingsPanels.tsx: kept both import
groups (FontPicker from aa, ProviderUpdateLaunchNotification.logic from
upstream).
- apps/web/src/localApi.test.ts: extended both fixtures with
diffFontFamily and terminalFontFamily so the merged ClientSettings
shape typechecks against the strict desktop bridge contract.
Pre-existing aa typecheck issues fixed at the root so the merge commit
is green:
- apps/desktop/src/electron.d.ts: declaration-merge "local-fonts" into
Electron's Session.setPermissionRequestHandler permission union (the
Electron 40 typings omit it even though the runtime supports it).
- apps/web/src/components/DiffPanel.tsx: conditionally spread style on
Virtualizer instead of passing undefined, satisfying
exactOptionalPropertyTypes.
ronak-guliani pushed a commit to ronak-guliani/t3code that referenced this pull request May 27, 2026
NeilTheFisher pushed a commit to NeilTheFisher/t3code that referenced this pull request Aug 18, 2026
darjss pushed a commit to darjss/t3code that referenced this pull request Aug 26, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Minigamer42@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feature/intellij editors - #2475

Merged
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors
May 6, 2026
Merged

Feature/intellij editors#2475
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors

Conversation

@Minigamer42

@Minigamer42Minigamer42 commented May 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Added remaining IntelliJ editors for better DX, namely:
    • Aqua
    • CLion (C, C++)
    • DataGrip (SQL)
    • DataSpell (Python, R)
    • GoLand (Go)
    • IntelliJIdea (Java, Kotlin, Scala, Groovy)
    • PhpStorm (PHP)
    • PyCharm (Python)
    • Rider (C#)
    • RubyMine (Ruby)
    • RustRover (Rust)
    • WebStorm (JavaScript, TypeScript)
  • Fixed file name normalization, because openening file links from the chat failed
image

Why

  • Because they were missing

UI Changes

  • editor selector
    image

  • file outside of the project
    image

  • external link renders as expected
    image

  • before and after for file links

imageimage
  • before and after in a longer text
imageimage

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Moderate risk due to new editor IDs affecting editor selection/launch behavior and a behavioral change in how chat file links encode line/column positions, which could impact existing links or integrations.

Overview
Editor support expanded: adds 11 JetBrains IDEs (aqua, clion, datagrip, dataspell, goland, phpstorm, pycharm, rider, rubymine, rustrover, webstorm) to the shared editor contract and wires them into the web editor picker with new SVG icons; server-side tests are extended to validate launch args and Windows editor discovery.

Markdown file-link handling tightened: normalizes markdown link destinations (trims and unwraps <...>), fixes Windows drive-path normalization (e.g. /C:/...), and updates chat rendering/tests so file links use colon-style positions (path:line[:col]) instead of hash anchors (#LxCy) when opening in editors.

Reviewed by Cursor Bugbot for commit a2e9b45. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add support for 11 additional JetBrains editors in the editor picker

  • Adds editor definitions for Aqua, CLion, DataGrip, DataSpell, GoLand, PhpStorm, PyCharm, Rider, RubyMine, RustRover, and WebStorm to editor.ts, each using line-column launch style.
  • Adds corresponding icons in a new JetBrainsIcons.tsx module and wires them into the OpenInPicker.
  • Improves markdown link handling in markdown-links.ts: angle-bracketed hrefs are now unwrapped, Windows drive paths with a leading slash are normalized, and file URI hrefs produce colon-separated line/column positions.
  • Behavioral Change: file link hrefs in chat now use colon-separated positions (e.g. file:1:7) instead of hash anchors (e.g. file#L1C7).

Macroscope summarized a2e9b45.

@coderabbitai

coderabbitaiBot commented May 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ed16d127-1c1b-4c26-a796-c8e18f42294d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: Turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get your free trial and get 200 agent minutes per Slack user (a $50 value).


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels May 2, 2026
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
@macroscopeapp

macroscopeappBot commented May 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

Adds 11 JetBrains IDE options to the existing editor picker by extending arrays and adding SVG icon components. Changes follow established patterns, are well-tested, and don't introduce new workflows or capabilities beyond the existing editor selection feature.

You can customize Macroscope's approvability policy. Learn more.

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 6da216c to 361299eCompareMay 2, 2026 21:56
macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 361299e to d1adf2bCompareMay 2, 2026 22:21
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 22:21

Dismissing prior approval to re-evaluate d1adf2b

macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 23:32

Dismissing prior approval to re-evaluate 8463a85

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 8463a85 to a2e9b45CompareMay 5, 2026 07:46

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

function normalizeMarkdownLinkHrefKey(href: string): string {
return rewriteMarkdownFileUriHref(href.trim()) ?? href.trim();
const normalizedHref = normalizeMarkdownLinkDestination(href);
return rewriteMarkdownFileUriHref(normalizedHref) ?? normalizedHref;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant double normalization in href processing

Low Severity

normalizeMarkdownLinkHrefKey calls normalizeMarkdownLinkDestination(href) and then passes the result to rewriteMarkdownFileUriHref, which internally calls normalizeMarkdownLinkDestination again on the already-normalized value. The normalization is idempotent so this isn't a functional bug, but it's unnecessary redundant work on every link href processed during rendering.

Additional Locations (1)
Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

@juliusmarminge
juliusmarminge enabled auto-merge (squash) May 6, 2026 04:08
@juliusmarminge
juliusmarminge merged commit 166bce0 into pingdotgg:mainMay 6, 2026
10 checks passed
imabdulazeez added a commit to imabdulazeez/t3code that referenced this pull request May 6, 2026
Brings in: server CLI submodule split (pingdotgg#2545), process/trace diagnostics
views (pingdotgg#2532), JetBrains editor support (pingdotgg#2475), MessagesTimeline render
optimizations (pingdotgg#2527, pingdotgg#2498), git/terminal test stabilization (pingdotgg#2540),
keybindings settings editor (pingdotgg#2533), and provider update advisories
(pingdotgg#2312).
Conflict resolutions:
- packages/contracts/src/settings.ts: kept aa's diffFontFamily and
terminalFontFamily alongside upstream's
dismissedProviderUpdateNotificationKeys.
- apps/desktop/src/clientPersistence.test.ts: same shape, fixture mirrors
the schema.
- apps/web/src/components/settings/SettingsPanels.tsx: kept both import
groups (FontPicker from aa, ProviderUpdateLaunchNotification.logic from
upstream).
- apps/web/src/localApi.test.ts: extended both fixtures with
diffFontFamily and terminalFontFamily so the merged ClientSettings
shape typechecks against the strict desktop bridge contract.
Pre-existing aa typecheck issues fixed at the root so the merge commit
is green:
- apps/desktop/src/electron.d.ts: declaration-merge "local-fonts" into
Electron's Session.setPermissionRequestHandler permission union (the
Electron 40 typings omit it even though the runtime supports it).
- apps/web/src/components/DiffPanel.tsx: conditionally spread style on
Virtualizer instead of passing undefined, satisfying
exactOptionalPropertyTypes.
ronak-guliani pushed a commit to ronak-guliani/t3code that referenced this pull request May 27, 2026
NeilTheFisher pushed a commit to NeilTheFisher/t3code that referenced this pull request Aug 18, 2026
darjss pushed a commit to darjss/t3code that referenced this pull request Aug 26, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Minigamer42@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feature/intellij editors - #2475

Merged
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors
May 6, 2026
Merged

Feature/intellij editors#2475
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors

Conversation

@Minigamer42

@Minigamer42Minigamer42 commented May 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Added remaining IntelliJ editors for better DX, namely:
    • Aqua
    • CLion (C, C++)
    • DataGrip (SQL)
    • DataSpell (Python, R)
    • GoLand (Go)
    • IntelliJIdea (Java, Kotlin, Scala, Groovy)
    • PhpStorm (PHP)
    • PyCharm (Python)
    • Rider (C#)
    • RubyMine (Ruby)
    • RustRover (Rust)
    • WebStorm (JavaScript, TypeScript)
  • Fixed file name normalization, because openening file links from the chat failed
image

Why

  • Because they were missing

UI Changes

  • editor selector
    image

  • file outside of the project
    image

  • external link renders as expected
    image

  • before and after for file links

imageimage
  • before and after in a longer text
imageimage

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Moderate risk due to new editor IDs affecting editor selection/launch behavior and a behavioral change in how chat file links encode line/column positions, which could impact existing links or integrations.

Overview
Editor support expanded: adds 11 JetBrains IDEs (aqua, clion, datagrip, dataspell, goland, phpstorm, pycharm, rider, rubymine, rustrover, webstorm) to the shared editor contract and wires them into the web editor picker with new SVG icons; server-side tests are extended to validate launch args and Windows editor discovery.

Markdown file-link handling tightened: normalizes markdown link destinations (trims and unwraps <...>), fixes Windows drive-path normalization (e.g. /C:/...), and updates chat rendering/tests so file links use colon-style positions (path:line[:col]) instead of hash anchors (#LxCy) when opening in editors.

Reviewed by Cursor Bugbot for commit a2e9b45. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add support for 11 additional JetBrains editors in the editor picker

  • Adds editor definitions for Aqua, CLion, DataGrip, DataSpell, GoLand, PhpStorm, PyCharm, Rider, RubyMine, RustRover, and WebStorm to editor.ts, each using line-column launch style.
  • Adds corresponding icons in a new JetBrainsIcons.tsx module and wires them into the OpenInPicker.
  • Improves markdown link handling in markdown-links.ts: angle-bracketed hrefs are now unwrapped, Windows drive paths with a leading slash are normalized, and file URI hrefs produce colon-separated line/column positions.
  • Behavioral Change: file link hrefs in chat now use colon-separated positions (e.g. file:1:7) instead of hash anchors (e.g. file#L1C7).

Macroscope summarized a2e9b45.

@coderabbitai

coderabbitaiBot commented May 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ed16d127-1c1b-4c26-a796-c8e18f42294d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: Turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get your free trial and get 200 agent minutes per Slack user (a $50 value).


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels May 2, 2026
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
@macroscopeapp

macroscopeappBot commented May 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

Adds 11 JetBrains IDE options to the existing editor picker by extending arrays and adding SVG icon components. Changes follow established patterns, are well-tested, and don't introduce new workflows or capabilities beyond the existing editor selection feature.

You can customize Macroscope's approvability policy. Learn more.

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 6da216c to 361299eCompareMay 2, 2026 21:56
macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 361299e to d1adf2bCompareMay 2, 2026 22:21
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 22:21

Dismissing prior approval to re-evaluate d1adf2b

macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 23:32

Dismissing prior approval to re-evaluate 8463a85

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 8463a85 to a2e9b45CompareMay 5, 2026 07:46

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

function normalizeMarkdownLinkHrefKey(href: string): string {
return rewriteMarkdownFileUriHref(href.trim()) ?? href.trim();
const normalizedHref = normalizeMarkdownLinkDestination(href);
return rewriteMarkdownFileUriHref(normalizedHref) ?? normalizedHref;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant double normalization in href processing

Low Severity

normalizeMarkdownLinkHrefKey calls normalizeMarkdownLinkDestination(href) and then passes the result to rewriteMarkdownFileUriHref, which internally calls normalizeMarkdownLinkDestination again on the already-normalized value. The normalization is idempotent so this isn't a functional bug, but it's unnecessary redundant work on every link href processed during rendering.

Additional Locations (1)
Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

@juliusmarminge
juliusmarminge enabled auto-merge (squash) May 6, 2026 04:08
@juliusmarminge
juliusmarminge merged commit 166bce0 into pingdotgg:mainMay 6, 2026
10 checks passed
imabdulazeez added a commit to imabdulazeez/t3code that referenced this pull request May 6, 2026
Brings in: server CLI submodule split (pingdotgg#2545), process/trace diagnostics
views (pingdotgg#2532), JetBrains editor support (pingdotgg#2475), MessagesTimeline render
optimizations (pingdotgg#2527, pingdotgg#2498), git/terminal test stabilization (pingdotgg#2540),
keybindings settings editor (pingdotgg#2533), and provider update advisories
(pingdotgg#2312).
Conflict resolutions:
- packages/contracts/src/settings.ts: kept aa's diffFontFamily and
terminalFontFamily alongside upstream's
dismissedProviderUpdateNotificationKeys.
- apps/desktop/src/clientPersistence.test.ts: same shape, fixture mirrors
the schema.
- apps/web/src/components/settings/SettingsPanels.tsx: kept both import
groups (FontPicker from aa, ProviderUpdateLaunchNotification.logic from
upstream).
- apps/web/src/localApi.test.ts: extended both fixtures with
diffFontFamily and terminalFontFamily so the merged ClientSettings
shape typechecks against the strict desktop bridge contract.
Pre-existing aa typecheck issues fixed at the root so the merge commit
is green:
- apps/desktop/src/electron.d.ts: declaration-merge "local-fonts" into
Electron's Session.setPermissionRequestHandler permission union (the
Electron 40 typings omit it even though the runtime supports it).
- apps/web/src/components/DiffPanel.tsx: conditionally spread style on
Virtualizer instead of passing undefined, satisfying
exactOptionalPropertyTypes.
ronak-guliani pushed a commit to ronak-guliani/t3code that referenced this pull request May 27, 2026
NeilTheFisher pushed a commit to NeilTheFisher/t3code that referenced this pull request Aug 18, 2026
darjss pushed a commit to darjss/t3code that referenced this pull request Aug 26, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Minigamer42@juliusmarminge
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Feature/intellij editors - #2475

Merged
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors
May 6, 2026
Merged

Feature/intellij editors#2475
juliusmarminge merged 3 commits into
pingdotgg:mainfrom
Minigamer42:feature/intellij-editors

Conversation

@Minigamer42

@Minigamer42Minigamer42 commented May 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Added remaining IntelliJ editors for better DX, namely:
    • Aqua
    • CLion (C, C++)
    • DataGrip (SQL)
    • DataSpell (Python, R)
    • GoLand (Go)
    • IntelliJIdea (Java, Kotlin, Scala, Groovy)
    • PhpStorm (PHP)
    • PyCharm (Python)
    • Rider (C#)
    • RubyMine (Ruby)
    • RustRover (Rust)
    • WebStorm (JavaScript, TypeScript)
  • Fixed file name normalization, because openening file links from the chat failed
image

Why

  • Because they were missing

UI Changes

  • editor selector
    image

  • file outside of the project
    image

  • external link renders as expected
    image

  • before and after for file links

imageimage
  • before and after in a longer text
imageimage

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Moderate risk due to new editor IDs affecting editor selection/launch behavior and a behavioral change in how chat file links encode line/column positions, which could impact existing links or integrations.

Overview
Editor support expanded: adds 11 JetBrains IDEs (aqua, clion, datagrip, dataspell, goland, phpstorm, pycharm, rider, rubymine, rustrover, webstorm) to the shared editor contract and wires them into the web editor picker with new SVG icons; server-side tests are extended to validate launch args and Windows editor discovery.

Markdown file-link handling tightened: normalizes markdown link destinations (trims and unwraps <...>), fixes Windows drive-path normalization (e.g. /C:/...), and updates chat rendering/tests so file links use colon-style positions (path:line[:col]) instead of hash anchors (#LxCy) when opening in editors.

Reviewed by Cursor Bugbot for commit a2e9b45. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add support for 11 additional JetBrains editors in the editor picker

  • Adds editor definitions for Aqua, CLion, DataGrip, DataSpell, GoLand, PhpStorm, PyCharm, Rider, RubyMine, RustRover, and WebStorm to editor.ts, each using line-column launch style.
  • Adds corresponding icons in a new JetBrainsIcons.tsx module and wires them into the OpenInPicker.
  • Improves markdown link handling in markdown-links.ts: angle-bracketed hrefs are now unwrapped, Windows drive paths with a leading slash are normalized, and file URI hrefs produce colon-separated line/column positions.
  • Behavioral Change: file link hrefs in chat now use colon-separated positions (e.g. file:1:7) instead of hash anchors (e.g. file#L1C7).

Macroscope summarized a2e9b45.

@coderabbitai

coderabbitaiBot commented May 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ed16d127-1c1b-4c26-a796-c8e18f42294d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: Turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get your free trial and get 200 agent minutes per Slack user (a $50 value).


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels May 2, 2026
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
Comment threadapps/web/src/components/JetBrainsIcons.tsx Outdated
@macroscopeapp

macroscopeappBot commented May 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

Adds 11 JetBrains IDE options to the existing editor picker by extending arrays and adding SVG icon components. Changes follow established patterns, are well-tested, and don't introduce new workflows or capabilities beyond the existing editor selection feature.

You can customize Macroscope's approvability policy. Learn more.

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 6da216c to 361299eCompareMay 2, 2026 21:56
macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 361299e to d1adf2bCompareMay 2, 2026 22:21
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 22:21

Dismissing prior approval to re-evaluate d1adf2b

macroscopeapp[bot]
macroscopeappBot previously approved these changes May 2, 2026
@macroscopeapp
macroscopeappBot dismissed their stale reviewMay 2, 2026 23:32

Dismissing prior approval to re-evaluate 8463a85

@Minigamer42
Minigamer42force-pushed the feature/intellij-editors branch from 8463a85 to a2e9b45CompareMay 5, 2026 07:46

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

function normalizeMarkdownLinkHrefKey(href: string): string {
return rewriteMarkdownFileUriHref(href.trim()) ?? href.trim();
const normalizedHref = normalizeMarkdownLinkDestination(href);
return rewriteMarkdownFileUriHref(normalizedHref) ?? normalizedHref;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant double normalization in href processing

Low Severity

normalizeMarkdownLinkHrefKey calls normalizeMarkdownLinkDestination(href) and then passes the result to rewriteMarkdownFileUriHref, which internally calls normalizeMarkdownLinkDestination again on the already-normalized value. The normalization is idempotent so this isn't a functional bug, but it's unnecessary redundant work on every link href processed during rendering.

Additional Locations (1)
Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit a2e9b45. Configure here.

@juliusmarminge
juliusmarminge enabled auto-merge (squash) May 6, 2026 04:08
@juliusmarminge
juliusmarminge merged commit 166bce0 into pingdotgg:mainMay 6, 2026
10 checks passed
imabdulazeez added a commit to imabdulazeez/t3code that referenced this pull request May 6, 2026
Brings in: server CLI submodule split (pingdotgg#2545), process/trace diagnostics
views (pingdotgg#2532), JetBrains editor support (pingdotgg#2475), MessagesTimeline render
optimizations (pingdotgg#2527, pingdotgg#2498), git/terminal test stabilization (pingdotgg#2540),
keybindings settings editor (pingdotgg#2533), and provider update advisories
(pingdotgg#2312).
Conflict resolutions:
- packages/contracts/src/settings.ts: kept aa's diffFontFamily and
terminalFontFamily alongside upstream's
dismissedProviderUpdateNotificationKeys.
- apps/desktop/src/clientPersistence.test.ts: same shape, fixture mirrors
the schema.
- apps/web/src/components/settings/SettingsPanels.tsx: kept both import
groups (FontPicker from aa, ProviderUpdateLaunchNotification.logic from
upstream).
- apps/web/src/localApi.test.ts: extended both fixtures with
diffFontFamily and terminalFontFamily so the merged ClientSettings
shape typechecks against the strict desktop bridge contract.
Pre-existing aa typecheck issues fixed at the root so the merge commit
is green:
- apps/desktop/src/electron.d.ts: declaration-merge "local-fonts" into
Electron's Session.setPermissionRequestHandler permission union (the
Electron 40 typings omit it even though the runtime supports it).
- apps/web/src/components/DiffPanel.tsx: conditionally spread style on
Virtualizer instead of passing undefined, satisfying
exactOptionalPropertyTypes.
ronak-guliani pushed a commit to ronak-guliani/t3code that referenced this pull request May 27, 2026
NeilTheFisher pushed a commit to NeilTheFisher/t3code that referenced this pull request Aug 18, 2026
darjss pushed a commit to darjss/t3code that referenced this pull request Aug 26, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Minigamer42@juliusmarminge