Modern IDE Features

While the twinBASIC IDE still has a lot of work planned, it already includes a number of features that make life much easier found in other modern IDE, but not the ancient VBx IDEs.

Theme System

Fully theme-able, with Dark (default), Light, and Classic (Light) built in, and an easy inheritance-based system to add your own themes via CSS files.

Code Navigation and Structure

  • Code folding, with foldable custom-defined regions via #Region "name" ... #End Region blocks.
  • Sticky-scroll, which keeps context lines at the top showing major sections of code like module, region, method, With blocks, etc.
  • Indent guides, lines drawn along common indent points to help line things up right.
  • Code mini-map, shows a graphics overview of the code structure alongside the scroll bar, helping to guide your scrolling.

Editing Features

  • Fully customizable keyboard shortcuts covering all commands, with ability to save and switch between different sets.
  • Auto-indent on paste.
  • Paste as comment.
  • Inline code hints, which provide annotations at the end of blocks for what the block is (see picture).
  • Color-matching for parentheses and brackets.

Advanced Features

  • Full Unicode support in .twin files, so you can use the full Unicode range of the font in your comments and strings.
  • Advanced Information popup, which shows offsets for UDT members, their total size via both Len() plus LenB(), and their alignment; and v-table entry offsets for interfaces and classes, as well as their inheritance chain.
  • A type library viewer for controls and TLB files that displays the full contents in twinBASIC-style syntax rather than ODL.

Panels and Windows

  • A History panel containing a list of recently modified methods.
  • An Outline panel with selectable categories.
  • Problems panel, provides a list of all current errors and warnings (you can filter to show only one or the other).

Form Designer Enhancements

On the Form Designer, control with Visible = False are faded to visually indicate this. Also, pressing and holding Control shows the tab index of each tab stop.

An annotated twinBASIC IDE screenshot labelling sticky scroll, colour matching, indent guides, the advanced info popup, inline code hints, Unicode in the editor, folding controls, the mini-map, the Outline, History and Problems panels, and memory usage and object counts Full size

New Code-Based Project Explorer

A new code structure based Project Explorer:

The Project Explorer in code-based view, grouping the project into Modules, Forms, Interfaces, UserDefinedTypes and Enumerations

The classic file-based view is still used by default, you can activate the new view with a toggle button:

The Project Explorer title bar with the file view toggle button highlighted

View Forms and Packages as JSON

Project forms and packages are stored as JSON format data, and you can view this by right-click in Project Explorer and selecting ‘View as JSON’. This is particularly interesting for packages as it exposes the entire code in a more parseable format.

The Project Explorer right-click menu with View As JSON highlighted

A package shown as JSON in the editor, listing its components, interfaces and procedures