scope_engine/language/
python.rs1use super::{LanguageAdapter, LanguageQueries};
2use tree_sitter::Language;
3
4pub struct PythonAdapter;
5
6impl PythonAdapter {
7 pub fn new() -> Self {
8 Self
9 }
10}
11
12impl Default for PythonAdapter {
13 fn default() -> Self {
14 Self::new()
15 }
16}
17
18impl LanguageAdapter for PythonAdapter {
19 fn language_name(&self) -> &'static str {
20 "python"
21 }
22
23 fn extensions(&self) -> &[&'static str] {
24 &["py"]
25 }
26
27 fn language(&self) -> Language {
28 tree_sitter_python::LANGUAGE.into()
29 }
30
31 fn queries(&self) -> LanguageQueries {
32 LanguageQueries {
33 definitions: r#"
34 (function_definition name: (identifier) @name) @def
35 (class_definition name: (identifier) @name) @def
36 (decorated_definition (function_definition name: (identifier) @name)) @def
37 (decorated_definition (class_definition name: (identifier) @name)) @def
38 "#,
39 references: r#"
40 (call function: (identifier) @ref) @call
41 (call function: (attribute attribute: (identifier) @ref)) @call
42 (identifier) @ref
43 "#,
44 }
45 }
46}