diff --git a/pygments/lexers/graphics.py b/pygments/lexers/graphics.py index 146bb744bb..63c7637366 100644 --- a/pygments/lexers/graphics.py +++ b/pygments/lexers/graphics.py @@ -30,7 +30,7 @@ class GLShaderLexer(RegexLexer): tokens = { 'root': [ - (r'^#(?:.*\\\n)*.*$', Comment.Preproc), + (r'#(?:.*\\\n)*.*$', Comment.Preproc), (r'//.*$', Comment.Single), (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), (r'\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?', @@ -161,7 +161,7 @@ class HLSLShaderLexer(RegexLexer): tokens = { 'root': [ - (r'^#(?:.*\\\n)*.*$', Comment.Preproc), + (r'#(?:.*\\\n)*.*$', Comment.Preproc), (r'//.*$', Comment.Single), (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), (r'\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?', diff --git a/tests/examplefiles/glsl/glsl.frag b/tests/examplefiles/glsl/glsl.frag index 6033a078cc..6f4befabbd 100644 --- a/tests/examplefiles/glsl/glsl.frag +++ b/tests/examplefiles/glsl/glsl.frag @@ -1,5 +1,11 @@ /* Fragment shader */ +// Macro inside a single-line comment: #define COMMENT_MACRO 1 + +/* Macro inside a block comment: #define COMMENT_MACRO 2 */ + + # define INDENTED_MACRO 5.0 + #define SINGLELINE_MACRO 10.0 #define MULTILINE_MACRO(a, b) vec2( \ diff --git a/tests/examplefiles/glsl/glsl.frag.output b/tests/examplefiles/glsl/glsl.frag.output index 6740e5ecff..0623b05505 100644 --- a/tests/examplefiles/glsl/glsl.frag.output +++ b/tests/examplefiles/glsl/glsl.frag.output @@ -1,6 +1,14 @@ '/* Fragment shader */' Comment.Multiline '\n\n' Text.Whitespace +'// Macro inside a single-line comment: #define COMMENT_MACRO 1' Comment.Single +'\n\n' Text.Whitespace + +'/* Macro inside a block comment: #define COMMENT_MACRO 2 */' Comment.Multiline +'\n\n ' Text.Whitespace +'# define INDENTED_MACRO 5.0' Comment.Preproc +'\n\n' Text.Whitespace + '#define SINGLELINE_MACRO 10.0' Comment.Preproc '\n\n' Text.Whitespace diff --git a/tests/examplefiles/glsl/glsl.vert b/tests/examplefiles/glsl/glsl.vert index 20d82921af..e658fd4df4 100644 --- a/tests/examplefiles/glsl/glsl.vert +++ b/tests/examplefiles/glsl/glsl.vert @@ -1,5 +1,11 @@ /* Vertex shader */ +// Macro inside a single-line comment: #define COMMENT_MACRO 1 + +/* Macro inside a block comment: #define COMMENT_MACRO 2 */ + + # define INDENTED_MACRO 5.0 + #define SINGLELINE_MACRO 10.0 #define MULTILINE_MACRO(a, b) vec2( \ diff --git a/tests/examplefiles/glsl/glsl.vert.output b/tests/examplefiles/glsl/glsl.vert.output index f8f4e0217c..7d47f6b076 100644 --- a/tests/examplefiles/glsl/glsl.vert.output +++ b/tests/examplefiles/glsl/glsl.vert.output @@ -1,6 +1,14 @@ '/* Vertex shader */' Comment.Multiline '\n\n' Text.Whitespace +'// Macro inside a single-line comment: #define COMMENT_MACRO 1' Comment.Single +'\n\n' Text.Whitespace + +'/* Macro inside a block comment: #define COMMENT_MACRO 2 */' Comment.Multiline +'\n\n ' Text.Whitespace +'# define INDENTED_MACRO 5.0' Comment.Preproc +'\n\n' Text.Whitespace + '#define SINGLELINE_MACRO 10.0' Comment.Preproc '\n\n' Text.Whitespace diff --git a/tests/examplefiles/hlsl/example.hlsl b/tests/examplefiles/hlsl/example.hlsl index a531fc6a40..0d30528953 100644 --- a/tests/examplefiles/hlsl/example.hlsl +++ b/tests/examplefiles/hlsl/example.hlsl @@ -1,5 +1,11 @@ // A few random snippets of HLSL shader code I gathered... +// Macro inside a single-line comment: #define COMMENT_MACRO 1 + +/* Macro inside a block comment: #define COMMENT_MACRO 2 */ + + # define INDENTED_MACRO 5.0 + #define SINGLELINE_MACRO 10.0 #define MULTILINE_MACRO(a, b) float2( \ diff --git a/tests/examplefiles/hlsl/example.hlsl.output b/tests/examplefiles/hlsl/example.hlsl.output index f49f68518d..0c921465bf 100644 --- a/tests/examplefiles/hlsl/example.hlsl.output +++ b/tests/examplefiles/hlsl/example.hlsl.output @@ -1,6 +1,14 @@ '// A few random snippets of HLSL shader code I gathered...' Comment.Single '\n\n' Text.Whitespace +'// Macro inside a single-line comment: #define COMMENT_MACRO 1' Comment.Single +'\n\n' Text.Whitespace + +'/* Macro inside a block comment: #define COMMENT_MACRO 2 */' Comment.Multiline +'\n\n\t' Text.Whitespace +'# define INDENTED_MACRO 5.0' Comment.Preproc +'\n\n' Text.Whitespace + '#define SINGLELINE_MACRO 10.0' Comment.Preproc '\n\n' Text.Whitespace