fmt: keep comments between and after imports (#8637)

pull/8650/head
Lukas Neubert 2021-02-08 18:48:48 +01:00 committed by GitHub
parent cb1f63f765
commit 8cb01ba8db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 3 deletions

View File

@ -285,8 +285,9 @@ pub:
mod_pos token.Position
alias_pos token.Position
pub mut:
syms []ImportSymbol // the list of symbols in `import {symbol1, symbol2}`
comments []Comment
syms []ImportSymbol // the list of symbols in `import {symbol1, symbol2}`
comments []Comment
next_comments []Comment
}
// import symbol,for import {symbol} syntax

View File

@ -280,6 +280,7 @@ pub fn (mut f Fmt) imports(imports []ast.Import) {
already_imported[import_text] = true
f.out_imports.writeln(import_text)
f.import_comments(imp.comments, inline: true)
f.import_comments(imp.next_comments, {})
num_imports++
}
if num_imports > 0 {

View File

@ -1,5 +1,11 @@
// import time This should be commented out
import os
// between
import rand
// first between
// second between
import semver
// after the last import
// also after the last import
// another comment after imports
// this comment does not belong to the imports anymore

View File

@ -1918,6 +1918,7 @@ fn (mut p Parser) import_stmt() ast.Import {
}
}
import_node.comments = p.eat_comments(same_line: true)
import_node.next_comments = p.eat_comments(follow_up: true)
p.imports[mod_alias] = mod_name
// if mod_name !in p.table.imports {
p.table.imports << mod_name