Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/editor.api.ts
5237 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { EditorOptions, WrappingIndent, EditorAutoIndentStrategy } from './common/config/editorOptions.js';
7
import { createMonacoBaseAPI } from './common/services/editorBaseApi.js';
8
import { createMonacoEditorAPI } from './standalone/browser/standaloneEditor.js';
9
import { createMonacoLanguagesAPI } from './standalone/browser/standaloneLanguages.js';
10
import { FormattingConflicts } from './contrib/format/browser/format.js';
11
import { getMonacoEnvironment } from '../base/browser/browser.js';
12
13
// Set defaults for standalone editor
14
EditorOptions.wrappingIndent.defaultValue = WrappingIndent.None;
15
EditorOptions.glyphMargin.defaultValue = false;
16
EditorOptions.autoIndent.defaultValue = EditorAutoIndentStrategy.Advanced;
17
EditorOptions.overviewRulerLanes.defaultValue = 2;
18
19
// We need to register a formatter selector which simply picks the first available formatter.
20
// See https://github.com/microsoft/monaco-editor/issues/2327
21
FormattingConflicts.setFormatterSelector((formatter, document, mode) => Promise.resolve(formatter[0]));
22
23
const api = createMonacoBaseAPI();
24
api.editor = createMonacoEditorAPI();
25
api.languages = createMonacoLanguagesAPI();
26
export const CancellationTokenSource = api.CancellationTokenSource;
27
export const Emitter = api.Emitter;
28
export const KeyCode = api.KeyCode;
29
export const KeyMod = api.KeyMod;
30
export const Position = api.Position;
31
export const Range = api.Range;
32
export const Selection = api.Selection;
33
export const SelectionDirection = api.SelectionDirection;
34
export const MarkerSeverity = api.MarkerSeverity;
35
export const MarkerTag = api.MarkerTag;
36
export const Uri = api.Uri;
37
export const Token = api.Token;
38
export const editor = api.editor;
39
export const languages = api.languages;
40
41
interface IFunctionWithAMD extends Function {
42
amd?: boolean;
43
}
44
45
interface GlobalWithAMD {
46
define?: IFunctionWithAMD;
47
require?: { config?: (options: { ignoreDuplicateModules: string[] }) => void };
48
monaco?: typeof api;
49
}
50
51
const monacoEnvironment = getMonacoEnvironment();
52
const globalWithAMD = globalThis as GlobalWithAMD;
53
if (monacoEnvironment?.globalAPI || (typeof globalWithAMD.define === 'function' && globalWithAMD.define.amd)) {
54
globalWithAMD.monaco = api;
55
}
56
57
if (typeof globalWithAMD.require !== 'undefined' && typeof globalWithAMD.require.config === 'function') {
58
globalWithAMD.require.config({
59
ignoreDuplicateModules: [
60
'vscode-languageserver-types',
61
'vscode-languageserver-types/main',
62
'vscode-languageserver-textdocument',
63
'vscode-languageserver-textdocument/main',
64
'vscode-nls',
65
'vscode-nls/vscode-nls',
66
'jsonc-parser',
67
'jsonc-parser/main',
68
'vscode-uri',
69
'vscode-uri/index',
70
'vs/basic-languages/typescript/typescript'
71
]
72
});
73
}
74
75