Next to using any editor capable of editing plain text files and
running SWI-Prolog in a separate window, the following possibilities
exist:

Using GNU-Emacs

Unfortunately, standard GNU-Emacs Prolog mode is very weak, especially at
handling proper Prolog indentation. The good news is that there is a better
mode today. For more information, see the FAQ.

Using XPCE

In the long run, we want to move to an Integrated Development
Environment (IDE) based on XPCE. Various parts of this environment
already exist and are actively being used.

PceEmacs is a GNU-Emacs clone in XPCE/Prolog, providing
Prolog syntax highlighting based on parsing and
cross-referencing the editor buffer. Colouring highlights variables, quoted entities, comments, goals (classified as
built-in, imported, local, dynamic and undefined), predicates
(classified as local, public and unreferenced), and file references
(classified as existend/non-existend). PceEmacs is started using
the predicate emacs/[0,1].

The graphical tracer provides source-level
debugging, using three views: your source, variable bindings, and
the stack. The stack view includes choicepoints and visualises
the effect of executing the cut!

The Cross Referencer analyzes dependencies in
the loaded program and points out undefined and unused code. It
can also generate module headers and import directives based on
the analysis.

The Prolog Navigator provides an
explorer-like view on a directory holding Prolog source files.
Sources files can be expanded in the tree to show predicates,
exports, XPCE classes and methods. Can be used to edit entities
or enable debugging them (spy).

The Windows Prolog console plwin.exe provides a menu to access many
of these facilities directly.

We intend to allow the user to select preferred tools and combine them
with whatever they like. In other words, we don't want to force the user into
using a bulky all-in-one closed toolkit.

Gerhard Röhner has developed an integrated Prolog editor in MS-Windows
following the conventions of this platform. The embedded SWI-Prolog
provides functionality similar to PLWIN.EXE, including the possibility
to run XPCE GUI programs.

Especially for classroom usage on MS-Windows, you should consider this
version. The site also contains some demo material.