爱盲论坛

标题: 分享,通过解说的代码扩展。实现按句删除、段落删除、删除光标前文本后文本的系列功能 [打印本页]

作者: 心灵亮光    时间: 2023-1-17 21:24
标题: 分享,通过解说的代码扩展。实现按句删除、段落删除、删除光标前文本后文本的系列功能
本帖最后由 心灵亮光 于 2023-1-17 21:30 编辑

把下面代码新建一个功能或插件。在手势里调用就可以了。按句删除或者按段落删除。都是光标停留在这一句或者这一段落的任意一个字执行就能删除,删除光标前后内容,顾名思义就是。光标所在的地方。前面或者后面的内容。
第3方输入法也可以用,半屏输入法就能用。
本楼来自 天坦百宝箱
作者: 心灵亮光    时间: 2023-1-17 21:26
--删除光标所在句
if node.isEditable() then
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
local n1,n2=0,-1
if txt and txt~="" then
    local tbl={",","。",":","?","!","……",";",",",".","!","?",";","\n",}
    for n=gb-1,1,-1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n1=n
        break
      end
    end
if gb<utf8.len(txt) then
    for n=gb,utf8.len(txt)-1,1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n2=n
        break
      end
    end
end
s=utf8.sub(txt,n1+1,n2)
txt=n2==-1 and utf8.sub(txt,1,n1) or utf8.sub(txt,1,n1)..utf8.sub(txt,n2+1,-1)
service.setText(node,txt)
service.setSelection(node,n1)
    service.speak(s.."已删除")
   else
    service.speak("编辑框为空")
  end
  return true
end
本楼来自 天坦百宝箱
作者: 心灵亮光    时间: 2023-1-17 21:26
--删除光标所在段落
if node.isEditable() then
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
local n1,n2=0,-1
if txt and txt~="" then
local tbl={"\n"}
    for n=gb-1,1,-1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n1=n
        break
      end
    end
if gb<utf8.len(txt) then
    for n=gb,utf8.len(txt)-1,1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n2=n
        break
      end
    end
end
s=utf8.sub(txt,n1+1,n2)
txt=n2==-1 and utf8.sub(txt,1,n1) or utf8.sub(txt,1,n1)..utf8.sub(txt,n2+1,-1)
service.setText(node,txt)
service.setSelection(node,n1)
    service.speak(s.."已删除")
   else
    service.speak("编辑框为空")
  end
  return true
end
本楼来自 天坦百宝箱
作者: 心灵亮光    时间: 2023-1-17 21:27
--删除光标前文字
if node.isEditable()
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
if gb>0 then
s=utf8.sub(txt,gb+1,-1)
service.setText(node,s)
service.setSelection(node,0)
    service.speak("光标前已删")
   else
service.beep()
end
return true
end
本楼来自 天坦百宝箱
作者: 心灵亮光    时间: 2023-1-17 21:27
--删除光标后文字
if node.isEditable()
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
if gb<utf8.len(txt) and txt~="" then
s=utf8.sub(txt,1,gb)
service.setText(node,s)
    service.speak("光标后已删")
   else
service.beep()
end
return true
end
本楼来自 天坦百宝箱
作者: 喷子    时间: 2023-1-17 22:48
标题: 回楼主心灵亮光
能不能帮写个代码就是摇一摇的功能,就是可以摇晃手机的地方不用摇晃手机就能让它摇一摇
本帖来自安卓秘书
作者: 大海h    时间: 2023-1-18 01:12
这个楼主还是玩解说的高手。把这些加上去,确实很好用。
本帖来自安卓秘书
作者: 降龙十八掌    时间: 2023-1-18 03:01
楼主不错
本帖来自安卓秘书
作者: 大王    时间: 2023-1-18 04:47

来自 畅游助手
作者: 软件探索者    时间: 2023-1-18 07:40
这些人不去做客服真的是可惜了。
本帖来自安卓秘书
作者: 心灵亮光    时间: 2023-1-18 12:22
回复 6楼 喷子
这个不会呢。只见过模拟器里面有个功能。里面可以代替手机的摇一摇。。
本楼来自 天坦百宝箱
作者: 文公子    时间: 2023-1-18 16:18
为啥不升级的时候直接加上去呢
本帖来自微秘
作者: 心灵亮光    时间: 2023-1-19 10:29
回复 12楼 文公子
都是插件扩展的,读屏没有这功能
本楼来自 天坦百宝箱
作者: 心灵亮光    时间: 2023-1-19 17:59
再加一个删除当前字。方便讯飞输入法以及第3方输入法没有手势删除
--删除光标处所在的字(半屏输入调用)
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
if gb>0 then
s=utf8.sub(txt,gb,gb)
if gb>=2 and gb<utf8.len(txt) then
txt=utf8.sub(txt,1,gb-1)..utf8.sub(txt,gb+1,-1)
elseif gb==1 then
txt=utf8.sub(txt,gb+1,-1)
else
txt=utf8.sub(txt,1,gb-1)
end
service.setText(node,txt)
service.setSelection(node,gb-1)
? ? service.speak(s.."已删除")
? ?else
service.beep()
end删除的问题。
本楼来自 天坦百宝箱




欢迎光临 爱盲论坛 (https://aimang.net/) Powered by Discuz! X3.2