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.)
# 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=