1. A system comprising: a memory; and a computer processor configured with: configurable data collection components for collecting, from a plurality of software applications, text data and text metadata representing an initial state of each of the software applications and text data and text metadata representing changes to the state of at least one of the plurality of software applications, wherein the text data and the text metadata collected by the configurable data collection components is selected by the configurable data collection components based on data collection settings of the configurable data collection components, wherein the data collection settings of the configurable data collection components establish what type and amount of the text data and text metadata are to be collected by the data collection components from each of the software applications; a central text matching component for receiving from the data collection components the text data and text metadata representing an initial state and the text data and text metadata representing changes to the state of at least one of the plurality of software applications, wherein the text data and text metadata and the change text data and text metadata is stored in a database in the memory, the database maintained by the central text matching component; a sending component for sending text entered by the user in a text-entry field of an application and any text metadata associated with said entered text to the central text matching component; a comparison component for comparing said entered text and associated text metadata to text data and text metadata in the database and locating text strings matching the text data and metadata; a weighted ordering component for ranking the matching text strings using the text metadata and weighted ordering component configuration settings; a completion component for completing the entered text at the text-entry field based on a selection of one of the located matching text strings; an updating component for updating text metadata of the matching text string in the database to reflect the selection; and an updating component for updating the configuration settings of the weighted ordering component based on the updated text metadata.