
As suggested in https://github.com/zed-industries/zed/pull/34418, this proposes various changes to language configs to make block comments and doc-block-style comments more similar. In doing so, it introduces some breaking changes into the extension schema. This change is needed to support the changes I'm working on in #34418, to be able to support `rewrap` in block comments like `/* really long comment ... */`. As is, we can do this in C-style doc-block comments (eg `/** ... */`) because of the config in `documentation`, but we can't do this in regular block comments because we lack the info about what the line prefix and indentation should be. And while I was here, I did various other clean-ups, many of which feel nice but are optional. I would love special attention on the changes to the schema, version and related changes; I'm totally unfamiliar with that part of Zed. **Summary of changes** - break: changes type of `block_comment` to same type as `documentation_comment` (**this is the important change**) - break: rename `documentation` to `documentation_comment` (optional, but improves consistency w/ `line_comments` and `block_comment`) - break/refactor?: removes some whitespace in the declaration of `block_comment` delimiters (optional, may break things, need input; some langs had no spaces, others did) - refactor: change `tab_size` from `NonZeroU32` to just a `u32` (some block comments don't seem to need/want indent past the initial delimiter, so we need this be 0 sometimes) - refactor: moves the `documentation_comment` declarations to appear next to `block_comment`, rearranges the order of the fields in the TOML for `documentation_comment`, rename backing `struct` (all optional) **Future scope** I believe that this will also allow us to extend regular block comments on newline – as we do doc-block comments – but I haven't looked into this yet. (eg, in JS try pressing enter in both of these: `/* */` and `/** */`; the latter should extend w/ a `*` prefixed line, while the former does not.) Release Notes: - BREAKING CHANGE: update extension schema version from 1 to 2, change format of `block_comment` and rename `documentation_comment` /cc @smitbarmase
98 lines
2.6 KiB
TOML
98 lines
2.6 KiB
TOML
[package]
|
|
name = "language"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
publish.workspace = true
|
|
license = "GPL-3.0-or-later"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[lib]
|
|
path = "src/language.rs"
|
|
doctest = false
|
|
|
|
[features]
|
|
test-support = [
|
|
"rand",
|
|
"collections/test-support",
|
|
"lsp/test-support",
|
|
"text/test-support",
|
|
"tree-sitter-rust",
|
|
"tree-sitter-python",
|
|
"tree-sitter-rust",
|
|
"tree-sitter-typescript",
|
|
"settings/test-support",
|
|
"util/test-support",
|
|
]
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
async-trait.workspace = true
|
|
clock.workspace = true
|
|
collections.workspace = true
|
|
ec4rs.workspace = true
|
|
fs.workspace = true
|
|
futures.workspace = true
|
|
fuzzy.workspace = true
|
|
globset.workspace = true
|
|
gpui.workspace = true
|
|
http_client.workspace = true
|
|
imara-diff.workspace = true
|
|
inventory.workspace = true
|
|
itertools.workspace = true
|
|
log.workspace = true
|
|
lsp.workspace = true
|
|
parking_lot.workspace = true
|
|
postage.workspace = true
|
|
rand = { workspace = true, optional = true }
|
|
regex.workspace = true
|
|
rpc.workspace = true
|
|
schemars.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
settings.workspace = true
|
|
shellexpand.workspace = true
|
|
smallvec.workspace = true
|
|
smol.workspace = true
|
|
streaming-iterator.workspace = true
|
|
strsim.workspace = true
|
|
sum_tree.workspace = true
|
|
task.workspace = true
|
|
text.workspace = true
|
|
theme.workspace = true
|
|
tree-sitter-python = { workspace = true, optional = true }
|
|
tree-sitter-rust = { workspace = true, optional = true }
|
|
tree-sitter-typescript = { workspace = true, optional = true }
|
|
tree-sitter.workspace = true
|
|
unicase = "2.6"
|
|
util.workspace = true
|
|
watch.workspace = true
|
|
workspace-hack.workspace = true
|
|
diffy = "0.4.2"
|
|
|
|
[dev-dependencies]
|
|
collections = { workspace = true, features = ["test-support"] }
|
|
ctor.workspace = true
|
|
gpui = { workspace = true, features = ["test-support"] }
|
|
indoc.workspace = true
|
|
lsp = { workspace = true, features = ["test-support"] }
|
|
pretty_assertions.workspace = true
|
|
rand.workspace = true
|
|
settings = { workspace = true, features = ["test-support"] }
|
|
text = { workspace = true, features = ["test-support"] }
|
|
http_client = { workspace = true, features = ["test-support"] }
|
|
tree-sitter-elixir.workspace = true
|
|
tree-sitter-embedded-template.workspace = true
|
|
tree-sitter-heex.workspace = true
|
|
tree-sitter-html.workspace = true
|
|
tree-sitter-json.workspace = true
|
|
tree-sitter-md.workspace = true
|
|
tree-sitter-python.workspace = true
|
|
tree-sitter-ruby.workspace = true
|
|
tree-sitter-rust.workspace = true
|
|
tree-sitter-typescript.workspace = true
|
|
toml.workspace = true
|
|
unindent.workspace = true
|
|
util = { workspace = true, features = ["test-support"] }
|
|
zlog.workspace = true
|