MBDyn Filetype

MBDyn is a free general purpose Multibody Dynamics analysis software, released under GNU's GPL 2.1

Add the following lines to ~/.config/geany/filetype_extensions.conf under the section [Extensions]

[Extensions]
MBDyn=*.mbd;*.ref;*.nod;*.elm;*.set;
[Groups]
Markup=MBDyn

Save the configuration file below in your Geany filetype definition files config directory, e.g. ~/.config/geany/filedefs/filetypes.MBDyn.conf (NB: Note that this filetype definition file is in constant development, meaning it can be used but may need improvement.)

filetypes.MBDyn.conf
    # For complete documentation of this file, please see Geany's main documentation
    # Using the Perl lexer seems to be the best option to have both # single line and /* multiline comment work, multiline comments however still suffer when / are present within them
 
[styling]
    # Edit these in the colorscheme .conf file instead
default=default
error=error
commentline=comment_line
number=number_1
word=keyword_1
string=string_1
character=character
preprocessor=preprocessor
operator=operator
identifier=identifier
scalar=identifier_1
pod=comment_doc
regex=regex
array=identifier_2
hash=identifier_3
symboltable=identifier_4
backticks=backticks
pod_verbatim=comment_doc_keyword
reg_subst=regex
datasection=value
here_delim=here_doc
here_q=here_doc
here_qq=here_doc
here_qx=here_doc
string_q=string_2
string_qq=string_2
string_qx=string_2
string_qr=string_2
string_qw=string_2
variable_indexer=default
    # *_var mappings may need checking
string_var=identifier_1
regex_var=identifier_2
regsubst_var=identifier_2
backticks_var=identifier_2
here_qq_var=identifier_2
here_qx_var=identifier_2
string_qq_var=identifier_2
string_qx_var=identifier_2
string_qr_var=identifier_2
    # translation: tr{}{} y{}{}
xlat=string_2
    # not used
punctuation=default
    # obsolete: replaced by qq, qx, qr, qw
longquote=here_doc
sub_prototype=here_doc
format_ident=string_2
format=string_2
 
 
[keywords]
primary=a abs absolute abstract acceleration accelerations acos acosh actan actan2 actanh active aerodynamic air aircraft algebraic all alpha amplitude angle anglerel angular angvel angvrel angvrel2 array asbtract asin asinh assembly atan atan2 atanh axial b balance bdf beam beam3 beams bezier bind bodies body brake c c81 caller canonical cardano cc ceil change clamp coefficient coincidence colamd component compressible condense const constraint control copysign correction cos cosh cosine couple crank ctan ctanh current custom cyclocopter damping data default defined deformable deg2rad degrees delay density derivatives description diag differential direct disable displacement distance distance2 dof double drive driven driver drivers drop dynamic e elastic element elements equation eta euler euler123 euler313 euler321 exp exponential eye factor FALSE file filter final first floor flow fluid follower force forces forever form from ft2m function gain genel genels generic gimbal global gravity half hinge honor hope hydraulic implicit in in2m in2mm inactive include incompressible induced in_ee in_el inertia inertial inflow initial in_le inline in_ll instruments integer integrator interpolation INT_MAX INT_MIN isotropic iterations jacobian joint joints kappa keep kg2lb kg2slug kinematic klu lapack lb2kg line linear list load loadable log log10 m2ft m2in map matrix max meter method MIMO min minmax mm2in modal modified modify module moment ms mt mult naive netcdf newton nicholson no node nodes none nonlinear norm notext null observable offset omegacut order orientation orifice origin other output pad par parameter pi piecewise pin pivot plane polimi position position2 print prismatic problem properties proportional rad2deg ramp rand RAND_MAX random raphson real REAL_MAX REAL_MIN reference requests residual results revolute rigid ring rod rotation rotor round same scalar scale seed sign sin sine single sinh SISO skip slug2kg solver sometext space spherical spring sprintf sqrt sramp state static step Step steps stop strategy string structural super superlu support sync tan tanh test thermal third threads time Time timestep TimeStep tire tolerance total TRUE umfpack uncompressible uniform units user value valve Var variable variant vector velocity velocity2 viscoelastic viscous vrel vrel2 with xangle xanglerel xangvel xangvrel xdistance xposition xunitvec xvelocity xvrel yangle yanglerel yangvel yangvrel ydistance yes yposition yunitvec yvelocity yvrel zangle zanglerel zangvel zangvrel zdistance zeroes zposition zunitvec zvelocity zvrel
 
[lexer_properties]
styling.within.preprocessor=0
 
 
[settings]
    # default extension used when saving files
extension=mbd
lexer_filetype=Perl
fold.perl.at.else=0
fold.perl.comment.explicit=0
fold=0
 
    # the following characters are these which a "word" can contains, see documentation
    #wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
 
    # single comments, like # in this file
comment_single=#
    # multiline comments
comment_open=/*
comment_close==*/
 
    # set to false if a comment character/string should start at column 0 of a line, true uses any
    # indentation of the line, e.g. setting to true causes the following on pressing CTRL+d
    	#command_example();
    # setting to false would generate this
    #	command_example();
    # This setting works only for single line comments
comment_use_indent=false
 
    # context action command (please see Geany's main documentation for details)
context_action_cmd=
 
 
[indentation]
    #width=4
    # 0 is spaces, 1 is tabs, 2 is tab & spaces
    #type=1
 
 
[build-menu]
	FT_00_LB=Run
	FT_00_CM=mbdyn %f
	FT_00_WD=