Ace: IOS兼容性

创建于 2011-01-11  ·  160评论  ·  资料来源: ajaxorg/ace

如果您只会打字,Ace 可能是 IOS 设备(iPad、iPhone)上的理想编辑器,但不幸的是,虚拟键盘从未出现在 ACE 上,我相信有人有一个补丁可以让 bespin 发挥作用。
@gissues :{"order":96.27329192546586,"status":"backlog"}

mobile

最有用的评论

大家好! 我刚刚创建了一个拉取请求来修复 iOS 上的一些问题。 如果您有外接键盘,它会提供良好的用户体验。

如果你喜欢它,我可能会考虑解决剩下的问题:)

您可以在https://ipad-undo.gomix.me上看到它的实际效果

享受!

所有160条评论

我们知道,很快就会得到处理。 谢谢你的建议!

你能帮我们查一下补丁吗?

我也对 iOS(尤其是 iPad)支持感兴趣。
期待听到您在这方面取得的进展。

您可以查看 ipad 分支。 它还不完美,但至少打字有效。 用两根手指滚动。

太好了,我没有注意到 ipad 分支。
谢谢,我去看看!

键盘没有显示使用 ipad 分支。 使用它显示的主分支,但是光标定位存在错误。 :/

忘记我说过的话! 键盘没出现真酷! 您可以编写自己的键盘,这对程序员来说更加友好且占用空间更少。 :o)

在运行 iOS 4.3 的 iPad 上进行测试; 当前母版无法显示键盘或插入点,并且无法垂直滚动(如果文本比可用区域宽,我可以用两根手指水平滚动)。

iPad 分支自 2 月 3 日以来一直没有更新......测试它,我发现垂直滚动可以用两个手指(耶!)但是很慢。 我可以将焦点放在编辑器中并弹出屏幕键盘,但是当窗口向上滚动以适合键盘时,插入点最终会飞离编辑器。

尝试点击编辑器似乎有问题; 我可以在正在编辑的行内点击一下,但点击上面的其他行似乎_失去_焦点并关闭键盘。 我只能可靠地将焦点放在文档的末尾。

在垂直滚动时,插入点似乎一次向上/向下跳一行,但是当我开始输入时,它会跳回文档末尾以添加新字符。

(常规 Firefox 4 上的 iPad 分支也有问题——它似乎对窗口的滚动位置做出假设,如果我向下滚动 _window_ 以适应编辑器可见空间。)

ipad 分支有什么更新吗?

不幸的是没有。 该分支目前未在积极开发中。 我们计划复活它,但我们没有估计的时间。

很抱歉复活了一个死线程,但在 iOS 方面有任何进展吗?

显然,人们对此非常感兴趣。 我去看看能不能帮上忙

+1

不支持 iPad 的基于 Web 的组件不能再正确地称为基于 Web 的组件,即 IMO。

我支持这个。 我现在正在 iPad 上写作,希望我使用 ACE 进行编程……

+1 在 iPad 上也非常需要这个

+1 紧急

我也想要 iOS 支持,而且很快。 如果我能找到时间,我很乐意坐下来自己做这件事。 因此,如果有任何关于我应该在代码中从哪里开始的指示,以及有关它如何出错的详细信息,我们将不胜感激。

同意 - 如果需要,我会向 kickstarter 基金捐款以完成这项工作

2012 年 4 月 7 日星期六下午 2:53,乔
回复@reply.github.com
写道:

我也想要 iOS 支持,而且很快。 如果我能找到时间,我很乐意坐下来自己做这件事。 因此,如果有任何关于我应该在代码中从哪里开始的指示,以及有关它如何出错的详细信息,我们将不胜感激。


直接回复此邮件或在 GitHub 上查看:
https://github.com/ajaxorg/ace/issues/37#issuecomment -5006423

没有办法让那个该死的键盘与 javascript 一起出现,为自定义键盘竖起大拇指。

不对。 将一个元素指定为可编辑的内容,然后他们给它焦点,然后键盘就会出现。 你也可以用 textsreas 和文本输入来做一些技巧来让它工作。

键盘还提供了我在我的网站上使用的 Ace 版本,只是无法使用。

@PlayMyCode如果我不能调用ios.showKeyboard()之类的东西,那么我确实无法使用 javascript 调用它,那么您所说的这些都是快速修复...

它只是不那样工作。

如果内容不可编辑,或者不是文本输入,为什么会显示键盘? 字符不会去任何地方,您不会从键盘接收输入。

键必须放在某个地方才能显示键盘。 如果他们无处可去,那么它就不会出现。 如果他们确实有地方可去,它就会出现。 这不是黑客,这只是文本输入的工作方式。

@PlayMyCode - 字符不一定需要

@hjwp 是你的权利,但这又不是那么简单。 相信元素一定能获得焦点,否则浏览器不会向元素发送事件,很多元素无法获得焦点。 例如,如果您添加标签索引(或者至少我刚刚在 Chrome 中找到了这个),画布只会监听关键事件。 如果您将内容设置为可编辑,iOS 也只会为画布显示键盘。

要么这是一个学术论点。 iOS 支持很重要,它不应该仅仅因为解决方案看起来太像 hack 就被排除在外(当然除非有更好的选择)。

如何将焦点放在隐藏的文本输入上并在按键时清除它?

是的,这就是所见即所得的工作方式。

在 2012-04-09 的 4:56 AM,“安德烈·菲德勒”
回复@reply.github.com
写道:

如何将焦点放在隐藏的文本输入上并在按键时清除它?


直接回复此邮件或在 GitHub 上查看:
https://github.com/ajaxorg/ace/issues/37#issuecomment -5024068

旧版本的 Ace 最初不是在 entry 下定位 textarea 或 input 元素吗? 这种方法将调出键盘。

不是旧版本的 Ace 在条目下定位文本区域或输入元素,最初

