| 9 | var lspValidationLog = logger.New("workflow:lsp_validation") |
| 10 | |
| 11 | func (c *Compiler) validateLSPSupport(workflowData *WorkflowData) error { |
| 12 | if workflowData == nil || len(workflowData.LSP) == 0 { |
| 13 | return nil |
| 14 | } |
| 15 | |
| 16 | lspValidationLog.Printf("validateLSPSupport: validating %d LSP config(s)", len(workflowData.LSP)) |
| 17 | |
| 18 | manager := NewLSPManager(workflowData.LSP) |
| 19 | if err := manager.Validate(); err != nil { |
| 20 | return err |
| 21 | } |
| 22 | |
| 23 | engineID := ResolveEngineID(workflowData) |
| 24 | if engineID == "" { |
| 25 | engineID = "copilot" |
| 26 | } |
| 27 | |
| 28 | if engineID != "copilot" { |
| 29 | lspValidationLog.Printf("validateLSPSupport: rejecting unsupported engine %q for LSP", engineID) |
| 30 | return fmt.Errorf("lsp is currently only supported for engine: copilot (found engine: %s)", engineID) |
| 31 | } |
| 32 | |
| 33 | lspValidationLog.Printf("validateLSPSupport: LSP validation passed for engine %q", engineID) |
| 34 | return nil |
| 35 | } |