This project adds a new major mode to GNU Emacs for editing BlitzMax source files. It supports keyword highlighting, keyword capitalization, and automatic indentation.
It is recommended to install this package directly from MELPA or via el-get. The package is listed in Melpa as blitzmax-mode
.
To manually install this extension:
~/.emacs.d/
).load-path
if it’s not yet there: (add-to-list 'load-path "/path/to/blitzmax-mode")
(require 'blitzmax-mode)
Once everything is loaded, blitzmax-mode can be enabled for a buffer by running M-x blitzmax-mode
. The mode also associates itself with .bmx
files, so they will automatically switch to blitzmax-mode
when enabled.
The following configuration code will enable blitzmax-mode
for .bmx
files.
(use-package blitzmax-mode
:mode "\\.bmx\\'"
blitzmax-mode provides the following configuration options:
blitzmax-mode-indent
- The number of spaces to indent by. By default blitzmax-mode indents by 4 spaces which is converted to a single tab.
blitzmax-mode-capitalize-keywords-p
- Disable automatic capitalization of keywords by setting this to nil
. t
by default.
blitzmax-mode-smart-indent-p
- Disable smart indentation by setting this to nil
. t
by default.
blitzmax-mode-compiler-pathname
- Full pathname to the BlitzMax compiler bmk
. “bmk” by default.
quickrun.el is an extension for compiling and executing the current buffer.
To enable quickrun support, add the following to your Emacs initialization file:
(with-eval-after-load 'quickrun
(blitzmax-mode-quickrun-integration))
To bind quickrun to a key press (C-c C-c
in this example), add the following to init.el
(or wherever your Emacs config resides):
(eval-after-load "blitzmax-mode"
'(define-key blitzmax-mode-map (kbd "C-c C-c") 'quickrun))
To add quickrun support to blitzmax-mode
via use-package
, use the following:
(use-package blitzmax-mode
:mode "\\.bmx\\'"
:bind
(("C-c C-c" . quickrun))
:config
(blitzmax-mode-quickrun-integration))
When called, quickrun will compile and execute the current buffer with debug and threading enabled. Once the process has finished running the executable file will be deleted.
Projectile is a great Emacs package for organizing and navigating large projects. It can be configured to build a BlitzMax application by setting projectile-project-compilation-cmd
in the project’s .dir-locals.el
file.
For example, the following would go in .dir-locals.el
in the projects folder. It would compile the contents of src/my_app.bmx
in release + threaded mode and save the executable as my_app
:
((nil . ((projectile-project-compilation-cmd . "bmk makeapp -r -h -o my_app src/my_app.bmx"))))
The current project can then be compiled by running projectile-compile-project
(bound to C-c p c
by default).
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.
This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.