diff options
author | Tom Tromey <tromey@adacore.com> | 2022-02-22 13:12:02 -0700 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2022-04-04 12:46:09 -0600 |
commit | d4da1b2c1b7b85968da608dde03e054cc0b1f7ca (patch) | |
tree | 96c22080bfa90440d2f3a26359c47c9328f54081 /gdb/expop.h | |
parent | 484e7c5ff5fd24cfb2946fadd76b6b67bbeb4169 (diff) | |
download | binutils-gdb-d4da1b2c1b7b85968da608dde03e054cc0b1f7ca.tar.gz |
Add context-sensitive field name completion to Ada parser
This updates the Ada expression parser to implement context-sensitive
field name completion. This is PR ada/28727.
This is somewhat complicated due to some choices in the Ada lexer --
it chooses to represent a sequence of "."-separated identifiers as a
single token, so the parser must partially recreate the completer's
logic to find the completion word boundaries.
Despite the minor warts in this patch, though, it is a decent
improvement. It's possible that the DWARF reader rewrite will help
fix the package completion problem pointed out in this patch as well.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28727
Diffstat (limited to 'gdb/expop.h')
-rw-r--r-- | gdb/expop.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gdb/expop.h b/gdb/expop.h index c159d96a561..a17311f74e5 100644 --- a/gdb/expop.h +++ b/gdb/expop.h @@ -1005,10 +1005,18 @@ public: /* Try to complete this operation in the context of EXP. TRACKER is the completion tracker to update. Return true if completion was possible, false otherwise. */ - bool complete (struct expression *exp, completion_tracker &tracker); + virtual bool complete (struct expression *exp, completion_tracker &tracker) + { + return complete (exp, tracker, ""); + } protected: + /* Do the work of the public 'complete' method. PREFIX is prepended + to each result. */ + bool complete (struct expression *exp, completion_tracker &tracker, + const char *prefix); + using tuple_holding_operation::tuple_holding_operation; }; |