forked from slene/margo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfx.go
111 lines (103 loc) · 1.17 KB
/
fx.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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package main
import (
"path/filepath"
"strings"
)
var (
fileExts = map[string]void{}
)
func init() {
exts := []string{
".c",
".h",
".go",
".goc",
".md",
".txt",
".git",
".bzr",
".tmp",
".swig",
".swigcxx",
".a",
".s",
".S",
".syso",
".so",
".dll",
".o",
".5",
".6",
".8",
".out",
".cc",
".hh",
".dat",
".py",
".pyc",
".zip",
".z",
".7z",
".gz",
".tar",
".bz2",
".tgz",
".rar",
".pro",
".occ",
".asc",
".conf",
".html",
".jpg",
".png",
".js",
".json",
".src",
".log",
".patch",
".diff",
".php",
".rit",
".css",
".lua",
".less",
".ttf",
".expected",
".ps",
".bak",
".cix",
".d",
".hac",
".hrb",
".java",
".lexres",
".lst",
".pan",
".phpt",
".prof",
".set",
".sol",
".vrs",
".exe",
".bat",
".sh",
".rc",
".bash",
}
for _, ext := range exts {
fileExts[ext] = void{}
}
}
func fx(nm string) (isFileExt, isGoFileExt bool) {
nm = strings.ToLower(nm)
ext := filepath.Ext(nm)
if ext == ".go" {
return true, true
}
if !strings.HasPrefix(nm, "go.") {
if _, ok := fileExts[ext]; ok {
return true, false
}
}
return false, false
}