@@ -18,6 +18,8 @@ import { BorderTransformer } from '../../src/modelFactory/transformers/borderTra
1818import { SelectionInterpreter } from '../../src/modelFactory/selectionInterpreter' ;
1919import { PadCalculatorSelector } from '../../src/padCalculation/padCalculatorSelector' ;
2020import { AlignmentMarkerStrategy } from '../../src/viewModelFactories/alignmentMarking' ;
21+ import { TableDocumentPrettyfier } from '../../src/extension/tableDocumentPrettyfier' ;
22+ import { TableFinder } from '../../src/tableFinding/tableFinder' ;
2123
2224export class PrettyfierFromFile {
2325 private readonly _logger : ILogger ;
@@ -27,44 +29,51 @@ export class PrettyfierFromFile {
2729 }
2830
2931 public assertPrettyfiedAsExpected ( fileNamePrefix : string ) : void {
30- this . assertEditsPrettyfied (
31- this . makeTextEdit ( this . readFileContents ( ` ${ fileNamePrefix } -input.md` ) ) ,
32- this . readFileContents ( `${ fileNamePrefix } -expected.md` )
33- ) ;
32+ const inputFileContents = this . readFileContents ( ` ${ fileNamePrefix } -input.md` ) ;
33+ const edits = this . makeTextEdit ( inputFileContents ) ;
34+ const expectedFileContents = this . readFileContents ( `${ fileNamePrefix } -expected.md` ) ;
35+ this . assertEditsPrettyfied ( inputFileContents , edits , expectedFileContents ) ;
3436 }
3537
36- private assertEditsPrettyfied ( edits : vscode . TextEdit [ ] , expected : string ) : void {
37- assert . equal ( edits . length , 1 ) ;
38+ private assertEditsPrettyfied ( originalInput : string , edits : vscode . TextEdit [ ] , expected : string ) : void {
39+ const doc = new MarkdownTextDocumentStub ( originalInput ) ;
40+ doc . applyEdits ( edits ) ;
41+ const actual = doc . getText ( ) ;
42+
3843 const expectedLines = expected . split ( / \r \n | \r | \n / ) ;
39- const actualLines = edits [ 0 ] . newText . split ( / \r \n | \r | \n / ) ;
44+ const actualLines = actual . split ( / \r \n | \r | \n / ) ;
45+
4046 assert . equal ( actualLines . length , expectedLines . length ) ;
4147 for ( let i = 0 ; i < actualLines . length ; i ++ )
4248 assert . equal ( actualLines [ i ] , expectedLines [ i ] ) ;
4349 }
4450
4551 private makeTextEdit ( fileContents : string ) : vscode . TextEdit [ ] {
4652 const doc = new MarkdownTextDocumentStub ( fileContents ) ;
47- return this . createPrettyfier ( ) . provideDocumentRangeFormattingEdits ( doc , doc . getFullRange ( ) , null , null ) ;
53+ return this . createPrettyfier ( ) . provideDocumentFormattingEdits ( doc , null , null ) ;
4854 }
4955
5056 private readFileContents ( fileName : string ) {
5157 return fs . readFileSync ( path . resolve ( __dirname , fileName ) , 'utf-8' ) ;
5258 }
5359
54- private createPrettyfier ( ) : TableDocumentRangePrettyfier {
55- return new TableDocumentRangePrettyfier (
56- new TableFactory (
57- new AlignmentFactory ( ) ,
58- new SelectionInterpreter ( false ) ,
59- new TrimmerTransformer ( new BorderTransformer ( null ) )
60- ) ,
61- new TableValidator ( new SelectionInterpreter ( false ) ) ,
62- new TableViewModelFactory ( new RowViewModelFactory (
63- new ContentPadCalculator ( new PadCalculatorSelector ( ) , " " ) ,
64- new AlignmentMarkerStrategy ( ":" )
65- ) ) ,
66- new TableStringWriter ( ) ,
67- [ this . _logger ]
60+ private createPrettyfier ( ) : TableDocumentPrettyfier {
61+ return new TableDocumentPrettyfier (
62+ new TableFinder ( new TableValidator ( new SelectionInterpreter ( true ) ) ) ,
63+ new TableDocumentRangePrettyfier (
64+ new TableFactory (
65+ new AlignmentFactory ( ) ,
66+ new SelectionInterpreter ( false ) ,
67+ new TrimmerTransformer ( new BorderTransformer ( null ) )
68+ ) ,
69+ new TableValidator ( new SelectionInterpreter ( false ) ) ,
70+ new TableViewModelFactory ( new RowViewModelFactory (
71+ new ContentPadCalculator ( new PadCalculatorSelector ( ) , " " ) ,
72+ new AlignmentMarkerStrategy ( ":" )
73+ ) ) ,
74+ new TableStringWriter ( ) ,
75+ [ this . _logger ]
76+ )
6877 ) ;
6978 }
7079}
0 commit comments