feat(language-server): add configuration for C and C++

This commit is contained in:
cfngc4594 2025-03-04 20:53:19 +08:00
parent 1f417fb4e6
commit 742a827072
4 changed files with 42 additions and 3 deletions

View File

@ -0,0 +1,22 @@
import { EditorLanguage } from "@/types/editor-language";
import { EditorLanguageConfig } from "./editor-language";
import { LanguageServerMetadata } from "@/types/language-server";
const LanguageServerConfig: Record<EditorLanguage, LanguageServerMetadata> = {
[EditorLanguage.C]: {
protocol: "ws",
hostname: "localhost",
port: 4594,
path: "/clangd",
lang: EditorLanguageConfig[EditorLanguage.C],
},
[EditorLanguage.CPP]: {
protocol: "ws",
hostname: "localhost",
port: 4595,
path: "/clangd",
lang: EditorLanguageConfig[EditorLanguage.CPP],
},
};
export default LanguageServerConfig;

View File

@ -1,10 +1,11 @@
import { useTheme } from "next-themes";
import { MonacoTheme } from "@/types/monaco-theme";
import { MonacoThemeConfig } from "@/config/monaco-theme";
export function useMonacoTheme() {
const { resolvedTheme } = useTheme();
const monacoTheme = resolvedTheme === "light" ? MonacoThemeConfig.light : MonacoThemeConfig.dark;
const monacoTheme = resolvedTheme === "light" ? MonacoThemeConfig[MonacoTheme.GitHubLightDefault] : MonacoThemeConfig[MonacoTheme.GitHubDarkDefault];
return {
monacoTheme,

View File

@ -1,6 +1,13 @@
import { clsx, type ClassValue } from "clsx"
import { twMerge } from "tailwind-merge"
import { twMerge } from "tailwind-merge";
import { clsx, type ClassValue } from "clsx";
import { EditorLanguage } from "@/types/editor-language";
import languageServerConfigs from "@/config/language-server";
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs))
}
export function getPath(lang: EditorLanguage): string {
const config = languageServerConfigs[lang];
return `file:///${config.lang.fileName}${config.lang.fileExtension}`;
}

View File

@ -0,0 +1,9 @@
import { EditorLanguageMetadata } from "./editor-language";
export type LanguageServerMetadata = {
protocol: string;
hostname: string;
port: number | null;
path: string | null;
lang: EditorLanguageMetadata;
};