summaryrefslogtreecommitdiff
path: root/extension/react-app/src/components
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-06-26 17:41:12 -0700
committerNate Sesti <sestinj@gmail.com>2023-06-26 17:41:12 -0700
commitce846df27aa9646d79da4160c833031766d2c13b (patch)
tree5993b2d211fcaa0a14bd742249d66d5ae52c5a85 /extension/react-app/src/components
parentf4beca92731a81c32aec9c692ec32b78024f5974 (diff)
downloadsncontinue-ce846df27aa9646d79da4160c833031766d2c13b.tar.gz
sncontinue-ce846df27aa9646d79da4160c833031766d2c13b.tar.bz2
sncontinue-ce846df27aa9646d79da4160c833031766d2c13b.zip
syntax highlighting lang auto detection
Diffstat (limited to 'extension/react-app/src/components')
-rw-r--r--extension/react-app/src/components/CodeBlock.tsx54
-rw-r--r--extension/react-app/src/components/StyledCode.tsx2
2 files changed, 52 insertions, 4 deletions
diff --git a/extension/react-app/src/components/CodeBlock.tsx b/extension/react-app/src/components/CodeBlock.tsx
index 98760fbd..b0de13ac 100644
--- a/extension/react-app/src/components/CodeBlock.tsx
+++ b/extension/react-app/src/components/CodeBlock.tsx
@@ -61,9 +61,55 @@ function CopyButton(props: { textToCopy: string; visible: boolean }) {
);
}
-function CodeBlock(props: { language?: string; children: string }) {
+function CodeBlock(props: { children: string }) {
+ const [result, setResult] = useState<AutoHighlightResult | undefined>(
+ undefined
+ );
useEffect(() => {
- hljs.highlightAll();
+ const result = hljs.highlightAuto(
+ (props.children as any).props.children[0],
+ [
+ "python",
+ "javascript",
+ "typescript",
+ "bash",
+ "html",
+ "css",
+ "json",
+ "yaml",
+ "markdown",
+ "sql",
+ "java",
+ "c",
+ "cpp",
+ "csharp",
+ "go",
+ "kotlin",
+ "php",
+ "ruby",
+ "rust",
+ "scala",
+ "swift",
+ "dart",
+ "haskell",
+ "perl",
+ "r",
+ "matlab",
+ "powershell",
+ "lua",
+ "elixir",
+ "clojure",
+ "groovy",
+ "julia",
+ "vbnet",
+ "objectivec",
+ "fsharp",
+ "erlang",
+ "ocaml",
+ ]
+ );
+ console.log(result);
+ setResult(result);
}, [props.children]);
const [hovered, setHovered] = useState<boolean>(false);
@@ -82,7 +128,9 @@ function CodeBlock(props: { language?: string; children: string }) {
textToCopy={(props.children as any).props.children[0]}
/>
</CopyButtonDiv>
- <StyledCode language={props.language}>{props.children}</StyledCode>
+ <StyledCode language={result?.language}>
+ {(props.children as any).props.children[0]}
+ </StyledCode>
</StyledPre>
);
}
diff --git a/extension/react-app/src/components/StyledCode.tsx b/extension/react-app/src/components/StyledCode.tsx
index 485c70b6..c5ed0101 100644
--- a/extension/react-app/src/components/StyledCode.tsx
+++ b/extension/react-app/src/components/StyledCode.tsx
@@ -12,7 +12,7 @@ const StyledCode = (props: StyledCodeProps) => (
style={highlightStyle}
language={props.language || "python"}
>
- {(props.children as any).props.children}
+ {props.children}
</SyntaxHighlighter>
);