blob: 1011ba98aae4de66caaa2f90423dd4ff37c2cd1e [file] [log] [blame]
package lsp
import (
"fmt"
"sync"
"golang.org/x/tools/internal/lsp/protocol"
)
type view struct {
activeFilesMu sync.Mutex
activeFiles map[protocol.DocumentURI]string
}
func newView() *view {
return &view{
activeFiles: make(map[protocol.DocumentURI]string),
}
}
func (v *view) cacheActiveFile(uri protocol.DocumentURI, text string) {
v.activeFilesMu.Lock()
v.activeFiles[uri] = text
v.activeFilesMu.Unlock()
}
func (v *view) readActiveFile(uri protocol.DocumentURI) (string, error) {
v.activeFilesMu.Lock()
defer v.activeFilesMu.Unlock()
content, ok := v.activeFiles[uri]
if !ok {
return "", fmt.Errorf("file not found: %s", uri)
}
return content, nil
}
func (v *view) clearActiveFile(uri protocol.DocumentURI) {
v.activeFilesMu.Lock()
delete(v.activeFiles, uri)
v.activeFilesMu.Unlock()
}