📄 createProvideCodeActions¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 1 |
| 📦 Imports | 4 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/website/src/components/editor/createProvideCodeActions.ts
📦 Imports¶
| Name | Source |
|---|---|
Monaco |
monaco-editor |
LintCodeAction |
../linter/utils |
createEditOperation |
../linter/utils |
createURI |
../linter/utils |
Functions¶
createProvideCodeActions(fixes: Map<string, LintCodeAction[]>): Monaco.languages.CodeActionProvider¶
Parameters:
fixesMap<string, LintCodeAction[]>
Returns: Monaco.languages.CodeActionProvider
Calls:
fixes.getcreateURI (from ../linter/utils)createEditOperation (from ../linter/utils)actions.push
Internal Comments:
Code
export function createProvideCodeActions(
fixes: Map<string, LintCodeAction[]>,
): Monaco.languages.CodeActionProvider {
return {
provideCodeActions(
model,
_range,
context,
): Monaco.languages.ProviderResult<Monaco.languages.CodeActionList> {
if (context.only !== 'quickfix') {
return {
actions: [],
dispose(): void {
/* nop */
},
};
}
const actions: Monaco.languages.CodeAction[] = [];
for (const marker of context.markers) {
const messages = fixes.get(createURI(marker)) ?? [];
for (const message of messages) {
const editOperation = createEditOperation(model, message);
actions.push({
diagnostics: [marker],
edit: {
edits: [
{
resource: model.uri,
// monaco for ts >= 4.8
textEdit: editOperation,
// @ts-expect-error monaco for ts < 4.8
edit: editOperation,
},
],
},
isPreferred: message.isPreferred,
kind: 'quickfix',
title: message.message + (message.code ? ` (${message.code})` : ''),
});
}
}
return {
actions,
dispose(): void {
/* nop */
},
};
},
};
}
Generated by Syntax Scribe