UNPKG

@prisma/language-server

Version:
35 lines (34 loc) 2.8 kB
import { Position } from 'vscode-languageserver'; import type { TextEdit, TextDocument } from 'vscode-languageserver-textdocument'; import { Block } from '../ast'; import { BlockType } from '../types'; import { PrismaSchema } from '../Schema'; export declare function isRelationField(currentLine: string, schema: PrismaSchema): boolean; export declare function isValidFieldName(currentLine: string, position: Position, block: Block, document: TextDocument): boolean; export declare const isDatamodelBlockName: (position: Position, block: Block, schema: PrismaSchema, document: TextDocument) => boolean; export declare function isEnumValue(line: string, position: Position, block: Block, document: TextDocument): boolean; export declare function printLogMessage(currentName: string, newName: string, isBlockRename: boolean, isFieldRename: boolean, isEnumValueRename: boolean, blockType: BlockType): void; /** * Renames references in any '@@index', '@@id' and '@@unique' attributes in the same model. * Renames references in any referenced fields inside a '@relation' attribute in the same model (fields: []). * Renames references inside a '@relation' attribute in other model blocks (references: []). */ export declare function renameReferencesForFieldName(currentName: string, newName: string, schema: PrismaSchema, block: Block, isRelationFieldRename: boolean): EditsMap; /** * Renames references where the current enum value is used as a default value in other model blocks. */ export declare function renameReferencesForEnumValue(currentValue: string, newName: string, schema: PrismaSchema, enumName: string): EditsMap; export type EditsMap = { [documentUri: string]: TextEdit[]; }; /** * Renames references where the model name is used as a relation type in the same and other model blocks. */ export declare function renameReferencesForModelName(currentName: string, newName: string, schema: PrismaSchema): EditsMap; export declare function insertBasicRename(newName: string, currentName: string, document: TextDocument, line: number): EditsMap; export declare function mapExistsAlready(currentLine: string, schema: PrismaSchema, block: Block, isDatamodelBlockRename: boolean): boolean; export declare function insertMapAttribute(currentName: string, position: Position, block: Block, isDatamodelBlockRename: boolean): EditsMap; export declare function extractCurrentName(line: string, isBlockRename: boolean, isEnumValueRename: boolean, isFieldRename: boolean, document: TextDocument, position: Position): string; export declare function appendEdit(edits: EditsMap, documentUri: string, edit: TextEdit): void; export declare function appendEdits(edits: EditsMap, documentUri: string, editsToAppend: TextEdit[]): void; export declare function mergeEditMaps(maps: EditsMap[]): EditsMap;