From 05d0f86c933b5b4631defacff5106839e1d0e4c5 Mon Sep 17 00:00:00 2001 From: moculus Date: Thu, 2 Oct 2008 20:06:10 +0000 Subject: [PATCH] c-mode rox --HG-- branch : pmacs2 --- mode/c.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/mode/c.py b/mode/c.py index 485347d..3727ba0 100644 --- a/mode/c.py +++ b/mode/c.py @@ -74,14 +74,16 @@ class CGrammar(Grammar): ] class CTabber2(tab.StackTabber2): - open_tokens = {'delimiter': {'{': '}', '(': ')', '[': ']'}} - close_tokens = {'delimiter': {'}': '{', ')': '(', ']': '['}} - control_tokens = {'keyword': {'if': 1, 'else': 1, 'while': 1, 'do': 1, 'for': 1}} - end_at_eof = False - end_at_tokens = {'delimiter': {';': 1}} - nocontinue_tokens = {'delimiter': {';': 1}} - start_free_tokens = {'string.start': 'string.end'} - end_free_tokens = {'string.end': 'string.start'} + open_tokens = {'delimiter': {'{': '}', '(': ')', '[': ']'}} + close_tokens = {'delimiter': {'}': '{', ')': '(', ']': '['}} + control_tokens = {'keyword': {'if': 1, 'else': 1, 'while': 1, 'do': 1, 'for': 1}} + end_at_eof = False + end_at_tokens = {'delimiter': {';': 1}} + nocontinue_tokens = {'delimiter': {';': 1}} + start_free_tokens = {'string.start': 'string.end'} + end_free_tokens = {'string.end': 'string.start'} + start_macro_tokens = {'macro.start': 'macro.end'} + end_macro_tokens = {'macro.end': 'macro.start'} def is_base(self, y): if y == 0: return True @@ -89,8 +91,8 @@ class CTabber2(tab.StackTabber2): # this assumes that people aren't gonna use these macros inside of # blocks, which is probably ok. - t0 = tokens[0] - if t0.fqname() == 'macro.start' and t0.string in ('#define', '#include'): + t = tokens[0] + if t.fqname() == 'macro.start' and t.string in ('#define', '#include'): return True # detecting function declarations is annoying; this assumes that people @@ -110,7 +112,6 @@ class CTabber2(tab.StackTabber2): decl = False break return decl - def _is_indent(self, t): return t.name == 'spaces' def _is_ignored(self, t):