added support for preferences, including user-defined filetype mappings and whether to reparse on post_save (default to False)