Skip to content

Commit 2bc0619

Browse files
fix(intellij): align generator option handling with VSCode pattern
- Implement two-step pattern: getGeneratorOptions() then getTransformedGeneratorSchema() - Restore fallback behavior in transformedGeneratorSchema() as suggested by review - Both IntelliJ implementations now match VSCode's approach for consistent filtering Co-authored-by: MaxKless <[email protected]>
1 parent fb31e2e commit 2bc0619

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

apps/intellij/src/main/kotlin/dev/nx/console/generate/NxGenerateRunAnythingProvider.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import dev.nx.console.generate.run_generator.RunGeneratorManager
1414
import dev.nx.console.generate.ui.GeneratorSchema
1515
import dev.nx.console.models.NxGenerator
1616
import dev.nx.console.models.NxGeneratorOption
17+
import dev.nx.console.models.NxGeneratorOptionsRequestOptions
1718
import dev.nx.console.nxls.NxlsService
1819
import javax.swing.Icon
1920
import kotlinx.coroutines.runBlocking
@@ -122,17 +123,24 @@ internal class NxGenerateRunAnythingProvider : RunAnythingCommandLineProvider()
122123
val generator = findGenerator(commandLine, generators) ?: return emptySequence()
123124
if (generatorOptions.containsKey(generator.name).not()) {
124125
val opts = runBlocking {
126+
val requestOptions =
127+
NxGeneratorOptionsRequestOptions(
128+
collection = generator.data.collection,
129+
generator = generator.data.name,
130+
)
131+
val rawOptions =
132+
NxlsService.getInstance(project).generatorOptions(requestOptions)
125133
val inputSchema =
126134
GeneratorSchema(
127135
collectionName = generator.data.collection,
128136
generatorName = generator.data.name,
129137
description = generator.data.description ?: "",
130-
options = emptyList(),
138+
options = rawOptions,
131139
context = null
132140
)
133141
val transformedSchema =
134142
NxlsService.getInstance(project).transformedGeneratorSchema(inputSchema)
135-
transformedSchema?.options ?: emptyList()
143+
transformedSchema?.options ?: rawOptions
136144
}
137145
generatorOptions.putAll(
138146
(generator.data.fullNamesWithAliases + generator.name).map { it to opts }

apps/intellij/src/main/kotlin/dev/nx/console/generate/NxGenerateService.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import dev.nx.console.generate.ui.NxGeneratorListCellRenderer
1414
import dev.nx.console.generate.ui.file.NxGenerateUiFileRenderer
1515
import dev.nx.console.models.NxGenerator
1616
import dev.nx.console.models.NxGeneratorOption
17+
import dev.nx.console.models.NxGeneratorOptionsRequestOptions
1718
import dev.nx.console.nxls.NxlsService
1819
import dev.nx.console.settings.NxConsoleProjectSettingsProvider
1920
import dev.nx.console.settings.options.GeneratorFilter
@@ -113,17 +114,24 @@ class NxGenerateService(val project: Project, private val cs: CoroutineScope) {
113114
val generatorOptions =
114115
options
115116
?: run {
117+
val requestOptions =
118+
NxGeneratorOptionsRequestOptions(
119+
collection = generator.data.collection,
120+
generator = generator.data.name,
121+
)
122+
val rawOptions =
123+
project.service<NxlsService>().generatorOptions(requestOptions)
116124
val inputSchema =
117125
GeneratorSchema(
118126
collectionName = generator.data.collection,
119127
generatorName = generator.data.name,
120128
description = generator.data.description ?: "",
121-
options = emptyList(),
129+
options = rawOptions,
122130
context = null
123131
)
124132
val transformedSchema =
125133
project.service<NxlsService>().transformedGeneratorSchema(inputSchema)
126-
transformedSchema?.options ?: emptyList()
134+
transformedSchema?.options ?: rawOptions
127135
}
128136

129137
val generatorWithOptions = NxGenerator(generator, generatorOptions)

apps/intellij/src/main/kotlin/dev/nx/console/nxls/NxlsService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ class NxlsService(private val project: Project, private val cs: CoroutineScope)
118118
return withMessageIssueCatch("nx/transformedGeneratorSchema") {
119119
val request = NxTransformedGeneratorSchemaRequest(generatorSchema)
120120
server()?.getNxService()?.transformedGeneratorSchema(request)?.await()
121-
}()
121+
}() ?: generatorSchema
122122
}
123123

124124
suspend fun generatorContextFromPath(

0 commit comments

Comments
 (0)