Skip to content

Commit a4b03e9

Browse files
removed parser
1 parent 0993ff3 commit a4b03e9

File tree

7 files changed

+131
-386
lines changed

7 files changed

+131
-386
lines changed

crates/pgt_completions/src/providers/roles.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ mod tests {
292292
QueryWithCursorPosition::cursor_marker()
293293
),
294294
format!(
295-
"revoke all on table userse from owner, {}",
295+
"revoke all on table users from owner, {}",
296296
QueryWithCursorPosition::cursor_marker()
297297
),
298298
];

crates/pgt_completions/src/relevance/filtering.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,17 @@ impl CompletionFilter<'_> {
245245
WrappingClause::SetStatement => ctx
246246
.before_cursor_matches_kind(&["keyword_role", "keyword_authorization"]),
247247

248+
WrappingClause::RevokeStatement => {
249+
ctx.matches_ancestor_history(&["role_specification"])
250+
|| ctx.node_under_cursor.as_ref().is_some_and(|k| {
251+
k.kind() == "identifier"
252+
&& ctx.before_cursor_matches_kind(&[
253+
"keyword_revoke",
254+
"keyword_for",
255+
])
256+
})
257+
}
258+
248259
WrappingClause::AlterPolicy | WrappingClause::CreatePolicy => {
249260
ctx.before_cursor_matches_kind(&["keyword_to"])
250261
&& ctx.matches_ancestor_history(&["policy_to_role"])

crates/pgt_hover/src/hovered_node.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ impl HoveredNode {
127127
}
128128
}
129129

130-
"revoke_role" | "grant_role" | "policy_role" => {
130+
"grant_role" | "policy_role" => {
131131
Some(HoveredNode::Role(NodeIdentification::Name(node_content)))
132132
}
133133

@@ -136,7 +136,7 @@ impl HoveredNode {
136136
Some(HoveredNode::Column(NodeIdentification::Name(node_content)))
137137
}
138138

139-
"revoke_table" | "grant_table" => {
139+
"grant_table" => {
140140
if let Some(schema) = ctx.schema_or_alias_name.as_ref() {
141141
Some(HoveredNode::Table(NodeIdentification::SchemaAndName((
142142
schema.clone(),

crates/pgt_treesitter/src/context/base_parser.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,6 @@ impl TokenNavigator {
1414
.is_some_and(|c| options.contains(&c.get_word_without_quotes().as_str()))
1515
}
1616

17-
pub(crate) fn prev_matches(&self, options: &[&str]) -> bool {
18-
self.previous_token
19-
.as_ref()
20-
.is_some_and(|t| options.contains(&t.get_word_without_quotes().as_str()))
21-
}
22-
2317
pub(crate) fn advance(&mut self) -> Option<WordWithIndex> {
2418
// we can't peek back n an iterator, so we'll have to keep track manually.
2519
self.previous_token = self.current_token.take();

crates/pgt_treesitter/src/context/mod.rs

Lines changed: 3 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@ use std::{
44
};
55
mod base_parser;
66
mod grant_parser;
7-
mod revoke_parser;
87

98
use crate::queries::{self, QueryResult, TreeSitterQueriesExecutor};
109
use pgt_text_size::{TextRange, TextSize};
1110

12-
use crate::context::{
13-
base_parser::CompletionStatementParser, grant_parser::GrantParser, revoke_parser::RevokeParser,
14-
};
11+
use crate::context::{base_parser::CompletionStatementParser, grant_parser::GrantParser};
1512

1613
#[derive(Debug, PartialEq, Eq, Hash, Clone)]
1714
pub enum WrappingClause<'a> {
@@ -34,6 +31,7 @@ pub enum WrappingClause<'a> {
3431
SetStatement,
3532
AlterRole,
3633
DropRole,
34+
RevokeStatement,
3735

3836
CreatePolicy,
3937
AlterPolicy,
@@ -198,8 +196,6 @@ impl<'a> TreesitterContext<'a> {
198196

199197
if GrantParser::looks_like_matching_stmt(params.text) {
200198
ctx.gather_grant_context();
201-
} else if RevokeParser::looks_like_matching_stmt(params.text) {
202-
ctx.gather_revoke_context();
203199
} else {
204200
ctx.gather_tree_context();
205201
ctx.gather_info_from_ts_queries();
@@ -208,34 +204,6 @@ impl<'a> TreesitterContext<'a> {
208204
ctx
209205
}
210206

211-
fn gather_revoke_context(&mut self) {
212-
let revoke_context = RevokeParser::get_context(self.text, self.position);
213-
214-
self.node_under_cursor = Some(NodeUnderCursor::CustomNode {
215-
text: revoke_context.node_text,
216-
range: revoke_context.node_range,
217-
kind: revoke_context.node_kind.clone(),
218-
previous_node_kind: None,
219-
});
220-
221-
if revoke_context.node_kind == "revoke_table" {
222-
self.schema_or_alias_name = revoke_context.schema_name.clone();
223-
}
224-
225-
if revoke_context.table_name.is_some() {
226-
let mut new = HashSet::new();
227-
new.insert(revoke_context.table_name.unwrap());
228-
self.mentioned_relations
229-
.insert(revoke_context.schema_name, new);
230-
}
231-
232-
self.wrapping_clause_type = match revoke_context.node_kind.as_str() {
233-
"revoke_role" => Some(WrappingClause::ToRoleAssignment),
234-
"revoke_table" => Some(WrappingClause::From),
235-
_ => None,
236-
};
237-
}
238-
239207
fn gather_grant_context(&mut self) {
240208
let grant_context = GrantParser::get_context(self.text, self.position);
241209

@@ -686,6 +654,7 @@ impl<'a> TreesitterContext<'a> {
686654
"rename_column" => Some(WrappingClause::RenameColumn),
687655
"alter_table" => Some(WrappingClause::AlterTable),
688656
"set_statement" => Some(WrappingClause::SetStatement),
657+
"revoke_statement" => Some(WrappingClause::RevokeStatement),
689658
"column_definitions" => Some(WrappingClause::ColumnDefinitions),
690659
"create_policy" => Some(WrappingClause::CreatePolicy),
691660
"alter_policy" => Some(WrappingClause::AlterPolicy),

0 commit comments

Comments
 (0)