From 9d6637458e9a8e42a4d0b7976e653deacb9695a1 Mon Sep 17 00:00:00 2001 From: Dmitry S Date: Sun, 13 Sep 2020 01:41:43 -0400 Subject: [PATCH] (core) For autocomplete suggestions in formulas, add links to suggestions we have documentation for. Summary: This is a hacky solution that unfortunately relies on internal workings of ACE autocomplete popups. I don't see a less hacky one if we stick with ACE autocomplete. Test Plan: Added a test case for links to test/nbrowser/Formulas.ts Reviewers: paulfitz Reviewed By: paulfitz Differential Revision: https://phab.getgrist.com/D2610 --- sandbox/grist/autocomplete_context.py | 2 ++ sandbox/grist/test_completion.py | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/sandbox/grist/autocomplete_context.py b/sandbox/grist/autocomplete_context.py index 8951cb40..19fdd0ca 100644 --- a/sandbox/grist/autocomplete_context.py +++ b/sandbox/grist/autocomplete_context.py @@ -78,6 +78,8 @@ class AutocompleteContext(object): if completion: # For methods (eg ".lookupOne"), use the original result as funcname (eg "Foo.lookupOne"). if dot >= 0: + varname = funcname[:dot] + funcname = self._lowercase.get(varname, varname) + key completion = completion._replace(funcname=funcname) return tuple(completion) diff --git a/sandbox/grist/test_completion.py b/sandbox/grist/test_completion.py index 9aac7330..0bee5b23 100644 --- a/sandbox/grist/test_completion.py +++ b/sandbox/grist/test_completion.py @@ -111,6 +111,11 @@ class TestCompletion(test_engine.EngineTestCase): ('Address.lookupRecords', '(colName=, ...)', True), ]) + self.assertEqual(self.engine.autocomplete("address.look", "Students"), [ + ('Address.lookupOne', '(colName=, ...)', True), + ('Address.lookupRecords', '(colName=, ...)', True), + ]) + def test_suggest_column_type_methods(self): # Should treat columns as correct types. self.assertGreaterEqual(set(self.engine.autocomplete("$firstName.", "Students")),