Skip to content

Commit

Permalink
Add configuration file option for SQLFluff (#1200)
Browse files Browse the repository at this point in the history
* Add configuration file for SQLFluff

* Correct config file name

* Update megalinter/descriptors/sql.megalinter-descriptor.yml

Co-authored-by: nvuillam <nicolas.vuillamy@gmail.com>
  • Loading branch information
tunetheweb and nvuillam committed Jan 25, 2022
1 parent 9b36d98 commit 8d849f4
Show file tree
Hide file tree
Showing 3 changed files with 153 additions and 4 deletions.
148 changes: 148 additions & 0 deletions TEMPLATES/.sqlfluff
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
## This .sqlfluff file can be used to configure the SQLFluff linter when
## used via the MegaLinter. Copy it to the .github/linters folder of
## your repo, and uncomment the necessary lines to configure the MegaLinter.
##
## IMPORTANT NOTE: The MegaLinter configuration file for SQLFluff
## supersedes any local configuration files you might have in within your
## codebase. For this reason it should only be used when you want the same
## configuration for your entire code base. If you need different configuration
## in different folders you must leave this config commented out, and instead
## manage all your config files within your code base rather than in the
## .github/linters folder
##

[sqlfluff]
## verbose is an integer (0-2) indicating the level of log output
#verbose = 0
## Turn off color formatting of output
#nocolor = False
## Supported dialects https://docs.sqlfluff.com/en/stable/dialects.html
## Or run 'sqlfluff dialects'
#dialect = ansi
## One of [raw|jinja|python|placeholder]
#templater = jinja
## Comma separated list of rules to check, or None for all
#rules = None
## Comma separated list of rules to exclude, or None
#exclude_rules = None
## The depth to recursively parse to (0 for unlimited)
#recurse = 0
## Below controls SQLFluff output, see max_line_length for SQL output
#output_line_length = 80
## Number of passes to run before admitting defeat
#runaway_limit = 10
## Ignore linting errors in templated sections
#ignore_templated_areas = True
## can either be autodetect or a valid encoding e.g. utf-8, utf-8-sig
#encoding = autodetect
## Ignore inline overrides (e.g. to test if still required)
#disable_noqa = False
## Comma separated list of file extensions to lint
## NB: This config will only apply in the root folder
#sql_file_exts = .sql,.sql.j2,.dml,.ddl
#
[sqlfluff:indentation]
## See https://docs.sqlfluff.com/en/stable/indentation.html
#indented_joins = False
#indented_using_on = True
#template_blocks_indent = True
#
[sqlfluff:templater]
#unwrap_wrapped_queries = True
#
[sqlfluff:templater:jinja]
#apply_dbt_builtins = True
#
[sqlfluff:templater:jinja:macros]
## Macros provided as builtins for dbt projects
#dbt_ref = {% macro ref(model_ref) %}{{model_ref}}{% endmacro %}
#dbt_source = {% macro source(source_name, table) %}{{source_name}}_{{table}}{% endmacro %}
#dbt_config = {% macro config() %}{% for k in kwargs %}{% endfor %}{% endmacro %}
#dbt_var = {% macro var(variable, default='') %}item{% endmacro %}
#dbt_is_incremental = {% macro is_incremental() %}True{% endmacro %}
#
## Some rules can be configured directly from the config common to other rules
[sqlfluff:rules]
#tab_space_size = 4
#max_line_length = 80
#indent_unit = space
#comma_style = trailing
#allow_scalar = True
#single_table_references = consistent
#unquoted_identifiers_policy = all
#
## Some rules have their own specific config
[sqlfluff:rules:L007]
#operator_new_lines = after
#
[sqlfluff:rules:L010]
## Keywords
#capitalisation_policy = consistent
#
[sqlfluff:rules:L011]
## Aliasing preference for tables
#aliasing = explicit
#
[sqlfluff:rules:L012]
## Aliasing preference for columns
#aliasing = explicit
#
[sqlfluff:rules:L014]
## Unquoted identifiers
#extended_capitalisation_policy = consistent
#
[sqlfluff:rules:L016]
## Line length
#ignore_comment_lines = False
#
[sqlfluff:rules:L026]
## References must be in FROM clause
## Disabled for some dialects (e.g. bigquery)
#force_enable = False
#
[sqlfluff:rules:L028]
## References must be consistently used
## Disabled for some dialects (e.g. bigquery)
#force_enable = False
#
[sqlfluff:rules:L029]
## Keywords should not be used as identifiers.
#unquoted_identifiers_policy = aliases
#quoted_identifiers_policy = none
#
[sqlfluff:rules:L030]
## Function names
#capitalisation_policy = consistent
#
[sqlfluff:rules:L038]
## Trailing commas
#select_clause_trailing_comma = forbid
#
[sqlfluff:rules:L040]
## Null & Boolean Literals
#capitalisation_policy = consistent
#
[sqlfluff:rules:L042]
## By default, allow subqueries in from clauses, but not join clauses
#forbid_subquery_in = join
#
[sqlfluff:rules:L047]
## Consistent syntax to count all rows
#prefer_count_1 = False
#prefer_count_0 = False
#
[sqlfluff:rules:L052]
## Semi-colon formatting approach
#multiline_newline = False
#require_final_semicolon = False
#
[sqlfluff:rules:L054]
## GROUP BY/ORDER BY column references
#group_by_and_order_by_style = consistent
#
[sqlfluff:rules:L057]
## Special characters in identifiers
#unquoted_identifiers_policy = all
#quoted_identifiers_policy = all
#allow_space_in_identifier = False
#additional_allowed_characters = ""
Original file line number Diff line number Diff line change
Expand Up @@ -10423,7 +10423,7 @@
},
"SQL_SQLFLUFF_CONFIG_FILE": {
"$id": "#/properties/SQL_SQLFLUFF_CONFIG_FILE",
"default": "setup.cfg",
"default": ".sqlfluff",
"description": "SQL_SQLFLUFF: User custom config file name if different from default",
"title": "SQL_SQLFLUFF: Custom config file name",
"type": "string"
Expand Down
7 changes: 4 additions & 3 deletions megalinter/descriptors/sql.megalinter-descriptor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,20 @@ linters:
- linter_name: sqlfluff
linter_url: https://www.sqlfluff.com/
linter_repo: https://github.com/sqlfluff/sqlfluff
linter_banner_image_url: https://raw.githubusercontent.com/sqlfluff/sqlfluff/master/images/sqlfluff-wide.png
linter_banner_image_url: https://raw.githubusercontent.com/sqlfluff/sqlfluff/main/images/sqlfluff-wide.png
linter_image_url: https://docs.sqlfluff.com/en/stable/_static/images/sqlfluff-lrg.png
linter_rules_url: https://docs.sqlfluff.com/en/stable/rules.html
linter_rules_configuration_url: https://docs.sqlfluff.com/en/stable/configuration.html
config_file_name: setup.cfg
config_file_name: .sqlfluff
cli_lint_mode: list_of_files
cli_lint_extra_args:
- lint
cli_config_arg_name: ""
cli_config_arg_name: "--config"
cli_help_arg_name: "--help"
cli_version_arg_name: "--version"
examples:
- "sqlfluff myfile.sql"
- "sqlfluff --config .sqlfluff myfile.sql myfile2.sql"
downgraded_version: true
install:
pip:
Expand Down

0 comments on commit 8d849f4

Please sign in to comment.