opentofu/internal/command
Martin Atkins 70bc432f85 command/views/json: Never generate invalid diagnostic snippet offsets
Because our snippet generator is trying to select whole lines to include
in the snippet, it has some edge cases for odd situations where the
relevant source range starts or ends directly at a newline, which were
previously causing this logic to return out-of-bounds offsets into the
code snippet string.

Although arguably it'd be better for the original diagnostics to report
more reasonable source ranges, it's better for us to report a
slightly-inaccurate snippet than to crash altogether, and so we'll extend
our existing range checks to check both bounds of the string and thus
avoid downstreams having to deal with out-of-bounds indices.

For completeness here I also added some similar logic to the
human-oriented diagnostic formatter, which consumes the result of the
JSON diagnostic builder. That's not really needed with the additional
checks in the JSON diagnostic builder, but it's nice to reinforce that
this code can't panic (in this way, at least) even if its input isn't
valid.
2021-06-28 13:42:28 -07:00
..
arguments commands: terraform add (#28874) 2021-06-17 12:08:37 -04:00
cliconfig Move plugin/ and plugin6/ to internal/plugin{,6}/ 2021-05-17 14:09:07 -07:00
clistate Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
e2etest terraform: use ProtocolVersion from unmanaged providers' reattachConfig to chose the correct PluginClient (#28190) 2021-05-18 10:59:14 -04:00
format command/views/json: Never generate invalid diagnostic snippet offsets 2021-06-28 13:42:28 -07:00
jsonconfig jsonconfig: properly unwind and enumerate references (#28884) 2021-06-14 09:22:22 -04:00
jsonplan json-output: Omit unchanged resource_drift entries 2021-06-17 15:09:16 -04:00
jsonprovider Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
jsonstate update to use typed sensitive marks 2021-06-25 12:49:07 -04:00
testdata terraform: use hcl.MergeBodies instead of configs.MergeBodies for pro… (#29000) 2021-06-25 08:48:47 -04:00
views command/views/json: Never generate invalid diagnostic snippet offsets 2021-06-28 13:42:28 -07:00
webbrowser Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
add_test.go commands: terraform add (#28874) 2021-06-17 12:08:37 -04:00
add.go commands: terraform add (#28874) 2021-06-17 12:08:37 -04:00
apply_destroy_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
apply_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
apply.go Move plans/ to internal/plans/ 2021-05-17 14:09:07 -07:00
autocomplete_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
autocomplete.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
cli_ui_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
cli_ui.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
command_test.go commands: terraform add (#28874) 2021-06-17 12:08:37 -04:00
command.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
console_interactive_solaris.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
console_interactive.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
console_test.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
console.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
flag_kv_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
flag_kv.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
fmt_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
fmt.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
get_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
get.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
graph_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
graph.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
hook_module_install.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import_test.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
import.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
init_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
init.go cli: Add -ignore-remote-version flag for init 2021-06-02 15:30:05 -04:00
login_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
login.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
logout_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
logout.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
meta_backend_migrate.go cli: Fix state migration version check 2021-06-02 15:23:56 -04:00
meta_backend_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
meta_backend.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
meta_config.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
meta_dependencies.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
meta_new.go Move plans/ to internal/plans/ 2021-05-17 14:09:07 -07:00
meta_providers.go terraform: use ProtocolVersion from unmanaged providers' reattachConfig to chose the correct PluginClient (#28190) 2021-05-18 10:59:14 -04:00
meta_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
meta_vars.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
meta.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
output_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
output.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
plan_test.go terraform: use hcl.MergeBodies instead of configs.MergeBodies for pro… (#29000) 2021-06-25 08:48:47 -04:00
plan.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
plugins_lock_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
plugins_lock.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
plugins_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
plugins.go Move plugin/ and plugin6/ to internal/plugin{,6}/ 2021-05-17 14:09:07 -07:00
providers_lock_test.go providers subcommand tests (#28744) 2021-05-19 12:56:16 -04:00
providers_lock.go providers subcommand tests (#28744) 2021-05-19 12:56:16 -04:00
providers_mirror_test.go providers subcommand tests (#28744) 2021-05-19 12:56:16 -04:00
providers_mirror.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
providers_schema_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
providers_schema.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
providers_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
providers.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
push.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
refresh_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
refresh.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
show_test.go json-output: Omit unchanged resource_drift entries 2021-06-17 15:09:16 -04:00
show.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_command.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state_list_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state_list.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_meta.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_mv_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_mv.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_pull_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state_pull.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_push_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_push.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_replace_provider_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_replace_provider.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_rm_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_rm.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state_show_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_show.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
taint_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
taint.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
test_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_input_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_input.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
unlock_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
unlock.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
untaint_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
untaint.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
validate_test.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
validate.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
version_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
version.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
workspace_command_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
workspace_command.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
workspace_delete.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
workspace_list.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
workspace_new.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
workspace_select.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
workspace_show.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00