@@ -8,13 +8,16 @@ import androidx.appcompat.app.AlertDialog
88import androidx.appcompat.app.AppCompatActivity
99import com.blankj.utilcode.util.FileIOUtils
1010import com.blankj.utilcode.util.PathUtils
11+ import com.google.googlejavaformat.java.Formatter
12+ import com.google.googlejavaformat.java.JavaFormatterOptions
1113import com.xiaoyv.java.compiler.JavaEngine
1214import com.xiaoyv.javaengine.databinding.ActivitySingleSampleBinding
1315import kotlinx.coroutines.*
1416import java.io.File
1517import kotlin.coroutines.resume
1618import kotlin.coroutines.resumeWithException
1719
20+
1821/* *
1922 * CompileActivity
2023 *
@@ -50,13 +53,23 @@ class CompileActivity : AppCompatActivity(), CoroutineScope by MainScope() {
5053
5154 binding.toolbar.menu.add(" Run" )
5255 .setOnMenuItemClickListener {
53- runProgram()
56+ formatCode()
57+ // runProgram()
5458 true
5559 }.setShowAsAction(MenuItem .SHOW_AS_ACTION_ALWAYS )
5660
5761
5862 }
5963
64+ private fun formatCode () {
65+ val codeText = binding.codeText.text.toString()
66+ val formatSource = Formatter (JavaFormatterOptions .builder()
67+ .style(JavaFormatterOptions .Style .GOOGLE )
68+ .build())
69+ .formatSource(codeText)
70+ binding.codeText.setText(formatSource)
71+ }
72+
6073 /* *
6174 * [JavaEngine.CompileExceptionHandler] 为内部编译相关的协程作用域 默认异常捕获实现。
6275 *
@@ -104,30 +117,30 @@ class CompileActivity : AppCompatActivity(), CoroutineScope by MainScope() {
104117
105118 binding.printView.append(" Run dex start...\n\n " )
106119
107- // JavaEngine.
108- val programConsole = JavaEngine .javaProgram.run (dexFile, arrayOf(" args" ),
109- chooseMainClassToRun = { classes, continuation ->
110- val dialog = AlertDialog .Builder (this @CompileActivity)
111- .setTitle(" 请选择一个主函数运行" )
112- .setItems(classes.toTypedArray()) { p0, p1 ->
113- p0.dismiss()
114- continuation.resume(classes[p1])
115- }
116- .setCancelable(false )
117- .setNegativeButton(" 取消" ) { d, v ->
118- d.dismiss()
119- continuation.resumeWithException(Exception (" 取消操作" ))
120- }.create()
121-
122- dialog.show()
123- dialog.setCanceledOnTouchOutside(false )
124- },
125- printOut = {
126- binding.printView.append(it)
127- },
128- printErr = {
129- binding.printView.append(Html .fromHtml(" <font color=\" #FF0000\" >$it </font>" ))
130- })
120+ // JavaEngine.
121+ val programConsole = JavaEngine .javaProgram.run (dexFile, arrayOf(" args" ),
122+ chooseMainClassToRun = { classes, continuation ->
123+ val dialog = AlertDialog .Builder (this @CompileActivity)
124+ .setTitle(" 请选择一个主函数运行" )
125+ .setItems(classes.toTypedArray()) { p0, p1 ->
126+ p0.dismiss()
127+ continuation.resume(classes[p1])
128+ }
129+ .setCancelable(false )
130+ .setNegativeButton(" 取消" ) { d, v ->
131+ d.dismiss()
132+ continuation.resumeWithException(Exception (" 取消操作" ))
133+ }.create()
134+
135+ dialog.show()
136+ dialog.setCanceledOnTouchOutside(false )
137+ },
138+ printOut = {
139+ binding.printView.append(it)
140+ },
141+ printErr = {
142+ binding.printView.append(Html .fromHtml(" <font color=\" #FF0000\" >$it </font>" ))
143+ })
131144
132145 binding.btSend.setOnClickListener {
133146 val input = binding.inputEdit.text.toString()
0 commit comments