[TxMt] Language definition problem

Gerd Knops gerti-textmate at bitart.com
Tue Nov 26 15:36:30 UTC 2013


Hi,

I am experimenting with embedding properties in Objective-C implementations that will be parsed out and placed into a header file, and that also include documentation. They are supposed to look like this:

	/*@property BOOL testProperty;
	Sample Property
	
	# Discussion
	This is documentation in Markdown syntax
	*/

My custom Objective-C language definition includes this pattern:

	{	name = 'meta.property.objc.embedded';
		begin = '^(/\*)(?=\@property)';
		end = '\*/';
		beginCaptures = { 0 = { name = 'meta.comment.embedded-property.start'; }; };
		endCaptures = { 0 = { name = 'meta.comment.embedded-property.end'; }; };
		contentName = 'meta.scope.property.objc.embedded';
		patterns = (
			{	name = 'meta.scope.property.def.objc.embedded';
				begin = '(?=\@property)';
				end = ';\s*\n?';
				patterns = ( { include = 'source.objc#interface_innards'; } );
			},
			{	name = 'meta.scope.property.doc.objc.embedded';
				begin = '^';
				end = '$\n';
				// patterns = ( { include = 'text.html.markdown'; } );
			},
		);
	},

That works fine, the /* and */ have the proper start/end scope, the documentation part has the doc scope etc. But as soon as I enabled the uncommented line that is supposed to highlight the embedded documentation with markdown, markdown gobbles up the end markers.

Shouldn't the outer pattern prevent this? And if not, how can I make this work?

Thanks

Gerd



More information about the textmate mailing list