public getArtifactsCodeActions()

in src/jdtls/artifactSearcher.ts [95:135]


    public getArtifactsCodeActions(document: vscode.TextDocument, context: vscode.CodeActionContext, _selectRange: vscode.Range): vscode.CodeAction[] | undefined {
        if (!isJavaExtActivated()) {
            return undefined;
        }

        if (!this.initialized) {
            this.initialize().catch();
            return undefined;
        }

        const diagnostics: vscode.Diagnostic[] = context.diagnostics.filter(diagnostic => {
            return diagnosticIndicatesUnresolvedType(diagnostic, document);
        });
        if (diagnostics.length > 0) {
            const range: vscode.Range = diagnostics[0].range;
            const className: string = document.getText(range);
            const uri: string = document.uri.toString();
            const line: number = range.start.line;
            const character: number = range.start.character;
            const length: number = document.offsetAt(range.end) - document.offsetAt(range.start);
            const command: vscode.Command = {
                title: TITLE_RESOLVE_UNKNOWN_TYPE,
                command: COMMAND_SEARCH_ARTIFACT,
                arguments: [{
                    className,
                    uri: encodeBase64(uri),
                    line,
                    character,
                    length
                }]
            };
            const codeAction: vscode.CodeAction = {
                title: `${TITLE_RESOLVE_UNKNOWN_TYPE} '${className}'`,
                command,
                kind: vscode.CodeActionKind.QuickFix
            };
            return [codeAction];
        } else {
            return [];
        }
    }