From ec4deeb59f3392b6a7dc9eae7c6bb94734fe214b Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Sun, 20 Oct 2024 15:24:00 +0200 Subject: [PATCH] feat(server): Detect language based on the filename --- server/root-handler/lsp-utils.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/server/root-handler/lsp-utils.go b/server/root-handler/lsp-utils.go index 983faaf..b0cc79a 100644 --- a/server/root-handler/lsp-utils.go +++ b/server/root-handler/lsp-utils.go @@ -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 }