wiki:Features/Autocomplete

Version 5 (modified by szabgab, 4 years ago) (diff)

--

Autocompletition of variables, functions and methods

Also called Suggest & complete

Padre knows two types of source code auto-complete:

  • Manual Edit -> Autocomplete or pressing the hotkey Ctrl-Space
  • Automatically while typing

Both of them are configurable using the Preference System Tools -> Preferences -> Perl Auto Complete

Options:

  • Autocomplete always while typing
  • Autocomplete new methods in packages
  • Autocomplete new subroutines in scripts
  • Minimum length of suggestions: 3
  • Maximum number of suggestions: 20
  • Minimum characters for autocompletition: 1

Only known keys of this hash are suggested within hash brackets.

Tickets

Ticket Resolution Summary Owner Reporter
#1421 config.yml -> autocomplete_always: 1 bowtie
#1106 Perl/Create Projects Tagfile cause Padre to freeze szabgab
#821 fixed autocompletion triggered even on blank line Sewi jquelin
#820 autocompletion triggered on ctrl+tab Sewi jquelin
#806 fixed Auto complete tooltips won't "go away" waxhead
#753 Implement better method autocompletion heuristics tsee
#752 Document and end-user-simplify the perltags and autocomplete featureset tsee
#699 POD on auto-complete subs patspam
#652 Autocomplete: Make Pos1 & End work azawawi Sewi
#308 variable name completition szabgab
#67 fixed Ctrl-P/Ctrl-N autocompletion tsee tsee

Test

  • Open any Perl source file
  • begin typing a variable name used in that file
  • Manual: Press Ctrl-P, Automatic: No need to press anything
  • A dropdown list should pop up near the cursor suggesting the rest of the variable name

Implementation

Each document class should implement its own method called 'autocomplete'. For Perl here are the implementations:

TODO

This feature considers the local file as source for suggestions. A perltags file is used if the project has one.

  • Suggest from overall word list if a hash has no known keys
  • Enable creation of perltags files using the UI or automatically (the menu item from the Perl menu might not work properly)
  • Support references ($www = WWW::Mechanize->new(); type $www-> to show a list of methods; type $www->{ to show a list of useable keys)
  • Use all words from a project within all files of this project (configurable!!!)