Require whitespace before italic and bold matches

This commit is contained in:
Kevin Sawicki
2013-02-10 15:39:06 -08:00
parent 12b185af79
commit 1196312878
2 changed files with 40 additions and 20 deletions

View File

@@ -9,20 +9,24 @@
]
'patterns': [
{
'match': '\\*\\*[^\\*]+\\*\\*'
'name': 'markup.bold.gfm'
'match': '(?:^|\\s)(\\*\\*[^\\*]+\\*\\*)'
'captures':
'1': 'name': 'markup.bold.gfm'
}
{
'match': '__[^_]+__'
'name': 'markup.bold.gfm'
'match': '(?:^|\\s)(__[^_]+__)'
'captures':
'1': 'name': 'markup.bold.gfm'
}
{
'match': '\\*[^\\*]+\\*'
'name': 'markup.italic.gfm'
'match': '(?:^|\\s)(\\*[^\\*]+\\*)'
'captures':
'1': 'name': 'markup.italic.gfm'
}
{
'match': '_[^_]+_'
'name': 'markup.italic.gfm'
'match': '(?:^|\\s)(_[^_]+_)'
'captures':
'1': 'name': 'markup.italic.gfm'
}
{
'match': '^#{1,6}\\s+.+$'

View File

@@ -18,36 +18,52 @@ describe "GitHub Flavored Markdown grammar", ->
expect(tokens[0]).toEqual value: "****", scopes: ["source.gfm"]
{tokens} = grammar.tokenizeLine("this is **bold** text")
expect(tokens[0]).toEqual value: "this is ", scopes: ["source.gfm"]
expect(tokens[1]).toEqual value: "**bold**", scopes: ["source.gfm", "markup.bold.gfm"]
expect(tokens[2]).toEqual value: " text", scopes: ["source.gfm"]
expect(tokens[0]).toEqual value: "this is", scopes: ["source.gfm"]
expect(tokens[1]).toEqual value: " ", scopes: ["source.gfm"]
expect(tokens[2]).toEqual value: "**bold**", scopes: ["source.gfm", "markup.bold.gfm"]
expect(tokens[3]).toEqual value: " text", scopes: ["source.gfm"]
{tokens} = grammar.tokenizeLine("not**bold**")
expect(tokens[0]).toEqual value: "not**bold**", scopes: ["source.gfm"]
it "tokenizes __bold__ text", ->
{tokens} = grammar.tokenizeLine("____")
expect(tokens[0]).toEqual value: "____", scopes: ["source.gfm"]
{tokens} = grammar.tokenizeLine("this is __bold__ text")
expect(tokens[0]).toEqual value: "this is ", scopes: ["source.gfm"]
expect(tokens[1]).toEqual value: "__bold__", scopes: ["source.gfm", "markup.bold.gfm"]
expect(tokens[2]).toEqual value: " text", scopes: ["source.gfm"]
expect(tokens[0]).toEqual value: "this is", scopes: ["source.gfm"]
expect(tokens[1]).toEqual value: " ", scopes: ["source.gfm"]
expect(tokens[2]).toEqual value: "__bold__", scopes: ["source.gfm", "markup.bold.gfm"]
expect(tokens[3]).toEqual value: " text", scopes: ["source.gfm"]
{tokens} = grammar.tokenizeLine("not__bold__")
expect(tokens[0]).toEqual value: "not__bold__", scopes: ["source.gfm"]
it "tokenizes *italic* text", ->
{tokens} = grammar.tokenizeLine("**")
expect(tokens[0]).toEqual value: "**", scopes: ["source.gfm"]
{tokens} = grammar.tokenizeLine("this is *italic* text")
expect(tokens[0]).toEqual value: "this is ", scopes: ["source.gfm"]
expect(tokens[1]).toEqual value: "*italic*", scopes: ["source.gfm", "markup.italic.gfm"]
expect(tokens[2]).toEqual value: " text", scopes: ["source.gfm"]
expect(tokens[0]).toEqual value: "this is", scopes: ["source.gfm"]
expect(tokens[1]).toEqual value: " ", scopes: ["source.gfm"]
expect(tokens[2]).toEqual value: "*italic*", scopes: ["source.gfm", "markup.italic.gfm"]
expect(tokens[3]).toEqual value: " text", scopes: ["source.gfm"]
{tokens} = grammar.tokenizeLine("not*italic*")
expect(tokens[0]).toEqual value: "not*italic*", scopes: ["source.gfm"]
it "tokenizes _italic_ text", ->
{tokens} = grammar.tokenizeLine("__")
expect(tokens[0]).toEqual value: "__", scopes: ["source.gfm"]
{tokens} = grammar.tokenizeLine("this is _italic_ text")
expect(tokens[0]).toEqual value: "this is ", scopes: ["source.gfm"]
expect(tokens[1]).toEqual value: "_italic_", scopes: ["source.gfm", "markup.italic.gfm"]
expect(tokens[2]).toEqual value: " text", scopes: ["source.gfm"]
expect(tokens[0]).toEqual value: "this is", scopes: ["source.gfm"]
expect(tokens[1]).toEqual value: " ", scopes: ["source.gfm"]
expect(tokens[2]).toEqual value: "_italic_", scopes: ["source.gfm", "markup.italic.gfm"]
expect(tokens[3]).toEqual value: " text", scopes: ["source.gfm"]
{tokens} = grammar.tokenizeLine("not_italic_")
expect(tokens[0]).toEqual value: "not_italic_", scopes: ["source.gfm"]
it "tokenizes a ## Heading", ->
{tokens} = grammar.tokenizeLine("# Heading 1")