mirror of
https://github.com/massbug/judge4c.git
synced 2025-05-18 15:26:33 +00:00
feat(language-server): add configuration for C and C++
This commit is contained in:
parent
1f417fb4e6
commit
742a827072
22
src/config/language-server.ts
Normal file
22
src/config/language-server.ts
Normal 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;
|
@ -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,
|
||||
|
@ -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}`;
|
||||
}
|
||||
|
9
src/types/language-server.ts
Normal file
9
src/types/language-server.ts
Normal 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;
|
||||
};
|
Loading…
Reference in New Issue
Block a user