mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-24 20:26:08 +00:00
74 lines
3.0 KiB
TypeScript
74 lines
3.0 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { EditorOptions, WrappingIndent, EditorAutoIndentStrategy } from './common/config/editorOptions.js';
|
|
import { createMonacoBaseAPI } from './common/services/editorBaseApi.js';
|
|
import { createMonacoEditorAPI } from './standalone/browser/standaloneEditor.js';
|
|
import { createMonacoLanguagesAPI } from './standalone/browser/standaloneLanguages.js';
|
|
import { FormattingConflicts } from './contrib/format/browser/format.js';
|
|
import { getMonacoEnvironment } from '../base/browser/browser.js';
|
|
|
|
// Set defaults for standalone editor
|
|
EditorOptions.wrappingIndent.defaultValue = WrappingIndent.None;
|
|
EditorOptions.glyphMargin.defaultValue = false;
|
|
EditorOptions.autoIndent.defaultValue = EditorAutoIndentStrategy.Advanced;
|
|
EditorOptions.overviewRulerLanes.defaultValue = 2;
|
|
|
|
// We need to register a formatter selector which simply picks the first available formatter.
|
|
// See https://github.com/microsoft/monaco-editor/issues/2327
|
|
FormattingConflicts.setFormatterSelector((formatter, document, mode) => Promise.resolve(formatter[0]));
|
|
|
|
const api = createMonacoBaseAPI();
|
|
api.editor = createMonacoEditorAPI();
|
|
api.languages = createMonacoLanguagesAPI();
|
|
export const CancellationTokenSource = api.CancellationTokenSource;
|
|
export const Emitter = api.Emitter;
|
|
export const KeyCode = api.KeyCode;
|
|
export const KeyMod = api.KeyMod;
|
|
export const Position = api.Position;
|
|
export const Range = api.Range;
|
|
export const Selection = api.Selection;
|
|
export const SelectionDirection = api.SelectionDirection;
|
|
export const MarkerSeverity = api.MarkerSeverity;
|
|
export const MarkerTag = api.MarkerTag;
|
|
export const Uri = api.Uri;
|
|
export const Token = api.Token;
|
|
export const editor = api.editor;
|
|
export const languages = api.languages;
|
|
|
|
interface IFunctionWithAMD extends Function {
|
|
amd?: boolean;
|
|
}
|
|
|
|
interface GlobalWithAMD {
|
|
define?: IFunctionWithAMD;
|
|
require?: { config?: (options: { ignoreDuplicateModules: string[] }) => void };
|
|
monaco?: typeof api;
|
|
}
|
|
|
|
const monacoEnvironment = getMonacoEnvironment();
|
|
const globalWithAMD = globalThis as GlobalWithAMD;
|
|
if (monacoEnvironment?.globalAPI || (typeof globalWithAMD.define === 'function' && globalWithAMD.define.amd)) {
|
|
globalWithAMD.monaco = api;
|
|
}
|
|
|
|
if (typeof globalWithAMD.require !== 'undefined' && typeof globalWithAMD.require.config === 'function') {
|
|
globalWithAMD.require.config({
|
|
ignoreDuplicateModules: [
|
|
'vscode-languageserver-types',
|
|
'vscode-languageserver-types/main',
|
|
'vscode-languageserver-textdocument',
|
|
'vscode-languageserver-textdocument/main',
|
|
'vscode-nls',
|
|
'vscode-nls/vscode-nls',
|
|
'jsonc-parser',
|
|
'jsonc-parser/main',
|
|
'vscode-uri',
|
|
'vscode-uri/index',
|
|
'vs/basic-languages/typescript/typescript'
|
|
]
|
|
});
|
|
}
|