MCP Language Server

package lsp import ( "path/filepath" "strings" "github.com/isaacphi/mcp-language-server/internal/protocol" ) func DetectLanguageID(uri string) protocol.LanguageKind { ext := strings.ToLower(filepath.Ext(uri)) switch ext { case ".abap": return protocol.LangABAP case ".bat": return protocol.LangWindowsBat case ".bib", ".bibtex": return protocol.LangBibTeX case ".clj": return protocol.LangClojure case ".coffee": return protocol.LangCoffeescript case ".c": return protocol.LangC case ".cpp", ".cxx", ".cc", ".c++": return protocol.LangCPP case ".cs": return protocol.LangCSharp case ".css": return protocol.LangCSS case ".d": return protocol.LangD case ".pas", ".pascal": return protocol.LangDelphi case ".diff", ".patch": return protocol.LangDiff case ".dart": return protocol.LangDart case ".dockerfile": return protocol.LangDockerfile case ".ex", ".exs": return protocol.LangElixir case ".erl", ".hrl": return protocol.LangErlang case ".fs", ".fsi", ".fsx", ".fsscript": return protocol.LangFSharp case ".gitcommit": return protocol.LangGitCommit case ".gitrebase": return protocol.LangGitRebase case ".go": return protocol.LangGo case ".groovy": return protocol.LangGroovy case ".hbs", ".handlebars": return protocol.LangHandlebars case ".hs": return protocol.LangHaskell case ".html", ".htm": return protocol.LangHTML case ".ini": return protocol.LangIni case ".java": return protocol.LangJava case ".js": return protocol.LangJavaScript case ".jsx": return protocol.LangJavaScriptReact case ".json": return protocol.LangJSON case ".tex", ".latex": return protocol.LangLaTeX case ".less": return protocol.LangLess case ".lua": return protocol.LangLua case ".makefile", "makefile": return protocol.LangMakefile case ".md", ".markdown": return protocol.LangMarkdown case ".m": return protocol.LangObjectiveC case ".mm": return protocol.LangObjectiveCPP case ".pl": return protocol.LangPerl case ".pm": return protocol.LangPerl6 case ".php": return protocol.LangPHP case ".ps1", ".psm1": return protocol.LangPowershell case ".pug", ".jade": return protocol.LangPug case ".py": return protocol.LangPython case ".r": return protocol.LangR case ".cshtml", ".razor": return protocol.LangRazor case ".rb": return protocol.LangRuby case ".rs": return protocol.LangRust case ".scss": return protocol.LangSCSS case ".sass": return protocol.LangSASS case ".scala": return protocol.LangScala case ".shader": return protocol.LangShaderLab case ".sh", ".bash", ".zsh", ".ksh": return protocol.LangShellScript case ".sql": return protocol.LangSQL case ".swift": return protocol.LangSwift case ".ts": return protocol.LangTypeScript case ".tsx": return protocol.LangTypeScriptReact case ".xml": return protocol.LangXML case ".xsl": return protocol.LangXSL case ".yaml", ".yml": return protocol.LangYAML default: return protocol.LanguageKind("") // Unknown language } }