codeActions.ts — astro Source File
Architecture documentation for codeActions.ts, a typescript file in the astro codebase. 5 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 7dad0fbf_f2ca_9794_de17_4761c6009c25["codeActions.ts"] 38342bd4_11df_7a37_2e70_333185fe2db2["../../core/index.js"] 7dad0fbf_f2ca_9794_de17_4761c6009c25 --> 38342bd4_11df_7a37_2e70_333185fe2db2 0a26fa81_9fee_4874_879c_ce0b5dc3c998["./utils.js"] 7dad0fbf_f2ca_9794_de17_4761c6009c25 --> 0a26fa81_9fee_4874_879c_ce0b5dc3c998 6857b6b2_4d48_bfb0_0a0e_8e2e52fabb56["language-server"] 7dad0fbf_f2ca_9794_de17_4761c6009c25 --> 6857b6b2_4d48_bfb0_0a0e_8e2e52fabb56 1b7f3f22_7c1e_f584_78bf_c28212c711a6["language-service"] 7dad0fbf_f2ca_9794_de17_4761c6009c25 --> 1b7f3f22_7c1e_f584_78bf_c28212c711a6 abeb339e_cdba_0d7f_6b7f_3696c1eb86f9["vscode-uri"] 7dad0fbf_f2ca_9794_de17_4761c6009c25 --> abeb339e_cdba_0d7f_6b7f_3696c1eb86f9 style 7dad0fbf_f2ca_9794_de17_4761c6009c25 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { TextDocumentEdit } from '@volar/language-server';
import type { CodeAction, LanguageServiceContext } from '@volar/language-service';
import { URI } from 'vscode-uri';
import { AstroVirtualCode } from '../../core/index.js';
import { mapEdit } from './utils.js';
export function enhancedProvideCodeActions(
codeActions: CodeAction[],
context: LanguageServiceContext,
) {
return codeActions.map((codeAction) => mapCodeAction(codeAction, context));
}
export function enhancedResolveCodeAction(codeAction: CodeAction, context: LanguageServiceContext) {
/**
* TypeScript code actions don't come through here, as they're considered to be already fully resolved
* A lot of the code actions we'll encounter here are more tricky ones, such as fixAll or refactor
* For now, it seems like we don't need to do anything special here, but we'll keep this function around
*/
return mapCodeAction(codeAction, context);
}
function mapCodeAction(codeAction: CodeAction, context: LanguageServiceContext) {
if (!codeAction.edit || !codeAction.edit.documentChanges) return codeAction;
codeAction.edit.documentChanges = codeAction.edit.documentChanges.map((change) => {
if (TextDocumentEdit.is(change)) {
const decoded = context.decodeEmbeddedDocumentUri(URI.parse(change.textDocument.uri));
const sourceScript = decoded && context.language.scripts.get(decoded[0]);
const virtualCode = decoded && sourceScript?.generated?.embeddedCodes.get(decoded[1]);
const root = sourceScript?.generated?.root;
if (!virtualCode || !(root instanceof AstroVirtualCode)) return change;
change.edits = change.edits.map((edit) => mapEdit(edit, root, virtualCode.languageId));
}
return change;
});
return codeAction;
}
Domain
Subdomains
Dependencies
- ../../core/index.js
- ./utils.js
- language-server
- language-service
- vscode-uri
Source
Frequently Asked Questions
What does codeActions.ts do?
codeActions.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RoutingSystem subdomain.
What functions are defined in codeActions.ts?
codeActions.ts defines 3 function(s): enhancedProvideCodeActions, enhancedResolveCodeAction, mapCodeAction.
What does codeActions.ts depend on?
codeActions.ts imports 5 module(s): ../../core/index.js, ./utils.js, language-server, language-service, vscode-uri.
Where is codeActions.ts in the architecture?
codeActions.ts is located at packages/language-tools/language-server/src/plugins/typescript/codeActions.ts (domain: CoreAstro, subdomain: RoutingSystem, directory: packages/language-tools/language-server/src/plugins/typescript).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free