Skip to content

Commit

Permalink
feat: support using directive for scala-cli
Browse files Browse the repository at this point in the history
  • Loading branch information
tanishiking committed Jul 22, 2022
1 parent fbd1508 commit 31ac9b0
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 7 deletions.
32 changes: 32 additions & 0 deletions src/typescript/Scala.tmLanguage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,9 @@ export const scalaTmLanguage: TmLanguage = {
},
code: {
patterns: [
{
include: '#using-directive'
},
{
include: '#script-header'
},
Expand Down Expand Up @@ -960,6 +963,35 @@ export const scalaTmLanguage: TmLanguage = {
comment: 'For themes: Matching view bounds',
name: 'meta.bounds.scala'
},
'using-directive': {
end: '\\n',
begin: '^\\s*(//>)\\s*(using)[^\\S\\n]+',
beginCaptures: {
'1': {
name: 'punctuation.definition.comment.scala'
},
'2': {
name: 'keyword.other.import.scala'
}
},
patterns: [
{
match: `${idUpper}|${backQuotedId}|${plainid}`,
name: 'entity.name.import.scala'
},
{
match: '\\.',
name: 'punctuation.definition.import'
},
{
include: '#strings'
},
{
include: '#constants'
},
],
name: 'comment.line.shebang.scala'
},
comments: {
patterns: [
{
Expand Down
2 changes: 1 addition & 1 deletion syntaxes/Scala.tmLanguage.json

Large diffs are not rendered by default.

10 changes: 8 additions & 2 deletions tests/snap/comments.test.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
/// SYNTAX TEST "source.scala"
#!/usr/bin/env scala

// single line comments
//> using packaging.version "1.0.0"
//> using scala 2.13
// > using this.is comment
// //> using comment "out"

//> using
object X

/* /**/ /** */ /* comments within comments */ */

Expand Down Expand Up @@ -138,4 +144,4 @@ object Markup {
* 1. Third item
*/
def lists = ()
}
}
38 changes: 35 additions & 3 deletions tests/snap/comments.test.scala.snap
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,40 @@
#^^ source.scala comment.block.shebang.scala
# ^^^^^^^^^^^^^^^^^^ source.scala comment.block.shebang.scala string.unquoted.shebang.scala
>
>// single line comments
>//> using packaging.version "1.0.0"
#^^^ source.scala comment.line.shebang.scala punctuation.definition.comment.scala
# ^ source.scala comment.line.shebang.scala
# ^^^^^ source.scala comment.line.shebang.scala keyword.other.import.scala
# ^ source.scala comment.line.shebang.scala
# ^^^^^^^^^ source.scala comment.line.shebang.scala entity.name.import.scala
# ^ source.scala comment.line.shebang.scala punctuation.definition.import
# ^^^^^^^ source.scala comment.line.shebang.scala entity.name.import.scala
# ^ source.scala comment.line.shebang.scala
# ^ source.scala comment.line.shebang.scala string.quoted.double.scala punctuation.definition.string.begin.scala
# ^^^^^ source.scala comment.line.shebang.scala string.quoted.double.scala
# ^ source.scala comment.line.shebang.scala string.quoted.double.scala punctuation.definition.string.end.scala
>//> using scala 2.13
#^^^ source.scala comment.line.shebang.scala punctuation.definition.comment.scala
# ^ source.scala comment.line.shebang.scala
# ^^^^^ source.scala comment.line.shebang.scala keyword.other.import.scala
# ^ source.scala comment.line.shebang.scala
# ^^^^^ source.scala comment.line.shebang.scala entity.name.import.scala
# ^ source.scala comment.line.shebang.scala
# ^^^^ source.scala comment.line.shebang.scala constant.numeric.scala
>// > using this.is comment
#^^ source.scala comment.line.double-slash.scala punctuation.definition.comment.scala
# ^^^^^^^^^^^^^^^^^^^^^ source.scala comment.line.double-slash.scala
# ^^^^^^^^^^^^^^^^^^^^^^^^ source.scala comment.line.double-slash.scala
>// //> using comment "out"
#^^ source.scala comment.line.double-slash.scala punctuation.definition.comment.scala
# ^^^^^^^^^^^^^^^^^^^^^^^^ source.scala comment.line.double-slash.scala
>
>//> using
#^^ source.scala comment.line.double-slash.scala punctuation.definition.comment.scala
# ^^^^^^^ source.scala comment.line.double-slash.scala
>object X
#^^^^^^ source.scala keyword.declaration.scala
# ^ source.scala
# ^ source.scala entity.name.class.declaration
>
>/* /**/ /** */ /* comments within comments */ */
#^^ source.scala comment.block.scala punctuation.definition.comment.scala
Expand Down Expand Up @@ -521,4 +552,5 @@
# ^ source.scala
# ^^ source.scala meta.parentheses.scala meta.bracket.scala
>}
#^ source.scala punctuation.section.block.end.scala
#^ source.scala punctuation.section.block.end.scala
>
2 changes: 1 addition & 1 deletion tests/snap/end.test.scala.snap
Original file line number Diff line number Diff line change
Expand Up @@ -250,4 +250,4 @@
#^^^ source.scala keyword.declaration.end.scala
# ^ source.scala
# ^^ source.scala entity.name.declaration
>
>

0 comments on commit 31ac9b0

Please sign in to comment.