| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package hostbridge
- import (
- "context"
- "log"
- "os"
- "github.com/cline/grpc-go/cline"
- "github.com/cline/grpc-go/host"
- )
- // SimpleWorkspaceService implements a basic workspace service without complex dependencies
- type SimpleWorkspaceService struct {
- host.UnimplementedWorkspaceServiceServer
- verbose bool
- workspaces []string
- }
- // NewSimpleWorkspaceService creates a new SimpleWorkspaceService
- func NewSimpleWorkspaceService(verbose bool, workspaces []string) *SimpleWorkspaceService {
- return &SimpleWorkspaceService{
- verbose: verbose,
- workspaces: workspaces,
- }
- }
- // GetWorkspacePaths returns the workspace directory paths
- func (s *SimpleWorkspaceService) GetWorkspacePaths(ctx context.Context, req *host.GetWorkspacePathsRequest) (*host.GetWorkspacePathsResponse, error) {
- if s.verbose {
- log.Printf("GetWorkspacePaths called")
- }
- paths := []string{}
- if len(s.workspaces) == 0 {
- cwd, err := os.Getwd()
- if err != nil {
- return nil, err
- }
- paths = append(paths, cwd)
- } else {
- paths = s.workspaces
- }
- if s.verbose {
- log.Printf("Returning configured workspaces: %v", paths)
- }
- return &host.GetWorkspacePathsResponse{
- Paths: paths,
- }, nil
- }
- // SaveOpenDocumentIfDirty saves an open document if it has unsaved changes
- func (s *SimpleWorkspaceService) SaveOpenDocumentIfDirty(ctx context.Context, req *host.SaveOpenDocumentIfDirtyRequest) (*host.SaveOpenDocumentIfDirtyResponse, error) {
- if s.verbose {
- log.Printf("SaveOpenDocumentIfDirty called for path: %s", req.GetFilePath())
- }
- // For console implementation, we'll assume the document is already saved
- wasSaved := false
- return &host.SaveOpenDocumentIfDirtyResponse{
- WasSaved: &wasSaved,
- }, nil
- }
- // GetDiagnostics returns diagnostic information for a file - simplified version
- func (s *SimpleWorkspaceService) GetDiagnostics(ctx context.Context, req *host.GetDiagnosticsRequest) (*host.GetDiagnosticsResponse, error) {
- if s.verbose {
- log.Printf("GetDiagnostics called")
- }
- // For console implementation, return empty diagnostics
- return &host.GetDiagnosticsResponse{
- FileDiagnostics: []*cline.FileDiagnostics{},
- }, nil
- }
- // OpenProblemsPanel opens the problems panel - no-op for console implementation
- func (s *SimpleWorkspaceService) OpenProblemsPanel(ctx context.Context, req *host.OpenProblemsPanelRequest) (*host.OpenProblemsPanelResponse, error) {
- return &host.OpenProblemsPanelResponse{}, nil
- }
- // OpenInFileExplorerPanel opens a file/folder in the file explorer - no-op for console implementation
- func (s *SimpleWorkspaceService) OpenInFileExplorerPanel(ctx context.Context, req *host.OpenInFileExplorerPanelRequest) (*host.OpenInFileExplorerPanelResponse, error) {
- return &host.OpenInFileExplorerPanelResponse{}, nil
- }
- // OpenClineSidebarPanel opens the Cline sidebar panel - no-op for console implementation
- func (s *SimpleWorkspaceService) OpenClineSidebarPanel(ctx context.Context, req *host.OpenClineSidebarPanelRequest) (*host.OpenClineSidebarPanelResponse, error) {
- return &host.OpenClineSidebarPanelResponse{}, nil
- }
- // OpenTerminalPanel opens the terminal panel - no-op for console implementation
- func (s *SimpleWorkspaceService) OpenTerminalPanel(ctx context.Context, req *host.OpenTerminalRequest) (*host.OpenTerminalResponse, error) {
- return &host.OpenTerminalResponse{}, nil
- }
|