Add debugger.scm for C and C++ to enable inline values (#46705)

Closes #46522

  Release Notes:

- Added inline values support for C and C++ when debugging with CodeLLDB
or GDB

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>
This commit is contained in:
Nguyen Anh Tu (Elior)andKirill Bulatov authored and GitHub committed 2026-08-19 18:45:57 +00:00
1 parent 1861e58f98
commit 8bbbeb3d15
2 files changed
+211

No files matched your search

+93
View File
@@ -0,0 +1,93 @@
; Parameter declarations
(parameter_declaration
declarator: (identifier) @debug-variable)
(parameter_declaration
declarator: (pointer_declarator
declarator: (identifier) @debug-variable))
; Variable declarations
(declaration
declarator: (init_declarator
declarator: (identifier) @debug-variable))
(declaration
declarator: (init_declarator
declarator: (pointer_declarator
declarator: (identifier) @debug-variable)))
; For loop initializers
(for_statement
initializer: (declaration
declarator: (init_declarator
declarator: (identifier) @debug-variable)))
; Binary expressions
(binary_expression
left: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
(binary_expression
right: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Unary expressions
(unary_expression
argument: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
(update_expression
argument: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Assignment expressions
(assignment_expression
left: (identifier) @debug-variable)
; Return statements
(return_statement
(identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Parenthesized expressions
(parenthesized_expression
(identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Field expressions (struct member access)
(field_expression
argument: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Subscript expressions (array access)
(subscript_expression
argument: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
(subscript_expression
(identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Function call arguments
(call_expression
arguments: (argument_list
(identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$")))
; Conditional expressions
(conditional_expression
condition: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
(conditional_expression
consequence: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
(conditional_expression
alternative: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Scopes
(compound_statement) @debug-scope
(function_definition) @debug-scope
+118
View File
@@ -0,0 +1,118 @@
; Parameter declarations
(parameter_declaration
declarator: (identifier) @debug-variable)
(parameter_declaration
declarator: (pointer_declarator
declarator: (identifier) @debug-variable))
(parameter_declaration
declarator: (reference_declarator
(identifier) @debug-variable))
; Variable declarations
(declaration
declarator: (init_declarator
declarator: (identifier) @debug-variable))
(declaration
declarator: (init_declarator
declarator: (pointer_declarator
declarator: (identifier) @debug-variable)))
(declaration
declarator: (init_declarator
declarator: (reference_declarator
(identifier) @debug-variable)))
; For loop initializers
(for_statement
initializer: (declaration
declarator: (init_declarator
declarator: (identifier) @debug-variable)))
; Range-based for loop
(for_range_loop
declarator: (identifier) @debug-variable)
(for_range_loop
declarator: (reference_declarator
(identifier) @debug-variable))
; Binary expressions
(binary_expression
left: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
(binary_expression
right: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Unary expressions
(unary_expression
argument: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
(update_expression
argument: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Assignment expressions
(assignment_expression
left: (identifier) @debug-variable)
; Return statements
(return_statement
(identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Parenthesized expressions
(parenthesized_expression
(identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Field expressions (member access)
(field_expression
argument: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; Subscript expressions (array access)
(subscript_expression
argument: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
(subscript_expression
(subscript_argument_list
(identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$")))
; Function call arguments
(call_expression
arguments: (argument_list
(identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$")))
; Conditional expressions
(conditional_expression
condition: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
(conditional_expression
consequence: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
(conditional_expression
alternative: (identifier) @debug-variable
(#not-match? @debug-variable "^[A-Z_][A-Z_0-9]*$"))
; C++ specific: this pointer
(this) @debug-variable
; Lambda captures
(lambda_capture_specifier
(identifier) @debug-variable)
; Scopes
(compound_statement) @debug-scope
(function_definition) @debug-scope