新版本的 ace 也是如此。
滚动时 textarea 与光标不同步,但这很容易修复
我还没有在 ipad 上看到 ace,但在 android 上打字和移动光标是有效的,只是没有办法选择文本。
但更重要的是

  • android 浏览器上的 ace 超级慢,fennec 好一点但仍然无法使用(也许在这里使用 setTimeout 间隔更长的时间可能会有所帮助但不确定)
  • 默认键盘和自动完成建议对编程完全没有用(因此制作自定义键盘而不是尝试显示默认键盘似乎是个好主意)。
    总的来说,我认为 ace 还不能在平板电脑上有用。

自定义键盘听起来不错!

我对自定义键盘持怀疑态度。 构建一个好的、抛光的键盘并非易事,它本身就值得成为一个大项目。 我还希望纯 HTML 键盘会比内置键盘慢。

它还需要在不同的屏幕尺寸和不同的布局方向上都能很好地工作。 例如,我不想在 iPhone 上使用 iPad 键盘,在 iPad 上使用 iPhone 键盘也不好。 他们有不同的键盘是有原因的。 最重要的是,这意味着 iPad 和 iPhone 上的所有东西都使用一个键盘,除了 Ace。 简而言之,用户已经拥有了他们期望的键盘,并且在许多情况下它是定制的(例如设置为分离式键盘)。

我的建议是让键盘工作,因为我预计这会比构建自定义键盘的工作少。 然后担心将来构建自定义键盘作为一个单独的问题。 它还允许您有选择地使用操作系统键盘作为自定义键盘的替代方案,例如如果它在特定设备上无法正常工作。

该站点还表示您可以关闭特定输入的自动完成和自动大写: http :

如果 Ace 放置在 iframe 中,自定义键盘也将无法使用全屏宽度。

这听起来像是一个极端情况,但 JSFiddle 和 JS.do.it 都允许您在其他站点的 iframe 中嵌入编辑器,这是我想自己做的事情。

@PlayMyCode - 借调:出于您提到的许多原因以及更多原因,自定义键盘将是一个非常糟糕的主意。

@PlayMyCode - 我同意,自定义键盘听起来很危险。 我还怀疑那些建议它的人几乎没有使用 iOS API 的经验。 但我可能是错的,我只是按照@cranic所说的ios.showKeyboard() ,本机 API 没有任何等效的东西......最接近的是在 UITextInput 上调用becomeFirstResponder控制……但我离题了。

这应该是完全可行的,可能不费吹灰之力contenteditable的元素上。 从 iOS 5.0 开始,支持contenteditable ,参见创建兼容 Web 内容的最后

有一个用于在 iOS 上启动键盘的浏览器中编辑代码的 JavaScript:CodeMirror,参见http://codemirror.net/mode/r/index.html的演示(适用于 iPhone)和 codemirror.net对于一般。 那么也许他们的代码中有一些东西可以帮助 ace 中的 iOS 支持?

@bertoltmeyer ,CodeMirror 是基于 textareas 的,这就是为什么它可以打开 iOS 键盘,ace 要复杂得多......

@cranic实际上 Codemirror2 和 ace 非常相似并且使用,它使用相同的textareas
如果 Codemirror2 在 ipad 上工作,修复 ace,以同样的方式工作应该不难

我是从 R 统计学家的角度写作的,他 - 像成千上万的其他人一样 - 使用 RStudio 进行编码。 RStudio 是最流行的 R IDE,基于 ace 构建。 如果 ace 支持 iOS,那么 RStudio Server 也会支持。 在这个理想的世界中,我可以从我的 iPad 访问我们的 RStudio 服务器并从那里完成我的所有编码。 我(和其他成千上万的 R 人员)将不必再使用我的笔记本电脑了。 说真的,ace 缺乏对 iOS 的支持是我仍然随身携带笔记本电脑的唯一原因,而且我确信还有很多像我这样的人。 因此,如果我会说 javaScript,而我不会,我会优先处理这个问题。 但是因为我不能用 js 编码,我只能说拜托拜托有人可以尝试解决这个问题。 叹。 如果有必要,我(和其他人)真的会支持在这个问题上启动一个kickstarter。

嘿,我快速浏览了一下代码,但我看到的只是div s; canvas哪里?

ace 从来没有使用过canvas ,它是bespin

使用 2f6a6ce7e0992a2eccbb8a517aa2d6f4954f1214 不会滚动出视图。

顺便提一句。 制作虚拟键盘的另一个理由

我回应@bertoltmeyer关于将 ace 带到 iOS 以便 RStudio 可以在 iPad 上使用的热情。

我很想看到它也能在 iPad 上运行 - 它会在下游应用程序中启用大量功能(我也是通过 RStudio 来到这里的,但刚刚意识到 ACE 正在我使用的其他一些网络工具中使用偶尔,所以对我来说这将解决许多不同的问题)。

我们如何为此筹集类似项目的启动者? 我愿意
立即将 100 美元放入底池
在接口方面 - iOS 上的提示(一个 ssh 客户端)有一个很棒的键盘
这比标准的 iOS 布局更适合系统管理员/编程。

2012 年 5 月 10 日星期四上午 5:34,Rui Carmo <
回复@reply.github.com

写道:

我很想看到它也能在 iPad 上运行——它会启用一个 _lot_
下游应用程序的功能(我也是通过
RStudio,但刚刚意识到 ACE 在其他一些网络工具中使用我
偶尔使用,所以对我来说这将解决许多不同的问题)。


直接回复此邮件或在 GitHub 上查看:
https://github.com/ajaxorg/ace/issues/37#issuecomment -5612400

@velniukas使用 kickstarter 的好主意,如果有很多人(比如我自己)会为这样的项目捐款,我不会感到惊讶。

不幸的是,我无法投入任何时间来开发修复程序
刚才,但我愿意帮助设置这样的项目
一些合作者。

2012 年 5 月 10 日星期四上午 8:01,迈克·劳伦斯 <
回复@reply.github.com

写道:

@velniukas使用 kickstarter 的好主意,如果有很多东西,我不会感到惊讶
很少有人(像我一样)会为这样的项目捐款。


直接回复此邮件或在 GitHub 上查看:
https://github.com/ajaxorg/ace/issues/37#issuecomment -5615069

