Files
binutils-gdb/gdb/testsuite/gdb.fortran
Andrew Burgess 9dd02fc063 gdb: add tab completion of type field names for Fortran
Add support for tab-completion on Fortran field names.  Consider this
test case:

 program test
   type my_type
      integer :: field_a
      integer :: other_field
      integer :: last_field
   end type my_type

   type(my_type) :: var

   print *, var
 end program test

And the GDB session before this patch:

 (gdb) start
 ...
 (gdb) p var%                   <- Trigger TAB completion here.
 Display all 200 possibilities? (y or n) n
 (gdb) p var%

And the GDB session with this patch:

 (gdb) start
 ...
 (gdb) p var%                   <- Trigger TAB completion here.
 field_a      last_field   other_field
 (gdb) p var%

The implementation for this is basically copied from c-exp.y, I
tweaked the parser patterns to be appropriate for Fortran, and it
"just worked".

gdb/ChangeLog:

	PR cli/26879
	* f-exp.y (COMPLETE): New token.
	(exp): Two new rules for tab-completion.
	(saw_name_at_eof): New static global.
	(last_was_structop): Likewise.
	(yylex): Set new variables, and return COMPLETE token at the end
	of the input stream in some cases.

gdb/testsuite/ChangeLog:

	PR cli/26879
	* gdb.fortran/completion.exp: New file.
	* gdb.fortran/completion.f90: New file.
2020-11-14 21:19:27 +00:00
..