ZIm/crates
Daniel Banck bbc4ed9cab
Add language server for Terraform (#7657)
* Depends on: https://github.com/zed-industries/zed/pull/7449
* Closes: https://github.com/zed-industries/zed/issues/5098

---

This PR adds support for downloading and running the Terraform language
server for `*.tf` and `*.tfvars` files. I've verified that the code
works for `aarch64` and `x86_64` macOS. Downloading new language server
versions on release also works as expected.

Furthermore this PR adds:
- A short docs page for Terraform
- An icon for `*.tf` and `*.tfvars` files

## UX

### File Icons

![CleanShot 2024-02-10 at 23 10
13@2x](https://github.com/zed-industries/zed/assets/45985/6f7cd4f0-e94c-4cfb-b3e9-64b0e33c8a43)

### Completion

![CleanShot 2024-02-13 at 20 54
15@2x](https://github.com/zed-industries/zed/assets/45985/18fafa3b-cb50-4f51-b071-ca9eee3521a6)

### Hover

![CleanShot 2024-02-13 at 20 53
40@2x](https://github.com/zed-industries/zed/assets/45985/4d215315-e019-4d3d-b23c-2691db1803e3)

### Go to definition

![2024-02-13 20 56
28](https://github.com/zed-industries/zed/assets/45985/c21d562f-eb0b-4df9-9175-c53b9923344e)

### Formatting

![2024-02-13 20 59
06](https://github.com/zed-industries/zed/assets/45985/0cdf4ec5-e231-4c8a-a257-cae30a8edc8b)

and more!

## Known issue(s)

@fdionisi discovered that sometimes completion results are inserted with
the wrong indentation. Or rather, if you look closely, they are inserted
with the correct indentation and then something shifts the closing `}`.
I don't think this is related to LSP support and can be addressed in a
separate PR.

![2024-02-13 20 58
16](https://github.com/zed-industries/zed/assets/45985/94a118dd-95f5-4e38-8f83-75fec7a0dddf)

Release Notes:

- Add language server support for Terraform
([#5098](https://github.com/zed-industries/zed/issues/5098)).

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2024-02-26 17:08:49 -08:00
..
activity_indicator Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
ai Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
assets chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
assistant Add telemetry events backend for collab (#8220) 2024-02-23 11:13:28 -05:00
audio Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
auto_update Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
breadcrumbs Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
call Clean up dependencies of call,lsp,project,settings,vim,welcome, and workspace (#8330) 2024-02-25 00:41:28 +02:00
channel unique channel names (#8439) 2024-02-26 10:07:22 -07:00
cli Respect user preferences when formatting timestamp (#7994) 2024-02-23 19:18:06 -07:00
client Hoist chrono dependency to workspace level (#8414) 2024-02-25 18:52:59 -05:00
clock Add SystemClock (#8239) 2024-02-22 22:28:08 -05:00
collab fix migration (#8451) 2024-02-26 13:50:26 -07:00
collab_ui Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
collections gpui: Add Global marker trait (#7095) 2024-01-30 14:08:20 -05:00
color Hoist itertools dependency to workspace level (#8417) 2024-02-25 20:37:52 -05:00
command_palette Add command_palette_hooks crate (#8398) 2024-02-25 13:21:20 -05:00
command_palette_hooks Add command_palette_hooks crate (#8398) 2024-02-25 13:21:20 -05:00
copilot Add command_palette_hooks crate (#8398) 2024-02-25 13:21:20 -05:00
copilot_ui Add cancel button on GitHub Copilot actions (#7850) 2024-02-16 10:45:55 -05:00
db Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
diagnostics chore: Extract languages from zed crate (#8270) 2024-02-23 15:56:08 +01:00
editor Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
extension Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
extensions_ui Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
feature_flags Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
feedback Rename ZedHttpClient for clarity (#8320) 2024-02-24 00:07:24 -05:00
file_finder Clean up deps for file_finder, language_selector, task, rpc, storybook (#8353) 2024-02-25 10:10:07 +02:00
fs Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
fsevent Translate notify::Event to fsevent::Event on linux (#7545) 2024-02-08 08:35:37 -08:00
fuzzy chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
git Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
go_to_line Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
gpui Mention possible run options in the task modal placeholder (#8449) 2024-02-27 00:04:56 +02:00
gpui_macros Switch LSP prompts to use a non-blocking toast (#8312) 2024-02-23 15:18:32 -08:00
install_cli Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
journal Hoist chrono dependency to workspace level (#8414) 2024-02-25 18:52:59 -05:00
language chore: Fix warning from 1.77 rustc (#8265) 2024-02-26 21:51:45 +01:00
language_selector Clean up deps for file_finder, language_selector, task, rpc, storybook (#8353) 2024-02-25 10:10:07 +02:00
language_tools Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
languages Add language server for Terraform (#7657) 2024-02-26 17:08:49 -08:00
live_kit_client Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
live_kit_server Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
lsp Clean up dependencies of call,lsp,project,settings,vim,welcome, and workspace (#8330) 2024-02-25 00:41:28 +02:00
markdown_preview Support rendering strikethrough text in markdown (#8287) 2024-02-26 21:04:48 +02:00
media Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
menu chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
multi_buffer Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
node_runtime Hoist languages crate's dependencies to the workspace level (#8394) 2024-02-25 12:02:59 -05:00
notifications chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
outline Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
picker Allow using context in the placeholder_text method 2024-02-25 00:08:57 +02:00
prettier Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
project Extract project_core out of project (#8438) 2024-02-26 22:09:22 +01:00
project_core Extract project_core out of project (#8438) 2024-02-26 22:09:22 +01:00
project_panel Add support of auto folded directories (#7674) 2024-02-26 10:01:59 -08:00
project_symbols Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
quick_action_bar Hide Inline Assist button if assistant.button is disabled (#7932) 2024-02-18 08:14:08 +02:00
recent_projects Mention possible run options in the task modal placeholder (#8449) 2024-02-27 00:04:56 +02:00
refineable Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
release_channel chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
rich_text Support rendering strikethrough text in markdown (#8287) 2024-02-26 21:04:48 +02:00
rope Add documentation to many core editor types (#7919) 2024-02-17 09:03:05 -07:00
rpc Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
search Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
semantic_index Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
settings Clean up dependencies of call,lsp,project,settings,vim,welcome, and workspace (#8330) 2024-02-25 00:41:28 +02:00
snippet Clean up Cargo.toml files (#7044) 2024-01-29 23:47:20 -05:00
sqlez Use collections::{HashMap, HashSet} instead of its std:: counterpart (#7502) 2024-02-07 19:06:03 +02:00
sqlez_macros Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
story chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
storybook Clean up deps for file_finder, language_selector, task, rpc, storybook (#8353) 2024-02-25 10:10:07 +02:00
sum_tree Add documentation to many core editor types (#7919) 2024-02-17 09:03:05 -07:00
task Clean up deps for file_finder, language_selector, task, rpc, storybook (#8353) 2024-02-25 10:10:07 +02:00
tasks_ui Mention possible run options in the task modal placeholder (#8449) 2024-02-27 00:04:56 +02:00
telemetry_events Add telemetry events backend for collab (#8220) 2024-02-23 11:13:28 -05:00
terminal Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
terminal_view Hoist itertools dependency to workspace level (#8417) 2024-02-25 20:37:52 -05:00
text Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
theme Hoist itertools dependency to workspace level (#8417) 2024-02-25 20:37:52 -05:00
theme_importer theme_importer: Add --output flag for outputting the theme to a file (#7486) 2024-02-07 16:23:36 -05:00
theme_selector Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
time_format Fix unused warning in time_format 2024-02-24 00:04:00 -08:00
ui Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
util Rename ZedHttpClient for clarity (#8320) 2024-02-24 00:07:24 -05:00
vcs_menu Allow using context in the placeholder_text method 2024-02-25 00:08:57 +02:00
vim Add command_palette_hooks crate (#8398) 2024-02-25 13:21:20 -05:00
welcome Clean up dependencies of call,lsp,project,settings,vim,welcome, and workspace (#8330) 2024-02-25 00:41:28 +02:00
workspace Open a new file on double-clicking the tab bar (#8431) 2024-02-26 14:07:04 -05:00
zed Clean up many small dependencies (part 3) (#8425) 2024-02-26 11:08:57 +02:00
zed_actions chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00