fortitude-lint 0.8.0__tar.gz → 0.8.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/Cargo.lock +1 -1
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/PKG-INFO +2 -39
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/README.md +1 -38
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/Cargo.toml +1 -1
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/README.md +1 -38
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/tests/check.rs +12 -12
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/lib.rs +26 -44
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/assumed_size.rs +3 -13
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/intent.rs +2 -2
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/select_default.rs +4 -50
- fortitude_lint-0.8.0rc1/crates/fortitude_linter/src/rules/style/line_length.rs +84 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/whitespace.rs +1 -8
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/session/index/fortitude_settings.rs +5 -130
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/session/index.rs +5 -59
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/session.rs +1 -2
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/pyproject.toml +1 -1
- fortitude_lint-0.8.0/crates/fortitude_linter/src/rules/style/line_length.rs +0 -144
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/Cargo.toml +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/LICENSE +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/build.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/resources/test/fixtures/include-test/a.f90 +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/resources/test/fixtures/include-test/b.f90 +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/resources/test/fixtures/include-test/fortitude.toml +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/resources/test/fixtures/include-test/nested-project/e.f90 +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/resources/test/fixtures/include-test/nested-project/fortitude.toml +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/resources/test/fixtures/include-test/subdirectory/c.f90 +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/resources/test/fixtures/include-test/subdirectory/d.f90 +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/check.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/cli.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/commands/completions/config.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/commands/completions/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/commands/config.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/commands/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/explain.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/lib.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/main.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/printer.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/resolve.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/server.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/show_files.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/show_settings.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/snapshots/fortitude__version__tests__version_formatting.snap +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/snapshots/fortitude__version__tests__version_formatting_with_commit_info.snap +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/snapshots/fortitude__version__tests__version_formatting_with_commits_since_last_tag.snap +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/snapshots/fortitude__version__tests__version_serializable.snap +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/stdin.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/src/version.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/tests/config.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/tests/explain.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude/tests/resolve_files.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/Cargo.toml +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/resources/test/package/fortitude.toml +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/resources/test/package/resources/ignored.f90 +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/resources/test/package/src/package/app.f90 +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/allow_comments.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/ast/symbol_table.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/ast/types.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/ast.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/diagnostic_message.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/diagnostics.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/fix/edits.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/fix/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/fix/snippet.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/fs.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/line_width.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/locator.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/logging.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/azure.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/diff.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/github.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/gitlab.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/grouped.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/json.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/json_lines.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/junit.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/pylint.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/rdjson.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/sarif.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/message/text.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/registry/rule_set.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/registry.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rule_redirects.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rule_selector.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rule_table.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/accessibility_statements.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/conditionals.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/derived_default_init.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/error_handling.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/exit_labels.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/external.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/implicit_kinds.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/implicit_typing.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/init_decls.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/kind_suffixes.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/magic_numbers.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/missing_io_specifier.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/nonportable_shortcircuit_inquiry.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/split_escaped_quote.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/trailing_backslash.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/unreachable_statement.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/correctness/use_statements.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/error/invalid_character.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/error/ioerror.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/error/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/error/syntax_error.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/fortitude/allow_comments.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/fortitude/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/macros.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/modernisation/double_precision.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/modernisation/include_statement.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/modernisation/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/modernisation/mpi.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/modernisation/old_style_array_literal.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/modernisation/out_of_line_attribute.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/modernisation/relational_operators.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/obsolescent/common_blocks.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/obsolescent/computed_goto.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/obsolescent/deprecated_character_syntax.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/obsolescent/entry_statement.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/obsolescent/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/obsolescent/mpi.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/obsolescent/openmp.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/obsolescent/pause_statement.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/obsolescent/specific_names.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/obsolescent/statement_functions.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/portability/invalid_tab.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/portability/literal_kinds.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/portability/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/portability/non_portable_io_unit.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/portability/star_kinds.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/double_colon_in_decl.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/end_statements.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/file_contents.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/file_extensions.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/functions.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/implicit_none.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/inconsistent_dimension.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/keywords.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/semicolons.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/strings.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/style/useless_return.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/testing/mod.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/testing/test_rules.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/rules/utilities.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/settings.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/test.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/text_helpers.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_linter/src/traits.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_macros/Cargo.toml +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_macros/src/lib.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_macros/src/map_codes.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_macros/src/rule_code_prefix.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_macros/src/rule_namespace.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/CONTRIBUTING.md +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/Cargo.toml +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/README.md +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/resources/test/fixtures/settings/empty.json +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/resources/test/fixtures/settings/empty_multiple_workspace.json +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/resources/test/fixtures/settings/global_only.json +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/resources/test/fixtures/settings/inline_configuration.json +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/resources/test/fixtures/settings/vs_code_initialization_options.json +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/edit/range.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/edit/replacement.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/edit/text_document.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/edit.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/fix.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/lib.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/lint.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/logging.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/resolve.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/diagnostics.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/notifications/cancel.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/notifications/did_change.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/notifications/did_change_configuration.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/notifications/did_change_watched_files.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/notifications/did_change_workspace.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/notifications/did_close.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/notifications/did_open.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/notifications.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/requests/code_action.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/requests/code_action_resolve.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/requests/diagnostic.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/requests/execute_command.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/requests/hover.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/requests/shutdown.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/requests.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api/traits.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/api.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/connection.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/main_loop.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/schedule/task.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/schedule/thread/pool.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/schedule/thread/priority.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/schedule/thread.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server/schedule.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/server.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/session/capabilities.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/session/client.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/session/options.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/session/request_queue.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/session/settings.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_server/src/workspace.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_workspace/Cargo.toml +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_workspace/src/configuration.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_workspace/src/lib.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_workspace/src/options.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_workspace/src/options_base.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/crates/fortitude_workspace/src/resolver.rs +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/python/fortitude/__init__.py +0 -0
- {fortitude_lint-0.8.0 → fortitude_lint-0.8.0rc1}/python/fortitude/__main__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fortitude-lint
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.0rc1
|
|
4
4
|
Classifier: Development Status :: 2 - Pre-Alpha
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -276,7 +276,7 @@ Fortitude can be integrated into text editors and IDEs that support the
|
|
|
276
276
|
Language Server Protocol (LSP), providing real-time diagnostics and
|
|
277
277
|
code actions for applying fixes as you work.
|
|
278
278
|
|
|
279
|
-
Please see the [documentation](
|
|
279
|
+
Please see the [documentation](fortitude.readthedocs.io/en/stable/editors) for
|
|
280
280
|
details on setting this up for your editor.
|
|
281
281
|
|
|
282
282
|
A VSCode plugin is in development, and will be released shortly.
|
|
@@ -298,43 +298,6 @@ This also includes instructions for building the project from source, running
|
|
|
298
298
|
tests, and linting/formatting the code. Please consult our [code of
|
|
299
299
|
conduct](CODE_OF_CONDUCT.md) before contributing.
|
|
300
300
|
|
|
301
|
-
## Projects Using Fortitude
|
|
302
|
-
|
|
303
|
-
More and more open-source Fortran projects are using Fortitude to help maintain
|
|
304
|
-
their code, including:
|
|
305
|
-
|
|
306
|
-
- [ADCIRC](https://github.com/adcirc/adcirc)
|
|
307
|
-
- [cp2k](https://github.com/cp2k/cp2k)
|
|
308
|
-
- [flexi](https://github.com/flexi-framework/flexi)
|
|
309
|
-
- [FTorch](https://github.com/Cambridge-ICCS/FTorch)
|
|
310
|
-
- [MESA](https://github.com/MESAHub/mesa)
|
|
311
|
-
- [OpenFMS](https://github.com/ispg-group/openfms)
|
|
312
|
-
- [The Met Office](https://github.com/MetOffice/growss/tree/main/fortran-lint)
|
|
313
|
-
|
|
314
|
-
### Show Your Support
|
|
315
|
-
|
|
316
|
-
If you've found Fortitude useful in your project, please consider adding the
|
|
317
|
-
Fortitude badge to your `README.md`:
|
|
318
|
-
|
|
319
|
-
```md
|
|
320
|
-
[](https://github.com/PlasmaFAIR/fortitude)
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
or `README.rst`:
|
|
324
|
-
|
|
325
|
-
```rst
|
|
326
|
-
.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/PlasmaFAIR/fortitude/main/docs/assets/badge/v0.json
|
|
327
|
-
:target: https://github.com/PlasmaFAIR/fortitude
|
|
328
|
-
:alt: Fortitude
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
or, as HTML:
|
|
332
|
-
|
|
333
|
-
```html
|
|
334
|
-
<a href="https://github.com/PlasmaFAIR/fortitude"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/PlasmaFAIR/fortitude/main/docs/assets/badge/v0.json" alt="Fortitude" style="max-width:100%;"></a>
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
|
|
338
301
|
## License
|
|
339
302
|
|
|
340
303
|
This work is distributed under the MIT License. See [`LICENSE`](LICENSE) for more
|
|
@@ -255,7 +255,7 @@ Fortitude can be integrated into text editors and IDEs that support the
|
|
|
255
255
|
Language Server Protocol (LSP), providing real-time diagnostics and
|
|
256
256
|
code actions for applying fixes as you work.
|
|
257
257
|
|
|
258
|
-
Please see the [documentation](
|
|
258
|
+
Please see the [documentation](fortitude.readthedocs.io/en/stable/editors) for
|
|
259
259
|
details on setting this up for your editor.
|
|
260
260
|
|
|
261
261
|
A VSCode plugin is in development, and will be released shortly.
|
|
@@ -277,43 +277,6 @@ This also includes instructions for building the project from source, running
|
|
|
277
277
|
tests, and linting/formatting the code. Please consult our [code of
|
|
278
278
|
conduct](CODE_OF_CONDUCT.md) before contributing.
|
|
279
279
|
|
|
280
|
-
## Projects Using Fortitude
|
|
281
|
-
|
|
282
|
-
More and more open-source Fortran projects are using Fortitude to help maintain
|
|
283
|
-
their code, including:
|
|
284
|
-
|
|
285
|
-
- [ADCIRC](https://github.com/adcirc/adcirc)
|
|
286
|
-
- [cp2k](https://github.com/cp2k/cp2k)
|
|
287
|
-
- [flexi](https://github.com/flexi-framework/flexi)
|
|
288
|
-
- [FTorch](https://github.com/Cambridge-ICCS/FTorch)
|
|
289
|
-
- [MESA](https://github.com/MESAHub/mesa)
|
|
290
|
-
- [OpenFMS](https://github.com/ispg-group/openfms)
|
|
291
|
-
- [The Met Office](https://github.com/MetOffice/growss/tree/main/fortran-lint)
|
|
292
|
-
|
|
293
|
-
### Show Your Support
|
|
294
|
-
|
|
295
|
-
If you've found Fortitude useful in your project, please consider adding the
|
|
296
|
-
Fortitude badge to your `README.md`:
|
|
297
|
-
|
|
298
|
-
```md
|
|
299
|
-
[](https://github.com/PlasmaFAIR/fortitude)
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
or `README.rst`:
|
|
303
|
-
|
|
304
|
-
```rst
|
|
305
|
-
.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/PlasmaFAIR/fortitude/main/docs/assets/badge/v0.json
|
|
306
|
-
:target: https://github.com/PlasmaFAIR/fortitude
|
|
307
|
-
:alt: Fortitude
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
or, as HTML:
|
|
311
|
-
|
|
312
|
-
```html
|
|
313
|
-
<a href="https://github.com/PlasmaFAIR/fortitude"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/PlasmaFAIR/fortitude/main/docs/assets/badge/v0.json" alt="Fortitude" style="max-width:100%;"></a>
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
|
|
317
280
|
## License
|
|
318
281
|
|
|
319
282
|
This work is distributed under the MIT License. See [`LICENSE`](LICENSE) for more
|
|
@@ -255,7 +255,7 @@ Fortitude can be integrated into text editors and IDEs that support the
|
|
|
255
255
|
Language Server Protocol (LSP), providing real-time diagnostics and
|
|
256
256
|
code actions for applying fixes as you work.
|
|
257
257
|
|
|
258
|
-
Please see the [documentation](
|
|
258
|
+
Please see the [documentation](fortitude.readthedocs.io/en/stable/editors) for
|
|
259
259
|
details on setting this up for your editor.
|
|
260
260
|
|
|
261
261
|
A VSCode plugin is in development, and will be released shortly.
|
|
@@ -277,43 +277,6 @@ This also includes instructions for building the project from source, running
|
|
|
277
277
|
tests, and linting/formatting the code. Please consult our [code of
|
|
278
278
|
conduct](CODE_OF_CONDUCT.md) before contributing.
|
|
279
279
|
|
|
280
|
-
## Projects Using Fortitude
|
|
281
|
-
|
|
282
|
-
More and more open-source Fortran projects are using Fortitude to help maintain
|
|
283
|
-
their code, including:
|
|
284
|
-
|
|
285
|
-
- [ADCIRC](https://github.com/adcirc/adcirc)
|
|
286
|
-
- [cp2k](https://github.com/cp2k/cp2k)
|
|
287
|
-
- [flexi](https://github.com/flexi-framework/flexi)
|
|
288
|
-
- [FTorch](https://github.com/Cambridge-ICCS/FTorch)
|
|
289
|
-
- [MESA](https://github.com/MESAHub/mesa)
|
|
290
|
-
- [OpenFMS](https://github.com/ispg-group/openfms)
|
|
291
|
-
- [The Met Office](https://github.com/MetOffice/growss/tree/main/fortran-lint)
|
|
292
|
-
|
|
293
|
-
### Show Your Support
|
|
294
|
-
|
|
295
|
-
If you've found Fortitude useful in your project, please consider adding the
|
|
296
|
-
Fortitude badge to your `README.md`:
|
|
297
|
-
|
|
298
|
-
```md
|
|
299
|
-
[](https://github.com/PlasmaFAIR/fortitude)
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
or `README.rst`:
|
|
303
|
-
|
|
304
|
-
```rst
|
|
305
|
-
.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/PlasmaFAIR/fortitude/main/docs/assets/badge/v0.json
|
|
306
|
-
:target: https://github.com/PlasmaFAIR/fortitude
|
|
307
|
-
:alt: Fortitude
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
or, as HTML:
|
|
311
|
-
|
|
312
|
-
```html
|
|
313
|
-
<a href="https://github.com/PlasmaFAIR/fortitude"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/PlasmaFAIR/fortitude/main/docs/assets/badge/v0.json" alt="Fortitude" style="max-width:100%;"></a>
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
|
|
317
280
|
## License
|
|
318
281
|
|
|
319
282
|
This work is distributed under the MIT License. See [`LICENSE`](LICENSE) for more
|
|
@@ -758,7 +758,7 @@ end program foo
|
|
|
758
758
|
success: false
|
|
759
759
|
exit_code: 1
|
|
760
760
|
----- stdout -----
|
|
761
|
-
[TEMP_FILE] S081 unnecessary semicolon
|
|
761
|
+
[TEMP_FILE] S081 [*] unnecessary semicolon
|
|
762
762
|
|
|
|
763
763
|
4 | integer :: i
|
|
764
764
|
5 | integer :: j
|
|
@@ -795,9 +795,10 @@ end program foo
|
|
|
795
795
|
|
|
796
796
|
fortitude explain X001,Y002,...
|
|
797
797
|
|
|
798
|
+
[*] 1 fixable with the `--fix` option.
|
|
798
799
|
|
|
799
800
|
----- stderr -----
|
|
800
|
-
warning: Syntax errors detected in file: [TEMP_FILE] Discarding subsequent violations from the AST
|
|
801
|
+
warning: Syntax errors detected in file: [TEMP_FILE] Discarding subsequent violations from the AST.
|
|
801
802
|
",);
|
|
802
803
|
Ok(())
|
|
803
804
|
}
|
|
@@ -828,7 +829,7 @@ end program foo
|
|
|
828
829
|
success: false
|
|
829
830
|
exit_code: 1
|
|
830
831
|
----- stdout -----
|
|
831
|
-
[TEMP_FILE] S081 unnecessary semicolon
|
|
832
|
+
[TEMP_FILE] S081 [*] unnecessary semicolon
|
|
832
833
|
|
|
|
833
834
|
4 | integer :: i
|
|
834
835
|
5 | integer :: j
|
|
@@ -839,7 +840,7 @@ end program foo
|
|
|
839
840
|
|
|
|
840
841
|
= help: Remove this character
|
|
841
842
|
|
|
842
|
-
[TEMP_FILE] S081 unnecessary semicolon
|
|
843
|
+
[TEMP_FILE] S081 [*] unnecessary semicolon
|
|
843
844
|
|
|
|
844
845
|
6 | i = 2;
|
|
845
846
|
7 | j = i ^ 2 ! This is a syntax error
|
|
@@ -856,9 +857,9 @@ end program foo
|
|
|
856
857
|
|
|
857
858
|
fortitude explain X001,Y002,...
|
|
858
859
|
|
|
860
|
+
[*] 2 fixable with the `--fix` option.
|
|
859
861
|
|
|
860
862
|
----- stderr -----
|
|
861
|
-
warning: Syntax errors detected in file: [TEMP_FILE] Discarding all fixes. Some violations from the AST may be unreliable.
|
|
862
863
|
",);
|
|
863
864
|
Ok(())
|
|
864
865
|
}
|
|
@@ -890,7 +891,7 @@ end program foo
|
|
|
890
891
|
success: false
|
|
891
892
|
exit_code: 1
|
|
892
893
|
----- stdout -----
|
|
893
|
-
[TEMP_FILE] S081 unnecessary semicolon
|
|
894
|
+
[TEMP_FILE] S081 [*] unnecessary semicolon
|
|
894
895
|
|
|
|
895
896
|
4 | integer :: i
|
|
896
897
|
5 | integer :: j
|
|
@@ -901,7 +902,7 @@ end program foo
|
|
|
901
902
|
|
|
|
902
903
|
= help: Remove this character
|
|
903
904
|
|
|
904
|
-
[TEMP_FILE] S081 unnecessary semicolon
|
|
905
|
+
[TEMP_FILE] S081 [*] unnecessary semicolon
|
|
905
906
|
|
|
|
906
907
|
7 | ! allow(syntax-error)
|
|
907
908
|
8 | j = i ^ 2 ! This is a syntax error
|
|
@@ -918,9 +919,10 @@ end program foo
|
|
|
918
919
|
|
|
919
920
|
fortitude explain X001,Y002,...
|
|
920
921
|
|
|
922
|
+
[*] 2 fixable with the `--fix` option.
|
|
921
923
|
|
|
922
924
|
----- stderr -----
|
|
923
|
-
warning: Syntax errors detected in file: [TEMP_FILE] Discarding subsequent violations from the AST
|
|
925
|
+
warning: Syntax errors detected in file: [TEMP_FILE] Discarding subsequent violations from the AST.
|
|
924
926
|
",);
|
|
925
927
|
Ok(())
|
|
926
928
|
}
|
|
@@ -951,7 +953,7 @@ end program foo
|
|
|
951
953
|
success: false
|
|
952
954
|
exit_code: 1
|
|
953
955
|
----- stdout -----
|
|
954
|
-
[TEMP_FILE] S081 unnecessary semicolon
|
|
956
|
+
[TEMP_FILE] S081 [*] unnecessary semicolon
|
|
955
957
|
|
|
|
956
958
|
6 | i = 2
|
|
957
959
|
7 | j = i ^ 2 ! This is a syntax error
|
|
@@ -968,9 +970,9 @@ end program foo
|
|
|
968
970
|
|
|
969
971
|
fortitude explain X001,Y002,...
|
|
970
972
|
|
|
973
|
+
[*] 1 fixable with the `--fix` option.
|
|
971
974
|
|
|
972
975
|
----- stderr -----
|
|
973
|
-
warning: Syntax errors detected in file: [TEMP_FILE] Discarding all fixes. Some violations from the AST may be unreliable.
|
|
974
976
|
warning: Syntax errors detected in file: [TEMP_FILE] No fixes will be applied.
|
|
975
977
|
",);
|
|
976
978
|
Ok(())
|
|
@@ -2314,7 +2316,6 @@ end program foo
|
|
|
2314
2316
|
"#,
|
|
2315
2317
|
)?;
|
|
2316
2318
|
|
|
2317
|
-
apply_common_filters!();
|
|
2318
2319
|
assert_cmd_snapshot!(FortitudeCheck::default()
|
|
2319
2320
|
.args(["--select=C003", "--ignore=E001"])
|
|
2320
2321
|
.file(&test_file)
|
|
@@ -2328,7 +2329,6 @@ end program foo
|
|
|
2328
2329
|
|
|
2329
2330
|
|
|
2330
2331
|
----- stderr -----
|
|
2331
|
-
warning: Syntax errors detected in file: [TEMP_FILE] Discarding all fixes. Some violations from the AST may be unreliable.
|
|
2332
2332
|
");
|
|
2333
2333
|
|
|
2334
2334
|
Ok(())
|
|
@@ -350,50 +350,32 @@ pub(crate) fn check_path(
|
|
|
350
350
|
}
|
|
351
351
|
}
|
|
352
352
|
|
|
353
|
-
//
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
)
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
.
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
Some(diagnostic)
|
|
380
|
-
} else {
|
|
381
|
-
None
|
|
382
|
-
}
|
|
383
|
-
})
|
|
384
|
-
.collect_vec();
|
|
385
|
-
}
|
|
386
|
-
} else {
|
|
387
|
-
// If syntax errors are present but the rule is disabled, just warn
|
|
388
|
-
// that false positives may be present.
|
|
389
|
-
warn_user_once_by_message!(
|
|
390
|
-
"Syntax errors detected in file: {}. Discarding all fixes. Some violations from the AST may be unreliable.",
|
|
391
|
-
path.to_string_lossy()
|
|
392
|
-
);
|
|
393
|
-
}
|
|
394
|
-
// Disable all fixes
|
|
395
|
-
for diagnostic in &mut violations {
|
|
396
|
-
diagnostic.fix = None;
|
|
353
|
+
// Check violations for any remaining syntax errors. If any are found, discard violations
|
|
354
|
+
// after it, as they may be false positives.
|
|
355
|
+
if rules.enabled(Rule::SyntaxError) && root.has_error() {
|
|
356
|
+
warn_user_once_by_message!(
|
|
357
|
+
"Syntax errors detected in file: {}. Discarding subsequent violations from the AST.",
|
|
358
|
+
path.to_string_lossy()
|
|
359
|
+
);
|
|
360
|
+
// Sort by byte-offset in the file
|
|
361
|
+
violations.sort_by_key(|diagnostic| diagnostic.range.start());
|
|
362
|
+
// Retain all violations up to the first syntax error, inclusive.
|
|
363
|
+
// Text and path rules can be safely retained.
|
|
364
|
+
let syntax_error_idx = violations
|
|
365
|
+
.iter()
|
|
366
|
+
.position(|diagnostic| diagnostic.kind.rule() == Rule::SyntaxError);
|
|
367
|
+
if let Some(syntax_error_idx) = syntax_error_idx {
|
|
368
|
+
violations = violations
|
|
369
|
+
.into_iter()
|
|
370
|
+
.enumerate()
|
|
371
|
+
.filter_map(|(idx, diagnostic)| {
|
|
372
|
+
if idx <= syntax_error_idx || !diagnostic.kind.rule().is_ast_rule() {
|
|
373
|
+
Some(diagnostic)
|
|
374
|
+
} else {
|
|
375
|
+
None
|
|
376
|
+
}
|
|
377
|
+
})
|
|
378
|
+
.collect_vec();
|
|
397
379
|
}
|
|
398
380
|
}
|
|
399
381
|
|
|
@@ -119,13 +119,11 @@ impl AstRule for AssumedSize {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
/// ## What does it do?
|
|
122
|
-
/// Checks `character` dummy arguments
|
|
123
|
-
/// `intent(in)` only.
|
|
122
|
+
/// Checks `character` dummy arguments have `intent(in)` only
|
|
124
123
|
///
|
|
125
124
|
/// ## Why is this bad?
|
|
126
|
-
/// Character dummy arguments
|
|
127
|
-
///
|
|
128
|
-
/// example:
|
|
125
|
+
/// Character dummy arguments with an assumed size should only have `intent(in)`, as
|
|
126
|
+
/// this can cause data loss with `intent([in]out)`. For example:
|
|
129
127
|
///
|
|
130
128
|
/// ```f90
|
|
131
129
|
/// program example
|
|
@@ -170,14 +168,6 @@ impl AstRule for AssumedSize {
|
|
|
170
168
|
/// text = "hello world!"
|
|
171
169
|
/// end subroutine set_text
|
|
172
170
|
/// ```
|
|
173
|
-
///
|
|
174
|
-
/// ## User derived type IO procedures
|
|
175
|
-
/// The standard mandates assumed-size length with `intent(inout)` for the
|
|
176
|
-
/// `iomsg` argument of user defined IO procedures for derived types, although
|
|
177
|
-
/// it doesn't specify a minimum length. Unfortunately, Fortitude is currently
|
|
178
|
-
/// unable to detect this use. You can use [`allow` (suppression)
|
|
179
|
-
/// comments](https://fortitude.readthedocs.io/en/stable/linter/#error-suppression)
|
|
180
|
-
/// to disable this rule for those uses only.
|
|
181
171
|
#[derive(ViolationMetadata)]
|
|
182
172
|
pub(crate) struct AssumedSizeCharacterIntent {
|
|
183
173
|
name: String,
|
|
@@ -67,8 +67,8 @@ impl AstRule for MissingIntent {
|
|
|
67
67
|
symbol_table.get(param.to_text(src.source_text())?)
|
|
68
68
|
})
|
|
69
69
|
.filter(|param| {
|
|
70
|
-
//
|
|
71
|
-
!
|
|
70
|
+
// Not allowed intent
|
|
71
|
+
!param.type_().is_procedure()
|
|
72
72
|
})
|
|
73
73
|
.filter(|param| {
|
|
74
74
|
// Intent only allowed on pointers after F2003
|
|
@@ -12,56 +12,10 @@ use tree_sitter::Node;
|
|
|
12
12
|
/// ## Why is this bad?
|
|
13
13
|
/// Select statements without a default case can lead to incomplete handling of
|
|
14
14
|
/// the possible options. If a value isn't handled by any of the cases, the
|
|
15
|
-
/// program will continue execution, which may lead to surprising results.
|
|
16
|
-
///
|
|
17
|
-
/// to
|
|
18
|
-
///
|
|
19
|
-
/// non-exhaustive cases. Having a default case allows for the program to
|
|
20
|
-
/// gracefully handle errors.
|
|
21
|
-
///
|
|
22
|
-
/// ## Examples
|
|
23
|
-
///
|
|
24
|
-
/// Instead of:
|
|
25
|
-
///
|
|
26
|
-
/// ```f90
|
|
27
|
-
/// select case(ntype)
|
|
28
|
-
/// case (1)
|
|
29
|
-
/// call routine1()
|
|
30
|
-
/// case (2)
|
|
31
|
-
/// call routine2()
|
|
32
|
-
/// end select
|
|
33
|
-
/// ```
|
|
34
|
-
///
|
|
35
|
-
/// use:
|
|
36
|
-
///
|
|
37
|
-
/// ```f90
|
|
38
|
-
/// select case(ntype)
|
|
39
|
-
/// case (1)
|
|
40
|
-
/// call routine1()
|
|
41
|
-
/// case (2)
|
|
42
|
-
/// call routine2()
|
|
43
|
-
/// case default
|
|
44
|
-
/// call handle_error("Invalid ntype: ", ntype)
|
|
45
|
-
/// end select
|
|
46
|
-
/// ```
|
|
47
|
-
///
|
|
48
|
-
/// If you do only intend to handle a subset of cases, you can use a `continue`
|
|
49
|
-
/// statement with an explanatory comment:
|
|
50
|
-
///
|
|
51
|
-
/// ```f90
|
|
52
|
-
/// select case(ntype)
|
|
53
|
-
/// case (1)
|
|
54
|
-
/// call routine1()
|
|
55
|
-
/// case (2)
|
|
56
|
-
/// call routine2()
|
|
57
|
-
/// case default
|
|
58
|
-
/// ! Other ntypes handled elsewhere
|
|
59
|
-
/// continue
|
|
60
|
-
/// end select
|
|
61
|
-
/// ```
|
|
62
|
-
///
|
|
63
|
-
/// You may also consider instead using an `if` statement. This can make your
|
|
64
|
-
/// intention more obvious.
|
|
15
|
+
/// program will continue execution, which may lead to surprising results.
|
|
16
|
+
/// Unfortunately, because Fortran doesn't have proper enums, it's not possible
|
|
17
|
+
/// for the compiler to issue warnings for non-exhaustive cases. Having a default
|
|
18
|
+
/// case allows for the program to gracefully handle errors.
|
|
65
19
|
#[derive(ViolationMetadata)]
|
|
66
20
|
pub(crate) struct MissingDefaultCase {}
|
|
67
21
|
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/// Defines rules that govern line length.
|
|
2
|
+
use crate::settings::CheckSettings;
|
|
3
|
+
use lazy_regex::regex_is_match;
|
|
4
|
+
use ruff_diagnostics::{Diagnostic, Violation};
|
|
5
|
+
use ruff_macros::{ViolationMetadata, derive_message_formats};
|
|
6
|
+
use ruff_source_file::SourceFile;
|
|
7
|
+
use ruff_source_file::UniversalNewlines;
|
|
8
|
+
use ruff_text_size::{TextLen, TextRange, TextSize};
|
|
9
|
+
|
|
10
|
+
/// ## What does it do?
|
|
11
|
+
/// Checks line length isn't too long
|
|
12
|
+
///
|
|
13
|
+
/// ## Why is this bad?
|
|
14
|
+
/// Long lines are more difficult to read, and may not fit on some developers'
|
|
15
|
+
/// terminals. The line continuation character '&' may be used to split a long line
|
|
16
|
+
/// across multiple lines, and overly long expressions may be broken down into
|
|
17
|
+
/// multiple parts.
|
|
18
|
+
///
|
|
19
|
+
/// The maximum line length can be changed using the flag `--line-length=N`. The
|
|
20
|
+
/// default maximum line length is 100 characters. This is a fair bit more than the
|
|
21
|
+
/// traditional 80, but due to the verbosity of modern Fortran it can sometimes be
|
|
22
|
+
/// difficult to squeeze lines into that width, especially when using large indents
|
|
23
|
+
/// and multiple levels of indentation.
|
|
24
|
+
///
|
|
25
|
+
/// Some lines that are longer than the maximum length may be acceptable, such as
|
|
26
|
+
/// long strings or comments. This is to allow for long URLs or other text that cannot
|
|
27
|
+
/// be reasonably split across multiple lines.
|
|
28
|
+
///
|
|
29
|
+
/// Note that the Fortran standard states a maximum line length of 132 characters,
|
|
30
|
+
/// and while some modern compilers will support longer lines, for portability it
|
|
31
|
+
/// is recommended to stay beneath this limit.
|
|
32
|
+
#[derive(ViolationMetadata)]
|
|
33
|
+
pub(crate) struct LineTooLong {
|
|
34
|
+
max_length: usize,
|
|
35
|
+
actual_length: usize,
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
impl Violation for LineTooLong {
|
|
39
|
+
#[derive_message_formats]
|
|
40
|
+
fn message(&self) -> String {
|
|
41
|
+
let Self {
|
|
42
|
+
max_length,
|
|
43
|
+
actual_length,
|
|
44
|
+
} = self;
|
|
45
|
+
format!("line length of {actual_length}, exceeds maximum {max_length}")
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
impl LineTooLong {
|
|
50
|
+
pub fn check(settings: &CheckSettings, source_file: &SourceFile) -> Vec<Diagnostic> {
|
|
51
|
+
let source = source_file.to_source_code();
|
|
52
|
+
let max_length = settings.line_length;
|
|
53
|
+
let mut violations = Vec::new();
|
|
54
|
+
for line in source.text().universal_newlines() {
|
|
55
|
+
// Note: Can't use string.len(), as that gives byte length, not char length
|
|
56
|
+
let actual_length = line.chars().count();
|
|
57
|
+
if actual_length > max_length {
|
|
58
|
+
// Are we ending on a string or comment? If so, we'll allow it through, as it may
|
|
59
|
+
// contain something like a long URL that cannot be reasonably split across multiple
|
|
60
|
+
// lines.
|
|
61
|
+
if regex_is_match!(r#"(["']\w*&?$)|(!.*$)|(^\w*&)"#, line.as_str()) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
// Get the byte range from the first character that oversteps the limit
|
|
65
|
+
// to the end of the line
|
|
66
|
+
let extra_bytes: TextSize = line
|
|
67
|
+
.chars()
|
|
68
|
+
.rev()
|
|
69
|
+
.take(actual_length - max_length)
|
|
70
|
+
.map(TextLen::text_len)
|
|
71
|
+
.sum();
|
|
72
|
+
let range = TextRange::new(line.end() - extra_bytes, line.end());
|
|
73
|
+
violations.push(Diagnostic::new(
|
|
74
|
+
Self {
|
|
75
|
+
max_length,
|
|
76
|
+
actual_length,
|
|
77
|
+
},
|
|
78
|
+
range,
|
|
79
|
+
));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
violations
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -151,14 +151,7 @@ impl AstRule for IncorrectSpaceBeforeComment {
|
|
|
151
151
|
}
|
|
152
152
|
if whitespace < 2 {
|
|
153
153
|
let edit = Edit::insertion(" "[whitespace..].to_string(), comment_start);
|
|
154
|
-
|
|
155
|
-
// characters into the file, and `whitespace` is at most 1
|
|
156
|
-
let span_start = comment_start
|
|
157
|
-
.checked_sub(TextSize::try_from(whitespace).unwrap())
|
|
158
|
-
.unwrap();
|
|
159
|
-
|
|
160
|
-
let span = TextRange::new(span_start, comment_start);
|
|
161
|
-
return some_vec!(Diagnostic::new(Self {}, span).with_fix(Fix::safe_edit(edit)));
|
|
154
|
+
return some_vec!(Diagnostic::from_node(Self {}, node).with_fix(Fix::safe_edit(edit)));
|
|
162
155
|
}
|
|
163
156
|
None
|
|
164
157
|
}
|