[TxMt] inconsistent python folding

Allan Odgaard throw-away-1 at macromates.com
Tue Oct 18 13:38:34 UTC 2005


On 18/10/2005, at 15.31, Chris Fonnesbeck wrote:

> Is there any way to turn off folding until this is fixed? Right now my
> code looks like a dog's breakfast, with folding in arbitrary places.

View -> Language -> Edit Languages…

In the Python bundle, you'll find the Python language grammar which has:

     foldingStartMarker = '^\s*(def|class)\s+([.a-zA-Z0-9_ b]+)\s*(\ 
((.*)\))?\s*:|\{\s*$|\(\s*$|\[\s*$';
     foldingStopMarker = '^\s*$|^\s*\}|^\s*\]|^\s*\)';

You can remove the patterns, or maybe set them to something you want  
to fold on (e.g. {{{ and }}}).

Notice however that if you edit the Python language, it places your  
customized version in ~/Library/Application Support/TextMate/Bundles,  
and this one overshadows the default version. So if the default is  
updated, yoy won't see these changes (as long as you have a local  
version).

To avoid this, you can create a new language that includes the  
default one, and set the folding markers for your new language, e.g.  
(after creating a new language, paste this in the text box):

{   scopeName = 'source.python.custom';
     firstLineMatch = '^#!/.*\bpython\b';
     fileTypes = ( 'py', 'rpy', 'cpy' );
     foldingStartMarker = '\{\{\{';
     foldingStopMarker = '\}\}\}';
     patterns = (
         { include = 'source.python'; }
     );
}

You may need to manually select your new language to be used for  
Python files, but after that, it'll stick.




More information about the textmate mailing list