Skip to content

Conversation

@FastestMolasses
Copy link
Member

@FastestMolassesFastestMolasses commented Mar 15, 2025

Description

Adds the Issue Navigator side menu to allow users to see the errors and warnings in their codebase.

Related Issues

Checklist

  • I read and understood the contributing guide as well as the code of conduct
  • The issues this PR addresses are related to each other
  • My changes generate no new warnings
  • My code builds and runs on my machine
  • My changes are all related to the related issue above
  • I documented my code

Screenshots

@austincondiffaustincondiff changed the title Issue Navigator MenuIssue NavigatorApr 2, 2025
Copy link

CopilotAI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR introduces the Issue Navigator sidebar, which displays code errors and warnings. Key changes include:

  • Adding a new IssueNavigatorViewModel and associated data structures for managing diagnostics.
  • Integrating new Issue Navigator UI components into the NavigatorArea.
  • Updating the LSP service and WorkspaceDocument to support the new issue tracking.

Reviewed Changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
CodeEdit/Features/NavigatorArea/Views/NavigatorAreaView.swiftAdds an "issues" tab to the navigator tabs.
CodeEdit/Features/NavigatorArea/ViewModels/IssueNavigatorViewModel.swiftIntroduces the view model and supporting functions for issues.
CodeEdit/Features/NavigatorArea/ProjectNavigator/OutlineView/ProjectNavigatorViewController+NSOutlineViewDelegate.swiftImproves comment clarity.
CodeEdit/Features/NavigatorArea/OutlineView/StandardTableViewCell.swiftRemoves a duplicate subview addition of the icon.
CodeEdit/Features/NavigatorArea/OutlineView/IssueTableViewCell.swiftAdds a custom table view cell for rendering issue nodes.
CodeEdit/Features/NavigatorArea/Models/NavigatorTab.swiftAdds new case .issues with associated icon and label.
CodeEdit/Features/NavigatorArea/IssueNavigator/... (various files)Implements the UI for the Issue Navigator via view controllers, data sources, and a SwiftUI wrapper.
CodeEdit/Features/LSP/Service/LSPService.swift & LSPService+Events.swiftUpdates LSP service APIs to include workspace info and event handling.
CodeEdit/Features/LSP/LanguageServer/LanguageServer.swiftAdds workspace context to the language server.
CodeEdit/Features/Documents/WorkspaceDocument/WorkspaceDocument.swiftInstantiates the issue navigator view model with a hardcoded project name.
Comments suppressed due to low confidence (1)

CodeEdit/Features/Documents/WorkspaceDocument/WorkspaceDocument.swift:37

  • The IssueNavigatorViewModel is initialized with a hardcoded project name "Test". Consider retrieving the actual project name from the root folder to avoid hardcoding.
var issueNavigatorViewModel: IssueNavigatorViewModel? = IssueNavigatorViewModel(projectName: "Test") 

@FastestMolassesFastestMolasses self-assigned this Apr 5, 2025
@FastestMolassesFastestMolasses added UI This is UI related navigator language server Issues or Pull Requests related to language servers. labels Apr 5, 2025
@FastestMolassesFastestMolasses marked this pull request as ready for review June 8, 2025 01:18
Copy link
Collaborator

@thecoolwinterthecoolwinter left a comment

Choose a reason for hiding this comment

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

A few thoughts, love the progress here. Hard to test without some of the more recent changes on main due to some crashes happening.

Copy link
Collaborator

@thecoolwinterthecoolwinter left a comment

Choose a reason for hiding this comment

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

Looks good! I am struggling to test it consistently with a real language server, but not because of the components you've added here. I think we may need to add a call to the pull diagnostics server capability to round out the diagnostics fetching, but I say lets add an issue for that and come back to it.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

language serverIssues or Pull Requests related to language servers.navigatorUIThis is UI related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨ Issue Navigator

3 participants

@FastestMolasses@thecoolwinter