Commit Graph

11 Commits

Author SHA1 Message Date
Kevin Sawicki
1db21c91cc Give first line regex the required amount of lines
Certain bundles require multi-line matches in the firstLineMatch
value so count the number of newlines in the regex and only test
the regex against only those lines.
2013-02-20 15:11:07 -08:00
Corey Johnson
e0212ba02b Only use the first line when determine the syntax via file contents 2013-02-20 12:46:53 -08:00
Kevin Sawicki
e792265076 Trigger grammars-loaded event on syntax 2013-01-28 14:34:49 -08:00
Kevin Sawicki
2b51a2ce73 Test firstLineRegex first when finding grammar
This is required for the property-list bundle to highlight
.plist files that maybe in XML or non-XML formats.

Also specify the cached buffer disk contents to grammarForFilePath
so fs.read doesn't need to be called again if the contents are
already read.
2013-01-08 16:15:38 -08:00
Kevin Sawicki
1872335adf Rename grammarByShebang to grammarByFirstLineRegex
A bundle's firstLineRegex value is used for more than
just shebang matches such as in the plist bundle.
2013-01-08 16:01:46 -08:00
Corey Johnson & Kevin Sawicki
c67fbef2b2 Store grammar overrides on project 2013-01-08 14:39:32 -08:00
Kevin Sawicki
3b47c26b4d Change an edit session's grammar on meta-l 2013-01-08 13:17:12 -08:00
Nathan Sobo
188d8f8604 Store grammars on the syntax global 2012-12-31 18:26:58 -06:00
Nathan Sobo
9c7c2ab800 Store TM bundle start/end comment strings in scoped properties
Previously, we had a custom method on the `TextMateBundle` class for
retrieving these variables from the bundle. Now we're using Atom's
`syntax.getProperty` mechanism. The idea is to map TextMate concepts
to their Atom equivalent, rather than building everything directly
around TextMate.
2012-12-28 13:27:54 -06:00
Nathan Sobo
f76bab512f Most recently added scoped properties win in case of a specificity tie
This makes the scoped property system mimic the behavior of CSS. When 
there is a tie, the scoped properties loaded later in the cascade win.
I also optimize the scanning of all the properties, checking only those
sets of properties that have a value for the desired key path, to reduce
the need to match a ton of scope selectors.
2012-12-23 13:19:20 -07:00
Nathan Sobo
886995364f Start on syntax global. Use it to replace scoped config settings.
We'll store all syntax-related global state in the `syntax` global. For
now, this means that all scoped properties will be stored here, as well
as all grammars.
2012-12-23 12:50:58 -07:00