on main help sign in
fix: lsp/mcp command expand ~ (#1105)
1f35d54Carlos Alexandro Becker
internal/config/load.go+1−1
@@ -352,7 +352,7 @@ func (c *Config) applyLSPDefaults() {
352 // Apply defaults to each LSP configuration
352 // Apply defaults to each LSP configuration
353 for name, cfg := range c.LSP {
353 for name, cfg := range c.LSP {
354 // Try to get defaults from powernap based on command name
354 // Try to get defaults from powernap based on command name
355− base, ok := configManager.GetServer(cfg.Command)
355+ base, ok := configManager.GetServer(name)
356 if !ok {
356 if !ok {
357 continue
357 continue
358 }
358 }
internal/llm/agent/mcp-tools.go+2−1
@@ -15,6 +15,7 @@ import (
15
15
16 "github.com/charmbracelet/crush/internal/config"
16 "github.com/charmbracelet/crush/internal/config"
17 "github.com/charmbracelet/crush/internal/csync"
17 "github.com/charmbracelet/crush/internal/csync"
18+ "github.com/charmbracelet/crush/internal/home"
18 "github.com/charmbracelet/crush/internal/llm/tools"
19 "github.com/charmbracelet/crush/internal/llm/tools"
19 "github.com/charmbracelet/crush/internal/permission"
20 "github.com/charmbracelet/crush/internal/permission"
20 "github.com/charmbracelet/crush/internal/pubsub"
21 "github.com/charmbracelet/crush/internal/pubsub"
@@ -360,7 +361,7 @@ func createMcpClient(name string, m config.MCPConfig) (*client.Client, error) {
360 return nil, fmt.Errorf("mcp stdio config requires a non-empty 'command' field")
361 return nil, fmt.Errorf("mcp stdio config requires a non-empty 'command' field")
361 }
362 }
362 return client.NewStdioMCPClientWithOptions(
363 return client.NewStdioMCPClientWithOptions(
363− m.Command,
364+ home.Long(m.Command),
364 m.ResolvedEnv(),
365 m.ResolvedEnv(),
365 m.Args,
366 m.Args,
366 transport.WithCommandLogger(mcpLogger{name: name}),
367 transport.WithCommandLogger(mcpLogger{name: name}),
internal/lsp/client.go+2−1
@@ -15,6 +15,7 @@ import (
15 "github.com/charmbracelet/crush/internal/config"
15 "github.com/charmbracelet/crush/internal/config"
16 "github.com/charmbracelet/crush/internal/csync"
16 "github.com/charmbracelet/crush/internal/csync"
17 "github.com/charmbracelet/crush/internal/fsext"
17 "github.com/charmbracelet/crush/internal/fsext"
18+ "github.com/charmbracelet/crush/internal/home"
18 powernap "github.com/charmbracelet/x/powernap/pkg/lsp"
19 powernap "github.com/charmbracelet/x/powernap/pkg/lsp"
19 "github.com/charmbracelet/x/powernap/pkg/lsp/protocol"
20 "github.com/charmbracelet/x/powernap/pkg/lsp/protocol"
20 "github.com/charmbracelet/x/powernap/pkg/transport"
21 "github.com/charmbracelet/x/powernap/pkg/transport"
@@ -55,7 +56,7 @@ func New(ctx context.Context, name string, config config.LSPConfig) (*Client, er
55
56
56 // Create powernap client config
57 // Create powernap client config
57 clientConfig := powernap.ClientConfig{
58 clientConfig := powernap.ClientConfig{
58− Command: config.Command,
59+ Command: home.Long(config.Command),
59 Args: config.Args,
60 Args: config.Args,
60 RootURI: rootURI,
61 RootURI: rootURI,
61 Environment: func() map[string]string {
62 Environment: func() map[string]string {