@@ -12,10 +12,94 @@ loader.config({ monaco });
1212
1313export const GITHUB_LIGHT_DEFAULT = 'github-light-default' ;
1414export const GITHUB_DARK_DEFAULT = 'github-dark-default' ;
15+
16+ // Lightweight RGBA helper
17+ function rgba ( hex : string , alpha : number ) {
18+ const h = hex . replace ( '#' , '' ) ;
19+ const v =
20+ h . length === 3
21+ ? h
22+ . split ( '' )
23+ . map ( ( c ) => c + c )
24+ . join ( '' )
25+ : h ;
26+ const n = parseInt ( v , 16 ) ;
27+ // If parse fails, fallback to transparent
28+ if ( Number . isNaN ( n ) ) return `rgba(0,0,0,${ alpha } )` ;
29+ const r = ( n >> 16 ) & 255 ;
30+ const g = ( n >> 8 ) & 255 ;
31+ const b = n & 255 ;
32+ return `rgba(${ r } , ${ g } , ${ b } , ${ alpha } )` ;
33+ }
34+
35+ // Inlined GitHub Light Default editor colors (subset focused on Monaco editor UI)
36+ const GITHUB_LIGHT_EDITOR_COLORS : monaco . editor . IColors = {
37+ 'editor.foreground' : '#1f2328' ,
38+ 'editor.background' : '#ffffff' ,
39+ 'editorWidget.background' : '#f6f8fa' ,
40+ 'editor.lineHighlightBackground' : '#eaeef2' ,
41+ 'editorCursor.foreground' : '#0969da' ,
42+ 'editor.selectionBackground' : rgba ( '#0969da' , 0.2 ) ,
43+ 'editor.inactiveSelectionBackground' : rgba ( '#0969da' , 0.07 ) ,
44+ 'editor.selectionHighlightBackground' : rgba ( '#1a7f37' , 0.25 ) ,
45+ 'editorLineNumber.foreground' : '#8c959f' ,
46+ 'editorLineNumber.activeForeground' : '#1f2328' ,
47+ 'editorIndentGuide.background' : rgba ( '#1f2328' , 0.12 ) ,
48+ 'editorIndentGuide.activeBackground' : rgba ( '#1f2328' , 0.24 ) ,
49+ 'editorGutter.background' : '#ffffff' ,
50+ 'editorHoverWidget.background' : '#f6f8fa' ,
51+ 'editorHoverWidget.border' : '#d0d7de' ,
52+ 'editorSuggestWidget.background' : '#f6f8fa' ,
53+ 'editorSuggestWidget.border' : '#d0d7de' ,
54+ 'editorWidget.border' : '#d0d7de' ,
55+ 'editorWhitespace.foreground' : '#d0d7de' ,
56+ 'editor.wordHighlightBackground' : rgba ( '#afb8c1' , 0.5 ) ,
57+ 'editor.wordHighlightStrongBackground' : rgba ( '#afb8c1' , 0.3 ) ,
58+ } ;
59+
60+ // Inlined GitHub Dark Default editor colors (subset focused on Monaco editor UI)
61+ const GITHUB_DARK_EDITOR_COLORS : monaco . editor . IColors = {
62+ 'editor.foreground' : '#e6edf3' ,
63+ 'editor.background' : '#0d1117' ,
64+ 'editorWidget.background' : '#161b22' ,
65+ 'editor.lineHighlightBackground' : '#161b22' ,
66+ 'editorCursor.foreground' : '#2f81f7' ,
67+ 'editor.selectionBackground' : rgba ( '#2f81f7' , 0.2 ) ,
68+ 'editor.inactiveSelectionBackground' : rgba ( '#2f81f7' , 0.07 ) ,
69+ 'editor.selectionHighlightBackground' : rgba ( '#2ea043' , 0.25 ) ,
70+ 'editorLineNumber.foreground' : '#6e7681' ,
71+ 'editorLineNumber.activeForeground' : '#e6edf3' ,
72+ 'editorIndentGuide.background' : rgba ( '#e6edf3' , 0.12 ) ,
73+ 'editorIndentGuide.activeBackground' : rgba ( '#e6edf3' , 0.24 ) ,
74+ 'editorGutter.background' : '#0d1117' ,
75+ 'editorHoverWidget.background' : '#161b22' ,
76+ 'editorHoverWidget.border' : '#30363d' ,
77+ 'editorSuggestWidget.background' : '#161b22' ,
78+ 'editorSuggestWidget.border' : '#30363d' ,
79+ 'editorWidget.border' : '#30363d' ,
80+ 'editorWhitespace.foreground' : '#484f58' ,
81+ 'editor.wordHighlightBackground' : rgba ( '#6e7681' , 0.5 ) ,
82+ 'editor.wordHighlightStrongBackground' : rgba ( '#6e7681' , 0.3 ) ,
83+ } ;
84+
1585export const configureMonaco = ( ) => {
1686 self . MonacoEnvironment = {
17- getWorker : ( _ : string ) => {
18- return new EditorWorker ( ) ;
19- } ,
87+ getWorker : ( _ : string ) => new EditorWorker ( ) ,
2088 } ;
89+
90+ // Register GitHub Light Default
91+ monaco . editor . defineTheme ( GITHUB_LIGHT_DEFAULT , {
92+ base : 'vs' ,
93+ inherit : true ,
94+ rules : [ ] ,
95+ colors : GITHUB_LIGHT_EDITOR_COLORS ,
96+ } ) ;
97+
98+ // Register GitHub Dark Default
99+ monaco . editor . defineTheme ( GITHUB_DARK_DEFAULT , {
100+ base : 'vs-dark' ,
101+ inherit : true ,
102+ rules : [ ] ,
103+ colors : GITHUB_DARK_EDITOR_COLORS ,
104+ } ) ;
21105} ;
0 commit comments