我还会为 ace iOS 兼容性的 kickstarter 项目投入至少 200 美元。 我相信我们能够为此从 R 社区筹集到相当多的资金。 我无法为编码做出贡献,因为我不会说足够的 js,但如果有人启动了 Kickstarter,我愿意帮助 R 社区的筹款活动。 @velniukas ,您能否确定潜在的合作者并就建立这样的项目与他们联系?

会做 - 任何有兴趣帮助设置 kickstarter 的人 - 给我一个下午

干杯
史蒂夫
10xEngineer.me

2012 年 5 月 10 日星期四下午 2:59,Bertolt Meyer <
回复@reply.github.com

写道:

我还会为 ace iOS 的 kickstarter 项目投入至少 200 美元
兼容性。 我相信我们将能够筹集到相当多的资金
资金来自 R 社区。 我无法为
编码,因为我不会说足够的 js,但我愿意帮助
如果有人开始启动,则在 R 社区筹款。
@velniukas ,你能确定潜在的合作者吗?
就建立这样一个项目与他们联系?


直接回复此邮件或在 GitHub 上查看:
https://github.com/ajaxorg/ace/issues/37#issuecomment -5619266

这不是钱的问题,而是有足够的开发能力来解决这个问题。

我知道 - 但有时金钱可以帮助人们有动力释放能力。 ;-)

事实是,这是一项艰巨的工作,每个人都有自己的优先事项。 通过聘请优秀人才来正确完成这项工作。 这是我们所有人之间的小代价。

从我的iPhone发送

2012 年 5 月 10 日22 :18,Jan

这不是钱的问题,而是有足够的开发能力来解决这个问题。


直接回复此邮件或在 GitHub 上查看:
https://github.com/ajaxorg/ace/issues/37#issuecomment -5626268

一种选择是在 vWorker.com 上发布需要完成的工作的描述并征集投标,以便我们了解有多少开发人员可用于此以及以什么价格收费。

天哪,我多么希望我可以取消订阅此线程的更新...

@Gozala猜你正在页面底部寻找天线

有人可以进行 ipad 测试吗 http://c9.io/nightwing/ace/workspace/kitchen-sink.html
这只是对 ime 的改进,但也必须改进 ipad 上的打字

@nightwing键盘不会在 iPad 上弹出。

@nightwing哦,谢谢你 :D 你让我开心了!

@nightwing也许当他本周来到旧金山时,我会向@fjakobs提出这个问题。 让键盘出现在 iOS 5 上非常容易: http : contenteditable ,boom,完成.

但是,导航不起作用,这显然更加困难。 它只是位于{row: 0, column: 0} 。 我想它做的事<textarea>这的第一个孩子ace_editor ,似乎作为一种光标。

+1 iOS 兼容性

请注意@javruben fork 上的 2011 年 1 月 15 日提交,也许它有效?
https://github.com/javruben/ace/commits/master

@Gozala您可以在本页末尾使用“禁用此问题的通知”链接取消订阅通知

参考 R 社区成员之前的评论,我在 Ubuntu 上安装了 R-Studio 服务器版本 0.96.228,并使用 Wireshark 检查传入的网络流量。 我使用 Safari 在 iPad 上成功登录到 R-Studio 服务器。 现在,键盘在文本框(例如,用于搜索)和包含 R-console 的浏览器窗格中都可以正常弹出。 当在包含 R 控制台的窗格中键入内容时按 Return 时会出现问题:iPad 浏览器正在发送 FIN、ACK,这会导致 R-Studio 服务器应用程序重置会话。 知道是什么原因造成的吗?

对此的任何更新 - 如果我们能找到合适的了解该问题的开发人员,我赞成为此功能提供赏金。

您可以在希望看到 ACE 与移动浏览器(尤其是平板电脑)一起使用的人员列表中添加另一个名称。 也就是说,我确信这不是一项微不足道的任务。 我们这些有兴趣看到这种情况发生但没有 JavaScript 能力来完成它的人可以做些什么来帮助实现这一目标? 如果有帮助,我愿意将资金投入到 Kickstarter 项目中。

/cc @javruben

上次我在这方面工作(当然是几年前?)我在 iphone 上进行了测试,我让键盘出现了。 打字有效,但光标偏移了,我相信插入 \n 会插入两个。

有以下问题需要解决:

  1. 键盘显示
  2. 任何打字交互都需要测试
  3. 使用触摸事件进行选择
  4. 为了快速滚动,应该在没有虚拟视口的情况下实现新的渲染器
  5. 可能添加一个假键盘,以便更快地访问语言模式使用的键(动态)

如果您愿意并有能力帮助完成其中一项任务,请发表评论。 我会看看我可以收集哪些其他资源。

鲁本,

我手头没有 iOS 开发人员 - 但我的一名网络人员应该是
能够在不久的将来提供帮助,一旦我们发布下一个版本
大约 2-3 周。

问候
史蒂夫

2012 年 8 月 1 日,星期三,上​​午 1:09,Ruben Daniels <
回复@reply.github.com

写道:

上次我在这方面工作时(诚然是一年前?)我在
iphone 和我让键盘出现。 打字有效,但光标是
偏移,我相信插入一个 \n 会插入两个。

有以下问题需要解决:

  1. 键盘显示
  2. 任何打字交互都需要测试
  3. 使用触摸事件进行选择
  4. 为了快速滚动,应该在没有
    虚拟视口
  5. 可能添加一个假键盘,以便更快地访问用户使用的键
    语言模式(动态)

如果您愿意并有能力帮助其中之一,请发表评论
任务。 我会看看我可以收集哪些其他资源。


直接回复此邮件或在 GitHub 上查看:
https://github.com/ajaxorg/ace/issues/37#issuecomment -7404954

好消息! 我只想说我们还在观望和兴奋
这。 我看到了支持 iPad 的绝佳机会。 我真的不
当我有一台 mac 时,需要在云中开发代码
指尖。 我太依赖我的工具集了。 但发展能力
使用我的 iPad 改变了一切。 感谢您一直关注这一点和
做一些不可思议的事情! 如果我能帮忙,请告诉我。

