import { TextDocument } from 'vscode' import { Framework, ScopeRange } from './base' import { LanguageId } from '~/utils' import { RewriteKeySource, RewriteKeyContext, KeyStyle, Config } from '~/core' import { extractionsParsers, DefaultExtractionRules, DefaultDynamicExtractionsRules } from '~/extraction' class NextInternationalFramework extends Framework { id = 'next-international' display = 'next-international' namespaceDelimiter = '.' perferredKeystyle?: KeyStyle = 'flat' namespaceDelimiters = ['.'] namespaceDelimitersRegex = /[\.]/g detection = { packageJSON: [ 'next-international', ], } languageIds: LanguageId[] = [ 'javascript', 'typescript', 'javascriptreact', 'typescriptreact', ] supportAutoExtraction = [ 'javascript', 'typescript', 'javascriptreact', 'typescriptreact', 'html', ] usageMatchRegex = [ // Basic usage '[^\\w\\d]t\\([\'"`]({key})[\'"`]', // Scoped usage '[^\\w\\d]scopedT\\([\'"`]({key})[\'"`]', ] detectHardStrings(doc: TextDocument) { const lang = doc.languageId const text = doc.getText() if (lang === 'html') { return extractionsParsers.html.detect( text, DefaultExtractionRules, DefaultDynamicExtractionsRules, Config.extractParserHTMLOptions, //