Skip to content
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

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

155 changes: 31 additions & 124 deletions crates/pgls_completions/src/providers/roles.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,21 +46,31 @@ mod tests {
);
"#;

fn expected_roles() -> Vec<CompletionAssertion> {
vec![
CompletionAssertion::LabelAndKind("anon".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"authenticated".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind("owner".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"service_role".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind("test_login".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"test_nologin".into(),
crate::CompletionItemKind::Role,
),
]
}

#[sqlx::test(migrator = "pgls_test_utils::MIGRATIONS")]
async fn works_in_drop_role(pool: PgPool) {
assert_complete_results(
format!("drop role {}", QueryWithCursorPosition::cursor_marker()).as_str(),
vec![
CompletionAssertion::LabelAndKind("owner".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"test_login".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind(
"test_nologin".into(),
crate::CompletionItemKind::Role,
),
],
expected_roles(),
Some(SETUP),
&pool,
)
Expand All @@ -71,17 +81,7 @@ mod tests {
async fn works_in_alter_role(pool: PgPool) {
assert_complete_results(
format!("alter role {}", QueryWithCursorPosition::cursor_marker()).as_str(),
vec![
CompletionAssertion::LabelAndKind("owner".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"test_login".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind(
"test_nologin".into(),
crate::CompletionItemKind::Role,
),
],
expected_roles(),
Some(SETUP),
&pool,
)
Expand All @@ -94,17 +94,7 @@ mod tests {

assert_complete_results(
format!("set role {}", QueryWithCursorPosition::cursor_marker()).as_str(),
vec![
CompletionAssertion::LabelAndKind("owner".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"test_login".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind(
"test_nologin".into(),
crate::CompletionItemKind::Role,
),
],
expected_roles(),
None,
&pool,
)
Expand All @@ -116,17 +106,7 @@ mod tests {
QueryWithCursorPosition::cursor_marker()
)
.as_str(),
vec![
CompletionAssertion::LabelAndKind("owner".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"test_login".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind(
"test_nologin".into(),
crate::CompletionItemKind::Role,
),
],
expected_roles(),
None,
&pool,
)
Expand All @@ -140,24 +120,14 @@ mod tests {
assert_complete_results(
format!(
r#"create policy "my cool policy" on public.users
as restrictive
as restrictive
for all
to {}
using (true);"#,
QueryWithCursorPosition::cursor_marker()
)
.as_str(),
vec![
CompletionAssertion::LabelAndKind("owner".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"test_login".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind(
"test_nologin".into(),
crate::CompletionItemKind::Role,
),
],
expected_roles(),
None,
&pool,
)
Expand All @@ -171,17 +141,7 @@ mod tests {
QueryWithCursorPosition::cursor_marker()
)
.as_str(),
vec![
CompletionAssertion::LabelAndKind("owner".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"test_login".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind(
"test_nologin".into(),
crate::CompletionItemKind::Role,
),
],
expected_roles(),
None,
&pool,
)
Expand All @@ -200,18 +160,7 @@ mod tests {
QueryWithCursorPosition::cursor_marker()
)
.as_str(),
vec![
// recognizing already mentioned roles is not supported for now
CompletionAssertion::LabelAndKind("owner".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"test_login".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind(
"test_nologin".into(),
crate::CompletionItemKind::Role,
),
],
expected_roles(),
None,
&pool,
)
Expand All @@ -225,18 +174,7 @@ mod tests {
QueryWithCursorPosition::cursor_marker()
)
.as_str(),
vec![
// recognizing already mentioned roles is not supported for now
CompletionAssertion::LabelAndKind("owner".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"test_login".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind(
"test_nologin".into(),
crate::CompletionItemKind::Role,
),
],
expected_roles(),
None,
&pool,
)
Expand All @@ -248,18 +186,7 @@ mod tests {
QueryWithCursorPosition::cursor_marker()
)
.as_str(),
vec![
// recognizing already mentioned roles is not supported for now
CompletionAssertion::LabelAndKind("owner".into(), crate::CompletionItemKind::Role),
CompletionAssertion::LabelAndKind(
"test_login".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind(
"test_nologin".into(),
crate::CompletionItemKind::Role,
),
],
expected_roles(),
None,
&pool,
)
Expand Down Expand Up @@ -298,27 +225,7 @@ mod tests {
];

for query in queries {
assert_complete_results(
query.as_str(),
vec![
// recognizing already mentioned roles is not supported for now
CompletionAssertion::LabelAndKind(
"owner".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind(
"test_login".into(),
crate::CompletionItemKind::Role,
),
CompletionAssertion::LabelAndKind(
"test_nologin".into(),
crate::CompletionItemKind::Role,
),
],
None,
&pool,
)
.await;
assert_complete_results(query.as_str(), expected_roles(), None, &pool).await;
}
}
}
3 changes: 0 additions & 3 deletions crates/pgls_configuration/src/generated.rs

This file was deleted.

19 changes: 0 additions & 19 deletions crates/pgls_configuration/src/generated/linter.rs

This file was deleted.

18 changes: 10 additions & 8 deletions crates/pgls_configuration/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,32 @@
//!
//! The configuration is divided by "tool".
pub mod analyser;
pub mod database;
pub mod diagnostics;
pub mod files;
pub mod generated;
pub mod linter;
pub mod migrations;
pub mod plpgsql_check;
pub mod rules;
pub mod typecheck;
pub mod vcs;

pub use crate::diagnostics::ConfigurationDiagnostic;

use std::path::PathBuf;

pub use crate::generated::push_to_analyser_rules;
use crate::vcs::{PartialVcsConfiguration, VcsConfiguration, partial_vcs_configuration};
pub use analyser::{
LinterConfiguration, PartialLinterConfiguration, RuleConfiguration, RuleFixConfiguration,
RulePlainConfiguration, RuleSelector, RuleWithFixOptions, RuleWithOptions, Rules,
partial_linter_configuration,
};
use biome_deserialize::StringSet;
use biome_deserialize_macros::{Merge, Partial};
use bpaf::Bpaf;
use database::{
DatabaseConfiguration, PartialDatabaseConfiguration, partial_database_configuration,
};
use files::{FilesConfiguration, PartialFilesConfiguration, partial_files_configuration};
pub use linter::{
LinterConfiguration, PartialLinterConfiguration, Rules, partial_linter_configuration,
push_to_analyser_rules,
};
use migrations::{
MigrationsConfiguration, PartialMigrationsConfiguration, partial_migrations_configuration,
};
Expand All @@ -38,6 +36,10 @@ use plpgsql_check::{
PartialPlPgSqlCheckConfiguration, PlPgSqlCheckConfiguration,
partial_pl_pg_sql_check_configuration,
};
pub use rules::{
RuleConfiguration, RuleFixConfiguration, RulePlainConfiguration, RuleSelector,
RuleWithFixOptions, RuleWithOptions,
};
use serde::{Deserialize, Serialize};
pub use typecheck::{
PartialTypecheckConfiguration, TypecheckConfiguration, partial_typecheck_configuration,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,41 +1,37 @@
mod rules;
//! Generated file, do not edit by hand, see `xtask/codegen`
#![doc = r" Generated file, do not edit by hand, see `xtask/codegen`"]
mod rules;
use biome_deserialize::StringSet;
use biome_deserialize_macros::{Merge, Partial};
use bpaf::Bpaf;
pub use rules::*;
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, Deserialize, Eq, Partial, PartialEq, Serialize)]
#[partial(derive(Bpaf, Clone, Eq, Merge, PartialEq))]
#[partial(cfg_attr(feature = "schema", derive(schemars::JsonSchema)))]
#[partial(serde(rename_all = "camelCase", default, deny_unknown_fields))]
pub struct LinterConfiguration {
/// if `false`, it disables the feature and the linter won't be executed. `true` by default
#[doc = r" if `false`, it disables the feature and the linter won't be executed. `true` by default"]
#[partial(bpaf(hide))]
pub enabled: bool,

/// List of rules
#[doc = r" List of rules"]
#[partial(bpaf(pure(Default::default()), optional, hide))]
pub rules: Rules,

/// A list of Unix shell style patterns. The formatter will ignore files/folders that will
/// match these patterns.
#[doc = r" A list of Unix shell style patterns. The formatter will ignore files/folders that will"]
#[doc = r" match these patterns."]
#[partial(bpaf(hide))]
pub ignore: StringSet,

/// A list of Unix shell style patterns. The formatter will include files/folders that will
/// match these patterns.
#[doc = r" A list of Unix shell style patterns. The formatter will include files/folders that will"]
#[doc = r" match these patterns."]
#[partial(bpaf(hide))]
pub include: StringSet,
}

impl LinterConfiguration {
pub const fn is_disabled(&self) -> bool {
!self.enabled
}
}

impl Default for LinterConfiguration {
fn default() -> Self {
Self {
Expand All @@ -46,12 +42,10 @@ impl Default for LinterConfiguration {
}
}
}

impl PartialLinterConfiguration {
pub const fn is_disabled(&self) -> bool {
matches!(self.enabled, Some(false))
}

pub fn get_rules(&self) -> Rules {
self.rules.clone().unwrap_or_default()
}
Expand Down
Loading
Loading