2012 年 7 月 31 日,星期二,晚上 8:02,velniukas <
回复@reply.github.com

写道:

鲁本,

我手头没有 iOS 开发人员 - 但我的一名网络人员应该是
能够在不久的将来提供帮助,一旦我们发布下一个版本
大约 2-3 周。

问候
史蒂夫

2012 年 8 月 1 日,星期三,上​​午 1:09,Ruben Daniels <
回复@reply.github.com

写道:

上次我在这方面工作时(诚然是一年前?)我在
iphone 和我让键盘出现。 打字有效,但光标
曾是
偏移,我相信插入一个 \n 会插入两个。

有以下问题需要解决:

  1. 键盘显示
  2. 任何打字交互都需要测试
  3. 使用触摸事件进行选择
  4. 为了快速滚动,应该实现一个新的渲染器,而无需
    一个
    虚拟视口
  5. 可能添加一个假键盘,以便更快地访问用户使用的键
    语言模式(动态)

如果您愿意并有能力帮助其中之一,请发表评论
这些
任务。 我会看看我可以收集哪些其他资源。


直接回复此邮件或在 GitHub 上查看:
https://github.com/ajaxorg/ace/issues/37#issuecomment -7404954


直接回复此邮件或在 GitHub 上查看:
https://github.com/ajaxorg/ace/issues/37#issuecomment -7414813

生锈的扎尔斯
http://LeVo.us
[email protected]
米:404-510-1134

我也很期待这个。 创建需要在网络上编辑代码的应用程序。 这是唯一阻止我将其发送到现实世界的事情。

@velniukas有这方面的更新吗? 看起来有很多人要求这个功能,而且很多人愿意提供帮助。 让我们组织起来,开始行动吧!

@tzikis +1

这必须是第一大“必备”功能。 为什么? 因为如果没有 iPad 兼容性,ACE 的可信度将完全受到损害,并且对于能够并且确实提供这种级别支持的竞争项目来说是不利的。 作为一家公司,我们已经在考虑转换。 毕竟这个问题是在 2 年前首次提出的,并且没有消失的迹象。

@emeraldspy我很欣赏你在这种情况下表现出的诚实。 现实是:你是对的! ACE 中的移动支持是必须的。 事实上,我们在 2 周前向社区发出了呼吁,以支持这项工作:

https://c9.io/site/blog/2012/09/the-ace-editor-hits-v1-0/

以及博客中引用的问题列表:

https://github.com/ajaxorg/ace/issues?milestone=2&state=open

回复? 齐尔奇。 虽然我们在 Cloud9 负责该项目,但我们不能全职致力于这项工作。 我们只能逐步改进。 所以,我们能做些什么? 在这个情况下,你会怎么做? 我们希望通过创建一个更开放的许可证,它会为移动支持获得更多贡献,但这还没有发生。

我们认为 ACE 是一个非常特别的项目,我们希望未来有更多的开发人员能够从其卓越的性能和复杂的功能集中受益。 但我们不能_强迫_其他人简单地提供移动支持。 因此,我们提出了一些可能有效的想法:

  • 举办一个周末黑客马拉松,致力于实现这些功能
  • 直接与另一家使用 ACE 并可以提供开发资源的公司合作
  • 重新制作我们的宣传材料(如 ace.ajax.org),让更多人关注这个任务

这个项目可能会受到“旁观者效应”的影响。 也就是说,对 ACE 的兴趣如此之高,以至于有人会假设其他人会实现新功能请求。 现实是:只有少数人做出贡献。 当然,我们喜欢这些贡献和错误修复! 但这些贡献并没有构成端到端的移动支持。 目前只有 Android 运行良好。

如果所有阅读本文的人都有想法,请在此处贡献。 我们不希望这个使命在无声的“别人会照顾它”的呜咽中死去。 我们有动力,只是我们没有资源自己做这一切。 所以我们需要您的支持

所以让我们采取一些行动吧! 如果您想直接通过电子邮件向我发送有关将您自己的开发人员奉献给这项工作的信息,请执行以下操作:我的电子邮件是[email protected] 我几乎总是在 irc.freenode.net 上#ace。 我们走吧!

马特

我们已经对所需的工作进行了一些分析,并得出了一些
稍后将其纳入我们的路线图的结论:

  1. 导航会很棘手
  2. 移动设备上的 DOM 处理困难且缓慢
  3. 平板电脑屏幕键盘不适用于编程任务
  4. 不再像以前那样需要移动设备了——有了 mac airs 和超极本,
    越来越多的人携带完整的计算机而不是平板电脑
    键盘,用于编程任务

我们在想,如果我们沿着这条路线发展,混合应用程序可能会
需要绕过其中一些问题。
你能直接联系我讨论推进这个问题吗?

问候
史蒂夫
http://10xEngineer.me
Skype:steve_messina

2012 年 10 月 3 日星期三凌晨 3:48,Matt [email protected]写道:

@emeraldspy https://github.com/emeraldspy我很欣赏死的诚实
你正在接受这种情况。 现实是:你是对的! 移动的
ACE 的支持是必须的。 事实上,我们在 2 周内给社区打了电话
之前为这项努力提供支持:

https://c9.io/site/blog/2012/09/the-ace-editor-hits-v1-0/

以及博客中引用的问题列表:

https://github.com/ajaxorg/ace/issues?milestone=2&state=open

回复? 齐尔奇。 当我们在 Cloud9 管理项目时,我们不能
全职致力于这项工作。 我们只能循序渐进
改进。 所以,我们能做些什么? 在这个情况下,你会怎么做?
我们希望通过创建一个更开放的许可证,它会获得更多
对移动支持的贡献,但这还没有发生。

我们觉得 ACE 是一个非常特别的项目,我们需要更多的开发人员
在未来受益于其卓越的性能和复杂的
功能集。 但我们不能_强迫_其他人简单地贡献移动
支持。 因此,我们提出了一些可能有效的想法:

  • 举办一个周末黑客马拉松,致力于实现这些功能
  • 直接与另一家使用 ACE 并且可以专注于开发的公司合作
    资源
  • 重新制作我们的宣传材料(如 ace.ajax.org)以带来这个
    更多眼球的任务

