mirror of
https://github.com/massbug/judge4c.git
synced 2025-05-18 07:16:34 +00:00
feat(language-selector): update language selector logic and integrate LSP config
This commit is contained in:
parent
d33f214450
commit
808dd96a50
@ -7,19 +7,28 @@ import {
|
|||||||
SelectTrigger,
|
SelectTrigger,
|
||||||
SelectValue,
|
SelectValue,
|
||||||
} from "@/components/ui/select";
|
} from "@/components/ui/select";
|
||||||
|
import { getPath } from "@/lib/utils";
|
||||||
import { Skeleton } from "@/components/ui/skeleton";
|
import { Skeleton } from "@/components/ui/skeleton";
|
||||||
|
import { EditorLanguage } from "@/types/editor-language";
|
||||||
|
import LanguageServerConfig from "@/config/language-server";
|
||||||
import { EditorLanguageConfig } from "@/config/editor-language";
|
import { EditorLanguageConfig } from "@/config/editor-language";
|
||||||
import { useCodeEditorStore } from "@/store/useCodeEditorStore";
|
import { useCodeEditorStore } from "@/store/useCodeEditorStore";
|
||||||
|
|
||||||
export default function LanguageSelector() {
|
export default function LanguageSelector() {
|
||||||
const { hydrated, language, setLanguage } = useCodeEditorStore();
|
const { hydrated, language, setLanguage, setPath, setLspConfig } = useCodeEditorStore();
|
||||||
|
|
||||||
if (!hydrated) {
|
if (!hydrated) {
|
||||||
return <Skeleton className="h-6 w-16 rounded-2xl" />;
|
return <Skeleton className="h-6 w-16 rounded-2xl" />;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleValueChange = (lang: EditorLanguage) => {
|
||||||
|
setLanguage(lang);
|
||||||
|
setPath(getPath(lang));
|
||||||
|
setLspConfig(LanguageServerConfig[lang]);
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Select value={language} onValueChange={setLanguage}>
|
<Select value={language} onValueChange={handleValueChange}>
|
||||||
<SelectTrigger className="h-6 px-1.5 py-0.5 border-none focus:ring-0 hover:bg-muted [&>span]:flex [&>span]:items-center [&>span]:gap-2 [&>span_svg]:shrink-0 [&>span_svg]:text-muted-foreground/80">
|
<SelectTrigger className="h-6 px-1.5 py-0.5 border-none focus:ring-0 hover:bg-muted [&>span]:flex [&>span]:items-center [&>span]:gap-2 [&>span_svg]:shrink-0 [&>span_svg]:text-muted-foreground/80">
|
||||||
<SelectValue placeholder="Select language" />
|
<SelectValue placeholder="Select language" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
|
Loading…
Reference in New Issue
Block a user