Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Emacs IFC SPF mode
Emacs Lisp
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Makefile
README.md
ifc-mode-common.el
ifc-mode-generator.el
ifc-mode.el
ifc.tags

README.md

IFC-MODE - Major mode for editing IFC SPF files.

Copyright (C) 2012 Olof-Joachim Frahm olof@macrolet.net

Release under a Simplified BSD license.

INSTALLATION

Run make to generate syntax and toc files. The necessary files are downloaded and then preprocessed to extract the IFC types.

Then add the following to your .emacs file:

(add-to-list 'load-path "~/path/to/ifc-mode")
(autoload 'ifc-spf-mode "ifc-mode"
  "Major mode for editing IFC SPF files." t)
(add-to-list 'auto-mode-alist '("\\.ifc$" . ifc-spf-mode))

(At the moment only IFC2X3 TC1 is used, but in principle all definitions can be switched rather easily (load another generated file and change the documentation root URL). This could also be done automatically by parsing the correct version from the visited file.)

USAGE

Syntax highlighting is enabled for the predefined IFC types and enumerations. Additionally two functions for following object IDs are available: With ifc-mode-find-tag, which is bound to M-. by default, the buffer is searched for a numeric tag at the point like #42=. With ifc-mode-find-uses, bound to M-_ and M-?, the buffer is searched for only #42, i.e. all uses of that ID.

If you're using evil-mode, evil-search-symbol-forward and -backward can be used instead of ifc-mode-find-uses, because they do essentially the same (searching for the next symbol) and additionally wrap around the buffer.

ifc-mode-pop-find-tag, or the default pop-tag-mark, restore the previous point. (Wrap-around for ifc-mode-find-uses isn't yet implemented, but would definitely be useful to have.)

Documentation can be found using ifc-mode-docs-lookup, bound to C-c C-d h. The point has to be over an IFC identifier, e.g. IFCMATERIAL, which has to be in the list of defined types. (Resolving enumeration values isn't implemented yet.)

Something went wrong with that request. Please try again.