Create a new indenter object based on regexp. The idea is to have a .indent file for every language like .lang files. We could integrate the indentation directly in the .lang file but, by the momment we will test it in separate files.
Brainstorm:
C definition
The regexp in the xml are examples, it has not been tested
<indentation> <!-- Comments, insert the previous line indent + 2 spaces and append the * and an space--> <indenter match = ".*/\*(^\*/)*" indent = "current_ind" append = " * " /> <indenter match = "#.*" indent = "current_ind" /> <!-- Start a block ---> <indenter match = ".*\{[^\}]*" indent = "current_ind + 1" /> <!-- When colse a parenthesis --> <indenter match = "*.\)\s*"> <!-- Search the line the the open ( and set that indent + 1 indent--> <get_pair_line pair = "(" indent = "pair_line_ind + 1" /> </indenter> <!-- The line doesn't end with a ; <indenter match=".*[^;]"> <indenter match=".*\([^\)]*"> <!-- If theis a ( in the line, set the indentation under the ( + 1 space --> <get_pair_line pair="(" indent="pair_pos" append=" " /> <!-- If the previous indenter cannot find, then we set the indent + 1 --> <indenter indent="current_ind + 1" /> </indenter> </indenter> </indentation>
XML definition
The regexp in the xml are examples, it has not been tested
<indentation> <indenter match = ".*<!--(^-->)*" indent = "current_ind + 1" /> <indenter match = ".*<[^>]*" indent = "current_ind + 1" /> <indenter match = ".*>[^<]*"> <get_pair_line pair = "<" indent = "pair_line_ind + 1" /> </indenter> </indentation>