首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ace编辑器中动态更改文本方向

在ace编辑器中动态更改文本方向
EN

Stack Overflow用户
提问于 2018-11-13 18:21:13
回答 2查看 505关注 0票数 0

我试图根据用户输入的内容,在ace编辑器中动态地将文本方向更新为"LTR“或"RTL”。

我正在监听ace编辑器上的change事件,并在通过ace.js之后编写以下代码

代码语言:javascript
运行
复制
scope.editor.session.$bidiHandler.setTextDir(_isNewValueRTL);
scope.editor.session.$bidiHandler.updateBidiMap();

_isNewValueRTL是一个布尔值。我不认为这能行得通。

任何帮助我们都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2018-11-13 21:23:58

Ace目前没有setTextDir方法,它支持基于行的方向https://github.com/ajaxorg/ace/pull/3400,其工作方式是将'RIGHT-TO-LEFT EMBEDDING' (U+202B)添加到行中

要使用包含的ext-rtl.js

代码语言:javascript
运行
复制
editor.setOption("rtlText", true)

然后更改游标行调用的方向

代码语言:javascript
运行
复制
<script src=https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.1/ace.js ></script>
<script src=https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.1/ext-rtl.js ></script>

 
<script>
debugger
editor = ace.edit(null, {
  value: " left\n\u202B right\n\n try press ctrl-alt-shift-r or ctrl-alt-shift-l ",
  rtlText: true,
})
document.body.appendChild(editor.container)
editor.container.style.cssText = "height: 150px; width: 400px; outline: solid"
 
</script>

代码语言:javascript
运行
复制
editor.session.$bidiHandler.setRtlDirection(editor, true)

如果您需要一些其他功能,则向ace https://github.com/ajaxorg/ace/issues/new打开一个功能请求

票数 0
EN

Stack Overflow用户

发布于 2018-11-14 01:36:46

尝试将此CSS添加到您的ace_line

代码语言:javascript
运行
复制
.ace_line {
    direction: ltr;
    unicode-bidi: bidi-override;
}

这应该会改变文本的方向

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53278788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档