UNPKG

sowstring

Version:
118 lines (110 loc) 3.39 kB
class Cache [OK] constructor (Options) push (item) flush (TreeBuilder) flushExceptTrailingWhitespaces (TreeBuilder) class TreeBuilder [OK] constructor (Options) enter (Node) push (Leaf) leave () class Indent [OK] levels: Array enter (indent) leave () getLevelFromIndent (indent) getIndentFromLevel (level) isValidIndent (indent) isValidLevel (level) isLevel (level) class Interceptor [OK] setProp (name, value) getProp (name) setSibling () setChild () setParent () setBeforeNext () touchIndent () discard () startIndent: String readonly text: String level: Number indent: Number class Options [OK] constructor (userOptions) emptyLines: Boolean fixIndent: Boolean useHeading: Boolean tabReplace: String | Number intercept: Function | null error: Function | null class Leaf [OK] parent: Node lineNum: Number level: Number indent: Number text: String get isNode: false get empty: Boolean class Node [OK] children: Array parent: Node lineNum: Number level: Number indent: Number heading: String get isNode: true push (item) SowString (source, options) - Para cada linha, faça: - Se o item for linha vazia (significa que são aceitos, pois não foram removidos na RegExp) [OK] - Adicione no cache - Próxima linha - Se houver callback interceptor [OK] - Chame a função - Se foi marcado para rejeição - Próxima linha - Se foi marcado para cache: - Adiciona no cache - Próxima linha - Se erro de indentação (checagem) e callback de erro: [OK] - Chame a função - Se foi marcado para rejeição - Próxima linha - Se foi marcado para cache: - Adiciona no cache - Próxima linha - Se erro de indentação (nova checagem, a menos que não haja callback de erro): [OK] - Se opção para consertar automaticamente - Adicione no cache - Próxima linha Senão, se não será rejeitado: - Dispare um erro - Calcule o nível pela indentação ou o contrário [OK] - Escolha o primeiro caso verdadeiro: Caso seja marcado para rejeição: [Feito Antes] - Próxima linha Caso seja marcado para cache: [Feito Antes] - Adicione no cache - Próxima linha Caso seja nível de irmão: [OK] - Adicione itens do cache - Adicione na árvore - Próxima linha Caso seja nível de filho: [OK] - Adicione itens do cache, exceto últimos em branco (por quê?) - Entre na indentação - Entre na árvore - Adicione itens do cache - Adicione na árvore - Próxima linha Caso seja nível de pai: [OK] - Enquanto não estiver no nível: - Volte um nível na indentação - Volte um nível na árvore - Adicione itens do cache - Adicione na árvore - Próxima linha Se nenhum caso funcionar - um erro interno e caso de exceção não tratada - Adicione o que restar no cache