gleam: Clean up slash commands in preparation for release (#16232)
This PR cleans up the slash command functionality in preparation for an upcoming release: - Removed arguments to `/gleam-project` that were just used as an example - Removed `/gleam-docs` in favor of `/docs` with the `gleam-hexdocs` provider - Pulled a list of all Gleam packages to use as suggestions Release Notes: - N/A
This commit is contained in:
parent
6713e40875
commit
6365000b68
3 changed files with 597 additions and 82 deletions
|
@ -19,9 +19,4 @@ description = "Returns information about the current Gleam project."
|
||||||
requires_argument = false
|
requires_argument = false
|
||||||
tooltip_text = "Insert Gleam project data"
|
tooltip_text = "Insert Gleam project data"
|
||||||
|
|
||||||
[slash_commands.gleam-docs]
|
|
||||||
description = "Returns Gleam docs."
|
|
||||||
requires_argument = true
|
|
||||||
tooltip_text = "Insert Gleam docs"
|
|
||||||
|
|
||||||
[indexed_docs_providers.gleam-hexdocs]
|
[indexed_docs_providers.gleam-hexdocs]
|
||||||
|
|
581
extensions/gleam/packages.txt
Normal file
581
extensions/gleam/packages.txt
Normal file
|
@ -0,0 +1,581 @@
|
||||||
|
# The list of Gleam packages.
|
||||||
|
# Sourced from `https://packages.gleam.run/packages.sqlite`.
|
||||||
|
act
|
||||||
|
adglent
|
||||||
|
ag_html
|
||||||
|
aham
|
||||||
|
akaridb
|
||||||
|
alanttest1
|
||||||
|
alpaca
|
||||||
|
amf0
|
||||||
|
amnesiac
|
||||||
|
antigone
|
||||||
|
apollo
|
||||||
|
aragorn2
|
||||||
|
arcana_signals
|
||||||
|
arctic
|
||||||
|
argamak
|
||||||
|
argus
|
||||||
|
argv
|
||||||
|
ask
|
||||||
|
asterix
|
||||||
|
atomic_array
|
||||||
|
aws4_request
|
||||||
|
bare_package1
|
||||||
|
bare_package_one
|
||||||
|
bare_package_two
|
||||||
|
based
|
||||||
|
based_pg
|
||||||
|
based_sqlite
|
||||||
|
beecrypt
|
||||||
|
bidict
|
||||||
|
bigben
|
||||||
|
bigi
|
||||||
|
binary_search
|
||||||
|
birdie
|
||||||
|
birl
|
||||||
|
biscotto
|
||||||
|
bison
|
||||||
|
blah
|
||||||
|
blask
|
||||||
|
bliss
|
||||||
|
bravo
|
||||||
|
bungle
|
||||||
|
bytesize
|
||||||
|
cactus
|
||||||
|
cake
|
||||||
|
carpenter
|
||||||
|
catppuccin
|
||||||
|
cave3dplus
|
||||||
|
cgi
|
||||||
|
chatbot
|
||||||
|
check_maybe_div_by_zero
|
||||||
|
chip
|
||||||
|
chomp
|
||||||
|
chrobot
|
||||||
|
chromatic
|
||||||
|
classify
|
||||||
|
cleam
|
||||||
|
collatz
|
||||||
|
colored
|
||||||
|
colours
|
||||||
|
comet
|
||||||
|
commonmark
|
||||||
|
conllu
|
||||||
|
context_fp_gleam
|
||||||
|
conversation
|
||||||
|
cors_builder
|
||||||
|
cosepo
|
||||||
|
cosmos
|
||||||
|
counter
|
||||||
|
crabbucket_pgo
|
||||||
|
crabbucket_redis
|
||||||
|
crossbar
|
||||||
|
css_select
|
||||||
|
cymbal
|
||||||
|
dahlia
|
||||||
|
dbots
|
||||||
|
decepticon
|
||||||
|
decipher
|
||||||
|
decode
|
||||||
|
dedent
|
||||||
|
defangle
|
||||||
|
defer_g
|
||||||
|
delay
|
||||||
|
dew
|
||||||
|
dig
|
||||||
|
discord_gleam
|
||||||
|
domu
|
||||||
|
dot_env
|
||||||
|
dotenv_gleam
|
||||||
|
dove
|
||||||
|
ecoji
|
||||||
|
edit_distance
|
||||||
|
efetch
|
||||||
|
email
|
||||||
|
embeds
|
||||||
|
emel
|
||||||
|
envoy
|
||||||
|
esgleam
|
||||||
|
espresso
|
||||||
|
espresso_pgo_wrapper
|
||||||
|
eval
|
||||||
|
event_hub
|
||||||
|
eventsourcing
|
||||||
|
eventsourcing_postgres
|
||||||
|
eventsourcing_sqlite
|
||||||
|
exception
|
||||||
|
exercism_test_runner
|
||||||
|
facet
|
||||||
|
facquest
|
||||||
|
falala
|
||||||
|
falcon
|
||||||
|
feather
|
||||||
|
fetch_event
|
||||||
|
ffmpeg
|
||||||
|
fibo
|
||||||
|
file_streams
|
||||||
|
filepath
|
||||||
|
filespy
|
||||||
|
finch_gleam
|
||||||
|
first_gleam_publish_package
|
||||||
|
flash
|
||||||
|
fluoresce
|
||||||
|
fmglee
|
||||||
|
fmt
|
||||||
|
for_the_crows
|
||||||
|
form_coder
|
||||||
|
formal
|
||||||
|
fp
|
||||||
|
fp2
|
||||||
|
fp2_gleam
|
||||||
|
fp_gl
|
||||||
|
fresnel
|
||||||
|
fswalk
|
||||||
|
functx
|
||||||
|
funtil
|
||||||
|
gacache
|
||||||
|
galant
|
||||||
|
gap
|
||||||
|
garnet_tool
|
||||||
|
gary
|
||||||
|
gbase32_clockwork
|
||||||
|
gcalc
|
||||||
|
gchess
|
||||||
|
gemqtt
|
||||||
|
gen_core_erlang
|
||||||
|
gen_gleam
|
||||||
|
geny
|
||||||
|
germinal
|
||||||
|
ggleam
|
||||||
|
gild
|
||||||
|
gild_frontend
|
||||||
|
gip
|
||||||
|
gjwt
|
||||||
|
gl
|
||||||
|
glacier
|
||||||
|
glacier_gleeunit
|
||||||
|
gladvent
|
||||||
|
glailglind
|
||||||
|
glam
|
||||||
|
glame
|
||||||
|
glaml
|
||||||
|
glance
|
||||||
|
glance_printer
|
||||||
|
glanoid
|
||||||
|
glare
|
||||||
|
glatch
|
||||||
|
glats
|
||||||
|
glatus
|
||||||
|
glcode
|
||||||
|
gleaf
|
||||||
|
gleam
|
||||||
|
gleam_bbmustache
|
||||||
|
gleam_bitwise
|
||||||
|
gleam_bson
|
||||||
|
gleam_community_ansi
|
||||||
|
gleam_community_colour
|
||||||
|
gleam_community_maths
|
||||||
|
gleam_community_path
|
||||||
|
gleam_cors
|
||||||
|
gleam_cowboy
|
||||||
|
gleam_cowboy_websockets
|
||||||
|
gleam_crypto
|
||||||
|
gleam_deno
|
||||||
|
gleam_dotenv
|
||||||
|
gleam_elli
|
||||||
|
gleam_email
|
||||||
|
gleam_erlang
|
||||||
|
gleam_erlexec
|
||||||
|
gleam_fetch
|
||||||
|
gleam_gun
|
||||||
|
gleam_hackney
|
||||||
|
gleam_hexpm
|
||||||
|
gleam_html
|
||||||
|
gleam_http
|
||||||
|
gleam_httpc
|
||||||
|
gleam_javascript
|
||||||
|
gleam_json
|
||||||
|
gleam_module_javascript_test
|
||||||
|
gleam_mongo
|
||||||
|
gleam_nodejs
|
||||||
|
gleam_os_mon
|
||||||
|
gleam_otp
|
||||||
|
gleam_package_interface
|
||||||
|
gleam_pgo
|
||||||
|
gleam_qs
|
||||||
|
gleam_sendgrid
|
||||||
|
gleam_stats
|
||||||
|
gleam_stdlib
|
||||||
|
gleam_synapses
|
||||||
|
gleam_tailwind
|
||||||
|
gleam_tcp
|
||||||
|
gleam_test
|
||||||
|
gleam_toml
|
||||||
|
gleam_xml
|
||||||
|
gleam_yaml
|
||||||
|
gleam_zlists
|
||||||
|
gleambox
|
||||||
|
gleamix
|
||||||
|
gleamql
|
||||||
|
gleamsver
|
||||||
|
gleamy_bench
|
||||||
|
gleamy_structures
|
||||||
|
gleamyshell
|
||||||
|
gleanix
|
||||||
|
glearray
|
||||||
|
gleastsq
|
||||||
|
gleative
|
||||||
|
gleb128
|
||||||
|
glector
|
||||||
|
gledis
|
||||||
|
gledo
|
||||||
|
gleebor
|
||||||
|
gleenix
|
||||||
|
gleepl
|
||||||
|
gleescript
|
||||||
|
gleesend
|
||||||
|
gleeunit
|
||||||
|
gleez
|
||||||
|
gleither
|
||||||
|
glemini
|
||||||
|
glemo
|
||||||
|
glemplate
|
||||||
|
glemtext
|
||||||
|
glen
|
||||||
|
glen_node
|
||||||
|
glency
|
||||||
|
glentities
|
||||||
|
glenv
|
||||||
|
glenvy
|
||||||
|
glerd
|
||||||
|
glerd_json
|
||||||
|
glerd_valid
|
||||||
|
glerm
|
||||||
|
gleroglero
|
||||||
|
glesha
|
||||||
|
glesha2
|
||||||
|
glevatar
|
||||||
|
glevenshtein
|
||||||
|
glex
|
||||||
|
glexec
|
||||||
|
glexer
|
||||||
|
glexif
|
||||||
|
glib
|
||||||
|
gliberapay
|
||||||
|
glibsql
|
||||||
|
gliew
|
||||||
|
glimiter
|
||||||
|
glimmer
|
||||||
|
glimt
|
||||||
|
gling
|
||||||
|
glint
|
||||||
|
glisbn
|
||||||
|
glisdigit
|
||||||
|
glisten
|
||||||
|
glistix_gleeunit
|
||||||
|
glistix_nix
|
||||||
|
glitch
|
||||||
|
glitter
|
||||||
|
glittr
|
||||||
|
glitzer
|
||||||
|
gliua
|
||||||
|
globe
|
||||||
|
glog
|
||||||
|
glome
|
||||||
|
gloml
|
||||||
|
glomp
|
||||||
|
gloom
|
||||||
|
glormat
|
||||||
|
gloss
|
||||||
|
glotel
|
||||||
|
glove
|
||||||
|
glow
|
||||||
|
glow_auth
|
||||||
|
glubs
|
||||||
|
glubsub
|
||||||
|
glucose
|
||||||
|
glue
|
||||||
|
gluid
|
||||||
|
gluon
|
||||||
|
gluple
|
||||||
|
glv8
|
||||||
|
glx
|
||||||
|
glychee
|
||||||
|
glyph
|
||||||
|
glyph_codegen
|
||||||
|
glzoneinfo
|
||||||
|
gmysql
|
||||||
|
go_over
|
||||||
|
gopenai
|
||||||
|
gpsd_json
|
||||||
|
gpxb
|
||||||
|
grammy
|
||||||
|
gramps
|
||||||
|
graph
|
||||||
|
grille_pain
|
||||||
|
gripe
|
||||||
|
gserde
|
||||||
|
gstripe
|
||||||
|
gsv
|
||||||
|
gtempo
|
||||||
|
gts
|
||||||
|
gtui
|
||||||
|
gu
|
||||||
|
gwitch
|
||||||
|
gwr
|
||||||
|
gwt
|
||||||
|
gxid
|
||||||
|
gzlib
|
||||||
|
halo
|
||||||
|
handles
|
||||||
|
hardcache
|
||||||
|
hello_joe
|
||||||
|
howdy
|
||||||
|
howdy_authentication_cookies
|
||||||
|
howdy_uuid
|
||||||
|
htmb
|
||||||
|
htmgrrrl
|
||||||
|
html_components
|
||||||
|
html_dsl
|
||||||
|
html_lustre_converter
|
||||||
|
html_parser
|
||||||
|
htmz
|
||||||
|
httpp
|
||||||
|
hug
|
||||||
|
humanise
|
||||||
|
hyphenation
|
||||||
|
ids
|
||||||
|
ieee_float
|
||||||
|
illustrious
|
||||||
|
immutable_lru
|
||||||
|
integer_complexity
|
||||||
|
ior
|
||||||
|
iox
|
||||||
|
iso_8859
|
||||||
|
ivy
|
||||||
|
jackson
|
||||||
|
jasper
|
||||||
|
javascript_dom_parser
|
||||||
|
jbs
|
||||||
|
jot
|
||||||
|
json_canvas
|
||||||
|
juno
|
||||||
|
justin
|
||||||
|
keccak_gleam
|
||||||
|
kick
|
||||||
|
kielet
|
||||||
|
kirala_bbmarkdown
|
||||||
|
kirala_l4u
|
||||||
|
kirala_markdown
|
||||||
|
kreator
|
||||||
|
libsql
|
||||||
|
lite_fs
|
||||||
|
logging
|
||||||
|
lotta
|
||||||
|
lumi
|
||||||
|
lustre
|
||||||
|
lustre_animation
|
||||||
|
lustre_carousel
|
||||||
|
lustre_dev_tools
|
||||||
|
lustre_hash_state
|
||||||
|
lustre_http
|
||||||
|
lustre_hx
|
||||||
|
lustre_limiter
|
||||||
|
lustre_routed
|
||||||
|
lustre_ssg
|
||||||
|
lustre_transition
|
||||||
|
lustre_ui
|
||||||
|
lustre_virtual_list
|
||||||
|
lustre_websocket
|
||||||
|
lzf_gleam
|
||||||
|
marceau
|
||||||
|
mat
|
||||||
|
meadow
|
||||||
|
melon
|
||||||
|
midas
|
||||||
|
migrant
|
||||||
|
mineflayer
|
||||||
|
minigen
|
||||||
|
mist
|
||||||
|
mockth
|
||||||
|
modem
|
||||||
|
monies
|
||||||
|
morse_code_translator
|
||||||
|
mote
|
||||||
|
mug
|
||||||
|
mumu
|
||||||
|
mungo
|
||||||
|
nakai
|
||||||
|
nanoworker
|
||||||
|
nbeet
|
||||||
|
nerf
|
||||||
|
nessie
|
||||||
|
nessie_cluster
|
||||||
|
ngs
|
||||||
|
nibble
|
||||||
|
nimiq_gleam
|
||||||
|
node_socket_client
|
||||||
|
node_tags
|
||||||
|
non_empty_list
|
||||||
|
novdom
|
||||||
|
novdom_dev_tools
|
||||||
|
novdom_testing
|
||||||
|
observatory
|
||||||
|
open_color
|
||||||
|
openfeature
|
||||||
|
opt_args_with_defs_for_gleam
|
||||||
|
oteap
|
||||||
|
outcome
|
||||||
|
outil
|
||||||
|
owoify_gleam
|
||||||
|
p5js_gleam
|
||||||
|
palindrome
|
||||||
|
panel
|
||||||
|
parallel_map
|
||||||
|
parser_gleam
|
||||||
|
party
|
||||||
|
parz
|
||||||
|
pb_lite
|
||||||
|
pears
|
||||||
|
peggy
|
||||||
|
phonetic_gleam
|
||||||
|
phony
|
||||||
|
phosphor_lustre
|
||||||
|
pickle
|
||||||
|
pika_id
|
||||||
|
pine
|
||||||
|
pink
|
||||||
|
plex_pin_auth
|
||||||
|
plinth
|
||||||
|
plunk
|
||||||
|
pngleam
|
||||||
|
pojo
|
||||||
|
pona
|
||||||
|
postgresql_protocol
|
||||||
|
pprint
|
||||||
|
prequel
|
||||||
|
pretty_diff
|
||||||
|
priorityq
|
||||||
|
prng
|
||||||
|
process_groups
|
||||||
|
process_waiter
|
||||||
|
processgroups
|
||||||
|
promgleam
|
||||||
|
psg
|
||||||
|
puddle
|
||||||
|
punycode
|
||||||
|
qcheck
|
||||||
|
qcheck_gleeunit_utils
|
||||||
|
qs
|
||||||
|
queryb
|
||||||
|
question
|
||||||
|
rad
|
||||||
|
rada
|
||||||
|
radiate
|
||||||
|
radish
|
||||||
|
radish_fork
|
||||||
|
ramble
|
||||||
|
ranged_int
|
||||||
|
ranger
|
||||||
|
rank
|
||||||
|
react_gleam
|
||||||
|
reactive_signal
|
||||||
|
ream
|
||||||
|
recursive
|
||||||
|
redraw
|
||||||
|
redraw_dom
|
||||||
|
ref
|
||||||
|
rememo
|
||||||
|
remote_data
|
||||||
|
render_md
|
||||||
|
repeatedly
|
||||||
|
rizzo
|
||||||
|
runetracer
|
||||||
|
scaffold_gleam
|
||||||
|
scriptorium
|
||||||
|
sequin
|
||||||
|
shakespeare
|
||||||
|
shamir
|
||||||
|
sheen
|
||||||
|
shellout
|
||||||
|
shimmer
|
||||||
|
showtime
|
||||||
|
signal
|
||||||
|
signal_pgo
|
||||||
|
simple_pubsub
|
||||||
|
simplifile
|
||||||
|
singularity
|
||||||
|
sketch
|
||||||
|
sketch_css
|
||||||
|
sketch_lustre
|
||||||
|
slackin
|
||||||
|
snag
|
||||||
|
snowgleam
|
||||||
|
sol
|
||||||
|
sparkle
|
||||||
|
spinner
|
||||||
|
sprinkle
|
||||||
|
sprocket
|
||||||
|
sqlight
|
||||||
|
squirrel
|
||||||
|
stacky
|
||||||
|
staff_ai
|
||||||
|
starmap
|
||||||
|
startest
|
||||||
|
stdin
|
||||||
|
stego
|
||||||
|
stoiridh_version
|
||||||
|
storch
|
||||||
|
stratus
|
||||||
|
string_format
|
||||||
|
sturnidae
|
||||||
|
sunny
|
||||||
|
surreal_gleam
|
||||||
|
survey
|
||||||
|
swen_jwt
|
||||||
|
systemd_status
|
||||||
|
tardis
|
||||||
|
tcpea
|
||||||
|
telega
|
||||||
|
temporary
|
||||||
|
term_size
|
||||||
|
testbldr
|
||||||
|
testcontainers_gleam
|
||||||
|
the_stars
|
||||||
|
tinyroute
|
||||||
|
tom
|
||||||
|
tote
|
||||||
|
translate
|
||||||
|
transparent_http
|
||||||
|
trie_again
|
||||||
|
trust
|
||||||
|
tubes
|
||||||
|
tulip
|
||||||
|
tupler
|
||||||
|
typed_headers
|
||||||
|
valid
|
||||||
|
validate_monadic
|
||||||
|
varasto
|
||||||
|
vindaloo
|
||||||
|
vleam
|
||||||
|
wasmify
|
||||||
|
weapp
|
||||||
|
webls
|
||||||
|
webmidi
|
||||||
|
wechat_dev_tools
|
||||||
|
wemote
|
||||||
|
wimp
|
||||||
|
wink
|
||||||
|
wisp
|
||||||
|
wisp_flash
|
||||||
|
wolf
|
||||||
|
worm
|
||||||
|
wp_tables
|
||||||
|
xmb
|
||||||
|
xmleam
|
||||||
|
xmlm
|
||||||
|
ygleam
|
||||||
|
youid
|
||||||
|
zeptomail
|
||||||
|
zip_list
|
|
@ -1,16 +1,14 @@
|
||||||
mod hexdocs;
|
mod hexdocs;
|
||||||
|
|
||||||
use std::{fs, io};
|
use std::fs;
|
||||||
use zed::http_client::{HttpMethod, HttpRequest, RedirectPolicy};
|
use std::sync::LazyLock;
|
||||||
use zed::lsp::CompletionKind;
|
use zed::lsp::CompletionKind;
|
||||||
use zed::{
|
use zed::{
|
||||||
CodeLabel, CodeLabelSpan, KeyValueStore, LanguageServerId, SlashCommand,
|
CodeLabel, CodeLabelSpan, KeyValueStore, LanguageServerId, SlashCommand, SlashCommandOutput,
|
||||||
SlashCommandArgumentCompletion, SlashCommandOutput, SlashCommandOutputSection,
|
SlashCommandOutputSection,
|
||||||
};
|
};
|
||||||
use zed_extension_api::{self as zed, Result};
|
use zed_extension_api::{self as zed, Result};
|
||||||
|
|
||||||
use crate::hexdocs::convert_hexdocs_to_markdown;
|
|
||||||
|
|
||||||
struct GleamExtension {
|
struct GleamExtension {
|
||||||
cached_binary_path: Option<String>,
|
cached_binary_path: Option<String>,
|
||||||
}
|
}
|
||||||
|
@ -151,78 +149,13 @@ impl zed::Extension for GleamExtension {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn complete_slash_command_argument(
|
|
||||||
&self,
|
|
||||||
command: SlashCommand,
|
|
||||||
_arguments: Vec<String>,
|
|
||||||
) -> Result<Vec<SlashCommandArgumentCompletion>, String> {
|
|
||||||
match command.name.as_str() {
|
|
||||||
"gleam-project" => Ok(vec![
|
|
||||||
SlashCommandArgumentCompletion {
|
|
||||||
label: "apple".to_string(),
|
|
||||||
new_text: "Apple".to_string(),
|
|
||||||
run_command: false,
|
|
||||||
},
|
|
||||||
SlashCommandArgumentCompletion {
|
|
||||||
label: "banana".to_string(),
|
|
||||||
new_text: "Banana".to_string(),
|
|
||||||
run_command: false,
|
|
||||||
},
|
|
||||||
SlashCommandArgumentCompletion {
|
|
||||||
label: "cherry".to_string(),
|
|
||||||
new_text: "Cherry".to_string(),
|
|
||||||
run_command: true,
|
|
||||||
},
|
|
||||||
]),
|
|
||||||
_ => Ok(Vec::new()),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn run_slash_command(
|
fn run_slash_command(
|
||||||
&self,
|
&self,
|
||||||
command: SlashCommand,
|
command: SlashCommand,
|
||||||
args: Vec<String>,
|
_args: Vec<String>,
|
||||||
worktree: Option<&zed::Worktree>,
|
worktree: Option<&zed::Worktree>,
|
||||||
) -> Result<SlashCommandOutput, String> {
|
) -> Result<SlashCommandOutput, String> {
|
||||||
match command.name.as_str() {
|
match command.name.as_str() {
|
||||||
"gleam-docs" => {
|
|
||||||
let argument = args.last().ok_or_else(|| "missing argument".to_string())?;
|
|
||||||
|
|
||||||
let mut components = argument.split('/');
|
|
||||||
let package_name = components
|
|
||||||
.next()
|
|
||||||
.ok_or_else(|| "missing package name".to_string())?;
|
|
||||||
let module_path = components.map(ToString::to_string).collect::<Vec<_>>();
|
|
||||||
|
|
||||||
let response = HttpRequest::builder()
|
|
||||||
.method(HttpMethod::Get)
|
|
||||||
.url(format!(
|
|
||||||
"https://hexdocs.pm/{package_name}{maybe_path}",
|
|
||||||
maybe_path = if !module_path.is_empty() {
|
|
||||||
format!("/{}.html", module_path.join("/"))
|
|
||||||
} else {
|
|
||||||
String::new()
|
|
||||||
}
|
|
||||||
))
|
|
||||||
.header("User-Agent", "Zed (Gleam Extension)")
|
|
||||||
.redirect_policy(RedirectPolicy::FollowAll)
|
|
||||||
.build()?
|
|
||||||
.fetch()?;
|
|
||||||
|
|
||||||
let (markdown, _modules) =
|
|
||||||
convert_hexdocs_to_markdown(&mut io::Cursor::new(response.body))?;
|
|
||||||
|
|
||||||
let mut text = String::new();
|
|
||||||
text.push_str(&markdown);
|
|
||||||
|
|
||||||
Ok(SlashCommandOutput {
|
|
||||||
sections: vec![SlashCommandOutputSection {
|
|
||||||
range: (0..text.len()).into(),
|
|
||||||
label: format!("gleam-docs: {package_name} {}", module_path.join("/")),
|
|
||||||
}],
|
|
||||||
text,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
"gleam-project" => {
|
"gleam-project" => {
|
||||||
let worktree = worktree.ok_or_else(|| "no worktree")?;
|
let worktree = worktree.ok_or_else(|| "no worktree")?;
|
||||||
|
|
||||||
|
@ -248,11 +181,17 @@ impl zed::Extension for GleamExtension {
|
||||||
|
|
||||||
fn suggest_docs_packages(&self, provider: String) -> Result<Vec<String>, String> {
|
fn suggest_docs_packages(&self, provider: String) -> Result<Vec<String>, String> {
|
||||||
match provider.as_str() {
|
match provider.as_str() {
|
||||||
"gleam-hexdocs" => Ok(vec![
|
"gleam-hexdocs" => {
|
||||||
"gleam_stdlib".to_string(),
|
static GLEAM_PACKAGES: LazyLock<Vec<String>> = LazyLock::new(|| {
|
||||||
"birdie".to_string(),
|
include_str!("../packages.txt")
|
||||||
"startest".to_string(),
|
.lines()
|
||||||
]),
|
.filter(|line| !line.starts_with('#'))
|
||||||
|
.map(|line| line.trim().to_owned())
|
||||||
|
.collect()
|
||||||
|
});
|
||||||
|
|
||||||
|
Ok(GLEAM_PACKAGES.clone())
|
||||||
|
}
|
||||||
_ => Ok(Vec::new()),
|
_ => Ok(Vec::new()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue