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 { useTheme } from "next-themes";
|
||||||
|
import { MonacoTheme } from "@/types/monaco-theme";
|
||||||
import { MonacoThemeConfig } from "@/config/monaco-theme";
|
import { MonacoThemeConfig } from "@/config/monaco-theme";
|
||||||
|
|
||||||
export function useMonacoTheme() {
|
export function useMonacoTheme() {
|
||||||
const { resolvedTheme } = useTheme();
|
const { resolvedTheme } = useTheme();
|
||||||
|
|
||||||
const monacoTheme = resolvedTheme === "light" ? MonacoThemeConfig.light : MonacoThemeConfig.dark;
|
const monacoTheme = resolvedTheme === "light" ? MonacoThemeConfig[MonacoTheme.GitHubLightDefault] : MonacoThemeConfig[MonacoTheme.GitHubDarkDefault];
|
||||||
|
|
||||||
return {
|
return {
|
||||||
monacoTheme,
|
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[]) {
|
export function cn(...inputs: ClassValue[]) {
|
||||||
return twMerge(clsx(inputs))
|
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