这个项目可能会受到“旁观者效应”的影响。 也就是说,有
对ACE的兴趣如此之高,以至于有人会假设其他人
将实现新功能请求。 现实是:只有少数人
贡献。 当然,我们喜欢这些贡献和错误修复! 但那些
贡献还没有达到端到端的移动支持。 目前
只有 Android 运行良好。

如果所有阅读本文的人有想法,请贡献出来
这里。 我们不希望这个使命在无声的“别人会
照顾它”呜咽。我们有动力,我们只是没有
资源来完成这一切。 所以我们_需要你的支持_!

所以让我们采取一些行动吧! 如果你想直接给我发电子邮件
关于让你自己的开发人员致力于这项工作,那么请做:我的
电子邮件是[email protected] 我几乎总是在 irc.freenode.net 上#ace。
我们走吧!


直接回复本邮件或在 Gi tHub上查看

谢谢史蒂夫! 我已经在 Skype 上添加了你。 对于所有对我们的对话结果感兴趣的人(以及我们与愿意贡献的其他人的任何未来对话),我们将在公共论坛(问题 GitHub)上发布更新。

@mattpardee请确保您会发布任何更新。 代表 codebender 团队,我们有兴趣参加您在回复@emeraldspy 中建议的黑客

让我们他妈的这样做

@tzikis 太棒了。 我们正在与史蒂夫讨论各种选择,但跨国周末谷歌环聊黑客马拉松听起来像是实现这一目标的完美方式。 我们正在寻找选项。 敬请关注!

更新:为了更清楚我们正在讨论的内容,史蒂夫对移动支持的性能做了一些研究,我们正在研究移动客户端的性能。

如果我们在这个周末举办黑客马拉松,我会在接下来的两周内趁热打铁打造它。 理想情况下,我们将与@nightwing@fjakobs进行协调,以提供有关最佳实践的一些指导。 预计很快就会看到更多相关信息。

我将 ACE 用作 XML 文件的语法高亮器(只读,不可编辑)。
一切正常,但移动设备中的滚动。

解决这个问题应该是一个开始。 由于代码行的部分渲染,滚动是 ACE 中的一个大问题。
至少在 iOS 设备中,其他一切都对我有用(或多或少)。
否则,您可以提供一种渲染整行的方法(至少对于中小型文件)
并尝试解决问题。

我也愿意在 hackaton 中进行合作。 我们开始做吧!

只是抬头。 黑客马拉松将是一个不平凡的事件。 将是一个
至少一周或三个星期取决于我们可以加入的人。
待解决的问题:

  • 简化div结构提高性能
  • 调出键盘/自定义键盘
  • 导航

可能会寻求一种带有键盘的混合解决方案
出色的 iOS Prompt 可能是最好的方法。

2012 年 10 月 4 日星期四晚上 9:30,avillegasn [email protected]写道:

我将 ACE 用作 XML 文件的语法高亮器(只读,无
编辑)。
一切正常,但移动设备中的滚动。

解决这个问题应该是一个开始。 滚动是ACE中的一个大问题
由于代码行的部分渲染。
至少在 iOS 设备中,其他一切都对我有用(或多或少)。
否则,您可以提供一种渲染整行的方法(至少对于
中小型文件)
并尝试解决问题。

我也愿意在 hackaton 中进行合作。 我们开始做吧!


直接回复本邮件或在 Gi tHub上查看

嘿@velniukas。

我们正在旧金山确定一个场地来协调黑客马拉松; 我们估计大约 4 周后。 我正在整理来自@nightwing@fjakobs 的指导材料,并开发了一个网站来推广它。 我们正在寻求将其保留几天的想法。 第一天致力于涵盖尽可能多的功能,第二天将这些变化整合到一个有凝聚力的部分。

到目前为止,我们有来自香港、阿姆斯特丹、希腊、亚美尼亚和旧金山的开发商感兴趣。 所以我们将这个想法作为国际黑客马拉松(也许是同类中的第一个?)来推广。

@nightwing对我们如何获得性能更高的移动实现有想法,这将与桌面浏览器处理虚拟渲染器的方式截然不同。 我们将让每个人都了解他的指导,并很快确定一个周末。

我的团队 5-7 开发人员在:SF、布拉格、乌克兰、俄罗斯、印度、莫斯科、香港。 4
几周后对我们来说是完美的。 另外我会收集本地启动开发人员
如果我们能得到一个议程和粗略的任务,那么在香港这里的社区
至少 2 周前。 可能可以赞助其中一个联合办公空间
为了这。

史蒂夫
http://10xEngineer.me

2012 年 10 月 5 日星期五上午 12:35,Matt [email protected]写道:

@velniukas https://github.com/velniukas。

我们正在旧金山确定一个场地来协调
黑客马拉松; 我们估计大约 4 周后。 我正在拼凑
来自@nightwing https://github.com/nightwing 的指导材料和
@fjakobs https://github.com/fjakobs并开发一个网站来推广
它。 我们正在寻求将其保留几天的想法。 首先
致力于获得尽可能多的功能的一天,第二天带来
这些变化一起成为一个有凝聚力的部分。

到目前为止,我们有来自香港、阿姆斯特丹、希腊、亚美尼亚和
顺丰感兴趣。 所以我们将这个想法推广为国际黑客马拉松
(也许是同类中的第一个?)。

@nightwing https://github.com/nightwing对我们如何获得
性能更高的移动实现,这将是一个不同的部分
桌面浏览器处理文档的方式。 我们会及时通知大家
他的指导并很快确定一个周末。


直接回复本邮件或在 Gi tHub上查看

太棒了,史蒂夫! 这可能会变成一个里程碑式的事件。 考虑到时区,我更愿意在星期五很晚开始,在太平洋标准时间星期六早些时候开始,并持续 24 小时。 我正在工作的网站将管理团队来挑选特定的任务,所以没有人重复工作。 如果有人以前做过这件事或对如何做到最好_有想法,请告诉我。

