diff --git a/.fortls.json b/.fortls.json new file mode 100644 index 0000000000..a4fd1e84ad --- /dev/null +++ b/.fortls.json @@ -0,0 +1,94 @@ +{ + "source_dirs": [ + "src/", + "src/common/", + "src/simulation/", + "src/pre_process/", + "src/post_process/" + ], + "excl_paths": [ + "benchmarks/", + "examples/", + "tests/", + "misc/", + "src/pre_process/include/2dHardcodedIC.fpp", + "src/pre_process/include/3dHardcodedIC.fpp", + "src/pre_process/include/ExtrusionHardcodedIC.fpp" + ], + "include_dirs": [ + "src/common/include/", + "src/simulation/include/", + "src/pre_process/include/", + "src/post_process/include/" + ], + "pp_suffixes": [".fpp"], + "pp_defs": { + "MFC": 1, + "MFC_DOUBLE_PRECISION": 1 + }, + "lowercase_intrinsics": true, + "debug_log": false, + "disable_diagnostics": true, + "use_signature_help": true, + "variable_hover": true, + "hover_signature": true, + "enable_code_actions": true, + "mod_dirs": [ + "build/pre_process/", + "build/simulation/", + "build/post_process/", + "build/common/" + ], + "ext_mod_dirs": [ + "/usr/include/", + "/usr/local/include/", + "/opt/homebrew/include/" + ], + "implicit_external_mods": [ + "mpi", + "m_thermochem", + "hipfort", + "hipfort_check", + "hipfort_hipfft", + "cutensorex", + "silo_f9x", + "m_model" + ], + "disable_diagnostics_for_external_modules": true, + "max_line_length": 132, + "symbol_skip_mem": [ + "mpi_*" + ], + "disable_var_diagnostics": true, + "disable_fypp": false, + "fypp_strict": false, + "error_suppression_list": [ + "include-not-found", + "mod-not-found", + "var-masking", + "declared-twice", + "no-matching-declaration", + "invalid-parent", + "parsing-error", + "fypp-error", + "preprocessor-error", + "syntax-error", + "semantic-error", + "type-error", + "undefined-variable", + "line-too-long" + ], + "incremental_sync": false, + "debug_parser": false, + "skip_parse_errors": true, + "disable_parser": [ + "src/post_process/m_data_output.fpp", + "src/pre_process/include/ExtrusionHardcodedIC.fpp", + "src/pre_process/m_checker.fpp", + "src/pre_process/include/2dHardcodedIC.fpp", + "src/pre_process/include/3dHardcodedIC.fpp", + "src/simulation/m_qbmm.fpp", + "src/common/m_variables_conversion.fpp", + "src/simulation/m_global_parameters.fpp" + ] +} \ No newline at end of file diff --git a/.fortlsrc b/.fortlsrc new file mode 100644 index 0000000000..276e712ac5 --- /dev/null +++ b/.fortlsrc @@ -0,0 +1,96 @@ +{ + "source_dirs": [ + "src/", + "src/common/", + "src/simulation/", + "src/pre_process/", + "src/post_process/" + ], + "excl_paths": [ + "benchmarks/", + "examples/", + "tests/", + "misc/", + "src/pre_process/include/2dHardcodedIC.fpp", + "src/pre_process/include/3dHardcodedIC.fpp", + "src/pre_process/include/ExtrusionHardcodedIC.fpp", + "**/m_nvtx*", + "**/syscheck.fpp" + ], + "include_dirs": [ + "src/common/include/", + "src/simulation/include/", + "src/pre_process/include/", + "src/post_process/include/" + ], + "pp_suffixes": [".fpp"], + "pp_defs": { + "MFC": 1, + "MFC_DOUBLE_PRECISION": 1 + }, + "lowercase_intrinsics": true, + "debug_log": true, + "disable_diagnostics": false, + "use_signature_help": true, + "variable_hover": true, + "hover_signature": true, + "enable_code_actions": true, + "mod_dirs": [ + "build/pre_process/", + "build/simulation/", + "build/post_process/", + "build/common/" + ], + "ext_mod_dirs": [ + "/usr/include/", + "/usr/local/include/", + "/opt/homebrew/include/" + ], + "implicit_external_mods": [ + "mpi", + "m_thermochem", + "m_variables_conversion", + "hipfort", + "hipfort_check", + "hipfort_hipfft", + "cutensorex", + "silo_f9x", + "m_model" + ], + "disable_diagnostics_for_external_modules": true, + "max_line_length": -1, + "max_comment_line_length": -1, + "symbol_skip_mem": [ + "mpi_*" + ], + "disable_var_diagnostics": false, + "disable_fypp": false, + "fypp_strict": false, + "error_suppression_list": [ + "include-not-found", + "mod-not-found", + "module-not-found", + "declared-twice", + "no-matching-declaration", + "invalid-parent", + "parsing-error", + "fypp-error", + "preprocessor-error", + "implicit-type" + ], + "incremental_sync": false, + "debug_parser": false, + "skip_parse_errors": true, + "disable_parser": [ + "src/post_process/m_data_output.fpp", + "src/pre_process/include/ExtrusionHardcodedIC.fpp", + "src/pre_process/m_checker.fpp", + "src/pre_process/include/2dHardcodedIC.fpp", + "src/pre_process/include/3dHardcodedIC.fpp", + "src/simulation/m_qbmm.fpp", + "src/common/m_variables_conversion.fpp", + "src/simulation/m_global_parameters.fpp", + "**/m_nvtx*", + "**/syscheck.fpp" + ] +} \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 68fe8d9259..93ab326894 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,5 +1,6 @@ { - "recommendations": [ + "recommendations": [], + "unwantedRecommendations": [ "fortran-lang.linter-gfortran" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 8eb2c50312..ab9cd6f770 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { "editor.detectIndentation": false, "editor.insertSpaces": true, - "editor.tabSize": 4, + "editor.tabSize": 2, "editor.rulers": [ 80, 120 ], "files.exclude": { "**/.git": true, @@ -9,6 +9,7 @@ "**/build": true, "**/*.o": true, "**/*.mod": true, + "**/misc/**": true }, "cmake.configureOnOpen": false, @@ -17,15 +18,78 @@ "files.associations": { "*.f90": "FortranFreeForm", - "*.fpp": "FortranFreeForm", + "*.fpp": "FortranFreeForm" }, - "fortran.preferredCase": "lowercase", - "fortran.linter.includePaths": [ - "${workspacefolder}/src/${fileDirname}", - "${workspacefolder}/src/${fileDirname}/include", - "${workspacefolder}/src/common", - "${workspacefolder}/src/common/include" - ], - "fortran.linter.extraArgs": ["--free-form"], + // Disable the extension entirely at workspace level + "extensions.ignoreRecommendations": true, + "extensions.autoCheckUpdates": false, + + "fortran.preferredCase": "lowercase", + + // Disable built-in linter completely but enable fortls + "fortran.disabled": false, + "fortran.linter.enabled": false, + "fortran.linter.gfortran.enabled": false, + "fortran.linter.compiler": "", + "fortran.linter.diagnostics": false, + "fortran.linter.gfortran.diagnostics": false, + "fortran.linter.modOutput": "", + "fortran.linter.includePaths": [], + "fortran.linter.extraArgs": [], + "fortran.provideDiagnostics": false, + "fortran.provideCompletion": false, + "fortran.provideHover": false, + "fortran.provideSymbols": false, + "fortran.validation.enabled": false, + "fortran.validation.diagnostics": false, + "fortran.symbols": false, + "fortran.hover": false, + + // Enable ONLY fortls language server + "fortran.enableLanguageServer": true, + "fortran.languageServer": "fortls", + "fortran.fortls.disabled": false, + "fortran.fortls.path": "fortls", + + // Try to disable any built-in language features + "editor.semanticHighlighting.enabled": false, + "editor.suggest.showWords": false, + "editor.suggest.showSnippets": false, + + "[fortran]": { + "editor.tabSize": 2, + "editor.semanticHighlighting.enabled": false + }, + "[fortran-free]": { + "editor.tabSize": 2, + "editor.semanticHighlighting.enabled": false + }, + "[FortranFreeForm]": { + "editor.tabSize": 2, + "editor.semanticHighlighting.enabled": false + }, + + // File exclusions - multiple layers of exclusion + "files.watcherExclude": { + "**/misc/**": true, + "**/benchmarks/**": true, + "**/examples/**": true, + "**/tests/**": true, + "**/build/**": true, + "**/m_nvtx*": true, + "**/syscheck.fpp": true + }, + + "search.exclude": { + "**/misc/**": true, + "**/benchmarks/**": true, + "**/examples/**": true, + "**/tests/**": true, + "**/build/**": true + }, + + // Keep problems panel available + "problems.showOn": "toggle", + "problems.defaultViewMode": "list" }