idea: implement function call completion (limited)

This commit is contained in:
2023-09-21 21:33:34 -07:00
parent d12aadf18c
commit c92a111af7
5 changed files with 76 additions and 12 deletions

View File

@ -0,0 +1,26 @@
package gay.pizza.pork.tool
import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument
import com.github.ajalt.clikt.parameters.arguments.default
import gay.pizza.dough.fs.PlatformFsProvider
import gay.pizza.dough.fs.createDirectories
import gay.pizza.dough.fs.exists
import gay.pizza.dough.fs.writeString
import gay.pizza.pork.parser.readToString
import gay.pizza.pork.stdlib.PorkStdlib
class CopyStdlibCommand : CliktCommand(help = "Copy Stdlib", name = "copy-stdlib") {
val output by argument("output").default("stdlib")
override fun run() {
val outputFsPath = PlatformFsProvider.resolve(output)
for (filePath in PorkStdlib.files) {
val outputFilePath = outputFsPath.resolve(filePath)
if (outputFilePath.parent?.exists() == false) {
outputFilePath.parent?.createDirectories()
}
outputFilePath.writeString(PorkStdlib.loadAsCharSource(filePath).readToString())
}
}
}

View File

@ -16,7 +16,8 @@ class RootCommand : CliktCommand(
ParseCommand(),
AstCommand(),
AttributeCommand(),
ScopeAnalysisCommand()
ScopeAnalysisCommand(),
CopyStdlibCommand()
)
}