仅供参考,我仍在整理这次活动的细节。 确定日期、集合地点、向潜在团队发送电子邮件以及建立网站。 当我有更多有趣的信息时,我会在这里发布。 期待实现这一目标!

这会很棒。 目前我不得不使用 codemirror 来满足移动需求。 很乐意使用 ace 来满足所有需求。

好的,大家都在看这个问题。 我们在 iOS _scrolling_ 支持下朝着正确方向迈出了第一步。 在测试下面的链接之前,有一些操作顺序和注意事项需要注意:

  1. 等待整个文件加载
  2. 文件加载后,单击左下角的“移动模式”复选框
  3. 不要改变方向。
  4. 开始滚动
  5. 我在 iPad v1 和 iPhone 5 上对此进行了测试。iPhone 表现出色,但 iPad 1 非常糟糕。 稍后会详细介绍。

https://c9.io/c9developer/ace/workspace/kitchen-sink.html

这是如何实现的

  • 我创建了一个用以下 CSS 覆盖编辑器的 div:
#scroll_div {
     -webkit-overflow-scrolling: touch;
     overflow-y: scroll;
     pointer-events: none;
}

规则 1 是基于触摸的平滑滚动所必需的,规则 3 是允许叠加层位于顶部但不接收我们想要发送到下面元素的任何事件。 这为将来提供准确的打字支持提供了机会。

  • 构建了自定义惯性算法。 这是我能设计的最简单的算法,它“足够接近”iOS 的原生功能。 它只是在 24 毫秒的间隔内进行迭代,并将每个间隔的速度降低 94.9%。 初始速度是根据最后一次触摸和倒数第二次触摸之间的像素距离设置的(通过结合最后两次触摸之间的毫秒量可能会改进数学计算)。
  • 每当间隔中的最新位置发生变化时,触摸可滚动叠加层也会更新。 这是因为自定义算法优先于 iOS 算法,并且 div 不会不同步。

影响

Joe Hewitt 在他的可滚动性工作中广泛探索了这些相同的想法,如此处的博客: http :

为什么我一开始不使用可滚动性? Ace 依赖于虚拟视口,而 Joe 最终使用了 webkit 动画。 两者不兼容。 我必须设置 Ace 的“scrollTop”位置,然后必须更新虚拟渲染器以更改位置。 我本可以在 Joe 的代码中修改可滚动的 div,然后将他的 3D 转换结果应用到 Ace 层,但是呃——冒险更有趣:-)

未来

如前所述,这仅用于滚动。 我们仍然需要在那里获得准确的打字支持。

对于可以处理速度的更现代的 iOS 设备,这种方法非常有效。 但是肯定可以进行优化。 我们将继续探索新旧硬件的选择。

由于这只是一个演示,而不是主要 Ace 代码库的一部分,下一步是将其放入核心。

期待获得你们在不同设备上的体验以及如何改进的反馈。 干杯~

嘿马特,

非常高兴地报告这在我的 iPad4 上比昨天更稳定。 干得好! 我还在运行 Android 4.2 的三星 Galaxy Nexus 上对其进行了测试,看起来不错。 (请不要让我们制定仅适用于 iOS 的解决方案。)文本插入在 Android 上也能完美运行,而我的 iPad 有一个奇怪的双光标问题(但我仍然可以打字。)

@mattpardee太棒了!

不幸的是,它似乎完全破坏了我对 Android 浏览器(Android v4.1.1)和 Chrome Mobile(v18.0,2012 年 11 月)的支持。 那些浏览器以前有一些小问题,但现在我只用一个大的白色 div 代替 Ace。

惊人的!!

@lennartcl你用的是什么设备? 这仅在您检查移动模式选项时发生?

@mattpardee这是在 Galaxy S3 上,无论移动选项如何,都会发生。 但实际上我今天又试了一次,现在它似乎在两个浏览器中都能像以前一样工作。

伟大的! 现在我可以继续统治世界了。

我只是在使用 ipad iOS v5 的 iOS Simulator 上尝试使用 master 的厨房水槽,但它似乎没有开始编辑。

当我使用 ipad 3 iOS 5.1 访问实时站点厨房水槽时,它确实进行了编辑,但总是尝试将字母大写。 看起来它一直处于选择模式,并带有开始和停止蓝色复制按钮。

这是 master 中的最新代码还是我们应该查看分支或拉取请求?

嗨,杰夫,

查看功能/ioscroll 分支。

https://github.com/ajaxorg/ace/tree/feature/ioscroll

这至少应该在编辑器中启用滚动(并且您不必选择任何选项来启用它)。

@mattpardee是的,这在 iOS 模拟器中启用了滚动,但我无法找到一种方法来启动编辑器以允许编辑。 我想那还在进行中吗?

是的,仍在进行中,尽管不可否认,我不知道我是否有能力自己完成这项工作。 其中一些与在底层 textarea 上调用焦点或模糊的触摸事件有关,但大部分的艰苦工作将与更新光标处理程序有关。 光标从其真实编辑位置的偏移距离向行尾累积,因此它正在执行的数学运算有一些基本的东西。

希望有人迎接挑战!

行。 感谢更新。

有没有办法至少我可以检测浏览器是否有运行 ACE 浏览器的最小要求,以便我可以回退到 textarea?

@jfromaniello你可以使用Modernizr

Modernizr is a JavaScript library that detects HTML5 and CSS3 features in the user’s browser.

@faceleg是的,但是 ACE 需要什么功能.. 例如 iOS 有很多功能,但屏幕键盘没有显示。

有没有更新光标位置? 滚动看起来不错。

是否有人仍在积极致力于此?

@MarkMurphy老实说,我认为不是。 有关最后一个状态,请参阅上面@mattpardee的评论。

关于滚动,反过来呢?
就像创建足够大的 div,例如height: 10000px;并将其放入另一个较小的 div 中。 它并不完美,尽管本机滚动比使用额外资源来模拟它更受欢迎。 请参阅 Dylan 博客文章“让 Ace 编辑器填充可用空间”

至少我们现在知道虚拟键盘的外观和行为方式: http :

