Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
markusressel committed Mar 16, 2024
1 parent 41ba750 commit a47763b
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 77 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package de.markusressel.kodeeditor.library.compose

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.material.LocalTextStyle
Expand Down Expand Up @@ -29,71 +30,6 @@ import de.markusressel.kodehighlighter.core.rule.RuleHelper
import de.markusressel.kodehighlighter.core.rule.RuleMatch
import de.markusressel.kodehighlighter.core.ui.KodeTextField

data class DummyData(
val headingRule: LanguageRule = object : LanguageRule {
override fun findMatches(text: CharSequence): List<RuleMatch> {
val PATTERN = "^\\s{0,3}#{1,6} .+".toRegex(RegexOption.MULTILINE)
return RuleHelper.findRegexMatches(text, PATTERN)
}
},

val dummyRuleBook: LanguageRuleBook = object : LanguageRuleBook {
override fun getRules() = listOf(
headingRule
)
},

val colorScheme: ColorScheme<SpanStyle> = object : ColorScheme<SpanStyle> {
override fun getStyles(type: LanguageRule): Set<StyleFactory<SpanStyle>> {
return setOf { SpanStyle(Color(0xFFFF6D00)) }
}
}
)

private val dummyData = DummyData()

@Preview
@Composable
private fun KodeEditorPreview() {
var text by remember {
val initialText = """
# Hello World
Code: `readResourceFileAsText(R.raw.sample_text)`
## Secondary headline
This is a listing:
* 1
* 2
* 3
# Code Block
```
This is a code block.
```
""".trimIndent()
mutableStateOf(TextFieldValue(
text = initialText
))
}

val languageRuleBook by remember {
mutableStateOf(dummyData.dummyRuleBook)
}
val colorScheme by remember {
mutableStateOf(dummyData.colorScheme)
}

KodeEditor(
text = text,
languageRuleBook = languageRuleBook,
colorScheme = colorScheme,
onValueChange = { text = it }
)
}

/**
* Compose version of the KodeEditorLayout
*
Expand Down Expand Up @@ -206,3 +142,70 @@ fun KodeEditor(
}
}
}


private data class DummyData(
val headingRule: LanguageRule = object : LanguageRule {
override fun findMatches(text: CharSequence): List<RuleMatch> {
val PATTERN = "^\\s{0,3}#{1,6} .+".toRegex(RegexOption.MULTILINE)
return RuleHelper.findRegexMatches(text, PATTERN)
}
},

val dummyRuleBook: LanguageRuleBook = object : LanguageRuleBook {
override fun getRules() = listOf(
headingRule
)
},

val colorScheme: ColorScheme<SpanStyle> = object : ColorScheme<SpanStyle> {
override fun getStyles(type: LanguageRule): Set<StyleFactory<SpanStyle>> {
return setOf { SpanStyle(Color(0xFFFF6D00)) }
}
}
)

private val dummyData = DummyData()

@Preview
@Composable
private fun KodeEditorPreview() {
var text by remember {
val initialText = """
# Hello World
Code: `readResourceFileAsText(R.raw.sample_text)`
## Secondary headline
This is a listing:
* 1
* 2
* 3
# Code Block
```
This is a code block.
```
""".trimIndent()
mutableStateOf(TextFieldValue(
text = initialText
))
}

val languageRuleBook by remember {
mutableStateOf(dummyData.dummyRuleBook)
}
val colorScheme by remember {
mutableStateOf(dummyData.colorScheme)
}

KodeEditor(
modifier = Modifier.fillMaxSize(),
text = text,
languageRuleBook = languageRuleBook,
colorScheme = colorScheme,
onValueChange = { text = it }
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,6 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp


@Preview
@Composable
private fun LineNumbersPreview() {
val text = (1..10).joinToString(separator = "\n", prefix = "Line: ")
LineNumbers(
text = text,
backgroundColor = Color.White,
textColor = Color.Black,
)
}

@Composable
fun LineNumbers(
modifier: Modifier = Modifier,
Expand Down Expand Up @@ -55,3 +43,16 @@ fun LineNumbers(
}
}


@Preview(widthDp = 100, heightDp = 500, backgroundColor = 0xFF00FF)
@Composable
private fun LineNumbersPreview() {
val text = (1..10).joinToString(separator = "\n", prefix = "Line: ")
LineNumbers(
text = text,
backgroundColor = Color.White,
textColor = Color.Black,
)
}


0 comments on commit a47763b

Please sign in to comment.