mirror of
https://github.com/Myzel394/config-lsp.git
synced 2025-06-18 23:15:26 +02:00
feat(server): Detect language based on the filename
This commit is contained in:
parent
5798dd45f1
commit
ec4deeb59f
@ -4,6 +4,7 @@ import (
|
||||
"config-lsp/common"
|
||||
"config-lsp/utils"
|
||||
"fmt"
|
||||
"path"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
@ -78,6 +79,27 @@ var valueToLanguageMap = map[string]SupportedLanguage{
|
||||
"etc/aliases": LanguageAliases,
|
||||
}
|
||||
|
||||
var filenameToLanguageMap = map[string]SupportedLanguage{
|
||||
"sshd_config": LanguageSSHDConfig,
|
||||
"sshdconfig": LanguageSSHDConfig,
|
||||
"sshd": LanguageSSHDConfig,
|
||||
|
||||
"ssh_config": LanguageSSHConfig,
|
||||
"sshconfig": LanguageSSHConfig,
|
||||
|
||||
"fstab": LanguageFstab,
|
||||
|
||||
"hosts": LanguageHosts,
|
||||
|
||||
"aliases": LanguageAliases,
|
||||
"mailaliases": LanguageAliases,
|
||||
|
||||
"wg": LanguageWireguard,
|
||||
"wg.conf": LanguageWireguard,
|
||||
"wg0.conf": LanguageWireguard,
|
||||
"wg0": LanguageWireguard,
|
||||
}
|
||||
|
||||
var typeOverwriteRegex = regexp.MustCompile(`#\?\s*lsp\.language\s*=\s*(\w+)\s*`)
|
||||
var wireguardPattern = regexp.MustCompile(`/wg\d+\.conf$`)
|
||||
|
||||
@ -137,6 +159,12 @@ func DetectLanguage(
|
||||
return LanguageAliases, nil
|
||||
}
|
||||
|
||||
filename := path.Base(string(uri))
|
||||
|
||||
if language, found := filenameToLanguageMap[filename]; found {
|
||||
return language, nil
|
||||
}
|
||||
|
||||
if strings.HasPrefix(uri, "file:///etc/wireguard/") || wireguardPattern.MatchString(uri) {
|
||||
return LanguageWireguard, nil
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user