只是好奇:这是什么状态? 对于 iOS 来说,它仍然是一个未解决的问题吗?

如果有人愿意为此工作,我有一个提示和可能的解决方法。 问题似乎是通过触摸选择 ace textarea 时键盘没有出现。 但是,当 textarea 是表单的一部分并且使用 iOS 提供的“Next”...“Previous”按钮选择它时,它确实会出现。 我认为...

我前段时间注意到了这一点,但一直没能找到时间来验证它。 所以YMMV。

我的页面可以选择更改编辑器的语言模式。

首次加载页面时,触摸编辑器时不会触发 soft 关键字,
但是,在我从选择中手动更改语言后,触摸编辑器将触发键盘。

希望这会有所帮助。

维基百科使用 Ace 编辑模板代码模块的下游 bug: https :

作为一种解决方法,我们可以将 iOS 上的 Ace 列入黑名单并暂时使用纯文本区域。

CodeAcademy.com 正在使用 Ace,他们在 iPad 上拥有完整的功能,并提供选择。 我可能会调查这个。

有这方面的消息吗?

这个错误也破坏了 iOS 上的 Cloud9 IDE 。 :+1: 为了这个问题得到一些关注!

大家好,请问有人在吗?

+1 ipad 上的编辑器也有问题

+1 — 我们为编辑器使用 Markdown 模式,复制/粘贴是 iOS 中 Ace 所缺少的一项重要功能。

由于此错误,无法使用 c9.io。 厨房水槽演示也不会滚动 (http://ace.c9.io/build/kitchen-sink.html)。 发生在 ipad 和我的 Android Transformer(这对于轻量级开发需求来说非常棒)。

对于我的 Web 应用程序,我曾经使用 CodeMirror。 但是,由于模式和功能丰富,我最近切换到 ace。 缺乏移动支持使我重新考虑我的选择。

在移动设备上启用滚动功能是否取得了任何进展? 它在我尝试过的任何 iOS 或 android 设备上都不起作用。

@mkaminsky11 +1。 我还在 CodeMirror 或 Ace 之间做出决定,而 iOS 支持是阻碍我的事情。

正如@jakesankey所说,codeacademy.com 使用 ace。 我尝试查看代码以了解它们如何在移动设备上运行,但无济于事。 联系他们并寻求帮助是一个可行的解决方案吗?

我们在 Codecademy 为Orion提供移动设备服务。

现在修好了吗?

如果我“请求桌面版本”,它在我的 Asus Transformer 上工作得很好。 可惜浏览器不会记住这些设置。

+1

嗨,仅供参考,我的项目使用 ace。 虚拟键盘问题很麻烦,我最终将编辑器设为内容大小。 可能存在性能问题。

https://github.com/dai-shi/codeonmobile

这仍然是一个问题,见http://3v4l.org/

这个问题也阻止了 PlayCanvas.com (iPad Air iOS 8),这是一个耻辱,因为如果编辑器完全支持 iPad,剩下的就是一个非常疯狂的 HTML5 展示!

+1。 目前正在研究一种解决方法,涉及手动创建一些滚动按钮,坐在编辑器旁边,使用scrollBy http://ace.c9.io/#nav =api&api=virtual_renderer

+1 用于滚动问题。

+1 用于滚动问题

+1 用于滚动问题。

+1 用于滚动问题。

大家好,我不够好/不够耐心来修复编辑器本身,因为触摸与鼠标的整个概念是不同的。 但是使用下面的脚本,您可以让 ACE 编辑器在触摸设备(IOS / Android)上滚动。 只需将其放入编辑器的配置部分(在此声明编辑器,并添加选项)。

http://pastebin.com/1Rh7UDea

@iq77该代码应该做什么? 我正在尝试,到目前为止没有任何区别? 我是真正希望它在触摸设备上正常工作的人之一......

@tluyben在“touchstart”上保存了触摸事件的 x/y 坐标。 在“touchmove”上计算开始和结束之间的差异,然后将 x/y 值传递给 ACE 的“渲染器”。 渲染器进行滚动。 它适用于我的脚本,但也许您必须根据自己的需要调整一些类名等。 里面还有一些 jQuery,你可能需要替换它。

这是一个很好的主题,但我发现很难说出 (a) “滚动问题”的本质是什么,(b) 哪些设备/操作系统版本受到影响,以及 (c) 有哪些解决方法可用。 如果有人愿意总结这些位置,那就太好了。

我刚刚在[运行 iOS 8 和 Safari 8 的 iPad Air 2] 和 [运行 Android 5.1 和 Chrome 40 的 Nexus 10] 上测试了厨房水槽,并且能够水平和垂直滚动(横向;我没有在纵向)。 复现步骤:
1) 浏览到 http://ace.c9.io/build/kitchen-sink.html
2) 在编辑器窗格中添加一堆行(空白行工作正常),直到出现的行数超过了屏幕的大小。
3) 如果需要,缩小以查看完整的浏览器。 (编辑编辑器窗格的内容可能会自动放大,从而难以分辨是滚动窗格还是只是移动放大的视图。)
4) 在编辑器窗格的最右侧边缘向上/向下滑动。 不会出现滚动条,但编辑器窗格内容应按预期滚动。
5) 要测试 hscroll,请创建一长串比屏幕上适合的字符更宽的字符串; 如果需要,缩小; 在编辑器窗格的最底部边缘向左/向右滑动。 我在 Android 上看到了一个渐隐的滚动条,但在 iOS 上没有滚动条……但是无论如何,hscrolling 都适用于两者。

我一直在寻找这些问题,从我可以解决的问题来看,这是确定的“与触摸相关的一切”线程。 如果我错了,请纠正我,我会继续挖掘/提交新问题。

iOS touch 似乎无法在 Ace 上下文中调出上下文菜单(重要的是,这允许剪切 + 粘贴)。 通常这可以通过点击光标来触发,但 Ace 会覆盖此行为以将光标向前移动一个字符。

