Lably
Skip to content

Code completion

Autocompletion feature in IDEs

  • 6 min read
  • 4 chapters

Related on Lably

Through Variable (high-level programming language), Function (computer programming) and Method (computer programming)

The feature appears in many programming environments. Implementations include IntelliSense in Visual Studio and Visual Studio Code. The term was originally popularized as "picklist" and some implementations still refer to it as such.

Overview

Intelligent code completion, which is similar to other autocompletion systems, is a convenient way to access descriptions of functions—and in particular their parameter lists. The feature speeds up software development by reducing keyboard input and the necessity for name memorization. It also allows for users to refer less frequently to external documentation, as interactive documentation on many symbols (i.e. variables and functions) in the active scope appears dynamically in the form of tooltips.

Intelligent code completion uses an automatically generated in-memory database of classes, variable names, and other constructs that given computer code defines or references. The "classic" implementation of IntelliSense works by detecting marker characters such as periods (or other separator characters, depending on the language). When the user types one of these characters immediately after the name of an entity having one or more accessible members (such as contained variables or functions), IntelliSense suggests matches in a pop-up dialog. The user can either accept the suggestion by typing a statement-completion character (Tab ↹ or ↵ Enter) or a language-specific marker (such as the semicolon for C++), or continue typing the name. Over time, IntelliSense determines which variable or function the user most likely needs. IntelliSense also displays a short description of a function in the pop-up window—depending on the amount of documentation in the function's source code.

The feature also lets users select from a number of overloaded functions in languages that support object-oriented programming. Some code editing software provide intelligent code completion through a Language Server Protocol (LSP) server.

Sign in to keep reading

3 more chapters are free with a Lably account.

More in Computing and communication