java - 拼写检查框架可以用于代码提示吗?

标签 java android

我正在查看拼写检查器框架,想知道是否可以使用它在我的应用程序中实现代码提示。我可以实现自定义“代码”字典吗?只是想知道这是否是在开始之前完成代码的可能方法。

最佳答案

良好的代码完成(在我个人看来)是上下文相关的,应该只显示范围内并且适用于代码中当前位置的内容的完成。例如,在 java 中,在方法之外显示方法名称补全实际上没有意义。对代码注释的英语词典进行简单的拼写检查是有意义的,但对方法和变量名称等则不然。

如果您想要一个功能齐全的代码编辑器,我认为您需要提供自己的编辑器(例如,不使用 TextView 本身)并进行自己的补全,也许使用系统拼写检查器 API 来拼写检查代码注释。您可能需要查看 TextView.java 和 Editor.java 的源代码,了解如何在编辑器级别实现您自己的代码编辑器和完成 UI(可能与其他开源代码编辑器结合使用)。

如果您的需求相对简单,您可以通过将 SuggestionSpan 类型的跨度添加到 TextView 中的文本(这就是拼写检查器的作用)以及完成信息来实现。

拼写框架基本上旨在根据字典检查一个或多个单词,而不考虑上下文。 (请参阅 SpellCheckerSession。您不会获得很多上下文。)

另一件事:在主动撰写文本(输入单词)时,补全通常由输入法处理,输入法通常会在软输入区域的单词选择列表中显示补全。您可能不想要这些补全/建议,因为输入方法仅处理由 InputType 定义的编辑器类型的补全,如果您尝试将编辑器欺骗为纯文本,您可能会得到不太理想的结果。在您的情况下,您可能希望在编辑器中处理完成(有点像 TextView 在点击拼写错误的单词时处理建议的方式),并确保您的编辑器通过 TYPE_TEXT_FLAG_NO_SUGGESTIONS 禁用 IME 建议(这也会禁用拼写检查器)。我想如果你真的有雄心的话,你也可以编写一个输入法来配合你的编辑器。

关于java - 拼写检查框架可以用于代码提示吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17822138/

相关文章:

java - 在 Eclipse 中使用图像创建按钮不起作用

java - hibernate 和 postgresql。导出架构时出错

java - 在 Java 和 C++ 中增加计数器的最佳方法?

android - 未从 Bootreceiver 设置 AlarmManager

java - android studio 如何将导航 Activity 中的 fragment 设置为启动页面

java - Apache AsyncHttpClient 4.1.4 创建新的套接字连接而不是重用来自连接池的连接

java - XML Dom 处理

java - 如何将 List<object> 转换为 org.json.JSONArray?

android - Json 字符串到 Realm 对象,最快的方法

java - Android SQLite数据库版本,更改结构现在无法查看DB