From 2f68a89553836f68b8676beda9287c93e489bc6e Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 7 Dec 2012 20:09:11 +0000 Subject: * ada-lang.c (ada_make_symbol_completion_list): Add 'code' argument, assertion. * c-exp.y (typebase): Add completion productions. * completer.c (expression_completer): Handle tag completion. * expression.h (parse_expression_for_completion): Add argument. * f-lang.c (f_make_symbol_completion_list): Add 'code' argument. * language.h (struct language_defn) : Add 'code' argument. * parse.c (expout_tag_completion_type, expout_completion_name): New globals. (mark_struct_expression): Add assertion. (mark_completion_tag): New function. (parse_exp_in_context): Initialize new globals. (parse_expression_for_completion): Add 'code' argument. Handle tag completion. * parser-defs.h (mark_completion_tag): Declare. * symtab.c (default_make_symbol_completion_list_break_on): Add 'code' argument. Update. (default_make_symbol_completion_list): Add 'code' argument. (make_symbol_completion_list): Update. (make_symbol_completion_type): New function. * symtab.h (default_make_symbol_completion_list_break_on) (default_make_symbol_completion_list): Update. (make_symbol_completion_type): Declare. testsuite * gdb.base/break1.c (enum some_enum, union some_union): New. (some_enum_global, some_union_global, some_value): New globals. * gdb.base/completion.exp: Add tag completion tests. --- gdb/language.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gdb/language.h') diff --git a/gdb/language.h b/gdb/language.h index 3a1e390..49afbc4 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -284,8 +284,11 @@ struct language_defn /* Should return a vector of all symbols which are possible completions for TEXT. WORD is the entire command on which the - completion is being made. */ - VEC (char_ptr) *(*la_make_symbol_completion_list) (char *text, char *word); + completion is being made. If CODE is TYPE_CODE_UNDEF, then all + symbols should be examined; otherwise, only STRUCT_DOMAIN + symbols whose type has a code of CODE should be matched. */ + VEC (char_ptr) *(*la_make_symbol_completion_list) (char *text, char *word, + enum type_code code); /* The per-architecture (OS/ABI) language information. */ void (*la_language_arch_info) (struct gdbarch *, -- cgit v1.1