@barneycarroll ,这似乎是与触摸相关的线程。 我最近一直在努力尝试至少为滚动实现一些触摸支持。 现在,如果您在编辑器视图空间的最右侧或底部(滚动条所在的位置)的右侧区域上滚动,则可以滚动。 但这不是一个可行的解决方案。

我想我正在着手实现一些触摸支持,我让它在 iOS 模拟器上工作。 查看 fork (https://github.com/AStoker/ace),您目前需要构建它以进行编译(因为这是源代码),但是如果您按照领域中的构建说明进行操作,那就很容易了。 我希望在任何改进方面得到一些帮助,因为现在似乎触摸支持不是一个高优先级(但这是开源的好处,我们可以自己修复它)。 如果一切看起来不错,我会提出一个请求来实现它。

+1 用于在 iOS 中复制/粘贴。 问题是自定义光标处理? 解决这个问题的攻击计划是什么?

iPhone 6 plus ios 9.2 公开测试版现在似乎与 ace 配合得很好。 滚动工作和编辑工作就像您在计算机上一样。

只是需要改进复制和粘贴。

可以粘贴和复制,但很难做到。

http://www.apus.com
2015 年 11 月 19 日上午 10:52,“paladox”通知@github.com 写道:

iPhone 6 plus ios 9.2 公开测试版现在似乎与 ace 配合得很好。
滚动工作和编辑工作就像您在计算机上一样。

只是需要改进复制和粘贴。

可以粘贴和复制,但很难做到。


直接回复此邮件或在 GitHub 上查看。

我的 iPad 键盘上的箭头键有问题。 键盘在任何环境中都可以正常工作,但如果我连接到我的云 9 服务器并开始编程,箭头键将被忽略。 我可以将它们添加到某个地方或者如何解决? 编码时我经常需要箭头。

<div id="editor" class="page-content" contenteditable="true"></div>

在 iOS 中的技巧。 似乎无法让 assembly_x86 语法突出显示工作。

我必须在哪里包含此代码? 我认为这必须在 user.settings 中,但它没有 HTML 部分

WebView 中的 HTML。

无法让它在 UIWebView 中工作 👎 它开始正常,但是一旦我尝试移动光标,一切都失败了。 我不能写,或者使用@jcss-org-il 解决方案( <div id="editor" class="page-content" contenteditable="true"></div> )光标移动到编辑器之外。

有人可以帮我解开一个谜吗? GitHub 在线代码编辑器,据称基于 Ace(https://github.com/blog/905-edit-like-an-ace),非常棒。 它在 iPad 上完美运行,包括带蓝牙键盘,方向键工作(包括 Ctrl-左箭头、Alt-左箭头等),并且性能很棒等。

这是此 repo 的 README.md 文件的 iPad 编辑会话的屏幕截图:(https://github.com/ajaxorg/ace/edit/master/Readme.md)

img_0819

然而,这个线程上的每个人(包括我自己)都无法让 Ace 在 iPad 上运行而没有问题(例如,箭头键不起作用)。 (我有与这里报告的相同的问题:https://github.com/ajaxorg/ace/issues/37#issuecomment-195258878)

GitHub 是否运行自定义版本的 Ace? 那个版本是公开的吗? 我很想跑他们跑的任何东西! (DOM 检查器的屏幕截图,确认它似乎在底部运行 Ace。)

太感谢了!
G

editing_ace_readme_md_at_master_ _ajaxorg_ace

@realgenekim从截图看来 github 在 ipad 上使用了 textarea

@nightwing迷人的理论! 但是,如果您查看编辑器控件,就会发现行号、类似 Ace 的功能似乎不仅仅是标准的 HTML 文本区域,例如选项卡宽度、文本换行...

经过仔细检查,我很确定它比 textarea 更奇特!

@realgenekim行号仅在第二个屏幕截图中,看起来不像 ipad

@nightwing圣牛。 这太有趣了——我认为你是绝对正确的。 我会尝试从 GitHub 上的某个人那里得到一些确认......

我想这意味着我会尝试做同样的事情。 即,在运行时检测它是否是 iPad,而不是加载 Ace 编辑器,而只是使用文本区域。

太不满意了,但至少在有人想出一个好的 iPad 解决方案之前它是可用的......

😦

刚刚在我的 iPad pro 上进行了测试,它基本上显示了一个基本的textarea 。 也许随着自动增长。

它是不是像一个不透明度为 0 的 textarea 和一个 ace 编辑器实例一样聪明的东西紧跟在它后面? 我想有了现代 iPad 的性能,几乎可以在每个输入事件上立即保持状态(内部滚动和内容)......

@barneycarroll不,至少在我的测试中,我在没有行号等的普通文

大家好! 我刚刚创建了一个拉取请求来修复 iOS 上的一些问题。 如果您有外接键盘,它会提供良好的用户体验。

如果你喜欢它,我可能会考虑解决剩下的问题:)

您可以在https://ipad-undo.gomix.me上看到它的实际效果

享受!

只是使用您的演示,我发现插入点有问题。 例如,创建一对引号,将光标放在它们之间,然后开始输入。 它随机跳到行尾。 我不确定此更改是否引入了该问题,或者最初是否存在。

哦,谢谢@IamNaN ,这个错误现在已经在 PR 中报告了 :) 我想我知道如何修复它......请继续关注演示 :)

编辑:演示固定:)

@etamponi看起来棒极了! 它是否适用于:

  1. 像vim和emac一样插入?
  2. CKJ支持输入法吗?

目前,当您打开 IME 时,它看起来好像一团糟。

@episodeyang我真的很抱歉让你搁置这件事。

不幸的是,我没有时间继续做 PR……幸运的是有人接手了我的工作并完成了它,如果我没记错,现在它已合并为 #3310 :)

iOS 上已经不支持 vim,而且 PR 没有添加对它的支持。 我对 IME 了解不够,无法确定我的 PR 是否以任何方式影响了它,抱歉!

@etamponi提供的演示中,通过点击将光标放在单词中间似乎是

目前 ace 在 IOS 上运行良好,可以解决这个关于基本兼容性的问题。 如果您发现任何错误或缺少功能,请打开一个新问题。

此页面是否有帮助?
0 / 5 - 0 等级