mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-20 08:01:35 +00:00
4b593cb418
* darkmode_v2 * darkmode_v2 * feat(frontend): Fix dark theme * feat(frontend): Remove submodule --------- Co-authored-by: Faton Ramadani <faton.ramadani14@gmail.com>
138 lines
2.8 KiB
TypeScript
138 lines
2.8 KiB
TypeScript
import { initServices } from 'monaco-languageclient'
|
|
import { LogLevel } from 'vscode/services'
|
|
import { editor as meditor } from 'monaco-editor/esm/vs/editor/editor.api'
|
|
export let isInitialized = false
|
|
export let isInitializing = false
|
|
|
|
export async function initializeVscode() {
|
|
if (!isInitialized) {
|
|
isInitializing = true
|
|
|
|
isInitialized = true
|
|
try {
|
|
// init vscode-api
|
|
await initServices({
|
|
debugLogging: true,
|
|
logLevel: LogLevel.Info
|
|
})
|
|
meditor.defineTheme('nord', {
|
|
base: 'vs-dark',
|
|
inherit: true,
|
|
rules: [
|
|
{
|
|
background: '2E3440',
|
|
token: ''
|
|
},
|
|
{
|
|
foreground: '808b9f',
|
|
token: 'comment'
|
|
},
|
|
{
|
|
foreground: 'a3be8c',
|
|
token: 'string'
|
|
},
|
|
{
|
|
foreground: 'b48ead',
|
|
token: 'constant.numeric'
|
|
},
|
|
{
|
|
foreground: '81a1c1',
|
|
token: 'constant.language'
|
|
},
|
|
{
|
|
foreground: '81a1c1',
|
|
token: 'keyword'
|
|
},
|
|
{
|
|
foreground: '81a1c1',
|
|
token: 'storage'
|
|
},
|
|
{
|
|
foreground: '81a1c1',
|
|
token: 'storage.type'
|
|
},
|
|
{
|
|
foreground: '8fbcbb',
|
|
token: 'entity.name.class'
|
|
},
|
|
{
|
|
foreground: '8fbcbb',
|
|
fontStyle: ' bold',
|
|
token: 'entity.other.inherited-class'
|
|
},
|
|
{
|
|
foreground: '88c0d0',
|
|
token: 'entity.name.function'
|
|
},
|
|
{
|
|
foreground: '81a1c1',
|
|
token: 'entity.name.tag'
|
|
},
|
|
{
|
|
foreground: '8fbcbb',
|
|
token: 'entity.other.attribute-name'
|
|
},
|
|
{
|
|
foreground: '88c0d0',
|
|
token: 'support.function'
|
|
},
|
|
{
|
|
foreground: 'f8f8f0',
|
|
background: 'f92672',
|
|
token: 'invalid'
|
|
},
|
|
{
|
|
foreground: 'f8f8f0',
|
|
background: 'ae81ff',
|
|
token: 'invalid.deprecated'
|
|
},
|
|
{
|
|
foreground: 'b48ead',
|
|
token: 'constant.color.other.rgb-value'
|
|
},
|
|
{
|
|
foreground: 'ebcb8b',
|
|
token: 'constant.character.escape'
|
|
},
|
|
{
|
|
foreground: '8fbcbb',
|
|
token: 'variable.other.constant'
|
|
}
|
|
],
|
|
colors: {
|
|
'editor.foreground': '#D8DEE9',
|
|
'editor.background': '#272D38',
|
|
'editor.selectionBackground': '#434C5ECC',
|
|
'editor.lineHighlightBackground': '#3B4252',
|
|
'editorCursor.foreground': '#D8DEE9',
|
|
'editorWhitespace.foreground': '#434C5ECC'
|
|
}
|
|
})
|
|
|
|
meditor.defineTheme('myTheme', {
|
|
base: 'vs',
|
|
inherit: true,
|
|
rules: [],
|
|
colors: {
|
|
'editorLineNumber.foreground': '#999',
|
|
'editorGutter.background': '#F9FAFB'
|
|
}
|
|
})
|
|
|
|
if (document.documentElement.classList.contains('dark')) {
|
|
meditor.setTheme('nord')
|
|
} else {
|
|
meditor.setTheme('myTheme')
|
|
}
|
|
} catch (e) {
|
|
} finally {
|
|
isInitializing = false
|
|
}
|
|
} else {
|
|
while (isInitializing) {
|
|
console.log('Waiting for initialization of monaco services')
|
|
await new Promise((resolve) => setTimeout(resolve, 100))
|
|
}
|
|
}
|
|
}
|