@prisma/language-server
Version:
Prisma Language Server
31 lines (30 loc) • 1.31 kB
TypeScript
import { Position, Range } from 'vscode-languageserver';
import { BlockType } from '../types';
import { PrismaSchema, SchemaDocument } from '../Schema';
export interface Block {
type: BlockType;
range: Range;
nameRange: Range;
name: string;
definingDocument: SchemaDocument;
}
export declare function getBlocks(schema: PrismaSchema): Generator<Block, void, void>;
export declare function getDatamodelBlock(blockName: string, schema: PrismaSchema): Block | void;
export declare function getFieldsFromCurrentBlock(schema: PrismaSchema, block: Block, position?: Position): string[];
export type FoundLocation = {
document: SchemaDocument;
lineIndex: number;
};
export type RenameFieldLocation = {
fieldName: string;
locations: FoundLocation[];
};
export declare function getFieldTypesFromCurrentBlock(schema: PrismaSchema, block: Block, position?: Position): {
fieldTypes: Map<string, RenameFieldLocation>;
fieldTypeNames: Record<string, string>;
};
export declare function getCompositeTypeFieldsRecursively(schema: PrismaSchema, compositeTypeFieldNames: string[], fieldTypesFromBlock: {
fieldTypes: Map<string, RenameFieldLocation>;
fieldTypeNames: Record<string, string>;
}): string[];
export declare const getDocumentationForBlock: (block: Block) => string[];