Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Add C style cast support #234

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ It fixes:

It adds:
- Parameter highlighting
- Highlighting of embedded assembly code
- Lambda highlighting
- C++14 literal support (`100'000ms`)
- Template definition syntax highlighting (including C++ 2020 syntax)
Expand Down
11 changes: 11 additions & 0 deletions language_tags/c.txt
Original file line number Diff line number Diff line change
Expand Up @@ -320,12 +320,15 @@ keyword.other.unit.hexadecimal.c
keyword.other.unit.octal.c
keyword.other.unit.suffix.floating-point.c
keyword.other.unit.suffix.integer.c
meta.asm.c
meta.block.c
meta.block.switch.c
meta.body.switch.c
meta.bracket.square.access.c
meta.conditional.case.c
meta.conditional.switch.c
meta.embedded.assembly.c
meta.encoding.c
meta.function-call.c
meta.function-call.member.c
meta.function.c
Expand All @@ -352,7 +355,9 @@ punctuation.definition.directive.c
punctuation.definition.end.bracket.square.c
punctuation.definition.parameters.begin.c
punctuation.definition.parameters.end.c
punctuation.definition.string.begin.assembly.c
punctuation.definition.string.begin.c
punctuation.definition.string.end.assembly.c
punctuation.definition.string.end.c
punctuation.range-based.c
punctuation.section.arguments.begin.bracket.round.c
Expand All @@ -365,16 +370,21 @@ punctuation.section.block.end.bracket.curly.c
punctuation.section.block.end.bracket.curly.switch.c
punctuation.section.parameters.begin.bracket.round.c
punctuation.section.parameters.end.bracket.round.c
punctuation.section.parens.begin.bracket.round.assembly.c
punctuation.section.parens.begin.bracket.round.assembly.inner.c
punctuation.section.parens.begin.bracket.round.c
punctuation.section.parens.begin.bracket.round.conditional.switch.c
punctuation.section.parens.begin.bracket.round.initialization.c
punctuation.section.parens.end.bracket.round.assembly.c
punctuation.section.parens.end.bracket.round.assembly.inner.c
punctuation.section.parens.end.bracket.round.c
punctuation.section.parens.end.bracket.round.conditional.switch.c
punctuation.section.parens.end.bracket.round.initialization.c
punctuation.separator.case.c
punctuation.separator.case.default.c
punctuation.separator.constant.numeric
punctuation.separator.delimiter.c
punctuation.separator.delimiter.colon.assembly.c
punctuation.separator.dot-access.c
punctuation.separator.parameters.c
punctuation.separator.pointer-access.c
Expand All @@ -384,6 +394,7 @@ punctuation.whitespace.comment.leading.c
storage.modifier.array.bracket.square.c
storage.modifier.c
storage.type.$1.c
storage.type.asm.c
storage.type.built-in.c
storage.type.built-in.primitive.c
string.quoted.double.c
Expand Down
39 changes: 31 additions & 8 deletions language_tags/cpp.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
alias.cpp
colon.cpp
comma.cpp
comment.block.cpp
Expand Down Expand Up @@ -34,6 +33,7 @@ entity.name.function.special.destructor.cpp
entity.name.namespace.alias.cpp
entity.name.namespace.cpp
entity.name.operator.overloadee.cpp
entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp
entity.name.other.preprocessor.macro.predefined.NDEBUG.cpp
entity.name.other.preprocessor.macro.predefined._ATL_VER.cpp
entity.name.other.preprocessor.macro.predefined._CHAR_UNSIGNED.cpp
Expand Down Expand Up @@ -292,17 +292,24 @@ entity.name.scope-resolution.function.definition.operator-overload.cpp
entity.name.scope-resolution.namespace.alias.cpp
entity.name.scope-resolution.namespace.block.cpp
entity.name.scope-resolution.namespace.using.cpp
entity.name.scope-resolution.parameter.cpp
entity.name.scope-resolution.template.call.cpp
entity.name.scope-resolution.template.definition.cpp
entity.name.tag.pragma-mark.cpp
entity.name.type.$3.cpp
entity.name.type.alias.cpp
entity.name.type.class.cpp
entity.name.type.class.parameter.cpp
entity.name.type.cpp
entity.name.type.enum.cpp
entity.name.type.enum.parameter.cpp
entity.name.type.inherited.cpp
entity.name.type.parameter.cpp
entity.name.type.struct.cpp
entity.name.type.struct.parameter.cpp
entity.name.type.template.cpp
entity.name.type.union.cpp
entity.name.type.union.parameter.cpp
entity.other.attribute-name.pragma.preprocessor.cpp
entity.other.attribute.$0.cpp
invalid.illegal.constant.numeric.cpp
Expand All @@ -329,6 +336,7 @@ keyword.operator.alignof.cpp
keyword.operator.assignment.compound.bitwise.cpp
keyword.operator.assignment.compound.cpp
keyword.operator.assignment.cpp
keyword.operator.assignment.default.cpp
keyword.operator.bitwise.shift.cpp
keyword.operator.cast.$0.cpp
keyword.operator.comparison.cpp
Expand Down Expand Up @@ -367,12 +375,12 @@ keyword.other.unit.suffix.floating-point.cpp
keyword.other.unit.suffix.integer.cpp
keyword.other.unit.user-defined.cpp
keyword.other.using.directive.cpp
memory.cpp
meta.arguments.decltype.cpp
meta.arguments.operator.alignas.cpp
meta.arguments.operator.alignof.cpp
meta.arguments.operator.sizeof.cpp
meta.arguments.operator.typeid.cpp
meta.asm.cpp
meta.block.class.cpp
meta.block.cpp
meta.block.enum.cpp
Expand All @@ -396,6 +404,7 @@ meta.declaration.namespace.alias.cpp
meta.declaration.namespace.alias.value.cpp
meta.declaration.type.alias.cpp
meta.declaration.type.alias.value.unknown.cpp
meta.embedded.assembly.cpp
meta.encoding.cpp
meta.enum.definition.cpp
meta.function.constructor.cpp
Expand All @@ -415,9 +424,8 @@ meta.head.namespace.cpp
meta.head.struct.cpp
meta.head.switch.cpp
meta.head.union.cpp
meta.initialization.cpp
meta.lambda.capture.cpp
meta.parens.block.cpp
meta.parameter.cpp
meta.parens.cpp
meta.preprocessor.cpp
meta.preprocessor.diagnostic.cpp
Expand All @@ -439,6 +447,7 @@ meta.template.call.cpp
meta.template.definition.cpp
meta.toc-list.banner.block.cpp
meta.toc-list.banner.line.cpp
meta.type.cast.cpp
meta.using-namespace.cpp
punctuation.accessor.attribute.cpp
punctuation.definition.begin.bracket.square.cpp
Expand All @@ -460,7 +469,9 @@ punctuation.definition.parameters.end.constructor.cpp
punctuation.definition.parameters.end.cpp
punctuation.definition.parameters.end.destructor.cpp
punctuation.definition.parameters.end.lambda.cpp
punctuation.definition.string.begin.assembly.cpp
punctuation.definition.string.begin.cpp
punctuation.definition.string.end.assembly.cpp
punctuation.definition.string.end.cpp
punctuation.section.angle-brackets.begin.template.call.cpp
punctuation.section.angle-brackets.end.template.call.cpp
Expand Down Expand Up @@ -510,18 +521,22 @@ punctuation.section.parameters.begin.bracket.round.operator-overload.cpp
punctuation.section.parameters.end.bracket.round.cpp
punctuation.section.parameters.end.bracket.round.function.pointer.cpp
punctuation.section.parameters.end.bracket.round.operator-overload.cpp
punctuation.section.parens.begin.bracket.round.assembly.cpp
punctuation.section.parens.begin.bracket.round.assembly.inner.cpp
punctuation.section.parens.begin.bracket.round.conditional.switch.cpp
punctuation.section.parens.begin.bracket.round.cpp
punctuation.section.parens.begin.bracket.round.function.pointer.cpp
punctuation.section.parens.begin.bracket.round.initialization.cpp
punctuation.section.parens.end.bracket.round.assembly.cpp
punctuation.section.parens.end.bracket.round.assembly.inner.cpp
punctuation.section.parens.end.bracket.round.conditional.switch.cpp
punctuation.section.parens.end.bracket.round.cpp
punctuation.section.parens.end.bracket.round.function.pointer.cpp
punctuation.section.parens.end.bracket.round.initialization.cpp
punctuation.separator.attribute.cpp
punctuation.separator.case.cpp
punctuation.separator.case.default.cpp
punctuation.separator.constant.numeric.cpp
punctuation.separator.delimiter.colon.access.control.cpp
punctuation.separator.delimiter.colon.assembly.cpp
punctuation.separator.delimiter.cpp
punctuation.separator.delimiter.inheritance.cpp
punctuation.separator.dot-access.cpp
Expand All @@ -537,6 +552,7 @@ punctuation.separator.scope-resolution.function.definition.operator-overload.cpp
punctuation.separator.scope-resolution.namespace.alias.cpp
punctuation.separator.scope-resolution.namespace.block.cpp
punctuation.separator.scope-resolution.namespace.using.cpp
punctuation.separator.scope-resolution.parameter.cpp
punctuation.separator.scope-resolution.template.call.cpp
punctuation.separator.scope-resolution.template.definition.cpp
punctuation.separator.template.argument.cpp
Expand All @@ -552,17 +568,22 @@ storage.modifier.inline.cpp
storage.modifier.lambda.$0.cpp
storage.modifier.pointer.cpp
storage.modifier.reference.cpp
storage.modifier.specifier.$0.cpp
storage.modifier.specifier.$5.cpp
storage.modifier.specifier.functional.post-parameters.$0.cpp
storage.modifier.specifier.functional.pre-parameters.$0.cpp
storage.type.$0.cpp
storage.type.$3.cpp
storage.type.asm.cpp
storage.type.built-in.cpp
storage.type.built-in.primitive.cpp
storage.type.class.declare.cpp
storage.type.class.parameter.cpp
storage.type.cpp
storage.type.decltype.cpp
storage.type.enum.cpp
storage.type.enum.declare.cpp
storage.type.enum.enum-key.$3.cpp
storage.type.enum.parameter.cpp
storage.type.extern.cpp
storage.type.integral.$12.cpp
storage.type.modifier.access.$0.cpp
Expand All @@ -579,6 +600,8 @@ storage.type.struct.parameter.cpp
storage.type.template.argument.$0.cpp
storage.type.template.argument.$1.cpp
storage.type.template.cpp
storage.type.union.declare.cpp
storage.type.union.parameter.cpp
storage.type.user-defined.cpp
string.quoted.double.cpp
string.quoted.double.include.cpp
Expand All @@ -592,7 +615,6 @@ support.type.built-in.posix-reserved.pthread.cpp
support.type.posix-reserved.cpp
support.type.posix-reserved.pthread.cpp
variable.language.this.cpp
variable.other.cpp
variable.other.definition.pointer.function.cpp
variable.other.enummember.cpp
variable.other.macro.argument.cpp
Expand All @@ -601,6 +623,7 @@ variable.other.object.cpp
variable.other.object.declare.cpp
variable.other.object.property.cpp
variable.other.property.cpp
variable.parameter.capture.cpp
variable.parameter.cpp
variable.parameter.defaulted.cpp
variable.parameter.pointer.function.cpp
Expand Down
16 changes: 12 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,20 @@
"displayName": "Better Syntax",
"description": "The bleeding edge of C-like syntaxes",
"icon": "icon.png",
"version": "1.11.5",
"version": "1.11.7",
"scripts": {
"build": "ruby scripts/generate.rb",
"prelint": "npm run build",
"lint": "ruby scripts/lint.rb",
"pretest": "npm run build",
"test": "node test/source/commands/test.js",
"gen": "npm run generate-specs -- --generate-all",
"genall": "npm run generate-specs -- --generate-all",
"preversion": "npm test",
"version": "npm run build && git add -A syntaxes",
"pregenerate-specs": "npm run build",
"generate-specs": "node test/source/commands/generate-specs.js",
"gen": "npm run generate-specs -- ",
"try": "npm run test -- --show-failure-only",
"sort-specs": "node test/source/commands/sort-specs.js",
"prereport": "npm run build",
"report": "node test/source/commands/report",
Expand Down Expand Up @@ -47,12 +49,18 @@
{
"language": "cpp",
"scopeName": "source.cpp",
"path": "./syntaxes/cpp.tmLanguage.json"
"path": "./syntaxes/cpp.tmLanguage.json",
"embeddedLanguages": {
"meta.embedded.assembly.cpp": "asm"
}
},
{
"language": "c",
"scopeName": "source.c",
"path": "./syntaxes/c.tmLanguage.json"
"path": "./syntaxes/c.tmLanguage.json",
"embeddedLanguages": {
"meta.embedded.assembly.c": "asm"
}
},
{
"language": "objective-cpp",
Expand Down
9 changes: 6 additions & 3 deletions source/languages/c/generate.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
require_relative source_dir + 'repo_specific_helpers.rb'
require_relative source_dir + 'shared_patterns/numeric.rb'
require_relative source_dir + 'shared_patterns/predefined_macros.rb'
require_relative source_dir + 'shared_patterns/assembly.rb'
require_relative './tokens.rb'


Expand Down Expand Up @@ -30,6 +31,7 @@
:switch_statement,
:switch_conditional_parentheses,
:static_assert,
:backslash_escapes
]
for each in import_names
c_grammar[each] = @cpp_grammar[each]
Expand All @@ -38,11 +40,11 @@
#
# Contexts
#
c_grammar[:conditional_context] = [
c_grammar[:c_conditional_context] = [
:$initial_context,
:block_innards
]
evalutation_context = [
c_grammar[:evalutation_context] = evalutation_context = [
"#function-call-innards",
"$base"
]
Expand Down Expand Up @@ -929,9 +931,10 @@
name: "storage.type.built-in.c",
},
{
match: /\b(asm|__asm__|enum|struct|union)\b/,
match: /\b(enum|struct|union)\b/,
name: "storage.type.$1.c"
},
assembly_pattern().to_tag,
]
},
"vararg_ellipses" => {
Expand Down
Loading