package main import ( "os" "path/filepath" "strings" ) // LoadFile загружает содержимое файла func LoadFile(path string) (string, error) { data, err := os.ReadFile(path) if err != nil { if os.IsNotExist(err) { return "", nil // Новый файл } return "", err } return string(data), nil } // DetectFileType определяет тип файла по расширению func DetectFileType(path string) string { ext := strings.TrimPrefix(filepath.Ext(path), ".") ext = strings.ToLower(ext) switch ext { case "md", "markdown": return "md" case "txt": return "txt" case "go": return "go" case "py": return "py" case "js", "mjs", "cjs": return "js" case "ts", "tsx": return "ts" case "rs": return "rs" case "c", "h": return "c" case "cpp", "cc", "cxx", "hpp": return "cpp" case "java": return "java" case "sql": return "sql" case "sh", "bash": return "sh" default: return "txt" } }