From ac45ff624509cd8f7eb67041efe68ccb7378330f Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Wed, 10 Apr 2024 17:27:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9AFrp=E5=86=85?= =?UTF-8?q?=E7=BD=91=E7=A9=BF=E9=80=8F=C2=B7=E7=BC=96=E8=BE=91=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=97=B6=E8=AF=AD=E6=B3=95=E9=AB=98=E4=BA=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../forwarder/fragment/FrpcEditFragment.kt | 35 +++++++++++++------ .../main/res/layout/fragment_frpc_edit.xml | 9 +++-- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcEditFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcEditFragment.kt index a1d019ae..704eb6a2 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcEditFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcEditFragment.kt @@ -26,6 +26,7 @@ import com.xuexiang.xui.widget.dialog.materialdialog.DialogAction import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog import com.xuexiang.xui.widget.edittext.materialedittext.MaterialEditText import com.xuexiang.xutil.resource.ResUtils.getColors +import java.util.regex.Pattern @Suppress("DEPRECATION") @Page(name = "Frp内网穿透·编辑配置") @@ -34,6 +35,7 @@ class FrpcEditFragment : BaseFragment() { private var titleBar: TitleBar? = null private var frpc: Frpc? = null private val viewModel by viewModels { BaseViewModelFactory(context) } + private val codeview by lazy { binding!!.codeview } override fun initViews() { val pairCompleteMap: MutableMap = HashMap() @@ -43,14 +45,25 @@ class FrpcEditFragment : BaseFragment() { pairCompleteMap['<'] = '>' pairCompleteMap['"'] = '"' - binding!!.editText.enablePairComplete(true) - binding!!.editText.enablePairCompleteCenterCursor(true) - binding!!.editText.setPairCompleteMap(pairCompleteMap) - - binding!!.editText.setEnableLineNumber(true) - binding!!.editText.setLineNumberTextColor(Color.LTGRAY) - binding!!.editText.setLineNumberTextSize(24f) - binding!!.editText.textSize = 14f + codeview.enablePairComplete(true) + codeview.enablePairCompleteCenterCursor(true) + codeview.setPairCompleteMap(pairCompleteMap) + + codeview.setEnableLineNumber(true) + codeview.setLineNumberTextColor(Color.LTGRAY) + codeview.setLineNumberTextSize(24f) + codeview.textSize = 14f + + //语法高亮 + val syntaxPatterns: MutableMap = HashMap() + syntaxPatterns[Pattern.compile("\\s*#.*")] = Color.GRAY + syntaxPatterns[Pattern.compile("\\[\\[?([^]]*?)]]?", Pattern.DOTALL)] = Color.MAGENTA + syntaxPatterns[Pattern.compile("\\[\\[?")] = Color.WHITE + syntaxPatterns[Pattern.compile("]]?")] = Color.WHITE + syntaxPatterns[Pattern.compile(".*(?=\\s=)")] = Color.YELLOW + syntaxPatterns[Pattern.compile("(?<=\\s=)\\s*\"[^\"]*\"\\s*\n", Pattern.DOTALL)] = Color.GREEN + syntaxPatterns[Pattern.compile("(?<=\\s=).*\n")] = Color.CYAN + codeview.setSyntaxPatternsMap(syntaxPatterns) } override fun viewBindingInflate(inflater: LayoutInflater, container: ViewGroup): FragmentFrpcEditBinding { @@ -74,7 +87,7 @@ class FrpcEditFragment : BaseFragment() { tvName.setText(frpc!!.name) sbAutorun.setCheckedImmediately(frpc!!.autorun == 1) - frpc!!.config = binding!!.editText.text.toString() + frpc!!.config = codeview.text.toString() if (TextUtils.isEmpty(frpc!!.config)) { XToastUtils.error(R.string.tips_input_config_content) @@ -128,7 +141,7 @@ class FrpcEditFragment : BaseFragment() { titleBar!!.addAction(object : TitleBar.ImageAction(R.drawable.ic_restore) { @SingleClick override fun performAction(view: View) { - binding!!.editText.setText(frpc?.config!!) + codeview.setText(frpc?.config!!) XToastUtils.success(R.string.tipRestoreSuccess) } }) @@ -138,7 +151,7 @@ class FrpcEditFragment : BaseFragment() { override fun initListeners() { LiveEventBus.get(INTENT_FRPC_EDIT_FILE, Frpc::class.java).observeSticky(this) { value: Frpc -> frpc = value - binding!!.editText.setText(value.config) + codeview.setText(value.config) titleBar!!.setTitle(if (TextUtils.isEmpty(value.name)) getString(R.string.noName) else value.name) } } diff --git a/app/src/main/res/layout/fragment_frpc_edit.xml b/app/src/main/res/layout/fragment_frpc_edit.xml index 79bcba0e..5c087b9b 100644 --- a/app/src/main/res/layout/fragment_frpc_edit.xml +++ b/app/src/main/res/layout/fragment_frpc_edit.xml @@ -2,18 +2,17 @@ + android:textColor="#BCBEC4" /> \ No newline at end of file