MCPcopy Create free account
hub / github.com/Exafunction/codeium-chrome / addMonacoInject

Function addMonacoInject

src/script.ts:49–97  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

47
48// Intercept creation of monaco so we don't have to worry about timing the injection.
49const addMonacoInject = () =>
50 Object.defineProperties(window, {
51 MonacoEnvironment: {
52 get() {
53 if (this._codeium_MonacoEnvironment === undefined) {
54 this._codeium_MonacoEnvironment = { globalAPI: true };
55 }
56 return this._codeium_MonacoEnvironment;
57 },
58 set(env: monaco.Environment | undefined) {
59 if (env !== undefined) {
60 env.globalAPI = true;
61 }
62 this._codeium_MonacoEnvironment = env;
63 },
64 },
65 monaco: {
66 get(): Monaco | undefined {
67 return this._codeium_monaco;
68 },
69 set(_monaco: Monaco) {
70 let injectMonaco: MonacoSite = OMonacoSite.CUSTOM;
71 for (const [sitePattern, site] of SUPPORTED_MONACO_SITES) {
72 if (sitePattern.test(window.location.href)) {
73 injectMonaco = site;
74 break;
75 }
76 }
77
78 const completionProvider = new MonacoCompletionProvider(extensionId, injectMonaco);
79 if (!_monaco.languages.registerInlineCompletionsProvider) {
80 return;
81 }
82 _monaco.languages.registerInlineCompletionsProvider({ pattern: '**' }, completionProvider);
83 _monaco.editor.registerCommand(
84 'codeium.acceptCompletion',
85 (_: unknown, apiKey: string, completionId: string, callback?: () => void) => {
86 callback?.();
87 completionProvider.acceptedLastCompletion(apiKey, completionId);
88 }
89 );
90 _monaco.editor.onDidCreateEditor((editor: monaco.editor.ICodeEditor) => {
91 completionProvider.addEditor(editor);
92 });
93 this._codeium_monaco = _monaco;
94 console.log('Activated Codeium: Monaco');
95 },
96 },
97 });
98
99let injectCodeMirror = false;
100

Callers 1

script.tsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected