Skip to content

Commit

Permalink
Fight off detekt
Browse files Browse the repository at this point in the history
  • Loading branch information
h0tk3y committed Jun 12, 2024
1 parent 4a79f86 commit 45a93ba
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 71 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ object MutationUtils {
mutationDefinition.parameters.forEach { param ->
when (param.kind) {
MutationParameterKind.IntParameter ->
argument(param as MutationParameter<Int>, 42)
argument(param as MutationParameter<Int>, DEFAULT_INT)

MutationParameterKind.StringParameter ->
argument(param as MutationParameter<String>, "com.example.foo.bar")
Expand All @@ -64,6 +64,8 @@ object MutationUtils {
file.writeText(it.newDocumentText)
}
}

private const val DEFAULT_INT = 42
}

private fun <T> emptyListNodeDataContainer(): NodeData<List<T>> = object : NodeData<List<T>> {
Expand All @@ -75,7 +77,7 @@ private fun <T> emptyListNodeDataContainer(): NodeData<List<T>> = object : NodeD

/**
* Copy-pasted from `gradle/gradle`
* TODO: Consider making it a public utility there
* We should onsider making it a public utility there
*/
internal class OverlayRoutedNodeDataContainer<DNode, DElement : DNode, DProperty : DNode, DError : DNode>(
private val overlayOriginContainer: OverlayOriginContainer,
Expand All @@ -101,4 +103,4 @@ internal class OverlayRoutedNodeDataContainer<DNode, DElement : DNode, DProperty
is FromUnderlay -> underlay.data(node)
is FromOverlay -> overlay.data(node)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,6 @@ class GetDeclarativeDocuments : GetModelAction.GetCompositeModelAction<ResolvedD
sources: List<SourceFileViewInput>,
highlightedSourceRangeByFileId: MutableState<Map<String, IntRange>>
) {

Column {
val sourceFileData by derivedStateOf {
sources.map { (identifier, content) ->
Expand Down Expand Up @@ -221,19 +220,58 @@ class GetDeclarativeDocuments : GetModelAction.GetCompositeModelAction<ResolvedD
)
}
}

@Composable
@OptIn(ExperimentalMaterial3Api::class)
private fun DeclarativeFileDropDown(
rootDir: File,
declarativeBuildFiles: List<File>,
state: MutableState<File>
) {
var expanded by remember { mutableStateOf(false) }
ExposedDropdownMenuBox(
expanded = expanded,
onExpandedChange = { expanded = !expanded }
) {
BuildTextField(
modifier = Modifier.menuAnchor(),
value = state.value.relativeTo(rootDir).path,
onValueChange = { state.value = rootDir.resolve(it) },
readOnly = true,
label = { Text("Project definitions") },
trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) },
colors = ExposedDropdownMenuDefaults.outlinedTextFieldColors(),
)
ExposedDropdownMenu(
expanded = expanded,
onDismissRequest = { expanded = false }
) {
declarativeBuildFiles.forEach { file ->
DropdownMenuItem(
text = { Text(file.relativeTo(rootDir).path) },
onClick = {
state.value = file
expanded = false
},
contentPadding = ExposedDropdownMenuDefaults.ItemContentPadding,
)
}
}
}
}
}

private
class ModelTreeRendering(
val resolutionContainer: DocumentResolutionContainer,
val highlightingContext: HighlightingContext,
val mutationApplicability: NodeData<List<ApplicableMutation>>,
val onRunMutation: (MutationDefinition) -> Unit
) {
private val indentDp = MaterialTheme.spacing.level2

private
class ModelTreeRendering(
val resolutionContainer: DocumentResolutionContainer,
val highlightingContext: HighlightingContext,
val mutationApplicability: NodeData<List<ApplicableMutation>>,
val onRunMutation: (MutationDefinition) -> Unit
)


@Composable
private fun ModelTreeRendering.ElementInfoOrNothingDeclared(
fun ModelTreeRendering.ElementInfoOrNothingDeclared(
type: DataClass?,
node: DeclarativeDocument.DocumentNode.ElementNode?,
indentLevel: Int,
Expand Down Expand Up @@ -334,25 +372,9 @@ class GetDeclarativeDocuments : GetModelAction.GetCompositeModelAction<ResolvedD
)
}

@Composable
private fun ModelTreeRendering.WithApplicableMutations(
element: DeclarativeDocument.DocumentNode?,
content: @Composable () -> Unit
) {
Row(
horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacing.level1),
verticalAlignment = Alignment.CenterVertically
) {
content()

if (element != null) {
ApplicableMutations(element)
}
}
}

@Composable
private fun ModelTreeRendering.PropertyInfo(
private fun PropertyInfo(
propertyNode: DeclarativeDocument.DocumentNode.PropertyNode?,
property: DataProperty
) {
Expand All @@ -367,9 +389,26 @@ class GetDeclarativeDocuments : GetModelAction.GetCompositeModelAction<ResolvedD
)
}
}

@Composable
private fun WithApplicableMutations(
element: DeclarativeDocument.DocumentNode?,
content: @Composable () -> Unit
) {
Row(
horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacing.level1),
verticalAlignment = Alignment.CenterVertically
) {
content()

if (element != null) {
ApplicableMutations(element)
}
}
}

@Composable
private fun ModelTreeRendering.ApplicableMutations(node: DeclarativeDocument.DocumentNode) {
private fun ApplicableMutations(node: DeclarativeDocument.DocumentNode) {
mutationApplicability.data(node).forEach {
val tooltip = "Apply mutation: ${it.mutationDefinition.name}"
PlainTextTooltip(tooltip) {
Expand All @@ -386,45 +425,6 @@ class GetDeclarativeDocuments : GetModelAction.GetCompositeModelAction<ResolvedD
}
}
}

@Composable
@OptIn(ExperimentalMaterial3Api::class)
private fun DeclarativeFileDropDown(
rootDir: File,
declarativeBuildFiles: List<File>,
state: MutableState<File>
) {
var expanded by remember { mutableStateOf(false) }
ExposedDropdownMenuBox(
expanded = expanded,
onExpandedChange = { expanded = !expanded }
) {
BuildTextField(
modifier = Modifier.menuAnchor(),
value = state.value.relativeTo(rootDir).path,
onValueChange = { state.value = rootDir.resolve(it) },
readOnly = true,
label = { Text("Project definitions") },
trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) },
colors = ExposedDropdownMenuDefaults.outlinedTextFieldColors(),
)
ExposedDropdownMenu(
expanded = expanded,
onDismissRequest = { expanded = false }
) {
declarativeBuildFiles.forEach { file ->
DropdownMenuItem(
text = { Text(file.relativeTo(rootDir).path) },
onClick = {
state.value = file
expanded = false
},
contentPadding = ExposedDropdownMenuDefaults.ItemContentPadding,
)
}
}
}
}
}

private data class HighlightingContext(
Expand Down

0 comments on commit 45a93ba

Please sign in to comment.