refactor(edit): 重构编辑器自动补全功能

- 移除不必要的代码和注释
- 优化 CompletionItemConverter 中的偏移检查逻辑
- 删除编辑器右侧视图相关无用代码- 重构 RustCompletionAdapter,移除编辑背景设置功能
- 更新 edit_item_background.xml,移除未使用的样式
This commit is contained in:
Cold-Mint 2025-02-09 10:39:03 +08:00
parent 4179f3712c
commit 7395a39857
Signed by: Cold-Mint
GPG Key ID: C5A9BF8A98E0CE99
4 changed files with 11 additions and 49 deletions

View File

@ -87,19 +87,6 @@ class EditActivity : BaseActivity<ActivityEditBinding>() {
private val editStartViewModel: EditStartViewModel by lazy {
ViewModelProvider(this)[EditStartViewModel::class.java]
}
// /**
// * 编辑器右侧视图模型
// */
// private val editEndViewModel: EditEndViewModel by lazy {
// ViewModelProvider(this).get(EditEndViewModel::class.java)
// }
// /**
// * 编辑器右侧视图
// */
// private val editEndBinding: EditEndBinding by lazy {
// EditEndBinding.bind(viewBinding.root)
// }
/**
* 加载主要的观察者
@ -1076,12 +1063,10 @@ class EditActivity : BaseActivity<ActivityEditBinding>() {
)
)
rustLanguage.setCodeEditor(viewBinding.codeEditor)
val codeEditBackGroundEnable =
AppSettings.getValue(AppSettings.Setting.CodeEditBackGroundEnable, false)
val rustCompletionAdapter = RustCompletionAdapter()
rustCompletionAdapter.setEditBackground(codeEditBackGroundEnable)
// viewBinding.codeEditor.setAutoCompletionItemAdapter(rustCompletionAdapter)
val editorAutoCompletion = EditorAutoCompletion(viewBinding.codeEditor)
editorAutoCompletion.setAdapter(rustCompletionAdapter)
viewBinding.codeEditor.replaceComponent(EditorAutoCompletion::class.java,editorAutoCompletion)
viewBinding.codeEditor.isVerticalScrollBarEnabled = false
val path = viewModel.modClass?.modFile?.absolutePath ?: ""
CompletionItemConverter.configurationFileConversion(

View File

@ -1,23 +1,22 @@
package com.coldmint.rust.pro.edit
import android.graphics.Color
import android.graphics.Typeface
import android.view.ViewGroup
import android.view.LayoutInflater
import android.text.SpannableStringBuilder
import android.text.Spanned
import android.text.style.StyleSpan
import android.view.View
import com.bumptech.glide.Glide
import android.text.style.ForegroundColorSpan
import android.text.style.StyleSpan
import android.util.TypedValue
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.view.isVisible
import com.bumptech.glide.Glide
import com.coldmint.rust.pro.R
import com.coldmint.rust.pro.databinding.EditItemBinding
import com.coldmint.rust.pro.tool.AppSettings
import com.coldmint.rust.pro.tool.GlobalMethod
import io.github.rosemoe.sora.widget.component.EditorCompletionAdapter
import java.util.*
import java.util.Locale
/**
@ -39,17 +38,6 @@ class RustCompletionAdapter : EditorCompletionAdapter() {
ForegroundColorSpan(GlobalMethod.getColorPrimary(context))
}
private val bold = StyleSpan(Typeface.BOLD)
private var useEditBackground = false
/**
* 使用编辑器背景
* @param enable Boolean
*/
fun setEditBackground(enable: Boolean) {
useEditBackground = enable
}
override fun getView(
position: Int,
view: View?,
@ -58,9 +46,7 @@ class RustCompletionAdapter : EditorCompletionAdapter() {
): View {
val editItem = EditItemBinding.inflate(layoutInflater, parent, false)
if (useEditBackground) {
editItem.root.setBackgroundResource(R.drawable.edit_item_background)
}
val completionItem = getItem(position) as RustCompletionItem
spannableStringBuilder.clear()
val label = completionItem.title

View File

@ -208,7 +208,7 @@ object CompletionItemConverter {
// completionItem.extrasData = bundle
// }
val offset = typeInfo?.offset
if (offset != null && offset.isNotBlank()) {
if (!offset.isNullOrBlank()) {
//如果偏移不为空
val head = "@length("
val cursorOffset = if (offset.startsWith(head) && offset.endsWith(")")) {

View File

@ -1,13 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="?android:windowBackground" />
<!-- <corners-->
<!-- android:topLeftRadius="32dp"-->
<!-- android:topRightRadius="32dp" />-->
<!-- android:bottomLeftRadius="16dp"-->
<!-- android:bottomRightRadius="16dp"-->
<!-- <stroke-->
<!-- android:width="3dp"-->
<!-- android:color="?android:windowBackground" />-->
</shape>