我正在寻找一种方法来改善GPS ADA的自动完成功能 (版本:带有GNAT Pro 6.4.2的GPS 6.0.1)。
GPS自动填充功能会搜索以您输入的文字开头的匹配项。
我想在文字的任何地方匹配我的字符串。
目前正则表达式将是这样的: /myString.*/i
我希望它是: /.*的myString。* / I
我自己也看过这个插件,http://docs.adacore.com/gps-docs/users_guide/_build/html/GPS.html#GPS.Completion的文档引用了“completion.py” - 这是我无法找到的 - 我猜这可能只有已包含在后来的GPS版本中。
答案 0 :(得分:2)
您确实可以自己写一下(GPS的最新发展不包括此功能,我相信以前从未请求此功能。)
目标是定义一个动作,然后可以将其绑定到一个键快捷键。例如,插件将从以下内容开始:
import GPS, gps_utils
@gps_utils.interactive(name='My Completion', filter='Source editor'):
def my_completion():
buffer = GPS.EditorBuffer.get() # the current editor
loc = buffer.current_view().cursor() # the current location
start = loc.forward_word(-1) # beginning of word
end = loc.forward_word(1) # end of word
text = buffer.get_chars(start, end) # the text the user is currently typing
# then search in current buffer (or elsewhere) for matching text
match = buffer.beginning_of_buffer().search(text)
if match:
match_start, match_end = match
match_text = buffer.get_chars(match_start, match_end)
# then go back to initial location, remove text and replace with match
buffer.delete(start, end)
buffer.insert(start, match_text)
这是一个粗略的概述,可能有数百个细节我没看过。它应该让你开始。