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
commitcf9d8c40f480be22c1cfd0493177b5a61adf8d0f (patch)
tree2ddddf0f88f97d602cb691e110886ceab54dcfba /extension/react-app/src/components
parent1c58e6847470457b15ea577adc4f6b8764ee890c (diff)
downloadsncontinue-cf9d8c40f480be22c1cfd0493177b5a61adf8d0f.tar.gz
sncontinue-cf9d8c40f480be22c1cfd0493177b5a61adf8d0f.tar.bz2
sncontinue-cf9d8c40f480be22c1cfd0493177b5a61adf8d0f.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>
);