forked from sourcegraph/go-langserver
-
Notifications
You must be signed in to change notification settings - Fork 0
/
util.go
33 lines (28 loc) · 786 Bytes
/
util.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package langserver
import (
"os"
"strings"
)
func PathHasPrefix(s, prefix string) bool {
var prefixSlash string
if prefix != "" && !strings.HasSuffix(prefix, string(os.PathSeparator)) {
prefixSlash = prefix + string(os.PathSeparator)
}
return s == prefix || strings.HasPrefix(s, prefixSlash)
}
func PathTrimPrefix(s, prefix string) string {
if s == prefix {
return ""
}
if !strings.HasSuffix(prefix, string(os.PathSeparator)) {
prefix += string(os.PathSeparator)
}
return strings.TrimPrefix(s, prefix)
}
func pathEqual(a, b string) bool {
return PathTrimPrefix(a, b) == ""
}
// IsVendorDir tells if the specified directory is a vendor directory.
func IsVendorDir(dir string) bool {
return strings.HasPrefix(dir, "vendor/") || strings.Contains(dir, "/vendor/")
}