{"action":"created","issue":{"url":"https://api.github.com/repos/jeff-hykin/cpp-textmate-grammar/issues/339","repository_url":"https://api.github.com/repos/jeff-hykin/cpp-textmate-grammar","labels_url":"https://api.github.com/repos/jeff-hykin/cpp-textmate-grammar/issues/339/labels{/name}","comments_url":"https://api.github.com/repos/jeff-hykin/cpp-textmate-grammar/issues/339/comments","events_url":"https://api.github.com/repos/jeff-hykin/cpp-textmate-grammar/issues/339/events","html_url":"https://github.com/jeff-hykin/cpp-textmate-grammar/issues/339","id":476488637,"node_id":"MDU6SXNzdWU0NzY0ODg2Mzc=","number":339,"title":"Rewrite of internal regex generation.","user":{"login":"matter123","id":714007,"node_id":"MDQ6VXNlcjcxNDAwNw==","avatar_url":"https://avatars3.githubusercontent.com/u/714007?v=4","gravatar_id":"","url":"https://api.github.com/users/matter123","html_url":"https://github.com/matter123","followers_url":"https://api.github.com/users/matter123/followers","following_url":"https://api.github.com/users/matter123/following{/other_user}","gists_url":"https://api.github.com/users/matter123/gists{/gist_id}","starred_url":"https://api.github.com/users/matter123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matter123/subscriptions","organizations_url":"https://api.github.com/users/matter123/orgs","repos_url":"https://api.github.com/users/matter123/repos","events_url":"https://api.github.com/users/matter123/events{/privacy}","received_events_url":"https://api.github.com/users/matter123/received_events","type":"User","site_admin":false},"labels":[{"id":1313678268,"node_id":"MDU6TGFiZWwxMzEzNjc4MjY4","url":"https://api.github.com/repos/jeff-hykin/cpp-textmate-grammar/labels/Contributor","name":"Contributor","color":"bfdadc","default":false},{"id":1315479419,"node_id":"MDU6TGFiZWwxMzE1NDc5NDE5","url":"https://api.github.com/repos/jeff-hykin/cpp-textmate-grammar/labels/Major","name":"Major","color":"f4909a","default":false},{"id":1218637777,"node_id":"MDU6TGFiZWwxMjE4NjM3Nzc3","url":"https://api.github.com/repos/jeff-hykin/cpp-textmate-grammar/labels/%F0%9F%90%9B%20Bug","name":"🐛 Bug","color":"ccfc8d","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":14,"created_at":"2019-08-03T20:54:22Z","updated_at":"2019-08-09T00:01:24Z","closed_at":null,"author_association":"COLLABORATOR","body":"The following example generates the tag `meta.specifier.linkage.$14.cpp`, however, there are only 13 capture groups\r\n\r\n```ruby\r\ncpp_grammar[:extern_linkage_specifier] = extern_linkage_specifier = newPattern(\r\n    match: std_space.then(\r\n        match: /extern/,\r\n        tag_as: \"storage.type.extern\"\r\n    ).then(std_space).maybe(\r\n        # This doesn't match the spec as the spec says any string literal is\r\n        # allowed in a linkage specification. However, the spec also says that\r\n        # linkage specification strings should match the name that is being linked.\r\n        # It is unlikely that a language would have a double quote or newline\r\n        # in its name.\r\n        match: newPattern(\r\n            match: /\\\"/,\r\n            tag_as: \"punctuation.definition.string.begin\"\r\n        ).then(\r\n            match: zeroOrMoreOf(/[^\\\"]/),\r\n            reference: \"linkage\"\r\n        ).then(\r\n            match: /\\\"/,\r\n            tag_as: \"punctuation.definition.string.end\"\r\n        ),\r\n        tag_as: \"string.quoted.double.extern\"\r\n    ),\r\n    tag_as: \"meta.specifier.linkage.$reference(linkage)\"\r\n)\r\n```\r\n\r\nAccording to regex 101 the correct group should have been group 12 https://regex101.com/r/doQVjJ/1"},"comment":{"url":"https://api.github.com/repos/jeff-hykin/cpp-textmate-grammar/issues/comments/519728990","html_url":"https://github.com/jeff-hykin/cpp-textmate-grammar/issues/339#issuecomment-519728990","issue_url":"https://api.github.com/repos/jeff-hykin/cpp-textmate-grammar/issues/339","id":519728990,"node_id":"MDEyOklzc3VlQ29tbWVudDUxOTcyODk5MA==","user":{"login":"jeff-hykin","id":17692058,"node_id":"MDQ6VXNlcjE3NjkyMDU4","avatar_url":"https://avatars3.githubusercontent.com/u/17692058?v=4","gravatar_id":"","url":"https://api.github.com/users/jeff-hykin","html_url":"https://github.com/jeff-hykin","followers_url":"https://api.github.com/users/jeff-hykin/followers","following_url":"https://api.github.com/users/jeff-hykin/following{/other_user}","gists_url":"https://api.github.com/users/jeff-hykin/gists{/gist_id}","starred_url":"https://api.github.com/users/jeff-hykin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeff-hykin/subscriptions","organizations_url":"https://api.github.com/users/jeff-hykin/orgs","repos_url":"https://api.github.com/users/jeff-hykin/repos","events_url":"https://api.github.com/users/jeff-hykin/events{/privacy}","received_events_url":"https://api.github.com/users/jeff-hykin/received_events","type":"User","site_admin":false},"created_at":"2019-08-09T00:01:24Z","updated_at":"2019-08-09T00:01:24Z","author_association":"OWNER","body":"Wow you did a ton of work on `Tool/misc/pattern`! Lets just develop the full solution on that branch.\r\n\r\nWhat I can do is change all of the `newPattern`'s into `Pattern.new` on a separate brach adn merge it into master. Then the `Tool/misc/pattern` can be tested until it performs the same as the old method. At that point it can seamlessly replace the old method."}}
{"actor":{"display_login":"jeff-hykin"}}