From 666fcf758ee614f51853542177c20cd29f664af9 Mon Sep 17 00:00:00 2001 From: Naulian Date: Sat, 7 Oct 2023 23:34:14 +0630 Subject: [PATCH] released 1.0.1 --- .../java/com/naulian/glow/MainActivity.kt | 5 +++-- glow/build.gradle.kts | 2 +- .../java/com/naulian/glow/tokens/JTokens.kt | 21 +++++++++++++++---- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/naulian/glow/MainActivity.kt b/app/src/main/java/com/naulian/glow/MainActivity.kt index 6f64e8f..844d0f4 100644 --- a/app/src/main/java/com/naulian/glow/MainActivity.kt +++ b/app/src/main/java/com/naulian/glow/MainActivity.kt @@ -22,8 +22,9 @@ class MainActivity : AppCompatActivity() { binding.apply { readStringAsset(filename) { result -> result.onSuccess { - textInput.setText(it) - val highlighted = glowSyntax(it, language, CodeTheme.kotlinLight) + val source = "int foo(int[] numbers) {\n return 0;\n} " + textInput.setText(source) + val highlighted = glowSyntax(source, language, CodeTheme.kotlinLight) textSource.text = highlighted.raw textOutput.setCodeTheme(CodeTheme.kotlinLight.normal) textOutput.text = highlighted.spanned diff --git a/glow/build.gradle.kts b/glow/build.gradle.kts index 2505fdb..4f7d65c 100644 --- a/glow/build.gradle.kts +++ b/glow/build.gradle.kts @@ -52,7 +52,7 @@ afterEvaluate { from(components["release"]) groupId = "com.github.cinkhangin" artifactId = "glow" - version = "1.0.0" + version = "1.0.1" } } } diff --git a/glow/src/main/java/com/naulian/glow/tokens/JTokens.kt b/glow/src/main/java/com/naulian/glow/tokens/JTokens.kt index c7f73bb..b8dd683 100644 --- a/glow/src/main/java/com/naulian/glow/tokens/JTokens.kt +++ b/glow/src/main/java/com/naulian/glow/tokens/JTokens.kt @@ -34,19 +34,31 @@ object JTokens { } //based on next - when(modified.type){ - Type.COLON ->{ + when (modified.type) { + Type.COLON -> { if (prevToken.type == Type.ARGUMENT) { tokens[prevIndex] = prevToken.copy(type = Type.PARAM) } } + Type.LEFT_PARENTHESES -> { + if (prevToken.type == Type.VAR_NAME) { + tokens[prevIndex] = prevToken.copy(type = Type.FUNC_NAME) + } + tokens.getOrNull(prevIndex - 1)?.let { - if(it.type == Type.DOT){ + if (it.type == Type.DOT) { tokens[prevIndex] = prevToken.copy(type = Type.FUNC_CALL) } } } + + Type.RIGHT_BRACKET -> { + if (prevToken.type == Type.VAR_NAME) { + tokens[prevIndex] = prevToken.copy(type = Type.LEFT_BRACKET) + } + } + else -> Unit } @@ -62,7 +74,7 @@ object JTokens { } private fun argumentToken(token: Token): Token { - return if(token.type != Type.IDENTIFIER) token + return if (token.type != Type.IDENTIFIER) token else token.copy(type = Type.ARGUMENT) } @@ -126,6 +138,7 @@ private class JLexer(private val input: String) { else -> createToken(Type.SLASH_FORWARD, char.toString()) } } + '\'' -> readChar() '\"' -> readString() in 'a'..'z', in 'A'..'Z', '_' -> readIdentifier()