How would people feel about this diff in the C syntax bundle? It will work on functions of the form:
int main () {
but not on
int main()
What would be the appropriate regexp for making it work in both cases? What I'm trying to do is get the functions to show up in the Symbols menu.
The other thing that's broken with C is that #defines which are not functions are incorrectly marked as functions. For instance:
#define FOOBAR 10
adds FOOBAR to the symbols menu. I think that's because the regexp that handles #defines tries to handle the case where the #define is really a macro
#define MIN(a,b) ((a)<(b)?(a):(b))
but applies the name even if the syntax doesn't match... I'll take a look at this later this week if no one has a workaround...
@@ -140,6 +140,20 @@ </array> </dict> <dict> + <key>captures</key> + <dict> + <key>1</key> + <dict> + <key>name</key> + <string>entity.name.function.c</string> + </dict> + </dict> + <key>match</key> + <string>^([a-zA-Z_][a-zA-Z0-9_]*)\s*(</string> + <key>name</key> + <string>source.c.function</string> + </dict> + <dict> <key>begin</key> <string>^\s*#\s*(define)\s+([a-zA-Z_][a-zA- Z0-9_]*)(?:( ((?:\s*[a-zA-Z_][a-zA-Z0-9_]*\s*,?)*))|\b)</string> <key>captures</key>
-- pgp fingerprint: BC64 2E7A CAEF 39E1 9544 80CA F7D5 784D FB46 16C1