Fix `as` import renaming in Scala 3 (#175)

pull/481/head
Anton Sviridov 2023-01-24 16:01:49 +07:00 committed by GitHub
parent 7b2ed6500a
commit d67e84cded
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 63 additions and 9 deletions

@ -263,26 +263,56 @@ Imports: Rename (Scala 3 Syntax)
================================ ================================
import lang.System.{lineSeparator as EOL} import lang.System.{lineSeparator as EOL}
import lang.System.lineSeparator as EOL
import lang.System.lineSeparator as _
--- ---
(compilation_unit (compilation_unit
(import_declaration (import_declaration
(identifier) (identifier) (identifier)
(namespace_selectors (renamed_identifier (identifier) (identifier))))) (identifier)
(namespace_selectors
(as_renamed_identifier
(identifier)
(identifier))))
(import_declaration
(identifier)
(identifier)
(as_renamed_identifier
(identifier)
(identifier)))
(import_declaration
(identifier)
(identifier)
(as_renamed_identifier
(identifier)
(wildcard))))
================================ ================================
Imports: Rename Imports: Rename
================================ ================================
import lang.System.{lineSeparator => EOL} import lang.System.{lineSeparator => EOL}
import lang.System.{lineSeparator => _}
--- ---
(compilation_unit (compilation_unit
(import_declaration (import_declaration
(identifier) (identifier) (identifier)
(namespace_selectors (renamed_identifier (identifier) (identifier))))) (identifier)
(namespace_selectors
(arrow_renamed_identifier
(identifier)
(identifier))))
(import_declaration
(identifier)
(identifier)
(namespace_selectors
(arrow_renamed_identifier
(identifier)
(wildcard)))))
================================= =================================
@ -1190,6 +1220,8 @@ Exports (Scala 3)
export scanUnit.scan export scanUnit.scan
export printUnit.{status as _, *} export printUnit.{status as _, *}
export printUnit.Test as Hello
export printUnit.Test as _
--- ---
@ -1200,7 +1232,18 @@ export printUnit.{status as _, *}
(export_declaration (export_declaration
(identifier) (identifier)
(namespace_selectors (namespace_selectors
(renamed_identifier (as_renamed_identifier
(identifier) (identifier)
(wildcard)) (wildcard))
(namespace_wildcard)))) (namespace_wildcard)))
(export_declaration
(identifier)
(as_renamed_identifier
(identifier)
(identifier)))
(export_declaration
(identifier)
(as_renamed_identifier
(identifier)
(wildcard)))
)

@ -199,6 +199,10 @@ module.exports = grammar({
choice( choice(
$.namespace_wildcard, $.namespace_wildcard,
$.namespace_selectors, $.namespace_selectors,
// Only allowed in Scala 3
// ImportExpr ::=
// SimpleRef {. id} . ImportSpec | SimpleRef as id
$.as_renamed_identifier
), ),
)), )),
)), )),
@ -215,7 +219,8 @@ module.exports = grammar({
$._namespace_given_by_type, $._namespace_given_by_type,
$.namespace_wildcard, $.namespace_wildcard,
$.identifier, $.identifier,
$.renamed_identifier $.arrow_renamed_identifier,
$.as_renamed_identifier
)), )),
'}' '}'
), ),
@ -223,9 +228,15 @@ module.exports = grammar({
// deprecated: Remove when highlight query is updated for Neovim // deprecated: Remove when highlight query is updated for Neovim
_import_selectors: $ => alias($.namespace_selectors, $.import_selectors), _import_selectors: $ => alias($.namespace_selectors, $.import_selectors),
renamed_identifier: $ => seq( arrow_renamed_identifier: $ => seq(
field('name', $.identifier), field('name', $.identifier),
choice('=>', 'as'), '=>',
field('alias', choice($.identifier, $.wildcard))
),
as_renamed_identifier: $ => seq(
field('name', $.identifier),
'as',
field('alias', choice($.identifier, $.wildcard)) field('alias', choice($.identifier, $.wildcard))
), ),