diff --git a/go.mod b/go.mod index faae5581..b0bc055a 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/json-iterator/go v1.1.12 github.com/mitchellh/mapstructure v1.5.0 github.com/pb33f/doctor v0.0.4 - github.com/pb33f/libopenapi v0.15.7 + github.com/pb33f/libopenapi v0.15.8 github.com/pb33f/libopenapi-validator v0.0.42 github.com/pterm/pterm v0.12.78 github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 diff --git a/go.sum b/go.sum index fc797888..421d028a 100644 --- a/go.sum +++ b/go.sum @@ -168,8 +168,8 @@ github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/pb33f/doctor v0.0.4 h1:+JVwBsVwwMR0Um13mODlQ/h/HpFpyNPKieQXk/sEf2c= github.com/pb33f/doctor v0.0.4/go.mod h1:yBs5hFHAoo/eeFvKN9sWwmHmgEPJ2SaotYOJc05GdMU= -github.com/pb33f/libopenapi v0.15.7 h1:xdXodMBSYUmLYxEH2UxOCaeKrmBQEXO5XSaBbhQ6H3Q= -github.com/pb33f/libopenapi v0.15.7/go.mod h1:m+4Pwri31UvcnZjuP8M7TlbR906DXJmMvYsbis234xg= +github.com/pb33f/libopenapi v0.15.8 h1:HtUqEbpIdAn3QzwEA5suQpP73FzCY8CkQnF2oLrnTes= +github.com/pb33f/libopenapi v0.15.8/go.mod h1:m+4Pwri31UvcnZjuP8M7TlbR906DXJmMvYsbis234xg= github.com/pb33f/libopenapi-validator v0.0.42 h1:bfwPWlxUFHtvPNi0PH+EVpQBU2kA3Db9rVdFkfmUVac= github.com/pb33f/libopenapi-validator v0.0.42/go.mod h1:kU1JYyXIRlpmsWx3NkL+drNNttLADMgdaNzJgXDhec0= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= diff --git a/language-server/server.go b/language-server/server.go index 682291e9..eca6e7e3 100644 --- a/language-server/server.go +++ b/language-server/server.go @@ -23,6 +23,7 @@ import ( "github.com/tliron/glsp" protocol "github.com/tliron/glsp/protocol_3_16" glspserv "github.com/tliron/glsp/server" + "path/filepath" "strings" "time" ) @@ -109,13 +110,17 @@ func (s *ServerState) runDiagnostic(doc *Document, notify glsp.NotifyFunc, delay go func() { var diagnostics []protocol.Diagnostic + if s.lintRequest.BaseFlag == "" { + s.lintRequest.BaseFlag = filepath.Dir(strings.TrimPrefix(doc.URI, "file://")) + } + result := motor.ApplyRulesToRuleSet(&motor.RuleSetExecution{ RuleSet: s.lintRequest.SelectedRS, Timeout: time.Duration(s.lintRequest.TimeoutFlag) * time.Second, CustomFunctions: s.lintRequest.Functions, IgnoreCircularArrayRef: s.lintRequest.IgnoreArrayCircleRef, IgnoreCircularPolymorphicRef: s.lintRequest.IgnorePolymorphCircleRef, - AllowLookup: s.lintRequest.Remote, + AllowLookup: true, Base: s.lintRequest.BaseFlag, Spec: []byte(doc.Content), SkipDocumentCheck: s.lintRequest.SkipCheckFlag,