hackerb9 / basic-mode

Emacs major mode for editing BASIC code

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

basic-mode

MELPA MELPA Stable Open Issues License

Package basic-mode provides a major mode for editing BASIC code in GNU Emacs. Features include syntax highlighting and indentation, as well as support for auto-numbering and renumering of code lines.

Installation

The recommended way to install basic-mode is from MELPA.

To install manually, place basic-mode.el in your load-path, and add the following lines of code to your init file:

(autoload 'basic-mode "basic-mode" "Major mode for editing BASIC code." t)
(add-to-list 'auto-mode-alist '("\\.bas\\'" . basic-mode))

Usage

Formatting Code

TAB indents the current line of BASIC code, including line numbers if available. If the region is active, TAB indents all lines in the region.

C-c C-f formats the entire buffer; indents all lines, and removes any extra whitespace. If the region is active, C-c C-f formats all lines in the region.

Line Numbers

For classic BASIC, basic-mode provides several functions to manage line numbers. Customize variables basic-auto-number and basic-line-number-cols to your liking to turn on line numbers.

With line numbers turned on, RET will start new lines with a fresh line number. The line number increment is defined by variable basic-auto-number. C-c C-r will renumber all lines in the entire buffer, including any jumps in the code. The line number increment used when renumbering is defined by variable basic-renumber-increment. If the region is active, C-c C-r renumbers all lines in the region instead.

With line numbers turned on, C-c C-f will also respect line numbers, and the value configured in basic-line-number-cols while formatting.

Navigation

Package basic-mode also provides additional functionality to navigate in the source code. M-. will find and move to the line number, label, or variable at point, and M-, will move back again. For more information, see function xref-find-definitions.

Configuration

The following table lists the customizable variables that affect basic-mode in some way:

Name Description Default Value
basic-auto-number If non-nil, auto-number new lines by incrementing the line number with this value. nil
basic-delete-trailing-whitespace If non-nil, basic-format-code deletes trailing whitespace while formatting. t
basic-indent-offset The number of columns to indent code blocks, for example inside an IF statement. 4
basic-line-number-cols The number of columns allocated to line numbers at the beginning of the line. 0
basic-mode-hook Hook run when entering BASIC mode. nil
basic-renumber-increment Default line number increment when renumbering lines. 10
basic-renumber-unnumbered-lines If non-nil, lines without line numbers are also renumbered when renumbering lines. t
basic-syntax-highlighting-require-separator If non-nil, only keywords separated by separators will be highlighted. If nil, keywords separated by numbers will also be highlighted. t
delete-trailing-lines (simple.el) If non-nil, basic-format-code deletes trailing empty lines while formatting. t

About

Emacs major mode for editing BASIC code

License:GNU General Public License v3.0


Languages

Language:Emacs Lisp 100.0%